1. 02 Apr, 2020 1 commit
    • Aleix Pol Gonzalez's avatar
      Make it possible to have a separate cursor for the tablet · 6abd23ed
      Aleix Pol Gonzalez authored
      Summary:
      As is KWin only had 1 Cursor which was a singleton. This made it impossible for
      us to properly implement the tablet (as in drawing tablets) support and show where
      we're drawing.
      This patch makes it possible to have different Cursors in KWin, it makes all the
      current code still follow the mouse but the tablet can still render a cursor.
      
      Test Plan: Tests pass, been using it and works as well as before but with beautiful tablet cursors.
      
      Reviewers: #kwin, cblack, davidedmundson
      
      Reviewed By: #kwin, cblack, davidedmundson
      
      Subscribers: davidedmundson, cblack, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D28155
      6abd23ed
  2. 04 Mar, 2020 1 commit
    • Vlad Zahorodnii's avatar
      Use AbstractClient instead of XdgShellClient wherever possible · be759b7d
      Vlad Zahorodnii authored
      Summary:
      Currently, we have only one shell client type - XdgShellClient. We use
      it when we are dealing with Wayland clients. But it isn't really a good
      idea because we may need to support shell surfaces other than xdg-shell
      ones, for example input panel surfaces.
      
      In order to make kwin more extensible, this change replaces all usages
      of the XdgShellClient class with the AbstractClient class.
      
      Test Plan: Existing tests pass.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: davidedmundson, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D27778
      be759b7d
  3. 02 Oct, 2019 1 commit
    • Vlad Zahorodnii's avatar
      Rename geometry property to frameGeometry · 7d4471eb
      Vlad Zahorodnii authored
      Summary:
      In order to properly implement xdg_surface.set_window_geometry we need
      two kinds of geometry - frame and buffer. The frame geometry specifies
      visible bounds of the client on the screen, excluding client-side drop
      shadows. The buffer geometry specifies rectangle on the screen that the
      attached buffer or x11 pixmap occupies on the screen.
      
      This change renames the geometry property to frameGeometry in order to
      reflect the new meaning assigned to it as well to make it easier to
      differentiate between frame geometry and buffer geometry in the future.
      
      Reviewers: #kwin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D24334
      7d4471eb
  4. 25 Sep, 2019 1 commit
    • Vlad Zahorodnii's avatar
      Rename Client to X11Client · ffcbe24e
      Vlad Zahorodnii authored
      Summary:
      Currently each managed X11 client is represented with an instance of
      Client class, however the name of that class is very generic and the
      only reason why it's called that way is because historically kwin
      was created as an x11 window manager, so "Client" was a sensible choice.
      
      With introduction of wayland support, things had changed and therefore
      Client needs to be renamed to X11Client in order to better reflect what
      that class stands for.
      
      Renaming of Client to X11Client was agreed upon during the last KWin
      sprint.
      
      Test Plan: Compiles, the test suite is still green.
      
      Reviewers: #kwin, romangg
      
      Reviewed By: #kwin, romangg
      
      Subscribers: romangg, davidedmundson, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D24184
      ffcbe24e
  5. 23 Sep, 2019 1 commit
  6. 07 Nov, 2018 1 commit
  7. 31 Aug, 2018 1 commit
    • Vlad Zahorodnii's avatar
      Clean up includes · 624a4531
      Vlad Zahorodnii authored
      Summary:
      * effects.h includes client.h and forward declares Client, both at the
        same time. Thus, delete the include;
      
      * the blur effect includes effects.h. That, most likely, is a leftover
        after 3f5bf65a.
      
      Test Plan: Compiles.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D15191
      624a4531
  8. 01 Sep, 2017 1 commit
  9. 08 Aug, 2017 1 commit
  10. 16 Nov, 2016 1 commit
    • Martin Flöser's avatar
      Use KWin's KSharedConfigPtr in ScriptedEffect · af83401b
      Martin Flöser authored
      Summary:
      So far ScriptedEffect used EffectsHandler::effectConfig to get the
      KConfigGroup for the ScriptedEffect. This has the disadvantage that the
      config file name is hardcoded to kwinrc in EffectsHandler::effectConfig.
      
      Inside KWin a KSharedConfigPtr is used which can point to somwhere else
      than kwinrc. If that was the case the ScriptedEffects were not able to
      pick up this customized config and instead continued to read values from
      kwinrc.
      
      With this change the ScriptedEffects use the KSharedConfigPtr provided
      by KWin. Thus in e.g. autotests we can use the general way to configure
      the effects and don't need to write to the config.
      
      Reviewers: #kwin, #plasma
      
      Subscribers: plasma-devel, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D3383
      af83401b
  11. 28 Oct, 2016 2 commits
    • Martin Flöser's avatar
      [effects/translucency] Cancel existing animations before starting new · 94c5704a
      Martin Flöser authored
      Summary:
      It can happen that startAnimation is invoked multiple times for a
      window. In case it was invoked a second time the previous animation was
      not cancelled. This resulted in the set-animation to never end. When
      closing a window, it would stay around as a translucent, non-interactive
      window zombie.
      
      This change ensures that existing animations get cancelled.
      
      BUG: 342716
      FIXED-IN: 5.8.3
      
      Test Plan: Tested through autotest and manually.
      
      Reviewers: #kwin, #plasma
      
      Subscribers: plasma-devel, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D3190
      94c5704a
    • Martin Flöser's avatar
      [autotests] Add test case for translucency effect of dialog window · eb88762e
      Martin Flöser authored
      This test case simulates a condition of the translucency effect
      modifying windows of certain types (e.g. dialogs).
      
      In case the effect got activated for a window it does not end after the
      window gets closed and creates a non-interactive zombie window.
      
      CCBUG: 342716
      eb88762e
  12. 15 Aug, 2016 1 commit
    • Martin Flöser's avatar
      Introduce an EffectsHandler::animationsSupported -> bool · 142aab2e
      Martin Flöser authored
      Summary:
      A new method to tell the effects system whether the compositor scene
      is able to drive animations. E.g. on software emulation (llvmpipe) it's
      better to not do any animations at all.
      
      This information can be used by effects to adjust their behavior, e.g.
      PresentWindows could skip transitions or effects can use it in their
      supported check to completely disable themselves.
      
      As a first step all scripted effects are considered to be unsupported
      if animations are not supported. They inherit AnimationEffect and are
      all about driving animations.
      
      The information whether animations are supported comes from the Scene.
      It's implemented in the following way:
       * XRender: animations are always supported
       * QPainter: animations are never supported
       * OpenGL: animations are supported, except for software emulation
      
      In addition - for easier testing - there is a new env variable
      KWIN_EFFECTS_FORCE_ANIMATIONS to overwrite the selection.
      
      Reviewers: #kwin, #plasma
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D2386
      142aab2e
  13. 03 Aug, 2016 1 commit
    • Martin Flöser's avatar
      Ensure that EffectsHandlerImpl::slotClientShown is only invoked once per Window · 671740dc
      Martin Flöser authored
      Summary:
      This fixes a regression introduced with a1afeded.
      The connections were setup every the windowShown signal got emitted.
      This caused effects to get multiple singals and start multiple animations
      which then do not get cancelled correctly.
      
      The incorrect behavior was most visible in the translucency effect which
      did not cancel the move animation and the window stayed translucent.
      
      BUG: 366081
      
      Test Plan:
      New test case which simulates the behavior of the translucency
      effect.
      
      Reviewers: #kwin, #plasma, sebas
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D2346
      671740dc
  14. 13 Jul, 2016 1 commit
    • Martin Flöser's avatar
      Handle situation of no XDG_RUNTIME_DIR gracefully · 3c04d529
      Martin Flöser authored
      Summary:
      If KWin fails to start the Wayland server due to XDG_RUNTIME_DIR not
      being set, kwin_wayland should terminate with an error condition but
      not crash.
      
      This change makes sure that KWin detects that the Wayland server does
      not work and terminates the startup early and ensures that it doesn't
      crash while going down.
      
      An error message is shown that we could not create the Wayland server.
      
      Test Plan:
      Test case added which verifies that WaylandServer fails to
      init. Manual testing that kwin_wayland exits with error 1.
      
      Reviewers: #kwin, #plasma_on_wayland
      
      Subscribers: plasma-devel, kwin
      
      Tags: #plasma_on_wayland, #kwin
      
      Differential Revision: https://phabricator.kde.org/D2078
      3c04d529
  15. 29 Jun, 2016 1 commit
  16. 11 May, 2016 1 commit