maruohon / litematica

A modern client-side schematic mod for Minecraft
GNU Lesser General Public License v3.0
720 stars 217 forks source link

Hotkeys do not function while other keys are pressed. #128

Open Nurdoidz opened 4 years ago

Nurdoidz commented 4 years ago

Litematica 0.0.0 Fabric 0.7.8 build 189 for MC 1.15.2 No other mods present. config.zip

Reproduced by holding down any non-modifier key (e.g. walking with W) in-game and attempting to use a Litematica-registered hotkey (e.g. opening main GUI with M).

Expected Litematica hotkey to activate (e.g. toggling EasyPlace mode by hotkey while strafing or running).

Resulting in no Litematica functional behavior.

maruohon commented 4 years ago

This is actually Working As Intended.

The advanced keybind settings (that small widget next to the hotkey button) allow you to define whether or not extra keys are allowed. Most toggle type hotkeys are just by default set to be strict ie. not allow any extra keys. That might have been a bad choice for the defaults, but I did do that intentionally. I'm now actually wondering is there any actual need for this behavior, in most cases it's probably unwanted. I might have just had some special hotkeys that I used myself where it was needed, but I can't think of any right now.

In any case that behavior and functionality comes from malilib, as all the keybind code is there. I think I might change the default value for any hotkeys (that don't specifically define a different KeybindSettings value) to allow extra keys. However that change won't take effect automatically for anyone with existing configs, unless I add some special code to update the configs, but that would probably get super messy. One option might be to push an intermediary malilib version that removes any values from the config file that are at the current default values, so if users update to that version before the version which changes the defaults, then the new defaults would take effect.

Nurdoidz commented 4 years ago

Thank you for explaining that — I’m new to Litematica and I’m still learning the UI. Not that I have any say, but I agree that the extra keys enabled should be true by default to follow common hotkey use, even from vanilla.

One option might be to push an intermediary malilib version that removes any values from the config file that are at the current default values, so if users update to that version before the version which changes the defaults, then the new defaults would take effect.

I like this idea. I don’t know how many people even notice this type of thing, but it seems to me that this would cause the least trouble in most cases. It may be that users who rely on the default extra keys behavior already know it exists and know how to change it back. For everyone else, perhaps, either they don’t notice at all or — in my case — they might see it as a bug being fixed (even if it was WAI).

For future dunces like me, clicking on this in the Litematica “Hotkeys” screen will allow you to change allowing extra keys when pressing a hotkey:

2020-03-28 14-04-35 javaw