Bug 8958

Summary: Screensaver preview has problem if "desktop effects" got enabled
Product: xorg Reporter: Søren Sandmann Pedersen <soren.sandmann>
Component: App/compizAssignee: David Reveman <reveman>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: high    
Version: 7.1 (2006.05)   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Søren Sandmann Pedersen 2006-11-09 12:50:21 UTC
When compiz is running, the fullscreen preview of gnome-screen-saver doesn't
work the first time. The second time it does work.

What's going on here is that compiz has it's own "type" for a window that is
different from the wmspec's idea. This field determines among other things
whether a window can be fullscreened. So what happens is:

- Application creates a _NET_WM_TYPE_NORMAL window with a transient parent
- compiz decides that the internal type for such a window is 'dialog' because
  of the transient parent
- Application tries to fullscreen window
- Compiz denies this, since it doesn't think dialogs should be fullscreened
- The next time compiz looks at the window, it sees that it has the FULLSCREEN 
  state set, causing it to decide that the window should have internal type
  'Fullscreen'
- At this point, fullscreening *is* allowed.

Net result: the first time the preview window is shown it won't be fullscreened;
the second time it will.
Comment 1 David Reveman 2006-11-10 09:25:55 UTC
That's pretty bad.

That the state is changed even though the fullscreen action isn't allowed must
be that the client is setting the fullscreen state before mapping the window and
there's a missing call to constrainWindowState when receiving _NET_WM_STATE
property changes. It was only constraining the state when getting client messages.

So after fixing that, it's at least consistent and never makes the window
fullscreen.

Second problem is of course that this type of window should be allowed to go
fullscreen. Allowing the fullscreen action on all windows with actual
_NET_WM_WINDOW_TYPE set to _NET_WM_WINDOW_TYPE_NORMAL seems OK.

I've pushed out these changes and it seems to be working OK now. Please give it
a try and close the bug if there's no problems with it.

Thanks.
Comment 2 Søren Sandmann Pedersen 2006-11-13 14:06:22 UTC
Looks like it's working. Thanks.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.