<table><tr><td style="">ngraham requested review of this revision.<br />ngraham added a comment.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D15011">View Revision</a></tr></table><br /><div><div><p>Awesome, thanks for introducing that additional information. It seems like we have some inconsistency here in our Plasma search fields; I will summarize:</p>

<div class="remarkup-table-wrap"><table style="border-collapse: separate;
          border-spacing: 1px;
          background: #d3d3d3;
          margin: 12px 0;">
<tr><th style="background: #ffffff;
          padding: 3px 6px;">Interface</th><th style="background: #ffffff;
          padding: 3px 6px;">Search field has keyboard focus by default?</th><th style="background: #ffffff;
          padding: 3px 6px;">Search field visible by default?</th><th style="background: #ffffff;
          padding: 3px 6px;">Search field visibly focused by default?</th><th style="background: #ffffff;
          padding: 3px 6px;">When does it become visibly focused?</th><th style="background: #ffffff;
          padding: 3px 6px;">After gaining keyboard focus, when does it lose it?</th></tr>
<tr><td style="background: #ffffff;
          padding: 3px 6px;">Discover</td><td style="background: #ffffff;
          padding: 3px 6px;">Yes</td><td style="background: #ffffff;
          padding: 3px 6px;">Yes</td><td style="background: #ffffff;
          padding: 3px 6px;">No</td><td style="background: #ffffff;
          padding: 3px 6px;">After typing or clicking on it</td><td style="background: #ffffff;
          padding: 3px 6px;">When you click on anything else</td></tr>
<tr><td style="background: #ffffff;
          padding: 3px 6px;">Klipper</td><td style="background: #ffffff;
          padding: 3px 6px;">Yes</td><td style="background: #ffffff;
          padding: 3px 6px;">Yes</td><td style="background: #ffffff;
          padding: 3px 6px;">No</td><td style="background: #ffffff;
          padding: 3px 6px;">After typing or clicking on it</td><td style="background: #ffffff;
          padding: 3px 6px;">Never</td></tr>
<tr><td style="background: #ffffff;
          padding: 3px 6px;">Widget Explorer</td><td style="background: #ffffff;
          padding: 3px 6px;">Yes</td><td style="background: #ffffff;
          padding: 3px 6px;">No</td><td style="background: #ffffff;
          padding: 3px 6px;">No</td><td style="background: #ffffff;
          padding: 3px 6px;">After typing or clicking on it</td><td style="background: #ffffff;
          padding: 3px 6px;">Never</td></tr>
<tr><td style="background: #ffffff;
          padding: 3px 6px;">Kickoff</td><td style="background: #ffffff;
          padding: 3px 6px;">Yes</td><td style="background: #ffffff;
          padding: 3px 6px;">No</td><td style="background: #ffffff;
          padding: 3px 6px;">No</td><td style="background: #ffffff;
          padding: 3px 6px;">After typing or clicking on it</td><td style="background: #ffffff;
          padding: 3px 6px;">Never</td></tr>
<tr><td style="background: #ffffff;
          padding: 3px 6px;">System Settings</td><td style="background: #ffffff;
          padding: 3px 6px;">Yes</td><td style="background: #ffffff;
          padding: 3px 6px;">Yes</td><td style="background: #ffffff;
          padding: 3px 6px;">Yes</td><td style="background: #ffffff;
          padding: 3px 6px;">N/A; always focused</td><td style="background: #ffffff;
          padding: 3px 6px;">After navigating to a KCM</td></tr>
<tr><td style="background: #ffffff;
          padding: 3px 6px;">Kicker</td><td style="background: #ffffff;
          padding: 3px 6px;">Yes</td><td style="background: #ffffff;
          padding: 3px 6px;">Yes</td><td style="background: #ffffff;
          padding: 3px 6px;">Yes</td><td style="background: #ffffff;
          padding: 3px 6px;">N/A; starts out focused</td><td style="background: #ffffff;
          padding: 3px 6px;">After you start to navigate the list</td></tr>
<tr></tr>
</table></div>

<p>It seems like for the most part the interfaces that make the search field invisible or have a different appearance by default are in the minority and are being inconsistent with everyone else. So I'm glad that we generally have consensus that fixing that for Kickoff here is a good idea. I may do the same for the Widget Explorer too; then we'll have 100% consistent visible-by-default search fields!</p>

<p>After performing this investigation and all the accompanying behavioral tests, I realize now that there's a very good reason to keep keyboard focus on the search field even after the list of search results is being navigated with the up and down arrow keys: it's so you can edit your search query even after navigating the list. The only reason why Kickoff doesn't do this is because it has multiple lists that can be navigated between with the left and right arrow keys. Kickoff doesn't do that, so I think we have to keep that with this patch.</p>

<p>So onto the next subject: whether or not to have the search field <em>visibly focused</em> by default, or instead to only show the focus when you click on it or start typing. All of the clients throughout Plasma give the search field keyboard focus by default, even if the visual appearance doesn't reflect this, but we are very inconsistent with the visual appearance: System Settings and Kickoff have it visible and focused by default; klipper and Discover have it visible but not visibly focused until you click or type; Kickoff and the Widget explorer have it invisible until you click or type.</p>

<p>I'll admit that I have a preference for giving the search field visible focus when it actually has keyboard focus. From that perspective, this patch implements that preference, though I'm willing to continue the conversation to achieve consensus, because right now the HIG doesn't say anything about this subject, and it should. In fact it does not address the use case of using LineEdit controls as search fields, or even anything about focus behavior at all.</p>

<p>However, regardless of what we choose, I would like to move towards unifying the interfaces in the above table, because inconsistency in something basic like this is not good. So if we decide to make search fields that have keyboard focus by default not visibly focused until clicked on or text is typed, then we should do it everywhere to maintain consistency. This is another reason why I prefer the shows-focus-when-it-has-focus approach, because deviating from this consistently requires custom code in every client. I feel like we are not really objecting to this concept behaviorally, but rather to the visual consequences of implementing it consistently.</p>

<p>Thoughts?</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R119 Plasma Desktop</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D15011">https://phabricator.kde.org/D15011</a></div></div><br /><div><strong>To: </strong>ngraham, Plasma, VDG, davidedmundson, abetts<br /><strong>Cc: </strong>huftis, rooty, sharvey, romangg, broulik, safaalfulaij, oysteins, filipf, abetts, davidedmundson, michaeltunnell, plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, sebas, apol, mart<br /></div>