[gtk+] gtkwidget: Check return value before running bubble phase



commit d4a6c2c2418ddc152deb6549d46970ce21a3a49a
Author: Carlos Garnacho <carlosg gnome org>
Date:   Thu Oct 12 14:19:35 2017 +0200

    gtkwidget: Check return value before running bubble phase
    
    If the target widget gets the event consumed on the target phase,
    we should not attempt to bubble up, not even within the same widget.

 gtk/gtkwidget.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
---
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index 63dd522..905b2c6 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -6802,7 +6802,8 @@ gtk_widget_event_internal (GtkWidget      *widget,
         _gtk_tooltip_focus_out (widget);
     }
 
-  return_val |= _gtk_widget_run_controllers (widget, event_copy, GTK_PHASE_BUBBLE);
+  if (return_val == FALSE)
+    return_val |= _gtk_widget_run_controllers (widget, event_copy, GTK_PHASE_BUBBLE);
   gdk_event_free (event_copy);
 
   return return_val;


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