|
f2224e1f
|
2013-11-03T09:55:27
|
|
Fixed bug 1990 - focus/keyboard events not generated correctly for multiple windows
Mai Lavelle
I've recently tried to create multiple windows and process key events for them, and found that key events weren't being generated for most of the windows. After some investigating I've observed the following effects. All but the most recently created window experience these effects...
- a focus lost event is generated immediately after the focus gained event, even tho window still has focus
- key events report window id 0 rather than the id of the window which has focus, SDL thinks no window has focus?
- giving focus to a non SDL window and then selecting an SDL window causes events to be generated as expected, but only until focus changes again
Focus change events are queued and delayed (200 ticks) before they are dispatched. The problem occurs when a focus out and focus in event are received on the same tick. When these delayed events are dispatched they will be sent in the order determined by the window list rather than the order in which they are received.
The focus out dispatch is implemented by calling SDL_SetKeyboardFocus(NULL). This will remove focus from any window, regardless of whether it is the one originally targeted by the X11 event.
Since SDL_SetKeyboardFocus() will always dispatch a focus lost event as needed, the easiest solution is simply to only call SDL_SetKeyboardFocus(NULL) when SDL_GetKeyboardFocus() matches the target window.
|
|
0f8d9995
|
2013-11-02T11:42:00
|
|
Corrected typo in source comment.
|
|
e651ab12
|
2013-10-31T10:02:21
|
|
Fixes Bug #2191,incorrect test for egl_context validity
Thanks David Binderman!
|
|
d36c7363
|
2013-10-28T22:43:39
|
|
Updated GL version tests for Mac OS X 10.9 ("Mavericks").
They changed the name of their GL 3.2 enum, added the GL 4.1 core profile.
|
|
e0771482
|
2013-10-23T13:43:17
|
|
Fix regression causing crashes when running without a window manager.
|
|
298d3d62
|
2013-10-22T21:54:52
|
|
Fixed duplicate const warning
|
|
bcf5472d
|
2013-10-21T02:37:03
|
|
Fixed bug 2073 - Mac: window moves unexpectedly when exiting SDL_WINDOW_FULLSCREEN_DESKTOP mode
Alex Szpakowski
In Mac OS X, when SDL_SetWindowFullscreen(window, 0) is called on a window which was in SDL_WINDOW_FULLSCREEN_DESKTOP mode, its original size is restored but its position is moved to the bottom of the screen.
I tracked down the issue to these two lines: http://hg.libsdl.org/SDL/file/fdd5cc9e9f90/src/video/cocoa/SDL_cocoawindow.m#l1034
I believe [nswindow setFrameOrigin:rect.origin] implicitly calls [nswindow constrainFrameRect:rect toScreen:screen], which will attempt to constrain the window to the screen, but at that point the window size is still full-screen rather than the restored window size, so the constrainFrameRect function operates on the wrong window size.
https://developer.apple.com/library/mac/documentation/cocoa/reference/applicationkit/classes/NSWindow_Class/Reference/Reference.html#//apple_ref/occ/instm/NSWindow/constrainFrameRect:toScreen:
I resolved the issue by swapping the order of the function calls, like so:
[nswindow setContentSize:rect.size];
[nswindow setFrameOrigin:rect.origin];
|
|
b8b9bfbe
|
2013-10-21T01:16:16
|
|
Fixed some warnings building for 64-bit Windows
|
|
80930559
|
2013-10-21T00:25:43
|
|
Fixed bug 2012 - Algorithm logic getting wrong in ComputeOutCode
Nitz
I was going through the SDL_IntersectRectAndLine function and wondered to see the ComputeOutCode function implementation.
The problem in this algo is, x and y axis are getting check with respect to 0, Which is wrong, it should be get checked with respect to rectangle x and y axis.
|
|
360c3d85
|
2013-10-21T00:15:24
|
|
Better cleanup if OpenGL initialization fails
|
|
f8c11bb9
|
2013-10-20T23:05:53
|
|
Fixed the status bar visibility in iOS 7
|
|
08fa8da7
|
2013-10-20T21:56:15
|
|
Fixed bug 2129 - fix for bug 2121 breaks linking for mingw and throws multiple warnings
Andreas Ertelt
The problem in question is caused by changeset 7771 (http://hg.libsdl.org/SDL/rev/5486e579872e / https://bugzilla.libsdl.org/show_bug.cgi?id=2121)
The redefinition of __inline__ (introduced by the addition of begin_code.h:128's "|| __STRICT_ANSI__") results in mingw's gcc throwing multiple
warning: always_inline function might not be inlinable [-Wattributes]
as well as a whole bunch of redefinitions of mingw internals which break linking of projects including the SDL2 headers.
|
|
f5fa492e
|
2013-10-20T20:42:55
|
|
Added a macro SDL_TICKS_PASSED() to correctly compare two 32-bit tick values.
Went through the code and used the macro and fixed a couple places that were using incorrect timestamp comparisons.
|
|
0e699eb5
|
2013-10-20T21:18:05
|
|
Added SDL_GL_FRAMEBUFFER_SRGB_CAPABLE (thanks, David!).
Fixes Bugzilla #1985.
|
|
d1bde399
|
2013-10-20T20:24:00
|
|
Backed out changeset 737771c47c6f, done testing Buildbot changes.
|
|
df368084
|
2013-10-20T20:02:02
|
|
Intentionally breaking Windows and Raspberry Pi builds to test Buildbot change.
|
|
a25b5192
|
2013-10-20T09:58:37
|
|
Fixed compiling with the new X11 symbol wrapping
|
|
6a3478c2
|
2013-10-20T17:23:43
|
|
Fix bug 1300 by querying current border size in ConfigureNotify, and adjusting window coordinates accordingly.
|
|
b4a00144
|
2013-10-18T10:56:45
|
|
Fixed the XInput2 X11 symbols.
|
|
379c0054
|
2013-10-18T00:47:22
|
|
Fixed bug 2123 - SDL_BlitScaled crashes in src/video/SDL_blit_N.c:2145
We need to reset the blit function when switching between scaled and unscaled blits.
|
|
888d807a
|
2013-10-17T23:05:40
|
|
Removed redundant #ifdef
|
|
12ca3ce3
|
2013-10-17T23:02:29
|
|
Fixed building using MinGW
Our SDL_windows.h needed to be included before anything else so UNICODE is defined.
|
|
a2bd8970
|
2013-10-18T01:36:41
|
|
Don't supply duplicate X11 symbols inside SDL.
Fixes static linking when something else also uses X11.
|
|
14e13e13
|
2013-10-17T17:38:55
|
|
Fixed compiler warning if dynamic X11 loading isn't enabled.
|
|
7db31223
|
2013-10-17T17:37:23
|
|
Fixed using the wrong variable when reporting a missing SDL scancode mapping.
|
|
6435a82d
|
2013-10-14T09:12:30
|
|
Backed out revision fb5ab0e91c56, the platform specific messagebox functions don't have the right prototype since they're designed to be used standalone.
|
|
4b603abf
|
2013-10-14T08:56:55
|
|
For some reason, trying to raise the window programmatically while it's alt-tabbed away will minimize it. Added a workaround for this.
|
|
fea2699c
|
2013-10-14T08:56:50
|
|
Fixed the windows message debug output so it works without HAVE_LIBC
|
|
8ec3ba38
|
2013-10-13T19:59:40
|
|
Fixed accumulating mouse wheel motion for the Microsoft Wireless Mouse 5000
|
|
074a1c4c
|
2013-10-12T16:29:34
|
|
Fixes X11 video backend compilation when no GL is available
For example, in our Raspberry Pi sysroot.
|
|
f7e0a9b2
|
2013-10-10T02:21:41
|
|
Patched to compile in C90 mode.
|
|
d0fddfab
|
2013-10-10T00:30:03
|
|
Fixes Bug 2134 - [Android] Black screen after resume (sometimes)
|
|
2568a367
|
2013-10-07T16:01:40
|
|
Mac: Better handling when someone else is the app delegate.
|
|
c455f729
|
2013-10-07T14:16:38
|
|
Fix SDL_SetWindowPosition on fullscreen windows.
This reverts http://hg.libsdl.org/SDL/rev/7cdeb64faa72 and fixes it in
the correct way. If you call SDL_SetWindowPosition on a fullscreen
window, it would update the x & y variables for the window, but not
actually move the window (since it was fullscreen). That would make the
internal state of the SDL_Window incorrect, causing
SDL_WarpMouseInWindow to offset incorrectly.
This makes it so SDL_SetWindowPosition updates the `windowed' x & y
coordinates, which take effect when you revert from fullscreen.
|
|
11c45c4e
|
2013-10-06T13:50:36
|
|
Removed unused variables (thanks Joseph!)
|
|
0db36f51
|
2013-10-05T17:08:19
|
|
Added detection of touch devices before first touch events happen on Android.
On Android available touch devices are now added with video initialization (like
the keyboard). This fixes SDL_GetNumTouchDevices() returning 0 before any touch
events happened although there is a touch screen available. The adding of touch
devices after a touch event was received is still active to allow connecting
devices later (if this is possible) and to provide a fallback if the new init
did not work somehow. For the implementation JNI was used and API level 9 is
required. There seems to be nothing in the Android NDK's input header (input.h)
to implement everything on C side without communication with Java side.
|
|
5607cc45
|
2013-10-05T00:29:57
|
|
Avoid redundant state changes in the GLES2 renderer.
|
|
9c489c7c
|
2013-10-04T08:23:37
|
|
Fix EGL/OpenGL ES paths
|
|
8fbd7dc7
|
2013-10-03T00:54:58
|
|
Fixed bug 2130 - Two members of Windows WindowData not initialized
norfanin
SetupWindowData in SDL_windowswindow.c doesn't initialize two members of SDL_WindowData with NULL. This is an issue because other parts of the SDL code seem to make the assumption that this is the case. WIN_DestroyWindowFramebuffer for example uses data->mdc and data->hbm if they're not NULL.
|
|
ce45fa28
|
2013-10-02T22:18:04
|
|
SDLK_DELETE should probably be SDLK_BACKSPACE on iOS.
The key on the software keyboard works like backspace, at least. Not sure
what happens with a bluetooth keyboard here.
|
|
69a4351e
|
2013-09-30T22:35:32
|
|
Fixed bug 2121 - GCC throws error on SDL_FORCE_INLINE when compiling with -ansi
|
|
889b6bd7
|
2013-09-28T19:23:59
|
|
Removes unused property use_egl from internal structure gl_config
|
|
9f390e79
|
2013-09-28T14:06:59
|
|
Moved SDL_Direct3D9GetAdapterIndex() to SDL_windowsvideo.c since it doesn't belong in the window code.
|
|
b6be1435
|
2013-09-28T14:06:20
|
|
Moved D3D_LoadDLL and SDL_Direct3D9GetAdapterIndex to SDL_windowswindow.c at Jorgen's insistence. That file is wrapped in a more appropriate define check so it will work if somebody builds a binary without D3D support.
Added a reference to SDL_Direct3D9GetAdapterIndex to SDL_test_common.c so SDL will fail to compile if the new symbol isn't included properly.
CR: Jorgen
|
|
9ceed73d
|
2013-09-28T13:28:19
|
|
Raspberry Pi support (also unified UDEV and EVDEV support)
|
|
90afb94e
|
2013-09-28T12:48:26
|
|
Corrected name of SDL_Color field from unused to a.
|
|
8b6ad7ff
|
2013-09-27T23:47:57
|
|
Fixed bug 2101 - CWBackPixel causes weird window flickering on window resize
aBothe
I tried to experiment a bit with SDL2 and OpenGL today and noticed that something caused some weird flickering when resizing my nicely drawn SDL2/OpenGL window:
Just after resizing, the background went black and I had to let my OpenGL code redraw the contents..
However, after some hours spent with googling I found out that in OpenGL examples where this CWBackPixel flag was not used when creating X windows, there was no flickering while resizing the window.
See http://www.sbin.org/doc/Xlib/chapt_04.html @ "The Window Background" for more info.
|
|
b9567776
|
2013-09-27T23:35:17
|
|
# User Darren Salt <devspam@moreofthesa.me.uk>
# Date 1379621782 -3600
# Thu Sep 19 21:16:22 2013 +0100
Work around a false-positive in the X11 mouse wheel code
This false positive occurs when one particular button on my mouse is
pressed. The kernel which I'm using is patched to cause a release event to
be synthesised immediately when the mouse says that this button is pressed
because the mouse doesn't signal release until the button is next pressed.
(Also documents a false negative, observed with the horizontal scroll wheel
on the same mouse.)
|
|
c95761e0
|
2013-09-27T23:29:05
|
|
Fixed bug 2100 - directfb fails to build
|
|
0103bc0b
|
2013-09-27T22:09:51
|
|
Default to OpenGL ES 2.0 instead of 1.0 when it's available.
|
|
869a7076
|
2013-09-20T13:43:00
|
|
add in High DPI support (aka Retina)
- based on J?rgen's patch with a few bug fixes
|
|
d3d6f9ad
|
2013-09-14T11:25:52
|
|
Fixed syntax error in C style block comment.
|
|
bfe1b1d0
|
2013-09-14T01:30:57
|
|
Don't incorrectly report success for negative swap intervals on Mac OS X.
|
|
fae4190d
|
2013-09-13T17:42:46
|
|
Added SDL_Direct3D9GetAdapterIndex(), which returns the adapter index you would pass into CreateDevice to get your device on the right monitor in full screen mode. This fixes the default adapter in SDL_render_d3d.c, which means that tests will work fullscreen off the main monitor now.
CR: Sam
|
|
49d64d52
|
2013-09-13T17:42:38
|
|
Fix X11_RestoreWindow() and X11_RaiseWindow() to properly do window activation.
X11_RestoreWindow() had a call ordering problem that prevented activation, and X11_RaiseWindow() wasn't attempting activation. Windows and OS X both activate in these cases.
CR: saml
|
|
67c02a28
|
2013-09-13T17:42:31
|
|
Mac: Translate Ctrl-Left click to right click.
|
|
e231d5b4
|
2013-09-13T17:41:17
|
|
Mac: Turn off momentum-based scrolling.
|
|
37509cf3
|
2013-09-13T17:40:41
|
|
Mac: Fix cast warning.
|
|
a9166450
|
2013-09-10T18:25:13
|
|
[SDL] X11+GL: Allow Visual override for GL windows.
SDL provides an SDL_VIDEO_X11_VISUALID environment variable that lets you override
window visuals, but it wasn't being checked for OpenGL windows.
CR: Sam.
|
|
b63d11ce
|
2013-09-04T23:40:11
|
|
The SDL_PixelFormat* passed to SDL_ConvertSurface() should be const.
|
|
ace1e98a
|
2013-08-29T15:02:32
|
|
Fixes bug #2040, prepare SDL_GL_CONTEXT_EGL for deprecation on v2.1
SDL_GL_CONTEXT_EGL = 1 is now internally treated as profile_mask = SDL_GL_CONTEXT_PROFILE_ES
|
|
eec4710c
|
2013-08-29T14:03:44
|
|
Fixes bug #2074 - Thanks Sylvain!
SDL_syssem.c:159 comparison of unsigned expression >= 0 is always true
Solved by comparing unsigneds directly
SDL_systimer.c:164: warning: control may reach end of Compile
Solved by returning the default value if all else fails.
SDL_androidgl.c:41:1: warning: type specifier missing, defaults to 'int'
SDL_androidgl.c:47:1: warning: control reaches end of non-void function
Solved by adding void return type to the function implementation
|
|
e07d7e64
|
2013-08-29T08:30:21
|
|
Christoph Mallon: Replace strlen(x) == 0 (O(n)) by x[0] == '\0' (O(1)).
|
|
3e2930de
|
2013-08-29T08:29:51
|
|
Christoph Mallon: Remove pointless if (x) before SDL_FreeSurface(x)
|
|
f79fc33a
|
2013-08-29T08:29:21
|
|
Christoph Mallon: Remove pointless if (x) before SDL_free(x)
|
|
ad20c801
|
2013-08-26T14:23:18
|
|
Fixes typo in EGL code (thanks jmcfarlane!)
|
|
2abe45e8
|
2013-08-25T21:28:03
|
|
Removed obvious comment to trigger buildbot.
|
|
64e6eeac
|
2013-08-25T11:48:49
|
|
Fixes "error: conflicting types for 'GLintptr'"
|
|
3d217ed7
|
2013-08-21T10:07:48
|
|
Fixed crash if the IC isn't set up for some reason (bad X11 locale?)
|
|
6107705a
|
2013-08-21T10:34:32
|
|
Fix a couple of warnings
|
|
29dfdd1e
|
2013-08-21T10:13:12
|
|
More fixes for -Wdeclaration-after-statement
|
|
2490166d
|
2013-08-21T10:12:16
|
|
Fixes for -Wdeclaration-after-statement
|
|
1e49b1ed
|
2013-08-21T09:47:10
|
|
OCD fixes: Adds a space after /* (glory to regular expressions!)
|
|
695344d1
|
2013-08-21T09:43:09
|
|
OCD fixes: Adds a space before */
|
|
24006be2
|
2013-08-20T20:31:57
|
|
Fixed compiler warning.
|
|
552b04c5
|
2013-08-20T20:34:40
|
|
More non C89 compliant comments
|
|
63fe3a77
|
2013-08-20T19:49:24
|
|
Fixes a few non C89 compliant comments
|
|
0eeb76d8
|
2013-08-19T16:29:46
|
|
Fixes bug #2037, common EGL code for Android and X11
|
|
9ab14aa5
|
2013-08-16T17:50:44
|
|
Fixed windows build
|
|
ff77ca8d
|
2013-08-16T15:38:06
|
|
The keyboard text events should be sent after the key down events
|
|
b4b12d95
|
2013-08-16T15:35:10
|
|
Fixed bug 1876 - SDL_TEXTINPUT only returns '?' (0x3F) in event.text.text with Khmer language input
Andreas
The issue comes down to this line on MSDN:
"TranslateMessage produces WM_CHAR messages only for keys that are mapped to ASCII characters by the keyboard driver."
"WM_KEYDOWN and WM_KEYUP combinations produce a WM_CHAR or WM_DEADCHAR message. WM_SYSKEYDOWN and WM_SYSKEYUP combinations produce a WM_SYSCHAR or WM_SYSDEADCHAR message."
Except for WM_CHAR, none of these messages are used in SDL. Hence TranslateMessage should be dropped entirely and proper handling be included in the WM_KEYDOWN event.
Currently TranslateMessage is called for every message even if it must not be called in certain cases (like "An application should not call TranslateMessage if the TranslateAccelerator function returns a nonzero value.").
WM_CHAR message handling should remain for external processes posting these messages - additionally, WM_UNICHAR should be added.
I made a patch for src/video/windows/SDL_windowsevents.c that seems to work fine. It doesn't solve the "missing" composition for Khmer, but at least input for languages that cannot be mapped to ASCII characters (and for which IME is not used) will now work on Windows.
|
|
76b7b1e9
|
2013-08-16T09:20:33
|
|
Fixed alpha composition when destination alpha is transparent.
Jianyu Guan
I found I make a big mistake that when dstA==0, I just simply let *dstp=*srcp and forgot to make dstRGB = srcRGB*srcA.
The if consition "(*dstp & amask) == 0" in BlitRGBtoRGBPixelAlphaMMX and BlitRGBtoRGBPixelAlphaMMX3dNow should be removed.
|
|
89bc80f1
|
2013-08-16T06:59:19
|
|
Fixed alpha blending for the MMX blit functions
I see the Remarks of function SDL_BlitSurface shows that "when SDL_BLENDMODE_BLEND, we have dstA = srcA + (dstA * (1-srcA))". however, I tested some pictures but the result implies "dstA=arcA" actually. I stepped into the source code, and found after I set SDL_BLENDMODE_BLEND for the source surface, the final blit function is BlitRGBtoRGBPixelAlphaMMX when I use SDL_BlitSurface on my computer. And I found these codes:
else if (alpha == amask) {
/* opaque alpha -- copy RGB, keep dst alpha */
*dstp = (*srcp & chanmask) | (*dstp & ~chanmask);
The same code is used in BlitRGBtoRGBPixelAlphaMMX3DNOW and BlitRGBtoRGBPixelAlpha. So I think they still keep dst alpha.
Best regards,
Jianyu Guan
|
|
67367be0
|
2013-08-12T22:00:21
|
|
Don't print "unrecognized key" message for an X11 keycode of 0. This can happen with composed characters.
|
|
14bf230d
|
2013-08-12T11:09:13
|
|
Mac: Fix restoring of Cmd-H-hidden fullscreen desktop windows.
This should fix http://bugzilla.libsdl.org/show_bug.cgi?id=1996
|
|
dad42067
|
2013-08-12T11:13:50
|
|
Fixes #2022, do not resume on Android when surfaceChanged
If the app is in landscape mode and the user presses the power button, a pause
is followed immediately by a surfaceChanged event because the lock screen
is shown in portrait mode. This triggers a "false" resume.
So, we just pause and resume following the onWindowFocusChanged events.
Also, wait for SDL_APP_WILLENTERBACKGROUND and SDL_APP_DIDENTERBACKGROUND before
blocking the event pump.
|
|
1df1e696
|
2013-07-14T11:28:44
|
|
Added the platform specific messagebox function to the video function list
|