kwin/tabbox
Martin Flöser 1ae7990a95 Allow a cross-process check for same applications
Summary:
Commit 5d9027b110 introduced a regression in TabBox by using the generic
framework inside KWin to test for same application. What I did not
consider was that the code in TabBox was "broken by design". It didn't
use the generic check as that is too strict and considers windows from
different processes as not belonging to the same application. But this
is not wanted in the case of TabBox.

On the other hand the change itself is an improvement to also support
Wayland in a better way and not have special handling situations. Thus
just reverting would not help.

Instead this change addresses the problem by extending the internal API
and to allow more adjustements. So far there was already an
"active_hack" boolean flag. This is extended to proper flags with an
additional flag to allow cross application checks.

The checks in Client which would filter out different applications check
for this flag and are skipped if set. In addition ShellClient also adds
support for this flag and compares for the desktop file name.

Thus we get in TabBox the same behavior as before with the advantage of
having a better shared code base working on both X11 and Wayland.

BUG: 386043
FIXED-IN: 5.11.4

Test Plan:
Started two kwrite processes on X11, clicked new in one of them,
used Alt+` and verified that there are three windows shown.

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D8661
2017-11-16 20:33:54 +01:00
..
clientmodel.cpp
clientmodel.h
CMakeLists.txt
desktopchain.cpp
desktopchain.h
desktopmodel.cpp
desktopmodel.h
kwindesktopswitcher.desktop SVN_SILENT made messages (.desktop file) - always resolve ours 2017-05-25 05:40:47 +02:00
kwinwindowswitcher.desktop SVN_SILENT made messages (.desktop file) - always resolve ours 2017-05-25 05:40:47 +02:00
switcheritem.cpp [tabbox] Expose noModifierGrab to QtQuick 2017-04-12 19:46:48 +02:00
switcheritem.h [tabbox] Expose noModifierGrab to QtQuick 2017-04-12 19:46:48 +02:00
tabbox.cpp Allow a cross-process check for same applications 2017-11-16 20:33:54 +01:00
tabbox.h [tabBox] Move X11 specific event filtering into a dedicated event filter 2017-09-01 16:58:14 +02:00
tabbox_logging.cpp
tabbox_logging.h
tabboxconfig.cpp
tabboxconfig.h
tabboxhandler.cpp [tabbox] Expose noModifierGrab to QtQuick 2017-04-12 19:46:48 +02:00
tabboxhandler.h [tabbox] Expose noModifierGrab to QtQuick 2017-04-12 19:46:48 +02:00
x11_filter.cpp [tabBox] Move X11 specific event filtering into a dedicated event filter 2017-09-01 16:58:14 +02:00
x11_filter.h [tabBox] Move X11 specific event filtering into a dedicated event filter 2017-09-01 16:58:14 +02:00