Blob Blame History Raw
diff -up gnome-device-manager-0.2/shell/gdm-main.c.style gnome-device-manager-0.2/shell/gdm-main.c
--- gnome-device-manager-0.2/shell/gdm-main.c.style	2007-10-25 18:25:22.000000000 -0400
+++ gnome-device-manager-0.2/shell/gdm-main.c	2007-10-25 18:24:35.000000000 -0400
@@ -68,6 +68,31 @@ _remove_child (GtkWidget *widget, gpoint
 }
 
 static void
+tip_style_set (GtkWidget *widget, GtkStyle *previous_style, gpointer data)
+{
+        GtkStyle *style;
+        GdkColor default_border_color = {0, 0xb800, 0xad00, 0x9d00};
+        GdkColor default_fill_color = {0, 0xff00, 0xff00, 0xbf00};
+        GdkColor *fg, *bg;
+
+        style = gtk_rc_get_style_by_paths (gtk_settings_get_default (), 
+                                           "gtk-tooltip", "GtkTooltip", G_TYPE_NONE);
+        if (style) {
+                fg = &style->fg[GTK_STATE_NORMAL];
+                bg = &style->bg[GTK_STATE_NORMAL];
+        }
+        else {
+                fg = &default_border_color;
+                bg = &default_fill_color;
+        }
+    
+        if (!gdk_color_equal (bg, &widget->style->bg[GTK_STATE_NORMAL]))
+                gtk_widget_modify_bg (widget, GTK_STATE_NORMAL, bg);
+        if (!gdk_color_equal (fg, &widget->style->fg[GTK_STATE_NORMAL]))
+                gtk_widget_modify_fg (widget, GTK_STATE_NORMAL, fg);
+}
+
+static void
 info_page_show_for_device (GdmDevice *device)
 {
         GSList *i;
@@ -120,30 +145,29 @@ info_page_show_for_device (GdmDevice *de
                 source = *(notifications[n].source);                
                 if (source != NULL) {
                         for (i = source; i != NULL; i = g_slist_next (i)) {
-                                GdkColor border_color = {0, 0xb800, 0xad00, 0x9d00};
-                                GdkColor fill_color = {0, 0xff00, 0xff00, 0xbf00};
                                 GdmInfoProviderTip *tip = i->data;
                                 
                                 frame = gtk_frame_new (NULL);
                                 evbox = gtk_event_box_new ();
-                                gtk_widget_modify_bg (frame, GTK_STATE_NORMAL, &border_color);
-                                gtk_widget_modify_bg (evbox, GTK_STATE_NORMAL, &fill_color);
+
                                 gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
-                                
                                 hbox = gtk_hbox_new (FALSE, 5);
                                 
-                                image = gtk_image_new_from_stock (notifications[n].icon_name, GTK_ICON_SIZE_MENU);
+                                image = gtk_image_new_from_stock (notifications[n].icon_name, GTK_ICON_SIZE_BUTTON);
                                 
                                 label = gtk_label_new (NULL);
                                 gtk_label_set_markup (GTK_LABEL (label), tip->text);
                                 gtk_label_set_ellipsize (GTK_LABEL (label), PANGO_ELLIPSIZE_END);
-                                gtk_label_set_width_chars (GTK_LABEL (label), 50);
                                 gtk_label_set_selectable (GTK_LABEL (label), TRUE);
                                 gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
                                 
                                 gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0);
-                                gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0);
+                                gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0);
 
+                                g_signal_connect (evbox, "style_set", 
+                                                  G_CALLBACK (tip_style_set), NULL);
+                                g_signal_connect (label, "style_set", 
+                                                  G_CALLBACK (tip_style_set), NULL);
                                 if (tip->button_text != NULL) {
                                         GtkWidget *button;
                                         button = gtk_button_new_with_label (tip->button_text);