diff -r -u pidgin-2.5.1/pidgin/gtkdocklet-x11.c pidgin-2.5.1/pidgin/gtkdocklet-x11.c --- pidgin-2.5.1/pidgin/gtkdocklet-x11.c +++ pidgin-2.5.1/pidgin/gtkdocklet-x11.c @@ -270,6 +270,7 @@ if (!gtk_check_version(2,4,0)) g_object_set(G_OBJECT(box), "visible-window", FALSE, NULL); + gtk_widget_set_colormap(GTK_WIDGET(docklet), gdk_screen_get_rgb_colormap(gdk_screen_get_default())); gtk_widget_show_all(GTK_WIDGET(docklet)); /* ref the docklet before we bandy it about the place */ diff -r -u pidgin-2.5.1/pidgin/gtkutils.c pidgin-2.5.1/pidgin/gtkutils.c --- pidgin-2.5.1/pidgin/gtkutils.c +++ pidgin-2.5.1/pidgin/gtkutils.c @@ -93,6 +93,9 @@ purple_imgstore_unref_by_id, }; +GdkScreen *screen; +GdkColormap *colormap; + void pidgin_setup_imhtml(GtkWidget *imhtml) { @@ -143,6 +146,11 @@ else gtk_window_set_title(wnd, PIDGIN_ALERT_TITLE); #endif + screen = gtk_window_get_screen(wnd); + colormap = gdk_screen_get_rgba_colormap(screen); + if (colormap && gdk_screen_is_composited(screen)) + gtk_widget_set_default_colormap(colormap); + gtk_container_set_border_width(GTK_CONTAINER(wnd), border_width); if (role) gtk_window_set_role(wnd, role);