1. 06 Oct, 2016 1 commit
  2. 05 Oct, 2016 4 commits
    • Martin Flöser's avatar
      [autotests/integration] Add test case for global shortcuts with Fx · 974abbfa
      Martin Flöser authored
      New test which tries to trigger Alt+F3 which does not work due to the
      behavior how xkbcommon calculates consumed modifers. The combination
      Ctrl+Alt+F3 generates a keysym (vt switching) so just pressing F3
      already consumes ctrl and alt modifier.
      
      For more information see:
       * https://github.com/xkbcommon/libxkbcommon/issues/17
       * https://bugs.freedesktop.org/show_bug.cgi?id=92818
      
      CCBUG: 368989
      974abbfa
    • Martin Flöser's avatar
      [autotest/integration] Enable test mode for QStandardPaths · 03b8477f
      Martin Flöser authored
      By enabling test mode for QStandardPath kglobalaccel doesn't modify the
      user's global shortcuts any more.
      03b8477f
    • Martin Flöser's avatar
      Add support for resize only borders on Wayland · fb59b054
      Martin Flöser authored
      Summary:
      This change adds support for resizing outside the window decoration
      (e.g. setting borders to NoSide or None).
      
      To support this a new Toplevel::inputGeometry() -> QRect method is
      added which exposes the geometry adjusted by the margins provided by
      the decoration. This is checked in InputRedirection when finding a
      Toplevel at a given position. The logic for figuring out whether the
      event should go to the decoration or the window already handled the
      situation correctly, so no further changes are needed.
      
      BUG: 364607
      FIXED-IN: 5.8.1
      
      Reviewers: #kwin, #plasma_on_wayland
      
      Subscribers: plasma-devel, kwin
      
      Tags: #plasma_on_wayland, #kwin
      
      Differential Revision: https://phabricator.kde.org/D2787
      fb59b054
    • Martin Flöser's avatar
      Destroy DebugConsole on hide of QWindow · fd6e4bb0
      Martin Flöser authored
      Summary:
      The quit button in the DebugConsole is connected to deleteLater on the
      DebugConsole. This is to clean up resources like the input event filter
      which is rather expensive to have running.
      
      When closed through the window decoration the DebugConsole window only
      got hidden but not destroyed. Resulting in the input filter to continue
      processing.
      
      This change ensures that the DebugConsole gets properly destroyed once
      the window gets hidden.
      
      BUG: 369858
      FIXED-IN: 5.8.1
      
      Reviewers: #kwin, #plasma_on_wayland
      
      Subscribers: plasma-devel, kwin
      
      Tags: #plasma_on_wayland, #kwin
      
      Differential Revision: https://phabricator.kde.org/D2931
      fd6e4bb0
  3. 04 Oct, 2016 4 commits
  4. 02 Oct, 2016 1 commit
  5. 29 Sep, 2016 1 commit
  6. 28 Sep, 2016 1 commit
  7. 24 Sep, 2016 2 commits
  8. 20 Sep, 2016 1 commit
  9. 16 Sep, 2016 2 commits
    • Martin Flöser's avatar
      Fix whether a panel is supposed to have a strut in ShellClient · 7d93b585
      Martin Flöser authored
      Summary:
      The PanelBehavior was incorrectly mapped to hasStrut resulting in too
      many modes creating a strut for the panel.
      
      CCBUG: 368499
      
      Reviewers: #kwin, #plasma_on_wayland
      
      Subscribers: plasma-devel, kwin
      
      Tags: #plasma_on_wayland, #kwin
      
      Differential Revision: https://phabricator.kde.org/D2788
      7d93b585
    • Tobias C. Berner's avatar
      Include <errno.h> in waylandclipboard.cpp · 7b0676eb
      Tobias C. Berner authored
      Summary:
      `errno.h` needs to be includes, as `errno`, `EAGAIN` and `EWOULDBLOCK` are used.
      
      Without:
      > --- helpers/xclipboardsync/CMakeFiles/org_kde_kwin_xclipboard_syncer.dir/all ---
      > /wrkdirs/usr/ports/x11-wm/plasma5-kwin/work/kwin-5.7.95/helpers/xclipboardsync/waylandclipboard.cpp:110:25: error: use of undeclared identifier 'errno'
      >         if (n == -1 && (errno == EAGAIN || errno == EWOULDBLOCK) && ++retryCount < 1000) {
      >                         ^
      > /wrkdirs/usr/ports/x11-wm/plasma5-kwin/work/kwin-5.7.95/helpers/xclipboardsync/waylandclipboard.cpp:110:34: error: use of undeclared identifier 'EAGAIN'
      >         if (n == -1 && (errno == EAGAIN || errno == EWOULDBLOCK) && ++retryCount < 1000) {
      >                                  ^
      > /wrkdirs/usr/ports/x11-wm/plasma5-kwin/work/kwin-5.7.95/helpers/xclipboardsync/waylandclipboard.cpp:110:44: error: use of undeclared identifier 'errno'
      >        if (n == -1 && (errno == EAGAIN || errno == EWOULDBLOCK) && ++retryCount < 1000) {
      >                                           ^
      > /wrkdirs/usr/ports/x11-wm/plasma5-kwin/work/kwin-5.7.95/helpers/xclipboardsync/waylandclipboard.cpp:110:53: error: use of undeclared identifier 'EWOULDBLOCK'
      >        if (n == -1 && (errno == EAGAIN || errno == EWOULDBLOCK) && ++retryCount < 1000) {
      >                                                    ^
      > 4 errors generated.
      > *** [helpers/xclipboardsync/CMakeFiles/org_kde_kwin_xclipboard_syncer.dir/waylandclipboard.cpp.o] Error code 1
      
      Reviewers: graesslin
      
      Reviewed By: graesslin
      
      Subscribers: kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D2794
      7b0676eb
  10. 15 Sep, 2016 6 commits
    • Sebastian Kügler's avatar
      parent qaction in test · 99f491e7
      Sebastian Kügler authored
      Summary:
      My compiler doesn't seem to like this constructor, it bails out with the
      following error:
      
      /home/sebas/kf5/src/kde/workspace/kwin/autotests/integration/globalshortcuts_test.cpp:
      In member function ‘void GlobalShortcutsTest::testConsumedShift()’:
      /home/sebas/kf5/src/kde/workspace/kwin/autotests/integration/globalshortcuts_test.cpp:79:40:
      error: no matching function for call to ‘QAction::QAction()’
           QScopedPointer<QAction> action(new QAction);
                                              ^~~~~~~
      
      Using this as first argument fixes the build on my machine.
      
      Test Plan: screenedges test fails, others pass. (this screenedges test failure seems unrelated)
      
      Reviewers: graesslin
      
      Reviewed By: graesslin
      
      Subscribers: luebking, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D2782
      99f491e7
    • Script Kiddy's avatar
      SVN_SILENT made messages (.desktop file) - always resolve ours · 38a59332
      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"
      38a59332
    • Jonathan Riddell's avatar
      Update version number for 5.7.95 · 1cb2bd99
      Jonathan Riddell authored
      GIT_SILENT
      1cb2bd99
    • Martin Flöser's avatar
      Pass Qt::Key to GlobalShortcutsManager::processKey · 7dfe4085
      Martin Flöser authored
      So far this method translated the keysym to Qt::Key. This is no longer
      needed as the only method which invokes processKey has access to the
      translated key. Thus saving one translation for every key press.
      
      Reviewed-By: bshah
      7dfe4085
    • Martin Flöser's avatar
      Better handling for forwarding key events to Wayland Server · 8fdcc24b
      Martin Flöser authored
      A new protected method is added to InputEventFilter to forward a
      QKeyEvent to the Wayland server. Several input filters need to forward
      the event to have a proper state of the events. E.g. the TabBox filter,
      but also the internal window filter and effects filter. It's important
      to update all events even if the events are not forwarded to a surface.
      
      This new method takes care of the general handling like ignoring key
      repeats, etc.
      
      Reviewed-By: bshah
      8fdcc24b
    • Martin Flöser's avatar
      Pass all key events during Alt+Tab to the Wayland Seat · c70df62c
      Martin Flöser authored
      When Alt+(Shift)+Tab is grabbed we have the modifier press key being
      passed to the Wayland server as key events are not yet grabbed. As KWin
      grabbed the release event the Wayland server considered the key still as
      pressed when going into the next application.
      
      This change ensures that all events are also passed to the wayland
      server. As no surface has focus we can be sure that it won't be passed
      to the application, but it ensures that the events are processed
      correctly.
      
      Reviewed-By: bshah
      c70df62c
  11. 14 Sep, 2016 11 commits
    • Martin Flöser's avatar
      Require frameworks 5.26 · cd053bf8
      Martin Flöser authored
      cd053bf8
    • Martin Flöser's avatar
      [autotests/integration] Test case for window larger than screen · e1bcda92
      Martin Flöser authored
      If a window gets opened which will be too large with decorations it
      should get a configure event with a smaller size. This currently
      doesn't happen as the test highlights.
      
      CCBUG: 366632
      e1bcda92
    • Martin Flöser's avatar
      [wayland] Fix release of TabBox on Wayland · c71b002b
      Martin Flöser authored
      Summary:
      The interaction is changed to trigger the check for release from the
      TabBoxInputFilter instead of reacting on modifier changes. That way
      it's possible to check for the relevant modifiers getting released
      instead of getting all modifiers in. Also this means that the checks
      are only performed when relevant.
      
      BUG: 368590
      
      Reviewers: #kwin, #plasma_on_wayland, bshah
      
      Subscribers: plasma-devel, kwin
      
      Tags: #plasma_on_wayland, #kwin
      
      Differential Revision: https://phabricator.kde.org/D2773
      c71b002b
    • Script Kiddy's avatar
      SVN_SILENT made messages (.desktop file) - always resolve ours · b56a28e1
      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"
      b56a28e1
    • Martin Flöser's avatar
      Fix interaction between decoration and fullscreen ShellClient · ded90756
      Martin Flöser authored
      Summary:
      A fullscreen ShellClient still had a decoration which was caused by
      a combination of several bugs:
      * when going to/from fullscreen the decoration was not update
      * noBorder did not return true for a fullscreen window
      * wl_shell emits fullscreen changed and maximized changed
      
      Comparing to X11 Client both is done. So ShellClient needs to do the
      same. This ensures that the correct geometry is requested when going
      to fullscreen.
      
      BUG: 366764
      
      Reviewers: #kwin, #plasma_on_wayland, bshah
      
      Subscribers: plasma-devel, kwin
      
      Tags: #plasma_on_wayland, #kwin
      
      Differential Revision: https://phabricator.kde.org/D2751
      ded90756
    • Martin Flöser's avatar
      [effects] Repaint expandedGeometry in HighlightWindowsEffect · d910217b
      Martin Flöser authored
      Summary:
      The highlight windows effect tried to trigger repaints with the shadow
      included by having an hardcoded pixel offset. This of course breaks if
      the shadow is larger than the hardcoded value.
      
      The reason presented on why it was done like that is no longer true and
      in the effects the actual visible area including decorations and shadows
      is available through the expandedGeometry.
      
      BUG: 368495
      
      Reviewers: #kwin, #plasma
      
      Subscribers: plasma-devel, kwin
      
      Tags: #kwin
      
      Differential Revision: https://phabricator.kde.org/D2748
      d910217b
    • Martin Flöser's avatar
      Remove not-wanted modifiers prior to evaluating global shortcuts · 42358716
      Martin Flöser authored
      Summary:
      When triggering global shortcuts we are more interested in the hold
      keys than the currently active modifiers. E.g. capslock should not
      be seen as "shift is hold". Similar we need to remove consumed
      modifiers. Shift+5 is % and not Shift+% - the shift modifier is
      consumed and needs to be removed from shortcut evaluation.
      
      To support this we need to have the actual state directly from
      xkbcommon. Thus a new method is added which exposes the modifiers
      relevant for global shortcut matching. In addition on every key press
      all consumed modifiers are calculated and kept so that they can be
      used for shortcut matching.
      
      In addition a workaround is added for Backtab. Similar workaround
      exists in kglobalaccel for X11. The problem is that our shortcuts are
      stored incorrectly: Shift+Tab instead of Backtab. Thus a mapping back
      is required. To make everything worse KWin registers the wrong key
      sequence "Alt+Shift+Backtab" which doesn't make any sense and is
      broken on X11 at least.
      
      The workaround supports both special cases. The one for Backtab should
      be turned into Shift+Tab and also KWin's special case of adding shift
      to backtab.
      
      CCBUG: 368581
      
      Reviewers: #kwin, #plasma_on_wayland, bshah
      
      Subscribers: plasma-devel, kwin
      
      Tags: #plasma_on_wayland, #kwin
      
      Differential Revision: https://phabricator.kde.org/D2768
      42358716
    • Martin Flöser's avatar
      Fix updating layer when setting a ShellClient to fullscreen · 64126a97
      Martin Flöser authored
      Summary:
      The call to update the layer was performed before adjusting to
      fullscreen. Thus the layer didn't get updated at all as it still
      evaluated to "not fullscreen".
      
      Reviewers: #kwin, #plasma_on_wayland, bshah
      
      Subscribers: plasma-devel, kwin
      
      Tags: #plasma_on_wayland, #kwin
      
      Differential Revision: https://phabricator.kde.org/D2758
      64126a97
    • Martin Flöser's avatar
      Make WindowPixmap::isValid virtual and override in concrete implementation · 0bb1f2e7
      Martin Flöser authored
      Summary:
      If a buffer gets destroyed the texture created from it is still valid.
      In such a situation the OpenGLWindowPixmap should return true for isValid
      and not false as it did. Similar in QPainter compositor the pixmap is
      valid if there is an image copied from the buffer.
      
      This change ensures that for example minimizing an XWayland window
      still has a texture during the minimize animation.
      
      BUG: 368440
      
      Test Plan:
      Minimize animation plays for X windows and minimized windows
      are shown in present windows.
      
      Reviewers: #kwin, #plasma_on_wayland
      
      Subscribers: plasma-devel, kwin
      
      Tags: #plasma_on_wayland, #kwin
      
      Differential Revision: https://phabricator.kde.org/D2724
      0bb1f2e7
    • Martin Flöser's avatar
      [autotests/integration] Add a global shortcuts test · cdcee88b
      Martin Flöser authored
      New test case to verify that global shortcut triggering works correctly.
      First test case is to verify that consumed modifiers do not break the
      shortcut. E.g. a shortcut registered for % should trigger on Shift+5 on
      us layout. For that the modifier needs to be consumed, otherwise it's
      Shift+% and doesn't trigger. As the test shows this is currently the
      case.
      cdcee88b
    • Martin Flöser's avatar
      [autotests] Wrap integration tests in dbus-session-run · bf7c6704
      Martin Flöser authored
      Each test needs a dedicated dbus session as the test needs to register
      services (e.g. kglobalaccel) and might fail if that cannot be registered.
      
      Due to the wrapping in another command the test need to make sure that
      any process they start terminates before them. E.g. the activities test
      must stop kactivitymanagerd in cleanupTestCase, otherwise the test times
      out.
      bf7c6704
  12. 13 Sep, 2016 6 commits