Updating branch refs/heads/master
         to 8f4cd06705581b8b8f8ab1b1212c6e7b118e594f (commit)
       from af3fce560fe798740d58bbad32f63ff00a2a0c98 (commit)

commit 8f4cd06705581b8b8f8ab1b1212c6e7b118e594f
Author: Nick Schermer <[email protected]>
Date:   Tue Jan 24 23:39:29 2012 +0100

    Fix base style and start cursor earlier.

 .../xfce-settings-manager-dialog.c                 |   44 ++++++++++++++-----
 1 files changed, 32 insertions(+), 12 deletions(-)

diff --git a/xfce4-settings-manager/xfce-settings-manager-dialog.c 
b/xfce4-settings-manager/xfce-settings-manager-dialog.c
index e5bcd7a..29fdac2 100644
--- a/xfce4-settings-manager/xfce-settings-manager-dialog.c
+++ b/xfce4-settings-manager/xfce-settings-manager-dialog.c
@@ -54,6 +54,7 @@ struct _XfceSettingsManagerDialog
 
     GtkListStore   *store;
 
+    GtkWidget      *category_viewport;
     GtkWidget      *category_scroll;
     GtkWidget      *category_box;
     GList          *category_iconviews;
@@ -87,6 +88,8 @@ enum
 
 
 static void xfce_settings_manager_dialog_finalize    (GObject                  
 *object);
+static void xfce_settings_manager_dialog_style_set   (GtkWidget                
 *widget,
+                                                      GtkStyle                 
 *old_style);
 static void xfce_settings_manager_dialog_response    (GtkDialog                
 *widget,
                                                       gint                     
  response_id);
 static void xfce_settings_manager_dialog_set_title   
(XfceSettingsManagerDialog *dialog,
@@ -107,10 +110,14 @@ xfce_settings_manager_dialog_class_init 
(XfceSettingsManagerDialogClass *klass)
 {
     GObjectClass   *gobject_class;
     GtkDialogClass *gtkdialog_class;
+    GtkWidgetClass *gtkwiget_class;
 
     gobject_class = G_OBJECT_CLASS (klass);
     gobject_class->finalize = xfce_settings_manager_dialog_finalize;
 
+    gtkwiget_class = GTK_WIDGET_CLASS (klass);
+    gtkwiget_class->style_set = xfce_settings_manager_dialog_style_set;
+
     gtkdialog_class = GTK_DIALOG_CLASS (klass);
     gtkdialog_class->response = xfce_settings_manager_dialog_response;
 }
@@ -162,10 +169,9 @@ xfce_settings_manager_dialog_init 
(XfceSettingsManagerDialog *dialog)
     gtk_container_set_border_width (GTK_CONTAINER (scroll), 6);
     gtk_widget_show (scroll);
 
-    viewport = gtk_viewport_new (NULL, NULL);
+    viewport = dialog->category_viewport = gtk_viewport_new (NULL, NULL);
     gtk_container_add (GTK_CONTAINER (scroll), viewport);
     gtk_viewport_set_shadow_type (GTK_VIEWPORT (viewport), GTK_SHADOW_NONE);
-    gtk_widget_modify_bg (viewport, GTK_STATE_NORMAL, &viewport->style->white);
     gtk_widget_show (viewport);
 
     dialog->category_box = vbox = gtk_vbox_new (FALSE, 6);
@@ -187,7 +193,6 @@ xfce_settings_manager_dialog_init 
(XfceSettingsManagerDialog *dialog)
     dialog->socket_viewport = viewport = gtk_viewport_new (NULL, NULL);
     gtk_container_add (GTK_CONTAINER (scroll), viewport);
     gtk_viewport_set_shadow_type (GTK_VIEWPORT (viewport), GTK_SHADOW_NONE);
-    gtk_widget_modify_bg (viewport, GTK_STATE_NORMAL, &viewport->style->white);
     gtk_widget_show (viewport);
 
     xfce_settings_manager_dialog_menu_reload (dialog);
@@ -218,6 +223,22 @@ xfce_settings_manager_dialog_finalize (GObject *object)
 
 
 static void
+xfce_settings_manager_dialog_style_set (GtkWidget *widget,
+                                        GtkStyle  *old_style)
+{
+    XfceSettingsManagerDialog *dialog = XFCE_SETTINGS_MANAGER_DIALOG (widget);
+
+    GTK_WIDGET_CLASS (xfce_settings_manager_dialog_parent_class)->style_set 
(widget, old_style);
+
+    /* set viewport to color icon view uses for background */
+    gtk_widget_modify_bg (dialog->category_viewport,
+                          GTK_STATE_NORMAL,
+                          &widget->style->base[GTK_STATE_NORMAL]);
+}
+
+
+
+static void
 xfce_settings_manager_dialog_response (GtkDialog *widget,
                                        gint       response_id)
 {
@@ -547,6 +568,11 @@ xfce_settings_manager_dialog_item_activated (ExoIconView   
            *iconview
 
         if (pluggable)
         {
+            /* fake startup notification */
+            cursor = gdk_cursor_new (GDK_WATCH);
+            gdk_window_set_cursor (GTK_WIDGET (dialog)->window, cursor);
+            gdk_cursor_unref (cursor);
+
             /* create fresh socket */
             socket = gtk_socket_new ();
             gtk_container_add (GTK_CONTAINER (dialog->socket_viewport), 
socket);
@@ -561,16 +587,10 @@ xfce_settings_manager_dialog_item_activated (ExoIconView  
             *iconview
 
             /* spawn dialog with socket argument */
             cmd = g_strdup_printf ("%s --socket-id=%d", command, 
gtk_socket_get_id (GTK_SOCKET (socket)));
-            if (xfce_spawn_command_line_on_screen (screen, cmd, FALSE, FALSE, 
&error))
+            if (!xfce_spawn_command_line_on_screen (screen, cmd, FALSE, FALSE, 
&error))
             {
-                /* fake startup notification */
-                cursor = gdk_cursor_new (GDK_WATCH);
-                gdk_window_set_cursor (GTK_WIDGET (dialog)->window, cursor);
-                gdk_cursor_unref (cursor);
-            }
-            else
-            {
-                /* meh... */
+                gdk_window_set_cursor (GTK_WIDGET (dialog)->window, NULL);
+
                 xfce_dialog_show_error (GTK_WINDOW (dialog), error,
                                         _("Unable to start \"%s\""), command);
                 g_error_free (error);
_______________________________________________
Xfce4-commits mailing list
[email protected]
https://mail.xfce.org/mailman/listinfo/xfce4-commits

Reply via email to