diff -urN gnucash-2.2.5-orig/src/gnome-utils/gnc-main-window.c gnucash-2.2.5-work/src/gnome-utils/gnc-main-window.c --- gnucash-2.2.5-orig/src/gnome-utils/gnc-main-window.c 2008-03-02 08:24:57.000000000 -0500 +++ gnucash-2.2.5-work2/src/gnome-utils/gnc-main-window.c 2008-05-06 10:48:29.000000000 -0400 @@ -2811,6 +2811,8 @@ GList *plugins; GError *error = NULL; gchar *filename; + GdkScreen *screen; + GdkColormap *colormap; ENTER(" "); @@ -2820,6 +2822,15 @@ /* Create widgets and add them to the window */ main_vbox = gtk_vbox_new (FALSE, 0); + + /* Set the colour map */ + screen = gtk_widget_get_screen (main_vbox); + colormap = gdk_screen_get_rgba_colormap (screen); + + if (colormap) + gtk_widget_set_default_colormap (colormap); + /* End Set colour map */ + gtk_widget_show (main_vbox); gtk_container_add (GTK_CONTAINER (window), main_vbox); --- gnucash-2.2.5-orig/src/gnome-utils/gnc-dense-cal.c 2008-05-06 21:31:02.000000000 -0400 +++ gnucash-2.2.5/src/gnome-utils/gnc-dense-cal.c 2008-05-06 21:42:00.000000000 -0400 @@ -256,6 +256,8 @@ gnc_dense_cal_init(GncDenseCal *dcal) { gboolean colorAllocSuccess; + GdkScreen *screen = NULL; + GdkColormap *colormap = NULL; gtk_widget_push_composite_child(); @@ -342,7 +344,20 @@ gdk_color_parse(MONTH_THIS_COLOR, &dcal->weekColors[MONTH_THIS]); gdk_color_parse(MONTH_THAT_COLOR, &dcal->weekColors[MONTH_THAT]); - if (gdk_colormap_alloc_colors(gdk_colormap_get_system(), + + screen = gtk_widget_get_screen (GTK_WIDGET(dcal)); + if (screen == NULL) + { + colormap = gdk_colormap_get_system(); + } + else + { + colormap = gdk_screen_get_rgba_colormap (screen); + if (colormap == NULL) + colormap = gdk_colormap_get_system(); + } + + if (gdk_colormap_alloc_colors(colormap, dcal->weekColors, MAX_COLORS, TRUE, TRUE, &colorAllocSuccess) > 0) @@ -882,6 +897,8 @@ int maxWidth; PangoLayout *layout; GTimer *timer; + GdkScreen *screen = NULL; + GdkColormap *colormap = NULL; timer = g_timer_new(); g_debug("drawing"); @@ -953,7 +970,20 @@ gdk_gc_get_values(widget->style->fg_gc[widget->state], ¤t_values); gdk_color_parse(MARK_COLOR, &markColor); - gdk_colormap_alloc_color(gdk_colormap_get_system(), &markColor, TRUE, TRUE); + + screen = gtk_widget_get_screen (GTK_WIDGET(dcal)); + if (screen == NULL) + { + colormap = gdk_colormap_get_system(); + } + else + { + colormap = gdk_screen_get_rgba_colormap (screen); + if (colormap == NULL) + colormap = gdk_colormap_get_system(); + } + + gdk_colormap_alloc_color(colormap, &markColor, TRUE, TRUE); gdk_gc_set_foreground(widget->style->fg_gc[widget->state], &markColor); for (i=0; inumMarks; i++)