1. 14 Dec, 2012 1 commit
  2. 14 Nov, 2012 1 commit
  3. 10 Nov, 2012 1 commit
  4. 09 Nov, 2012 2 commits
    • Cedric Bellegarde's avatar
      GUI: Kwin appmenu support: · 1bb5e4fb
      Cedric Bellegarde authored
      - Add support for application menu button in Kwin
      - Add kded appmenu configuration in kcm_style
      1bb5e4fb
    • Martin Flöser's avatar
      Decoration can announce whether it currently requires an alpha channel · 09837e2d
      Martin Flöser authored
      A decoration can provide the AbilityAnnounceAlphaChannel in addition to
      AbilityUsesAlphaChannel. If this ability is provided the decoration can
      enable/disable the use of the alpha channel through setAlphaEnabled().
      
      The base idea behind this mechanism is to be able to tell the compositor
      that currently alpha is not needed. An example is the maximized state in
      which the decoration is fully opaque so that there is no need to use the
      translucency code path which would render all windows behind the deco.
      
      In addition also the blur effect honors this setting so that behind a
      known opaque decoration no blurring is performed.
      
      Oxygen is adjusted to disable translucency in maximized state and Aurorae
      is adjusted to allow themes to enable/disable translucency. For Plastik
      translucency and with that also blurring is disabled.
      
      REVIEW: 106810
      09837e2d
  5. 08 Nov, 2012 1 commit
  6. 07 Nov, 2012 1 commit
  7. 01 Nov, 2012 1 commit
  8. 24 Oct, 2012 1 commit
  9. 12 Oct, 2012 1 commit
    • Martin Flöser's avatar
      Move decoration pixmap handling from Client to PaintRedirector · 61194c96
      Martin Flöser authored
      The only task of the PaintRedirector is to redirect the painting of the
      window decorations into Pixmaps. So it should actually do this by also
      handling the four pixmaps for the decoration. This simplifies the code
      as all the logic concerning redirecting the painting is now grouped
      together.
      
      Furthermore the PaintRedirector is now a child of the decoration widget,
      which means it gets automatically destroyed whenever the decoration is
      destroyed - the Client does not have to care about it.
      
      Also the PaintRedirector gets only created if the Compositor is active as
      it is not needed in the non-compositing case.
      
      REVIEW: 106620
      61194c96
  10. 29 Sep, 2012 1 commit
    • Martin Flöser's avatar
      Introduce dedicated OpenGL1 and OpenGL2 compositing types · a4711852
      Martin Flöser authored
      The CompositingType enum turns into flags and two new values are
      introduced: OpenGL1Compositing and OpenGL2Compositing.
      
      Those new values are or-ed to OpenGLCompositing so that a simple check
      for the flag OpenGLCompositing works in case of one of those two new
      values. To make the generic check for OpenGL compositing easier a method
      in EffectsHandler is introduced to just check for this.
      
      The scenes now return either OpenGL1Compositing or OpenGL2Compositing
      depending on which Scene implementation. None returns OpenGLCompositing.
      a4711852
  11. 27 Sep, 2012 2 commits
  12. 19 Sep, 2012 1 commit
  13. 07 Sep, 2012 1 commit
    • Martin Flöser's avatar
      Toplevel::windowType becomes a pure virtual function · 700bccde
      Martin Flöser authored
      The method windowType needs actually two implementations:
      * one for Clients
      * one for Unmanaged
      
      as for Clients also the window rules are checked and hacks are applied
      which is both not needed for Unmanaged windows.
      
      To have the Client specific behavior in windowType the function used to
      perform two dynamic_casts which made this method one of the most
      expensive during compositing, e.g. for ~1000 frames
      * called ~43000 times
      * ~85000 dynamic casts
      * incl. cost of method: 0.24
      * self cost of method: 0.05
      * incl. cost of the casts: 0.12
      
      After the change to remove the dynamic casts we have for ~1500 frames
      in Client::windowType:
      * called ~31000 times
      * incl. cost of 0.06
      * self cost of 0.02
      
      Calls on Unmanaged and Deleted are so low that we do not need to consider
      them.
      
      BUG: 306384
      FIXED-IN: 4.10
      REVIEW: 106349
      700bccde
  14. 06 Sep, 2012 1 commit
    • Martin Flöser's avatar
      Make the Compositor a proper Singleton · 574e02c9
      Martin Flöser authored
      The Compositor class actually behaves like a Singleton so it should be
      one. Therefore four static methods are added:
      * self() to access the Singleton
      * createCompositor() to be used by Workspace to create the instance
      * isCreated() to have a simple check whether the Singleton is already
        created
      * compositing() as a shortcut to test whether the compositor has been
        created and is active
      
      The isCreated() check is actually required as especially Clients might
      be created and trying to access the Compositor before it is setup.
      574e02c9
  15. 28 Aug, 2012 8 commits
  16. 26 Aug, 2012 3 commits
  17. 09 Jul, 2012 3 commits
  18. 12 Jun, 2012 2 commits
  19. 01 Jun, 2012 1 commit
  20. 23 May, 2012 1 commit
    • Casian Andrei's avatar
      Fix windows like kickoff from disappearing · 02532761
      Casian Andrei authored
      When trying to launch kickoff (start menu) or the add widgets from
      Plasma, they disappeared immediately after appearing, making them
      completely unusable.
      
      This regression was traced back to commit
      bf0a241c.
      
      In Client::setOnActivities, if newActivitiesList was empty, after
      joining it and splitting it back, it would contain an empty string, i.e.
      it would have a different size than before. This eventually caused the problems.
      
      REVIEW: 105016
      02532761
  21. 22 May, 2012 1 commit
    • Martin Flöser's avatar
      Use smart pointers to protect access to TabBoxClient · 05a34201
      Martin Flöser authored
      Client holds a SharedPointer to the TabBoxClient and only
      provides access to a WeakPointer which is passed to TabBox.
      ClientModel is adjusted to hold a list of WeakPointers instead
      of the direct pointers.
      
      This fixes the following reproducable crash:
      1. Configure both primary and secondary TabBox with different
         layouts
      2. Use primary TabBox
      3. Close a window, best the one which used to be active
      4. Use secondary TabBox
      -> Crash
      
      The reason is that the ClientModel still contains the pointer
      to the deleted TabBoxClient in step 3 and while creating the
      layout access to the TabBoxClient is needed to get the Client's
      icon.
      
      By using the weak pointer it can be ensured that we don't try
      to dereference the deleted pointer and prevent the crash.
      
      CCBUG: 290482
      CCBUG: 285747
      CCBUG: 237345
      REVIEW: 105000
      05a34201
  22. 17 May, 2012 1 commit
    • Ivan Čukić's avatar
      Adds activity window rules to KWin · bf0a241c
      Ivan Čukić authored
      - adds the kcm rule option to set the activity - one or all option like
        for virtual desktops
      - makes the windows obey the rule
      - makes the rule enforced even when the user tries to change the
        window's activity via the alt+f3 menu
      
      REVIEW:104972
      bf0a241c
  23. 11 May, 2012 1 commit
    • Martin Flöser's avatar
      Simplify construction of TabBoxClientImpl · a348b34d
      Martin Flöser authored
      cppcheck complained about that piece of code and it was not
      really good. A TabBoxClient belongs to exactly one Client which
      means the setter should for Client should not be there in the
      first place and was only used during construction.
      
      REVIEW: 104909
      a348b34d
  24. 30 Apr, 2012 1 commit
  25. 24 Apr, 2012 1 commit
  26. 22 Apr, 2012 1 commit
    • Martin Flöser's avatar
      Do not create Deleted on Workspace Shutdown · 53027ef8
      Martin Flöser authored
      When the Workspace is shutting down the compositor is torn down
      before Clients and Unmanaged are released. This means that there
      is no need to create the Deleted windows.
      
      Furthermore creating the Deleted manipulates the stacking_order
      while Workspace dtor loops over this list to release all clients.
      This may cause crashes.
      
      BUG: 282933
      FIXED-IN: 4.9.0
      REVIEW: 104690
      53027ef8