Commit graph

16015 commits

Author SHA1 Message Date
David Edmundson
1403fcf316 Add XDG Output support
Test Plan:
Very minimal expansion of unit tests which uses WaylandScreens
Wrote mini app to debug actual output of xdg-output for testing the DRM code

Main relevant user of this is xwayland > 1.20 which I don't have, so that
part remains untested

Reviewers: #plasma, graesslin

Reviewed By: #plasma, graesslin

Subscribers: romangg, graesslin, bshah, kwin

Tags: #kwin

Maniphest Tasks: T8501

Differential Revision: https://phabricator.kde.org/D12243
2018-05-18 14:16:13 +01:00
Jonathan Riddell
d4a825a9cc Update version number for 5.14.80
GIT_SILENT
2018-05-18 14:03:19 +01:00
Jonathan Riddell
57178b2b98 Update version number for 5.12.90
GIT_SILENT
2018-05-18 10:41:36 +01:00
l10n daemon script
adf9cb767d 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-05-18 05:45:28 +02:00
Vlad Zagorodniy
309a77eedf [effects/backgroundcontrast] Calculate correct y-coord of the copy rect
Summary: For more details, see D12452.

Reviewers: #kwin, davidedmundson, fredrik, mart

Reviewed By: #kwin, davidedmundson, mart

Subscribers: romangg, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D12466
2018-05-17 02:51:50 -07:00
Chris Holland
184b490c78 Update knsrc to use kpackagetool5 commands
kwinswitcher.knsrc, kwinscripts.knsrc, kwineffect.knsrc

It seems the kwineffect.desktop was (and still is) invalid, as it
does not show up in `kpackagetool5 --list-types`.

