[Goodies-commits] r7178 - in xfce4-clipman-plugin/trunk: . panel-plugin
Mike Massonnet
mmassonnet at xfce.org
Mon Apr 13 18:17:24 CEST 2009
Author: mmassonnet
Date: 2009-04-13 16:17:24 +0000 (Mon, 13 Apr 2009)
New Revision: 7178
Modified:
xfce4-clipman-plugin/trunk/ChangeLog
xfce4-clipman-plugin/trunk/panel-plugin/collector.c
xfce4-clipman-plugin/trunk/panel-plugin/collector.h
xfce4-clipman-plugin/trunk/panel-plugin/main.c
xfce4-clipman-plugin/trunk/panel-plugin/menu.c
Log:
Add Inhibit option in the Clipman menu
Modified: xfce4-clipman-plugin/trunk/ChangeLog
===================================================================
--- xfce4-clipman-plugin/trunk/ChangeLog 2009-04-13 14:26:19 UTC (rev 7177)
+++ xfce4-clipman-plugin/trunk/ChangeLog 2009-04-13 16:17:24 UTC (rev 7178)
@@ -1,4 +1,21 @@
2009-04-13 Mike Massonnet
+Add Inhibit option in the Clipman menu
+
+ - panel-plugin/collector.c, panel-plugin/collector.h:
+ Add a GObject property inhibit and ignore changes happening on
+ the clipboards in the clipboard owner changes callback if it is
+ set to TRUE.
+ Add a public function clipman_collector_inhibit().
+ - panel-plugin/menu.c:
+ Add a Enable check item in the menu. Use libexo to bind the
+ active property of the check item to the inhibit property of
+ ClipmanCollector -- with a negation as inhibit on TRUE would
+ mean disabled.
+ - panel-plugin/main.c:
+ Bind the inhibit property of ClipmanCollector to the new xfconf
+ property inhibit.
+
+2009-04-13 Mike Massonnet
Set ownership on CLIPBOARD_MANAGER
- panel-plugin/main.c:
Modified: xfce4-clipman-plugin/trunk/panel-plugin/collector.c
===================================================================
--- xfce4-clipman-plugin/trunk/panel-plugin/collector.c 2009-04-13 14:26:19 UTC (rev 7177)
+++ xfce4-clipman-plugin/trunk/panel-plugin/collector.c 2009-04-13 16:17:24 UTC (rev 7178)
@@ -48,12 +48,14 @@
gboolean internal_change;
gboolean add_primary_clipboard;
gboolean enable_actions;
+ gboolean inhibit;
};
enum
{
ADD_PRIMARY_CLIPBOARD = 1,
ENABLE_ACTIONS,
+ INHIBIT,
};
static void clipman_collector_class_init (ClipmanCollectorClass *klass);
@@ -93,6 +95,10 @@
GdkPixbuf *image;
GdkAtom text_plain, text_html;
+ /* Skip if the collector is inhibit */
+ if (collector->priv->inhibit == TRUE)
+ return;
+
/* Take only care of new clipboard content */
if (event->reason != GDK_OWNER_CHANGE_NEW_OWNER)
return;
@@ -213,6 +219,21 @@
collector->priv->internal_change = TRUE;
}
+/**
+ * clipman_collector_inhibit:
+ * @collector: a #ClipmanCollector
+ * @inhibit: TRUE if the collector should be deactivated
+ *
+ * Set to TRUE to disable the collector, FALSE to let it read the clipboard
+ * contents.
+ */
+void
+clipman_collector_inhibit (ClipmanCollector *collector,
+ gboolean inhibit)
+{
+ g_object_set (collector, "inhibit", inhibit, NULL);
+}
+
ClipmanCollector *
clipman_collector_get ()
{
@@ -261,6 +282,13 @@
"Set to TRUE to enable actions (match the clipboard texts against regex's)",
DEFAULT_ENABLE_ACTIONS,
G_PARAM_CONSTRUCT|G_PARAM_READWRITE));
+
+ g_object_class_install_property (object_class, INHIBIT,
+ g_param_spec_boolean ("inhibit",
+ "Inhibit",
+ "Set to TRUE to disable the collector",
+ FALSE,
+ G_PARAM_CONSTRUCT|G_PARAM_READWRITE));
}
static void
@@ -319,6 +347,10 @@
priv->enable_actions = g_value_get_boolean (value);
break;
+ case INHIBIT:
+ priv->inhibit = g_value_get_boolean (value);
+ break;
+
default:
break;
}
@@ -342,6 +374,10 @@
g_value_set_boolean (value, priv->enable_actions);
break;
+ case INHIBIT:
+ g_value_set_boolean (value, priv->inhibit);
+ break;
+
default:
break;
}
Modified: xfce4-clipman-plugin/trunk/panel-plugin/collector.h
===================================================================
--- xfce4-clipman-plugin/trunk/panel-plugin/collector.h 2009-04-13 14:26:19 UTC (rev 7177)
+++ xfce4-clipman-plugin/trunk/panel-plugin/collector.h 2009-04-13 16:17:24 UTC (rev 7178)
@@ -52,6 +52,8 @@
ClipmanCollector * clipman_collector_get ();
void clipman_collector_set_is_restoring (ClipmanCollector *collector);
+void clipman_collector_inhibit (ClipmanCollector *collector,
+ gboolean inhibit);
#endif /* !__CLIPMAN_COLLECTOR_H__ */
Modified: xfce4-clipman-plugin/trunk/panel-plugin/main.c
===================================================================
--- xfce4-clipman-plugin/trunk/panel-plugin/main.c 2009-04-13 14:26:19 UTC (rev 7177)
+++ xfce4-clipman-plugin/trunk/panel-plugin/main.c 2009-04-13 16:17:24 UTC (rev 7178)
@@ -237,6 +237,8 @@
G_TYPE_BOOLEAN, plugin->collector, "add-primary-clipboard");
xfconf_g_property_bind (plugin->channel, "/settings/enable-actions",
G_TYPE_BOOLEAN, plugin->collector, "enable-actions");
+ xfconf_g_property_bind (plugin->channel, "/inhibit",
+ G_TYPE_BOOLEAN, plugin->collector, "inhibit");
/* ClipmanMenu */
plugin->menu = clipman_menu_new ();
Modified: xfce4-clipman-plugin/trunk/panel-plugin/menu.c
===================================================================
--- xfce4-clipman-plugin/trunk/panel-plugin/menu.c 2009-04-13 14:26:19 UTC (rev 7177)
+++ xfce4-clipman-plugin/trunk/panel-plugin/menu.c 2009-04-13 16:17:24 UTC (rev 7178)
@@ -20,6 +20,7 @@
#include <config.h>
#endif
+#include <exo/exo.h>
#include <gtk/gtk.h>
#include <libxfcegui4/libxfcegui4.h>
#include <libxfce4util/libxfce4util.h>
@@ -40,6 +41,7 @@
struct _ClipmanMenuPrivate
{
GtkWidget *mi_clear_history;
+ GtkWidget *mi_inhibit;
ClipmanHistory *history;
GSList *list;
};
@@ -59,6 +61,7 @@
*/
static void cb_set_clipboard (const ClipmanHistoryItem *item);
+static void cb_inhibit (ClipmanMenu *menu);
static void cb_clear_history (ClipmanMenu *menu);
@@ -105,6 +108,14 @@
}
static void
+cb_inhibit (ClipmanMenu *menu)
+{
+ ClipmanCollector *collector = clipman_collector_get ();
+ clipman_collector_inhibit (collector, !(GTK_CHECK_MENU_ITEM (menu->priv->mi_inhibit)->active));
+ g_object_unref (collector);
+}
+
+static void
cb_clear_history (ClipmanMenu *menu)
{
GtkClipboard *clipboard;
@@ -234,6 +245,7 @@
clipman_menu_init (ClipmanMenu *menu)
{
GtkWidget *mi;
+ ClipmanCollector *collector;
menu->priv = GET_PRIVATE (menu);
@@ -247,10 +259,16 @@
mi = gtk_separator_menu_item_new ();
gtk_menu_shell_append (GTK_MENU_SHELL (menu), mi);
+ menu->priv->mi_inhibit = mi = gtk_check_menu_item_new_with_mnemonic (_("_Enable"));
+ collector = clipman_collector_get ();
+ exo_binding_new_with_negation (G_OBJECT (collector), "inhibit", G_OBJECT (mi), "active");
+ g_object_unref (collector);
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu), mi);
+ g_signal_connect_swapped (mi, "toggled", G_CALLBACK (cb_inhibit), menu);
+
menu->priv->mi_clear_history = mi = gtk_image_menu_item_new_from_stock (GTK_STOCK_CLEAR, NULL);
gtk_menu_shell_append (GTK_MENU_SHELL (menu), mi);
- g_signal_connect_swapped (mi, "activate",
- G_CALLBACK (cb_clear_history), menu);
+ g_signal_connect_swapped (mi, "activate", G_CALLBACK (cb_clear_history), menu);
/* Show all the items */
gtk_widget_show_all (GTK_WIDGET (menu));
More information about the Goodies-commits
mailing list