This is an automated email from the git hooks/post-receive script. o c h o s i p u s h e d a c o m m i t t o b r a n c h m a s t e r in repository panel-plugins/xfce4-clipman-plugin.
commit 0f6742ca48a72c52a1c5eab50567a7121959f972 Author: Florian Schüller <florian.schuel...@gmail.com> Date: Sun Apr 5 11:56:22 2020 +0200 menu: Indicate primary and clipboard content Indicate primary even if it is ignored/not collected in the history. --- panel-plugin/menu.c | 50 ++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 42 insertions(+), 8 deletions(-) diff --git a/panel-plugin/menu.c b/panel-plugin/menu.c index 8261189..3ce09df 100644 --- a/panel-plugin/menu.c +++ b/panel-plugin/menu.c @@ -339,6 +339,7 @@ _clipman_menu_update_list (ClipmanMenu *menu) gint pos = 0; gint i = 0; gchar *selection_primary; + gchar *selection_clipboard; gboolean skip_primary = FALSE; /* Get the most recent item in the history */ @@ -354,6 +355,13 @@ _clipman_menu_update_list (ClipmanMenu *menu) list = clipman_history_get_list (menu->priv->history); if (menu->priv->reverse_order) list = g_slist_reverse (list); + + clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD); + selection_clipboard = gtk_clipboard_wait_for_text (clipboard); + + clipboard = gtk_clipboard_get (GDK_SELECTION_PRIMARY); + selection_primary = gtk_clipboard_wait_for_text (clipboard); + for (i = 0, l = list; i < menu->priv->max_menu_items; i++, l = l->next) { if (l == NULL) @@ -384,13 +392,37 @@ G_GNUC_END_IGNORE_DEPRECATIONS g_signal_connect (mi, "activate", G_CALLBACK (cb_set_clipboard), item); g_object_set_data (G_OBJECT (mi), "paste-on-activate", GUINT_TO_POINTER (menu->priv->paste_on_activate)); - if (item == item_to_restore) + if (selection_clipboard && (item->type == CLIPMAN_HISTORY_TYPE_TEXT) + && (g_strcmp0 (selection_clipboard, item->content.text) == 0)) { - image = gtk_image_new_from_icon_name ("go-next-symbolic", GTK_ICON_SIZE_MENU); + image = gtk_image_new_from_icon_name ("edit-paste-symbolic", + GTK_ICON_SIZE_MENU); G_GNUC_BEGIN_IGNORE_DEPRECATIONS - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (mi), image); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM(mi), image); G_GNUC_END_IGNORE_DEPRECATIONS } + else + if (selection_primary && (item->type == CLIPMAN_HISTORY_TYPE_TEXT) + && (g_strcmp0 (selection_primary, item->content.text) == 0)) + { + image = gtk_image_new_from_icon_name ("input-mouse-symbolic", + GTK_ICON_SIZE_MENU); + G_GNUC_BEGIN_IGNORE_DEPRECATIONS + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM(mi), image); + G_GNUC_END_IGNORE_DEPRECATIONS + } + else + /* not sure if "item_to_restore" can be neither primary nor clipboard... + * but let's leave this as fallback + */ + if (item == item_to_restore) + { + image = gtk_image_new_from_icon_name ("go-next-symbolic", + GTK_ICON_SIZE_MENU); +G_GNUC_BEGIN_IGNORE_DEPRECATIONS + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM(mi), image); +G_GNUC_END_IGNORE_DEPRECATIONS + } menu->priv->list = g_slist_prepend (menu->priv->list, mi); gtk_menu_shell_insert (GTK_MENU_SHELL (menu), mi, pos++); @@ -444,13 +476,14 @@ G_GNUC_END_IGNORE_DEPRECATIONS gtk_widget_set_sensitive (menu->priv->mi_clear_history, FALSE); } - /* Show the primary clipboard item so it can be selected for keyboard pasting */ - clipboard = gtk_clipboard_get (GDK_SELECTION_PRIMARY); - selection_primary = gtk_clipboard_wait_for_text (clipboard); + /* Show the primary clipboard item so it can be selected for keyboard pasting + * even if "ignore selection" is enabled! + */ if (selection_primary) { - skip_primary = (item_to_restore - && g_strcmp0 (selection_primary, item_to_restore->content.text) == 0); + skip_primary = (g_strcmp0 (selection_primary, selection_clipboard) == 0) || + (item_to_restore && (item_to_restore->type == CLIPMAN_HISTORY_TYPE_TEXT) && g_strcmp0 (selection_primary, item_to_restore->content.text) == 0); + if (skip_primary == FALSE) { G_GNUC_BEGIN_IGNORE_DEPRECATIONS @@ -465,6 +498,7 @@ G_GNUC_END_IGNORE_DEPRECATIONS } g_free (selection_primary); } + g_free (selection_clipboard); _clipman_menu_adjust_geometry(menu); } -- To stop receiving notification emails like this one, please contact the administrator of this repository. _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits