Commit Graph
58 Commits
Author SHA1 Message Date
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Orgad Shaneh b11c5ace90 BACKENDS: JANITORIAL: Remove 'virtual' when override is specified 2021-11-14 14:31:41 +02:00
sluicebox 386c5659ec BASE: Purge keyboard/mouse events before running Engine
Fixes GUI events leaking into engines at startup. This caused
Phantasmagoria 1 to skip its introduction if the game was started from
the ScummVM GUI with a keyboard (Enter) but not with a mouse because
the key-down event started the engine and the key-up event remained
in the queue.

This also purges and mouse events since we happen to already have a
purgeMouseEvents() method. We may want to also clear joystick inputs,
or possibly the entire event queue, but that can be done after the
upcoming release. For now, the known bug is fixed.
2021-08-23 15:46:33 -05:00
Thierry Crozat 9e5540f838 BASE: Handle RTL at exit config in scummvm_main
This config was handled in the DefaultEventManager, but this did not
work for engines that quit the game without using a QUIT_EVENT (such
as SCI). So now it is handled one level up directly in scummvm_main.

Note: It is still also handled in the DefaultEventManager so that we
get the correct confirmation dialog there when "confirm_exit" is true.
2020-12-09 22:13:22 +00:00
mataniko 321a02aff2 JANITORIAL: Rename shouldRTL, resetRTL and FORCE_RTL 2020-05-12 10:36:38 +02:00
Bastien Bouclet 85e3fb38fb SDL: Change keyboard repeat to apply on unmapped events
The keyboard repeat event generator is used when building against SDL1.
Previously the repeat events would generate based on the event stream
produced by the keymapper which is not guaranteed to have matching up
and down events in the case the keymaps are changed while a key is
pressed.

Fixes #11417.
2020-04-12 11:11:00 +02:00
Bastien Bouclet 568d882e80 KEYMAPPER: Introduce a Virtual Mouse event source
The Virtual Mouse is meant to provide a way to control the mouse cursor
on system without a physical mouse. It provides keymapper actions that
are expected to be bound to game controller axes or buttons.
2020-03-09 20:00:31 +01:00
Bastien Bouclet 14663c4790 KEYMAPPER: Make the keymapper mandatory 2020-01-29 08:51:29 +01:00
Bastien Bouclet 8dd2b7ca39 EVENTS: Expose the primary global keymap builder 2020-01-26 23:09:08 +02:00
Cameron Cawley 885b8e9efe BACKENDS: Mark resetQuit and getKeymapper as override 2018-08-15 20:25:06 +02:00
Eugene Sandulenko d6b5e3f611 BAKCENDS: Mark methods as override 2018-03-28 11:58:35 +02:00
Bastien Bouclet 7d811d356e EVENTS: Allow disabling repeat event generation 2017-11-19 16:12:50 +01:00
Bastien Bouclet 7539a77eeb EVENTS: Move key repeat handling to its own method 2017-11-19 16:12:50 +01:00
Colin Snover d1b77d4b68 BACKENDS: Fix missing mouse events when system cursor cannot be moved
Normally with SDL, a mouse motion event will be sent after the
system mouse cursor has been moved by a call to
SDL_WarpMouseInWindow, but if the system cursor cannot be moved
(e.g. because the window does not have mouse focus), games still
need to receive these mouse events so they can successfully update
the mouse position internally. Otherwise, games continue to think
the mouse is still in the original position and will continue to
try to perform whatever action is associated with that mouse
position.

Refs Trac#9689.
2017-10-15 13:24:21 -05:00
Johannes Schickel 121687d2ed BACKENDS: Make GPL headers consistent in themselves. 2014-02-18 02:39:32 +01:00
Tarek Soliman 85c8c84804 KEYMAPPER: Add more warning signs 2012-02-15 17:22:41 -06:00
strangerke 69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Ori Avtalion cd6ee0589d JANITORIAL: Format forward declarations to follow convention 2011-04-28 12:20:34 +03:00
Johannes Schickel 7e71865e91 Move the event recorder to its own class (EventRecoder inside common/EventRecorder.[h/cpp]).
svn-id: r42751
2009-07-25 12:59:46 +00:00
Johannes Schickel ef71667403 - Adapt DefaultEventManager to use Common::ArtificialEventSource
- Adapt Keymapper to implement EventMapper interface

