! Please note that this is a snapshot of our old Bugzilla server, which is read only since May 29, 2020. Please go to gitlab.xfce.org for our new server !
Wallpaper is not displayed when using Xinerama and pixmap GTK engine
Status:
VERIFIED: FIXED
Product:
Xfdesktop
Component:
General

Comments

Description brian-schott 2004-12-09 21:47:08 CET
When a gtk theme using the pixmap engine is selected, Xfdesktop will not set the
wallpapers on the desktop. It instead uses whatever image is specified in the
"bg_pixmap[NORMAL]" line of the gtkrc for the theme. I have only observed this
behavior on a dual-head xorg server.

It spits out these few lines over and over again:

(xfdesktop:16318): Gdk-CRITICAL **: file gdkpixbuf-drawable.c: line 1271 (gdk_pi
xbuf_get_from_drawable): assertion `src_x + width <= src_width && src_y + height
 <= src_height' failed

(xfdesktop:16318): GdkPixbuf-CRITICAL **: file gdk-pixbuf-util.c: line 130 (gdk_
pixbuf_copy_area): assertion `dest_pixbuf != NULL' failed

(xfdesktop:16318): Gdk-CRITICAL **: file gdkpixbuf-render.c: line 293 (gdk_pixbu
f_render_pixmap_and_mask_for_colormap): assertion `GDK_IS_PIXBUF (pixbuf)' faile d

(xfdesktop:16318): GLib-GObject-CRITICAL **: file gobject.c: line 1579 (g_object
_unref): assertion `G_IS_OBJECT (object)' failed


Reproducible: Always
Steps to Reproduce:
1. Select a GTK theme that uses the "pixmap" engine or includes the line
"bg_pixmap[normal]" in the gtkrc
2. Start xfdesktop in a Xinerama-enabled x server.

Actual Results:  
The desktop is filled with the GTK theme's background image.

Expected Results:  
Wallpapers are displayed on the desktop.

I can work around this bug by:
1. Switiching to a  theme that does not use the "bg_pixmap" attribute.
2. Unchecking the "Show Image" option in the "Desktop Settings" dialog.
3. Checking the "Show Image" option.
4. Switiching to a pixmap theme.

You should be able to check this with the "Smokey Blue" theme that comes with
GNOME or with my "Brushed Chrome" theme here:
http://members.cox.net/brian-schott/themes.html

I have tried this with several 4.2 release candidates as well as a CVS version
downloaded and built on December 9th. All versions seem to be affected. I've
observed this on a Dual head nVidia card in a desktop as well as a radeon in a
laptop. I use xorg 6.8
Comment 1 Brian J. Tarricone (not reading bugmail) 2004-12-10 03:14:03 CET
except i can't even test my own code, as i only have one monitor ^_~.

though i think i know what's wrong.  when xfdesktop first tries to set the
backdrop, it first checks style->bg_pixmap[normal] to see if xfdesktop has set
the pixmap before, and if so, reuses it if we're on xinerama, to avoid
recompositing the entire pixmap for all screens again (with xinerama, all
screens share the same root window, and thus the same bg_pixmap).  this isn't a
problem with non-xinerama, because xfdesktop doesn't bother to try to reuse the
existing pixmap, since it doesn't really do anything useful.  annnyway, with a
pixmap theme engine with bg_pixmap set, there's already something there, that's
generally not the right size, thus the errors you're seeing.

anyway, should fixed in CVS (should sync to anoncvs in 50 mins), though i'm not
sure since i can't test.  it compiles, anyway.
Comment 2 brian-schott 2004-12-10 05:30:09 CET
I just downloaded and built the new version in CVS. Works perfectly now. Nice job.
Comment 3 Brian J. Tarricone (not reading bugmail) 2004-12-10 05:45:32 CET
good to hear.  thanks!

Bug #584

Reported by:
brian-schott
Reported on: 2004-12-09
Last modified on: 2009-07-14

People

Assignee:
Brian J. Tarricone (not reading bugmail)
CC List:
0 users

Version

Attachments

Additional information