[Goodies-commits] r7283 - in xfce4-clipman-plugin/trunk: . panel-plugin
Mike Massonnet
mmassonnet at xfce.org
Fri Apr 24 10:48:35 CEST 2009
Author: mmassonnet
Date: 2009-04-24 08:48:34 +0000 (Fri, 24 Apr 2009)
New Revision: 7283
Modified:
xfce4-clipman-plugin/trunk/ChangeLog
xfce4-clipman-plugin/trunk/panel-plugin/main.c
Log:
Proper block/unblock menu functions and fix locale bug
Modified: xfce4-clipman-plugin/trunk/ChangeLog
===================================================================
--- xfce4-clipman-plugin/trunk/ChangeLog 2009-04-24 07:38:12 UTC (rev 7282)
+++ xfce4-clipman-plugin/trunk/ChangeLog 2009-04-24 08:48:34 UTC (rev 7283)
@@ -1,4 +1,14 @@
-2009-04-23 Mike Massonnet
+2009-04-24 Mike Massonnet
+Proper block/unblock menu functions and fix locale bug
+
+ - panel-plugin/main.c:
+ Add new functions plugin_block_menu/unblock_menu to block the
+ popup menu of the status icon in a proper way.
+ - panel-plugin/main.c(plugin_about):
+ Drop the macro XFCE_LICENSE_GPL in favor of a static text.
+ Fixes bug #5285.
+
+2009-04-24 Mike Massonnet
Fix dummy warning
2009-04-23 Mike Massonnet
Modified: xfce4-clipman-plugin/trunk/panel-plugin/main.c
===================================================================
--- xfce4-clipman-plugin/trunk/panel-plugin/main.c 2009-04-24 07:38:12 UTC (rev 7282)
+++ xfce4-clipman-plugin/trunk/panel-plugin/main.c 2009-04-24 08:48:34 UTC (rev 7283)
@@ -62,6 +62,7 @@
GtkWidget *image;
GtkWidget *menu;
GtkWidget *popup_menu;
+ gulong popup_menu_id;
};
/*
@@ -111,6 +112,8 @@
const gchar *uri,
gpointer user_data);
static void plugin_configure (MyPlugin *plugin);
+static void plugin_block_menu (MyPlugin *plugin);
+static void plugin_unblock_menu (MyPlugin *plugin);
static void cb_button_toggled (GtkToggleButton *button,
MyPlugin *plugin);
static void cb_menu_deactivate (GtkMenuShell *menu,
@@ -291,8 +294,9 @@
/* Signals */
g_signal_connect_swapped (plugin->status_icon, "activate",
G_CALLBACK (cb_status_icon_activate), plugin);
- g_signal_connect_swapped (plugin->status_icon, "popup-menu",
- G_CALLBACK (cb_status_icon_popup_menu), plugin);
+ plugin->popup_menu_id =
+ g_signal_connect_swapped (plugin->status_icon, "popup-menu",
+ G_CALLBACK (cb_status_icon_popup_menu), plugin);
g_signal_connect_swapped (plugin->status_icon, "size-changed",
G_CALLBACK (cb_status_icon_set_size), plugin);
g_object_weak_ref (G_OBJECT (plugin->status_icon), (GWeakNotify)cb_status_icon_finalize, plugin);
@@ -325,9 +329,6 @@
{
GtkWidget *mi;
- if (plugin->gxml != NULL)
- return;
-
if (G_UNLIKELY (plugin->popup_menu == NULL))
{
plugin->popup_menu = gtk_menu_new ();
@@ -648,6 +649,11 @@
"Nick Schermer",
NULL, };
static const gchar *documenters[] = { "Mike Massonnet", NULL, };
+ static const gchar *license =
+ "This program is free software; you can redistribute it and/or modify\n"
+ "it under the terms of the GNU General Public License as published by\n"
+ "the Free Software Foundation; either version 2 of the License, or\n"
+ "(at your option) any later version.\n";
gtk_about_dialog_set_url_hook (cb_about_dialog_url_hook, NULL, NULL);
gtk_show_about_dialog (NULL,
@@ -656,7 +662,7 @@
"comments", _("Clipboard Manager for Xfce"),
"version", PACKAGE_VERSION,
"copyright", "Copyright © 2008-2009 Mike Massonnet",
- "license", XFCE_LICENSE_GPL,
+ "license", license,
"website", "http://goodies.xfce.org/projects/panel-plugins/xfce4-clipman-plugin",
"website-label", "goodies.xfce.org",
"artists", artists,
@@ -757,11 +763,9 @@
G_CALLBACK (cb_set_action_dialog_button_ok), plugin);
/* Run the dialog */
- if (plugin->panel_plugin != NULL)
- xfce_panel_plugin_block_menu (plugin->panel_plugin);
+ plugin_block_menu (plugin);
while (gtk_dialog_run (GTK_DIALOG (dialog)) != 0);
- if (plugin->panel_plugin != NULL)
- xfce_panel_plugin_unblock_menu (plugin->panel_plugin);
+ plugin_unblock_menu (plugin);
gtk_widget_destroy (action_dialog);
gtk_widget_destroy (dialog);
@@ -774,6 +778,32 @@
}
static void
+plugin_block_menu (MyPlugin *plugin)
+{
+ if (plugin->panel_plugin != NULL)
+ {
+ xfce_panel_plugin_block_menu (plugin->panel_plugin);
+ }
+ else
+ {
+ g_signal_handler_block (plugin->status_icon, plugin->popup_menu_id);
+ }
+}
+
+static void
+plugin_unblock_menu (MyPlugin *plugin)
+{
+ if (plugin->panel_plugin != NULL)
+ {
+ xfce_panel_plugin_unblock_menu (plugin->panel_plugin);
+ }
+ else
+ {
+ g_signal_handler_unblock (plugin->status_icon, plugin->popup_menu_id);
+ }
+}
+
+static void
cb_button_toggled (GtkToggleButton *button,
MyPlugin *plugin)
{
More information about the Goodies-commits
mailing list