! 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 !
Xinerama stretch and unstretch not handled correctly.
Status:
RESOLVED: FIXED
Product:
Xfdesktop
Component:
General

Comments

Description brian-schott 2006-11-13 07:33:11 CET
If separate backdrops are specified for the two monitors and then the "stretch single backdrop onto all monitors" checkbox is checked, unchecking it will not restore the two original backdrops. It stays in stretched mode.

If the stretch option is turned off, checking the individual screen's "Show Image" checkbox generates the following warning:

** (xfdesktop:11575): CRITICAL **: xfce_desktop_peek_backdrop: assertion `XFCE_IS_DESKTOP(desktop) && GTK_WIDGET_REALIZED(GTK_WIDGET(desktop)) && monitor < desktop->priv->nbackdrops' failed

According to the random print statements I tossed into the code, this is because desktop->priv->nbackdrops is not updated to 2 as it should be. (monitor and nbackdrops are both 1)

From what I can determine, the problem is caused by handle_xinerama_unstretch never being called. I traced this back to lines 796 to 800 of xfce-desktop.c:

796: if(stretch == desktop->priv->xinerama_stretch
797:       || desktop->priv->nbackdrops <= 1)
798: {
799:       return;
800: }

It seems to skip the call to handle_xinerama_unstretch because of line 797. If the backdrop is stretched, nbackdrops will be one, causing the function to return right there and making it impossible to unstretch the backdrop.

I tried commenting out line 797. This did allow the backdrop to unstretch back to the first monitor, but left the second one black. The only way to change the second monitor was by choosing a different image for the wallpaper or by changing the color.

I think I'm really close to fixing this, but I'm too tired to think right now.
Comment 1 brian-schott 2006-11-13 07:36:24 CET
Forgot to mention that the checkout was revision 23844
Comment 2 Brian J. Tarricone (not reading bugmail) 2006-11-13 08:46:42 CET
Yeah, I remember noticing this was broken a while back but never had a chance to look at it.

After removing line 797, is it just that the settings for the second monitor aren't reloaded?  You can 'force' it to load it by checking/unchecking the 'show image' box or something?

I'll at least apply the fix ~line 797 for now; that's definitely the right way to go.
Comment 3 brian-schott 2006-11-13 14:24:45 CET
Right. After commenting out line 797 the settings on the second monitor are not reloaded by clicking the "Show Image" box or changing the "Color Style" combo box. It IS refreshed by choosing a different color for the background or by choosing a different image for the backdrop.
Comment 4 Brian J. Tarricone (not reading bugmail) 2008-05-05 03:53:16 CEST
I think this should be fixed in trunk now...

Bug #2573

Reported by:
brian-schott
Reported on: 2006-11-13
Last modified on: 2009-07-14

People

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

Version

Attachments

Additional information