aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fastiv-view.c2
-rw-r--r--fastiv.c13
2 files changed, 14 insertions, 1 deletions
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);