From f27d0293d6ba096c8b9a2325bf482e1c9c281de7 Mon Sep 17 00:00:00 2001 From: tamplan Date: Sun, 24 May 2020 12:58:45 +0200 Subject: Add tab scrolling support for dialog windows --- src/eom-preferences-dialog.c | 2 +- src/eom-properties-dialog.c | 2 +- src/eom-util.c | 23 ++++++++++++++++++++--- src/eom-util.h | 4 ++-- 4 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/eom-preferences-dialog.c b/src/eom-preferences-dialog.c index 8ac8b7d..7b613b4 100644 --- a/src/eom-preferences-dialog.c +++ b/src/eom-preferences-dialog.c @@ -327,7 +327,7 @@ eom_preferences_dialog_init (EomPreferencesDialog *pref_dlg) gtk_widget_add_events (priv->notebook, GDK_SCROLL_MASK); g_signal_connect (priv->notebook, "scroll-event", - G_CALLBACK (eom_util_dialog_page_scroll_event_cb), + G_CALLBACK (eom_notebook_page_scroll_event_cb), NULL); } diff --git a/src/eom-properties-dialog.c b/src/eom-properties-dialog.c index 5b2446f..3295b2e 100644 --- a/src/eom-properties-dialog.c +++ b/src/eom-properties-dialog.c @@ -794,7 +794,7 @@ eom_properties_dialog_init (EomPropertiesDialog *prop_dlg) gtk_widget_add_events (priv->notebook, GDK_SCROLL_MASK); g_signal_connect (priv->notebook, "scroll-event", - G_CALLBACK (eom_util_dialog_page_scroll_event_cb), + G_CALLBACK (eom_notebook_page_scroll_event_cb), NULL); } diff --git a/src/eom-util.c b/src/eom-util.c index 9eccc73..69692d5 100644 --- a/src/eom-util.c +++ b/src/eom-util.c @@ -429,8 +429,8 @@ eom_util_show_file_in_filemanager (GFile *file, GtkWindow *toplevel) } gboolean -eom_util_dialog_page_scroll_event_cb (GtkWidget *widget, - GdkEventScroll *event) +eom_notebook_page_scroll_event_cb (GtkWidget *widget, + GdkEventScroll *event) { GtkNotebook *notebook = GTK_NOTEBOOK (widget); @@ -466,7 +466,24 @@ eom_util_dialog_page_scroll_event_cb (GtkWidget *widget, gtk_notebook_prev_page (notebook); break; case GDK_SCROLL_SMOOTH: - break; + switch (gtk_notebook_get_tab_pos (notebook)) + { + case GTK_POS_LEFT: + case GTK_POS_RIGHT: + if (event->delta_y > 0) + gtk_notebook_next_page (notebook); + else if (event->delta_y < 0) + gtk_notebook_prev_page (notebook); + break; + case GTK_POS_TOP: + case GTK_POS_BOTTOM: + if (event->delta_x > 0) + gtk_notebook_next_page (notebook); + else if (event->delta_x < 0) + gtk_notebook_prev_page (notebook); + break; + } + break; } return TRUE; diff --git a/src/eom-util.h b/src/eom-util.h index a2b0ae8..b713721 100644 --- a/src/eom-util.h +++ b/src/eom-util.h @@ -65,8 +65,8 @@ G_GNUC_INTERNAL void eom_util_show_file_in_filemanager (GFile *file, GtkWindow *toplevel); -gboolean eom_util_dialog_page_scroll_event_cb (GtkWidget *notebook, - GdkEventScroll *event); +gboolean eom_notebook_page_scroll_event_cb (GtkWidget *notebook, + GdkEventScroll *event); G_END_DECLS -- cgit v1.2.1