svn-id: r42727
2009-07-25 01:01:05 +00:00
Johannes Schickel 141ded3063 Change DefaultEventManager to use EventDispatcher.
svn-id: r42725
2009-07-25 01:00:37 +00:00
Johannes Schickel dafd5d509b Made DefaultEventManager a subclass of EventObserver.
svn-id: r42723
2009-07-25 01:00:12 +00:00
Johannes Schickel 60e7faf9b6 Replaced "_artificialEventQueue" by an EventSource.
svn-id: r42722
2009-07-25 00:59:53 +00:00
Johannes Schickel ba7e01ad7c Replace "EventProvider" class of the DefaultEventManager implementation with "Common::EventSource".
svn-id: r42718
2009-07-25 00:59:03 +00:00
Max Lingua 17b1c6d0ae I am re-commiting the FORCE_RTL as a temporary solution
in trunk, so that trunk/1.0rc is au pair feature-wise
with 0.13.x.

svn-id: r42403
2009-07-12 05:35:56 +00:00
Johannes Schickel b3c6751b9b Strip trailing whitespaces in the whole code base.
svn-id: r40867
2009-05-24 15:17:42 +00:00
Max Horn c69ebfd798 Moved default implementations for various OSystem methods into a new class BaseBackend
svn-id: r36135
2009-01-30 03:35:47 +00:00
Eugene Sandulenko 83972e2001 Merge in Virtual Keybpard & KeyMapper branch,
- Merge is perfromed in order to not let rotting the code
- Makefile modifications were avoided

Stuff to resolve:
- Circular dependency of common/vkeybd from graphics/
- Make it compilable (?)
- Add some keyboards
- Decide on the key bindings

svn-id: r35813
2009-01-11 00:20:27 +00:00
Max Horn 063cff91d5 Prevent the 'Confirm exit' dialog from being invoked recursively
svn-id: r35660
2009-01-02 01:21:38 +00:00
Max Horn df20d264fd Pushing down some header deps (on common/system.h, mostly)
svn-id: r35542
2008-12-25 20:40:00 +00:00
Stephen Kennedy df3b8fd14c Added preprocessor flags 'ENABLE_VKEYBD' and 'ENABLE_KEYMAPPER' to control inclusion of vkeybd and keymapper in build.\n\nAlso added corresponding --enable-vkeybd and --enable-keymapper flags to configure scripts.
svn-id: r34706
2008-09-30 13:51:01 +00:00
Stephen Kennedy a7bb113e83 Merged revisions 33452-33453,33455-33459,33463-33464,33466-33471,33473-33474,33478,33490,33492,33495-33496,33509-33512,33518-33519,33522-33527,33529-33530,33537,33541,33544,33546,33550,33552-33554,33556,33558,33561-33562,33565,33568,33570,33574,33576,33578-33581,33584-33587,33590,33596,33604-33611,33614-33615,33617-33618,33620-33621,33623,33626-33627,33632-33633,33635,33637,33639-33640,33642-33645,33648,33654-33655,33664,33667-33670,33673-33674,33678,33682,33686-33691,33693,33696,33698,33700,33703,33708,33710,33712-33714,33716,33719,33721-33723,33725-33727,33729-33730,33733,33736,33742,33754,33756,33758,33761,33763,33766,33777,33781-33788,33790,33792-33793,33795,33797,33805,33807-33812,33815-33817,33819,33822,33826,33829,33837,33839,33844,33847,33858-33861,33864,33871-33873,33875,33877-33879,33886,33889-33892,33894,33896,33900,33902-33903,33919,33928,33930,33932-33936,33938-33940,33942-33943,33948,33950,33953,33967,33973,33976,33978,33980,33985,33991,33993,33999-34000,34006,34009,34011,34013,34015,34019,34021-34023,34025,34027-34028,34030,34032-34034,34036,34038-34039,34041,34046-34048,34050-34055,34057,34059-34065,34067,34072,34074,34076,34078-34081,34084,34086-34087,34089-34090,34093,34096-34102,34104,34107,34113,34116,34119,34122,34124,34126,34128,34131-34132,34135,34138,34141,34144,34146,34149,34152-34154,34156-34157,34160,34163-34164,34169,34173,34179-34194,34196-34198,34200-34201,34205-34206,34208-34217,34219-34225,34227-34228,34234-34237,34239-34249,34251-34279,34281-34284,34286-34288,34290-34320,34323-34324,34326,34328-34329,34332,34334,34336,34338-34340,34343-34353,34356-34357,34359-34371,34373,34375,34378,34381-34382,34384-34385,34389-34391,34393-34394,34396-34397,34399-34405,34407-34409,34411,34413,34415,34417-34420,34423-34426,34428-34438,34440-34454,34456-34458,34460,34462-34469,34472,34474,34479-34481,34483-34498,34501-34505,34508,34511-34518,34520-34524,34526-34563,34566-34569,34571-34590,34592,34595-34599,34602-34603,34605,34613-34615,34617,34619-34624,34627-34628,34630-34639,34642-34649 via svnmerge from
https://scummvm.svn.sourceforge.net/svnroot/scummvm/scummvm/trunk

