The improvements in this commit are mostly code formatting, variable
abstraction, and in one case, a performance enhancement as calculations
were made a one-time fire rather than being run with every mouse move
event.
While the right-click was working in most games, the
weapon-switching in Full Throttle wasn't registering the click.
Holding the button down for 50ms instead of immediately firing
the mouseup fixes the issue.
This is a near-rewrite of the WebOS event system to take
advantage of multitouch, with which all WebOS devices are
outfitted. This commit also marks full compatibility with the
HP TouchPad, or any future tablet device without a hardware
keyboard.
Controls:
- Left click: Single-tap once
- Right click: Put one finger on screen, single-tap another
- Middle click: Put two fingers on screen, single-tap another
- Menu: Swipe two fingers down
- Show keyboard: Swipe two fingers up
- Touchpad Mode:
- Swipe two fingers to the right to toggle
- When off (default) mouse will move to the location tapped
- When on, mouse will move relative to its current position
- Autodrag Mode:
- Swipe three fingers to the right to toggle
- When on (default), touching the screen and holding still
for a half-second will initiate a left-mouse button hold.
Useful for games like COMI and FT.
- When off (or on) a double-tap will initiate a left-mouse
button hold.
- Escape key: Swipe two fingers left
- Space bar (pause): Swipe three fingers down
This is a mass commit for the following items:
- Conversion of mixed and unaligned spaces/tabs to tabs
- Moved static globals in webos_events to class members
- Corrected variable naming convention to use underscores
- Added a constructor to WebOSSdlEventSource to initialize
variables.
- Changed SDL getWidth and getHeight calls to getOverlayWidth
and getOverlayHeight to support larger form factors (such
as the HP TouchPad).
- Removed unnecessary static getMillis() declaration and
changed existing code to use the built-in getMillis().
This gets rid of the hacks, where SdlEventSource added events with custom type
numbers to pass SDL_VIDEOEXPOSE and SDL_VIDEORESIZE to the graphics manager.
Furthermore it get rids of the uninituitive and hard to trace way of assigning
the proper mouse coordinates to mouse related events. Formerly it passed the
real screen coordinates through the even dispatching api to the graphics
manager (at least hopefully ;-) and let that handle creating a new event with
the proper coordinates. Now instead SdlEventSource handles the proper
coordinate setup itself.
Since this is a behavior change and I can not test all the SDL based small
devices ports this commit might break compilation for them and more serve it
might also break mouse position behavior. If any of that occurs I am sorry
about it.
This tries to make our code a bit more compliant with our code formatting
conventions. For future use, this is the command I used:
git ls-files "*.cpp" "*.h" | xargs sed -i -e 's/[ \t]*$//'