1. 27 Nov, 2019 2 commits
    • Vlad Zahorodnii's avatar
      [wayland] Provide correct input transformation matrix for client-side decorated clients · 038509e6
      Vlad Zahorodnii authored
      Summary: Pointer events must be in surface-local coordinates, not window geometry.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Maniphest Tasks: T10867
      
      Differential Revision: https://phabricator.kde.org/D24456
      038509e6
    • Vlad Zahorodnii's avatar
      [wayland] Implement window geometry more properly · 9f7a856d
      Vlad Zahorodnii authored
      Summary:
      So far the window geometry from xdg-shell wasn't implemented as it should
      be. A toplevel must have two geometries assigned to it - frame and buffer.
      The frame geometry describes bounds of the client excluding server-side
      and client-side drop-shadows. The buffer geometry specifies rectangle on
      the screen occupied by the main surface.
      
      State and geometry handling in XdgShellClient is still a bit broken. This
      change doesn't intend to fix that, it must be done in another patch asap.
      
      Test Plan: New tests pass.
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: davidedmundson, romangg, kwin
      
      Tags: #kwin
      
      Maniphest Tasks: T10867
      
      Differential Revision: https://phabricator.kde.org/D24455
      9f7a856d
  2. 26 Nov, 2019 7 commits
    • Roman Gilg's avatar
      Set orientation from DRM on fallback · b7dbe0e8
      Roman Gilg authored
      Summary:
      In case of a failed atomic commit the previous mode should be fallen back to.
      For orientation provide again a setter that DRM backend can use to set the
      transform back to the last working one.
      
      Test Plan: Compiles, fallback works, cursor still messed up somewhat (scaling issue?).
      
      Reviewers: #kwin
      
      Subscribers: zzag, kwin
      
      Tags: #kwin
      
      Maniphest Tasks: T11670
      
      Differential Revision: https://phabricator.kde.org/D25507
      b7dbe0e8
    • Roman Gilg's avatar
      Associate output transforms and orientations · 6bfa931f
      Roman Gilg authored
      Summary:
      We use internally Qt:ScreenOrientation for representing output transforms.
      
      This is not ideal since the values do not map directly to Wayland transform
      values, but we can make it work by using OR combinations of
      Qt:ScreenOrientations.
      
      Do this for now and see if we should not better introduce an internal enum
      mapped directly.
      
      Additionally the OR combinations need to be handled in the drm backend at
      various places accordingly as well (see TODOs).
      
      Test Plan: Compiles
      
      Reviewers: #kwin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Maniphest Tasks: T11670
      
      Differential Revision: https://phabricator.kde.org/D25505
      6bfa931f
    • Roman Gilg's avatar
      Set transform in AbstractWaylandOutput · 523967b3
      Roman Gilg authored
      Summary:
      Move the Wayland output device and output transform calls from DRM backend
      to AbstractWaylandOutput. This leaves still some loose ends that need to be
      tied up later. On failed commit we want to fall back to last working state
      and orientation getter in general needs some more refactoring.
      
      Test Plan: Compiles.
      
      Reviewers: #kwin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Maniphest Tasks: T11670
      
      Differential Revision: https://phabricator.kde.org/D25504
      523967b3
    • Yuri Chornoivan's avatar
      Fix minor typos · a853e337
      Yuri Chornoivan authored
      a853e337
    • Yuri Chornoivan's avatar
      Use URL with transport encryption · 84244a7c
      Yuri Chornoivan authored
      84244a7c
    • Nicolas Fella's avatar
      [effects] Remove unneeded link to KService · f62086f9
      Nicolas Fella authored
      Test Plan: builds
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D25547
      f62086f9
    • Nicolas Fella's avatar
      Remove unused QLinkedList includes · 44c558c3
      Nicolas Fella authored
      Test Plan: builds
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: #kwin, davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Maniphest Tasks: T12087
      
      Differential Revision: https://phabricator.kde.org/D25544
      44c558c3
  3. 24 Nov, 2019 2 commits
  4. 22 Nov, 2019 1 commit
  5. 20 Nov, 2019 2 commits
  6. 19 Nov, 2019 1 commit
  7. 18 Nov, 2019 7 commits
  8. 15 Nov, 2019 1 commit
  9. 14 Nov, 2019 8 commits
    • David Edmundson's avatar
      [effects] Fix build on old Qt · cb702215
      David Edmundson authored
      cb702215
    • David Edmundson's avatar
      [effects] Forward wheel events · aedc9e62
      David Edmundson authored
      Summary:
      Effects::checkInputWindowEvent(QWheelEvent *e) existed but it was not
      hooked up to anything and would never be called.
      
      This patch adds the relevant handling in the wayland filter, X filter so
      the existing method gets called.
      
      EffectQuickView is updated to handle wheel events.
      
      Test Plan:
      Used a ListView via an EffectQuickView in an effect.
      I can now scroll with the mouse.
      
      Reviewers: #kwin, zzag
      
      Reviewed By: #kwin, zzag
      
      Subscribers: zzag, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D25292
      aedc9e62
    • David Edmundson's avatar
      [libkwineffects] Construct correct mouse event when forwarding to QtQuickView · 20a202b1
      David Edmundson authored
      Summary:
      Original code (copied from Aurorae) created a QMouseEvent for
      QHoverEvents. Whilst it apparently worked, it's technically wrong.
      
      It's safer to have an explicit type check given we come from a downcast
      QEvent* and then build the correct event.
      
      Test Plan: Hovered some icons
      
      Reviewers: #kwin, zzag
      
      Reviewed By: #kwin, zzag
      
      Subscribers: zzag, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D25207
      20a202b1
    • David Edmundson's avatar
      [aurorae] Use shared implementation of QtQuick rendering · 6dfb7ba1
      David Edmundson authored
      Summary:
      Removes a tonne of complex code, means any future improvements to our
      QtQuick integration only need to be in one place.
      
      QML logic remains in Aurorae as it does complex things. All other
      aurorae specialties remain.
      
      Only functional difference is that we now use a shared GL context
      between window frames, which Plasma::FrameSVG will make use of.
      
      Test Plan:
      kcmshell5 kwindecoration
      ran some aurorrae themes on my kwin. Look the same as master
      
      Reviewers: #kwin, mart
      
      Reviewed By: mart
      
      Subscribers: mart, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D25206
      6dfb7ba1
    • Roman Gilg's avatar
      [platforms/x11] Never block on retrace, always present after paint · 8d137290
      Roman Gilg authored
      Summary:
      Compositing in X11 was done time shifted, meaning that we paint first, then
      wait one vblank interval length and present on prepareRenderingFrame the
      previous paint result. This is supposed to make sure we don't miss the vblank
      and in case of block till retrace be able to continue issuing commands and
      only shortly before next vblank present.
      
      This is counter-intuitiv, not how we do it on Wayland or even on MESA with X.
      The reason seems to be that the GLX backend was in the beginning written
      against Nvidia proprietary driver which needed this but nowadays even this
      driver defaults to non-blocking behavior on buffer swap.
      
      Therefore remove this legacy anomaly fully and directly present after paint.
      We then wait one refresh cycle and in the future can optimize this by delaying
      the paint and present till shortly before vsync.
      
      Test Plan: kwin_x11 tested on i915 and Nvidia proprietary driver.
      
      Reviewers: #kwin
      
      Subscribers: zzag, alexeymin, kwin
      
      Tags: #kwin
      
      Maniphest Tasks: T11071
      
      Differential Revision: https://phabricator.kde.org/D23514
      8d137290
    • Roman Gilg's avatar
      Remove vsync detection and configurability · b3a19f9e
      Roman Gilg authored
      Summary:
      Selecting not to vsync does not make sense for an X11 compositor. In the end
      we want clients to be able to present async if they want to but the compositor
      is supposed to send swaps with vsync to the XServer in order to not generate
      tearing artifacts.
      
      There was also a detection logic which did some questionable things in case
      vsync was not available. I don't think this is necessary at all since we can
      just always run a timer to present with or without vsync.
      
      Test Plan: kwin_x11 tested on i915.
      
      Reviewers: #kwin, zzag
      
      Subscribers: zzag, kwin
      
      Tags: #kwin
      
      Maniphest Tasks: T11071
      
      Differential Revision: https://phabricator.kde.org/D23511
      b3a19f9e
    • Roman Gilg's avatar
      [platforms/x11/standalone] Remove SGI swap control and video sync · 285adc19
      Roman Gilg authored
      Summary:
      Current hardware should suppport either GLX_EXT_swap_control or
      GLX_MESA_swap_control. To simplify code remove the usage of SGI extensions.
      
      Test Plan: kwin_x11 tested on i915.
      
      Reviewers: #kwin, zzag
      
      Reviewed By: #kwin, zzag
      
      Subscribers: davidedmundson, kwin
      
      Tags: #kwin
      
      Maniphest Tasks: T11071
      
      Differential Revision: https://phabricator.kde.org/D23510
      285adc19
    • Roman Gilg's avatar
      [platforms/x11] Remove triple buffering detection · ad892ce3
      Roman Gilg authored
      Summary:
      It is not clear what the advantage of triple buffering is for KWin. An X11
      compositor is meant to swap buffers once every monitor cycle. For that triple
      buffering is not necessary.
      
      The functionality is not maintained, does not reliably work as displayed by
      the existence of an environment variable to force some behavior, pollutes
      our code and every compositing-related problem that might be mitigated with
      triple buffering should find a simpler and more fitting solution with other
      means.
      
      There is one caveat which is if we shall block for retrace. We set it
      currently according to the result of the swap profiler and in the most common
      case with double buffering it is set to true. But on Nvidia systems this might
      be actual the wrong behavior. Instead of trying to work around this ignore
      the issue for now and move the overall architecture to something less complex
      by presenting after paint how we do it in the Wayland DRM backend and with
      double buffering on GLX (although this is at the moment also borken because
      we actually present then twice).
      
      Test Plan: kwin_x11 tested on i915.
      
      Reviewers: #kwin, zzag
      
      Reviewed By: #kwin, zzag
      
      Subscribers: zzag, fredrik, kwin
      
      Tags: #kwin
      
      Maniphest Tasks: T11071
      
      Differential Revision: https://phabricator.kde.org/D23504
      ad892ce3
  10. 12 Nov, 2019 2 commits
  11. 11 Nov, 2019 1 commit
  12. 10 Nov, 2019 1 commit
  13. 09 Nov, 2019 1 commit
  14. 06 Nov, 2019 2 commits
    • David Edmundson's avatar
      [wayland] Fix sha check of filtered applications · 18a4ded3
      David Edmundson authored
      Summary:
      We have a sha check rather than just readlink as an app in a mount
      namespace could have an executable with the same path as an exectuable
      on the host system that we trust.
      
      This became overly complicated to solve an issue that didn't exist.
      sha(/proc/PID/exe) does resolve to what is currently running even if
      sha(readlink(/proc/PID/exe) does not as /proc is magic.
      
      This patch compares the root file system as kwin sees it to the running
      exe.
      
      See later comments on D22571
      
      Reviewers: fvogt
      
      Reviewed By: fvogt
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D25169
      18a4ded3
    • Script Kiddy's avatar
      SVN_SILENT made messages (.desktop file) - always resolve ours · aa3a1684
      Script Kiddy authored
      In case of conflict in i18n, keep the version of the branch "ours"
      To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
      aa3a1684
  15. 05 Nov, 2019 2 commits