svn-id: r34654
2008-09-26 21:53:08 +00:00
Stephen Kennedy baae044e38 Proper fix for key repeat bug - r34094 caused different problems due to repeated key up events
svn-id: r34115
2008-08-23 17:04:40 +00:00
Stephen Kennedy d92909203b - proper init of virtual keyboard now implemented (involved added EventManager::init() which is called after screen has been initialised)
- changed HardwareKey / Action id field to an array of 4 chars instead of int32. Means that the keymap key/value pairs in config file are more readable.

svn-id: r33986
2008-08-18 10:07:11 +00:00
Stephen Kennedy 70dde2d8bd RemapDialog now properly uses reflowLayout() and open(), so that the same instance can be reopened
svn-id: r33843
2008-08-13 19:24:52 +00:00
Stephen Kennedy 57b13141af Keymapper WIP:
* Implemented stack-based active map in Keymapper
* Started proper testing by adding code to OSystem_SDL to set up simple HardwareKeySet and Keymap

svn-id: r33660
2008-08-06 14:21:05 +00:00
Stephen Kennedy dfcdbb0d33 KeymapManager - implemented loading/saving of keymaps
- Refactoring of code to map a key to a UserAction - now we call a method on UserAction to do it (and it then tells the Keymap class)
- General cleanup of code

svn-id: r33262
2008-07-24 10:00:56 +00:00
Stephen Kennedy 2f064da102 Most of Keymapper class complete
DefaultEventManager now initialises Keymapper and passes key press events to it

svn-id: r33227
2008-07-23 08:45:12 +00:00
Stephen Kennedy a58080bd58 Changed pushEvent to use a const& argument
svn-id: r33175
2008-07-21 18:53:55 +00:00
Christopher Page 7f480ac571 Quit and RTL code is more modular now. EVENT_RTL no longer sets _shouldQuit, shouldQuit is only set if there's an EVENT_QUIT. EVENT_RTL and EVENT_QUIT are completely separate from each other. Engine::quit() method now checks both _shouldQuit and _shouldRTL to determine if the engine should exit. There is no longer a need for resetQuit(), so it's removed
svn-id: r33082
2008-07-16 04:22:56 +00:00
Stephen Kennedy 28cb417fb1 Added comments in virtual-keyboard-parser.h describing the file format. Added a delay functionality to the delivery of artificial events in DefaultEventManager, to get round events being ignored when delivered consecutively.
svn-id: r33012
2008-07-12 12:40:57 +00:00
Stephen Kennedy 1f0b3ceb36 Added pushEvent to EventManager (from cpage88's branch) and changed VirtualKeyboard so that it uses this method to feed key presses its resulting key press events.
svn-id: r32977
2008-07-09 13:33:36 +00:00
Christopher Page e808cdf7a0 Reimplemented pushEvent() and artificialEventQueue to work with Events instead of EventTypes. Reimplemented Queue as a List instead of Array. Updated AGOS, AGI, CINE, GOB, and KYRA to work with the current implementation of the GMM
svn-id: r32971
2008-07-09 02:27:05 +00:00
Christopher Page a4f56de13a Implemented Common::EventManager::pushEvent() to insert fake events into the event queue. Quit and RTL events have been added, and are now tracked by the DefaultEventManager using shouldQuit() and shouldRTL(). AGOS is working with this new implementation, other engines to follow.
svn-id: r32952
2008-07-07 22:34:45 +00:00
Stephen Kennedy 275ffece2f - changed VirtualKeyboard classes to Common namespace
- updated XMLParser from Tanoku's branch

svn-id: r32943
2008-07-07 15:42:26 +00:00
Stephen Kennedy 5840c2480f - renaming of files
svn-id: r32942
2008-07-07 15:06:43 +00:00
Stephen Kennedy 7e3639e68b - moved VirtualKeyboard files into backends/common directory
svn-id: r32941
2008-07-07 14:52:30 +00:00
Stephen Kennedy 98f999f8e0 WIP: VirtualKeyboard updates:
- got keyboard bitmap displaying (no transparency as yet)
- simple event loop for VK to capture mouse clicks done (and untested code to process the clicks)
- pollEvent() method to deliver the virtual key press events to EventManager

svn-id: r32939
2008-07-07 14:30:11 +00:00
Christopher Page a14a0d16c1 Changes to implementation of the GMM
svn-id: r32872
2008-07-02 00:30:49 +00:00
Jordi Vilalta Prat 66e9d4f5e8 Removed trailing spaces.
svn-id: r30664
2008-01-27 19:47:41 +00:00