diff options
author | Matthias Clasen <mclasen@redhat.com> | 2019-06-11 18:33:01 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2019-06-11 18:33:01 +0000 |
commit | b6c9d23b9ad28fce1b3531e30f31366e8ab50019 (patch) | |
tree | 1f603584e9b41dd1dda50958d5bda30d6fc182e7 | |
parent | e3f67d56dbe035dc1ff518c12e48c1821b0c62a2 (diff) | |
parent | d6a81377b11e15493ea3598cf0457c07b40b7b09 (diff) | |
download | gtk+-b6c9d23b9ad28fce1b3531e30f31366e8ab50019.tar.gz |
Merge branch 'popover-state-sync' into 'gtk-3-24'
popover: Sync parent state when needed
See merge request GNOME/gtk!931
-rw-r--r-- | gtk/gtkpopover.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gtk/gtkpopover.c b/gtk/gtkpopover.c index 26f967394f..59d1bc8587 100644 --- a/gtk/gtkpopover.c +++ b/gtk/gtkpopover.c @@ -2069,6 +2069,7 @@ gtk_popover_update_relative_to (GtkPopover *popover, GtkWidget *relative_to) { GtkPopoverPrivate *priv = popover->priv; + GtkStateFlags old_state = 0; if (priv->widget == relative_to) return; @@ -2085,6 +2086,7 @@ gtk_popover_update_relative_to (GtkPopover *popover, if (priv->widget) { + old_state = gtk_widget_get_state_flags (priv->widget); if (g_signal_handler_is_connected (priv->widget, priv->hierarchy_changed_id)) g_signal_handler_disconnect (priv->widget, priv->hierarchy_changed_id); if (g_signal_handler_is_connected (priv->widget, priv->size_allocate_id)) @@ -2141,6 +2143,9 @@ gtk_popover_update_relative_to (GtkPopover *popover, if (priv->widget) gtk_popover_update_scrollable (popover); + if (priv->widget) + _gtk_popover_parent_state_changed (priv->widget, old_state, popover); + _gtk_widget_update_parent_muxer (GTK_WIDGET (popover)); g_object_unref (popover); } |