<div dir="auto">Ctrl/Cmd+Enter as "submit" or "send" is typical in communication applications, such as instant messengers with long message support, or Microsoft Outlook.<div dir="auto"><br></div><div dir="auto">It is harder to reach than Cmd-s but more widely known in the outside world, I assume.<br><div dir="auto"><br></div><div dir="auto">In text processors it might rather mean "page break", but I hope nobody tries to break a page in the FillInTheBlank...</div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Thiede, Christoph <<a href="mailto:Christoph.Thiede@student.hpi.uni-potsdam.de">Christoph.Thiede@student.hpi.uni-potsdam.de</a>> schrieb am Do., 23. Jan. 2020, 09:01:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div>

<div id="m_1823451732289380695divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Helvetica,sans-serif" dir="ltr">
<p>That is correct. I did not even realize that you can use <cmd>s to answer a FillInTheBlank. I believe that Ctrl + Enter is somehow more intuitive ...</p>
<p>Other opinions? :)</p>
<p><br>
</p>
<p>Best,</p>
<p>Christoph</p>
<div id="m_1823451732289380695Signature">
<div id="m_1823451732289380695divtagdefaultwrapper" dir="ltr" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols">
<div name="divtagdefaultwrapper">
<div>
<div id="m_1823451732289380695Item.MessagePartBody">
<div id="m_1823451732289380695Item.MessageUniqueBody" style="font-family:wf_segoe-ui_normal,"Segoe UI","Segoe WP",Tahoma,Arial,sans-serif,serif,EmojiFont">
<div dir="ltr">
<div id="m_1823451732289380695divtagdefaultwrapper"><font face="Calibri,Helvetica,sans-serif,EmojiFont,Apple Color Emoji,Segoe UI Emoji,NotoColorEmoji,Segoe UI Symbol,Android Emoji,EmojiSymbols">
<div id="m_1823451732289380695Signature">
<div style="margin:0px"><font style="font-family:Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont">
<div><font size="3" color="black"><span style="font-size:12pt"><a href="http://www.hpi.de/" rel="noopener noreferrer noreferrer" id="m_1823451732289380695LPNoLP" target="_blank"><font size="2"><span id="m_1823451732289380695LPlnk909538"><font color="#757B80"></font></span></font></a></span></font></div>
</font></div>
</div>
</font></div>
</div>
</div>
</div>
</div>
<div><font size="2" color="#808080"></font></div>
</div>
</div>
</div>
</div>
<hr style="display:inline-block;width:98%">
<div id="m_1823451732289380695divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>Von:</b> Squeak-dev <<a href="mailto:squeak-dev-bounces@lists.squeakfoundation.org" target="_blank" rel="noreferrer">squeak-dev-bounces@lists.squeakfoundation.org</a>> im Auftrag von Chris Muller <<a href="mailto:asqueaker@gmail.com" target="_blank" rel="noreferrer">asqueaker@gmail.com</a>><br>
<b>Gesendet:</b> Mittwoch, 22. Januar 2020 23:43:22<br>
<b>An:</b> The general-purpose Squeak developers list<br>
<b>Betreff:</b> Re: [squeak-dev] The Inbox: Morphic-ct.1621.mcz</font>
<div> </div>
</div>
<div>
<div dir="ltr">Does this overload Cmd+s?</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Wed, Jan 22, 2020 at 4:25 AM Thiede, Christoph <<a href="mailto:Christoph.Thiede@student.hpi.uni-potsdam.de" target="_blank" rel="noreferrer">Christoph.Thiede@student.hpi.uni-potsdam.de</a>> wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div id="m_1823451732289380695gmail-m_4616512592790032739divtagdefaultwrapper" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif" dir="ltr">
<p></p>
<div>The "Character lf" hack works on Windows, but I'm not sure if this behavior is officially defined by the VM. I don't know how one could detect Ctrl + Enter else ...</div>
<div><br>
</div>
<div>If you see any problems with solving this issue directly in TextMorph/Editor, we could also handle the event in FillInTheBlankMorph.</div>
<div><br>
</div>
<div>Best,</div>
<div>Christoph</div>
<br>
<div style="color:rgb(0,0,0)">
<div>
<hr style="display:inline-block;width:98%">
<div id="m_1823451732289380695gmail-m_4616512592790032739x_divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>Von:</b> Squeak-dev <<a href="mailto:squeak-dev-bounces@lists.squeakfoundation.org" target="_blank" rel="noreferrer">squeak-dev-bounces@lists.squeakfoundation.org</a>>
 im Auftrag von <a href="mailto:commits@source.squeak.org" target="_blank" rel="noreferrer">commits@source.squeak.org</a> <<a href="mailto:commits@source.squeak.org" target="_blank" rel="noreferrer">commits@source.squeak.org</a>><br>
