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);