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
6443c75eda
Removed SDL_TEXTINPUTEVENT_TEXT_SIZE
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
658f3cdcf1
x11: use XInput2 for lower level access to keyboard events
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
07c49d1a67
Fixed text input being active after SDL_StopTextInput() (thanks @AntTheAlchemist!)
2024-03-25 06:46:23 -07:00
Cameron Gutman
f14fb979c1
Remove legacy SDL2 input grab API
2024-03-24 16:53:23 -07:00
Sam Lantinga
13933222ee
Fixed string comparison (thanks @meyraud705!)
2024-03-24 11:37:03 -07:00
Frank Praznik
9e460ce6a6
wayland: Pass the keyboard ID through to repeat events
2024-03-24 08:49:29 -04: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
Anonymous Maarten
f030533580
SDL_blit: remove SDL_BLIT_CPU_FEATURES override
2024-03-23 16:36:44 -07:00
Sam Lantinga
b5d4206b30
Added virtual keyboard support for Xbox (thanks @ts-13512)
2024-03-23 16:34:43 -07:00
Frank Praznik
87714ce5b9
wayland: Set the keyboard and mouse names to match XWayland
2024-03-23 16:31:00 -07:00
Sam Lantinga
72fc6f86e5
Text input is no longer automatically enabled when initializing video.
...
Fixes https://github.com/libsdl-org/SDL/issues/9309
Fixes https://github.com/libsdl-org/SDL/issues/9268
2024-03-23 16:31:00 -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
20a860c876
Use the specific pointer device ID for X11 button and motion events
2024-03-23 16:31:00 -07:00
Sam Lantinga
476245564c
Use the real device IDs for the X11 master keyboard and pointer
...
These always exist so they don't really help detect whether a keyboard/mouse is attached. Looking at the slave devices isn't that helpful either, as they're very permissive in what they might send.
For example, on my system with a single mouse and keyboard attached, xinput -list shows:
Virtual core pointer id=2 [master pointer (3)]
- Virtual core XTEST pointer id=4 [slave pointer (2)]
- Generic USB Mouse id=10 [slave pointer (2)]
- Generic USB Consumer Control id=11 [slave pointer (2)]
- KINESIS CORPORATION KB800HM Kinesis Freestyle2 for Mac id=18 [slave pointer (2)]
- Logitech Gaming Mouse G502 Consumer Control id=15 [slave pointer (2)]
- Logitech Gaming Mouse G502 id=17 [slave pointer (2)]
Virtual core keyboard id=3 [master keyboard (2)]
- Virtual core XTEST keyboard id=5 [slave keyboard (3)]
- Power Button id=6 [slave keyboard (3)]
- Power Button id=7 [slave keyboard (3)]
- Sleep Button id=8 [slave keyboard (3)]
- Generic USB id=9 [slave keyboard (3)]
- Generic USB System Control id=12 [slave keyboard (3)]
- Generic USB Consumer Control id=19 [slave keyboard (3)]
- KINESIS CORPORATION KB800HM Kinesis Freestyle2 for Mac id=20 [slave keyboard (3)]
- KINESIS CORPORATION KB800HM Kinesis Freestyle2 for Mac id=21 [slave keyboard (3)]
- Logitech Gaming Mouse G502 Keyboard id=13 [slave keyboard (3)]
- Logitech Gaming Mouse G502 System Control id=14 [slave keyboard (3)]
- Logitech Gaming Mouse G502 Consumer Control id=16 [slave keyboard (3)]
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
Frank Praznik
1c54455353
wayland: Send keyboard and mouse added/removed events
...
Send keyboard and mouse added/removed events when seat capabilities change. Note that Wayland only supports one global keyboard and mouse object per seat, so events coming from different keyboards and mice on the same seat can't be distinguished.
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
Frank Praznik
297f8e41af
wayland: Factor out the general SHM buffer allocation/free functions from the cursor code
...
It will be necessary for a forthcoming toplevel icon setting protocol that will likely soon call for implementations, and is cleaner in general.
2024-03-23 14:17:13 -04:00
Anonymous Maarten
f59dbf6a12
cmake: add -Wimplicit-fallthrough warning
2024-03-18 20:34:50 +01:00
Frank Praznik
ebb6582534
wayland: Handle the toplevel export property as a string
...
xdg-toplevel export handles are strings, so treat the property as one. Avoids the need to manually manage the string pointer.
2024-03-18 11:41:02 -04:00
Frank Praznik
cb39740cfd
wayland: Remove additional instance of setting the viewport source rect
2024-03-17 13:10:48 -04:00
Frank Praznik
1bab87399f
wayland: Always use the entire buffer for the viewport source
...
Not doing so can result in protocol errors if the viewport source region is updated and a buffer with the old, smaller dimensions is committed.
2024-03-17 10:44:10 -04:00
Sam Lantinga
25c64a954d
Removed UIKit_SetWindowMouseGrab(), mouse grab isn't supported on iOS
2024-03-15 16:26:40 -07:00
Frank Praznik
19764ffcc8
wayland: Add the xdg-foreign-unstable-v2 protocol
...
Add the xdg-foreign-unstable-v2 protocol and use it to create export handles for toplevel windows, which will be used when an external component, such as the file chooser portal, requires it.
2024-03-15 18:30:05 -04:00
Ryan C. Gordon
6776b6108a
iostream: "free*" params should be "closeio".
2024-03-14 23:14:46 -04:00
Ryan C. Gordon
fc7afa9cbf
rwops: Renamed SDL_RWops to SDL_IOStream, and other related symbols.
2024-03-14 19:38:12 -04:00
Ryan C. Gordon
7d4d8ccde0
rwops: Rename everything from SDL_RWxxx to SDL_XxxRW.
2024-03-14 19:37:04 -04:00
Ryan C. Gordon
655ceb3b31
rwops: Renamed SDL_CreateRW and SDL_DestroyRW to SDL_OpenRW and SDL_CloseRW.
2024-03-14 19:37:01 -04:00
Ryan C. Gordon
525919b315
rwops: Reworked RWops for SDL3.
...
- SDL_RWops is now an opaque struct.
- SDL_AllocRW is gone. If an app is creating a custom RWops, they pass the
function pointers to SDL_CreateRW(), which are stored internally.
- SDL_RWclose is gone, there is only SDL_DestroyRW(), which calls the
implementation's `->close` method before freeing other things.
- There is only one path to create and use RWops now, so we don't have to
worry about whether `->close` will call SDL_DestroyRW, or if this will
risk any Properties not being released, etc.
- SDL_RWFrom* still works as expected, for getting a RWops without having
to supply your own implementation. Objects from these functions are also
destroyed with SDL_DestroyRW.
- Lots of other cleanup and SDL3ization of the library code.
2024-03-14 19:36:08 -04:00
Frank Praznik
717f297849
Add 'wl_list_for_each_safe' to the clang-format macro list
...
...and fix the formatting when it is used.
2024-03-14 10:22:23 -04:00
Frank Praznik
4686a737a9
wayland: Minor cursor code cleanup
...
Clean up variable declarations and fix some formatting issues.
2024-03-13 12:39:00 -04:00
Dimitriy Ryazantcev
1973edb9b7
WIN_UpdateKeymap: cleanup code a bit
2024-03-13 09:09:59 -07:00
Frank Praznik
c2e9693de5
wayland: Add cursor-shape-v1 protocol support
2024-03-12 20:54:55 -04:00
Frank Praznik
9bdb992925
wayland: Allocate the cursor shared memory buffer entirely in memory, if possible.
...
Use memfd_create() to allocate the temporary SHM backing file in memory, and set the size with posix_fallocate(), which will return an error on insufficient space vs ftruncate(), which will silently succeed and allow a SIGBUS error to occur if the unbacked memory is accessed.
Additionally, make the legacy path more robust by unlinking the temp file, so it won't persist after close, and unmapping the shared memory buffer.
2024-03-12 20:54:55 -04:00
Sam Lantinga
d4794cc714
Fix crash in SDL_UpdateFullscreenMode calling SetWindowFullscreen with a null display
...
- This mirrors the check above for fullscreen=true in the unlikely case where there is no primary display detected
2024-03-11 11:17:45 -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
Green Sky
4de30a26a2
x11: workaround issues with primary selection and clipboard temporal ignorance
2024-03-10 08:59:44 -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
Sam Lantinga
c70710cde8
SDL_GetPixelFormatEnumForMasks() returns SDL_PixelFormatEnum
2024-03-06 16:19:08 -08:00
Susko3
641b911d38
Update some internal files to use SDL_WindowFlags
2024-03-06 15:08:12 -08:00
Susko3
ce44eff3d2
Use SDL_WindowFlags in public headers
2024-03-06 15:08:12 -08:00
Susko3
424616e032
Use SDL_PixelFormatEnum as type
2024-03-06 15:02:13 -08:00
Sam Lantinga
38c54b8e0e
More null checks for SDL window operations
2024-03-06 13:33:30 -08:00