<AWT Dev> KDE Task bar is always on top of fullscreen Java applications

gouessej at orange.fr gouessej at orange.fr
Wed Jun 29 02:38:45 PDT 2011


As you can see there, I have tested in GNOME 2.16.1 and Java behaves correctly in this case, _NET_WM_STATE is set to _NET_WM_STATE_FULLSCREEN whereas even KDE 3.5.4 doesn't. It seems to be a really old KDE bug as Anthony Petrov suggested. You can find my tests with xprop and my testcase of FSEM here at the bottom of this page:
https://bugs.kde.org/show_bug.cgi?id=276159

I will test on a more recent version of KDE & GNOME in about half a day.

> Message du 28/06/11 22:13
> De : "Anthony Petrov" 
> A : "Phil Race" 
, gouessej at orange.fr
> Copie à : awt-dev at openjdk.java.net
> Objet : Re:  KDE Task bar is always on top of fullscreen Java applications
> 
> Phil: Ah, right! Haven't used to the new rules yet. Thanks for reminding 
> us about that.
> 
> Julien: I have a few questions about your patch:
> 
> 1. The xprop output that you've attached to the KDE bug report [1] 
> indicates that the full screen window is maximized (i.e. using the 
> emulated full screen mode rather than the exclusive one). In this case, 
> the behavior is correct. But I assume you did try to do the same with 
> the exclusive FS mode enabled, didn't you? Could you please provide an 
> xprop output in that case, too?
> 
> 2. The EWMH specification [2] states that "A Client wishing to change 
> the state of a window MUST send a _NET_WM_STATE client message to the 
> root window". However, your proposed patch calls XChangeProperty() which 
> changes the property manually, and therefore violates the EWMH spec. I 
> think that a subsequent XSendEvent() to the root window should be enough 
> for our purposes.
> 
> 3. The comments at the KDE bug report, as well as the EWMH spec (see the 
> "Stacking order" section) suggest that a window with the 
> _NET_WM_STATE_FULLSCREEN state should already be above any other windows 
> (including the _NET_WM_STATE_ABOVE windows). Also, the specification 
> states that the latter state should not be used by applications 
> directly. Note that the function X11GD_SetFullscreenMode() which you're 
> changing with your patch already sets the _NET_WM_STATE_FULLSCREEN state 
> to the full screen window, and, according to the EWMH specification, 
> that alone should work fine for full screen windows. So doesn't this 
> then seem to be a bug in KDE4 actually?
> 
> [1] https://bugs.kde.org/show_bug.cgi?id=276159
> 
> [2] http://standards.freedesktop.org/wm-spec/wm-spec-latest.html
> 
> --
> best regards,
> Anthony
> 
> On 6/28/2011 8:26 PM, Phil Race wrote:
> > Anthony,
> > 
> > That looks like a "small patch" so by the recent relaxation of the 
> > rules an OCA isn't needed.
> > 
> > -phil.
> > 
> > On 6/28/2011 5:02 AM, Anthony Petrov wrote:
> >> Hi Julien,
> >>
> >> For your contribution to be acceptable, you have to sign an OCA. 
> >> Please refer to this page for details on how to become an OpenJDK 
> >> contributor:
> >>
> >> http://openjdk.java.net/contribute/
> >>
> >> -- 
> >> best regards,
> >> Anthony
> >>
> >> On 6/27/2011 4:03 PM, gouessej at orange.fr wrote:
> >>> Hi!
> >>>
> >>> I think I have found a fix for this bug. On GNOME and on KDE the 
> >>> atoms remain unchanged according to xprops but the X client message 
> >>> is sent, that is why I call XChangeProperty. On the other hand, only 
> >>> a window on top of the stack can become fullscreen, that is why I use 
> >>> _NET_WM_STATE_ABOVE. I fear that building OpenJDK requires a lot of 
> >>> time. Could someone with a ready environment make a build for me with 
> >>> this fix? My "patch" is in the bug report here:
> >>> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7057287
> >>>
> >>> Best regards
> >>>
> >>> Julien Gouesse
> >>>
> >>>> Message du 23/06/11 14:50
> >>>> De : "Anthony Petrov" A : gouessej at orange.fr
> >>>> Copie à : Objet : Re: KDE Task bar is always on top of fullscreen 
> >>>> Java applications
> >>>>
> >>>> Hi,
> >>>>
> >>>> On 06/22/2011 02:28 PM, gouessej at orange.fr wrote:
> >>>>> Yes, that's it. I'm sad because I'm using JOGL AWT canvas called
> >>>>> GLCanvas and this bug impacts my first person shooter. If I knew
> >>>>> better the source code of AWT, I would try to write a patch. I assume
> >>>>> there is a way of detecting the window manager to apply this fix only
> >>>>> in this case, isn't it?
> >>>> This window state is a part of EWMH specification, so there's no 
> >>>> need to set it for specific WMs only.
> >>>>
> >>>>
> >>>>> Does AWT currently rely on xrandr or VidMode on Linux? Best regards.
> >>>> I think this question belongs to the 2d-dev at openjdk mailing list. 
> >>>> I'm not a Java2D expert. Please ask 2D folks about that.
> >>>>
> >>>> PS. Please remember to use Reply All rather than just Reply so that 
> >>>> your message hits the mailing list.
> >>>>
> >>>> -- 
> >>>> best regards,
> >>>> Anthony
> >>>>
> >>>>>
> >>>>>> Message du 22/06/11 12:11
> >>>>>> De : "Anthony Petrov" A : gouessej at orange.fr
> >>>>>> Copie à : awt-dev at openjdk.java.net
> >>>>>> Objet : Re: KDE Task bar is always on top of fullscreen Java 
> >>>>>> applications
> >>>>>>
> >>>>>> Hello,
> >>>>>>
> >>>>>> On 6/22/2011 1:14 PM, gouessej at orange.fr wrote:
> >>>>>>> The exclusive fullscreen mode is broken in KDE for Java 
> >>>>>>> applications as I explained here:
> >>>>>>> https://bugs.kde.org/show_bug.cgi?id=276159
> >>>>>>>
> >>>>>>> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7057287
> >>>>>>> (not yet visible)
> >>>>>>>
> >>>>>>> After some investigations, the problem comes from Java which does 
> >>>>>>> not
> >>>>>>> tag the window as fullscreen. Do you know how to fix this bug?
> >>>>>> To tag full screen windows with the _NET_WM_STATE_FULLSCREEN 
> >>>>>> state? That's easy. :)
> >>>>>>
> >>>>>> Thanks for filing the bug report. AWT team will take care of this 
> >>>>>> issue.
> >>>>>>
> >>>>>> -- 
> >>>>>> best regards,
> >>>>>> Anthony
> >>>>>>
> > 
> 



More information about the awt-dev mailing list