summaryrefslogtreecommitdiff
path: root/vcl/unx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2021-07-09 11:35:17 +0100
committerCaolán McNamara <caolanm@redhat.com>2021-07-09 16:49:28 +0200
commit9fb3742df0a65238197e760a85f3f4a0e58ec31b (patch)
treeb78b63e6d4edabcbb4ec83ebee0156dfb3b6a247 /vcl/unx
parentaddd7e7835097043efda52594f3a34219dbd1063 (diff)
use GTK_PHASE_TARGET instead of GTK_PHASE_BUBBLE
so we don't get called if the event happened in another widget hosted inside this widget Change-Id: I77fe9250ffa45b76602dc0e77839ccff2e856de2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118666 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl/unx')
-rw-r--r--vcl/unx/gtk3/gtkframe.cxx5
1 files changed, 5 insertions, 0 deletions
diff --git a/vcl/unx/gtk3/gtkframe.cxx b/vcl/unx/gtk3/gtkframe.cxx
index 71b8673ee11e..3b23b5c2a07e 100644
--- a/vcl/unx/gtk3/gtkframe.cxx
+++ b/vcl/unx/gtk3/gtkframe.cxx
@@ -961,6 +961,10 @@ void GtkSalFrame::InitCommon()
#else
GtkGesture *pClick = gtk_gesture_click_new();
gtk_gesture_single_set_button(GTK_GESTURE_SINGLE(pClick), 0);
+ // use GTK_PHASE_TARGET instead of default GTK_PHASE_BUBBLE because I don't
+ // want click events in gtk widgets inside the overlay, e.g. the font size
+ // combobox GtkEntry in the toolbar, to be propagated down to this widget
+ gtk_event_controller_set_propagation_phase(GTK_EVENT_CONTROLLER(pClick), GTK_PHASE_TARGET);
gtk_widget_add_controller(pEventWidget, GTK_EVENT_CONTROLLER(pClick));
g_signal_connect(pClick, "pressed", G_CALLBACK(gesturePressed), this);
g_signal_connect(pClick, "released", G_CALLBACK(gestureReleased), this);
@@ -969,6 +973,7 @@ void GtkSalFrame::InitCommon()
g_signal_connect(pMotionController, "motion", G_CALLBACK(signalMotion), this);
g_signal_connect(pMotionController, "enter", G_CALLBACK(signalEnter), this);
g_signal_connect(pMotionController, "leave", G_CALLBACK(signalLeave), this);
+ gtk_event_controller_set_propagation_phase(pMotionController, GTK_PHASE_TARGET);
gtk_widget_add_controller(pEventWidget, pMotionController);
GtkEventController* pScrollController = gtk_event_controller_scroll_new(GTK_EVENT_CONTROLLER_SCROLL_BOTH_AXES);