diff options
author | Juan Pablo Ugarte <juanpablougarte@gmail.com> | 2018-02-28 21:42:10 -0300 |
---|---|---|
committer | Juan Pablo Ugarte <juanpablougarte@gmail.com> | 2018-02-28 21:42:10 -0300 |
commit | f373288352764363993b228d190cf96789fd7a40 (patch) | |
tree | fc9f3af1cd8e865f6f34d974bc15e3a80d854626 | |
parent | 667f255a53820815117358e7e96641d49f4522dd (diff) | |
download | glade-f373288352764363993b228d190cf96789fd7a40.tar.gz |
Gtk+ plugin: fix GtkPopover support
Improve support without creating a subclass, still need to
find a way to override map/unmap warnings
Fix bug #793757 "Gtk-CRITICAL **: _gtk_window_add_popover: assertion '_gtk_widget_get_parent (popover) == NULL' failed"
-rw-r--r-- | plugins/gtk+/glade-gtk-popover-menu.c | 19 | ||||
-rw-r--r-- | plugins/gtk+/glade-gtk-popover.c | 16 | ||||
-rw-r--r-- | plugins/gtk+/gtk+.xml.in | 5 |
3 files changed, 13 insertions, 27 deletions
diff --git a/plugins/gtk+/glade-gtk-popover-menu.c b/plugins/gtk+/glade-gtk-popover-menu.c index 76e72d51..59b4fb12 100644 --- a/plugins/gtk+/glade-gtk-popover-menu.c +++ b/plugins/gtk+/glade-gtk-popover-menu.c @@ -27,25 +27,6 @@ #include "glade-popover-menu-editor.h" -GObject * -glade_gtk_popover_menu_constructor (GType type, - guint n_construct_properties, - GObjectConstructParam * construct_properties) -{ - GladeWidgetAdaptor *adaptor; - GObject *ret_obj; - - ret_obj = GWA_GET_OCLASS (GTK_TYPE_CONTAINER)->constructor - (type, n_construct_properties, construct_properties); - - adaptor = GLADE_WIDGET_ADAPTOR (ret_obj); - - glade_widget_adaptor_action_remove (adaptor, "add_parent"); - glade_widget_adaptor_action_remove (adaptor, "remove_parent"); - - return ret_obj; -} - static void glade_gtk_popover_menu_parse_finished (GladeProject * project, GObject * object) diff --git a/plugins/gtk+/glade-gtk-popover.c b/plugins/gtk+/glade-gtk-popover.c index 82f00563..2e9fe239 100644 --- a/plugins/gtk+/glade-gtk-popover.c +++ b/plugins/gtk+/glade-gtk-popover.c @@ -57,24 +57,26 @@ glade_gtk_popover_create_editable (GladeWidgetAdaptor * adaptor, } static gint -popover_key_press (GtkWidget *popover, - GdkEventKey *event, - gpointer user_data) +popover_key_press (GtkWidget *popover, GdkEventKey *event, gpointer user_data) { if (event->keyval == GDK_KEY_Escape) return TRUE; return FALSE; } - + void -glade_gtk_popover_post_create (GladeWidgetAdaptor * adaptor, - GObject *popover, GladeCreateReason reason) +glade_gtk_popover_post_create (GladeWidgetAdaptor *adaptor, + GObject *popover, + GladeCreateReason reason) { /* Ignore some events causing the popover to disappear from the workspace */ g_signal_connect (popover, "key-press-event", - G_CALLBACK (popover_key_press), NULL); + G_CALLBACK (popover_key_press), NULL); + + gtk_popover_set_modal (GTK_POPOVER (popover), FALSE); + gtk_popover_set_relative_to (GTK_POPOVER (popover), NULL); GWA_GET_CLASS (GTK_TYPE_CONTAINER)->post_create (adaptor, popover, reason); } diff --git a/plugins/gtk+/gtk+.xml.in b/plugins/gtk+/gtk+.xml.in index 29d72515..93eea48f 100644 --- a/plugins/gtk+/gtk+.xml.in +++ b/plugins/gtk+/gtk+.xml.in @@ -3042,6 +3042,8 @@ <property id="menu-model" disabled="True"/> <property id="popup" ignore="True"/> <property id="align-widget" ignore="True"/> + <property id="popover" ignore="True" since="3.12"/> + <property id="use-popover" ignore="True" since="3.12"/> </properties> </glade-widget-class> @@ -3514,6 +3516,7 @@ <properties> <property id="visible" default="False"/> <property id="relative-to" ignore="True" custom-layout="True"/> + <property id="pointing-to" disabled="True"/> <property id="constrain-to" ignore="True" custom-layout="True" since="3.20"> <displayable-values> <!-- GtkPopoverConstraint enumeration value --> @@ -3529,7 +3532,6 @@ </glade-widget-class> <glade-widget-class name="GtkPopoverMenu" generic-name="popovermenu" _title="Popover Menu" toplevel="True" since="3.16"> - <constructor-function>glade_gtk_popover_menu_constructor</constructor-function> <create-editable-function>glade_gtk_popover_menu_create_editable</create-editable-function> <post-create-function>glade_gtk_popover_menu_post_create</post-create-function> <add-child-function>glade_gtk_popover_menu_add_child</add-child-function> @@ -3544,6 +3546,7 @@ <properties> <property id="visible" default="False"/> <property id="visible-submenu" disabled="True"/> + <property id="pointing-to" disabled="True"/> <property id="submenus" _name="Number of submenus" save="False" default="1" custom-layout="True"> <parameter-spec> <type>GParamInt</type> |