1. 24 Apr, 2018 2 commits
    • Aleix Pol Gonzalez's avatar
      Don't try to filter null key combinations · 4403e86a
      Aleix Pol Gonzalez authored
      Summary:
      When using composite key combinations, kwin would do random weird
      actions when the first key was pressed (e.g. ` key). This makes sure we
      are not trying to match.
      
      BUG: 390110
      
      Reviewers: #kwin, graesslin
      
      Reviewed By: #kwin, graesslin
      
      Subscribers: graesslin, kwin, #kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D12416
      4403e86a
    • Nerdopolis Turfwalker's avatar
      fb_backend_qpainter_backend: Use logind to determine if the session is active. · b2ed73cd
      Nerdopolis Turfwalker authored
      Summary: TTYs are only available for seat0, so when starting a framebuffer kwin on seat1, it never draws, because drawing is always suspended, because it is being treated as not active
      
      Test Plan: The framebuffer backend draws on seat1, and /dev/fb1 and when I switch back to my Weston greeter, (when it's also using the frame buffer,) it doesn't try to draw on top of it.
      
      Reviewers: #kwin, graesslin
      
      Reviewed By: #kwin, graesslin
      
      Subscribers: davidedmundson, rkflx, graesslin, kwin, #kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D9574
      b2ed73cd
  2. 23 Apr, 2018 3 commits
  3. 22 Apr, 2018 6 commits
    • Алексей Шилин's avatar
      Improve tooltips behavior · 5a14b6a6
      Алексей Шилин authored
      Summary:
      Window buttons tooltips used to appear on hover immediately. As
      the result, they mostly appeared when not needed e.g. when user
      was closing a window, or when the mouse pointer slightly touched
      a button while being moved elsewhere.
      
      This commit changes the tooltips behavior to WakeUp-FallAsleep
      approach used by Widgets.
      
      BUG: 392765
      FIXED-IN: 5.13
      
      Reviewers: #kwin, graesslin, broulik, #plasma
      
      Reviewed By: #kwin, graesslin, #plasma
      
      Subscribers: zzag, broulik, kwin, hein
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D12404
      5a14b6a6
    • Nerdopolis Turfwalker's avatar
      main_wayland: Don't hardcode /dev/fb0 anymore · e737a619
      Nerdopolis Turfwalker authored
      Summary: Now that the framebuffer device is queried, don't assume that the framebuffer device is /dev/fb0
      
      Test Plan:
      Add /dev/fb1 to seat1, start kwin with the framebuffer backend on seat1, verify with the stdio/stderr output it selected /dev/fb1.
      Make sure manual device selection still works
      
      There is an issue right now where /dev/fb1 is all black, if it is both selected manually or automatically. I think I might need see if the VSCREENINFO or FSCREENINFO framebuffer settings are changing or something (I had to do something similar to this to Weston's fbdev backend as well)
      
      If I do find a solution, I'll send one separate from this series
      
      Reviewers: #kwin, graesslin
      
      Reviewed By: #kwin, graesslin
      
      Subscribers: zzag, rkflx, graesslin, kwin, #kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D9557
      e737a619
    • Nerdopolis Turfwalker's avatar
      fb_backend: use new udev function to detect framebuffer devices, if one is not set · 8321453f
      Nerdopolis Turfwalker authored
      Reviewers: #kwin, graesslin
      
      Reviewed By: #kwin, graesslin
      
      Subscribers: rkflx, graesslin, anthonyfieroni, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D9556
      8321453f
    • Nerdopolis Turfwalker's avatar
      fb_backend: fix warning · 3c745bb5
      Nerdopolis Turfwalker authored
      Summary: The warning that the format is unknown was being logged unconditionally
      
      Reviewers: #kwin, bshah
      
      Reviewed By: #kwin, bshah
      
      Subscribers: rkflx, graesslin, cfeck, kwin, #kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D9567
      3c745bb5
    • Nerdopolis Turfwalker's avatar
      libinput/connection: Don't hardcode seat0 anymore · ddda5249
      Nerdopolis Turfwalker authored
      Summary: use a new function to get the logind, instead of assuming seat0
      
      Test Plan: kwin still starts
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: davidedmundson
      
      Subscribers: davidedmundson, rkflx, graesslin, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D9552
      ddda5249
    • Script Kiddy's avatar
      SVN_SILENT made messages (.desktop file) - always resolve ours · e6835683
      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"
      e6835683
  4. 20 Apr, 2018 5 commits
    • Roman Gilg's avatar
      Add environment variable to force sw cursor · 7e831df4
      Roman Gilg authored
      Summary:
      For debugging purposes add an environment variable to
      force use of software cursor.
      
      Test Plan: Manual test with and without setting the variable.
      
      Reviewers: #kwin, garg, davidedmundson
      
      Reviewed By: davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D12322
      7e831df4
    • Vlad Zahorodnii's avatar
      [effects/presentwindows] Fix -Wint-in-bool-context · 48d30fa4
      Vlad Zahorodnii authored
      Summary:
      Compiler: GCC 7.3.1
      Distro: Arch Linux
      
      Warning:
      
      ```
      /home/vlad/KDE/src/kde/workspace/kwin/effects/presentwindows/presentwindows.cpp: In member function ‘void KWin::PresentWindowsEffect::rearrangeWindows()’:
      /home/vlad/KDE/src/kde/workspace/kwin/effects/presentwindows/presentwindows.cpp:970:45: warning: ‘*’ in boolean context, suggest ‘&&’ instead [-Wint-in-bool-context]
                       m_gridSizes[screen].columns * m_gridSizes[screen].rows &&
      ```
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: davidedmundson
      
      Subscribers: davidedmundson, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D12209
      48d30fa4
    • Vlad Zahorodnii's avatar
      [effects/minimizeanimation] Don't reset timeline · 3fcce012
      Vlad Zahorodnii authored
      Summary:
      Resetting timeline while animating a window causes some visual "glitches",
      see videos below. Even though we can't use `QTimer::toggleDirection`,
      that's safe to delete code which resets timeline because `prePaintScreen`
      figures out correct direction of the timeline.
      
      Before
      
      {F5809862, layout=center, size=full}
      
      After
      
      {F5809898, layout=center, size=full}
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D12254
      3fcce012
    • Vlad Zahorodnii's avatar
      [effects/magiclamp] Don't reset timeline · 913f92ae
      Vlad Zahorodnii authored
      Summary:
      Resetting timeline while animating a window causes some visual "glitches",
      see videos below. Even though we can't use `QTimer::toggleDirection`,
      that's safe to delete code which resets timeline because `prePaintScreen`
      figures out correct direction of the timeline.
      
      Before
      
      {F5809835, layout=center, size=full}
      
      After
      
      {F5809850, layout=center, size=full}
      
      Test Plan:
      * Set duration to 5000
      * Furiously click an icon in the task manager
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D12253
      913f92ae
    • Vlad Zahorodnii's avatar
      Fix unused param warnings · 75fff176
      Vlad Zahorodnii authored
      Summary:
      Compiler: GCC 7.3.1
      Distro: Arch Linux
      
      Compiler warnings:
      
      ```
      /home/vlad/KDE/src/kde/workspace/kwin/effects/blur/blur.cpp: In member function ‘void KWin::BlurEffect::upscaleRenderToScreen(KWin::GLVertexBuffer*, int, int, QMatrix4x4, QRect, QPoint)’:
      /home/vlad/KDE/src/kde/workspace/kwin/effects/blur/blur.cpp:677:129: warning: unused parameter ‘windowShape’ [-Wunused-parameter]
       void BlurEffect::upscaleRenderToScreen(GLVertexBuffer *vbo, int vboStart, int blurRectCount, QMatrix4x4 screenProjection, QRect windowShape, QPoint windowPosition)
                                                                                                                                       ^~~~~~~~~~~
      ```
      
      ```
      /home/vlad/KDE/src/kde/workspace/kwin/main_wayland.cpp: In function ‘void KWin::{anonymous}::gainRealTime(KWin::RealTimeFlags)’:
      /home/vlad/KDE/src/kde/workspace/kwin/main_wayland.cpp:95:56: warning: unused parameter ‘flags’ [-Wunused-parameter]
       void gainRealTime(RealTimeFlags flags = RealTimeFlags::DontReset)
      ```
      
      Reviewers: #kwin, davidedmundson
      
      Reviewed By: davidedmundson
      
      Subscribers: anemeth, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D12208
      75fff176
  5. 18 Apr, 2018 1 commit
    • David Edmundson's avatar
      Clean up kwindecoration KCM qml code · 52e42df9
      David Edmundson authored
      Summary:
      Remove all instances of anchors in a layout.
      This is undefined behaviour (even if it happens to work) and results in
      a warning in 5.11.
      
      Resulted in some shuffling about, but generally cleaner code.
      
      Visually looks the same
      
      Test Plan:
      Added some buttons
      Dragged and dropped some buttons out of the top header
      Still got my "drop here to remove button" hint with the same opacities
      
      Reviewers: #plasma, broulik
      
      Reviewed By: #plasma, broulik
      
      Subscribers: kwin, #kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D12284
      52e42df9
  6. 15 Apr, 2018 1 commit
    • Vlad Zahorodnii's avatar
      [platforms/virtual] Make VirtualOutput non-copyable · c4478888
      Vlad Zahorodnii authored
      Summary:
      Qt objects are treated as identities so remove the copy constructor and
      an assignment operator. See, http://doc.qt.io/qt-5/object.html#identity-vs-value
      
      IIRC some Qt objects(like QImage) have copy constructor for implicit data sharing,
      but VirtualOutput doesn't have anything to share.
      
      Also, it [this patch] fixes a compiler warning:
      
      ```
      /home/vlad/KDE/src/kde/workspace/kwin/plugins/platforms/virtual/virtual_output.cpp: In copy constructor ‘KWin::VirtualOutput::VirtualOutput(const KWin::VirtualOutput&)’:
      /home/vlad/KDE/src/kde/workspace/kwin/plugins/platforms/virtual/virtual_output.cpp:30:1: warning: base class ‘class QObject’ should be explicitly initialized in the copy constructor [-Wextra]
       VirtualOutput::VirtualOutput(const VirtualOutput &o)
       ^~~~~~~~~~~~~
      ```
      
      Reviewers: #kwin, romangg
      
      Reviewed By: #kwin, romangg
      
      Subscribers: michaelh, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D12214
      c4478888
  7. 06 Apr, 2018 1 commit
  8. 05 Apr, 2018 2 commits
    • Nerdopolis Turfwalker's avatar
      udev: Only handle devices from the current seat · 99376d38
      Nerdopolis Turfwalker authored
      Summary: This prevents the firstFound device, or any device detected by UdevEnumerate::find that is not from the same seat kwin is running under, from being handled
      
      Test Plan:
      made sure that kwin starts on a default udev (assuming a blank ID_SEAT attribute on a device means the device is on seat0)
      
      added /dev/dri/card1 to seat1 and /dev/dri/card0 to seat0.
      Start kwin with the drm-backend on seat0 and seat1, and make sure it starts on both instances
      
      Reviewers: #kwin, graesslin
      
      Reviewed By: #kwin, graesslin
      
      Subscribers: rkflx, graesslin, kwin, #kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D9553
      99376d38
    • Nerdopolis Turfwalker's avatar
      udev: Add the ability to query the current framebuffer. · 7801afdd
      Nerdopolis Turfwalker authored
      Summary:
      This adds the ability for kwin's udev handler to detect a usable framebuffer device.
      This is very similar to the function that queries the primary GPU.
      
      Reviewers: #kwin, graesslin
      
      Reviewed By: #kwin, graesslin
      
      Subscribers: rkflx, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D9554
      7801afdd
  9. 04 Apr, 2018 1 commit
    • Alexey Min's avatar
      drm backend: choose correct EGL config with mesa-18 · d318cb3b
      Alexey Min authored
      Summary:
      Do not blindly select first EGL config from returned list, but choose the one that matches GBM surfaces, that will be created later.
      GBM surfaces are created with GBM_FORMAT_XRGB8888 format, so choose the config that matches it.
      With wrong format EglGbmBackend::resetOutput() will later fail with error EGL_BAD_MATCH.
      
      Test Plan: Compile, run startplasmacompositor. Verify that OpenGL compositing is used, either by kwin debug console, or by kwin support information.
      
      Reviewers: graesslin, davidedmundson, #kwin, #plasma_on_wayland, bshah
      
      Reviewed By: davidedmundson
      
      Subscribers: zzag, kwin, #kwin
      
      Tags: #kwin, #plasma_on_wayland
      
      Differential Revision: https://phabricator.kde.org/D11758
      d318cb3b
  10. 31 Mar, 2018 2 commits
  11. 30 Mar, 2018 1 commit
  12. 29 Mar, 2018 3 commits
    • Martin Flöser's avatar
      Merge branch 'Plasma/5.12' · e54b0ef7
      Martin Flöser authored
      e54b0ef7
    • Martin Flöser's avatar
      Ensure _NET_CURRENT_DESKTOP is set on startup · 42054960
      Martin Flöser authored
      Summary:
      Seems to have regressed in Plasma 5.12 due to code reordering. Now the
      property is explicitly updated once the NETRootInfo is created.
      
      BUG: 391034
      FIXED-IN: 5.12.5
      
      Test Plan:
      Test case exposing the problem added. Fails without the patch,
      succeeds with the patch.
      
      Reviewers: #kwin, #plasma
      
      Subscribers: plasma-devel, kwin
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D10836
      42054960
    • Eike Hein's avatar
      Request a high-priority EGL contexts · 2c26215d
      Eike Hein authored
      Summary:
      This patch implements using EGL_IMG_context_priority to request
      high-priority rendering contexts if the extension is available.
      
      EGL_IMG_context_priority is currently used in this fashion by
      e.g. Android's SurfaceFlinger (RenderEngine.cpp) and libweston
      (gl-renderer.c) and seems promising given this widespread
      acceptance.
      
      Reviewers: #kwin, graesslin, romangg, davidedmundson
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D11572
      2c26215d
  13. 28 Mar, 2018 1 commit
    • Nate Graham's avatar
      Make the Window Decoration themes' Configure buttons more obvious · 7cde4b10
      Nate Graham authored
      Summary:
      As documented via bug reports and online support requests, many users have difficulty learning that window decorations are customizable, because they don't notice or understand the little icon-only button in the bottom-left corner of each theme preview.
      
      This patch centers the buttons and adds text including the theme name , making it obvious what the buttons are for.
      
      Also, clicking on one of the buttons now automatically selects its corresponding theme, because configuring an un-selected theme doesn't make a lot of sense and could lead to user confusion once this UI is more obvious and widely-used.
      
      BUG: 390245
      
      Test Plan:
      {F5761897}
      
      - Clicked on the configure buttons; each one selects its parent theme and opens its configuration dialog
      
      Reviewers: #kwin, #plasma, #vdg, cfeck, graesslin
      
      Reviewed By: #kwin, #plasma, graesslin
      
      Subscribers: richardbowen, zzag, kigwana, rkflx, matheusm, fabianr, abetts, Fuchs, graesslin, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D11201
      7cde4b10
  14. 27 Mar, 2018 3 commits
  15. 26 Mar, 2018 7 commits
  16. 25 Mar, 2018 1 commit
    • Oleg `Kanedias` Chernovskiy's avatar
      GBM remote access support for KWin · 4d46edd7
      Oleg `Kanedias` Chernovskiy authored
      Summary:
      Implements a KWayland protocol to pass GBM fd from KWin to KRfb and
      addictions to relevant projects from both sides.
      
      Note that this patch does not affect default behaviour of mentioned projects. It can be used
      only with KWIN_REMOTE=1 in env from KWin side and with preferredFrameBufferPlugin=gbm in krfbrc from
      KRfb side. In all other aspects app behaviour remains unchanged.
      
      Test Plan: Launched KWin in Wayland mode, launched KRfb in it, launched KRDC on a laptop, connected in read-only mode, observed a correctly retrieved desktop with Krfb window
      
      Reviewers: graesslin, davidedmundson, romangg, #kwin
      
      Reviewed By: davidedmundson, romangg, #kwin
      
      Subscribers: kossebau, jgrulich, romangg, ngraham, alexeymin, aacid, kwin, #kwin, davidedmundson, plasma-devel
      
      Tags: #plasma_on_wayland, #kwin
      
      Maniphest Tasks: T5653, T7785
      
      Differential Revision: https://phabricator.kde.org/D1230
      4d46edd7