1. 25 Feb, 2020 1 commit
    • Nate Graham's avatar
      Remove the "Candy" category and fold its contents into "Appearance" · 04aff77f
      Nate Graham authored
      The "Candy" category suffers from some problems:
      - It does not need to exist; everything in it is purely appearance-related and could live in the existing "Appearance" category
      - The name is inappropriate; "Eye Candy" would be better, but changing it to this has proven controversial in the past
      Let's just remove the category and move everything in it into the "Appearance" category.
      Test Plan:
      Apply and compile
      Open Desktop Effects KCM
      See that the "Candy" category is no more and the "Appearance" category has more stuff in it
      Reviewers: #kwin, #vdg, zzag, abetts
      Reviewed By: #kwin, #vdg, zzag, abetts
      Subscribers: abetts, zzag, kwin, kde-doc-english, GB_2
      Tags: #kwin, #documentation
      Differential Revision: https://phabricator.kde.org/D27658
  2. 10 Jun, 2019 1 commit
  3. 25 Mar, 2019 1 commit
  4. 17 Nov, 2018 1 commit
    • Vlad Zahorodnii's avatar
      [effects/dimscreen] Port to JavaScript · ea1873f9
      Vlad Zahorodnii authored
      The ported effect looks quite similar to the C++ version except one
      thing: it works correctly when user activates/deactivates a full
      screen effect, for example the Desktop Cube effect.
      Other than that, there are no behavioral or visual differences.
      Reviewers: #kwin, davidedmundson
      Reviewed By: #kwin, davidedmundson
      Subscribers: davidedmundson, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D16452
  5. 15 Nov, 2018 1 commit
  6. 29 Oct, 2018 1 commit
    • Vlad Zahorodnii's avatar
      [effects/scale] Port to JavaScript · 862bf0f1
      Vlad Zahorodnii authored
      Now, when the scripting effects API has all required ingredients to port
      the Scale effect to JavaScript we finally can do it.
      The main rationale for porting this effect to JavaScript is that
      scripted effects API lets us focus more on what we want instead of
      Visually, the ported version doesn't deviate from the C++ version.
      Test Plan:
      * Enable the Scale effect;
      * Open/close a window.
      Reviewers: #kwin, graesslin
      Reviewed By: #kwin, graesslin
      Subscribers: graesslin, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D16478
  7. 23 Oct, 2018 1 commit
    • Vlad Zahorodnii's avatar
      [effects] Re-implement the Minimize Animation effect in JavaScript · eb78b1ca
      Vlad Zahorodnii authored
      There were several reasons to rewrite the Minimize Animation effect in
      JavaScript: to simplify code and to get rid of full repaints. One could
      say that nothing prevents us from calculating the dirty region in
      postPaintScreen or postPaintWindow and it is correct, but with the
      scripting effects API the dirty region will be calculated for us, so we
      can focus more on "what we want" instead of "how".
      Visually, the "old" effect and the rewritten one look quite the same.
      Except one tiny bit: if a window doesn't have an icon in the task manager,
      it won't be animated. The reason for that is the purpose of this effect is
      to show where the window will be after it's minimized, if the window
      doesn't have icon in the task manager, one can't click at the center of
      the screen to unminimize the window.
      There is one significant change, the name of the effect was changed to
      "Squash". If we put this effect and the Magic lamp effect under "Window
      Minimize Animation" category (or if we add some "heading" label), then
      the old name and the name of the category would "conflict". The new name
      was suggested by Nate Graham and it very closely describes what the
      effect does. "Scale" doesn't fit this effect because while a window is
      being animated, its aspect ratio is not preserved.
      Reviewers: #kwin, #plasma, davidedmundson
      Reviewed By: #kwin, #plasma, davidedmundson
      Subscribers: davidedmundson, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D16372
  8. 28 Sep, 2018 1 commit
  9. 30 Aug, 2018 3 commits
  10. 12 Aug, 2018 1 commit
    • Vlad Zahorodnii's avatar
      [effects] Add Scale effect · 9d197e8c
      Vlad Zahorodnii authored
      The new effect scales windows as they appear and disappear.
      As the the most of window animation effects, it is a monolithic effect,
      i.e., if you enable scale effect, it will animate *both* the appearing and
      The main difference between the Scale effect and the Scale in effect is
      that the Scale in effect only animates windows as they appear. There is
      no corresponding "the Scale out" effect, which is odd. Other points that
      differentiate the Scale effect from the Scale in effect:
      * it is more subtle;
      * it doesn't animate the log out screen;
      * it doesn't conflict with the Fade effect, etc.
      ... and overall, the Scale effect supersedes the Scale in effect.
      //Window open animation.//
      //Window close animation.//
      {F5905283, layout=center, size=full}
      Test Plan:
      * Enabled this effect
      * Opened/closed System Settings
      Reviewers: #kwin, #plasma, #vdg, davidedmundson
      Reviewed By: #kwin, #plasma, #vdg, davidedmundson
      Subscribers: ngraham, davidedmundson, fvogt, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D13461
  11. 02 Aug, 2018 1 commit
  12. 30 Jul, 2018 2 commits
  13. 18 Jun, 2018 1 commit
    • Vlad Zahorodnii's avatar
      [effects] Use more effectData() in BuiltInEffects · 7bfaa6e9
      Vlad Zahorodnii authored
      While BuiltInEffects has effectData() function, many functions repeat
      s_effectData.at(index(effect)), which is what effectData() is doing.
      By using effectData(), we'll get rid of those repetitions and maybe make
      easier transition to other underlying data structure that stores metadata
      for builtin effects.
      Test Plan: Compiles, all enabled builtin effects are loaded and working.
      Reviewers: #kwin, davidedmundson
      Reviewed By: #kwin, davidedmundson
      Subscribers: kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D13587
  14. 16 Feb, 2018 1 commit
    • Vlad Zahorodnii's avatar
      [effects] replace old slide effect with a new one · ddd406df
      Vlad Zahorodnii authored
      The new slide effect tries to separate each virtual desktop
      as much as possible. This separation makes the new slide
      effect more intuitive than the old one.
      Test Plan:
      * switch between virtual desktops
      * or, move a window to another virtual desktop
      Reviewers: #vdg, #kwin, #plasma, graesslin, ngraham
      Reviewed By: #kwin, #plasma, graesslin
      Subscribers: mart, graesslin, abetts, ngraham, plasma-devel, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D9638
  15. 23 Nov, 2017 1 commit
  16. 25 Nov, 2016 1 commit
    • Martin Flöser's avatar
      [effects] Add a colorpicker effect · 2cc55e40
      Martin Flöser authored
      The effect exports itself to DBus as object "/ColorPicker" and provides
      an own interface "org.kde.kwin.ColorPicker".
      It has one exported method to DBus "pick" which returns a QColor. When
      invoked an interactive position picking selection is started. If it ends
      the effect reads the color value at the picked position from the OpenGL
      color buffer.
      This implements T4568.
      Reviewers: #kwin, #plasma_on_wayland, broulik
      Subscribers: plasma-devel, kwin
      Tags: #plasma_on_wayland, #kwin
      Differential Revision: https://phabricator.kde.org/D3480
  17. 24 Aug, 2016 1 commit
    • Martin Flöser's avatar
      [effects] Drop the logout effect · af80a546
      Martin Flöser authored
      The new logout design doesn't want to have the vignetting. Thus the
      logout effect itself doesn't make any sense any more. All that would
      still be used is the logout blur which can also be provided by the
      blur effect nowadays for fullscreen windows. As the new logout is a
      fullscreen window it should use that one.
      The logout effect did one more thing: it kept the vignetting and the
      blur once the user selected logout. Now without the vignetting this
      would be weird and again doesn't make much sense any more.
      So overall I think it's better to just drop the logout effect and use
      blur effect in normal way. Neat side advantage: it will also work on
      Wayland out-of-the-box.
      Reviewers: #kwin, #plasma, #vdg
      Subscribers: plasma-devel, kwin
      Tags: #kwin
      Differential Revision: https://phabricator.kde.org/D2553
  18. 18 Aug, 2016 1 commit
    • Martin Flöser's avatar
      [effects] Add new effect for touch point visualization · b7f49244
      Martin Flöser authored
      The new effect is based on the mouse click effect and uses the same
      rendering code (this could be improved by merging them better).
      Unlike mouse click there is no keyboard shortcut needed to activate:
      as soon as the effect is loaded all touch points are visualized.
      The visualization creates an animated circle for each touch down
      position, motion and up position. The ids are tracked and each touch
      id gets the same color. The first ten different touch ids get a
      different color. As touch ids are stable the first finger will always
      have the same color.
      Reviewers: #kwin, #plasma_on_wayland, bshah
      Subscribers: plasma-devel, kwin
      Tags: #plasma_on_wayland, #kwin
      Differential Revision: https://phabricator.kde.org/D2464
  19. 19 Oct, 2015 1 commit
    • Martin Flöser's avatar
      Drop the Dashboard Effect · 126263b6
      Martin Flöser authored
      Basically dead code given that Plasma doesn't have a dedicated dashboard
      mode anymore and also doesn't set the required window role for it to
      By deleting we save one string comparison for each newly opened window.
      REVIEW: 125686
  20. 29 Jan, 2015 1 commit
  21. 28 Apr, 2014 2 commits
    • Martin Flöser's avatar
      [kcmkwin/compositing] Use BuiltinEffects to find all built-in effects · a784c918
      Martin Flöser authored
      The EffectData in BuiltinEffects is extended by all the data needed for
      the desktop effects KCM:
      * display name
      * comment
      * category
      * video-url
      * exclusive group
      * internal
      This information is taken directly from the desktop files.
      The Built-in effects are now also resolved through the BuiltInEffects
      namespace and the KServiceTypeTrader query is adjusted to only find the
      scripted effects.
      Unfortunately this introduces another round of adding "kwin4_effect_" to
      load and save the effects correctly. This will be removed once all KCMs
      are adjusted to use the new BuiltInEffects.
    • Martin Flöser's avatar
      Improve specifying the data about the built-in effects · 3e32bf9f
      Martin Flöser authored
      Instead of having several hashes with data about the built-in effect,
      we use a struct EffectData which contains the name, the enabled by
      default state and function pointers to create, supported and check
      enabled by default. There is one static vector with all the data
      specified which is ordered by the BuiltInEffect enum. Thus an enum value
      can be used as an index to the data.
      In addition it's no longer resolved around QByteArray, but uses QString.
      REVIEW: 117354
  22. 28 Mar, 2014 3 commits
  23. 11 Mar, 2014 1 commit
  24. 05 Mar, 2014 1 commit
  25. 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