1. 16 Aug, 2016 2 commits
    • Martin Flöser's avatar
      [autotests/integration] Test case for screen locked with mod-only-shortcuts · 440d49da
      Martin Flöser authored
      Currently expected failures as modifier only shortcuts don't check
      for locked screen yet.
      440d49da
    • Martin Flöser's avatar
      [wayland] Unset focused keyboard surface when handling key event internally · 4651aa1d
      Martin Flöser authored
      Summary:
      So far when KWin intercepted a key event a leave was not sent to the
      Wayland surface currently having keyboard focus. This could result in
      the Wayland application to start repeating keys. E.g.
      
      1. application gets key press event
      2. This triggers an internal window to show
      3. key release goes to KWin internal window
      4. application starts to repeat key as there is no release
      
      With this change whenever KWin intercepts the key event e.g. due to
       * internal window
       * Effects grabbing key event
       * Tabbox
      
      the focused keyboard surface is set to null, thus triggering a leave
      event and the client not starting to repeat the event.
      
      Reviewers: #kwin, #plasma_on_wayland
      
      Subscribers: plasma-devel, kwin
      
      Tags: #plasma_on_wayland, #kwin
      
      Differential Revision: https://phabricator.kde.org/D2402
      4651aa1d
  2. 15 Aug, 2016 11 commits
    • Martin Flöser's avatar
      Trigger global shortcuts also on key-repeat · 1111b9c9
      Martin Flöser authored
      Summary:
      Restores feature parity with X11. Global shortcuts need to trigger
      also for repeat events. An example is the volume key or screen
      brightness.
      
      For other shortcuts like showing yakuake it does not make sense to
      trigger on repeat. Thus a long term solution is to add a flag to
      global shortcuts whether the key should trigger on repeat.
      
      BUG: 366608
      
      Reviewers: #kwin, #plasma_on_wayland
      
      Subscribers: plasma-devel, kwin
      
      Tags: #plasma_on_wayland, #kwin
      
      Differential Revision: https://phabricator.kde.org/D2413
      1111b9c9
    • 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
    • Martin Flöser's avatar
      [autotests/integration] Fix TestLibinputDevice::testName · bfb2094c
      Martin Flöser authored
      sysName may not be empty. Set a different name.
      bfb2094c
    • Martin Flöser's avatar
      [autotests/libinput] Set a valid sysName by default · a9ac2739
      Martin Flöser authored
      The autotests are failing on build.kde.org due to the generated DBus
      object path not being valid. This might be due to sysName having been
      empty by default.
      a9ac2739
    • Martin Flöser's avatar
      [libinput] Expose all input devices through DBus · ab5d3142
      Martin Flöser authored
      Summary:
      The Connection exposes a new service called org.kde.KWin.InputDevice
      and every Device registers an own object exposing all properties.
      
      This allows an external configuration tool to change the behavior of
      the devices at runtime. E.g. to test configuration settings.
      
      Reviewers: #kwin, #plasma_on_wayland
      
      Subscribers: plasma-devel, kwin
      
      Tags: #plasma_on_wayland, #kwin
      
      Differential Revision: https://phabricator.kde.org/D2407
      ab5d3142
    • Martin Flöser's avatar
      [wayland] Properly implement minimize of ShellClient · 8bbd53a7
      Martin Flöser authored
      Summary:
      We need to call Workspace::clientHidden when minimizing. Otherwise
      Workspace doesn't update the active client and the now minimized
      window is still active.
      
      BUG: 366634
      
      Test Plan:
      Test case works now and also tested in nested setup that
      active window changes.
      
      Reviewers: #kwin, #plasma_on_wayland
      
      Subscribers: plasma-devel, kwin
      
      Tags: #plasma_on_wayland, #kwin
      
      Differential Revision: https://phabricator.kde.org/D2410
      8bbd53a7
    • Martin Flöser's avatar
      Don't trigger modifier only shortcuts if pointer interaction · bd58d779
      Martin Flöser authored
      Summary:
      If the user clicked a pointer button or scrolled a pointer axis the
      held modifier was most likely intended to modify the pointer event.
      Thus the modifier only shortcut should not be triggered.
      
      Reviewers: #kwin, #plasma_on_wayland
      
      Subscribers: plasma-devel, kwin
      
      Tags: #plasma_on_wayland, #kwin
      
      Differential Revision: https://phabricator.kde.org/D2435
      bd58d779
    • Martin Flöser's avatar
      Merge branch 'Plasma/5.7' · 3a730fa5
      Martin Flöser authored
      3a730fa5
    • Martin Flöser's avatar
      Select also raw button press/release in XInput2 based polling · 71c996fe
      Martin Flöser authored
      Summary:
      The mouse polling is also used to detect mouse button press/release
      events. This is used e.g. by the MouseClickEffect. The XInput2 filter
      only selected for Raw Motion events which means mouse button events
      are missed in case it's not combined with a motion.
      
      This change makes the input filter also select for raw button press
      and release events. To support this the X11EventFilter needed to
      be adjusted to support multiple generic event types to filter for.
      
      BUG: 366612
      FIXED-IN: 5.7.4
      
      Reviewers: #kwin, #plasma
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D2406
      71c996fe
    • Martin Flöser's avatar
      Turn ScreenLockerWatcher into a KWIN_SINGLETON · 490eaadb
      Martin Flöser authored
      It's created together with input, so that the input mechanismn already
      has a way to check whether screen is locked.
      
      Effects doesn't hold a member variable any more and instead uses the
      singleton instance.
      490eaadb
    • Martin Flöser's avatar
      Split ScreenLockerWatcher into dedicated source files · d2a3a108
      Martin Flöser authored
      Being able to monitor whether the screen is locked is useful not only
      to the effects system but overall in KWin. Thus to make it possible to
      use it from more locations as a first step it's moved into dedicated
      source files.
      d2a3a108
  3. 14 Aug, 2016 1 commit
  4. 13 Aug, 2016 3 commits
  5. 12 Aug, 2016 10 commits
  6. 11 Aug, 2016 7 commits
  7. 10 Aug, 2016 6 commits
    • Martin Flöser's avatar
      Support triggering application launcher through screenedge · 4a16bbbe
      Martin Flöser authored
      Summary:
      Now that we have a dedicated dbus call to show the application launcher
      we can also expose it through the screenedges.
      
      Reviewers: #kwin, #plasma
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D2394
      4a16bbbe
    • Martin Flöser's avatar
      Force windows of type desktop to be opaque · 7bca270f
      Martin Flöser authored
      Summary:
      Plasmashell's desktop windows are RGBA which forces the compositor to
      perform blending and render the background. That is absolutely pointless
      as there is no window behind the desktop window it could blend to. All it
      does is destroying KWin's more optimized code path and forcing additional
      rendering which will never be visible (including shader push/pop).
      
      With this change KWin forces desktop windows (both X11 and Wayland) to
      be considered as opaque by setting the depth to 24. Thus blending is
      disabled and the background is not rendered.
      
      Test Plan:
      Verified with apitrace that KWin goes in the opaque rendering
      path for desktop windows.
      
      Reviewers: #kwin, #plasma
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D2382
      7bca270f
    • Martin Flöser's avatar
      Launch Plasma's launcher menu on meta modifier only shortcut by default · 9b30cfef
      Martin Flöser authored
      Summary: Invokes org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.activateLauncherMenu.
      
      Reviewers: #plasma, #kwin, hein
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D2357
      9b30cfef
    • Martin Flöser's avatar
      Cache the clientSize in DecoratedClientImpl · eed4bf32
      Martin Flöser authored
      Summary:
      So far whenever the window geometry changed the widthChanged and
      heightChanged signals were emitted even if they did not change.
      E.g. while moving a window this resulted in the signal being emitted
      after every step, although from decoration point of view nothing
      changed.
      
      The decoration performed costly tasks like re-layout the window buttons.
      
      With this change the client size is cached and the widthChanged signal
      is only emitted if the width actually changed. Same for heightChanged.
      
      This results in the decoration only re-layouting the buttons if the
      window is resized horizontally. All other geometry changes no longer
      result in a re-layout.
      
      Reviewers: #kwin, #plasma
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D2389
      eed4bf32
    • Martin Flöser's avatar
      Don't trigger decoration repaint when ShellClient geometry changes · 089059ab
      Martin Flöser authored
      The geometry change will trigger an update through the signals on the
      decoration anyway. Thus a dedicated repaint is not needed.
      089059ab
    • Martin Flöser's avatar
      Only focusToNull when activating a ShellClient · 09ba49e4
      Martin Flöser authored
      ShellClient::doSetActive calls into focusToNull to deactivate active
      windows on X11. But this should only be done when activating a
      ShellClient. When deactivating a ShellClient the focusToNull can
      result in an activated X-client to lose activation.
      
      Thus this change ensures that focusToNull is only performed for a
      now active ShellClient.
      
      Reviewed-By: bshah
      09ba49e4