diff options
-rw-r--r-- | fastiv.c | 25 |
1 files changed, 22 insertions, 3 deletions
@@ -368,12 +368,29 @@ on_key_press_view(G_GNUC_UNUSED GtkWidget *widget, GdkEventKey *event, 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 */) { + if ((event->state & gtk_accelerator_get_default_mod_mask())) + return FALSE; + switch (event->button) { + case 8: // back gtk_stack_set_visible_child(GTK_STACK(g.stack), g.browser_paned); return TRUE; + default: + return FALSE; + } +} + +static gboolean +on_button_press_browser(G_GNUC_UNUSED GtkWidget *widget, GdkEventButton *event) +{ + if ((event->state & gtk_accelerator_get_default_mod_mask())) + return FALSE; + switch (event->button) { + case 9: // forward + gtk_stack_set_visible_child(GTK_STACK(g.stack), g.view_scroller); + return TRUE; + default: + return FALSE; } - return FALSE; } int @@ -453,6 +470,8 @@ main(int argc, char *argv[]) gtk_widget_set_hexpand(g.browser, TRUE); g_signal_connect(g.browser, "item-activated", G_CALLBACK(on_item_activated), NULL); + g_signal_connect(g.browser, "button-press-event", + G_CALLBACK(on_button_press_browser), NULL); gtk_container_add(GTK_CONTAINER(g.browser_scroller), g.browser); // TODO(p): Put a GtkListBox underneath, but with subdirectories. |