cloudhead / rx

👾 Modern and minimalist pixel editor
https://discord.gg/xHggPjfsS9
GNU General Public License v3.0
3.09k stars 109 forks source link

e must be pressed before Shift to combine erase and multi brush modes #77

Open ssokolow opened 4 years ago

ssokolow commented 4 years ago

In rx 0.4.0, if I press e and then Shift, I get a brush that will erase on multiple frames, as expected.

However, if I press Shift and then e, the e gets ignored and I still have a brush which will draw on multiple frames.

cloudhead commented 4 years ago

The reason for this is that the erase mode is mapped as follows:

map/normal  e :brush/set erase

And if <shift> is held, this mapping will be skipped, since it expects no modifiers. I'm not sure yet what's the best fix for this, but when modifiers are supported in key-mappings, we could have another mapping like this:

map/normal <shift>e :brush/set erase multi
ssokolow commented 4 years ago

What confuses me is why the current asymmetric state of things exists in the first place.

When I conceptualize a design for a system like this, it seems like the most obvious approach would be to allow modifiers the same as any other key and having a binding like this Just Workâ„¢ for either button-pressing order:

map/normal  e :brush/set erase
map/normal <shift> :brush/set multi