Ryan C. Gordon
ed62033366
x11: make last mouse coords sane upon window entry (thanks, Cengiz!).
...
(and thanks to Cengiz for many of the previous Unreal-related
patches! They were generically credited to Epic Games, but a large
amount of that work was his contribution.)
Fixes Bugzilla #3067 .
2016-01-07 19:58:00 -05:00
Ryan C. Gordon
416d046663
Mac: Implemented SDL_GetDisplayDPI (thanks, Kirill!).
...
Fixes Bugzilla #3223 .
2016-01-07 14:02:37 -05:00
Ryan C. Gordon
49e47688b4
Patched to compile on iOS.
2016-01-05 05:38:55 -05:00
Ryan C. Gordon
eeb899999f
Patched to compile.
2016-01-05 05:22:35 -05:00
Ryan C. Gordon
7605ccf68a
Use SDL's stdinc functions instead of C runtime calls.
2016-01-05 02:29:16 -05:00
Ryan C. Gordon
dc532c70e8
Added SDL_WINDOWEVENT_TAKE_FOCUS.
...
This is for corner cases where a multi-window app is activated and wants to
make a decision about where focus should go.
This patch came from Unreal Engine 4's fork of SDL, compliments of Epic Games.
2016-01-05 02:27:50 -05:00
Ryan C. Gordon
aa4952fdef
Added SDL_WINDOWEVENT_HIT_TEST.
...
This lets windows know when they are dropping a mouse event because their
hit test reported something other than SDL_HITTEST_NORMAL. It lets them know
exactly where in the event queue this happened.
This patch is based on work in Unreal Engine 4's fork of SDL,
compliments of Epic Games.
2015-04-21 10:10:59 -04:00
Ryan C. Gordon
d4aedf9951
Added SDL_SetWindowModalFor().
...
This is currently only implemented for X11.
This patch is based on work in Unreal Engine 4's fork of SDL,
compliments of Epic Games.
2015-04-21 09:45:58 -04:00
Ryan C. Gordon
e497e46515
Added SDL_SetWindowInputFocus().
...
This is currently only implemented for X11.
This patch is based on work in Unreal Engine 4's fork of SDL,
compliments of Epic Games.
2016-01-05 02:28:56 -05:00
Ryan C. Gordon
3bdaf4c611
Added SDL_SetWindowOpacity() and SDL_GetWindowOpacity().
...
This is currently implemented for X11, Cocoa, Windows, and DirectFB.
This patch is based on work in Unreal Engine 4's fork of SDL,
compliments of Epic Games.
2016-01-05 02:46:10 -05:00
Ryan C. Gordon
5696e88e6b
Added SDL_GetWindowBordersSize().
...
This is currently only implemented for X11.
This patch is based on work in Unreal Engine 4's fork of SDL,
compliments of Epic Games.
2016-01-05 02:29:06 -05:00
Ryan C. Gordon
f9af0c0376
x11: Put a matching window_group wmhint on every window created.
...
This is useful to the Window Manager, so it can know to associate multiple SDL
windows with a single app.
2016-01-05 02:27:26 -05:00
Ryan C. Gordon
8e855f2fbc
Added SDL_DROPBEGIN and SDL_DROPCOMPLETE events, plus window IDs for drops.
...
This allows an app to know when a set of drops are coming in a grouping of
some sort (for example, a user selected multiple files and dropped them all
on the window with a single drag), and when that set is complete.
This also adds a window ID to the drop events, so the app can determine to
which window a given drop was delivered. For application-level drops (for
example, you launched an app by dropping a file on its icon), the window ID
will be zero.
2016-01-05 01:42:00 -05:00
Ryan C. Gordon
f2defe5e11
Added special window type flags.
...
Specifically: always on top, skip taskbar, tooltip, utility, and popup menu.
This is currently only implemented for X11.
This patch is based on work in Unreal Engine 4's fork of SDL,
compliments of Epic Games.
2016-01-05 01:30:40 -05:00
Ryan C. Gordon
f9b7379341
Added SDL_DROPTEXT event, for dragging and dropping string data.
...
This patch is based on work in Unreal Engine 4's fork of SDL,
compliments of Epic Games.
2016-01-05 02:26:45 -05:00
Ryan C. Gordon
c3114975db
Added SDL_GetDisplayUsableBounds().
2016-01-04 23:52:40 -05:00
Ryan C. Gordon
8875a4014f
x11: Optimize SDL_GetGlobalMouseState() a little.
...
Use XInput2 to mark the global mouse state as dirty so we don't have to make
a bunch of roundtrips to the X server when nothing has changed.
2015-04-22 16:50:48 -04:00
Ryan C. Gordon
14e007772a
x11: window managers might mark windows as FULLSCREEN _and_ MAXIMIZED.
...
This patch came from Unreal Engine 4's fork of SDL, compliments of Epic Games.
2015-04-21 10:14:17 -04:00
Ryan C. Gordon
9a7527988a
x11: Workaround window managers that mark fullscreen windows as maximized.
...
This patch came from Unreal Engine 4's fork of SDL, compliments of Epic Games.
2015-04-21 01:22:32 -04:00
Ryan C. Gordon
81209acbd8
x11: Let apps specify that video init should fail if XRandR is unavailable.
...
Notably: it sets the error string to inform you that your custom SDL is built
without xrandr support, which apparently has been a support issue for
Unreal Engine 4 developers.
2016-01-04 23:44:27 -05:00
Ryan C. Gordon
f9d478b6c3
x11: _NET_WM_PID needs a long, not a pid_t, I think.
2016-01-05 02:40:14 -05:00
Ryan C. Gordon
0c0ce2096c
Updated comment: this is the correct way to do fullscreen on X11 now.
2015-04-21 10:19:20 -04:00
Ryan C. Gordon
e0e04542d0
Added a few FIXMEs.
2015-04-21 09:46:48 -04:00
Ryan C. Gordon
15bc7aea64
Mac: allows apps to use OpenGL on a slower, integrated GPU.
...
This is often useful for SDL apps that aren't meant to be games: the
integrated GPU starts up faster, uses less power, and is often more than
fast enough.
Note that even with this change, the app will still default to the more
powerful, discrete GPU if one is available; an app that prefers the integrated
GPU will still need the NSSupportsAutomaticGraphicsSwitching key properly
set in its Info.plist and Mac OS X 10.7 or later.
https://developer.apple.com/library/mac/qa/qa1734/_index.html
2016-01-04 22:00:04 -05:00
Ryan C. Gordon
7678b1db88
Patch to compile on C89 compilers.
2016-01-04 16:36:42 -05:00
Ryan C. Gordon
6df5e1e535
x11: Support _NET_WM_USER_TIME and give _NET_ACTIVE_WINDOW a valid timestamp.
...
Fixes Bugzilla #3056 .
2016-01-04 16:25:27 -05:00
Ryan C. Gordon
fa8c83c1c1
Remove almost all instances of "volatile" keyword.
...
As Tiffany pointed out in Bugzilla, volatile is not useful for thread safety:
https://software.intel.com/en-us/blogs/2007/11/30/volatile-almost-useless-for-multi-threaded-programming/
Some of these volatiles didn't need to be, some were otherwise protected by
spinlocks or mutexes, and some got moved over to SDL_atomic_t data, etc.
Fixes Bugzilla #3220 .
2016-01-03 06:50:50 -05:00
Sam Lantinga
68a3272852
Fixed sed error on Mac OS X and updated copyright on a few last files
2016-01-02 10:38:51 -08:00
Sam Lantinga
42065e785d
Updated copyright to 2016
2016-01-02 10:10:34 -08:00
David Ludwig
44c0b2da87
WinRT: minor code-comment cleanups
2015-12-31 01:54:11 -05:00
David Ludwig
854cf7ac40
Fixed Bug 3215 - Win32: 'fullscreen' app doesn't always extend to top of screen
2015-12-30 12:44:13 -05:00
Philipp Wiesemann
c41feca5de
Fixed a crash if creating accelerated renderer after accessing window surface.
...
Partially fixes Bugzilla #3196 .
2015-12-29 19:13:56 +01:00
Ryan C. Gordon
18c7d6df21
XRandR: fixed primary output detection logic (thanks, "winterknight"!).
...
Fixes Bugzilla #3185 .
2015-12-29 02:16:14 -05:00
Ryan C. Gordon
326b357804
Mac: don't ignore mouse clicks on the top pixel of a window (thanks, Joshua!).
...
Fixes Bugzilla #3190 .
2015-12-29 01:09:58 -05:00
Ryan C. Gordon
51c1d69d13
Mac: Whoops, lost legit Caps lock keypress events. Fixed.
2015-12-28 13:30:58 -05:00
Ryan C. Gordon
fd6b435c6a
Windows: resync num/caps lock when window is gaining focus.
2015-12-28 13:08:19 -05:00
Ryan C. Gordon
257b7af247
Sync up the caps/numlock state properly without sending key events.
...
Partially fixes Bugzilla #2736 and #3125 .
2015-12-28 13:07:44 -05:00
Ryan C. Gordon
d3b323f89d
Mac: Fix keyboard state if capslock was toggled while app wasn't in foreground.
2015-12-27 23:39:43 -05:00
Ryan C. Gordon
2befe01d39
Removed a tabstop.
2015-12-27 18:56:46 -05:00
Ryan C. Gordon
6a2e8a7a90
Win: make sure SDL keyboard state reflects system capslock state at startup.
2015-12-27 18:48:14 -05:00
Ryan C. Gordon
faed05850e
Mac: make sure SDL keyboard state reflects system capslock state at startup.
2015-12-27 16:46:12 -05:00
David Ludwig
8281cc72ba
WinRT: Fixed bug 3210, "alt-tab doesn't work correctly with full-screened, UWP (Win10 Store) apps"
2015-12-22 00:58:47 -05:00
Alex Szpakowski
4026980917
Cleaned up some code formatting.
2015-12-18 00:49:27 -04:00
Alex Szpakowski
a2235d7b29
Cocoa: Use NSTextInputClient instead of NSTextInput for text input handling. The latter was deprecated in OS X 10.6.
2015-12-10 22:17:22 -04:00
Alex Szpakowski
0c463d770b
SDL_GL_GetAttribute: If a GL context isn't active, only return failure when the specified attribute needs an active GL context to be queried.
2015-12-10 20:25:34 -04:00
David Ludwig
976bc9a919
WinRT: build fix for Windows Phone 8.0
2015-12-06 18:48:46 -05:00
David Ludwig
2b48481879
WinRT: enabled the Win10-Store Cert Kit bug-workaround, for Windows 8.0 apps
2015-12-06 18:42:30 -05:00
David Ludwig
a40d49aa1c
WinRT: enabled the Win10-Store Cert Kit bug-workaround, for Windows 8.1 apps
2015-12-06 18:33:43 -05:00
David Ludwig
898054a179
WinRT: fixed a build error when compiling Windows 8.1 .dlls
2015-12-06 17:32:33 -05:00
David Ludwig
c8e3bfbf54
WinRT: removed an unused variable from DXGI-based display-detection code
2015-12-06 17:07:37 -05:00
David Ludwig
781455fd8b
WinRT: workaround for a possible bug in the Win10 Store's Certification Kit
...
DXGI fails to report any displays in at least one of the
"Windows App Certification Kit 10.0"'s tests for Store Apps. This was
causing SDL's video initialization code to fail, when the suspect test
("Direct3D Feature Test") was run, as DXGI was unable to report a
display-output at adapter-index 0, output-index 0.
The workaround that is applied here attempts to detect this case, then
use a hopefully-reasonable alternative means to calculate at least one
display output.
2015-12-06 17:06:40 -05:00
Philipp Wiesemann
57f2f3baf3
Windows: Added missing NULL check after SDL_stack_alloc().
...
SDL_stack_alloc() might wrap SDL_malloc() which can return NULL.
2015-12-06 17:51:11 +01:00
Philipp Wiesemann
32147ba780
X11: Fixed memory leak when initializing multiple screens.
2015-12-05 17:08:07 +01:00
Alex Szpakowski
6a50d33385
Removed some debug prints.
2015-11-30 03:30:35 -04:00
Alex Szpakowski
9ddc6c3441
Mac: Fixed SDL_SetWindowFullscreen not restoring the window's original size when exiting a Space.
2015-11-30 03:30:07 -04:00
David Ludwig
25abce513d
WinRT: added Win10/UWP (Universal Windows Platform) support
...
"UWP" appears to be Microsoft's new name for WinRT/Windows-Store APIs.
This set of changes updates SDL's WinRT backends to support the Win10 flavor
of WinRT. It has been tested on Win10 on a desktop. In theory, it should
also support Win10 on other devices (phone, Xbox One, etc.), however further
patches may be necessary.
This adds:
- a set of MSVC 2015 project files, for use in creating UWP apps
- modifications to various pieces of SDL, in order to compile via MSVC 2015 +
the Win10 API set
- enables SDL_Window resizing and programmatic-fullscreen toggling, when using
the WinRT backend
- WinRT README updates
2015-11-29 19:33:11 -05:00
David Ludwig
d07aa877d2
WinRT: minor code cleanup in window-creation code
...
Window flags can be detected on all WinRT platforms.
2015-11-26 11:15:43 -05:00
David Ludwig
a70fe9a53e
WinRT: native windows are inherently resizable (in WinRT 8.x)
2015-11-26 11:09:50 -05:00
David Ludwig
7bd640d5da
WinRT: bug-fix, fullscreen mode wasn't getting reported in Windows 8.0 apps
...
This bug did not occur in Windows 8.1 apps, just Windows 8.0.
2015-11-26 02:37:51 -05:00
David Ludwig
36090f576f
WinRT: bug-fix, OpenGLES2 was failing to init, after recent windowing fixes
...
Some SDL_Window flags were getting lost inside WINRT_UpdateWindowFlags, namely
SDL_WINDOW_OPENGL.
2015-11-26 02:13:15 -05:00
David Ludwig
f520994455
WinRT: bug-fix, fullscreen window flags weren't set if device was rotated 90 degrees
2015-11-26 01:36:36 -05:00
David Ludwig
623898f70b
WinRT: lots of display and windowing related fixes
...
This change-set fixes a lot of windowing related bugs, especially with
regards to Windows 8.x apps running on Windows 10 (which was the driver for
this work). The primary fixes include:
* listed display modes were wrong, especially when launching apps into a
non-fullscreen space
* reported window flags were often wrong, especially on Windows 10
* fullscreen/windowed mode switches weren't failing (they are not
programmatically possible in Win 8.x apps).
2015-11-26 00:41:39 -05:00
Ryan C. Gordon
5224dfcc9a
X11: Let XRandR respect multiple screens (DISPLAY=:0.0 vs :0.1, etc).
2015-11-17 12:15:35 -05:00
Alex Szpakowski
998a54f9c5
Mac: Fix a warning about implicit declaration of SDL_SendKeymapChangedEvent (bug #3167.)
2015-11-14 04:24:39 -04:00
Alex Szpakowski
9c51c4a639
Mac: Detect the d-pad and pause buttons on Steelseries MFi gamepads (bug #3124.)
2015-11-12 22:44:32 -04:00
Alex Szpakowski
7267835842
iOS: Fixed crashes when rotating the screen after destroying a window.
2015-11-12 20:58:11 -04:00
Sam Lantinga
5103ae9fd6
one last SDL fix: restore menu bar if we destroy a fullscreen window without transitioning it back to a non-fullscreen window first
2015-11-09 08:55:07 -08:00
Sam Lantinga
ebfb2ecb68
don't toggle SDL fullscreen state on OSX if we're destroying the window
2015-11-09 08:55:01 -08:00
Sam Lantinga
eeddb7c534
more SDL fullscreen state tracking fixes, don't update fullscreen flags on failure to change fullscreen state
2015-11-09 08:54:56 -08:00
Sam Lantinga
792354d6f0
SDL OSX implementation must account for the fact that going fullscreen can fail. improve the logic around retrying, make a few attempts before failing.
2015-11-09 08:54:49 -08:00
Sam Lantinga
2d884656c4
add hacky support for failed fullscreen transitions. SDL doesn't have the concept of a fullscreen transition that failed. if the user is actively changing spaces while the app goes fullscreen, it fails to go fullscreen; now it will just try again instead of hanging around with the wrong window styles.
2015-11-09 08:54:42 -08:00
Sam Lantinga
38edc1779a
Add SDL_HINT_VIDEO_X11_NET_WM_PING to allow disabling
...
_NET_WM_PING protocol handling in CreateWindow if
desired.
2015-10-27 11:18:04 -07:00
Sam Lantinga
2b0140a91f
Add a new SDL_KEYMAPCHANGED SDL event to abstract notification of keyboard layout or input language changes.
2015-10-27 11:17:32 -07:00
Alex Szpakowski
f8824cb99b
Mac: Fix returning to the window's Space in OS X 10.11+ when SDL_WINDOW_FULLSCREEN_DESKTOP is used (bug #3152.)
2015-10-23 03:37:53 -03:00
Philipp Wiesemann
86711041f2
Android: Added new key codes without mapping.
2015-10-07 21:16:18 +02:00
Sam Lantinga
5b1741132f
Converted tabs to spaces for SDL style
2015-10-06 21:40:50 -07:00
Sam Lantinga
9bd640e1a0
Fixed sending a size event while setting up a window (fix for DOTA 2 on Source 2)
2015-10-06 21:16:21 -07:00
Ryan C. Gordon
c5e68d68e7
Mac: Reset display if going from fullscreen to a fullscreen Space or vice-versa.
...
Otherwise, bad things happen.
2015-10-06 00:10:54 -04:00
Sam Lantinga
7bc72eaf84
Fixed forcing the window size when creating a non-resizable window on Windows.
2015-10-01 11:21:06 -07:00
Alex Szpakowski
ab2a350033
iOS: show message boxes using the new UIAlertController APIs when supported, rather than the deprecated UIAlertView.
...
UIAlertController is also supported on tvOS, whereas UIAlertView is not.
2015-09-25 15:17:20 -03:00
Alex Szpakowski
ecfdb10cfa
iOS SDL_GL_CreateContext: Clamp the multisample sample count when the requested value is too high, rather than failing to create the context.
...
This matches the SDL_GL_CreateContext behavior in OS X.
2015-09-15 00:25:07 -03:00
Sam Lantinga
08ce12c4e3
Fixed divide by zero if the application has run out of GDI handles and is trying to show an error dialog
2015-09-14 11:15:25 -07:00
Alex Szpakowski
82c8825cb5
iOS: Added support for force-touch on capable devices.
2015-09-09 19:08:52 -03:00
Alex Szpakowski
6a32ca7a39
Mac: Fixed SDL_SetWindowSize to set the size of the content area of the window, rather than the total size including decorations.
2015-09-09 13:55:11 -03:00
Philipp Wiesemann
212e99633b
PSP: Replaced use of SDLKey with SDL_Keycode.
2015-08-24 22:35:01 +02:00
Philipp Wiesemann
991feafa09
PSP: Fixed a syntax error.
...
Found by Cppcheck.
2015-08-24 22:31:36 +02:00
Ryan C. Gordon
8145760314
X11: Handle keyboard layout changing during app's run on Ubuntu 12.04 (etc).
...
Fixes Bugzilla #3050 (in addition to Jason Wyatt's patch, prior to this).
2015-08-15 00:36:39 -04:00
Ryan C. Gordon
0d8c3a0b76
Patched to compile.
2015-08-14 23:38:40 -04:00
Ryan C. Gordon
0cf81fbdf9
Minor coding convention fix.
2015-08-14 23:30:46 -04:00
Jason Wyatt
fb37956d9b
Supply current group when translating X11 Keycodes to Keysyms.
2015-08-14 16:23:31 +01:00
Ryan C. Gordon
9e2b90e2a4
Cocoa: Keep the window's screen position through SDL_SetWindowSize().
...
The Y coordinate is flipped in Cocoa, so if you change the height, the window
will move and maybe clip against the screen edge if you don't adjust its Y
coordinate to match.
Possibly fixes Bugzilla #3066 .
2015-08-14 01:20:41 -04:00
Ryan C. Gordon
f2f8e6f5ef
X11: only send mouse button up events if not a mousewheel "button"
...
(Brackets in the wrong place, my bad!)
2015-08-13 21:40:32 -04:00
Ryan C. Gordon
874bf86504
X11: Simplified mousewheel event handling.
...
Under load, this would race and report an incorrect mouse button event instead
of a wheel event.
Fixes Bugzilla #2987 .
2015-08-13 17:40:28 -04:00
Ryan C. Gordon
da6f2221e3
X11: isConfigureNotify() isn't used at the moment, comment it out.
2015-08-13 17:37:09 -04:00
Ryan C. Gordon
8a1fd98261
X11: don't block on a ConfigureNotify event during SDL_SetWindowBordered().
...
Unity's window manager is (legitimately, since it moves the client window's
position) sending one, and SDL was incorrectly trying to mask it out. Other
window managers (KWin, apparently) don't move the window and would hang here
indefinitely.
Fixes Bugzilla #3052 .
2015-08-13 14:56:16 -04:00
Ryan C. Gordon
c67213f331
X11: Fixed XRandR display detection.
...
Previously this only worked on X11 when Xinerama was carrying the weight.
Fixes Bugzilla #3062 .
2015-08-07 01:02:35 -04:00
Ryan C. Gordon
ca46804210
X11: Fixed a memory leak when adding duplicate display modes.
2015-08-07 00:59:31 -04:00
andrewb
a702c338f0
Add SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 to SDL so that Reborn can keep running through Alt+F4.
2015-08-03 11:37:03 -07:00
Alex Szpakowski
5a3cc7f580
EGL: Added support for sRGB system framebuffers, when the required EGL extension is present.
2015-08-01 15:16:57 -03:00
Philipp Wiesemann
c57f409fe8
Mac: Fixed check for SDL_HINT_MAC_BACKGROUND_APP.
2015-07-31 20:16:58 +02:00