61 lines
2.4 KiB
Diff
61 lines
2.4 KiB
Diff
From: Sergio Costas <rastersoft@gmail.com>
|
|
Date: Tue, 16 Aug 2022 23:14:44 +0200
|
|
Subject: Further simplification
|
|
|
|
Origin: upstream, 3.24.35, commit:4892c8901b16b533d4c583eabc805e1f2a84f33d
|
|
---
|
|
gtk/gtkpopover.c | 19 ++++---------------
|
|
1 file changed, 4 insertions(+), 15 deletions(-)
|
|
|
|
diff --git a/gtk/gtkpopover.c b/gtk/gtkpopover.c
|
|
index 4182c5f..45680d0 100644
|
|
--- a/gtk/gtkpopover.c
|
|
+++ b/gtk/gtkpopover.c
|
|
@@ -456,7 +456,7 @@ window_focus_in (GtkWidget *widget,
|
|
if (focus == NULL || !gtk_widget_is_ancestor (focus, GTK_WIDGET (popover)))
|
|
gtk_widget_grab_focus (GTK_WIDGET (popover));
|
|
|
|
- if (priv->grab_notify_blocked)
|
|
+ if (priv->grab_notify_blocked && priv->widget)
|
|
g_signal_handler_unblock (priv->widget, priv->grab_notify_id);
|
|
|
|
priv->grab_notify_blocked = FALSE;
|
|
@@ -2097,7 +2097,6 @@ gtk_popover_update_relative_to (GtkPopover *popover,
|
|
{
|
|
GtkPopoverPrivate *priv = popover->priv;
|
|
GtkStateFlags old_state = 0;
|
|
- gboolean had_grab_notify_blocked = FALSE;
|
|
|
|
if (priv->widget == relative_to)
|
|
return;
|
|
@@ -2124,14 +2123,7 @@ gtk_popover_update_relative_to (GtkPopover *popover,
|
|
if (g_signal_handler_is_connected (priv->widget, priv->state_changed_id))
|
|
g_signal_handler_disconnect (priv->widget, priv->state_changed_id);
|
|
if (g_signal_handler_is_connected (priv->widget, priv->grab_notify_id))
|
|
- {
|
|
- if (priv->grab_notify_blocked)
|
|
- {
|
|
- priv->grab_notify_blocked = FALSE;
|
|
- had_grab_notify_blocked = TRUE;
|
|
- }
|
|
- g_signal_handler_disconnect (priv->widget, priv->grab_notify_id);
|
|
- }
|
|
+ g_signal_handler_disconnect (priv->widget, priv->grab_notify_id);
|
|
|
|
widget_unmanage_popover (priv->widget, popover);
|
|
}
|
|
@@ -2167,11 +2159,8 @@ gtk_popover_update_relative_to (GtkPopover *popover,
|
|
g_signal_connect (priv->widget, "grab-notify",
|
|
G_CALLBACK (_gtk_popover_parent_grab_notify),
|
|
popover);
|
|
- if (had_grab_notify_blocked)
|
|
- {
|
|
- g_signal_handler_block (priv->widget, priv->grab_notify_id);
|
|
- priv->grab_notify_blocked = TRUE;
|
|
- }
|
|
+ if (priv->grab_notify_blocked)
|
|
+ g_signal_handler_block (priv->widget, priv->grab_notify_id);
|
|
|
|
/* Give ownership of the popover to widget */
|
|
widget_manage_popover (priv->widget, popover);
|