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
Summary:
Seems to have regressed in Plasma 5.12 due to code reordering. Now the
property is explicitly updated once the NETRootInfo is created.
BUG: 391034
FIXED-IN: 5.12.5
Test Plan:
Test case exposing the problem added. Fails without the patch,
succeeds with the patch.
Reviewers: #kwin, #plasma
Subscribers: plasma-devel, kwin
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D10836
Summary:
This patch implements using EGL_IMG_context_priority to request
high-priority rendering contexts if the extension is available.
EGL_IMG_context_priority is currently used in this fashion by
e.g. Android's SurfaceFlinger (RenderEngine.cpp) and libweston
(gl-renderer.c) and seems promising given this widespread
acceptance.
Reviewers: #kwin, graesslin, romangg, davidedmundson
Subscribers: kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D11572
Summary:
As documented via bug reports and online support requests, many users have difficulty learning that window decorations are customizable, because they don't notice or understand the little icon-only button in the bottom-left corner of each theme preview.
This patch centers the buttons and adds text including the theme name , making it obvious what the buttons are for.
Also, clicking on one of the buttons now automatically selects its corresponding theme, because configuring an un-selected theme doesn't make a lot of sense and could lead to user confusion once this UI is more obvious and widely-used.
BUG: 390245
Test Plan:
{F5761897}
- Clicked on the configure buttons; each one selects its parent theme and opens its configuration dialog
Reviewers: #kwin, #plasma, #vdg, cfeck, graesslin
Reviewed By: #kwin, #plasma, graesslin
Subscribers: richardbowen, zzag, kigwana, rkflx, matheusm, fabianr, abetts, Fuchs, graesslin, kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D11201
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
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