Commit Graph

626 Commits

Author SHA1 Message Date
Frank Praznik
1f89c407e0 win32: Fix maximized windows when leaving fullscreen
If a window is fullscreen and the maximized state is requested, it needs to be explicitly entered after leaving fullscreen, or the resulting window will be in the maximized state, but still the size of the non-maximized window.
2024-05-21 18:57:55 -04:00
Ozkan Sezer
f295f6814c fix type redefinition errors after #9817 2024-05-17 07:28:50 +03:00
Ali Emre Gülcü
f17b556c76 Add SDL_Vulkan_DestroySurface functionality (#9817)
Added SDL_Vulkan_DestroySurface, its documentation and corresponding platform specific implementations. Fixed some header inclusion orders to improve consistency between platforms. Added TODOs regarding MetalView creation and destruction which will benefit from the new functionality.
2024-05-16 17:41:15 -07:00
Daniel Ludwig
22bcee3318 VisualC-GDK: Fix Xbox builds 2024-05-08 08:58:29 -07:00
Sam Lantinga
991d28ae37 Use SDL_MessageBoxFlags and SDL_MessageBoxButtonFlags appropriately 2024-05-07 13:41:12 -07:00
Sam Lantinga
537c62f4c1 Fixed memory leak cleaning up mouse and keyboard instances
Fixes https://github.com/libsdl-org/SDL/issues/9487
2024-05-07 09:26:18 -07:00
Semphris
c6a70d6898 Add support for modal windows to more platforms
- Adds support for modal windows to Win32, Mac, and Haiku, and enhances functionality on Wayland and X11, which previous set only the parent window, but not the modal state.
- Windows can be declared modal at creation time, and the modal state can be toggled at any time via SDL_SetWindowModalFor() (tested with UE5 through sdl2-compat).
- Allows dynamic unparenting/reparenting of windows.
- Includes a modal window test.
2024-04-30 13:47:57 -04:00
Sam Lantinga
e56f05bac1 Fixed unclipping the mouse when a monitor is placed left of the primary one on Windows.
There is now a desktop bounds variable that could potentially be exposed in the API if we wanted.
2024-04-24 12:06:00 -07:00
Sam Lantinga
98582dca02 Fixed Win+V handling (pasting from clipboard history) on Windows
Fixes https://github.com/libsdl-org/SDL/issues/9613
2024-04-24 09:35:19 -07:00
Mathieu Eyraud
29d43272e2 Fix memory leak in WIN_GetMonitorPathInfo 2024-04-15 03:24:09 -10:00
Sam Lantinga
a8ed32c5f7 Re-enable cursor clipping when clicking into a window when relative mouse mode is enabled 2024-04-03 12:41:19 -07:00
Clownacy
65e7c8e265 Fix default Windows window icon not suiting the DPI.
For whatever reason, `ExtractIconEx` returns icons whose sizes are
inappropriate for the current DPI, resulting in terribly-blurry
window icons at higher DPIs.

To solve this, the window icon is now set to the first icon group
that is present in the executable. This behaviour should match what
Explorer does. By selecting an icon group instead of a specific icon,
Windows is free to select the icon within the group that best suits
the current DPI.

(cherry picked from commit 1fa6142903)
2024-04-02 12:04:52 -07:00
Sam Lantinga
fbbee04423 Revert "Only clear the raw input queue status if we don't call GetRawInputBuffer()"
This reverts commit 02c63667c7.

It turns out that QS_RAWINPUT isn't actually cleared by GetRawInputBuffer(). See https://github.com/libsdl-org/SDL/issues/9409 for more details.
2024-03-31 12:44:13 -07:00
Mathieu Eyraud
4d00706f57 Do not store pointer before potentialy freeing it
Store data to windows->driverdata after call to SetProp() in case it fails.
2024-03-30 11:07:42 -07:00
Mathieu Eyraud
36dec0bf4e Fix return value of WIN_GetMonitorPathInfo 2024-03-30 11:04:32 -07:00
Sam Lantinga
8201b6dc4d Added support for raw mousewheel events 2024-03-30 07:38:38 -07:00
Sam Lantinga
4a00d34a86 Always send raw mouse button state changes
Fixes https://github.com/libsdl-org/SDL/issues/9395
2024-03-30 07:30:43 -07:00
Sam Lantinga
af5728b94d Fixed event handle accumulation when the SDL window doesn't have focus
This also fixes a crash on shutdown caused by the raw input thread failing to stop
2024-03-28 15:11:45 -07:00
Sam Lantinga
fc81d4e5fc Fixed 64-bit conversion warnings 2024-03-28 09:12:26 -07:00
Sam Lantinga
02c63667c7 Only clear the raw input queue status if we don't call GetRawInputBuffer()
GetRawInputBuffer() will do that for us when we read all the queued events
2024-03-26 15:27:57 -07:00
Sam Lantinga
d6fc629b5b Fixed Windows rawinput crash
RAWINPUT structures are variable size
2024-03-26 15:27:57 -07:00
Sam Lantinga
3eb8f35f3b windows: handle the Pause key sequence for raw keyboard input 2024-03-26 09:22:00 -07:00
Daniel Ludwig
4562b41a4d VisualC-GDK: Add missing dialog sources, fix Xbox builds 2024-03-26 07:28:22 -07:00
Ozkan Sezer
0556362c38 SDL_windowsevents.c: comment out unused local mouse var after 70b5cd44 2024-03-26 11:47:32 +03:00
Sam Lantinga
70b5cd44ec windows: explicitly check whether raw_mouse_enabled is true before handling Windows mouse messages 2024-03-25 20:49:16 -07:00
Sam Lantinga
78c7834f90 Added SDL_HINT_WINDOWS_RAW_KEYBOARD to control whether raw keyboard is enabled on Windows 2024-03-25 20:41:05 -07:00
Sam Lantinga
b9a88bbecb Removed SDL_TextInputShown()
This was only implemented on Windows and often confused with SDL_ScreenKeyboardShown()
2024-03-25 13:26:23 -07:00
Sam Lantinga
fa236f169b Only do work to process text events if text input is active
Fixes https://github.com/libsdl-org/SDL/issues/9353
2024-03-25 13:26:23 -07:00
Sam Lantinga
012fc1e32b windows: enable raw keyboard input when raw mouse input is enabled 2024-03-25 13:26:23 -07:00
Sam Lantinga
35d335e61f Fixed warning C4267: 'function': conversion from 'size_t' to 'DWORD', possible loss of data 2024-03-25 11:46:47 -07:00
Sam Lantinga
c83d0d87c2 Revert "Added virtual keyboard support for Xbox (thanks @ts-13512)"
This reverts commit b5d4206b30.

@nkrapivin already implemented GDK virtual keyboard support in https://github.com/libsdl-org/SDL/pull/7728
2024-03-23 16:47:59 -07:00
Sam Lantinga
b5d4206b30 Added virtual keyboard support for Xbox (thanks @ts-13512) 2024-03-23 16:34:43 -07:00
Sam Lantinga
361b7190df Track unique button states between different mice
We were already halfway doing this, but now we make that information available to the Windows driver so it can cache the button state per-mouse
2024-03-23 16:31:00 -07:00
Sam Lantinga
35756593d6 Use the correct device ID (global or default or specific) based on context 2024-03-23 16:31:00 -07:00
Sam Lantinga
c0f4565552 Added SDL_GetKeyboardName() and SDL_GetMouseName() 2024-03-23 16:31:00 -07:00
Sam Lantinga
d1eb4adb16 Be explicit about the event mouse and keyboard ID 2024-03-23 16:31:00 -07:00
Sam Lantinga
2fe1a6a279 Initial support for hotplugging mice and keyboards 2024-03-23 16:31:00 -07:00
Dimitriy Ryazantcev
1973edb9b7 WIN_UpdateKeymap: cleanup code a bit 2024-03-13 09:09:59 -07:00
Sam Lantinga
ab5351f5d6 Fixed leaving the cursor clip set when changing window focus
While the focus change happens, Windows appears to reset the cursor clip rectangle, and then restore it if the application that has focus has the clip rectangle set.

This fixes resetting the clip rectangle while changing focus between windows in the same application, e.g. the Source 2 editor.
2024-03-11 10:58:40 -07:00
Sam Lantinga
16e0806ced Note that the cursor clip has been cleared even if we didn't do it
This releases the mouse cursor when bringing up the console on Counter Strike in dev mode.
2024-03-08 15:56:49 -08:00
Sam Lantinga
33eaddc565 Cleaned up various type conversion issues
This makes sure SDL_PixelFormatEnum flows through the internal code correctly, as well as fixing a number of other minor issues.
2024-03-07 06:58:43 -08:00
Susko3
641b911d38 Update some internal files to use SDL_WindowFlags 2024-03-06 15:08:12 -08:00
Frank Praznik
4c0601b93f video: Return a failure code if the video driver fails to grab the mouse or keyboard
Alter the video driver grab/confinement function signatures to return an int, set and return an error if the grab request fails, and clear the grab flags from the window if the mouse and/or keyboard wasn't actually grabbed.
2024-03-05 17:59:10 -05:00
Jade Macho
e2a8209263 GDK: Use WIN_IsRectEmpty (IsRectEmpty is desktop-only) 2024-03-02 10:30:29 -08:00
Jade Macho
290f64b86c GDK: Windows shape is desktop-only 2024-03-02 10:30:29 -08:00
Jade Macho
e1e5d33420 GDK: Partially revert 2670eb44af
MsgWaitForMultipleObjects is desktop-only.
2024-03-02 10:30:29 -08:00
Sam Lantinga
4ba6aeee9d A second take on HDR support with an SDR white point and HDR headroom
This better reflects how HDR content is actually used, e.g. most content is in the SDR range, with specular highlights and bright details beyond the SDR range, in the HDR headroom.

This more closely matches how HDR is handled on Apple platforms, as EDR.

This also greatly simplifies application code which no longer has to think about color scaling. SDR content is rendered at the appropriate brightness automatically, and HDR content is scaled to the correct range for the display HDR headroom.
2024-02-21 19:25:49 -08:00
Sam Lantinga
cb38649490 Added SDL_PROP_DISPLAY_HDR_WHITE_LEVEL_FLOAT 2024-02-16 19:50:41 -08:00
Sam Lantinga
20051f805f Removed SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4
Replaced with SDL_HINT_WINDOWS_CLOSE_ON_ALT_F4, defaulting to SDL_TRUE
2024-02-12 09:54:33 -08:00
Sam Lantinga
cacac6cc34 Updated structure and field names for consistency
Type names are camel case and field names are snake case except for fields ending in id, which are capitalized.

Fixes https://github.com/libsdl-org/SDL/issues/6955
2024-02-11 08:27:56 -08:00