14778 Commits (2ba66b3fc2d64dc85b5f74cca068983f0df0fdbc)
 

Author SHA1 Message Date
Burkhard Lück 2ba66b3fc2 update missing screenshot for example thunderbird composer 8 years ago
l10n daemon script 57ad550181 SVN_SILENT made messages (.desktop file) - always resolve ours
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"
8 years ago
Burkhard Lück 1e6e11ea7a update screenshots for kopete example 8 years ago
Ivan Čukić bb89945d1b Restored the deleted file in order to fix the build 8 years ago
Burkhard Lück cca023d3b9 update screenshots for example 'Suppress a Window from showing on Pager' KNotes 8 years ago
Burkhard Lück 817ab63c86 update screenshots for emacs example 'Full-screen Re-size Error' 8 years ago
Burkhard Lück 49dfe5dfbe update screenshots for thunderbird reminder example 8 years ago
Burkhard Lück 47387a140c update screenshots for thunderbird main + composer eample 8 years ago
Burkhard Lück 8699bbd8d9 update screenshot for example 'Force a Window to the Top' 8 years ago
Burkhard Lück b2d450c299 update screenshots example 'Pin a Window to a Desktop and set other Attributes' and fix outdated link to Qt regexp documentation 8 years ago
Burkhard Lück 3fa83e445e update some screenshots, remove duplicate screenshot 8 years ago
Martin Gräßlin ff3b741ad8 Merge branch 'Plasma/5.8' 8 years ago
Martin Gräßlin 7d93b58578 Fix whether a panel is supposed to have a strut in ShellClient
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
8 years ago
Tobias C. Berner 7b0676ebaf Include <errno.h> in waylandclipboard.cpp
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
8 years ago
Sebastian Kügler 99f491e799 parent qaction in test
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
8 years ago
Jonathan Riddell 5216afadc8 Update version number for 5.8.90
GIT_SILENT
8 years ago
Sebastian Kügler 1d37b92d85 parent qaction in test
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
8 years ago
l10n daemon script 38a5933249 SVN_SILENT made messages (.desktop file) - always resolve ours
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"
8 years ago
Jonathan Riddell 1cb2bd99a0 Update version number for 5.7.95
GIT_SILENT
8 years ago
Martin Gräßlin 7dfe408506 Pass Qt::Key to GlobalShortcutsManager::processKey
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
8 years ago
Martin Gräßlin 8fdcc24b05 Better handling for forwarding key events to Wayland Server
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
8 years ago
Martin Gräßlin c70df62ce5 Pass all key events during Alt+Tab to the Wayland Seat
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
8 years ago
Martin Gräßlin cd053bf864 Require frameworks 5.26 8 years ago
Martin Gräßlin e1bcda92a2 [autotests/integration] Test case for window larger than screen
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
8 years ago
Martin Gräßlin c71b002b24 [wayland] Fix release of TabBox on Wayland
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
8 years ago
l10n daemon script b56a28e19c SVN_SILENT made messages (.desktop file) - always resolve ours
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"
8 years ago
Martin Gräßlin ded90756fb Fix interaction between decoration and fullscreen ShellClient
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
8 years ago
Martin Gräßlin d910217bb9 [effects] Repaint expandedGeometry in HighlightWindowsEffect
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
8 years ago
Martin Gräßlin 4235871667 Remove not-wanted modifiers prior to evaluating global shortcuts
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
8 years ago
Martin Gräßlin 64126a9717 Fix updating layer when setting a ShellClient to fullscreen
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
8 years ago
Martin Gräßlin 0bb1f2e7bf Make WindowPixmap::isValid virtual and override in concrete implementation
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
8 years ago
Martin Gräßlin cdcee88b48 [autotests/integration] Add a global shortcuts test
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.
8 years ago
Martin Gräßlin bf7c670444 [autotests] Wrap integration tests in dbus-session-run
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.
8 years ago
Martin Gräßlin a69300f762 [autotests/integration] Test basic working of Alt+Tab and Alt+Shift+Tab
Dedicated test methods for Alt+Tab and Alt+Shift+Tab. Both open three
windows and simulate one press with opening the TabBox. Alt+Tab should
move to the previous window in the chain, Alt+Shift+tab to the last
window in the chain.
8 years ago
Martin Gräßlin e8e6e31a87 [kcmkwin/compositing] Hide config options which don't make sense if Compositing is required
Summary:
On Wayland compositing is required. It doesn't make any sense to offer
the user to disable the compositor or to allow windows to block
compositing.

The Compositor DBus interface gains a new property whether the platform
requires compositing. This is queried by the compositing kcm and based
on that the two mentioned options get hidden and not stored to config
file.

Test Plan: Opened the KCM on Wayland

Reviewers: #kwin, #plasma_on_wayland

Subscribers: plasma-devel, kwin

Tags: #plasma_on_wayland, #kwin

Differential Revision: https://phabricator.kde.org/D2586
8 years ago
Martin Gräßlin 853020336f Introduce a config option whether applications are allowed to block compositing
Summary:
From feedback we got it seems that not all users agree to games and
other applications blocking compositing. Some users prefer to have
compositing always on even if this gives a small performance penelity.

This change introduces a dedicated config option to specify whether games
are allowed to block compositing. By default this option is enabled.

The setting can be overwritten with a window specific rule. So usecases
like all windows except this very specific one are supported.

In the user interface the config option is shown where previously the
unredirect fullscreen option was shown.

Test Plan:
Run a game which should block compositing, verified it blocks.
Changed the setting, run the game again, verified it doesn't block. And
once more for with allowing to block.

