Commit Graph

2848 Commits

Author SHA1 Message Date
Anonymous Maarten
9ada9daf51 SDL_blit_copy: Don't call potentially FPU using SDL_memcpy in SDL_memcpyMMX 2023-03-27 06:12:49 +00:00
Frank Praznik
5a0095d373 video: Try to match the requested video mode when moving fullscreen windows
Try to match the requested video mode when a fullscreen window is moved to a new display, or it may not be returned to the requested mode if it is moved to a display with no matching mode, then back to the original display.
2023-03-26 12:50:32 -04:00
Frank Praznik
11323abf57 wayland: Set the minimized flag on windows until cleared by a focus event
The behavior when minimizing a window on Wayland is compositor dependent and clients are not informed when windows enter or leave the minimized state, however we can assume that, when receiving a minimize request from the application, the minimized window should set and keep the minimized status flag until the window regains focus.

This is required when attaching a renderer context to a minimized window, as the renderer creation process destroys and recreates the target window, and without retaining the minimized flag, the recreated window will lose the minimized state.
2023-03-24 16:17:16 -04:00
Frank Praznik
6bb48b4fe9 wayland: Unref the libdecor window when hiding
Hiding the decorations while not unreferencing the frame was a workaround for an internal libdecor use-after-free bug that was fixed some time ago. Revert to unreferencing the window when hiding to ensure that it is properly destroyed.

Reverts dd2e318
2023-03-24 16:17:16 -04:00
Sam Lantinga
26f511a8f4 Add SWP_NOACTIVATE to SetWindowPos flags passed in WIN_SetWindowAlwaysOnTop 2023-03-24 10:39:56 -07:00
Sylvain
d4d26e0ddb testautomation_video: if SDL_SetWindowSize/Position isn't honored, we should check there is an event
x11: send the events if various occasions
2023-03-24 09:52:05 +01:00
Sylvain
4b1378fe8e X11: fix size/position (test video_setWindowCenteredOnDisplay)
this fix x11 backend to correctly pass video_setWindowCenteredOnDisplay()
- get border values early  (eg status bar)
- wait for size/position change to get valid values

Fix set topleft is client rendering area
2023-03-24 09:52:05 +01:00
Anonymous Maarten
749f3ebd14 Fix arguments of SDL_BlitCopyMMX 2023-03-24 02:18:06 +01:00
Ozkan Sezer
2e4ce78b33 tidy-up SDL_yuv.c 2023-03-21 23:03:02 +03:00
Anonymous Maarten
b5b9ddb205 SDL_intrin.h: define SDL_<simd>_INTRINSICS in user-visible header 2023-03-21 23:03:02 +03:00
Ozkan Sezer
79513afc19 build fixes to SDL_yuv.c 2023-03-21 23:03:02 +03:00
Ozkan Sezer
69de6964e5 use target attributes of gcc / clang for SIMD code. 2023-03-21 23:03:02 +03:00
Sam Lantinga
08d5c1386e Fixed always on top windows on Windows
Also cleaned up some SetWindowPos() calls and made it explicit when we change the topmost flag
2023-03-17 10:37:21 -07:00
Sam Lantinga
e4be1247d0 Added a hint to retain window content during state changes
In my testing window content is always retained, but this makes our intent explicit.
2023-03-16 20:43:07 -07:00
Sam Lantinga
a776188d77 Don't change the Z order when moving or resizing windows 2023-03-16 17:19:38 -07:00
Sam Lantinga
3f67f02d0e Fixed SDL_WINDOW_SKIP_TASKBAR on Windows
The WS_EX_APPWINDOW forces a window onto the taskbar, which is not what we want. Set the style to 0 to use the default behavior.
2023-03-16 16:56:46 -07:00
Sam Lantinga
c7ab378c61 We don't need to track whether we were hidden by parent focus change 2023-03-16 14:11:41 -07:00
Sam Lantinga
76176c9845 Conversely, we shouldn't automatically show children when we get focus 2023-03-16 14:09:46 -07:00
Sam Lantinga
0cb7c4ba58 Don't hide popups when losing focus
This isn't the behavior on Windows, and this should probably be an application defined behavior.

