Opened 4 years ago
Last modified 3 weeks ago
#12410 new defect
KEYMAPPER: `SHIFT`+`.` is modified to `.`
Reported by: | ZvikaZ | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | Common |
Version: | Keywords: | ||
Cc: | Game: |
Description (last modified by )
When pressing SHIFT
+.
in a game with a parser, such as PQ1 (AGI) or SQ3 (SCI), it's treated as if only a .
was pressed.
If I understand correctly, this is done intentionally - in order to allow using SHIFT
+.
as a Skip line
action, for engines that use it, like SCUMM.
However, the Skip line
action is currently added to all engines, even though probably most of them don't use it.
Thus, engines such as AGI and SCI (and probably others with text parser, I haven't checked) have now an unwanted behaviour.
IMO, there are two options here:
- Give up the functionality of recognizing
SHIFT
+.
as.
(https://github.com/scummvm/scummvm/pull/2812 attempts to do that, it probably can be done in a better way) - Don't add
Skip line
to all engines, but only to those that really use it (do we know which engines really use it?)
Note: I'm not sure that 'Common' component is accurate, but it's not related to one engine or one platform - the issue is in the Keymapper, as far as I understand
Change History (3)
comment:1 by , 4 years ago
Description: | modified (diff) |
---|
comment:2 by , 4 years ago
comment:3 by , 3 weeks ago
The solution suggested by https://wiki.scummvm.org/index.php?title=Keymapper is to "disable the keymap that handles key shortcuts while a text input widget is focused".
But from what I understand, that could be any keymap. Or none of them.
But that's what at least some of the engines do, which others don't.
And I really don't understand why, when defining "." as the "Skip line" key, that also defines Shift+".", Ctrl+".", Alt+".", Ctrl+Alt+".", etc. as the "Skip line" key. But that seems to be what kKeymapMatchPartial
is all about in Keymap::getMappedActions()
, unless I'm missing something obvious.
It looks like it might be related to bug #11504