<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.kde.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugs.kde.org/"
          
          maintainer="sysadmin@kde.org"
>

    <bug>
          <bug_id>296696</bug_id>
          
          <creation_ts>2012-03-24 18:49:26 +0000</creation_ts>
          <short_desc>Kickoff &apos;launcher&apos; cannot switch to &quot;Applications View&quot; via Keyboard.</short_desc>
          <delta_ts>2012-03-29 00:23:55 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>10</classification_id>
          <classification>Unmaintained</classification>
          <product>plasma4</product>
          <component>widget-kickoff</component>
          <version>unspecified</version>
          <rep_platform>unspecified</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>regression</keywords>
          <priority>NOR</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Rick Stockton">rickstockton</reporter>
          <assigned_to name="Rick Stockton">rickstockton</assigned_to>
          <cc>kde</cc>
    
    <cc>rickstockton</cc>
          
          <cf_commitlink></cf_commitlink>
          <cf_versionfixedin></cf_versionfixedin>
          <cf_sentryurl></cf_sentryurl>
          <votes>0</votes>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1239554</commentid>
    <comment_count>0</comment_count>
    <who name="Rick Stockton">rickstockton</who>
    <bug_when>2012-03-24 18:49:26 +0000</bug_when>
    <thetext>The 4.8.x &quot;Kickoff&quot; launcher requires a mouse for Navigation among submenus, and among launchable items, in the horizontal direction.

flipScrollView&apos;s parent takes care of up/down arrows, but we need to handle key_left, key_right, escape, and any other keys which are necessary for the &quot;GUI-Style&quot; launcher to be used without a mouse.

The &quot;classic Style&quot; launcher is unaffected, and it is expected that Applet will be re-written in QML for KDE 4.9. This fix/enhancement will only apply to the 4.8.x series.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239609</commentid>
    <comment_count>1</comment_count>
    <who name="Rick Stockton">rickstockton</who>
    <bug_when>2012-03-24 23:04:16 +0000</bug_when>
    <thetext>It&apos;s slightly complicated:

&quot;Favorites&quot; works alright, because (1) it doesn&apos;t have nested &quot;parents&quot; and &quot;children&quot;, AND because &quot;Key_Up&quot; and &quot;Key_Down *are* able depart from the &quot;Favorites&quot; Icon and go into the list of items. From there, User can use &quot;Key_Up&quot; and &quot;Key_Down&quot; to select the desired item, and Enter (or Return) to execute it.

&quot;Applications&quot; is broken in two ways: First, the &quot;Key_Down&quot; doesn&apos;t exit the row of icons (Favorites - Applications - Comuter -Recently Used - Leave). And, if you could get there (as I did by using the mouse _once_),  none of the arrow keys work. Up, Down, Left, and Right are not getting to the widget.

&quot;Rcently Used&quot;, and &quot;Computer&quot; both work correctly (like &quot;Favorites&quot;). Tthey don&apos;t have nested parents and and children, and &quot;Key_Down&quot; / &quot;Key_Up&quot; DO enter the panel, and move among items.

In short, only &quot;Applications&quot; is broken. Does anyone disagree?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239625</commentid>
    <comment_count>2</comment_count>
    <who name="Rick Stockton">rickstockton</who>
    <bug_when>2012-03-24 23:44:19 +0000</bug_when>
    <thetext>I forgot to include the tab key - this panel should use focusPolicy of &quot;StrongFocus&quot;. It&apos;s currently behavior indicates that it has been set (somewhere, perhaps the Parent) to be merely &quot;ClickFocus&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239872</commentid>
    <comment_count>3</comment_count>
    <who name="Rick Stockton">rickstockton</who>
    <bug_when>2012-03-25 22:05:49 +0000</bug_when>
    <thetext>Strangest of all: FlipScrollView::keyPressEvent() re-implelments keyPressEvent, even though it (apparently) will never get called. It tests for Key_Enter, Key_Return, and Key_Escape.