<b>Gesendet:</b> Mittwoch, 22. Januar 2020 11:21 Uhr<br>
<b>An:</b> <a href="mailto:squeak-dev@lists.squeakfoundation.org" target="_blank" rel="noreferrer">
squeak-dev@lists.squeakfoundation.org</a><br>
<b>Betreff:</b> [squeak-dev] The Inbox: Morphic-ct.1621.mcz</font>
<div> </div>
</div>
</div>
<font size="2"><span style="font-size:10pt">
<div>Christoph Thiede uploaded a new version of Morphic to project The Inbox:<br>
<a href="http://source.squeak.org/inbox/Morphic-ct.1621.mcz" id="m_1823451732289380695gmail-m_4616512592790032739LPlnk400204" target="_blank" rel="noreferrer">http://source.squeak.org/inbox/Morphic-ct.1621.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: Morphic-ct.1621<br>
Author: ct<br>
Time: 22 January 2020, 11:21:19.533972 am<br>
UUID: facc9fb6-e535-c04f-967c-5f2ae09733c6<br>
Ancestors: Morphic-cmm.1618<br>
<br>
Proposal: Use Ctrl + Enter to accept in every textmorph, even if acceptOnCR is disabled. Useful, for example, to answer a multiline request.<br>
<br>
=============== Diff against Morphic-cmm.1618 ===============<br>
<br>
Item was changed:<br>
  ----- Method: TextEditor>>dispatchOnKeyboardEvent: (in category 'typing support') -----<br>
  dispatchOnKeyboardEvent: aKeyboardEvent <br>
         "Carry out the action associated with this character, if any. Type-ahead is passed so some routines can flush or use it."<br>
         <br>
         | honorCommandKeys typedChar |<br>
         typedChar := aKeyboardEvent keyCharacter.<br>
         <br>
         "Handle one-line input fields."<br>
