<div dir="ltr">Hi Marcel,<div><br></div><div>I would not be opposed to removing the field altogether.</div><div><br></div><div>The impetus for my change was because, for some reason, I was unable to immediately use the keyboard to filter the list.  Now, even reverting my change, I cannot seem to reproduce that.</div><div><br></div><div>However, even still, as long as we keep that text widget, I think it makes sense to center dialog UI's on the top-left-most widget in general (excepting close boxes, of course!).  Most people's eyes gravitate from upper-left to lower-right when evaluating a UI screen.  If we agree that the users' eyes would be at the pointer when the dialog opens, then positioning the dialog at the point where they would keep their eye flow continuous; e.g., where they were looking is where their eyes naturally gravitate to; the upper-left widget(s), upon opening under the mouse pointer, where there eyes already were.  From that aspect, at least, it actually seems less jarring.</div><div><br></div><div>Removing the field altogether might encourage users to discover and utilize the list-filtering even elsewhere.  I think that would be a positive thing..</div><div><br></div><div>Best,</div><div>  Chris</div><div><br></div><div><br><div><br></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div id="m_8148732402817215024m_1960852741856310215__MailbirdStyleContent" style="font-size:12pt;font-family:calibri;color:#000000"><div>can you elaborate on this? This is just cosmetics, right? You assume that the user should look at the empty search field. I was assuming that the possible search space is more important. Just open, type the term, navigate with the arrow keys and press return. So, this has been the focus:</div><div><br></div><div><img src="cid:e5a9166c-024b-4d5b-90b8-f0558693eac2" width="auto"></div><div><br></div><div>Now it is this:</div><div><br></div><div><img src="cid:99fcb075-b171-4bbc-8b5d-3057ad6317fb" width="auto"></div><div><br></div><div>Due to the centering of the dialog relative to the current mouse cursor. At least for me, this introduces a visual jump now. Two years ago, I decided to only keep that search field at the top for historical reasons because we can search in all lists in the system by just typing a term.</div><div><br></div><div>Anyway, just my two cents. :-)</div><div><br></div><div>Best,</div><div>Marcel</div><div><div class="m_8148732402817215024h5"><div><br></div><div><br></div><div class="m_8148732402817215024m_1960852741856310215mb_sig"></div>
                                        
                                        <blockquote class="m_8148732402817215024m_1960852741856310215history_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 24.04.2018 05:53:40 schrieb <a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a> <<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>>:</p>Chris Muller uploaded a new version of ToolBuilder-Morphic to project The Trunk:<br><a href="http://source.squeak.org/trunk/ToolBuilder-Morphic-cmm.214.mcz" target="_blank">http://source.squeak.org/trunk<wbr>/ToolBuilder-Morphic-cmm.214.<wbr>mcz</a><br><br>==================== Summary ====================<br><br>Name: ToolBuilder-Morphic-cmm.214<br>Author: cmm<br>Time: 23 April 2018, 10:52:42.863722 pm<br>UUID: ed4cff85-0d01-45be-acf4-89dc6f<wbr>683dfd<br>Ancestors: ToolBuilder-Morphic-cmm.213<br><br>Center ListChoosers under the search-widget for improved focus.<br><br>=============== Diff against ToolBuilder-Morphic-cmm.213 ===============<br><br>Item was changed:<br>  ----- Method: ListChooser>>buildWith: (in category 'building') -----<br>  buildWith: builder<br>  <br>    | dialogSpec searchBarHeight listSpec fieldSpec |<br>     <br>      searchBarHeight := Preferences standardDefaultTextFont height * 1.75.<br>         <br>      dialogSpec := builder pluggableDialogSpec new<br>                 model: self;<br>                  title: #title;<br>                closeAction: #closed;<br>                 extent: self initialExtent;<br>           autoCancel: true; "Behave like a pop-up menu. Historical reasons."<br>                  children: OrderedCollection new;<br>              buttons: OrderedCollection new;<br>               yourself.<br>     <br>      listSpec := builder pluggableListSpec new.<br>    listSpec <br>             model: self;<br>                  list: #items; <br>                getIndex: #selectedIndex; <br>            setIndex: #selectedIndex:; <br>           doubleClick: #accept;<br>                 "keystrokePreview: #keyStrokeFromList:;"<br>            autoDeselect: false;<br>                  filterableList: true;<br>                 clearFilterAutomatically: false;<br>              name: #list;<br>                  frame: (LayoutFrame fractions: (0@0 corner: 1@1) offsets: (0@searchBarHeight corner: 0@0)).<br>   dialogSpec children add: listSpec.<br>    <br>      fieldSpec := builder pluggableInputFieldSpec new.<br>     fieldSpec <br>            model: self;<br>+                 name: #searchText ;<br>           getText: #searchText;<br>                 editText: #searchText:;<br>               setText: #acceptText:;<br>                selection: #textSelection;<br>            menu: nil;<br>            indicateUnacceptedChanges: false;<br>             askBeforeDiscardingEdits: false;<br>              help: (self addAllowed ifTrue: ['Type new or filter existing...' translated] ifFalse: ['Type to filter existing...' translated]);<br>             frame: (LayoutFrame fractions: (0@0 corner: 1@0) offsets: (0@0 corner: 0@searchBarHeight)).<br>   dialogSpec children add: fieldSpec.<br>   <br>      "Buttons"<br>   dialogSpec buttons add: (<br>             builder pluggableButtonSpec new<br>                       model: self; <br>                         label: #acceptLabel;<br>                          action: #accept;<br>                      enabled: #canAcceptOrAdd;<br>                     color: #acceptColor).<br>  <br>     dialogSpec buttons add: (<br>             builder pluggableButtonSpec new<br>                       model: self; <br>                         label: 'Cancel';<br>                      action: #cancel;<br>                      color: #cancelColor).<br>                 <br>      dialogMorph := builder build: dialogSpec.<br>+    dialogMorph addKeyboardCaptureFilter: self ; positionOverWidgetNamed: #searchText.<br>-   dialogMorph addKeyboardCaptureFilter: self.<br>   listMorph := builder widgetAt: #list.<br>         listMorph allowEmptyFilterResult: true.<br>       <br>      ^ dialogMorph!<br><br><br>
                        </blockquote></div></div></div><br><br>
<br></blockquote></div><br></div></div></div>