[glade/glade-3-20] Gtk+ plugin: fix GtkPopover support



commit 68ce3a7c6fcc1927a8b7962e74533f8493c9337b
Author: Juan Pablo Ugarte <juanpablougarte gmail com>
Date:   Wed Feb 28 21:42:10 2018 -0300

    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"

 plugins/gtk+/glade-gtk-popover-menu.c |   19 -------------------
 plugins/gtk+/glade-gtk-popover.c      |   16 +++++++++-------
 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 76e72d5..59b4fb1 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 82f0056..2e9fe23 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 6ca5fca..ebb57f9 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>


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