[evince/dont_grab_focus_from_mouse: 1/3] EvWindow: allow EvView to correctly receive focus
- From: Nelson Ben <nbenitez src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evince/dont_grab_focus_from_mouse: 1/3] EvWindow: allow EvView to correctly receive focus
- Date: Sun, 16 Jan 2022 21:27:17 +0000 (UTC)
commit a407435ec571a548b3901adafdbe6cd73025db3d
Author: Nelson Benítez León <nbenitezl gmail com>
Date: Sun Jan 16 14:45:30 2022 -0400
EvWindow: allow EvView to correctly receive focus
This fixes bad behaviour described in following comment:
https://gitlab.gnome.org/GNOME/evince/-/issues/704#note_1350123
which is than when TAB key switching focus to the document view
it does not get it the first time, you have to play some UP and
DOWN arrow till it gets it (as described in previous comment).
The reason is that GTK does not pass the focus directly to EvView
but to the GtkScrolledWindow that contains it. But we really want
the focus to end up in the EvView, so we manually do that so the
focus TAB chain performs as expected.
Part of issue #704
shell/ev-window.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
---
diff --git a/shell/ev-window.c b/shell/ev-window.c
index 634caafa2..627fdb513 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -1054,6 +1054,15 @@ scroll_child_history_cb (GtkScrolledWindow *scrolled_window,
}
}
+static gboolean
+scrolled_window_focus_in_cb (GtkScrolledWindow *scrolled_window,
+ GdkEventFocus *event,
+ EvWindow *window)
+{
+ ev_window_focus_view (window);
+ return GDK_EVENT_STOP;
+}
+
static void
view_selection_changed_cb (EvView *view,
EvWindow *window)
@@ -7728,6 +7737,9 @@ ev_window_init (EvWindow *ev_window)
g_signal_connect_object (priv->scrolled_window, "scroll-child",
G_CALLBACK (scroll_child_history_cb),
ev_window, 0);
+ g_signal_connect_object (priv->scrolled_window, "focus-in-event",
+ G_CALLBACK (scrolled_window_focus_in_cb),
+ ev_window, 0);
g_signal_connect_object (priv->view, "annot-added",
G_CALLBACK (view_annot_added),
ev_window, 0);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]