But all of these Keys are handled by other Classes- this one DEFINITELY never gets Keyboard Focus.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239952</commentid>
    <comment_count>4</comment_count>
    <who name="Rick Stockton">rickstockton</who>
    <bug_when>2012-03-26 08:33:37 +0000</bug_when>
    <thetext>(In reply to comment #3)
&gt; 
&gt; But all of these Keys are handled by other Classes- this one DEFINITELY
&gt; never gets Keyboard Focus.

A good guess. Two Other Classes need to set focus on this one when they see a focus-moving key (Up, Down, or Tab). The two Classes are the launcher itself, and also the search widget textarea. The &quot;categories&quot; widget (set of a few icons), should never gain focus at all -- but it might be doing so. In my initial patch, I have to execute TWO keyPressEvent actions (with Tabkey, or a vertical arrow key, or any two of the 3) to activate the area. When the broken class &apos;All Applications&apos; is being displayed, the there is a round-robin &quot;Ring&quot; of 3 focus States:

(A). Focus is on the searchbar text. This State is indicated by a blinking cursor.

(B). Focus inside the flipScrollView. This State is indicated by the ability to move right/left and 

(C). Focus invisible (in the parent) or lost within in the row of category widgets. This State needs to be eliminated.
- - - -
Depending on the exact cause, the following techniques might solve the problem:

#1) If focus enters the &quot;category widgets&quot; view, as a result of right or left arrow, it needs to return focus to the parent immediately.

#2) If I am &quot;spending&quot; the original keyPressEvent while establishing focus, then I need to duplicate the keyPressEvent in a second &quot;sendEvent&quot;.

#3) If the searchbar TextEdit is yielding focus to the Categories Widget, it needs to be recoded (instead yielding focus to the launcher, or directly to the flipScrollView).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240194</commentid>
    <comment_count>5</comment_count>
    <who name="Rick Stockton">rickstockton</who>
    <bug_when>2012-03-27 04:49:18 +0000</bug_when>
    <thetext>The problem is not within &quot;flipscrollview&quot;.

Rather, the &quot;launcher&quot; Class is keeping focus -- and it offers no keyboard-based way to enter this specialized view. The &quot;FlipScrollView&quot; is somewhat unique, because it&apos;s address is stored directly in d-&gt;applicationView (and NOT in d-&gt;contentArea-&gt;currentWidget()).

And so *activeVew is set to null, near line 760. The original code (before this patch), only yields focus when (activeView != false)

The easy fix is to add an &quot;else&quot; clause to this test: if activeView hasn;&apos;t been set nonzero, we know that it&apos;s because the applicationView IS the Selected item in the tab bar (i.e., the bar to where Views are highlighted/chosen).

Focus that view, and give it the up/down arrow key.
- - - - -

I am not able to escape FROM the applicationView so easily- because the Up and Down arrow keys usually need to be kept within the view (changing selected items. To escape from the applicationView, using the Keyboard, you must use the &apos;tab&apos; key.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240425</commentid>
    <comment_count>6</comment_count>
    <who name="Rick Stockton">rickstockton</who>
    <bug_when>2012-03-27 18:38:19 +0000</bug_when>
    <thetext>In review:

https://git.reviewboard.kde.org/r/104422/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240809</commentid>
    <comment_count>7</comment_count>
    <who name="Rick Stockton">rickstockton</who>
    <bug_when>2012-03-29 00:23:55 +0000</bug_when>
    <thetext>Git commit c5a16ec2b64da98991f67dcd991c33abc3888c5c by Rick Stockton.
Committed on 29/03/2012 at 02:18.
Pushed by stockton into branch &apos;KDE/4.8&apos;.

Kickoff: Use up/down keys to enter &apos;All Applications&apos;

Allow KDE Users to switch into the &apos;Applications&apos; content
area, by using up/down arrow keys. With this ability,
it becomes possible to use the Kickoff GUI with only a
keyboard (i.e., without a mouse).
Related: bug 276932
REVIEW: 104422

M  +20   -6    plasma/desktop/applets/kickoff/ui/launcher.cpp

http://commits.kde.org/kde-workspace/c5a16ec2b64da98991f67dcd991c33abc3888c5c</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>