[zenity] Bug #734196



commit 4fe3fa98d941f2a00750bc5ce0c2a23846006265
Author: Andreas Mohr <andi lisas de>
Date:   Tue Apr 21 09:55:40 2015 +0200

    Bug #734196
    
    --info destroys X11 primary selection content, and does not document that either

 src/msg.c |   26 ++++++++++++++++++++++++++
 1 files changed, 26 insertions(+), 0 deletions(-)
---
diff --git a/src/msg.c b/src/msg.c
index 4132ae9..fb54942 100644
--- a/src/msg.c
+++ b/src/msg.c
@@ -51,6 +51,31 @@ zenity_msg_construct_question_dialog (GtkWidget *dialog, ZenityMsgData *msg_data
   }
 }
 
+static void
+zenity_label_widget_clipboard_selection(GtkWidget *widget)
+{
+  /* Workaround hotfix for suspected toolkit issue:
+     since focus change of the dialog's focussed widget (text)
+     somehow currently chooses to destroy
+     a pre-existing (read: foreign, user-initiated) X11 primary selection
+     (via gtk_label_select_region() -> ...
+     -> gtk_clipboard_set_contents()/gtk_clipboard_clear()),
+     we need to ensure
+     that the widget does have its gtk-label-select-on-focus property off,
+     in order to avoid having the label become selected automatically
+     and thereby having pre-existing clipboard content nullified.
+     Side note: this selection issue only applies to widgets
+     which have both
+                  <property name="can_focus">True</property>
+                  <property name="selectable">True</property>
+     .
+   */
+  g_object_set(gtk_widget_get_settings (widget),
+               "gtk-label-select-on-focus",
+               FALSE,
+               NULL);
+}
+
 void 
 zenity_msg (ZenityData *data, ZenityMsgData *msg_data)
 {
@@ -164,6 +189,7 @@ zenity_msg (ZenityData *data, ZenityMsgData *msg_data)
       gtk_label_set_text (GTK_LABEL (text), msg_data->dialog_text);
     else 
       gtk_label_set_markup (GTK_LABEL (text), g_strcompress (msg_data->dialog_text));
+      zenity_label_widget_clipboard_selection(GTK_WIDGET (text));
   }
 
   if (msg_data->ellipsize)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]