From be59d561fd6ab8aa659e85cd962d38fffd1acb0a Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Fri, 27 Apr 2012 03:01:31 +0200 Subject: Bug 570: NEWT General/X11: Decouple setFullscreen() and setAlwaysOnTop(); Use window-static instances for runnable actions NEWT General/X11: Decouple setFullscreen() and setAlwaysOnTop() - X11 fullscreen/above: Don't assume 'always-on-top' if switch to fullscreen. - WindowImpl: Remove relation between 'always-on-top' and fullscreen when quering and switching. Use window-static instances for runnable actions - Removes temp objects for EDT runnables - Uses synchronization on action instance to avoid concurrency --- src/newt/native/X11Window.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/newt/native/X11Window.c') diff --git a/src/newt/native/X11Window.c b/src/newt/native/X11Window.c index 6312a9186..9d4ff5aaa 100644 --- a/src/newt/native/X11Window.c +++ b/src/newt/native/X11Window.c @@ -744,12 +744,15 @@ JNIEXPORT void JNICALL Java_jogamp_newt_driver_x11_X11Window_reconfigureWindow0 if( TST_FLAG_CHANGE_FULLSCREEN(flags) ) { fsEWMHFlags |= _NET_WM_FULLSCREEN; if( TST_FLAG_IS_FULLSCREEN(flags) ) { - fsEWMHFlags |= _NET_WM_ABOVE; // fs & above on + if( TST_FLAG_IS_ALWAYSONTOP(flags) ) { + fsEWMHFlags |= _NET_WM_ABOVE; // fs on, above on + } // else { } // fs on, above off } else if( !TST_FLAG_IS_ALWAYSONTOP(flags) ) { - fsEWMHFlags |= _NET_WM_ABOVE; // fs & above off - } /* else { } */ // fs off, keep above - } else if( TST_FLAG_CHANGE_ALWAYSONTOP(flags) ) { - fsEWMHFlags |= _NET_WM_ABOVE; // toggle above only + fsEWMHFlags |= _NET_WM_ABOVE; // fs off, above off + } // else { } // fs off, above on + } + if( TST_FLAG_CHANGE_ALWAYSONTOP(flags) ) { + fsEWMHFlags |= _NET_WM_ABOVE; // toggle above } NewtDisplay_displayDispatchErrorHandlerEnable(1, env); -- cgit v1.2.3