Size grip can't be made to work on wayland, it's disabled by default and
it's not that relevant because kwin adds an invisible border around the
decoration that can be used as resize handles.
Use kwin's dbus api to query window info both on x11 and wayland.
In order to make dbus interaction code nicer, this change gets rid of
the nested dialog. With the proposed changes, you will have to select
window class or window title in the exception type combobox, click
"detect window properties" button, click a window and the kcm will fill
in "regular expression to match" text field.
BUG: 399763
This should fix the coordinates when windows are maximized, so it doesn't add
an extra margin, which is used by the outlines. Since outlines are not drawn
when windows are maximized, the area would stay blank.
BUG: 461358
FIXED-IN: 5.27
The current outline is so subtle as to be almost invisible even with
Breeze Dark, and actually invisible (by design) on Breeze Light. Thus it
doesn't serve its purpose of being an outline that well.
This commit makes it more contrasty, so that it's an actual outline more
of the time.
This commit adds outlines to window decorations. This will help users who have
a hard time distinguishing overlapping windows from each other, especially with
dark themes that can be quite strong and make the shadows difficult to see.
The outline takes the background color of the window and inverts it, so it should match any background color pretty well.
The "Allow resizing maximized windows from window edges" option is worded misleadingly:
What it actually does is continue showing window borders whenever they touch a screen edge.
It does not only affect maximized windows, and it is also not just about resizability,
but the presence of borders.
This commit changes the wording in the UI to reflect more accurately what it does.
To avoid duplicating the data files, the newly introduced kcmutils_generate_desktop_file cmake function was utilized.
This means KCMUtils is now a required dependency.
Test Plan:
- breeze-settings5 still loads both the KCMs
- both KCMs appear in the KRunner search
On touch devices, the default decoration button size is rather hard
to use. We have a thing to detect this however, KWin's Tablet Mode.
Using that, we can change button sizes based on this. Rather than
changing which size to use, change the base unit so we don't mess
around with config values.
This commit fixes the glitches in titlebar caption when it is updated near
the edge. These glitches were caused by the Titlebar_SideMargin being
multiplied by the incorrect largeSpacing factor when smallSpacing is used
in every other instance.
BUG: 418517
The geometry of the the title bar is not being correctly updated. The bug affects all C++-based window decorations (breeze, oxygen, even lightly) and can be observed when there isn't any title bar buttons to the left of the caption and the caption is changed (e.g. changing directories in dolphin), regardless of the alignment as long as the caption becomes close to the left edge. This makes sure that updateTitlebar sets the title bar's geometry in Decoration coordinates.
BUG: 418517
--m_iconSize for standalone buttons can be changed
dynamically based on user or container preferences.
Such an example could be the window buttons applet
that is resizing its buttons based on panel thickness
or when the applet is on the desktop and the user
resizes it. Previous implementation was failing
because even though m_iconSize was set as NULL for
StandAlone buttons, on the first painting m_iconSize
was set based on Button::geometry(). This of course
was failing because the Button::geometry() could change
afterwards and painting was not considering it to
calculate m_iconSize again.