[Xfce4-commits] <ristretto:master> Add navigate-images with scroll-button.
Stephan Arts
noreply at xfce.org
Tue Aug 9 20:38:03 CEST 2011
Updating branch refs/heads/master
to 610a0686255b44abf4894ee3aca2e90650a10454 (commit)
from f0b4198dbf8bbe89ae8e9c03c1ea0f51bd9d394b (commit)
commit 610a0686255b44abf4894ee3aca2e90650a10454
Author: Stephan Arts <stephan at xfce.org>
Date: Tue Aug 9 20:35:33 2011 +0200
Add navigate-images with scroll-button.
src/image_viewer.c | 15 ++++++++-------
src/main_window.c | 31 +++++++++++++++++++++++++++++++
2 files changed, 39 insertions(+), 7 deletions(-)
diff --git a/src/image_viewer.c b/src/image_viewer.c
index f6b288b..e83169e 100644
--- a/src/image_viewer.c
+++ b/src/image_viewer.c
@@ -159,7 +159,7 @@ cb_rstto_image_viewer_update_pixbuf (RsttoImageViewer *viewer);
static gboolean
cb_rstto_image_viewer_queued_repaint (RsttoImageViewer *viewer);
-static void
+static gboolean
cb_rstto_image_viewer_scroll_event (RsttoImageViewer *viewer, GdkEventScroll *event);
static gboolean
cb_rstto_image_viewer_motion_notify_event (RsttoImageViewer *viewer,
@@ -238,10 +238,10 @@ rstto_image_viewer_init(RsttoImageViewer *viewer)
GDK_ENTER_NOTIFY_MASK |
GDK_POINTER_MOTION_MASK);
- g_signal_connect(G_OBJECT(viewer), "scroll_event", G_CALLBACK(cb_rstto_image_viewer_scroll_event), NULL);
- g_signal_connect(G_OBJECT(viewer), "button_press_event", G_CALLBACK(cb_rstto_image_viewer_button_press_event), NULL);
- g_signal_connect(G_OBJECT(viewer), "button_release_event", G_CALLBACK(cb_rstto_image_viewer_button_release_event), NULL);
- g_signal_connect(G_OBJECT(viewer), "motion_notify_event", G_CALLBACK(cb_rstto_image_viewer_motion_notify_event), NULL);
+ g_signal_connect(G_OBJECT(viewer), "scroll-event", G_CALLBACK(cb_rstto_image_viewer_scroll_event), NULL);
+ g_signal_connect(G_OBJECT(viewer), "button-press-event", G_CALLBACK(cb_rstto_image_viewer_button_press_event), NULL);
+ g_signal_connect(G_OBJECT(viewer), "button-release-event", G_CALLBACK(cb_rstto_image_viewer_button_release_event), NULL);
+ g_signal_connect(G_OBJECT(viewer), "motion-notify-event", G_CALLBACK(cb_rstto_image_viewer_motion_notify_event), NULL);
/*
gtk_drag_dest_set(GTK_WIDGET(viewer), 0, drop_targets, G_N_ELEMENTS(drop_targets),
@@ -1640,14 +1640,14 @@ cb_rstto_image_viewer_queued_repaint (RsttoImageViewer *viewer)
rstto_image_viewer_paint (GTK_WIDGET (viewer));
}
-static void
+static gboolean
cb_rstto_image_viewer_scroll_event (RsttoImageViewer *viewer, GdkEventScroll *event)
{
gdouble tmp_x, tmp_y;
gdouble scale;
GtkWidget *widget = GTK_WIDGET(viewer);
- if ((event->state & (GDK_CONTROL_MASK)))
+ if (event->state & (GDK_CONTROL_MASK))
{
viewer->priv->auto_scale = FALSE;
tmp_x = (gtk_adjustment_get_value(viewer->hadjustment) + event->x) / viewer->priv->scale;
@@ -1750,6 +1750,7 @@ cb_rstto_image_viewer_scroll_event (RsttoImageViewer *viewer, GdkEventScroll *ev
rstto_image_viewer_queued_repaint (viewer, TRUE);
}
+ return FALSE;
}
static gboolean
diff --git a/src/main_window.c b/src/main_window.c
index c7fddad..fd33502 100644
--- a/src/main_window.c
+++ b/src/main_window.c
@@ -247,6 +247,10 @@ static gboolean
cb_rstto_main_window_image_viewer_enter_notify_event (GtkWidget *widget,
GdkEventCrossing *event,
gpointer user_data);
+static gboolean
+cb_rstto_main_window_image_viewer_scroll_event (GtkWidget *widget,
+ GdkEventScroll *event,
+ gpointer user_data);
static void
rstto_main_window_update_buttons (RsttoMainWindow *window);
@@ -438,6 +442,7 @@ rstto_main_window_init (RsttoMainWindow *window)
gtk_accel_group_connect_by_path (accel_group, "<Window>/next-image", next_image_closure);
gtk_accel_group_connect_by_path (accel_group, "<Window>/previous-image", previous_image_closure);
gtk_accel_group_connect_by_path (accel_group, "<Window>/quit", quit_closure);
+
/* Set default accelerators */
gtk_accel_map_change_entry ("<Window>/unfullscreen", GDK_Escape, 0, FALSE);
gtk_accel_map_change_entry ("<Window>/next-image", GDK_Page_Down, 0, FALSE);
@@ -660,6 +665,8 @@ rstto_main_window_init (RsttoMainWindow *window)
g_signal_connect(G_OBJECT(window), "motion-notify-event", G_CALLBACK(cb_rstto_main_window_motion_notify_event), window);
g_signal_connect(G_OBJECT(window->priv->image_viewer), "enter-notify-event", G_CALLBACK(cb_rstto_main_window_image_viewer_enter_notify_event), window);
+ g_signal_connect(G_OBJECT(window->priv->image_viewer), "scroll-event", G_CALLBACK(cb_rstto_main_window_image_viewer_scroll_event), window);
+
g_signal_connect(G_OBJECT(window), "configure-event", G_CALLBACK(cb_rstto_main_window_configure_event), NULL);
g_signal_connect(G_OBJECT(window), "window-state-event", G_CALLBACK(cb_rstto_main_window_state_event), NULL);
g_signal_connect(G_OBJECT(window->priv->image_list_toolbar), "button-press-event", G_CALLBACK(cb_rstto_main_window_navigationtoolbar_button_press_event), window);
@@ -1442,6 +1449,30 @@ cb_rstto_main_window_motion_notify_event (RsttoMainWindow *window,
}
static gboolean
+cb_rstto_main_window_image_viewer_scroll_event (GtkWidget *widget,
+ GdkEventScroll *event,
+ gpointer user_data)
+{
+ g_debug("%s", __FUNCTION__);
+ RsttoMainWindow *window = RSTTO_MAIN_WINDOW (user_data);
+ if (!(event->state & (GDK_CONTROL_MASK)))
+ {
+ switch(event->direction)
+ {
+ case GDK_SCROLL_UP:
+ case GDK_SCROLL_LEFT:
+ rstto_image_list_iter_previous (window->priv->iter);
+ break;
+ case GDK_SCROLL_DOWN:
+ case GDK_SCROLL_RIGHT:
+ rstto_image_list_iter_next (window->priv->iter);
+ break;
+ }
+ }
+ return FALSE;
+}
+
+static gboolean
cb_rstto_main_window_image_viewer_enter_notify_event (GtkWidget *widget,
GdkEventCrossing *event,
gpointer user_data)
More information about the Xfce4-commits
mailing list