Summary:
Our icons can be recolored. However there is a difference between custom colors
on widgets and icons. We will respect the palette but KIconLoader that creates
the icon pixmaps operates on an application wide palette basis. This can create
miscolored icons when a widget has a custom palette. A helper function is
introduced to load the pixmaps that switches the palette of the global
KIconLoader if necessary and resets it appropriately.
Test Plan:
Before:
{F8205856}
After:
{F8205857}
Reviewers: #breeze, ndavis, cblack, hpereiradacosta, mart
Reviewed By: cblack, mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D28433
Summary:
After a widget has been unregistered, a WinIdChange event may be sent.
If that happens, ShadowHelper is going to try to install a shadow for
the corresponding widget. Obviously, this is wrong.
Reviewers: #plasma, cblack
Reviewed By: cblack
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D28075
Summary: This fixes a small bug in the Breeze window decoration settings where clicking on 'Defaults' did nothing to change 'Draw a circle around close button' . This patch now causes 'Draw a circle around close button' to default correctly.
Reviewers: #breeze, hpereiradacosta
Reviewed By: hpereiradacosta
Subscribers: ngraham, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D28087
Summary: The Cursor Specification doesn't even mention these two, but Chromium-based apps search for them using a different name than ours, so it wouldn't hurt to symlink them.
Test Plan:
This can be tested on any webpage using either `cursor: grab` or `cursor: grabbing` CSS rule. But here's a page where you can easily test them:
http://elektronotdienst-nuernberg.de/bugs/cursor.html
Reviewers: #breeze, broulik, ngraham
Reviewed By: #breeze, broulik, ngraham
Subscribers: ngraham, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D27424
Summary:
Due to filesize concerns, we optimized the Volna wallpaper to be JPEG compressed at 90% quality.
JPEGs seems like the right way to go, but at 90% there is a noticeable loss of sharpness and JPEG artifacts appear, both of which are more prominent the smaller the resolution.
I used the same tool (squoosh) to generate more high quality JPEGs, paying attention to how each resolution responded to a certain quality setting.
In the end I had to use values between 94 and 98 in order to ensure there is no noticeable difference with the original PNGs.
This brings up the total file size to 17.4 MiB, which I think is still fine, especially given that this is our default wallpaper for an LTS release.
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D27045
Summary:
Every time Breeze needs to check whether given widget has an alpha
channel, it makes a synchronous X call to figure out whether a
compositing window manager is running on a particular screen. This
is inefficient!
Luckily for us, Qt XCB QPA monitors compositing manager selections
and caches the ownership status of each one. That cached ownership
data can be accessed via QX11Info::isCompositingManagerRunning().
Reviewers: #plasma, hpereiradacosta
Reviewed By: hpereiradacosta
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D26978
Summary:
Since Qt 4 style plugin had been dropped, we can use QX11Info::connection()
directly.
Reviewers: hpereiradacosta
Reviewed By: hpereiradacosta
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D27000
Summary:
Because of the issue described in T12611, changing the filetype of the Next wallpaper is
problematic and will cause a black screen on upgrade.
This terrible horrible patch works around the issue by using the .png filename extension
even though this is not accurate. That way, the file names are the same as the old
versions of the Next wallpaper and will be loaded correctly. Using the wrong filename
extension does not actually cause any problems, it's just inaccurate. a `README` file is
placed next to the images to explain this.
I'm sorry.
Long-term, we should investigate T12611.
Test Plan:
Have previous Next wallpaper (Ice Cold) installed
Replace it on disk with Volna in original JPEG form
restart plasmashell -> black screen
Try the above again with this patch
restart plasmashell -> new wallpaper visible
Reviewers: davidedmundson, #plasma, ognarb
Reviewed By: ognarb
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D26972
Summary: Volna won the wallpaper competition, so time to add it to Breeze as the new default!
Test Plan: Apply patch, compile, and restart plasmashell
Reviewers: #vdg, #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: raveomelette, IlyaBizyaev, Luwx, ndavis, broulik, rikmills, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D26953
Summary:
Since lifetime of a KWindowShadow doesn't strictly match the lifetime
of the associated widget, we need to unregister the shadow when it's
destroyed in order to prevent accessing or deleting dangling pointers
afterwards.
BUG: 416854
Test Plan: plasmashell no longer crashes.
Reviewers: #plasma, broulik
Subscribers: apol, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D26966
Summary:
The primary task of a compositor is to take a bunch of buffers from
different clients and present them on the screen. However, the compositor
may need to present its own stuff on the screen as well.
On X11, internal clients (the ones created by KWin) are backed by real
windows. This looks a bit clumsy since KWin uses X11 to communicate with
itself.
On Wayland, we use our own QPA that talks to KWin directly. Given that
internal clients with the custom QPA are no longer backed by wayland
surfaces or x11 windows, things like blur, background contrast, and
shadows must be set through KWindowSystem APIs so KWin can catch the
relevant API calls and handle them accordingly.
The good thing is that we get rid of a good portion of platform-specific
code. The bad thing is that we still need to be cautious about QPAs that
destroy the underlying platform resources upon a window becoming hidden.
Reviewers: #kwin, #plasma, mart
Reviewed By: #plasma, mart
Subscribers: mart, plasma-devel
Tags: #plasma
Maniphest Tasks: T12496
Differential Revision: https://phabricator.kde.org/D26475
Summary:
KWindowSystem cannot be used in the Qt 4 style plugin. On the other hand,
we need to use KWindowSystem to make QWidget-based internal clients in
KWin cast drop-shadows.
Another problem with the Qt 4 style plugin is that some distributions
have already dropped Qt 4, so one has to build it first in order to
verify that his or her change works with Qt 4.
Given maintenance burden and the fact that Qt 6 is around the corner,
this change drops the Qt 4 style plugin.
Reviewers: #kwin, #plasma, davidedmundson
Reviewed By: #kwin, #plasma, davidedmundson
Subscribers: davidedmundson, mart, plasma-devel
Tags: #plasma
Maniphest Tasks: T12496
Differential Revision: https://phabricator.kde.org/D26476
Summary:
center only the drawing of the components but never modify the
subcontrolrects (and hit targets)
BUG: 416348
FIXED-IN: 5.18.0
Test Plan:
now the handle activates immediately without one single pixel
margin
Reviewers: #vdg, hpereiradacosta, ndavis
Reviewed By: #vdg, ndavis
Subscribers: ngraham, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D26783
Summary:
center only the drawing of the components but never modify the
subcontrolrects (and hit targets)
BUG: 416348
FIXED-IN: 5.18.0
Test Plan:
now the handle activates immediately without one single pixel
margin
Reviewers: #vdg, hpereiradacosta, ndavis
Reviewed By: #vdg, ndavis
Subscribers: ngraham, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D26783
Summary:
This look makes listviews look way better, not having the selected
items look truncated into nothingness.
Always display "big" handles, due to the numerous complaints of the slim handles not being obvious
Test Plan:
Before:
{F7882628}
After:
{F7882624}
Reviewers: #plasma, #breeze, #vdg, ngraham, hpereiradacosta
Reviewed By: #vdg, ngraham, hpereiradacosta
Subscribers: ndavis, ahiemstra, hpereiradacosta, mthw, plasma-devel
Tags: #plasma
Maniphest Tasks: T9126
Differential Revision: https://phabricator.kde.org/D26655
Summary:
Second part of D26655, removes the thin scrollbar and makes it always thick
to implement the desired design
BUG: 396747
FIXED-IN: 5.18.0
Test Plan: {F7884060}
Reviewers: #plasma, #vdg, #breeze, ngraham, ndavis
Reviewed By: #vdg, #breeze, ngraham, ndavis
Subscribers: plasma-devel
Tags: #plasma
Maniphest Tasks: T9126
Differential Revision: https://phabricator.kde.org/D26685
Summary: If the widget has an item view parent, use the View Background color. Otherwise, use Window Background.
Test Plan: {F7881597, size=full}
Reviewers: #vdg, #breeze, hpereiradacosta, ngraham
Reviewed By: #vdg, hpereiradacosta
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D26639
Summary:
QQC2/Kirigami checkboxes and radio buttons can turn invisible when rendered over a selected item because their background isn't rendered and they don't have any hacks to detect when they're being rendered over a selected list item.
While the problem isn't technically a Breeze QStyle problem and a hack could be made for QQC2/Kirigami, I don't think there's any great style benefit to not rendering a background for the checkbox. I suppose there is a performance benefit to not rendering a checkbox background except for when the background is different from normal. In my testing with GammaRay's paint analyzer, the checkbox background has a cost less than 5%. The radiobutton background has a cost of 15-20% (maybe it can be improved?).
Reviewers: #vdg, #breeze, #plasma, hpereiradacosta, ngraham
Reviewed By: #vdg, hpereiradacosta, ngraham
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D26572