--- gtkutil.c 31 Jan 2007 07:25:35 -0000 1.30 +++ gtkutil.c 4 May 2007 00:12:41 -0000 @@ -537,7 +537,14 @@ gtk_window_set_type_hint (GTK_WINDOW (win), GDK_WINDOW_TYPE_HINT_DIALOG); gtk_window_set_transient_for (GTK_WINDOW (win), GTK_WINDOW (parent_window)); } +/* Set rgba colormap */ + GdkScreen *screen = gtk_widget_get_screen(win); + GdkColormap *colormap = gdk_screen_get_rgba_colormap (screen); + if (colormap && gdk_screen_is_composited (screen)){ + gtk_widget_set_colormap(GTK_WIDGET(win), colormap); + } +/* End set rgba colormap */ return win; } --- 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;