Dimitriy Ryazantcev
9faa7977bd
UWP: Add support for supplementary Unicode characters input
...
Characters outside Basic Multilingual Plane (BMP) are coded as so called "surrogate pair" in two separate UTF-16 character events.
2023-11-28 12:33:21 -08:00
Dimitriy Ryazantcev
7b628ea4d5
Win32: Simplify Unicode text input code
2023-11-28 12:33:21 -08:00
Dimitriy Ryazantcev
acc5bb89f8
[Win32] Better keyboard button mapping to SDL scan codes
...
Using official mappings from the Microsoft docs:
https://learn.microsoft.com/windows/win32/inputdev/about-keyboard-input#scan-codes
2023-11-28 11:31:19 -08:00
Dimitriy Ryazantcev
7e86b6aef2
Win32: Fix keymap for keyboard layouts that can print UTF-16 surrogates and ligatures
...
Old implementation with `MapVirtualKey(..., MAPVK_VK_TO_CHAR) & 0x7FFFF` simply returned `A`..`Z` for VK_A..VK_Z and
completely useless <U+0002 START OF TEXT> (`WCH_LGTR 0xF002` without high-order bit) in case of ligature.
See https://kbdlayout.info/features/ligatures for a list of affected keyboard layouts.
More info on `MAPVK_VK_TO_CHAR`: https://stackoverflow.com/a/72464584/1795050
2023-11-28 11:11:33 -08:00
Jake S. Del Mastro
ceac93ade2
Set framebuffer_srgb_capable to the actual value obtained ( #8634 )
...
(cherry picked from commit 594a79c2f9 )
2023-11-28 05:49:40 -08:00
Sam Lantinga
81fc7ded78
Removed the window shape API for SDL 3.0
...
Fixes https://github.com/libsdl-org/SDL/issues/6654
Fixes https://github.com/libsdl-org/SDL/issues/6897
2023-11-22 14:11:10 -08:00
Dimitriy Ryazantcev
0d431015bf
Extract BMP magic into separate define
2023-11-21 08:37:33 -08:00
Zack Middleton
5e9b0820f3
Add cursors for X11/Wayland window resizing
2023-11-21 08:34:13 -08:00
Dimitriy Ryazantcev
91e122316c
Use SDL_small_alloc() instead of SDL_stack_alloc() in CreateMaskBitmap()
2023-11-21 07:42:01 -08:00
Dimitriy Ryazantcev
49d58bc73a
Cleanup WIN_CreateCursor() code a bit
...
Generate bimap mask from the alpha channel.
2023-11-19 12:41:12 -08:00
Sam Lantinga
aaf54b09a1
Revert "Cleanup WIN_CreateCursor() code a bit"
...
This reverts commit 876c97454a .
This caused the blank cursor to be entirely black
2023-11-15 11:32:06 -08:00
Louis M
bd4966999b
Replacing SDL_SCANCODE_AUDIOMUTE by SDL_SCANCODE_MUTE on Windows
...
(cherry picked from commit 925362a2fc )
2023-11-14 09:27:43 -08:00
Sam Lantinga
e0c45c6c98
Renamed SDL_WINDOW_FOREIGN to SDL_WINDOW_EXTERNAL
2023-11-14 06:06:51 -08:00
Sam Lantinga
229b7b9d50
SDL_CreateWindowWithPosition() and SDL_CreateWindowFrom() have been replaced with SDL_CreateWindowWithProperties()
...
This is a more general interface that can be extended in the future as needed.
2023-11-14 06:06:51 -08:00
Dimitriy Ryazantcev
876c97454a
Cleanup WIN_CreateCursor() code a bit
...
Closes #6476
2023-11-13 11:46:50 -08:00
Sam Lantinga
1c4723ac66
SDL_CreateWindowFrom() now takes a set of properties that describe the native window and options.
2023-11-12 21:58:58 -08:00
Sylvain Becker
04b6b2979f
Re-add SDL_assert() with non boolean ptr syntax ( #8530 )
2023-11-11 12:28:24 +03:00
Sylvain
d8600f717e
Pointer as bool (libsdl-org#7214)
2023-11-09 14:18:36 -08:00
Sam Lantinga
02f356439d
Allow the application to draw while Windows is in a modal move/resize loop
...
If you're using the application main callbacks, your SDL_AppIterate() function will be called while Windows is moving and resizing your window. If not, then SDL will send an SDL_EVENT_WINDOW_EXPOSED event for your window and you can use an event watcher to redraw your window directly from the callback.
Fixes https://github.com/libsdl-org/SDL/issues/1059
Closes https://github.com/libsdl-org/SDL/pull/4836
2023-11-08 13:32:56 -08:00
Sam Lantinga
fd4a2cce9e
SDL_syswm.h has been removed and replaced with window properties
2023-11-08 12:01:48 -08:00
Ryan C. Gordon
2f92807087
vulkan: SDL_Vulkan_CreateSurface now accepts an app-provided allocator.
...
Fixes #3638 .
2023-11-06 13:31:20 -05:00
Sam Lantinga
9302d7732d
Fixed touch normalized coordinates
...
When converting normalized coordinates to pixel coordinates, the valid range is 0 to (width or height) - 1, and the pixel coordinate of width or height is past the edge of the window.
Fixes https://github.com/libsdl-org/SDL/issues/2913
2023-11-05 06:55:39 -08:00
Sam Lantinga
91f0456391
Add the source application for drag and drop events (thanks Nathan!)
...
This is only implemented on iOS, but is useful for third party application integrations.
Fixes https://github.com/libsdl-org/SDL/issues/2024
2023-11-04 13:00:41 -07:00
Sam Lantinga
f3261fedcc
Code cleanup now that SDL_bool is equivalent to a C boolean expression
2023-11-03 09:54:04 -07:00
ilyas-taouaou
9224a0a2d8
Fix emscripten, android, uikit and windows
2023-11-02 14:27:36 -04:00
ilyas-taouaou
d0d8b28df1
Change SDL_Vulkan_GetInstanceExtensions
2023-11-02 14:27:36 -04:00
Sam Lantinga
c98a14fdeb
Renamed display added/removed events for consistency with the rest of the API
...
Fixes https://github.com/libsdl-org/SDL/issues/8425
2023-10-23 09:14:54 -07:00
danginsburg
723835d16a
Windows: fix for client rect resizing larger each time we came from exclusive fullscreen -> windowed on a monitor with HiDPI set. The problem was we were using the monitor DPI rather than the window DPI so AdjustWindowRectExForDpi was giving us an incorrect size which would be too large for the client rect. Closes #8237 .
2023-09-12 07:36:55 -07:00
Sam Lantinga
a5e7214795
Add SDL_WINDOW_NOT_FOCUSABLE flag to set that the window should not be able to gain key focus
...
- Also adds SDL_SetWindowFocusable() to set/clear flag on existing windows
2023-08-30 20:29:51 -07:00
Sam Huang
c191d6c306
Better Win32 transparent window support
2023-08-27 13:06:42 -07:00
Ozkan Sezer
363f4fa9c1
avoid type redefinition errors after commit ee806597b9.
...
(Reference issue: https://github.com/libsdl-org/SDL/issues/8142 )
2023-08-27 22:22:10 +03:00
Sam Huang
c7588e4261
Transparent window for Win32 + OpenGL ( #8143 )
...
* Transparent window for Win32 + OpenGL via DWM
2023-08-23 07:42:59 -07:00
Frank Praznik
70323a8350
Add a function to display the system menu for a window
...
Add SDL_ShowWindowSystemMenu() to display the system-level menu for windows. Typically, this is done by right-clicking on the system provided window decorations, however, if an application is rendering its own client-side decorations, there is currently no way to display it. This menu is provided by the system and can provide privileged desktop functionality such as moving or pinning a window to a specific workspace or display, setting the always-on-top property, or taking screenshots. In many cases, there are no APIs which allow applications to perform these actions manually.
Implemented for Wayland via functionality provided by the xdg_toplevel protocol, Win32 via the undocumented message 0x313 (typically called WM_POPUPSYSTEMMENU), and X11 via the "_GTK_SHOW_WINDOW_MENU" atom (supported in GNOME and KDE).
2023-08-04 13:39:45 -04:00
Sam Lantinga
68a4bb01e0
Allocate displays as an array of pointers instead of an array of objects
...
This fixes current_mode from pointing at the wrong data when displays are moved around
2023-08-01 19:24:29 -07:00
Sam Lantinga
07578fde3d
Fixed crash if a display is enumerated twice
...
This can happen if a monitor is in the process of becoming primary because another monitor was disconnected.
2023-08-01 18:28:55 -07:00
Sam Lantinga
41d436f0fe
Use SetWindowPos to show windows when SDL_HINT_WINDOW_ACTIVATE_WHEN_SHOWN is set to avoid activating the parent window when showing a child window
2023-07-27 11:56:53 -07:00
Sam Lantinga
c5bd2cba98
Fix passing of child window focus in WIN_ShowWindow/WIN_RaiseWindow
...
Keyboard focus was being passed to the child window being shown if SDL_HINT_WINDOW_ACTIVATE_WHEN_SHOWN is false and keyboard focus was not being passed to the child window being activated in WIN_RaiseWindow.
2023-07-06 18:14:34 -07:00
Sam Lantinga
565e95ac4e
Fix windows created with SDL_WINDOW_MINIMIZED having inconsistent SDL_WINDOW_HIDDEN flag on Windows
...
- Windows created minimized are shown with SW_SHOWMINNOACTIVE which does not send WM_SHOWWINDOW leaving the window visible (but minimized)
on desktop but still with the SDL_WINDOW_HIDDEN flag set. Now the hidden flag is cleared in this case but noted that this means it's not currently possible
to create a window that is initially hidden that then is minimized once shown.
2023-07-06 18:14:27 -07:00
Sam Lantinga
badb7f1e8b
Added notes about delayed clipboard rendering on Windows
2023-07-06 08:36:49 -07:00
Sam Lantinga
7890985629
Fixed windows debug message formatting
2023-07-06 08:33:12 -07:00
Sam Lantinga
55ff09de38
Reimplement clipboard text in terms of clipboard data
...
This will simplify the X11 and Wayland implementations, which were doing that under the hood, and makes application interaction between the two APIs consistent.
2023-07-05 20:06:59 -07:00
Sam Lantinga
443868143c
Added support for clipboard data on Windows
...
The only supported image format is image/bmp
2023-07-05 20:06:59 -07:00
Sam Lantinga
61ff86617a
Added GetClientScreenRect() and fixed build for C89 compilers
2023-07-05 11:05:48 -07:00
expikr
a7326b9396
center cursor to client area (excludes titlebar thickness)
2023-07-05 10:11:57 -07:00
Sam Lantinga
f49f1434b9
Revert "Update SDL_windowswindow.c"
...
This reverts commit d0fdf6207b .
2023-07-05 09:22:09 -07:00
expikr
d0fdf6207b
Update SDL_windowswindow.c
2023-07-04 20:42:01 -07:00
Sam Lantinga
b6645bb255
Retry to open the clipboard in case another application has it open
...
This fixes 'testautomation --filter clipboard_testClipboardTextFunctions' on Windows
2023-07-03 16:18:33 -07:00
luzpaz
37e567994d
Fix remaining typos ( #7921 )
...
* Fix remaining typos
Found via `codespell -q 3 -S *.hex,*.pdf,./src/libm,./src/hidapi,./src/stdlib/SDL_malloc.c,./src/video/x11/edid.h -L caf,currenty,datas,einstance,fo,hda,lod,mata,parm,parms,pevent,pevents,pixelx,requestor,ser,statics,te,texturers,thid,uscaled,windowz`
2023-07-03 12:46:47 -07:00
Sam Lantinga
e264bb5178
Rename SDL_PIXELFORMAT_RGB888 and SDL_PIXELFORMAT_BGR888 to SDL_PIXELFORMAT_XRGB8888 and SDL_PIXELFORMAT_XBGR8888 for clarity
...
Fixes https://github.com/libsdl-org/SDL/issues/7903
2023-07-01 17:58:34 -07:00
Sam Lantinga
8da9b22c17
The SDL_WINDOW_SKIP_TASKBAR flag has been replaced by the SDL_WINDOW_UTILITY flag
...
The SDL_WINDOW_UTILITY flag has the same functionality, and is now implemented on Windows.
2023-06-29 21:43:17 -07:00