To test, I overwrite the /etc/xdg/*.knsrc,
then opened the GHNS dialogs and installed stuff.

Differential Revision: https://phabricator.kde.org/D12249
2018-05-13 19:07:49 -04:00
Aleix Pol
c0226fe744 Clear both cursor caches
Summary: There are two cursor caches: m_cursors and m_cursorsByName. The second doesn't ever seem to be cleared.

Reviewers: #kwin, davidedmundson, graesslin

Reviewed By: #kwin, graesslin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D12542
2018-05-02 14:55:38 +02:00
Alex Nemeth
4156a0af4d [effects/slideback] Enable blur behind windows
Summary: Use the blur effect even while the window is sliding back.

Test Plan: {F5828577}

Reviewers: #kwin, #vdg, graesslin, ngraham

Reviewed By: #kwin, #vdg, graesslin, ngraham

Subscribers: ngraham, graesslin, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D12625
2018-05-01 23:08:10 +02:00
Alex Nemeth
9644f29b8b [effects/maximize] Enable blur behind windows
Summary: Use the blur effect even while the window is being maximized/unmaximized.

Test Plan:
Before:

{F5828510}

After:

{F5828511}

Reviewers: #kwin, #vdg, graesslin, ngraham

Reviewed By: #kwin, #vdg, graesslin, ngraham

Subscribers: ngraham, graesslin, zzag, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D12623
2018-05-01 23:04:56 +02:00
Alex Nemeth
c3e84e1073 [effects/desktopgrid] Enable blur behind windows
Summary: Use the blur effect even when the desktop grid is used.

Test Plan: {F5828458}

Reviewers: davidedmundson, fredrik, #vdg, #kwin, graesslin, ngraham

Reviewed By: #vdg, #kwin, graesslin, ngraham

Subscribers: graesslin, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D12620
2018-05-01 23:01:55 +02:00
Alex Nemeth
424b9ac388 [effects/presentwindows] Enable blur behind windows
Summary:
Use the blur effect even when the present windows is used.
Previously it was only enabled for the close buttons and the dock.

Test Plan: {F5828442}

Reviewers: davidedmundson, fredrik, #vdg, #kwin, graesslin, ngraham

Reviewed By: #vdg, #kwin, graesslin, ngraham

Subscribers: ngraham, zzag, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D12619
2018-05-01 22:59:08 +02:00
Friedrich W. H. Kossebau
a5a661211c Merge branch 'Plasma/5.12' 2018-04-30 23:50:35 +02:00
Friedrich W. H. Kossebau
86af84f13e Convert JS files to UTF-8 (from ISO-8859-15) 2018-04-30 23:37:10 +02:00
Alex Nemeth
16a0e24115 Fix blur noise effect using incorrect scaling value
Summary:
`QGuiApplication::primaryScreen()->logicalDotsPerInch()` sometimes reports incorrect scale value, for example 95.951 (or even lower) instead of 96.0 at 1x scale and this caused to simply darken blurred areas instead of noising them.
This patch sets a minimum 1x scale for the noise texture, because realistically we will never be below that.

Reviewers: davidedmundson

Reviewed By: davidedmundson

Subscribers: davidedmundson, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D12519
2018-04-30 18:02:29 +02:00
l10n daemon script
41819da476 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-04-29 05:26:48 +02:00
Luca Beltrame
5ef119044d
Revert "Add "SkipSwitcher" to API"
This reverts commit 8a2a00a4ca.

It was likely wrongly pushed before the KWayland changes, so it won't
compile.

Feel free to reinstate it once the dependent changes (KWayland) are in.

CCMAIL: bundito@gmail.com
CCMAIL: kwin@kde.org
2018-04-28 09:26:51 +02:00
Scott Harvey
8a2a00a4ca Add "SkipSwitcher" to API
Summary:
Adding "SkipSwitcher" to the API, following discussion in
BUG 375921

Depends on / related to D11925 and D11924

Reviewers: hein, #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: davidedmundson, #plasma, ngraham, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D11926
2018-04-27 09:43:13 -05:00
Aleix Pol
ebfc713936 Improve cursor size setup
Centralise resolution-dependent computation into the leaf cursor class.
Listen to scale changes and update the cursor when it happens

Reviewed by David Edmundson
2018-04-26 16:42:32 +02:00
David Edmundson
437a36a2bb [KScreen Effect] Fix fade to black
Summary:
When you have two windows ontop of each other and you turn them
transparent, evidently you'll be able to see through them.
Not only does it look unpolished if the desktop window flashes through
your windows, it can pose a privacy risk as you'd be able to briefly
look through the lock screen.

This patch fades apps to black intead of to transparent. As this looks
weird for panels, so windows are also faded to opaque (if relevant) at
the same rate.

BUG: 388384

Reviewers: #plasma, graesslin

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

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D9608
2018-04-26 11:15:38 +02:00
l10n daemon script
ed4a936315 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-04-25 07:16:14 +02:00
Aleix Pol
6adc785168 Merge branch 'Plasma/5.12' 2018-04-24 16:41:25 +02:00
Aleix Pol
6e84645e35 Reparse the input configuration when we are notified that it changed
Otherwise we'd process again the kconfig information in memory and
discard it because it's the same as last time.
2018-04-24 16:40:30 +02:00
David Edmundson
47818c097f Merge branch 'Plasma/5.12' 2018-04-24 16:35:54 +02:00
Aleix Pol
bec8493459 Don't try to filter null key combinations
Summary:
When using composite key combinations, kwin would do random weird
actions when the first key was pressed (e.g. ` key). This makes sure we
are not trying to match.

BUG: 390110

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: graesslin, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D12416
2018-04-24 16:35:23 +02:00
Aleix Pol
4403e86acc Don't try to filter null key combinations
Summary:
When using composite key combinations, kwin would do random weird
actions when the first key was pressed (e.g. ` key). This makes sure we
are not trying to match.

BUG: 390110

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: graesslin, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D12416
2018-04-24 16:23:47 +02:00
Nerdopolis Turfwalker
b2ed73cdb0 fb_backend_qpainter_backend: Use logind to determine if the session is active.
Summary: TTYs are only available for seat0, so when starting a framebuffer kwin on seat1, it never draws, because drawing is always suspended, because it is being treated as not active

Test Plan: The framebuffer backend draws on seat1, and /dev/fb1 and when I switch back to my Weston greeter, (when it's also using the frame buffer,) it doesn't try to draw on top of it.

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: davidedmundson, rkflx, graesslin, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D9574
2018-04-24 14:18:45 +02:00
Kai Uwe Broulik
27c65aade3 Don't try to open application menu when client doesn't have one
There's no point in sending a DBus message to an invalid (empty) address

Differential Revision: https://phabricator.kde.org/D12444
2018-04-23 15:42:02 +02:00
Rohan Garg
757ed91a5d Handle errors with drmModeSetCursor instead of silently failing
Summary:
Make sure we switch to a software cursor when drmModeSetCursor
fails.

Reviewers: #kwin, graesslin

Subscribers: davidedmundson, bshah, graesslin, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D12447
2018-04-23 10:39:24 +02:00
l10n daemon script
01ed1d84b9 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-04-23 05:33:14 +02:00
Алексей Шилин
5a14b6a6a2 Improve tooltips behavior
Summary:
Window buttons tooltips used to appear on hover immediately. As
the result, they mostly appeared when not needed e.g. when user
was closing a window, or when the mouse pointer slightly touched
a button while being moved elsewhere.

This commit changes the tooltips behavior to WakeUp-FallAsleep
approach used by Widgets.

BUG: 392765
FIXED-IN: 5.13

Reviewers: #kwin, graesslin, broulik, #plasma

Reviewed By: #kwin, graesslin, #plasma

Subscribers: zzag, broulik, kwin, hein

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D12404
2018-04-22 23:44:39 +03:00
Nerdopolis Turfwalker
e737a6193c main_wayland: Don't hardcode /dev/fb0 anymore
Summary: Now that the framebuffer device is queried, don't assume that the framebuffer device is /dev/fb0

Test Plan:
Add /dev/fb1 to seat1, start kwin with the framebuffer backend on seat1, verify with the stdio/stderr output it selected /dev/fb1.
Make sure manual device selection still works

There is an issue right now where /dev/fb1 is all black, if it is both selected manually or automatically. I think I might need see if the VSCREENINFO or FSCREENINFO framebuffer settings are changing or something (I had to do something similar to this to Weston's fbdev backend as well)

If I do find a solution, I'll send one separate from this series

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: zzag, rkflx, graesslin, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D9557
2018-04-22 17:53:16 +02:00
Nerdopolis Turfwalker
8321453fde fb_backend: use new udev function to detect framebuffer devices, if one is not set
Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: rkflx, graesslin, anthonyfieroni, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D9556
2018-04-22 17:52:15 +02:00
Nerdopolis Turfwalker
3c745bb571 fb_backend: fix warning
Summary: The warning that the format is unknown was being logged unconditionally

Reviewers: #kwin, bshah

Reviewed By: #kwin, bshah

Subscribers: rkflx, graesslin, cfeck, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D9567
2018-04-22 17:49:23 +02:00
Nerdopolis Turfwalker
ddda524974 libinput/connection: Don't hardcode seat0 anymore
Summary: use a new function to get the logind, instead of assuming seat0

Test Plan: kwin still starts

Reviewers: #kwin, davidedmundson

Reviewed By: davidedmundson

Subscribers: davidedmundson, rkflx, graesslin, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D9552
2018-04-22 17:29:32 +02:00
l10n daemon script
67acb21ab8 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-04-22 07:33:45 +02:00
l10n daemon script
e68356831b 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-04-22 05:43:11 +02:00
Roman Gilg
7e831df46e Add environment variable to force sw cursor
Summary:
For debugging purposes add an environment variable to
force use of software cursor.

Test Plan: Manual test with and without setting the variable.

Reviewers: #kwin, garg, davidedmundson

Reviewed By: davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D12322
2018-04-20 21:22:10 +02:00
Vlad Zagorodniy
48d30fa4fe [effects/presentwindows] Fix -Wint-in-bool-context
Summary:
Compiler: GCC 7.3.1
Distro: Arch Linux

Warning:

```
/home/vlad/KDE/src/kde/workspace/kwin/effects/presentwindows/presentwindows.cpp: In member function ‘void KWin::PresentWindowsEffect::rearrangeWindows()’:
/home/vlad/KDE/src/kde/workspace/kwin/effects/presentwindows/presentwindows.cpp:970:45: warning: ‘*’ in boolean context, suggest ‘&&’ instead [-Wint-in-bool-context]
                 m_gridSizes[screen].columns * m_gridSizes[screen].rows &&
```

Reviewers: #kwin, davidedmundson

Reviewed By: davidedmundson

Subscribers: davidedmundson, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D12209
2018-04-20 21:19:04 +03:00
Vlad Zagorodniy
3fcce012c0 [effects/minimizeanimation] Don't reset timeline
Summary:
Resetting timeline while animating a window causes some visual "glitches",
see videos below. Even though we can't use `QTimer::toggleDirection`,
that's safe to delete code which resets timeline because `prePaintScreen`
figures out correct direction of the timeline.

Before

{F5809862, layout=center, size=full}

After

{F5809898, layout=center, size=full}

Reviewers: #kwin, davidedmundson

Reviewed By: davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D12254
2018-04-20 21:16:09 +03:00
Vlad Zagorodniy
913f92ae9a [effects/magiclamp] Don't reset timeline
Summary:
Resetting timeline while animating a window causes some visual "glitches",
see videos below. Even though we can't use `QTimer::toggleDirection`,
that's safe to delete code which resets timeline because `prePaintScreen`
figures out correct direction of the timeline.

Before

{F5809835, layout=center, size=full}

After

{F5809850, layout=center, size=full}

Test Plan:
* Set duration to 5000
* Furiously click an icon in the task manager

Reviewers: #kwin, davidedmundson

Reviewed By: davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D12253
2018-04-20 21:10:47 +03:00
Vlad Zagorodniy
75fff17612 Fix unused param warnings
Summary:
Compiler: GCC 7.3.1
Distro: Arch Linux

Compiler warnings:

```
/home/vlad/KDE/src/kde/workspace/kwin/effects/blur/blur.cpp: In member function ‘void KWin::BlurEffect::upscaleRenderToScreen(KWin::GLVertexBuffer*, int, int, QMatrix4x4, QRect, QPoint)’:
/home/vlad/KDE/src/kde/workspace/kwin/effects/blur/blur.cpp:677:129: warning: unused parameter ‘windowShape’ [-Wunused-parameter]
 void BlurEffect::upscaleRenderToScreen(GLVertexBuffer *vbo, int vboStart, int blurRectCount, QMatrix4x4 screenProjection, QRect windowShape, QPoint windowPosition)
                                                                                                                                 ^~~~~~~~~~~
```

```
/home/vlad/KDE/src/kde/workspace/kwin/main_wayland.cpp: In function ‘void KWin::{anonymous}::gainRealTime(KWin::RealTimeFlags)’:
/home/vlad/KDE/src/kde/workspace/kwin/main_wayland.cpp:95:56: warning: unused parameter ‘flags’ [-Wunused-parameter]
 void gainRealTime(RealTimeFlags flags = RealTimeFlags::DontReset)
```

Reviewers: #kwin, davidedmundson

Reviewed By: davidedmundson

Subscribers: anemeth, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D12208
2018-04-20 21:07:27 +03:00
David Edmundson
52e42df9d6 Clean up kwindecoration KCM qml code
Summary:
Remove all instances of anchors in a layout.
This is undefined behaviour (even if it happens to work) and results in
a warning in 5.11.

Resulted in some shuffling about, but generally cleaner code.

Visually looks the same

Test Plan:
Added some buttons
Dragged and dropped some buttons out of the top header
Still got my "drop here to remove button" hint with the same opacities

Reviewers: #plasma, broulik

Reviewed By: #plasma, broulik

Subscribers: kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D12284
2018-04-18 10:57:30 +01:00
Vlad Zagorodniy
c44788889c [platforms/virtual] Make VirtualOutput non-copyable
Summary:
Qt objects are treated as identities so remove the copy constructor and
an assignment operator. See, http://doc.qt.io/qt-5/object.html#identity-vs-value

IIRC some Qt objects(like QImage) have copy constructor for implicit data sharing,
but VirtualOutput doesn't have anything to share.

Also, it [this patch] fixes a compiler warning:

```
/home/vlad/KDE/src/kde/workspace/kwin/plugins/platforms/virtual/virtual_output.cpp: In copy constructor ‘KWin::VirtualOutput::VirtualOutput(const KWin::VirtualOutput&)’:
/home/vlad/KDE/src/kde/workspace/kwin/plugins/platforms/virtual/virtual_output.cpp:30:1: warning: base class ‘class QObject’ should be explicitly initialized in the copy constructor [-Wextra]
 VirtualOutput::VirtualOutput(const VirtualOutput &o)
 ^~~~~~~~~~~~~
```

Reviewers: #kwin, romangg

Reviewed By: #kwin, romangg

Subscribers: michaelh, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D12214
2018-04-16 02:48:48 +03:00
Aleix Pol
d3f8b979a0 Fix warning 2018-04-06 18:43:12 +02:00
Alexey Min
0ccecbc427 drm backend: choose correct EGL config with mesa-18
Do not blindly select first EGL config from returned list, but choose the one that matches GBM surfaces, that will be created later.
GBM surfaces are created with GBM_FORMAT_XRGB8888 format, so choose the config that matches it.
With wrong format EglGbmBackend::resetOutput() will later fail with error EGL_BAD_MATCH.

Test Plan: Compile, run startplasmacompositor. Verify that OpenGL compositing is used, either by kwin debug console, or by kwin support information.

Reviewers: graesslin, davidedmundson, #kwin, #plasma_on_wayland, bshah

Reviewed By: davidedmundson

Subscribers: zzag, kwin, #kwin

Tags: #kwin, #plasma_on_wayland

Differential Revision: https://phabricator.kde.org/D11758
2018-04-06 00:17:08 +03:00
Nerdopolis Turfwalker
99376d38f6 udev: Only handle devices from the current seat
Summary: This prevents the firstFound device, or any device detected by UdevEnumerate::find that is not from the same seat kwin is running under, from being handled

Test Plan:
made sure that kwin starts on a default udev (assuming a blank ID_SEAT attribute on a device means the device is on seat0)

added /dev/dri/card1 to seat1 and /dev/dri/card0 to seat0.
Start kwin with the drm-backend on seat0 and seat1, and make sure it starts on both instances

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: rkflx, graesslin, kwin, #kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D9553
2018-04-05 19:47:36 +02:00
Nerdopolis Turfwalker
7801afdd4c udev: Add the ability to query the current framebuffer.
Summary:
This adds the ability for kwin's udev handler to detect a usable framebuffer device.
This is very similar to the function that queries the primary GPU.

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: rkflx, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D9554
2018-04-05 19:46:20 +02:00
Alexey Min
d318cb3bd4 drm backend: choose correct EGL config with mesa-18
Summary:
Do not blindly select first EGL config from returned list, but choose the one that matches GBM surfaces, that will be created later.
GBM surfaces are created with GBM_FORMAT_XRGB8888 format, so choose the config that matches it.
With wrong format EglGbmBackend::resetOutput() will later fail with error EGL_BAD_MATCH.

Test Plan: Compile, run startplasmacompositor. Verify that OpenGL compositing is used, either by kwin debug console, or by kwin support information.

Reviewers: graesslin, davidedmundson, #kwin, #plasma_on_wayland, bshah

Reviewed By: davidedmundson

Subscribers: zzag, kwin, #kwin

Tags: #kwin, #plasma_on_wayland

Differential Revision: https://phabricator.kde.org/D11758
2018-04-05 01:29:17 +03:00
Roman Gilg
b35939c958 [libinput] Remove workaround for mouse configuration
Summary:
With the Wayland enabled Mouse KCM we do not need the workaround
to control button mapping and acceleration anymore.

Depends on D11468

Test Plan: Compiles.

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D11472
2018-03-31 17:31:01 +02:00
l10n daemon script
de8e2517e2 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-31 07:09:34 +02:00