Commit graph

17767 commits

Author SHA1 Message Date
Marco Martin
404f2675f8 fix compilation on old gcc
same as https://phabricator.kde.org/D5083,
gcc 4.8.5 (opensuse leap) fails building modeltest with
CMakeFiles/testHistoryModel.dir/modeltest.cpp.o: In function `ModelTest::data()':
modeltest.cpp:(.text+0x5a57): undefined reference to `bool QTest::qCompare<int, unsigned int>(int const&, unsigned int const&, char const*, char const*, char const*, int)'
2017-03-20 17:03:11 +01:00
Jonathan Riddell
f4cbd046eb Merge Plasma/5.9 2017-03-20 15:09:19 +00:00
Jonathan Riddell
d0510736a9 merge Plasma/5.8 2017-03-20 14:49:51 +00:00
David Edmundson
ec4359926b Update Aurorae Shadow when we copy the buffer, not one frame after painting
Summary:
In the current code we update the shadows during the decoration paint.

Because this is called in the middle of the Scene::paintWindow and we
have already painted the shadows/built quads, the setShadow() was
deferred to avoid the obvious bugs updating the shadow would cause.
This sucks because it means we're always out by one frame, and it means
we always do two updates.

As the shadow is taken from the buffer, we can solve that problem by
updating the shadow before any painting at the same time that we update the
buffer. This means we don't need the deferring hack.

This patch also fixes a related issue that m_padding could have
changed after the buffer is rendered, but before painting. This would lead to rendering a mess.
This patch caches the relevant padding at the time the buffer is
created.

@Notmart, this is subtly different from the patch I showed you last night,
for me it fixes things without your other patch, but I don't know. If it doesn't it's
still (IMHO) a lot cleaner.

Test Plan:
Ran an Aurorae theme
Maximised, restored, resized. Everything.

Reviewers: #plasma, graesslin

Reviewed By: #plasma, graesslin

Subscribers: graesslin, plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D4990
2017-03-20 08:51:56 +00:00
l10n daemon script
4d0303fafe 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"
2017-03-19 03:56:45 +01:00
Martin Gräßlin
fa4c60e33f Add support for pointer gestures to nested Wayland platform
Summary:
To ease development of touchpad gestures it's useful to have support in
the nested Wayland platform.

Test Plan: Shown in Debug Console of nested KWin

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D5059
2017-03-18 14:39:30 +01:00
Roman Gilg
a347d009d1 [DrmBackend] Straighten out EGL surface buffer release logic on page flip
The logic on page flips was inconsistent in the sense, that it should never
release a GBM buffer before it's not used (i.e. viewable on the display)
anymore. This happened unintended until now (on page flip we never really
did something useful in the else statement, because if we're here it's not
a GBM buffer anyway).

With this patch we:
* delete on page flips always only the old buffer, which is not used anymore
* release the buffer earlier on interrupts like display disconnect in order
  to be able to destroy the EGL context

Test Plan:
Tested in non atomic mode (atomic mode is obsolete right now until my other
WIP patch D4539 is ready to be merged): Login, logout, suspend, normal use.

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D5060
2017-03-17 20:41:46 +01:00
Marco Martin
948ff63d65 when the padding aroun the window changes, update
Summary:
update m_visibleRectBeforeGeometryUpdate when the padding
change signal gets emitted: aurorae updates its shadow
and postentially shadow size asynchronously after repainting.
that would make the first addRepaintDuringGeometryUpdates
when the winow is moved *for the first time* have a wrong
m_visibleRectBeforeGeometryUpdate that doesn't take into
account the shadow, leaving some leftover shadow on screen

BUG:377670

Test Plan:
shadow leftover not reproducible anymore with maui's kwinrc
replaces D4989
tested both on master and together D4990, which should go in as well

Reviewers: #plasma, davidedmundson, graesslin

Reviewed By: #plasma, graesslin

