<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
Note that shortcuts implemented via EventKeyChar (or #keyStroke:) use #keyCharacter and should therefore not be combined with #shiftPressed since the SHIFT-key actually modifiers the character delivered. Just use #keyCharacter and the other modifiers (e.g., #controlPressed or #commandPressed).<div class="mb_sig"></div>
<div><br></div><div>In this example, SHIFT seems to be ignored in the VM when CTRL is pressed. SHIFT+1 yields $! but CTRL+SHIFT+1 yields $1. This is clearly a bug in the VM.</div><div><br></div><div>So, I would rather not make the change as proposed here.</div><div><br></div><div>Best,</div><div>Marcel</div><div><br></div><div>P.S.: Note that this is not the minimal change you could have made to this method to propose your fix. By merging the two checks into a more complex condition, you impaired readability a little bit. At least through my eyes. I would have probably just added a check for #shiftPressed below #isKeystroke and also added some commentary on what the bug here is.</div><blockquote class="history_container" type="cite" style="border-left-style: solid;border-width: 1px;margin-top: 20px;margin-left: 0px;padding-left: 10px;min-width: 500px">
<p style="color: #AAAAAA; margin-top: 10px;">Am 18.10.2021 17:52:43 schrieb commits@source.squeak.org <commits@source.squeak.org>:</p><div style="font-family:Arial,Helvetica,sans-serif">A new version of Morphic was added to project The Inbox:<br>http://source.squeak.org/inbox/Morphic-ct.1786.mcz<br><br>==================== Summary ====================<br><br>Name: Morphic-ct.1786<br>Author: ct<br>Time: 18 October 2021, 5:52:25.059559 pm<br>UUID: 322e30d5-aa3f-cb45-843c-c01bf40a00a1<br>Ancestors: Morphic-ul.1780<br><br>Do not invoke docking bar menu via Ctrl + Shift + <number>. Keep this shortcut available for others morphs.<br><br>=============== Diff against Morphic-ul.1780 ===============<br><br>Item was changed:<br> ----- Method: DockingBarMorph>>filterEvent:for: (in category 'events-processing') -----<br> filterEvent: aKeyboardEvent for: anObject<br> "Provide keyboard shortcuts."<br> <br> | index itemToSelect |<br>+ (aKeyboardEvent isKeystroke and: [aKeyboardEvent controlKeyPressed] and: [aKeyboardEvent shiftPressed not])<br>- <br>- aKeyboardEvent controlKeyPressed<br> ifFalse: [^ aKeyboardEvent].<br>+ <br>- <br>- aKeyboardEvent isKeystroke<br>- ifFalse: [^ aKeyboardEvent].<br>- <br> "Search field."<br> aKeyboardEvent keyCharacter = $0<br> ifTrue: [<br> self searchBarMorph ifNotNil: [ :morph |<br> morph model activate: aKeyboardEvent in: morph ].<br> ^ aKeyboardEvent ignore "hit!!"].<br> <br> "Select menu items."<br> (aKeyboardEvent keyValue <br> between: $1 asciiValue <br> and: $9 asciiValue)<br> ifFalse: [^ aKeyboardEvent]. <br> <br> index := aKeyboardEvent keyValue - $1 asciiValue + 1.<br> itemToSelect := (self submorphs select: [ :each | <br> each isMenuItemMorph ]) <br> at: index <br> ifAbsent: [^ aKeyboardEvent].<br>+ <br>- <br> self activate: aKeyboardEvent.<br> self <br> selectItem: itemToSelect<br> event: aKeyboardEvent.<br>+ <br>- <br> ^ aKeyboardEvent ignore "hit!!"!<br><br><br></number></div></blockquote></div>