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:45:12 -0300 |
commit | 68ce3a7c6fcc1927a8b7962e74533f8493c9337b (patch) | |
tree | 2277aec27da3abc525d12872115993d999d9d16e | |
parent | a861a469c396071e1a8cae28dc7880eb34e6415d (diff) | |
download | glade-68ce3a7c6fcc1927a8b7962e74533f8493c9337b.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 6ca5fca5..ebb57f9d 100644 --- a/plugins/gtk+/gtk+.xml.in +++ b/plugins/gtk+/gtk+.xml.in @@ -3008,6 +3008,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> @@ -3478,6 +3480,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 --> @@ -3493,7 +3496,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> @@ -3508,6 +3510,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> |