diff options
-rw-r--r-- | src/file-manager/fm-icon-view.c | 19 |
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; } |