diff options
author | Sven Gothel <[email protected]> | 2019-12-09 02:24:44 +0100 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2019-12-09 02:24:44 +0100 |
commit | 3e92d34de3672d7f5e401ed6181bb55a58bdf4b6 (patch) | |
tree | 7dada4b8e816e8ef5c9a7386b17239a075b99536 /src/newt/native | |
parent | 5047217ff8366b0d3280e478aac6c711170d7063 (diff) |
Bug 1156: NEWT Window: Better handling of fixed console case: Not resizable and not repositionable.
Our two fixed size and position console cases 'bcm.egl' and 'egl.gbm' (drm.gbm)
only operate in a console like fullscreen mode.
We should earmark and expose this behavior, as well as handle it by not waiting for a position / size
and not attempting to change position and size.
Reducing WindowImpl.minimumReconfigStateMask to bare minimum values:
STATE_MASK_VISIBLE | STATE_MASK_FOCUSED;
New WindowImpl.mutableSizePosReconfigStateMask extends WindowImpl.minimumReconfigStateMask, representing previous values:
STATE_MASK_VISIBLE | STATE_MASK_FOCUSED | STATE_MASK_FULLSCREEN | STATE_MASK_RESIZABLE | STATE_MASK_REPOSITIONABLE;
All WindowDriver implementations previously using WindowImpl.minimumReconfigStateMask
are now using WindowImpl.mutableSizePosReconfigStateMask but the explicit console driver named above.
I would have liked to add the STATE_BIT_FULLSCREEN to the current stateMask to notify this semantics,
however this would have lead to more code changes as our fullscreen mode assumes to be 'on top' of the normal mode.
Here the normal mode is essentially fullscreen and no back/forth fullscreen setting is useful or allowed.
Therefore, both fixed size & position console driver won't expose themselves as being in fullscreen mode.
Diffstat (limited to 'src/newt/native')
-rw-r--r-- | src/newt/native/Window.h | 4 | ||||
-rw-r--r-- | src/newt/native/X11Window.c | 1 |
2 files changed, 4 insertions, 1 deletions
diff --git a/src/newt/native/Window.h b/src/newt/native/Window.h index f6aba4c83..b3924e5b1 100644 --- a/src/newt/native/Window.h +++ b/src/newt/native/Window.h @@ -55,7 +55,8 @@ #define FLAG_IS_FULLSCREEN ( 1 << 11 ) #define FLAG_IS_POINTERVISIBLE ( 1 << 12 ) #define FLAG_IS_POINTERCONFINED ( 1 << 13 ) -#define FLAG_IS_FULLSCREEN_SPAN ( 1 << 14 ) +#define FLAG_IS_REPOSITIONABLE ( 1 << 14 ) +#define FLAG_IS_FULLSCREEN_SPAN ( 1 << 15 ) #define TST_FLAG_CHANGE_VISIBILITY(f) ( 0 != ( (f) & FLAG_CHANGE_VISIBILITY ) ) #define TST_FLAG_CHANGE_VISIBILITY_FAST(f) ( 0 != ( (f) & FLAG_CHANGE_VISIBILITY_FAST ) ) @@ -85,6 +86,7 @@ #define TST_FLAG_IS_MAXIMIZED_HORZ(f) ( 0 != ( (f) & FLAG_IS_MAXIMIZED_HORZ ) ) #define TST_FLAG_IS_MAXIMIZED_ANY(f) ( 0 != ( (f) & ( FLAG_IS_MAXIMIZED_VERT | FLAG_IS_MAXIMIZED_HORZ ) ) ) #define TST_FLAG_IS_FULLSCREEN(f) ( 0 != ( (f) & FLAG_IS_FULLSCREEN ) ) +#define TST_FLAG_IS_REPOSITIONABLE(f) ( 0 != ( (f) & FLAG_IS_REPOSITIONABLE ) ) #define TST_FLAG_IS_FULLSCREEN_SPAN(f) ( 0 != ( (f) & FLAG_IS_FULLSCREEN_SPAN ) ) #endif diff --git a/src/newt/native/X11Window.c b/src/newt/native/X11Window.c index e4c70d6ca..9f635fce7 100644 --- a/src/newt/native/X11Window.c +++ b/src/newt/native/X11Window.c @@ -1088,6 +1088,7 @@ JNIEXPORT jint JNICALL Java_jogamp_newt_driver_x11_WindowDriver_GetSupportedReco FLAG_IS_FULLSCREEN | FLAG_IS_POINTERVISIBLE | FLAG_IS_POINTERCONFINED | + FLAG_IS_REPOSITIONABLE | FLAG_IS_FULLSCREEN_SPAN; } |