If we decide we want this globally, it should probably be implemented at a higher level in SDL_OnWindowFocusLost(), and properly handle the transition of focus to a child window.
2023-03-16 14:04:12 -07:00
Sylvain
5da9e99da0 Fixed bug #7462 - 8888 as default GL backbuffer red/green/blue/alpha bit sizes 2023-03-16 13:54:11 -07:00
Sylvain
b95b203116 Refresh generation of SDL_blit_auto.c after simplifying sdlgenblit.pl 2023-03-16 20:25:59 +01:00
Sylvain
41b8fee833 Simplify SDL_BLENDMODE_MUL in sdlgenblit.pl 2023-03-16 20:25:59 +01:00
Sylvain
99668c286b Simplify SDL_BLENDMODE_MUL 2023-03-16 20:25:59 +01:00
Sylvain
ad1a216d65 Refresh generation of SDL_blit_auto.c 2023-03-16 20:25:59 +01:00
Sam Lantinga
66eff69d2b Don't update hidden child windows, their relative position doesn't change
This improves performance when moving a top level window that has many hidden child windows
2023-03-16 11:24:21 -07:00
Frank Praznik
a8ea8db6d7 wayland: Update the popup window geometry on configure events 2023-03-16 14:01:42 -04:00
Frank Praznik
be70d9a9c7 wayland: Clarify the popup position restriction purpose
Child popups don't necessarily need to be within, but must intersect or be partially adjacent to the parent, per the xdg-positioner spec.
2023-03-16 14:01:42 -04:00
Frank Praznik
c270d151b0 wayland: Handle cases where the compositor does not scale the monitor viewport in its compositing space
The xdg-output spec was updated to clarify its usage rules, and what was previously thought to be a bug is actually valid behavior. Gnome, when not using 'scale-monitor-framebuffer', does not scale the viewport of the display in the global compositor space, and thus the physical and logical sizes of the display will match. This value still needs to be divided by the integer scale value to get the logical output dimensions in screen units though.
2023-03-16 14:01:42 -04:00
Sam Lantinga
5dd317b869 Fixed position when setting WM hints on X11 popup windows 2023-03-15 20:23:03 -07:00
Sam Lantinga
422517c036 Allow passing 0 to SDL_SetWindowMinimumSize() and SDL_SetWindowMaximumSize() to indicate no limit 2023-03-15 16:13:56 -07:00
Anonymous Maarten
d27db3defa cmake+video: always use altivec.h header for detection + introduce SDL_ENABLE_ALTIVEC 2023-03-15 14:54:20 +01:00
Anonymous Maarten
9cb5f0bfc6 video: fix ARM neon and simd 2023-03-15 14:54:20 +01:00
Anonymous Maarten
ba5b1f2fd2 Fix build with -DX11MODES_DEBUG in CPPFLAGS 2023-03-15 14:54:20 +01:00
Anonymous Maarten
fc4085b54e cmake: Allow build system to disable arm neon intrinsics 2023-03-15 14:54:20 +01:00
Anonymous Maarten
46de6241d7 cmake: Allow build system to disable loongarch intrinsics 2023-03-15 14:54:20 +01:00
Anonymous Maarten
4681240241 cmake: Detect AVX + allow build system to disable Intel intrinsics 2023-03-15 14:54:20 +01:00
Sam Lantinga
a17ad65f2b Revert "Popup window parent defaults to the first toplevel window"
This reverts commit e8e2c8175c.

Conceptually tooltips and context menus always have parent windows
2023-03-14 14:53:54 -07:00
Frank Praznik
969e0842e6 video: Preserve the flag to restore popup windows with the parent when recreating the window during renderer initialization 2023-03-14 16:37:09 -04:00
Sam Lantinga
e8e2c8175c Popup window parent defaults to the first toplevel window 2023-03-14 11:42:58 -07:00
Sylvain
2cafa52598 - Added SDL_WINDOW_TRANSPARENT to request a window with transparent framebuffer
- Remove SDL_VIDEO_EGL_ALLOW_TRANSPARENCY hint, EGL now checks 'window->flags & SDL_WINDOW_TRANSPARENT'
2023-03-13 21:23:04 +01:00
Frank Praznik
4dededd345 wayland: Don't throttle presentation until the first swap has occurred
Don't throttle window updates until the first swap has occurred, as the window won't actually be shown or receive the frame callback until that point and this causes new window creation to have a full 1 second delay.
2023-03-13 15:36:55 -04:00
Sam Lantinga
4dd26698fc Added SDL_GetWindowParent() to get the parent of popup windows 2023-03-13 11:21:02 -07:00
Sam Lantinga
ebe3a9dc44 Spacing cleanup 2023-03-13 11:21:02 -07:00
Frank Praznik
1f35fd6939 video: Update the popup window creation documentation and disallowed flags
Update the popup window creation documentation with additional info, remove the SDL_WINDOW_MOUSE_GRABBED flag check since it isn't a valid window creation flag and will be removed automatically elsewhere, and check for and remove the explicit skip taskbar and borderless flags since they are implicit for popup windows.
2023-03-13 13:56:01 -04:00
Frank Praznik
f97b469184 video: Disallow additional operations on popups where appropriate
Disallow additional window operations on popups where they have no functionality or otherwise don't make sense:

- Popups cannot be set as modal to other windows (they're already child windows of a parent)
- Other windows cannot be set as modal of popups
- Popups cannot explicitly grab the mouse/keyboard (the topmost popup menu takes the keyboard focus implicitly)
- Popups cannot flash or be raised
2023-03-13 13:56:01 -04:00
Frank Praznik
d5b5e524af wayland: Set the EGL swap timeout to one second from the current time
Set the timeout max to one second from the current time or presentation time will always be greater than the timeout and the application will run unthrottled.
2023-03-12 17:07:32 -04:00
Sam Lantinga
67e2558310 Check tooltip and popup window flags during parameter validation 2023-03-11 12:44:57 -08:00
Frank Praznik
3e28588bb6 wayland: Never use the cached size for maximized or tiled windows
Don't use the cached floating window size for maximized or tiled windows. Fixes the initial window size when creating a window with the maximized flag set.
2023-03-11 11:40:57 -05:00
Sam Lantinga
f4c1260120 More changes to fix building with older macOS SDKs 2023-03-10 16:38:45 -08:00
Sam Lantinga
c044cff4c7 Rewrite WIN_GetSystemTheme() so we don't need to bump Windows SDK versions 2023-03-10 16:29:42 -08:00