aboutsummaryrefslogtreecommitdiffstats
path: root/src/newt/native
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2019-12-09 02:24:44 +0100
committerSven Gothel <[email protected]>2019-12-09 02:24:44 +0100
commit3e92d34de3672d7f5e401ed6181bb55a58bdf4b6 (patch)
tree7dada4b8e816e8ef5c9a7386b17239a075b99536 /src/newt/native
parent5047217ff8366b0d3280e478aac6c711170d7063 (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.h4
-rw-r--r--src/newt/native/X11Window.c1
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;
}