[gtk+] GtkPopover: Use G_PARAM_EXPLICIT_NOTIFY



commit 8915e9cf42ea88c522ba2d17918b22986cd3a4d8
Author: Matthias Clasen <mclasen redhat com>
Date:   Mon Jun 9 09:17:43 2014 -0400

    GtkPopover: Use G_PARAM_EXPLICIT_NOTIFY

 gtk/gtkpopover.c |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)
---
diff --git a/gtk/gtkpopover.c b/gtk/gtkpopover.c
index 8a90868..089e8e9 100644
--- a/gtk/gtkpopover.c
+++ b/gtk/gtkpopover.c
@@ -354,6 +354,9 @@ gtk_popover_apply_modality (GtkPopover *popover,
 {
   GtkPopoverPrivate *priv = popover->priv;
 
+  if (!priv->window)
+    return;
+
   if (modal)
     {
       GtkWidget *prev_focus;
@@ -1308,7 +1311,7 @@ gtk_popover_class_init (GtkPopoverClass *klass)
                                                       P_("Position"),
                                                       P_("Position to place the bubble window"),
                                                       GTK_TYPE_POSITION_TYPE, GTK_POS_TOP,
-                                                      GTK_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+                                                      
GTK_PARAM_READWRITE|G_PARAM_CONSTRUCT|G_PARAM_EXPLICIT_NOTIFY));
 
   /**
    * GtkPopover:modal
@@ -1324,7 +1327,7 @@ gtk_popover_class_init (GtkPopoverClass *klass)
                                                          P_("Modal"),
                                                          P_("Whether the popover is modal"),
                                                          TRUE,
-                                                         GTK_PARAM_READWRITE));
+                                                         GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
 
   signals[CLOSED] =
     g_signal_new (I_("closed"),
@@ -1665,8 +1668,11 @@ static void
 gtk_popover_update_preferred_position (GtkPopover      *popover,
                                        GtkPositionType  position)
 {
-  popover->priv->preferred_position = position;
-  g_object_notify (G_OBJECT (popover), "position");
+  if (popover->priv->preferred_position != position)
+    {
+      popover->priv->preferred_position = position;
+      g_object_notify (G_OBJECT (popover), "position");
+    }
 }
 
 /**


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