[Xfce4-commits] <thunar:master> Use a GtkSpinner instead of the ThunarThrobber.

Nick Schermer noreply at xfce.org
Sun Sep 16 20:20:04 CEST 2012


Updating branch refs/heads/master
         to e896587aceea32af7bb7bfab5a30e644087cd68d (commit)
       from c1420216a140e6e87b9291f4a5dcc0223c4432e7 (commit)

commit e896587aceea32af7bb7bfab5a30e644087cd68d
Author: Nick Schermer <nick at xfce.org>
Date:   Fri May 25 20:18:19 2012 +0200

    Use a GtkSpinner instead of the ThunarThrobber.
    
    This is a new widget since 2.20, so we can use it. In Gtk3
    this widget also has a special rendering class in the
    theme engine.

 .gitignore                          |    1 -
 po/POTFILES.in                      |    1 -
 thunar/Makefile.am                  |    9 -
 thunar/thunar-size-label.c          |   39 ++--
 thunar/thunar-throbber-fallback.h   |   31 ---
 thunar/thunar-throbber-fallback.png |  Bin 2713 -> 0 bytes
 thunar/thunar-throbber.c            |  371 -----------------------------------
 thunar/thunar-throbber.h            |   47 -----
 thunar/thunar-window.c              |   16 +-
 9 files changed, 28 insertions(+), 487 deletions(-)

diff --git a/.gitignore b/.gitignore
index 245172f..51fb0b1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -107,7 +107,6 @@ tests/data/.*.swp
 thunar/*.loT
 thunar/.*.swp
 thunar/thunar-fallback-icon.c
-thunar/thunar-throbber-fallback.c
 thunar/thunar-thumbnail-frame.c
 thunar/thunar-thumbnailer-manager-proxy.h
 thunar/thunar-thumbnailer-proxy.h
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 63e17af..751ba59 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -78,7 +78,6 @@ thunar/thunar-statusbar.c
 thunar/thunar-stock.c
 thunar/thunar-templates-action.c
 thunar/thunar-text-renderer.c
-thunar/thunar-throbber.c
 thunar/thunar-thumbnail-cache.c
 thunar/thunar-thumbnailer.c
 thunar/thunar-transfer-job.c
diff --git a/thunar/Makefile.am b/thunar/Makefile.am
index 0f9c198..4065d87 100644
--- a/thunar/Makefile.am
+++ b/thunar/Makefile.am
@@ -195,10 +195,6 @@ thunar_SOURCES =							\
 	thunar-templates-action.h					\
 	thunar-text-renderer.c						\
 	thunar-text-renderer.h						\
-	thunar-throbber.c						\
-	thunar-throbber.h						\
-	thunar-throbber-fallback.c					\
-	thunar-throbber-fallback.h					\
 	thunar-thumbnail-cache.c					\
 	thunar-thumbnail-cache.h					\
 	thunar-thumbnailer.c						\
@@ -318,7 +314,6 @@ DISTCLEANFILES +=							\
 	thunar-shortcuts-pane-ui.h					\
 	thunar-renamer-dialog-ui.h					\
 	thunar-standard-view-ui.h					\
-	thunar-throbber-fallback.c					\
 	thunar-thumbnail-frame.c					\
 	thunar-window-ui.h
 
@@ -331,7 +326,6 @@ BUILT_SOURCES =								\
 	thunar-shortcuts-pane-ui.h					\
 	thunar-renamer-dialog-ui.h					\
 	thunar-standard-view-ui.h					\
-	thunar-throbber-fallback.c					\
 	thunar-thumbnail-frame.c					\
 	thunar-window-ui.h
 
@@ -356,9 +350,6 @@ thunar-thumbnail-cache-proxy.h: $(srcdir)/thunar-thumbnail-cache-dbus.xml Makefi
 	)
 endif
 
-thunar-throbber-fallback.c: $(srcdir)/thunar-throbber-fallback.png Makefile
-	$(AM_V_GEN) (echo "#include <thunar/thunar-throbber-fallback.h>" && gdk-pixbuf-csource --extern --raw --stream --name=thunar_throbber_fallback $(srcdir)/thunar-throbber-fallback.png) > thunar-throbber-fallback.c
-
 thunar-thumbnail-frame.c: $(srcdir)/thunar-thumbnail-frame.png Makefile
 	$(AM_V_GEN) (echo "#include <thunar/thunar-thumbnail-frame.h>" && gdk-pixbuf-csource --extern --raw --stream --name=thunar_thumbnail_frame $(srcdir)/thunar-thumbnail-frame.png) > thunar-thumbnail-frame.c
 
diff --git a/thunar/thunar-size-label.c b/thunar/thunar-size-label.c
index 3f0c12b..679a256 100644
--- a/thunar/thunar-size-label.c
+++ b/thunar/thunar-size-label.c
@@ -33,7 +33,6 @@
 #include <thunar/thunar-gtk-extensions.h>
 #include <thunar/thunar-private.h>
 #include <thunar/thunar-size-label.h>
-#include <thunar/thunar-throbber.h>
 #include <thunar/thunar-deep-count-job.h>
 
 
@@ -88,7 +87,7 @@ struct _ThunarSizeLabel
   GList              *files;
 
   GtkWidget          *label;
-  GtkWidget          *throbber;
+  GtkWidget          *spinner;
 };
 
 
@@ -132,17 +131,19 @@ thunar_size_label_init (ThunarSizeLabel *size_label)
   /* configure the box */
   gtk_box_set_spacing (GTK_BOX (size_label), 6);
 
