From bug 97887 [1]: "It would be nice if nautilus changed the mouse pointer when loading folders (especially for us who do not use the toolbar)." "This seems fixed for spatilus." [1] http://bugzilla.gnome.org/show_bug.cgi?id=97887 -- Christian Neumair <chris gnome-de org>
Index: src/nautilus-spatial-window.c
===================================================================
RCS file: /cvs/gnome/nautilus/src/nautilus-spatial-window.c,v
retrieving revision 1.447
diff -u -p -r1.447 nautilus-spatial-window.c
--- src/nautilus-spatial-window.c 6 Jul 2005 20:25:52 -0000 1.447
+++ src/nautilus-spatial-window.c 10 Jul 2005 14:01:29 -0000
@@ -186,28 +186,6 @@ nautilus_spatial_window_unrealize (GtkWi
}
}
-
-static void
-nautilus_spatial_window_realize (GtkWidget *widget)
-{
- NautilusSpatialWindow *window;
-
- window = NAUTILUS_SPATIAL_WINDOW (widget);
-
- GTK_WIDGET_CLASS (parent_class)->realize (widget);
-
- if (window->loading) {
- GdkCursor *cursor;
-
- cursor = gdk_cursor_new (GDK_WATCH);
- gdk_window_set_cursor (widget->window, cursor);
- gdk_cursor_unref (cursor);
- } else {
- gdk_window_set_cursor (widget->window, NULL);
- }
-}
-
-
static void
nautilus_spatial_window_destroy (GtkObject *object)
{
@@ -392,26 +370,6 @@ real_get_default_size (NautilusWindow *w
static void
real_set_throbber_active (NautilusWindow *window, gboolean active)
{
- NautilusSpatialWindow *spatial;
-
- spatial = NAUTILUS_SPATIAL_WINDOW (window);
- spatial->loading = active;
-
- if (!GTK_WIDGET_REALIZED (GTK_WIDGET (window)))
- return;
-
- if (active) {
- GdkCursor *cursor;
-
- cursor = gdk_cursor_new (GDK_WATCH);
- gdk_window_set_cursor (GTK_WIDGET (window)->window,
- cursor);
- gdk_cursor_unref (cursor);
-
- } else {
- gdk_window_set_cursor (GTK_WIDGET (window)->window,
- NULL);
- }
}
static void
@@ -892,7 +850,6 @@ nautilus_spatial_window_class_init (Naut
GTK_WIDGET_CLASS (class)->show = nautilus_spatial_window_show;
GTK_WIDGET_CLASS (class)->configure_event = nautilus_spatial_window_configure_event;
GTK_WIDGET_CLASS (class)->unrealize = nautilus_spatial_window_unrealize;
- GTK_WIDGET_CLASS (class)->realize = nautilus_spatial_window_realize;
NAUTILUS_WINDOW_CLASS (class)->prompt_for_location =
real_prompt_for_location;
Index: src/nautilus-spatial-window.h
===================================================================
RCS file: /cvs/gnome/nautilus/src/nautilus-spatial-window.h,v
retrieving revision 1.112
diff -u -p -r1.112 nautilus-spatial-window.h
--- src/nautilus-spatial-window.h 21 Jun 2004 18:33:43 -0000 1.112
+++ src/nautilus-spatial-window.h 10 Jul 2005 14:01:29 -0000
@@ -47,7 +47,6 @@ struct _NautilusSpatialWindow {
NautilusWindow parent_object;
gboolean affect_spatial_window_on_next_location_change;
- gboolean loading;
NautilusSpatialWindowDetails *details;
};
Index: src/nautilus-window.c
===================================================================
RCS file: /cvs/gnome/nautilus/src/nautilus-window.c,v
retrieving revision 1.451
diff -u -p -r1.451 nautilus-window.c
--- src/nautilus-window.c 7 Jul 2005 10:16:41 -0000 1.451
+++ src/nautilus-window.c 10 Jul 2005 14:01:30 -0000
@@ -299,6 +299,20 @@ nautilus_window_allow_up (NautilusWindow
set_allow_up, (window, allow));
}
+static void
+update_cursor (NautilusWindow *window)
+{
+ GdkCursor *cursor;
+
+ if (window->details->allow_stop) {
+ cursor = gdk_cursor_new (GDK_WATCH);
+ gdk_window_set_cursor (GTK_WIDGET (window)->window, cursor);
+ gdk_cursor_unref (cursor);
+ } else {
+ gdk_window_set_cursor (GTK_WIDGET (window)->window, NULL);
+ }
+}
+
void
nautilus_window_allow_stop (NautilusWindow *window, gboolean allow)
{
@@ -309,6 +323,14 @@ nautilus_window_allow_stop (NautilusWind
action = gtk_action_group_get_action (window->details->main_action_group,
NAUTILUS_ACTION_STOP);
gtk_action_set_sensitive (action, allow);
+
+ if (window->details->allow_stop != allow) {
+ window->details->allow_stop = allow;
+
+ if (GTK_WIDGET_REALIZED (GTK_WIDGET (window))) {
+ update_cursor (window);
+ }
+ }
EEL_CALL_METHOD (NAUTILUS_WINDOW_CLASS, window,
set_throbber_active, (window, allow));
@@ -641,6 +663,12 @@ nautilus_window_size_request (GtkWidget
}
}
+static void
+nautilus_window_realize (GtkWidget *widget)
+{
+ GTK_WIDGET_CLASS (nautilus_window_parent_class)->realize (widget);
+ update_cursor (NAUTILUS_WINDOW (widget));
+}
/*
* Main API
@@ -1445,6 +1473,7 @@ nautilus_window_class_init (NautilusWind
GTK_OBJECT_CLASS (class)->destroy = nautilus_window_destroy;
GTK_WIDGET_CLASS (class)->show = nautilus_window_show;
GTK_WIDGET_CLASS (class)->size_request = nautilus_window_size_request;
+ GTK_WIDGET_CLASS (class)->realize = nautilus_window_realize;
class->add_current_location_to_history_list = real_add_current_location_to_history_list;
class->get_title = real_get_title;
class->set_title = real_set_title;
Index: src/nautilus-window-private.h
===================================================================
RCS file: /cvs/gnome/nautilus/src/nautilus-window-private.h,v
retrieving revision 1.109
diff -u -p -r1.109 nautilus-window-private.h
--- src/nautilus-window-private.h 8 Jul 2005 11:25:51 -0000 1.109
+++ src/nautilus-window-private.h 10 Jul 2005 14:01:30 -0000
@@ -70,6 +70,7 @@ struct NautilusWindowDetails
char *title;
NautilusFile *viewed_file;
gboolean viewed_file_seen;
+ gboolean allow_stop;
/* New location. */
NautilusLocationChangeType location_change_type;
Attachment:
signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil