Commit graph

15885 commits

Author SHA1 Message Date
Roman Gilg
99fec3d245 [colorcorrection] Apply current color temperature on screen hot plug
Summary:
Current color temperature must be applied immediately to hot pluged outputs.

BUG: 391623

Test Plan:
Manually. I'm working on auto tests with the new virtual output classes, but
since 5.12.4 will land before I can finish this work, I have to get this fix
in without them.

Reviewers: #kwin, broulik

Reviewed By: broulik

Subscribers: martinkostolny, broulik, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D11654
2018-03-27 09:51:34 +02:00
Igor Poboiko
2eded91897 [effects/coverswitch] Fix broken reflection on multi-monitor setup
ModelViewMatrix used to paint windows (which is aware about
multi-monitor configuration) was overriden by reflectionMatrix when
painting reflections, leading to wrong placement of reflections.
Now we just multiply old matrix and reflection matrix.

BUG: 378688

Differential Revision: https://phabricator.kde.org/D10465
2018-03-26 18:57:25 +02:00
Kai Uwe Broulik
c99d329125 [AppMenu] Ignore show request when application menu isn't configured
Before Plasma 5.12 one could only have either global menu or decoration button configured but since the setting was non-intuitive
it was switched to auto-enable when applet or button is present.
This results in both menus reacting to e.g. Alt+F for File menu.

BUG: 392012
FIXED-IN: 5.12.4

Differential Revision: https://phabricator.kde.org/D11580
2018-03-26 10:39:28 +02:00
l10n daemon script
6c00ed2df8 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"
2018-03-26 07:01:20 +02:00
l10n daemon script
6ff10e4405 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"
2018-03-11 07:13:28 +01:00
Jonathan Riddell
7228c20dd8 Update version number for 5.12.3
GIT_SILENT
2018-03-06 12:16:31 +00:00
Bhushan Shah
3fa287280b Fix the build on armhf/aarch64
Summary:
qopengl.h redeclares the functions defined in the epoxy/gl.h and it
results in the build error. this is similar to other .cpp files where
epoxy/gl.h is used.

See: https://build.neon.kde.org/job/xenial_unstable_plasma_kwin_bin_armhf/157

Reviewers: #plasma, graesslin

Reviewed By: #plasma, graesslin

Subscribers: plasma-devel, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D10762
2018-03-06 09:25:33 +05:30
Fabian Vogt
68a2ec5d63 Convert EffectView to a QQuickWidget
Summary:
The Qt Wayland support for subsurfaces is broken in many ways, producing
graphical glitches and crashes:
https://bugreports.qt.io/browse/QTBUG-54888 for instance.

Using a QQuickWidget instead of a QQuickView avoids those issues, with
the additional benefit of a nicer API.

Test Plan:
Opened the KCM with kcmshell and systemsettings, no subsurfaces used
anymore.

Reviewers: #plasma, graesslin, davidedmundson

Reviewed By: #plasma, graesslin, davidedmundson

Subscribers: kwin, plasma-devel, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D11066
2018-03-05 21:57:33 +01:00
Martin Flöser
e1afef3d45 Sanity check WindowQuad before trying to create a grid out of it
Summary:
When one uses:
 * breeze as of 5.12
 * wobbly windows
 * shaded window
 * a distribution building with assert enabled

and starts to move a shaded window, KWin asserts. The root cause for
this is that WindowQuad::makeSubQuad has an assert for y1 being smaller
than y2. With the combination listed above this is not guaranteed. For
the left shadow quad the y1 and y2 are identical and thus trying to
split it, results in the assert condition.

The problem of the shadow quad having an invalid size might be addressed
as well with D10811. Due to that the generation of the quads is not
touched. Instead a sanity check is introduced to not try to split
already invalid sized quads.

BUG: 390953
FIXED-IN: 5.12.3

Test Plan: Added unit test hit the assert, now doesn't hit it any more

Reviewers: #kwin, #plasma

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D11015
2018-03-05 19:31:51 +01:00
Fabian Vogt
b1bffa4458 Fix typo in config group name
Summary: Quickly fix it before anyone relies on this typo.

Test Plan: None. Yes, really untested.

Reviewers: #plasma, graesslin, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: kwin, plasma-devel, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D11047
2018-03-05 13:03:20 +01:00
Martin Flöser
6d6576f819 [kcmkwin/rules] Disable detect button on Wayland
Summary:
The detect functionality is still extremely bound to X11 and results in
a crash when clicked. Thus it's better to disable it completely in 5.12
on Wayland.

Test Plan: Button disabled on Wayland, enabled on X11

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D10642
2018-03-04 09:43:03 +01:00
Martin Flöser
2ea5153e1c Don't crash if the cursor theme fails to create
Summary:
If the cursor theme failed to create KWin crashed due to an endless
recursion. There are two reasons for this fault:
1) When the physical size does not exist we perform a division by 0
which results in an invalid size going into wl_cursor_theme_load
2) We emit the signal that the cursor theme changed even if it didn't
change thus creating an endless recursion

This change addresses both problems: it checks that the size is not 0
and changes the handling for theme update to only destroy the previous
theme if the new theme could be created and only emits the signal if
things change.

BUG: 390314
FIXED-IN: 5.12.3

Test Plan: Added a new test case which crashed with old code

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D10549
2018-03-04 09:42:27 +01:00
Martin Flöser
b554e54e87 Support modifier mouse/scroll action on internal decorated windows
Summary:
This fixes the problem that alt+lmb did not start unrestricted move
resize for the Debug Console.

BUG: 374880
FIXED-IN: 5.12.3

Test Plan: New test case and manual testing whether alt+lmb/rmb works

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D10440
2018-03-04 09:41:38 +01:00
Fabian Vogt
067274151f Explicitly include <QAction> to fix build with Qt 5.11 2018-03-01 09:34:21 +01:00
Martin Flöser
e9c72e4e62 [autotests] Set breeze icon theme name in integration tests
This is an attempt to get some tests failing on the CI due to not
finding icons fixed. See T8082
2018-02-27 18:17:53 +01:00
Martin Flöser
911176a887 Send hoverLeave or hoverMotion after touch up on decoration
Summary:
On touch down a first hover motion is sent to the decoration. Thus e.g. a
button enters the hovered state. On touch release so far the decoration
did not get a leave event resulting in the button still being hovered.

This change ensures the leave event is sent or if the pointer is also on
the decoration a motion to the pointer position is sent.

BUG: 386231
FIXED-IN: 5.12.3

Test Plan:
New test case and manual testing to verify that the maximize
button is no longer hovered after touch down/up on it

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D10308
2018-02-25 13:54:02 +01:00
Martin Flöser
5795fc8cc0 Init the icon in ShellClient::init
Summary:
If the window never provides the appId, we would not get an icon for
the window. This happens for example for KWin's internal windows which
don't set the app id as KWin also doesn't have a desktop file. With this
change the DebugConsole has a window icon in the decoration.

Test Plan: Extended tests and manual verification of DebugConsole

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D10294
2018-02-25 13:15:17 +01:00
l10n daemon script
4c6e7b9200 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"
2018-02-25 07:18:47 +01:00
l10n daemon script
3d5178a7c6 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"
2018-02-22 07:26:39 +01:00
Martin Flöser
7bf4a94286 Disable window rule configuration for Wayland
Summary:
The window rule detection is too bound to X11 for it to work for
Wayland windows. In fact it results in the config module just crashing.
Thus it's better to just disable the items in the menu. As it's only for
X11 windows we can also enforce platform xcb for the rules dialog.

Test Plan: Menu disabled on Wayland window, menu enabled on Xwayland window

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D10594
2018-02-21 18:06:47 +01:00
Martin Flöser
338c7362c9 Properly handle move during touch events
Summary:
When a window was being moved the touch handling performed the wrong
interaction. Due to that it was possible to move the window, but KWin
did not enter the correct code paths, thus quick tiling was for example
not functional.

BUG: 390113
FIXED-IN: 5.12.3

Test Plan: New test case added and manual test in nested KWin

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D10431
2018-02-21 18:06:00 +01:00
Jonathan Riddell
b5e8694fdf Update version number for 5.12.2
GIT_SILENT
2018-02-20 13:44:25 +00:00
Jonathan Riddell
28c79bd446 Update version number for 5.12.1
GIT_SILENT
2018-02-13 13:14:16 +00:00
l10n daemon script
bdf1845342 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"
2018-02-12 07:04:02 +01:00
l10n daemon script
8c74b793e0 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"
2018-02-11 07:09:43 +01:00
l10n daemon script
7a60008ff9 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"
2018-02-10 06:56:29 +01:00
David Faure
b1035b6826 Fix compilation without libinput
CCMAIL: notmart@gmail.com
2018-02-09 09:12:29 +01:00
l10n daemon script
40862c034a 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"
2018-02-08 07:02:28 +01:00
Martin Flöser
8245a74b31 Make it possible to compile 5.12 branch with a kdecoration from master
Summary:
KDecoration has two new pure virtual methods. Due to that one cannot
build KWin in the stable branch. This makes bug fixing rather cumbersome
as one also needs to switch the kdecoration branch.

This rather unusual change for a stable branch improves the
compatibility by adding the new virtual methods without doing anything
and without marking them as override, so that the code can compile with
a kdecoration from 5.12 and a kdecoration from master.

Test Plan: 5.12 branch compiles with kdecoration master branch

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D10296
2018-02-07 19:43:53 +01:00
Martin Flöser
ea5e701164 [x11] Fix interactive point selection
Summary:
The support for interactive point selection was missing. This results in
the ColorPicker dbus API always returning an error on X11. We either need
to disable the ColorPicker on X11 or add support for this functionality.

As the X11 platform basically supports selecting a point in the
interactive window selection it makes more sense to add this missing
method in the platform than to disable support of color picker effect.

BUG: 387720
FIXED-IN: 5.12.1

Test Plan:
Run KWin/X11 on Xephyr and was able to pick a color and
kill a window

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D10302
2018-02-05 21:21:27 +01:00
l10n daemon script
93dd777351 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"
2018-02-05 06:51:49 +01:00
Martin Flöser
aefa11f11a Block geometry updates on move resize finish and don't configure xdg shell surfaces while blocked
Summary:
We send out too many configure requests when finishing move resize which
also triggers quick tiling. This change addresses the problem of the too
many configure requests by making the configure method check whether
geometry updates are blocked. And to make this work properly for the end
of finish move resize the complete method is wrapped in a geometry
update blocker.

BUG: 388072
FIXED-IN: 5.12.1

Test Plan:
Quick tiling test passes, both Wayland and X11 windows are
quick tiled correctly.

Reviewers: #kwin, #plasma, jgrulich

Subscribers: plasma-devel, kwin

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D10156
2018-02-04 14:59:56 +01:00
Martin Flöser
e22d9d957b Enable blending if a subsurface has an alpha channel
Summary:
While investigating BUG 387313 I noticed that blending might be disabled
for subsurfaces. Blending was disabled before rendering the subsurfaces
and it is not checked whether the surfaces have an alpha channel or not.

This change addresses this problem by disabling blending after all
subsurfaces have been rendered and enabling blending if a subsurface has
an alpha channel.

Unfortunately this does not fix the investigated bug.

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D10060
2018-02-04 14:58:50 +01:00
Martin Flöser
6c00cfb5c7 [libinput] Ensure Event::device returns a proper Device
Summary:
This fixes a problem when a Device added and another event on the Device
are queued together. In that case the second event would not get the
Device set as it's not yet created.

This change ensures that when accessing device the pointer will be
updated.

BUG: 389674
FIXED-IN: 5.12.0

Reviewers: #kwin, #plasma, fvogt

Subscribers: plasma-devel, kwin

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D10236
2018-02-03 16:03:10 +01:00
Bhushan Shah
137f164261 Update version number for 5.12.0
GIT_SILENT
2018-02-01 17:35:40 +05:30
l10n daemon script
e48eba00cc 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"
2018-01-29 06:51:07 +01:00
l10n daemon script
36e3632101 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"
2018-01-28 06:53:21 +01:00
Martin Flöser
339a08de38 Acknowledge the server side deco mode in WaylandServer not ShellClient
Summary:
With GTK applications our code showed issues. With GTK the sequence for
a menu or dialog window is:
 1. create surface
 2. create server side decoration
 3. request csd
 4. create xdg_shell_surface

Which result in KWin to have the ServerSideDecoration object being
created before the ShellClient is created. The connect for mode changed
happens in ShellClient, which is too late to catch that the window
requested client side decoration. Thus KWin created a decoration about
things such as a menu.

This change moves the acknowledge of the mode to WaylandServer. As we
anyway always acknowledge the requested mode we can also do it there and
don't require ShellClient to be present. Thus when the ShellClient is
created the mode is properly reflected and no decoration is created.

BUG: 389117
FIXED-IN: 5.12.0

Test Plan: Played a lot with evince

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D9967
2018-01-23 16:58:33 +01:00
l10n daemon script
5b64f5d28c 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"
2018-01-23 06:58:06 +01:00
Jaime Torres
2c7b1cf762 From 22% of cpu in hasTransientInternal to 0.2x%
Summary:
According to callgrind, checking kwin in release with debug symbols,
22% of cpu time in the method hasTransientInternal is spent doing
a cast to Client *, while at the begining of the method, the cast to
const Client * only uses 1.0x%.

Test Plan:
The workload was just show 50 messagebox copying small files and being
unable to change the permissions.

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D9982
2018-01-22 20:15:01 +01:00
l10n daemon script
1e09646791 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"
2018-01-22 06:35:04 +01:00
Martin Flöser
0d2a341723 [autotests/integration] Add test for broken quick tiling for xdg_shell
See also D9980.

CCBUG: 388072
2018-01-21 11:13:28 +01:00
l10n daemon script
498d40d069 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"
2018-01-19 06:54:41 +01:00
Martin Flöser
e200d74031 [effects/blur] Disable texture cache on Wayland
Summary:
It is known to create problems especially on multi-screen and is not as
important on Wayland as it used to be on X11 thanks to things like
buffer age and in general better rendering.

Test Plan: Opened the config module and verified that the option is
hidden

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D9879
2018-01-15 17:13:08 +01:00
Jonathan Riddell
9b74583565 Update version number for 5.11.95
GIT_SILENT
2018-01-15 13:10:31 +00:00
Marco Martin
8510f31340 don't double delete m_spy
dtor not needed
BUG:388910
2018-01-15 10:56:05 +01:00
Fabian Vogt
eb69e87288 Manually take XKB_DEFAULT_{RULES,MODEL,LAYOUT,VARIANT,OPTIONS} into account
Summary:
As kwin_wayland can have the CAP_SYS_NICE capability, libxkbcommon does not
read environment variables (see secure_getenv).
So process them here, in the same way xkb_context_sanitize_rule_names would.

BUG: 388249

Test Plan: kwin_wayland has the capability set, keyboard layout is applied correctly.

Reviewers: #plasma, graesslin

Subscribers: kwin, plasma-devel, #kwin

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D9873
2018-01-15 08:56:33 +01:00
Martin Flöser
42b099355c Add support for initial apply rules for skip (taskbar|pager|switcher)
Summary: This adds support for those set rules in ShellClient.

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D9866
2018-01-14 11:19:47 +01:00
Martin Flöser
85ef2831db Do not call into NETWinInfo in AbstractClient::setSkipPager
Summary:
There's a call to a virtual doSetSkipPager for performing this call and
Client implements it with the code which now is removed.

This fixes a crash when using setSkipPager for a Wayland window.

Test Plan:
Crash which happens with a new test case (see dependent phab
request) is fixed.

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D9865
2018-01-14 11:19:19 +01:00
l10n daemon script
f7f0a64db0 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"
2018-01-14 04:53:24 +01:00