summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/file-manager/fm-icon-view.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/file-manager/fm-icon-view.c b/src/file-manager/fm-icon-view.c
index d5980511..c348cbd6 100644
--- a/src/file-manager/fm-icon-view.c
+++ b/src/file-manager/fm-icon-view.c
@@ -2493,7 +2493,7 @@ fm_icon_view_scroll_event (GtkWidget *widget,
gboolean ret;
icon_view = FM_ICON_VIEW (widget);
-
+#if GTK_CHECK_VERSION (3, 0, 0)
if (icon_view->details->compact &&
(scroll_event->direction == GDK_SCROLL_UP ||
scroll_event->direction == GDK_SCROLL_DOWN ||
@@ -2516,6 +2516,23 @@ fm_icon_view_scroll_event (GtkWidget *widget,
}
}
if ((scroll_event_copy->direction == GDK_SCROLL_UP) || (scroll_event_copy->delta_x == -1.0))
+
+#else
+
+ if (icon_view->details->compact &&
+ (scroll_event->direction == GDK_SCROLL_UP ||
+ scroll_event->direction == GDK_SCROLL_DOWN))
+ {
+ ret = fm_directory_view_handle_scroll_event (FM_DIRECTORY_VIEW (icon_view), scroll_event);
+ if (!ret)
+ {
+ /* in column-wise layout, re-emit vertical mouse scroll events as horizontal ones,
+ * if they don't bump zoom */
+ event_copy = gdk_event_copy ((GdkEvent *) scroll_event);
+
+ scroll_event_copy = (GdkEventScroll *) event_copy;
+ if (scroll_event_copy->direction == GDK_SCROLL_UP)
+#endif
{
scroll_event_copy->direction = GDK_SCROLL_LEFT;
}