1. 30 Sep, 2017 1 commit
  2. 29 Sep, 2017 5 commits
    • Martin Flöser's avatar
      [platform/virtual] Prefer vgem device over render node · d29d181e
      Martin Flöser authored
      If the system has a virtual device and KWin is run on virtual platform
      we can assume the user intended that KWin should use the virtual device
      and not a render node of the system.
      
      This might fix the random test failures on build.kde.org (T6546).
      d29d181e
    • Martin Flöser's avatar
      Use real-time scheduling policy for kwin_wayland · 7c8003f7
      Martin Flöser authored
      Summary:
      The base idea behind this change is to keep the system responsive no
      matter what other processes do. All input and rendering needs to go
      through the windowing system, so keeping it responsive is important.
      
      Currently KWin competes with all other processes for resources and this
      can render the system unusable. Consider some processes running amok. In
      this case the user might not be able to easily close the applications as
      KWin does not get the cpu time to perform the input tasks requested by
      the user.
      
      Or in the case of playing a demanding game it is important that KWin
      gets scheduled to forward the pointer input events. The user doesn't
      want that the game (or another process) wins against the windowing
      sytem.
      
      The disadvantage is that KWin always wins against other processes with
      real time scheduling. This could result in KWin running amok stalling
      the system. On the other hand this is no change to the current situation
      as if KWin runs amok the sytem is unusable.
      
      The change uses libcap to set CAP_SYS_NICE on kwin_wayland executable.
      KWin_wayland on start sets the scheduling policy to SCHED_RR with the
      lowest possible priority. Thus any other SCHED_RR process will win
      against KWin. So real time processes are not affected by this change!
      
      After adjusting the scheduling (which requires CAP_SYS_NICE) KWin drops
      this capability again.
      
      Test Plan:
      Verified that KWin adjusts the scheduler, that it is not passed
      to child processes, that the capability gets dropped and not passed to
      child processes.
      
      Reviewers: #kwin, #plasma
      
      Subscribers: plasma-devel, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D7757
      7c8003f7
    • David Edmundson's avatar
      Merge branch 'Plasma/5.11' · 2a34fdde
      David Edmundson authored
      2a34fdde
    • David Edmundson's avatar
      Don't recreate kwayland blurmanager on screen size changes · b3020d6f
      David Edmundson authored
      Summary:
      Instead of calling reconfigure() on screen size changes, which deletes
      and recreates the effect, we can just update the one texture that's mapped to
      the screen size.
      
      ---
      
      From the wayland commit.
      
      >What surprises me is that BlurManager recreates for Output changes.
      >That sounds like a bug in KWin (or an area which could be improved).
      
      I had thought the same and wrote this (though wanted to have kwayland fixed first)
      
      Test Plan:
      Logged in and out (my screen resizes on startup due to scaling)
      Tested on my X machine by turning a screen off. Nothing broke, plasma
      panels looked the same.
      
      Note: Eike tried this patch last week and claimed kwin still crashed.
      We don't have a backtrace so it could have been something unrelated,
      applied wrong or that he was deliberately lying to wind me up.
      
      Reviewers: #plasma, graesslin
      
      Reviewed By: #plasma, graesslin
      
      Subscribers: graesslin, plasma-devel, kwin, #kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D7877
      b3020d6f
    • David Edmundson's avatar
      Don't reload background contrast effect on screen resize · 55d21942
      David Edmundson authored
      Summary:
      Similar to the Blur patch. Arguably rven less reason as this doesn't
      have a texture the size of the workspace.
      
      We don't need to delete and recreate the entire effect every time the
      screen changes; This deletes the wayland global which causes quite a bit
      of extra work for the clients.
      
      Test Plan:
      Changed resolution under X, and scale under wayland
      Panel looked the same and nothing exploded
      
      Reviewers: #plasma, graesslin
      
      Reviewed By: #plasma, graesslin
      
      Subscribers: graesslin, plasma-devel, kwin, #kwin
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D7937
      55d21942
  3. 28 Sep, 2017 1 commit
  4. 27 Sep, 2017 2 commits
    • Martin Flöser's avatar
      Drop the ObscurringWindow functionality on desktop switching · 38ce05ea
      Martin Flöser authored
      Summary:
      The ObscurringWindows are a hack to make it more unlikely that the
      desktop wallpaper becomes visible while switching desktops. This was
      introduced in 2001 with SVN revision 90111
      (git d194f743).
      
      In 2001 desktop switching was probably a costly action where it was not
      possible to just reorder the desktop in one frame. Nowadays we use
      mostly compositing and with compositing the ObscurringWindows are
      already disabled. But even in the case that no compositing is used I
      consider it as very unlikely that the desktop becomes visible during the
      switching. Given that I think it's time to remove this legacy solution.
      
      Test Plan: Compiles
      
      Reviewers: #kwin, #plasma
      
      Subscribers: plasma-devel, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D7965
      38ce05ea
    • Script Kiddy's avatar
      SVN_SILENT made messages (.desktop file) - always resolve ours · 475af42e
      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"
      475af42e
  5. 26 Sep, 2017 2 commits
    • Martin Flöser's avatar
      Merge branch 'Plasma/5.11' · b437a6cb
      Martin Flöser authored
      b437a6cb
    • Martin Flöser's avatar
      [tabbox] Create X11Filter on establishKeyboardGrab · bc88f847
      Martin Flöser authored
      Summary:
      Creating the X11Filter directly on startup caused a regression as the
      filter got too early in the chain and stole events from the
      XInputIntegrationFilter. We don't need the filter all the time, but only
      when we have established the TabBox grab. Likewise we can destroy the
      filter again when releasing the TabBox grab. So it's much more
      encapsulated now.
      
      BUG: 385032
      
      Test Plan: Only compile tested, I'm on Wayland
      
      Reviewers: #kwin, #plasma
      
      Subscribers: plasma-devel, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D7997
      bc88f847
  6. 25 Sep, 2017 4 commits
    • Martin Flöser's avatar
      Fix regression concerning popup handling for wl_shell_surface · cd97c049
      Martin Flöser authored
      Regression introduced due to making popup a member variable and this
      is not ready in the init method. So connect to the rescue.
      
      Fixes failing PointerInputTest.
      cd97c049
    • Martin Flöser's avatar
      Change default argument of grabXKeyboard to XCB_WINDOW_NONE · a264c2b5
      Martin Flöser authored
      Summary:
      The implementation of grabXKeyboard checks whether the passed in arg
      is XCB_WINDOW_NONE and sets the arg to rootWindow. Thus we don't need
      to have rootWindow as the default argument, but can have none as the
      default arg.
      
      Test Plan: Compiles, test which uses the default arg still passes
      
      Reviewers: #kwin, #plasma
      
      Subscribers: plasma-devel, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D7857
      a264c2b5
    • Martin Flöser's avatar
      Add a dedicated X11EventFilter for forwarding property events to the effect system · 0ed60959
      Martin Flöser authored
      Summary:
      So far both Workspace and Toplevel emitted signals for every property
      notify event on the root window and the respective Toplevel windows. The
      signals were only used in EffectsHandlerImpl to forward to the effect
      system in case the property which changed is registered by an effect.
      
      This change introduces a dedicated event filter for this which is only
      created in EffectsHandlerImpl in case an X11 connection is available. It
      supports a restart of the X11 system.
      
      The signals used so far are removed from Workspace and Toplevel.
      
      Reviewers: #kwin, #plasma
      
      Subscribers: plasma-devel, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D7853
      0ed60959
    • David Edmundson's avatar
      XdgV6 - Kwin side · e492f9e2
      David Edmundson authored
      Summary:
      Adds XDGV6 support for the kwin side.
      
      Popup placement support is limited to the stuff v5 had,
      a simple offset, rather than the awesome new positioner.
      
      But Qt doesn't make use of it yet either.
      Also ideally we should do all the positioning before sending the first
      configure, but again Qt doesn't actually do anything with that anyway.
      
      Also integrate pinging clients
      
      Test Plan: gtk3-demo  works nicely.
      
      Reviewers: #plasma, graesslin, mart
      
      Reviewed By: #plasma, graesslin
      
      Subscribers: mart, graesslin, kwin, plasma-devel, #kwin
      
      Tags: #plasma
      
      Differential Revision: https://phabricator.kde.org/D6591
      e492f9e2
  7. 24 Sep, 2017 7 commits
  8. 23 Sep, 2017 5 commits
  9. 22 Sep, 2017 4 commits
  10. 21 Sep, 2017 3 commits
  11. 20 Sep, 2017 3 commits
  12. 19 Sep, 2017 3 commits
    • Martin Flöser's avatar
      Support mapping QKeyEvent to xkb_keysym_t · a17c85a9
      Martin Flöser authored
      Summary:
      This is needed in virtual keyboard and also used KKeyServer so far. With
      this change it is moved to new API provided in Xkb. The new translation
      map is now also used for the direction from Qt::Key +
      Qt::KeyboardModifier to xkb_keysym_t.
      
      New implementation is supported by a new test case covering the same
      combinations as in the existing direction.
      
      Reviewers: #kwin, #plasma
      
      Subscribers: plasma-devel, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D7356
      a17c85a9
    • Jesse Pullinen's avatar
      Fix TouchEvent::id() returning -1, fixes a crash · 0eba3f3c
      Jesse Pullinen authored
      Summary:
      Libinput returns -1 when calling libinput_event_touch_get_slot on an event
      from a single-touch touchscreen. The returned value is used in
      DecorationEventFilter to determine the touch which is acting on it. The value -1
      is used to signify that the decoration is not being acted on. Thus when
      releasing the touch, it checks whether it was being dragged, and as it thinks
      it isn't, it doesn't handle it and the decoration is still being dragged.
      Clicking on the decoration then crashes kwin.
      
      Test Plan: Move a window by dragging the decoration with a single-touch touchscreen.
      
      Reviewers: #kwin, graesslin
      
      Reviewed By: #kwin, graesslin
      
      Subscribers: graesslin, kwin, #kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D7854
      0eba3f3c
    • Script Kiddy's avatar
      SVN_SILENT made messages (.desktop file) - always resolve ours · a5e523ca
      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"
      a5e523ca