1. 12 Sep, 2017 1 commit
    • Martin Flöser's avatar
      [effects] Support xcbConnectionChanged for support properties · 90e77a93
      Martin Flöser authored
      Several effects announce a support property atom on the root window. This
      change forwards the KWin::Application's signal that the xcbConnection
      changed to the EffectsHandler so that the effects can respond to it.
      All effects which announce a support property connect to this new signal
      and re-announce the property. In case the xcb connection died (future
      XWayland crashing case) it is set to XCB_ATOM_NONE by that. In case the
      xcb connection got created (future delayed XWayland startup) the atom is
      set to the proper value.
      In addition all usages of the support properties are guarded, so that no
      nonesense actions are performed if the support property is XCB_ATOM_NONE.
      Test Plan: Only compile tested as we don't have XFree KWin yet
      Reviewers: #kwin, #plasma
      Subscribers: plasma-devel, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D7761
  2. 14 Sep, 2016 1 commit
    • Martin Flöser's avatar
      [effects] Repaint expandedGeometry in HighlightWindowsEffect · d910217b
      Martin Flöser authored
      The highlight windows effect tried to trigger repaints with the shadow
      included by having an hardcoded pixel offset. This of course breaks if
      the shadow is larger than the hardcoded value.
      The reason presented on why it was done like that is no longer true and
      in the effects the actual visible area including decorations and shadows
      is available through the expandedGeometry.
      BUG: 368495
      Reviewers: #kwin, #plasma
      Subscribers: plasma-devel, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D2748
  3. 13 Sep, 2016 1 commit
    • Martin Flöser's avatar
      Support highlighting windows through EffectsHandlerImpl · 2545162f
      Martin Flöser authored
      So far TabBox used highlight windows by passing window ids around through
      an X property. This doesn't work on Wayland where we don't have window
      ids for our TabBox and the Wayland windows.
      This change introduces a new Effect::Feature for HighlightWindows which
      the HighlightWindowsEffect provides. The EffectsHandlerImpl has a new
      method to highlightWindows which it delegates to that effect if it is
      loaded by invoking a new performFeature method.
      The TabBoxHandler now passes the highlighting to the effects system
      instead of updating the x11 property. Thus this works on Wayland and
      at the same time improves the X11 side by no longer having to go through
      the property protocol.
      Test Plan: Verified that Alt+Tab highlights the windows on Wayland correctly.
      Reviewers: #kwin, #plasma_on_wayland
      Subscribers: plasma-devel, kwin
      Tags: #plasma_on_wayland, #kwin
      Differential Revision: https://phabricator.kde.org/D2630
  4. 24 Jan, 2015 1 commit
  5. 27 Feb, 2014 1 commit
  6. 24 Jan, 2014 1 commit
    • Martin Flöser's avatar
      Turn built-in effects into a library kwin links against · 76efe517
      Martin Flöser authored
      As all effects have always been compiled into the same .so file it's
      questionable whether resolving the effects through a library is useful
      at all. By linking against the built-in effects we gain the following
      * don't have to load/unload the KLibrary
      * don't have to resolve the create, supported and enabled functions
      * no version check required
      * no dependency resolving (effects don't use it)
      * remove the KWIN_EFFECT macros from the effects
      All the effects are now registered in an effects_builtins file which
      maps the name to a factory method and supported or enabled by default
      During loading the effects we first check whether there is a built-in
      effect by the given name and make a shortcut to create it through that.
      If that's not possible the normal plugin loading is used.
      Completely unscientific testing [1] showed an improvement of almost 10
      msec during loading all the effects I use.
      [1] QElapsedTimer around the loading code, start kwin five times, take
      REVIEW: 115073
  7. 29 Nov, 2013 1 commit
  8. 25 Sep, 2013 1 commit
    • Martin Flöser's avatar
      Fix reading of window properties from effects · be3a0cf4
      Martin Flöser authored
      That's what you get for changing code you cannot properly test. The
      calculation was completely messed up. Now reads the correct byte size
      for the byte array. In addition the usages in the effects are improved
      to cast the data into the proper uint32_t values instead of the more
      generic long. After all if the format is 32, the length is 32 and not
      a long.
  9. 08 Sep, 2013 1 commit
    • Thomas Lübking's avatar
      highlight effect: windowAdded false positive exits · 2a5861fa
      Thomas Lübking authored
      When a window is added while the effect is running
      it shall either be highlighted or hidden, but not exit
      the effect what happened, because the property notification
      is invoked to test whether the window has a highlight
      property (questionable since the effect is running, but
      valid - could be different X11 client) and that routine
      exits the effect if no property is found (assuming it was
      REVIEW: 112494
  10. 02 Sep, 2013 1 commit
  11. 07 Jan, 2013 1 commit
    • Martin Flöser's avatar
      Common way to announce support for specific effects through X11 · 565b4ed6
      Martin Flöser authored
      Instead of each effect, which needs to announce support, having custom
      code to create a property and set it on the root window, there is now a
      common API in EffectsHandler to take care of this.
      The methods takes care of creating the atom if it has not already done
      and set the property on the root window. Furthermore it allows multiple
      effects to announce the same property without getting in conflict with
      each other.
      As a further convenience the property is automatically removed when the
      effect is unloaded, so less things an effect author has to care about.
      REVIEW: 107815
  12. 19 Jul, 2012 1 commit
    • Martin Flöser's avatar
      Getter/setters for opacity, saturation and brightness in WindowPaintData · c7262e8b
      Martin Flöser authored
      The public member variables for opacity, saturation and brightness
      are removed in favor for getter and setters. The variables are
      moved into a private class. Those are now qreal instead of double.
      To make usage inside the effects easier a multiply method is added
      which multiplies the current value with passed in factor and returns
      the new value in a functional programming style.
      This commit is the top-most of a patch series to refactor
      ScreenPaintData and WindowPaintData. Other related commits are:
      * 0811772
      * ebdc7ec
      * 2c8dd8d
      * 7699726
      * 68e0201
      * 611cb09
      REVIEW: 105141
      BUG: 303314
      FIXED-IN: 4.10
  13. 12 Mar, 2012 1 commit
  14. 11 Feb, 2012 3 commits
    • Thomas Lübking's avatar
      fix tabbing · 85635dd4
      Thomas Lübking authored
      BUG: 290959
      BUG: 265160
      BUG: 229292
      BUG: 238279
      BUG: 290758
      BUG: 222831
      BUG: 278275
      BUG: 245747
      BUG: 230000
      BUG: 253697
      BUG: 230570
      BUG: 265977
      BUG: 225337
      BUG: 225339
      REVIEW: 103855
    • Thomas Lübking's avatar
      Revert "fix tabbing" · bf88ec09
      Thomas Lübking authored
      pushed out of branch, not master - leading to absent revision, found hash collision??
      This reverts commit 94b2ad7b85801e37e2df4671cdc4f26b6d7e5506.
    • Thomas Lübking's avatar
      fix tabbing · d245035a
      Thomas Lübking authored
      BUG: 290959
      BUG: 265160
      BUG: 229292
      BUG: 238279
      BUG: 290758
      BUG: 222831
      BUG: 278275
      BUG: 245747
      BUG: 230000
      BUG: 253697
      BUG: 230570
      BUG: 265977
      BUG: 225337
      BUG: 225339
      REVIEW: 103855
  15. 18 Dec, 2011 1 commit
    • Thomas Lübking's avatar
      Highlight window: support minimized windows · ba529f20
      Thomas Lübking authored
      - replace QHash::operator[]
      - replace double by float (-> ARM, and we don't need that precision)
      - weaken some value checks ("== 1.0f")
      - fix last paint of hiding windows (w->addRepaintFull() trap)
      REVIEW: 103404
  16. 29 Aug, 2011 1 commit
    • Martin Flöser's avatar
      Only call active effects in the effect chain · fe4329a2
      Martin Flöser authored
      Each effect is able to declare itself as currently being active,
      that is transforming windows or painting or screen or doing anything
      during the current rendered frame.
      This change eliminates the hottest path inside KWin identified by
      REVIEW: 102449
  17. 12 Mar, 2011 1 commit
  18. 27 Feb, 2011 2 commits
  19. 25 Feb, 2011 1 commit
    • Martin Flöser's avatar
      EffectsHandler emits windowAdded signal · ab6f2ba1
      Martin Flöser authored
      All previously existing windowAdded methods are renamed to slotWindowAdded.
      EffectsHandlerImpl is connected to Workspace's clientAdded signal, which is
      emitted a little bit earlier than the previous direct method call. This might
      change behavior.
      Another signal is added to Workspace to signal that an unmanaged is added.
  20. 14 Feb, 2011 2 commits
  21. 06 Feb, 2011 1 commit
  22. 05 Feb, 2011 1 commit
  23. 31 Jan, 2011 1 commit
  24. 17 Oct, 2010 1 commit
  25. 01 Feb, 2010 1 commit
  26. 23 Dec, 2009 1 commit
  27. 20 Dec, 2009 3 commits
  28. 13 Sep, 2009 1 commit
    • Martin Flöser's avatar
      Here comes the new TabBox. It is a complete rewrite using a MVC approach. Here some highlights: · 76f17e6d
      Martin Flöser authored
       * Models and Delegates for Clients and Desktops
       * Horizontal, vertical and tabular layout
       * Layout of one item can be configured by an XML definition
       * A desktop item can include a client list
       * An optional second list view showing only the selected item
       * A new KCM "kwintabbox"
       * An alternative TabBox with independent settings and keybindings
       * Optional Highlight Windows effect integration
       * List scrolls instead of removing items
       * Scroll wheel support
       * Cursor key support
       * Middle click on item closes window
      BUG: 195745
      BUG: 197187
      BUG: 201103
      FEATURE: 118184
      FEATURE: 156723
      FEATURE: 177441
      FEATURE: 182897
      FEATURE: 193882
      svn path=/trunk/KDE/kdebase/workspace/; revision=1022861
  29. 11 May, 2009 1 commit
  30. 05 May, 2009 1 commit
  31. 14 Feb, 2009 1 commit
  32. 09 Feb, 2009 1 commit
  33. 07 Feb, 2009 1 commit
    • Lucas Murray's avatar
      SVN_SILENT Started writing code that would display a thumbnail of a · fd233d14
      Lucas Murray authored
      window in the middle of the screen if it was offscreen when the
      highlight window effect was activated. After getting half way through it
      however I determined that it was a useless feature so instead of
      deleting the code that was already written I am just commenting it out.
      If anyone can find a purpose for this please let me know your ideas.
      svn path=/trunk/KDE/kdebase/workspace/; revision=922795
  34. 05 Feb, 2009 1 commit