Reviewers: #kwin, #plasma_on_wayland, #vdg

Subscribers: plasma-devel, kwin

Tags: #plasma_on_wayland, #kwin

Differential Revision: https://phabricator.kde.org/D2584
8 years ago
Martin Gräßlin c6a840413a [autotest/integration] Extend the TabBox caps lock test to verify correct shortcut is triggered
Capslock currently modifies the shortcut which is triggered from
Alt+Tab to Alt+Shift+Tab. This shouldn't be and is not the case on X11.
8 years ago
Martin Gräßlin ca6505e84c [autotests/integration] Add new test for triggering TabBox
First test case highlight a problem that tabbox doesn't close if
capslock is on.

CCBUG: 368590
8 years ago
Martin Gräßlin cb7f922222 Set componentName to KWIN_NAME on QActions for KGlobalAccel
By setting the componentName we ensure that test don't grab the shortcut.

CCBUG: 368675
8 years ago
l10n daemon script 6ae917d7f8 SVN_SILENT made messages (.desktop file) - always resolve ours
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"
8 years ago
Martin Gräßlin 95f506ad7d [autotests/integration] Extend fullscreen shell client test to verify layers
As the test shows the layer does not get updated correctly.
8 years ago
Martin Gräßlin 97b594501a Match window role in Rules in a case insensitive manner
Summary:
We used to have a toLower when reading the rule. This was removed with
4f7edb8 which turned it into a case sensitive matching to fix a
regression.

But this created another regression: existing rules written lower case
are no longer matched.

This change makes the role matching case insensitive again.

BUG: 367554

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D2574
8 years ago
Martin Gräßlin 2545162f87 Support highlighting windows through EffectsHandlerImpl
Summary:
So far TabBox used highlight windows by passing window ids around through
an X property. This doesn't work on Wayland where we don't have window
ids for our TabBox and the Wayland windows.

This change introduces a new Effect::Feature for HighlightWindows which
the HighlightWindowsEffect provides. The EffectsHandlerImpl has a new
method to highlightWindows which it delegates to that effect if it is
loaded by invoking a new performFeature method.

The TabBoxHandler now passes the highlighting to the effects system
instead of updating the x11 property. Thus this works on Wayland and
at the same time improves the X11 side by no longer having to go through
the property protocol.

Test Plan: Verified that Alt+Tab highlights the windows on Wayland correctly.

Reviewers: #kwin, #plasma_on_wayland

Subscribers: plasma-devel, kwin

Tags: #plasma_on_wayland, #kwin

Differential Revision: https://phabricator.kde.org/D2630
8 years ago
Martin Gräßlin 405702b1a2 [autotest/integration] Extend TestShellClient::testFullscreen with deco
In addition to normal client to fullscreen two more cases are added
which also go from a server side decorated window to fullscreen.
This highlights an issue that an incorrect geometry is requested.

CCBUG: 366764
8 years ago
Martin Gräßlin 3a3d1b6b0d DebugConsole window does not take keyboard input
Summary:
In order to add more tabs which can further help monitoring how KWin
handles some aspects the DebugConsole is changed to not take keyboard
input. This means it can only be navigated using pointer device or touch
screen.

This is needed for adding a new tab to monitor clipboard changes. On
Wayland sometimes windows don't get the clipboard, so it would be
helpful to have a debug monitor to see when the clipboard changes. But
for that debug console window may not take keyboard events.

To support this DebugConsole sets the WA_ShowWithoutActivating attribute
which gets honored by the InternalWindowEventFilter and does not forward
key events to such windows.

Reviewers: #kwin, #plasma_on_wayland

Subscribers: plasma-devel, kwin

Tags: #plasma_on_wayland, #kwin

Differential Revision: https://phabricator.kde.org/D2620
8 years ago
Martin Gräßlin 9b32615ab4 Don't bind ShellClient::acceptsFocus to whether the window is shown
Summary:
A not shown window may accept focus (e.g. when minimized). Given that
the condition was wrong and broke when making minimized windows not
shown.

This change takes the idea of not passing focus to a closing or unmapped
window directly into acceptsFocus. Which also means that this condition
now works for xdg_shell windows.

BUG: 368673

Reviewers: #kwin, #plasma_on_wayland, bshah

Subscribers: plasma-devel, kwin

Tags: #plasma_on_wayland, #kwin

Differential Revision: https://phabricator.kde.org/D2745
8 years ago
Martin Gräßlin 156bf258e9 Merge branch 'Plasma/5.7' 8 years ago
Martin Gräßlin e9e936b6c1 [kwinglutils] Skip ShaderManager::selfTest for NVIDIA Quadro hardware
Summary:
The self test fails with NVDIDA 370.23 or newer on Quadro hardware.
Most likely there is a bug in our code as the same things work later on.
But without the hardware we are not able to reproduce and investigate
properly. Given that all we currently can do is to skip the self test.

We encourage users to investigate this properly and to help us to
identify the root issue, so that we can fix it.

CCBUG: 367766

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D2744
8 years ago
Martin Gräßlin e25be65800 [autotests/integration] Add test case for fullscreen to ShellClientTest
There are issues with setting ShellClients to fullscreen, so adding an
autotest to reproduce it. Basic test does not show any issues yet.
8 years ago
Martin Gräßlin ab68697fe5 [autotests/integration] Extend TestShellClient::tetsMinimizeActiveWindow
Adds QEXPECT_FAIL cases for wantsInput and wantsTabFocus of a minimized
window.
CCBUG: 368673
8 years ago