summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2019-06-11 18:33:01 +0000
committerMatthias Clasen <mclasen@redhat.com>2019-06-11 18:33:01 +0000
commitb6c9d23b9ad28fce1b3531e30f31366e8ab50019 (patch)
tree1f603584e9b41dd1dda50958d5bda30d6fc182e7
parente3f67d56dbe035dc1ff518c12e48c1821b0c62a2 (diff)
parentd6a81377b11e15493ea3598cf0457c07b40b7b09 (diff)
downloadgtk+-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.c5
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);
}