diff options
author | Matthias Clasen <mclasen@redhat.com> | 2021-03-25 15:25:35 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2021-03-25 15:25:35 -0400 |
commit | 7cd7e781e21d40ea0ae8e0891faabf6ead7bbbf1 (patch) | |
tree | 8842fb6286044e910d7f70a1f7bd93d85e803d43 | |
parent | 7aed044cb6f8ec2f1f028cdafd8691c47056d582 (diff) | |
download | gtk+-fix-cursor-hiding.tar.gz |
text: Ignore synthetic motion eventsfix-cursor-hiding
We want to re-show the obscured mouse cursor when the
user interacts with the mouse, not when the pointer position
relative to the widget changed. So, ignore synthetic
motion events.
Fixes: #3792
-rw-r--r-- | gtk/gtktext.c | 5 | ||||
-rw-r--r-- | gtk/gtktextview.c | 6 |
2 files changed, 11 insertions, 0 deletions
diff --git a/gtk/gtktext.c b/gtk/gtktext.c index d0711ed3f8..f17650ef9d 100644 --- a/gtk/gtktext.c +++ b/gtk/gtktext.c @@ -2940,6 +2940,11 @@ gtk_text_motion_controller_motion (GtkEventControllerMotion *controller, GtkText *self) { GtkTextPrivate *priv = gtk_text_get_instance_private (self); + GdkEvent *event; + + event = gtk_event_controller_get_current_event (GTK_EVENT_CONTROLLER (controller)); + if (gdk_motion_event_is_synthetic (event)) + return; if (priv->mouse_cursor_obscured) { diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c index 13b0e67752..7580f20493 100644 --- a/gtk/gtktextview.c +++ b/gtk/gtktextview.c @@ -5712,6 +5712,12 @@ gtk_text_view_motion (GtkEventController *controller, double y, gpointer user_data) { + GdkEvent *event; + + event = gtk_event_controller_get_current_event (GTK_EVENT_CONTROLLER (controller)); + if (gdk_motion_event_is_synthetic (event)) + return; + gtk_text_view_unobscure_mouse_cursor (GTK_TEXT_VIEW (user_data)); } |