nautilus r14979 - in trunk: . src/file-manager
- From: cneumair svn gnome org
- To: svn-commits-list gnome org
- Subject: nautilus r14979 - in trunk: . src/file-manager
- Date: Fri, 20 Feb 2009 11:05:25 +0000 (UTC)
Author: cneumair
Date: Fri Feb 20 11:05:25 2009
New Revision: 14979
URL: http://svn.gnome.org/viewvc/nautilus?rev=14979&view=rev
Log:
2009-02-20 Christian Neumair <cneumair gnome org>
* src/file-manager/fm-directory-view.c
(fm_directory_view_handle_scroll_event),
(fm_directory_view_scroll_event):
* src/file-manager/fm-directory-view.h:
* src/file-manager/fm-icon-view.c (fm_icon_view_scroll_event),
(fm_icon_view_class_init):
Treat vertical scroll events as horizontal ones if compact view is
enabled, and if they do not bump the zoom level. Fixes #571770.
Modified:
trunk/ChangeLog
trunk/src/file-manager/fm-directory-view.c
trunk/src/file-manager/fm-directory-view.h
trunk/src/file-manager/fm-icon-view.c
Modified: trunk/src/file-manager/fm-directory-view.c
==============================================================================
--- trunk/src/file-manager/fm-directory-view.c (original)
+++ trunk/src/file-manager/fm-directory-view.c Fri Feb 20 11:05:25 2009
@@ -9574,15 +9574,11 @@
}
}
-/* handle Shift+Scroll, which will cause a zoom-in/out */
-static gboolean
-fm_directory_view_scroll_event (GtkWidget *widget,
- GdkEventScroll *event)
-{
- FMDirectoryView *directory_view;
-
- directory_view = FM_DIRECTORY_VIEW (widget);
+gboolean
+fm_directory_view_handle_scroll_event (FMDirectoryView *directory_view,
+ GdkEventScroll *event)
+{
if (event->state & GDK_CONTROL_MASK) {
switch (event->direction) {
case GDK_SCROLL_UP:
@@ -9604,6 +9600,21 @@
}
}
+ return FALSE;
+}
+
+/* handle Shift+Scroll, which will cause a zoom-in/out */
+static gboolean
+fm_directory_view_scroll_event (GtkWidget *widget,
+ GdkEventScroll *event)
+{
+ FMDirectoryView *directory_view;
+
+ directory_view = FM_DIRECTORY_VIEW (widget);
+ if (fm_directory_view_handle_scroll_event (directory_view, event)) {
+ return TRUE;
+ }
+
return GTK_WIDGET_CLASS (parent_class)->scroll_event (widget, event);
}
Modified: trunk/src/file-manager/fm-directory-view.h
==============================================================================
--- trunk/src/file-manager/fm-directory-view.h (original)
+++ trunk/src/file-manager/fm-directory-view.h Fri Feb 20 11:05:25 2009
@@ -439,6 +439,8 @@
void fm_directory_view_set_show_foreign (FMDirectoryView *view,
gboolean show_foreign);
void fm_directory_view_init_view_iface (NautilusViewIface *iface);
+gboolean fm_directory_view_handle_scroll_event (FMDirectoryView *view,
+ GdkEventScroll *event);
void fm_directory_view_handle_netscape_url_drop (FMDirectoryView *view,
const char *encoded_url,
const char *target_uri,
Modified: trunk/src/file-manager/fm-icon-view.c
==============================================================================
--- trunk/src/file-manager/fm-icon-view.c (original)
+++ trunk/src/file-manager/fm-icon-view.c Fri Feb 20 11:05:25 2009
@@ -2179,6 +2179,43 @@
}
}
+static gboolean
+fm_icon_view_scroll_event (GtkWidget *widget,
+ GdkEventScroll *scroll_event)
+{
+ FMIconView *icon_view;
+ GdkEvent *event_copy;
+ GdkEventScroll *scroll_event_copy;
+ gboolean ret;
+
+ icon_view = FM_ICON_VIEW (widget);
+
+ 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) {
+ scroll_event_copy->direction = GDK_SCROLL_LEFT;
+ } else {
+ scroll_event_copy->direction = GDK_SCROLL_RIGHT;
+ }
+
+ ret = gtk_widget_event (widget, event_copy);
+ gdk_event_free (event_copy);
+ }
+
+ return ret;
+ }
+
+ return GTK_WIDGET_CLASS (fm_icon_view_parent_class)->scroll_event (widget, scroll_event);
+}
+
static void
selection_changed_callback (NautilusIconContainer *container,
FMIconView *icon_view)
@@ -2794,6 +2831,7 @@
GTK_OBJECT_CLASS (klass)->destroy = fm_icon_view_destroy;
GTK_WIDGET_CLASS (klass)->screen_changed = fm_icon_view_screen_changed;
+ GTK_WIDGET_CLASS (klass)->scroll_event = fm_icon_view_scroll_event;
fm_directory_view_class->add_file = fm_icon_view_add_file;
fm_directory_view_class->flush_added_files = fm_icon_view_flush_added_files;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]