[gnome-builder] gstyle-color-widget: fix contextual menu trigger
- From: Sébastien Lafargue <slafargue src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] gstyle-color-widget: fix contextual menu trigger
- Date: Wed, 20 Jul 2016 10:41:52 +0000 (UTC)
commit 5a7ed8d801f37da2104aa9566a0d99b870ffcd85
Author: Sebastien Lafargue <slafargue gnome org>
Date: Wed Jul 20 12:40:02 2016 +0200
gstyle-color-widget: fix contextual menu trigger
We show the contextual menu only
if the color widget is inside a palette widget.
contrib/gstyle/gstyle-color-widget.c | 33 +++++++++++++++++++--------------
1 files changed, 19 insertions(+), 14 deletions(-)
---
diff --git a/contrib/gstyle/gstyle-color-widget.c b/contrib/gstyle/gstyle-color-widget.c
index 20be38a..99f5378 100644
--- a/contrib/gstyle/gstyle-color-widget.c
+++ b/contrib/gstyle/gstyle-color-widget.c
@@ -453,6 +453,7 @@ gstyle_color_widget_multipress_gesture_pressed (GtkGestureMultiPress *gesture,
GtkBuilder *builder;
GtkWidget *button_rename;
GtkWidget *button_remove;
+ GtkWidget *ancestor;
gint button;
button = gtk_gesture_single_get_current_button (GTK_GESTURE_SINGLE (gesture));
@@ -487,20 +488,24 @@ gstyle_color_widget_multipress_gesture_pressed (GtkGestureMultiPress *gesture,
if (button == GDK_BUTTON_SECONDARY)
{
- builder = gtk_builder_new_from_resource ("/org/gnome/libgstyle/ui/gstyle-color-widget.ui");
- popover = GTK_WIDGET (gtk_builder_get_object (builder, "popover"));
- button_rename = GTK_WIDGET (gtk_builder_get_object (builder, "button_rename"));
- g_signal_connect_object (button_rename, "button-release-event",
- G_CALLBACK (popover_button_rename_clicked_cb), self, G_CONNECT_SWAPPED);
-
- button_remove = GTK_WIDGET (gtk_builder_get_object (builder, "button_remove"));
- g_signal_connect_object (button_remove, "button-release-event",
- G_CALLBACK (popover_button_remove_clicked_cb), self, G_CONNECT_SWAPPED);
-
- gtk_popover_set_relative_to (GTK_POPOVER (popover), GTK_WIDGET (self));
- g_signal_connect_swapped (popover, "closed", G_CALLBACK (contextual_popover_closed_cb), self);
- gtk_widget_show (popover);
- g_object_unref (builder);
+ ancestor = gtk_widget_get_ancestor (GTK_WIDGET (self), GSTYLE_TYPE_PALETTE_WIDGET);
+ if (ancestor != NULL)
+ {
+ builder = gtk_builder_new_from_resource ("/org/gnome/libgstyle/ui/gstyle-color-widget.ui");
+ popover = GTK_WIDGET (gtk_builder_get_object (builder, "popover"));
+ button_rename = GTK_WIDGET (gtk_builder_get_object (builder, "button_rename"));
+ g_signal_connect_object (button_rename, "button-release-event",
+ G_CALLBACK (popover_button_rename_clicked_cb), self, G_CONNECT_SWAPPED);
+
+ button_remove = GTK_WIDGET (gtk_builder_get_object (builder, "button_remove"));
+ g_signal_connect_object (button_remove, "button-release-event",
+ G_CALLBACK (popover_button_remove_clicked_cb), self, G_CONNECT_SWAPPED);
+
+ gtk_popover_set_relative_to (GTK_POPOVER (popover), GTK_WIDGET (self));
+ g_signal_connect_swapped (popover, "closed", G_CALLBACK (contextual_popover_closed_cb), self);
+ gtk_widget_show (popover);
+ g_object_unref (builder);
+ }
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]