[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