The state that is affected is the mouse state. SDL maintains mouse state in a
global variable. It represents the current state of all the mouse info, x,y,
delta, button states, cursor info, etc. Whenever a mouse event is about to be
placed onto the queue, the global mouse state is updated to match the event.
The specific issue is that the global mouse state is updated whenever a mouse
event is posted, whether or not it is a simulated event. For example, when a
touch event is created, a simulated mouse event is also generated, and this
alters the global mouse state. Then the simulated event is placed onto the
queue, where it is delivered to the application. Applications can discard the
event by checking for evt.mouse.which==SDL_TOUCH_MOUSEID, but they cannot
discard the global state change that was already committed before the event was
delivered.On 03/03/2013 12:21 AM, Sik the hedgehog wrote:
What states could be affected? May want to narrow down the specific
issues that could arise before trying to discuss what to do about it.2013/3/3, John <@John6>:
Does the mouse state become affected by delivery of the simulated events?
i.e.,
will touch events now alter the mouse state?On 03/03/2013 12:09 AM, Sik the hedgehog wrote:
Yeah, that seems better. I realized later that SDL_INIT_TOUCH would
result in programs using SDL_INIT_EVERYTHING to not get emulated touch
input, but I was away by then(honestly using SDL_INIT_EVERYTHING
isn’t a good idea in the first place, but eh)2013/3/3, Sam Lantinga :
You can now tell if a mouse event was simulated by touch input. The
mouse
event has a new ‘which’ field and is set to the value
SDL_TOUCH_MOUSEID.I talked it over with Ryan and this was the best solution which didn’t
involve unexpected behavior changes and still allowed smart applications
to
do the right thing.Cheers!
On Sat, Mar 2, 2013 at 10:38 AM, Sik the hedgehog < sik.the.hedgehog at gmail.com> wrote:
So basically SDL_INIT_TOUCH? (if a program acknowledges it supports
touch there isn’t any reason to emulate touch events)2013/3/2, Sam Lantinga :
I agree, this needs to be addressed.
Another option is to default touch events off, and deliver mouse
events
if
they are off, and touch events if they are enabled.On Sat, Mar 2, 2013 at 9:50 AM, John <@John6> wrote:
The android duplicate event issue needs to be addressed before SDL2
is
stable on Android. The patch is in the ticket:
http://bugzilla.libsdl.org/**show_bug.cgi?id=1713<
simulated mouse events duplicate touch events · Issue #755 · libsdl-org/SDL · GitHub>The motivation is that developers cannot currently write a portable
event
loop in SDL2 if they want to support touch events.On 02/18/2013 02:19 AM, Sam Lantinga wrote:
We’re on the road to release for SDL 2.0.
To that end, most of the existing APIs are stable, and we’ll only
change
them if
it’s critical.
There are a few things which are still being considered, such as the
iOS
event
handling, and touch/mouse event semantics, but by and large the API
is
set for
release.Please report bugs which are affecting you in the current snapshot:
http://www.libsdl.org/tmp/SDL-**2.0.zip<
http://www.libsdl.org/tmp/SDL-2.0.zip>If anyone wants to fix anything currently in bugzilla, they are more
than
welcome:
http://bugzilla.libsdl.org http://bugzilla.libsdl.org/Cheers!
–Sam_____________**
SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/**listinfo.cgi/sdl-libsdl.org<
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org>_____________**
SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/**listinfo.cgi/sdl-libsdl.org<
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org>
SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org