+        (typedChar == Character lf or: [typedChar == Character cr and: [morph acceptOnCR]])<br>
-        (typedChar == Character cr and: [morph acceptOnCR])<br>
                 ifTrue: [^ true].<br>
         <br>
         "Clear highlight for last opened parenthesis."<br>
         self clearParens.<br>
         <br>
         "Handle line breaks and auto indent."<br>
         typedChar == Character cr ifTrue: [<br>
                 aKeyboardEvent controlKeyPressed<br>
                         ifTrue: [^ self normalCharacter: aKeyboardEvent].<br>
                 aKeyboardEvent shiftPressed<br>
                         ifTrue: [^ self lf: aKeyboardEvent].<br>
                 aKeyboardEvent commandKeyPressed<br>
                         ifTrue: [^ self crlf: aKeyboardEvent].<br>
                 ^ self crWithIndent: aKeyboardEvent].<br>
  <br>
         "Handle indent/outdent with selected text block."<br>
         typedChar == Character tab ifTrue: [<br>
                 aKeyboardEvent shiftPressed<br>
                         ifTrue: [self outdent: aKeyboardEvent. ^ true]<br>
                         ifFalse: [self hasMultipleLinesSelected<br>
                                 ifTrue: [self indent: aKeyboardEvent. ^ true]]].<br>
  <br>
         honorCommandKeys := Preferences cmdKeysInText.<br>
  <br>
         (honorCommandKeys and: [typedChar == Character enter])<br>
                 ifTrue: [^ self dispatchOnEnterWith: aKeyboardEvent].<br>
         <br>
         "Special keys overwrite crtl+key combinations - at least on Windows. To resolve this<br>
         conflict, assume that keys other than cursor keys aren't used together with Crtl."<br>
         ((self class specialShiftCmdKeys includes: aKeyboardEvent keyValue)<br>
                 and: [aKeyboardEvent keyValue < 27])<br>
                         ifTrue: [^ aKeyboardEvent controlKeyPressed<br>
                                 ifTrue: [self<br>
                                                         perform: (self class shiftCmdActions at: aKeyboardEvent keyValue + 1)<br>
                                                         with: aKeyboardEvent]<br>
                                 ifFalse: [self<br>
                                                         perform: (self class cmdActions at: aKeyboardEvent keyValue + 1)<br>
                                                         with: aKeyboardEvent]].<br>
                         <br>
         "backspace, and escape keys (ascii 8 and 27) are command keys"<br>
         ((honorCommandKeys and: [aKeyboardEvent commandKeyPressed])<br>
                 or: [self class specialShiftCmdKeys includes: aKeyboardEvent keyValue])<br>
                         ifTrue: [ ^ aKeyboardEvent shiftPressed<br>
                                 ifTrue: [self<br>
                                                         perform: (self class shiftCmdActions at: aKeyboardEvent keyValue + 1)<br>
                                                         with: aKeyboardEvent]<br>
                                 ifFalse: [self<br>
                                                         perform: (self class cmdActions at: aKeyboardEvent keyValue + 1)<br>
                                                         with: aKeyboardEvent]].<br>
  <br>
         "the control key can be used to invoke shift-cmd shortcuts"<br>
         (honorCommandKeys and: [ aKeyboardEvent controlKeyPressed ])<br>
                 ifTrue: [^ self<br>
                                         perform: (self class shiftCmdActions at: aKeyboardEvent keyValue + 1)<br>
                                         with: aKeyboardEvent].<br>
  <br>
         "Enclose selection with brackets etc."<br>
         ((self class encloseSelection and: [self hasSelection]) and: [self enclose: aKeyboardEvent])<br>
                 ifTrue: [^ true].<br>
  <br>
         "Automatically enclose paired characters such as brackets."<br>
         (self class autoEnclose and: [self autoEncloseFor: typedChar])<br>
                 ifTrue: [^ true].<br>
                 <br>
         "Even if no enclosing feature was used, highlight the matching bracket when closing one."<br>
         (')]}' includes: typedChar)<br>
                 ifTrue: [self blinkPrevParen: typedChar].<br>
                                         <br>
         self normalCharacter: aKeyboardEvent.<br>
         ^ false!<br>
<br>
Item was changed:<br>
  ----- Method: TextMorphForEditView>>keyStroke: (in category 'event handling') -----<br>
  keyStroke: evt<br>
         | view |<br>
         <br>
         editView deleteBalloon.<br>
         self editor model: editView model.  "For evaluateSelection"<br>
         view := editView.  "Copy into temp for case of a self-mutating doit"<br>
+        (evt keyCharacter = Character lf or: [acceptOnCR and: [evt keyCharacter = Character cr]])<br>
-        (acceptOnCR and: [evt keyCharacter = Character cr])<br>
                 ifTrue: [^ self editor accept].<br>
  <br>
         view hasUserEdited: false.<br>
         super keyStroke: evt.<br>
         view scrollSelectionIntoView.<br>
         <br>
         view hasUserEdited<br>
                 ifTrue: [       view textEdited: self contents].!<br>
<br>
<br>
</div>
</span></font></div>
</div>
</div>
<br>
</blockquote>
</div>
</div>
</div>

<br>
</blockquote></div>