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
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
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
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
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
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
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
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
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
Centralise resolution-dependent computation into the leaf cursor class.
Listen to scale changes and update the cursor when it happens
Reviewed by David Edmundson
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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