From b8cc43eb914a1d66b94dc917f27d9609266d4a01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Eric=20Janouch?= Date: Sat, 13 Nov 2021 10:04:40 +0100 Subject: [PATCH] Bind the mouse back button on the view --- fastiv-view.c | 2 +- fastiv.c | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/fastiv-view.c b/fastiv-view.c index a8b879e..b7dda61 100644 --- a/fastiv-view.c +++ b/fastiv-view.c @@ -100,7 +100,7 @@ fastiv_view_realize(GtkWidget *widget) // than what we get automatically. .visual = gtk_widget_get_visual(widget), .event_mask = gtk_widget_get_events(widget) | GDK_SCROLL_MASK | - GDK_KEY_PRESS_MASK, + GDK_KEY_PRESS_MASK | GDK_BUTTON_PRESS_MASK, }; // We need this window to receive input events at all. diff --git a/fastiv.c b/fastiv.c index 7aee564..f5fd463 100644 --- a/fastiv.c +++ b/fastiv.c @@ -317,6 +317,17 @@ on_key_press_view(G_GNUC_UNUSED GtkWidget *widget, GdkEventKey *event, return FALSE; } +static gboolean +on_button_press_view(G_GNUC_UNUSED GtkWidget *widget, GdkEventButton *event) +{ + if (!(event->state & gtk_accelerator_get_default_mod_mask()) && + event->button == 8 /* back */) { + gtk_stack_set_visible_child(GTK_STACK(g.stack), g.browser_scroller); + return TRUE; + } + return FALSE; +} + int main(int argc, char *argv[]) { @@ -377,6 +388,8 @@ main(int argc, char *argv[]) gtk_widget_set_hexpand(g.view, TRUE); g_signal_connect(g.view, "key-press-event", G_CALLBACK(on_key_press_view), NULL); + g_signal_connect(g.view, "button-press-event", + G_CALLBACK(on_button_press_view), NULL); gtk_container_add(GTK_CONTAINER(g.view_scroller), g.view); gtk_widget_show_all(g.view_scroller);