Subscribers: plasma-devel, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D5078
2017-03-17 17:47:24 +01:00
Luboš Luňák
df861b1702 initialize a member
slotWindowClosed() accesses it
2017-03-17 16:17:36 +01:00
l10n daemon script
12a02451df 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"
2017-03-17 03:50:12 +01:00
Marco Martin
926f2136e8 revert unrelated change 2017-03-16 18:41:19 +01:00
Marco Martin
a25a06b6fa remove offending test
in reference to discussion on
https://phabricator.kde.org/D4718
2017-03-16 18:30:39 +01:00
l10n daemon script
5be29cc42f 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"
2017-03-16 05:18:16 +01:00
Marco Martin
a7b7ce9ec0 new logout effect
Summary:
new logout effect: it's just a slow fade in of the logout
greeter (window is usable immediately tough

Test Plan: logout greeter now fades in without setting the window opacity manually

Reviewers: graesslin, #plasma

Reviewed By: graesslin, #plasma

Subscribers: broulik, plasma-devel, kwin, #kwin

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D5045
2017-03-15 17:47:22 +01:00
Marco Martin
898bee614d add packagestructure for KWin/Decoration
Summary:
use a KPackage/PackageStructure for aurorae themes as well

Patch by Demitrius Belai

Reviewers: #plasma, graesslin

Reviewed By: #plasma, graesslin

Subscribers: graesslin, plasma-devel, kwin, #kwin

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D4974
2017-03-15 13:09:34 +01:00
Marco Martin
063587db99 store contrast matrix per-window
Summary:
as different windows can have different contrast region parameters,
store color matrices per window
BUG:339237

Test Plan: logout window doesn't break panel anymore

Reviewers: #plasma, graesslin

Reviewed By: #plasma, graesslin

Subscribers: broulik, plasma-devel, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D5048
2017-03-15 12:02:30 +01:00
Marco Martin
c0b207a2b5 support for auto-hidden windows to resize
Summary:
auto hidden windows were shown again when their geometry
changed, this was done for being as easy as possible as
the unhide zone changed, but the behavior looked very
annoying as autohide panels with an self resize taskbar
would unhide themselves every time any window gets open
or closed.
This makes the edge keep track of
windows that can resize/move themselves while auto hidden

Test Plan:
a self-resizing autohidden panel with a taskbar in it doesn't auto unhide
anymore when a window is opened or closed.
the unhide area gets properly updated

Reviewers: graesslin, #plasma

Reviewed By: graesslin, #plasma

Subscribers: luebking, plasma-devel, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D4718
2017-03-08 23:55:20 +01:00
l10n daemon script
6660431ce1 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"
2017-03-07 14:39:25 +01:00
l10n daemon script
dcdcc6ef69 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"
2017-03-07 12:57:33 +01:00
Jonathan Riddell
fd1b701096 Update version number for 5.9.3
GIT_SILENT
2017-02-28 12:30:44 +00:00
l10n daemon script
df306a4062 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"
2017-02-28 12:58:59 +01:00
Thomas Lübking
5c700eefd5 Glide effect: skip invisible windows
BUGS: 359831
REVIEW: 127378
2017-02-25 23:47:28 +01:00
l10n daemon script
9040025acd 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"
2017-02-25 06:23:16 +01:00
Marco Martin
6673f713bb move the view at the correct index at startup
Summary:
using the same trick as elsewhere, set the currentIndex
and move the view to currentIndex right at startup
the only way to be sure is onContentHeightChanged
as there are no signals for when "the view has been
populated and settled up"

Test Plan:
the view is at the right state since the first frame shown,
no more jumping around effect

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: davidedmundson, plasma-devel, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D4703
2017-02-24 15:52:00 +01:00
Marco Martin
892f398b10 move the view at the correct index at startup
Summary:
using the same trick as elsewhere, set the currentIndex
and move the view to currentIndex right at startup
the only way to be sure is onContentHeightChanged
as there are no signals for when "the view has been
populated and settled up"

Test Plan:
the view is at the right state since the first frame shown,
no more jumping around effect

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: davidedmundson, plasma-devel, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D4703
2017-02-24 15:51:53 +01:00
Marco Martin
299d23230c move the view at the correct index at startup
Summary:
using the same trick as elsewhere, set the currentIndex
and move the view to currentIndex right at startup
the only way to be sure is onContentHeightChanged
as there are no signals for when "the view has been
populated and settled up"

Test Plan:
the view is at the right state since the first frame shown,
no more jumping around effect

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: davidedmundson, plasma-devel, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D4703
2017-02-24 15:49:43 +01:00
Martin Gräßlin
4a976d58ec Track the actual pressed keys in ModifierOnlyShortcuts
Summary:
With this change the ModifierOnlyShortcut starts to track the actual
pressed keys instead using a counter of combined pressed keys.

This should help for the cases that we get unsynced key codes.
E.g. if we get two key presses for the same key and only one release
we don't get out of sync. Similar if we get a key release for a key
which wasn't pressed, we don't go out of sync.

Test Plan: Auto test still passes

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D4617
2017-02-23 16:55:41 +01:00
l10n daemon script
6a77b8a1eb 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"
2017-02-23 08:49:40 +01:00
l10n daemon script
bb4005ec50 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"
2017-02-23 08:18:46 +01:00
l10n daemon script
3fcb19f42f 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"
2017-02-23 06:22:20 +01:00
l10n daemon script
8cb6d42191 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"
2017-02-21 12:50:44 +01:00
Jonathan Riddell
9b84e56392 Update version number for 5.8.6
GIT_SILENT
2017-02-21 11:43:38 +00:00
Jonathan Riddell
d1a9f4ed3e merge Plasma/5.9 2017-02-20 15:25:05 +00:00
l10n daemon script
0380027611 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"
2017-02-20 07:43:31 +01:00
l10n daemon script
429d15941e 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"
2017-02-20 06:00:53 +01:00
Martin Gräßlin
81fac15874 Merge branch 'Plasma/5.9' 2017-02-17 15:00:59 +01:00
Martin Gräßlin
32ec309e18 We need Breeze 5.9 2017-02-17 14:59:20 +01:00
Martin Gräßlin
354241e1ea Merge branch 'Plasma/5.8' into Plasma/5.9 2017-02-17 14:58:32 +01:00
Martin Gräßlin
cb481b4922 Find minimum required Breeze version instead of current version
Summary:
So far KWin put a version requirement on Breeze which is the current
version number of KWin. This is technically correct, but distributions
seem to have problems with it. E.g. I noticed twice in Debian testing
that kwin defaults to Plastik which happens when Breeze is not found.
I reported it, it got fixed, now it's again broken.

Thus I think that distributions have problems with the requirement of
building Breeze prior to KWin. As KWin does not depend on the minor
version, let's depend only on the actual required version, which is
5.8 in the 5.8 branch, 5.9 in the 5.9 branch and master.

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D4644
2017-02-17 07:12:57 +01:00
Martin Gräßlin
58f26b8f55 Split KWin::Xkb into a dedicated .h and .cpp
Summary: Closes T5221

Test Plan: Compiles

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Maniphest Tasks: T5221

Differential Revision: https://phabricator.kde.org/D4623
2017-02-15 17:48:55 +01:00
Martin Gräßlin
65ddd32d1a Split modifier only handling into a dedicated InputEventSpy
Summary:
The functionality regarding triggering modifier only shortcuts is moved
out of Xkb - where it doesn't belong to - and is turned into an input
event spy listening for the changes it is interested in. Previously
the state got queried by asking e.g. for the pressed buttons, now it's
tracked directly.

The X11 side needs a larger change due to that as now pushing the events
into Xkb does not trigger modifier only shortcuts any more. Instead the
"normal" way through the platform API needs to be used which triggers the
processing of filters and spies.

The problem here is that our redirections only process events if they are
inited and that only happens on Wayland. We cannot call init on them as
that would create all the Wayland filters and spies and processing would
probably break. As an intermediate solution the spies are now processed
and there we know that it won't matter. A future solution would be to
remove the init checks completely and just send through both filters and
spies and ensure that on X11 only the supported ones are loaded.

Closes T5220

Test Plan: Tested on Wayland and X11

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Maniphest Tasks: T5220

Differential Revision: https://phabricator.kde.org/D4578
2017-02-14 17:02:18 +01:00
Jonathan Riddell
f972770afa Update version number for 5.9.2
GIT_SILENT
2017-02-14 12:19:57 +00:00
Martin Gräßlin
cf79de5f36 Merge branch 'Plasma/5.9' 2017-02-14 07:37:00 +01:00
Martin Gräßlin
8b4f284249 [autotests] Add test case for quick tiling on X11
Exposes our regressions of X11 quick tiling when a window is vertically
maximized.

CCBUG: 376155
2017-02-14 07:29:38 +01:00
l10n daemon script
26339e6d6c 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"
2017-02-13 05:52:41 +01:00
l10n daemon script
e9155286e8 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"
2017-02-12 07:29:42 +01:00
l10n daemon script
56767ad31a 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"
2017-02-12 05:49:00 +01:00
Martin Gräßlin
40de5fa75f Only export the org.kde.keyboard DBus service if there are at least two layouts
Summary:
It doesn't make much sense to export the DBus service if there is nothing
one can do with it.

Test Plan: Added test case

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D4562
2017-02-11 11:37:45 +01:00
Martin Gräßlin
df76d83087 [autotests] Add test case for per-keyboard-layout global shortcut
This new test method verifies that the global shortcut functionality
to switch to a specific layout functions correctly.
2017-02-11 09:46:33 +01:00
David Edmundson
70d2fb2378 Avoid a crash on Kwin decoration KCM teardown
Summary:
As described in https://bugreports.qt.io/browse/QTBUG-57714  exposing a
QWidget as a context item to QtQuick can crash. Especially as the
engine's context property gets deleted whilst deleting the parent item.

This patch reworks the code so that the models are exposed to QML
directly rather than going through a QWidget.

CCBUG: 373628

Test Plan:
Pressing back whilst in the decoration KCM used to crash every time, now it doesn't.
I still have the buttons.

Reviewers: #plasma, graesslin

Reviewed By: #plasma, graesslin

Subscribers: graesslin, cfeck, plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D4533
2017-02-10 14:01:09 +01:00