1. 06 Nov, 2019 1 commit
    • Michail Vourlakos's avatar
      update panel shadows when background hints are changed · 328817b5
      Michail Vourlakos authored
      Summary:
      --when the containment background hints are updated then the
      panel shadows should be also. In case the background hints
      point to NoBackground the panel shadows should be removed
      and in case they point to DefaultBackground they should be
      drawn again
      --PanelShadows::removeWindow has no place in updateEnabledBorders
      because the window still lives. When removeWindow was executed
      before it was faulty unregistered from PanelShadows and in order for
      setEnabledBorders to work again we should need
      to execute from start the PanelShadows::addWindow function
      
      Test Plan:
      --I have created an applet which a PlasmaComponents.Switch button
      and toggles panel transparency on user demand easily
      
      Reviewers: #plasma, davidedmundson, mart
      
      Reviewed By: #plasma, davidedmundson
      
      Subscribers: plasma-devel
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D25121
      328817b5
  2. 11 Oct, 2019 1 commit
  3. 04 Sep, 2019 1 commit
  4. 06 Aug, 2019 1 commit
    • Marco Martin's avatar
      introduce the Defaults group for panel values · 9fa4d941
      Marco Martin authored
      Summary:
      when plasma is starting up, there are no panel views yet
      this means that if a thickness (or other values)
      are written to the config file and then the resolution changes before
      the panel view gets created, we'll have a view that will default
      to 30 pixels regardless what the layout js file specified.
      
      This makes the scripting only write to a [Default] group for resolution
      dependent properties when panels are not actually present
      when they are already there, interact directly with the view which is
      the safest option.
      
      the view will use whatever is in the defaults group as default if the
      resolution dependent is there, and when a new value is set for a
      resolution dependent one, also update the default, which will
      be used when screen resolution changes, as new default value
      
      Test Plan:
      * With virtualbox, change resolution continuously when plasma is starting up
      with an empty setup, panel is the expected size now, as opposed to 30
      * Stop Plasma. Change Screen resoluton with plasma *not* running, to a resoluton
      still "unknown" to plasmashellrc, then start plasma again. Now the thickness saved
      in [Default] is picked, instead of the arbitrary 30
      
      Reviewers: #plasma, broulik
      
      Reviewed By: #plasma, broulik
      
      Subscribers: apol, plasma-devel
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D22893
      9fa4d941
  5. 15 Jun, 2019 1 commit
    • Friedrich W. H. Kossebau's avatar
      PanelView: align setting of masks with how it's done for dialogs/tooltips · f65a0eee
      Friedrich W. H. Kossebau authored
      Summary:
      With Plasma dialogs & tooltips the mask is only set on the widget itself
      if compositing is off. Instead is the mask explicitly passed for the
      KWindowEffects.
      The recent changes to fix the blurbehind & contrast mask with panels
      instead turned to always set the mask on the widget. For some reason
      yet to be understood this can sometimes result in an offset by a pixel
      between the mask used for painting and the mask used for the window effects.
      
      Aligning the mask setting code with the one for dialogs & tooltips makes
      the symptom go away for now, and also delivers consistency.
      
      BBUG: 406380
      FIXED-IN: 5.16.1
      
      Test Plan:
      Using different themes, including Adapta & Arc Dark, a gap can no longer
      been seen. Only with compositing turned off, which is old behaviour due to
      the real bug yet to understand completly.
      Resizing panels or changing screen resolution also works without breaking
      rendering or panel contents interaction.
      
      Reviewers: #plasma, hein
      
      Reviewed By: #plasma, hein
      
      Subscribers: hein, plasma-devel
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D21803
      f65a0eee
  6. 14 May, 2019 1 commit
  7. 06 May, 2019 1 commit
  8. 27 Aug, 2018 1 commit
  9. 10 Mar, 2018 1 commit
  10. 14 Feb, 2018 1 commit
  11. 28 Jan, 2018 1 commit
    • David Edmundson's avatar
      Fix autohide panels on wayland · 1cb0d180
      David Edmundson authored
      Summary:
      To test if the panel is under the cursor we used:
      if (geometry().contains(QCursor::pos(screenToFollow()))) {
      
      Unsurprisingly in wayland we don't know the cursor position once it's
      left our window. Behaviour seems to be undefined.
      
      We were already using enter and leave events to start the autohide
      timer, so we may as well rely on that for tracking state too.
      
      BUG: 377838
      
      Test Plan:
      Tested mouse in, mouse out
      
      Tested mouse in and waiting and panel stayed open
      
      Tested opening wifi applet and closing it
      That will trigger the restoreAutoHide method as an applet status changed
      The panel stayed open because the mouse was on it.
      
      Reviewers: #plasma, mart
      
      Reviewed By: #plasma, mart
      
      Subscribers: plasma-devel
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D10101
      1cb0d180
  12. 12 Jul, 2017 1 commit
    • David Edmundson's avatar
      Don't autohide panel if a child window is open · 2d8b4e1d
      David Edmundson authored
      Summary:
      This is meant as a more generic fix for the autohide panels, actually
      looking to see what transient windows we have open.
      
      The problem with the current fixes (D6555) being posted is that we
      potentially get attentionStatus in a corrupt status as we cache the
      value but it might change externally whilst that window is open.
      
      Also saves duplicating code in a bunch of places.
      
      Test Plan:
      Set autohide
      Opened a context menu in task manager didn't autohide, till I closed it
      Closing menu whilst keeping mouse in the panel doesn't auto hide it
      until we move out after.
      Hovering over TM tooltip keeps autohide from closing (another fix)
      
      BUG: 352459
      BUG: 347855
      BUG: 351823
      
      Reviewers: #plasma, broulik
      
      Reviewed By: #plasma, broulik
      
      Subscribers: broulik, plasma-devel
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D6577
      2d8b4e1d
  13. 09 Jan, 2017 1 commit
  14. 13 Nov, 2016 1 commit
    • Michail Vourlakos's avatar
      add backgroundHints for the panel view · 341a534e
      Michail Vourlakos authored
      Summary:
      This patch adds a variable called "backgroundHints"
      which can be used with (NoBackground) through qml
      in order to enable/disable the KWin effects for
      a specific panel and the panel shadows in case the
      effects are disabled.
      Currently these effects are (Blur and Background Contrast)
      
      Reviewers: #plasma, #davidedmundson
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D3282
      
      FEATURE: 368384
      341a534e
  15. 10 Oct, 2016 1 commit
    • Bhushan Shah's avatar
      [shell] Don't resize or reposition panel if we are doing restore · c63baa3a
      Bhushan Shah authored
      Summary:
      PanelView::restore sets various properties including length, thickness,
      which would result in panel resize and repositioning. PanelView::restore
      also explicitly calls PanelView::positionPanel and ::resizePanel.
      
      This results in positionPanel and resizePanel operation being done
      multiple times at startup/adding panel and hence flicker when panel
      first shows up. This patch makes resizePanel and positionPanel no-op if
      we are restoring panel.
      
      Test Plan: Added panel, restored panel, moved around panel
      
      Reviewers: #plasma, mart
      
      Subscribers: plasma-devel
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D3008
      c63baa3a
  16. 23 Sep, 2016 1 commit
  17. 16 Sep, 2016 1 commit
  18. 25 Aug, 2016 1 commit
    • Martin Flöser's avatar
      Allow struts on panels between screen edges if WM is KWin · f5d966ee
      Martin Flöser authored
      Summary:
      KWin starting with 5.7 supports struts on panels between screen edges.
      Thus we can start setting struts on such panels, it won't exclude a
      complete screen. But we don't know how other window managers handle it
      and it's in general a rather "dangerous" change.
      
      Thus to not affect other window managers, we check whether KWin is
      running and only allow struts on thus panels if KWin is running.
      Unfortunately we need to test this every time we go into the code path
      as the WM might have changed.
      
      In case the user replaces the window manager at runtime this still can
      result in a bad situation.
      
      BUG: 94470
      FIXED-IN: 5.8.0
      
      Test Plan:
      Tested whether it works in general in X11. Further testing
      needed by X11, multi-screen users.
      
      Reviewers: #plasma
      
      Subscribers: plasma-devel
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D2164
      f5d966ee
  19. 26 Jul, 2016 1 commit
    • Marco Martin's avatar
      Consider the primary screen as default screen · c79cfed9
      Marco Martin authored
      Summary:
      We used to append them, but that didn't work well and was crashing plasmashell
      on fresh start.
      A default desktop would be created alongside with the one provided by the
      layout instead of replacing it.
      If a layout wants to provide an additional screen for a desktop in the secondary
      screen, it should specify the screen.
      
      Test Plan:
      Now the plasmashell tests pass. In fact I noticed it was broken due to an e-mail
      Jonathan sent me that the test on neon was timing out. The test in neon will
      freeze when the test crashes. Probably something to look into.
      It can be reproduced by running:
      ```
      xvfb-run -a --server-args="-screen 0 1024x768x24" dbus-launch --exit-with-session <exec>
      ```
      Where `exec` is the process we need to run.
      
      Now the test passes.
      It's a crash that I had reproduced locally in the past. I can't now.
      
      Reviewers: #plasma, mart
      
      Reviewed By: mart
      
      Subscribers: sitter, jriddell, plasma-devel, #neon
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D2117
      c79cfed9
  20. 07 Jun, 2016 1 commit
  21. 30 May, 2016 1 commit
  22. 17 Mar, 2016 1 commit
    • David Edmundson's avatar
      Don't set min and max size of window twice · 12f7cbf5
      David Edmundson authored
      Don't save and restore panel length
      
      length gets overriden from the QML side so there is no point loading and
      restoring it.
      
      This also simpifies code somewhat removing places where we clearly did
      the same bit of code twice.
      12f7cbf5
  23. 10 Mar, 2016 1 commit
  24. 28 Dec, 2015 1 commit
    • David Edmundson's avatar
      Don't rely graphic objects in panel script engine · 0dc7f6c3
      David Edmundson authored
      The basic design of Plasma is that scripts and and the shell (in theory)
      manipulate a tree of basic applet geometry and configs.
      
      Plasmashell then reacts to those changes and displays them visually with
      a distinct separation between the layout and UI.
      
      Panel's scriptengine seemed to do away with all, and try and manipulate
      the graphic object directly..which might not exist and that leads to
      complex code.
      
      This changes it to read/write from the same config object as
      PanelView will use. More akin to how the script engine for applet and
      contiainment works.
      
      If there's a view for this panel, we update immediately, otherwise it'll
      just get loaded when it's needed. PanelView::reload() has the error
      checking/bounds management so no point duplicating that.
      
      BUG: 355918
      REVIEW: 125921
      0dc7f6c3
  25. 12 Oct, 2015 1 commit
  26. 09 Jun, 2015 1 commit
    • Martin Flöser's avatar
      Add support to mark the PanelView as a Panel on Wayland · e7deda80
      Martin Flöser authored
      This change introduces the first part of Wayland integration. If
      running on platform Wayland we try to bind the org_kde_plasma_shell
      interface through the help of KWayland client library. If this interface
      is available we can use it to create a PlasmaShellSurface for the
      PanelView's window and mark that as a panel.
      
      A compositor with support for the org_kde_plasma_shell interface can
      use this information to make the window operate as a panel.
      
      REVIEW: 124054
      e7deda80
  27. 18 May, 2015 1 commit
  28. 21 Oct, 2014 2 commits
  29. 01 Oct, 2014 1 commit
    • Marco Martin's avatar
      set the screen as soon as possible · 89045253
      Marco Martin authored
      set the screen in the constructor, to have the right one before
      doing anything with the window, accessing the config or parsing
      QML
      
      CCBUG:339554
      89045253
  30. 26 Sep, 2014 1 commit
  31. 26 Aug, 2014 1 commit
  32. 25 Jun, 2014 1 commit
  33. 20 Jun, 2014 1 commit
  34. 18 Jun, 2014 1 commit
    • Aleix Pol Gonzalez's avatar
      Explicitly call panelview::show · d4d9a390
      Aleix Pol Gonzalez authored
      This way, we don't need to have everything being repainted when geometries
      change while constructing the panel.
      Also don't connect to screen changed until everything is initialized and
      the panel is displayed.
      d4d9a390
  35. 13 Jun, 2014 1 commit
  36. 08 May, 2014 1 commit
  37. 18 Apr, 2014 1 commit
  38. 16 Apr, 2014 1 commit
  39. 15 Apr, 2014 1 commit
    • Aleix Pol Gonzalez's avatar
      React to containment status changes · dae9b75f
      Aleix Pol Gonzalez authored
      At the moment the Panel didn't have any code to react status changes from
      the containment (and therefore its applets).
      
      This patch aims to add this, only problem being that it doesn't work. The
      "unhide requested" and "unhiding" messages are being displayed though.
      
      I've been looking for the code that does the actual display of the
      auto-hiding panels and I wasn't able to find it, help is welcome.
      
      REVIEW: 117563
      dae9b75f