Skip to content
  • ivan tkachenko's avatar
    Fix system tray UI/UX & refactor · a73aa330
    ivan tkachenko authored and Nate Graham's avatar Nate Graham committed
    Summary:
    System tray widget had the following UX problem:
    Icons are laid out in a Flow QML layout, using minimal amount of
    space, thus not filling the height/width of the task bar. In other
    words: user can only click directly on an icon, not over or under it.
    
    Consider the following scenario:
    
    Given icon size X and task bar of height 1.5 * X located at the bottom;
    User moves pointer down to the limit and tries to click the icon.
    Expected outcome: applet is activated.
    Actual outcome: nothing happens, because icon (together with mouse
    area) floats slightly above the bottom.
    
    Which is inconvenient, especially when most other widgets tend to fill
    up the space.
    
    This patch fixes aforementioned problem by refactoring layouts using
    modern GridLayout, RowLayout et al., so that icons are arranged in
    rows and columns based on their number, and each one fills up its
    cell. I also made a handful of minor internal refactorings and fixes.
    Unfortunately, due to tight coupling, almost all files needed changes
    anyway.
    
    Special note on 'CompactApplet.location': it didn't seem to affect
    anything at all, so removed it.
    
    At the end of the day no visual changes should be noticeable. Layout
    works in both vertical and horizontal form-factor an all four sides of
    the desktop.
    
    Test Plan: Please, check whether 'LayoutMirroring' works properly.
    
    Reviewers: #vdg, #plasma, broulik, mart, hein, davidedmundson
    
    Reviewed By: #plasma, davidedmundson
    
    Subscribers: aacid, davidre, davidedmundson, ngraham, ndavis, anthonyfieroni, plasma-devel
    
    Tags: #plasma
    
    Differential Revision: https://phabricator.kde.org/D19745
    a73aa330