-  /* add an evenbox for the throbber */
+  /* add an evenbox for the spinner */
   ebox = gtk_event_box_new ();
   gtk_event_box_set_visible_window (GTK_EVENT_BOX (ebox), FALSE);
   g_signal_connect (G_OBJECT (ebox), "button-press-event", G_CALLBACK (thunar_size_label_button_press_event), size_label);
   gtk_widget_set_tooltip_text (ebox, _("Click here to stop calculating the total size of the folder."));
   gtk_box_pack_start (GTK_BOX (size_label), ebox, FALSE, FALSE, 0);
 
-  /* add the throbber widget */
-  size_label->throbber = thunar_throbber_new ();
-  exo_binding_new (G_OBJECT (size_label->throbber), "visible", G_OBJECT (ebox), "visible");
-  gtk_container_add (GTK_CONTAINER (ebox), size_label->throbber);
+  /* add the spinner widget */
+  size_label->spinner = gtk_spinner_new ();
+  gtk_widget_set_size_request (size_label->spinner, 16, 16);
+  exo_binding_new (G_OBJECT (size_label->spinner), "visible", G_OBJECT (ebox), "visible");
+  gtk_container_add (GTK_CONTAINER (ebox), size_label->spinner);
+  gtk_widget_show (size_label->spinner);
 
   /* add the label widget */
   size_label->label = gtk_label_new (_("Calculating..."));
