--- gtkutil.c 31 Jan 2007 07:25:35 -0000 1.30 +++ gtkutil.c 4 May 2007 00:12:41 -0000 @@ -523,6 +523,14 @@ GtkWidget *win; win = gtk_window_new (GTK_WINDOW_TOPLEVEL); + GdkScreen *screen; + GdkColormap *colormap; + screen = gtk_widget_get_screen(GTK_WIDGET(win)); + colormap = gdk_screen_get_rgba_colormap(screen); + if(colormap != NULL && gdk_screen_is_composited (screen)) + { + gtk_widget_set_colormap(GTK_WIDGET(win), colormap); + } gtkutil_set_icon (win); #ifdef WIN32 gtk_window_set_wmclass (GTK_WINDOW (win), "XChat", "xchat"); --- xtext.c 11 Dec 2006 02:52:42 -0000 1.121 +++ xtext.c 4 May 2007 00:12:43 -0000 @@ -994,6 +994,15 @@ gdk_window_set_user_data (widget->window, widget); xtext->depth = gdk_drawable_get_visual (widget->window)->depth; + if(xtext->depth == 32) + { + if(xtext->transparent) + { + guint8* pixel = &xtext->palette[XTEXT_BG]; + pixel[3] = 0xdd; + } + xtext->transparent = FALSE; + } val.subwindow_mode = GDK_INCLUDE_INFERIORS; val.graphics_exposures = 0; @@ -4283,6 +4292,28 @@ if (trans && (xtext->tint_red != 255 || xtext->tint_green != 255 || xtext->tint_blue != 255)) shaded = TRUE; + /* rgba mode */ + if(xtext->depth == 32) + { + if(trans) + { + guint8* pixel = &xtext->palette[XTEXT_BG]; + pixel[3] = 0xdd; + } + else + { + guint8* pixel = &xtext->palette[XTEXT_BG]; + pixel[3] = 0xff; + } + xtext_set_fg (xtext, xtext->fgc, XTEXT_FG); + xtext_set_bg (xtext, xtext->fgc, XTEXT_BG); + xtext_set_fg (xtext, xtext->bgc, XTEXT_BG); + /* rgba mode breaks the old transparency mechanism + * X11 Bad Match. */ + trans = FALSE; + shaded = FALSE; + pixmap = 0; + } #if !defined(USE_XLIB) && !defined(WIN32) shaded = FALSE;