@@ -230,7 +231,7 @@ thunar_size_label_button_press_event (GtkWidget       *ebox,
   _thunar_return_val_if_fail (GTK_IS_EVENT_BOX (ebox), FALSE);
   _thunar_return_val_if_fail (THUNAR_IS_SIZE_LABEL (size_label), FALSE);
 
-  /* left button press on the throbber cancels the calculation */
+  /* left button press on the spinner cancels the calculation */
   if (G_LIKELY (event->button == 1))
     {
       /* cancel the pending job (if any) */
@@ -242,9 +243,9 @@ thunar_size_label_button_press_event (GtkWidget       *ebox,
           size_label->job = NULL;
         }
 
-      /* be sure to stop and hide the throbber */
-      thunar_throbber_set_animated (THUNAR_THROBBER (size_label->throbber), FALSE);
-      gtk_widget_hide (size_label->throbber);
+      /* be sure to stop and hide the spinner */
+      gtk_spinner_stop (GTK_SPINNER (size_label->spinner));
+      gtk_widget_hide (size_label->spinner);
 
       /* tell the user that the operation was canceled */
       gtk_label_set_text (GTK_LABEL (size_label->label), _("Calculation aborted"));
@@ -289,17 +290,17 @@ thunar_size_label_files_changed (ThunarSizeLabel *size_label)
 
       /* tell the user that we started calculation */
       gtk_label_set_text (GTK_LABEL (size_label->label), _("Calculating..."));
-      thunar_throbber_set_animated (THUNAR_THROBBER (size_label->throbber), TRUE);
-      gtk_widget_show (size_label->throbber);
+      gtk_spinner_start (GTK_SPINNER (size_label->spinner));
+      gtk_widget_show (size_label->spinner);
 
       /* launch the job */
       exo_job_launch (EXO_JOB (size_label->job));
     }
   else
     {
-      /* this is going to be quick, stop and hide the throbber */
-      thunar_throbber_set_animated (THUNAR_THROBBER (size_label->throbber), FALSE);
-      gtk_widget_hide (size_label->throbber);
+      /* this is going to be quick, stop and hide the spinner */
+      gtk_spinner_stop (GTK_SPINNER (size_label->spinner));
+      gtk_widget_hide (size_label->spinner);
 
       /* determine the size of the file */
       size = thunar_file_get_size (THUNAR_FILE (size_label->files->data));
@@ -336,9 +337,9 @@ thunar_size_label_finished (ExoJob          *job,
   _thunar_return_if_fail (THUNAR_IS_SIZE_LABEL (size_label));
   _thunar_return_if_fail (size_label->job == THUNAR_DEEP_COUNT_JOB (job));
 
-  /* stop and hide the throbber */
-  thunar_throbber_set_animated (THUNAR_THROBBER (size_label->throbber), FALSE);
-  gtk_widget_hide (size_label->throbber);
+  /* stop and hide the spinner */
+  gtk_spinner_stop (GTK_SPINNER (size_label->spinner));
+  gtk_widget_hide (size_label->spinner);
 
   /* disconnect from the job */
   g_signal_handlers_disconnect_matched (size_label->job, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, size_label);
diff --git a/thunar/thunar-throbber-fallback.h b/thunar/thunar-throbber-fallback.h
deleted file mode 100644
index 6481258..0000000
--- a/thunar/thunar-throbber-fallback.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* $Id$ */
-/*-
- * Copyright (c) 2006 Benedikt Meurer <benny at xfce.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
- * Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#ifndef __THUNAR_THROBBER_FALLBACK_H__
-#define __THUNAR_THROBBER_FALLBACK_H__
-
-#include <glib.h>
-
-G_BEGIN_DECLS;
-
-extern const guint8 thunar_throbber_fallback[];
-
-G_END_DECLS;
-
-#endif /* !__THUNAR_THROBBER_FALLBACK_H__ */
diff --git a/thunar/thunar-throbber-fallback.png b/thunar/thunar-throbber-fallback.png
deleted file mode 100644
index 5f0a19d..0000000
Binary files a/thunar/thunar-throbber-fallback.png and /dev/null differ
diff --git a/thunar/thunar-throbber.c b/thunar/thunar-throbber.c
deleted file mode 100644
index 4bcd087..0000000
--- a/thunar/thunar-throbber.c
+++ /dev/null
@@ -1,371 +0,0 @@
-/* $Id$ */
-/*-
- * Copyright (c) 2005-2006 Benedikt Meurer <benny at xfce.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
- * Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <exo/exo.h>
-
-#include <thunar/thunar-gobject-extensions.h>
-#include <thunar/thunar-private.h>
-#include <thunar/thunar-throbber.h>
-#include <thunar/thunar-throbber-fallback.h>
-
-
-
-/* Property identifiers */
-enum
-{
-  PROP_0,
-  PROP_ANIMATED,
-};
-
-
-
-static void     thunar_throbber_dispose       (GObject              *object);
-static void     thunar_throbber_get_property  (GObject              *object,
-                                               guint                 prop_id,
-                                               GValue               *value,
-                                               GParamSpec           *pspec);
-static void     thunar_throbber_set_property  (GObject              *object,
-                                               guint                 prop_id,
-                                               const GValue         *value,
-                                               GParamSpec           *pspec);
-static void     thunar_throbber_realize       (GtkWidget            *widget);
-static void     thunar_throbber_unrealize     (GtkWidget            *widget);
-static void     thunar_throbber_size_request  (GtkWidget            *widget,
-                                               GtkRequisition       *requisition);
-static gboolean thunar_throbber_expose_event  (GtkWidget            *widget,
-                                               GdkEventExpose       *event);
-static gboolean thunar_throbber_timer         (gpointer              user_data);
-static void     thunar_throbber_timer_destroy (gpointer              user_data);
-
-
-
-struct _ThunarThrobberClass
-{
-  GtkWidgetClass __parent__;
-};
-
-struct _ThunarThrobber
-{
-  GtkWidget __parent__;
-
-  GdkPixbuf *icon;
-
-  gboolean   animated;
-  gint       index;
-  gint       timer_id;
-};
-
-
-
-G_DEFINE_TYPE (ThunarThrobber, thunar_throbber, GTK_TYPE_WIDGET)
-
-
-
-static void
-thunar_throbber_class_init (ThunarThrobberClass *klass)
-{
-  GtkWidgetClass *gtkwidget_class;
-  GObjectClass   *gobject_class;
-  GdkPixbuf      *icon;
-
-  gobject_class = G_OBJECT_CLASS (klass);
-  gobject_class->dispose = thunar_throbber_dispose;
-  gobject_class->get_property = thunar_throbber_get_property;
-  gobject_class->set_property = thunar_throbber_set_property;
-
-  gtkwidget_class = GTK_WIDGET_CLASS (klass);
-  gtkwidget_class->realize = thunar_throbber_realize;
-  gtkwidget_class->unrealize = thunar_throbber_unrealize;
-  gtkwidget_class->size_request = thunar_throbber_size_request;
-  gtkwidget_class->expose_event = thunar_throbber_expose_event;
-
-  /**
-   * ThunarThrobber:animated:
-   *
-   * Whether the throbber should display an animation.
-   **/
-  g_object_class_install_property (gobject_class,
-                                   PROP_ANIMATED,
-                                   g_param_spec_boolean ("animated",
-                                                         "animated",
-                                                         "animated",
-                                                         FALSE,
-                                                         EXO_PARAM_READWRITE));
-
-  /* register the "process-working" fallback icon */
-  icon = gdk_pixbuf_new_from_inline (-1, thunar_throbber_fallback, FALSE, NULL);
-  gtk_icon_theme_add_builtin_icon ("process-working", 16, icon);
-  g_object_unref (G_OBJECT (icon));
-}
-
-
-
-static void
-thunar_throbber_init (ThunarThrobber *throbber)
-{
-  GTK_WIDGET_SET_FLAGS (throbber, GTK_NO_WINDOW);
-  throbber->timer_id = -1;
-}
-
-
-
-static void
-thunar_throbber_dispose (GObject *object)
-{
-  ThunarThrobber *throbber = THUNAR_THROBBER (object);
-
-  /* stop any running animation */
-  if (G_UNLIKELY (throbber->timer_id >= 0))
-    g_source_remove (throbber->timer_id);
-
-  (*G_OBJECT_CLASS (thunar_throbber_parent_class)->dispose) (object);
-}
-
-
-
-static void
-thunar_throbber_get_property (GObject    *object,
-                              guint       prop_id,
-                              GValue     *value,
-                              GParamSpec *pspec)
-{
-  ThunarThrobber *throbber = THUNAR_THROBBER (object);
-
-  switch (prop_id)
-    {
-    case PROP_ANIMATED:
-      g_value_set_boolean (value, thunar_throbber_get_animated (throbber));
-      break;
-
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-      break;
-    }
-}
-
-
-
-static void
-thunar_throbber_set_property (GObject      *object,
-                              guint         prop_id,
-                              const GValue *value,
-                              GParamSpec   *pspec)
-{
-  ThunarThrobber *throbber = THUNAR_THROBBER (object);
-
-  switch (prop_id)
-    {
-    case PROP_ANIMATED:
-      thunar_throbber_set_animated (throbber, g_value_get_boolean (value));
-      break;
-
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-      break;
-    }
-}
-
-
-
-static void
-thunar_throbber_realize (GtkWidget *widget)
-{
-  ThunarThrobber *throbber = THUNAR_THROBBER (widget);
-  GtkIconTheme   *icon_theme;
-
-  /* let Gtk+ realize the widget */
-  (*GTK_WIDGET_CLASS (thunar_throbber_parent_class)->realize) (widget);
-
-  /* determine the icon theme for our screen */
-  icon_theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (widget));
-
-  /* try to lookup the "process-working" icon */
-  throbber->icon = gtk_icon_theme_load_icon (icon_theme, "process-working", 16, GTK_ICON_LOOKUP_USE_BUILTIN | GTK_ICON_LOOKUP_NO_SVG, NULL);
-}
-
-
-
-static void
-thunar_throbber_unrealize (GtkWidget *widget)
-{
-  ThunarThrobber *throbber = THUNAR_THROBBER (widget);
-
-  /* release the icon if any */
-  if (G_LIKELY (throbber->icon != NULL))
-    {
-      g_object_unref (G_OBJECT (throbber->icon));
-      throbber->icon = NULL;
-    }
-
-  /* let Gtk+ unrealize the widget */
-  (*GTK_WIDGET_CLASS (thunar_throbber_parent_class)->unrealize) (widget);
-}
-
-
-
-static void
-thunar_throbber_size_request (GtkWidget      *widget,
-                              GtkRequisition *requisition)
-{
-  requisition->width = 16;
-  requisition->height = 16;
-}
-
-
-
-static gboolean
-thunar_throbber_expose_event (GtkWidget      *widget,
-                              GdkEventExpose *event)
-{
-  ThunarThrobber *throbber = THUNAR_THROBBER (widget);
-  gint            icon_index;
-  gint            icon_cols;
-  gint            icon_rows;
-  gint            icon_x;
-  gint            icon_y;
-
-  /* verify that we have a valid icon */
-  if (G_LIKELY (throbber->icon != NULL))
-    {
-      /* determine the icon columns and icon rows */
-      icon_cols = gdk_pixbuf_get_width (throbber->icon) / 16;
-      icon_rows = gdk_pixbuf_get_height (throbber->icon) / 16;
-
-      /* verify that the icon is usable */
-      if (G_LIKELY (icon_cols > 0 && icon_rows > 0))
-        {
-          /* determine the icon index */
-          icon_index = throbber->index % (icon_cols * icon_rows);
-
-          /* make sure, we don't display the "empty state" while animated */
-          if (G_LIKELY (throbber->timer_id >= 0))
-            icon_index = MAX (icon_index, 1);
-
-          /* determine the icon x/y offset for the icon index */
-          icon_x = (icon_index % icon_cols) * 16;
-          icon_y = (icon_index / icon_cols) * 16;
-
-          /* render the given part of the icon */
-          gdk_draw_pixbuf (event->window, NULL, throbber->icon, icon_x, icon_y,
-                           widget->allocation.x, widget->allocation.y,
-                           16, 16, GDK_RGB_DITHER_NONE, 0, 0);
-        }
-    }
-
-  return TRUE;
-}
-
-
-
-static gboolean
-thunar_throbber_timer (gpointer user_data)
-{
-  ThunarThrobber *throbber = THUNAR_THROBBER (user_data);
-
-  GDK_THREADS_ENTER ();
-  throbber->index += 1;
-  gtk_widget_queue_draw (GTK_WIDGET (throbber));
-  GDK_THREADS_LEAVE ();
-
-  return throbber->animated;
-}
-
-
-
-static void
-thunar_throbber_timer_destroy (gpointer user_data)
-{
-  THUNAR_THROBBER (user_data)->index = 0;
-  THUNAR_THROBBER (user_data)->timer_id = -1;
-}
-
-
-
-/**
- * thunar_throbber_new:
- *
- * Allocates a new #ThunarThrobber instance.
- *
- * Return value: the newly allocated #ThunarThrobber.
- **/
-GtkWidget*
-thunar_throbber_new (void)
-{
-  return g_object_new (THUNAR_TYPE_THROBBER, NULL);
-}
-
-
-
-/**
- * thunar_throbber_get_animated:
- * @throbber : a #ThunarThrobber.
- *
- * Returns whether @throbber is currently animated.
- *
- * Return value: %TRUE if @throbber is animated.
- **/
-gboolean
-thunar_throbber_get_animated (const ThunarThrobber *throbber)
-{
-  _thunar_return_val_if_fail (THUNAR_IS_THROBBER (throbber), FALSE);
-  return throbber->animated;
-}
-
-
-
-/**
- * thunar_throbber_set_animated:
- * @throbber : a #ThunarThrobber.
- * @animated : whether to animate @throbber.
- *
- * If @animated is %TRUE, @throbber will display an animation.
- **/
-void
-thunar_throbber_set_animated (ThunarThrobber *throbber,
-                              gboolean        animated)
-{
-  _thunar_return_if_fail (THUNAR_IS_THROBBER (throbber));
-
-  /* check if we're already in the requested state */
-  if (G_UNLIKELY (throbber->animated == animated))
-    return;
-
-  /* pick up the new state */
-  throbber->animated = animated;
-
-  /* start the timer if animated and not already running */
-  if (animated && (throbber->timer_id < 0))
-    {
-      /* start the animation */
-      throbber->timer_id = g_timeout_add_full (G_PRIORITY_LOW, 25, thunar_throbber_timer,
-                                               throbber, thunar_throbber_timer_destroy);
-    }
-
-  /* schedule a redraw with the new animation state */
-  gtk_widget_queue_draw (GTK_WIDGET (throbber));
-
-  /* notify listeners */
-  g_object_notify (G_OBJECT (throbber), "animated");
-}
-
-
diff --git a/thunar/thunar-throbber.h b/thunar/thunar-throbber.h
deleted file mode 100644
index 9484f42..0000000
--- a/thunar/thunar-throbber.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* $Id$ */
-/*-
- * Copyright (c) 2005-2006 Benedikt Meurer <benny at xfce.org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the Free
- * Software Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
- * more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
- * Place, Suite 330, Boston, MA  02111-1307  USA
- */
-
-#ifndef __THUNAR_THROBBER_H__
-#define __THUNAR_THROBBER_H__
-
-#include <gtk/gtk.h>
-
-G_BEGIN_DECLS;
-
-typedef struct _ThunarThrobberClass ThunarThrobberClass;
-typedef struct _ThunarThrobber      ThunarThrobber;
-
-#define THUNAR_TYPE_THROBBER            (thunar_throbber_get_type ())
-#define THUNAR_THROBBER(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), THUNAR_TYPE_THROBBER, ThunarThrobber))
-#define THUNAR_THROBBER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), THUNAR_TYPE_THROBBER, ThunarThrobberClass))
-#define THUNAR_IS_THROBBER(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), THUNAR_TYPE_THROBBER))
-#define THUNAR_IS_THROBBER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), THUNAR_TYPE_THROBBER))
-#define THUNAR_THROBBER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), THUNAR_TYPE_THROBBER, ThunarThrobberClass))
-
-GType      thunar_throbber_get_type     (void) G_GNUC_CONST;
-
-GtkWidget *thunar_throbber_new          (void) G_GNUC_MALLOC;
-
-gboolean   thunar_throbber_get_animated (const ThunarThrobber *throbber);
-void       thunar_throbber_set_animated (ThunarThrobber       *throbber,
-                                         gboolean              animated);
-
-G_END_DECLS;
-
-#endif /* !__THUNAR_THROBBER_H__ */
diff --git a/thunar/thunar-window.c b/thunar/thunar-window.c
index 7e19e57..a669cb4 100644
--- a/thunar/thunar-window.c
+++ b/thunar/thunar-window.c
@@ -56,7 +56,6 @@
 #include <thunar/thunar-private.h>
 #include <thunar/thunar-statusbar.h>
 #include <thunar/thunar-stock.h>
-#include <thunar/thunar-throbber.h>
 #include <thunar/thunar-trash-action.h>
 #include <thunar/thunar-tree-pane.h>
 #include <thunar/thunar-window.h>
@@ -253,7 +252,7 @@ struct _ThunarWindow
   GClosure               *menu_item_deselected_closure;
 
   GtkWidget              *table;
-  GtkWidget              *throbber;
+  GtkWidget              *spinner;
   GtkWidget              *paned;
   GtkWidget              *sidepane;
   GtkWidget              *view_box;
@@ -785,17 +784,18 @@ thunar_window_init (ThunarWindow *window)
   gtk_table_attach (GTK_TABLE (window->table), menubar, 0, 1, 0, 1, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
   gtk_widget_show (menubar);
 
-  /* append the menu item for the throbber */
+  /* append the menu item for the spinner */
   item = gtk_menu_item_new ();
   gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE);
   gtk_menu_item_set_right_justified (GTK_MENU_ITEM (item), TRUE);
   gtk_menu_shell_append (GTK_MENU_SHELL (menubar), item);
   gtk_widget_show (item);
 
-  /* place the throbber into the menu item */
-  window->throbber = thunar_throbber_new ();
-  gtk_container_add (GTK_CONTAINER (item), window->throbber);
-  gtk_widget_show (window->throbber);
+  /* place the spinner into the menu item */
+  window->spinner = gtk_spinner_new ();
+  gtk_container_add (GTK_CONTAINER (item), window->spinner);
+  gtk_widget_set_size_request (window->spinner, 16, 16);
+  gtk_widget_show (window->spinner);
 
   /* check if we need to add the root warning */
   if (G_UNLIKELY (geteuid () == 0))
@@ -1902,7 +1902,7 @@ thunar_window_action_view_changed (GtkRadioAction *action,
       g_signal_connect_swapped (G_OBJECT (window->view), "change-directory", G_CALLBACK (thunar_window_set_current_directory), window);
       exo_binding_new (G_OBJECT (window), "current-directory", G_OBJECT (window->view), "current-directory");
       exo_binding_new (G_OBJECT (window), "show-hidden", G_OBJECT (window->view), "show-hidden");
-      exo_binding_new (G_OBJECT (window->view), "loading", G_OBJECT (window->throbber), "animated");
+      exo_binding_new (G_OBJECT (window->view), "loading", G_OBJECT (window->spinner), "active");
       exo_binding_new (G_OBJECT (window->view), "selected-files", G_OBJECT (window->launcher), "selected-files");
       exo_mutual_binding_new (G_OBJECT (window->view), "zoom-level", G_OBJECT (window), "zoom-level");
       gtk_table_attach (GTK_TABLE (window->view_box), window->view, 0, 1, 1, 2, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);


More information about the Xfce4-commits mailing list