Summary:
This wasn't used on startup (ksmserver calls KProcess)
Nor for the rules dialog (kwin invokes it with QProcess)
We may as well simplify the code and drop the dependency
See also T12140
Test Plan:
Restarted
Opened the rules dialog
Reviewers: #kwin, zzag
Reviewed By: #kwin, zzag
Subscribers: kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D26835
Summary:
In the KCFG autogenerated code we check for HAVE_BREEZE_DECO without
including the relevant file. This always fails, and so we save the
default plugin name/library as org.kde.kwin.aurorae
This doesn't match kwin's concept of the default and so we just fail to
load it.
BUG: 416525
Test Plan:
Reproduced
Saved a config
Reviewers: #kwin, ngraham
Reviewed By: ngraham
Subscribers: ngraham, kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D26814
Summary: Port to KConfigXt and also consider immutable element
Reviewers: #kwin, ervin, bport, mart, davidedmundson
Subscribers: zzag, kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D25949
While the slider is still there for non-Plasma, inside Plasma, where you would use System Settings, the slider is in Workspace Options.
Differential Revision: https://phabricator.kde.org/D26625
Summary: It works for the effect
Test Plan:
kcmshell5 kcm_kwin_effects
Change some settings, the "Restore defaults" button is enabled when the state is not the default state.
Open an effect configuration, the "Restore defaults" button is enabled when the settings are not default.
Reviewers: #kwin, crossi, ervin, zzag
Reviewed By: #kwin, zzag
Subscribers: zzag, kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D26040
Summary: Use a kcfg file to specify virtual desktops settings saved to kwinrc.
Test Plan:
kcmshell5 kcm_kwin_virtualdesktops
Change something, check apply buttons works appropriately
Save the settings and relaunch the kcm, the new settings are taken loaded correctly
Reviewers: #kwin, ervin
Reviewed By: ervin
Subscribers: kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D25871
Summary:
This makes it possible to detect these changes via KConfigWatcher.
This is needed for D25670
Reviewers: #kwin, ngraham, davidedmundson
Reviewed By: #kwin, ngraham, davidedmundson
Subscribers: ngraham, kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D25695
Summary:
Tabs in the Window Decoration KCM look awkward now because the frame is drawing an extra line while the tab bar is also drawing its line.
This patch just slightly alters an existing hack so that the frame's top line can't be seen.
Subscribers: kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D25582
Summary:
Selecting not to vsync does not make sense for an X11 compositor. In the end
we want clients to be able to present async if they want to but the compositor
is supposed to send swaps with vsync to the XServer in order to not generate
tearing artifacts.
There was also a detection logic which did some questionable things in case
vsync was not available. I don't think this is necessary at all since we can
just always run a timer to present with or without vsync.
Test Plan: kwin_x11 tested on i915.
Reviewers: #kwin, zzag
Subscribers: zzag, kwin
Tags: #kwin
Maniphest Tasks: T11071
Differential Revision: https://phabricator.kde.org/D23511
Summary:
Won't make things go much faster since everything that was
being passed by value is refcounted but still const & is a bit faster
than refcounting
For shared pointers instead of adding const & we move them into the
destination variable saving some cpu usage but at the same time making
clear the pointer is being stored by not being const &
Reviewers: zzag
Reviewed By: zzag
Subscribers: zzag, kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D25022
Summary:
Otherwise the combobox containing the switching effects escapes from the page. Same fix
as D24885.
BUG: 403151
FIXED-IN: 5.17.2
Test Plan:
Checkbox text now elides when the window is made very narrow, and combobox no longer gets
cut off.
Reviewers: #kwin, zzag, davidedmundson
Reviewed By: #kwin, zzag, davidedmundson
Subscribers: kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D24988
Otherwise the layout explodes.
Unfortunately it seems Layouts don't shrink the items within even if there's not enough room at all, so I need this fillWidth + maximumWidth workaround.
Differential Revision: https://phabricator.kde.org/D24885
Summary:
Hide the animation speed slider on Plasma as this becomes duplicated
with the global "animation speed" slider.
Also port to the new format for the config option which stores the
actual multiplier, not a magic number.
Test Plan:
Didn't appear normally
Manually modified env; slider appeared
Tested load/save of defaults and the two extremes
Reviewers: zzag
Reviewed By: zzag
Subscribers: zzag, kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D24075
Summary:
Right now a few of the window placement modes suffer one or more of the following problems:
- Inconsistency between the text shown in the Window Behavior and Window Rules KCMs
- Title does not indicate what it does
- Awkward wording
- Lack of unity in grammatical mood between the different modes
This patch fixes these issues by improving the strings and standardizing on the descriptive mood:
- Smart -> Minimal Overlapping
- Maximizing -> Maximized
- Cascade -> Cascaded
- Zero-Cornered -> In Top-Left Corner
Strings are also unified between the window behavior and window rules KCMs, and docbooks are adjusted accordingly.
Test Plan:
{F7279685, size=full}
{F7279694, size=full}
Reviewers: #kwin, #vdg, ndavis, filipf, zzag, romangg
Reviewed By: #kwin, #vdg, ndavis, filipf, romangg
Subscribers: gladhorn, alexeymin, IlyaBizyaev, broulik, hein, hpereiradacosta, GB_2, alexde, davidedmundson, romangg, cfeck, filipf, zzag, ndavis, kwin, kde-doc-english
Tags: #kwin, #documentation
Differential Revision: https://phabricator.kde.org/D23415
Summary:
Because KWin is a very old project, we use three kinds of null pointer
literals: 0, NULL, and nullptr. Since C++11, it's recommended to use
nullptr keyword.
This change converts all usages of 0 and NULL literal to nullptr. Even
though it breaks git history, we need to do it in order to have consistent
code as well to ease code reviews (it's very tempting for some people to
add unrelated changes to their patches, e.g. converting NULL to nullptr).
Test Plan: Compiles.
Reviewers: #kwin, davidedmundson, romangg
Reviewed By: #kwin, davidedmundson, romangg
Subscribers: romangg, kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D23618
We have lots of inconsistency at the moment in CMakeLists.txt files. Most
of it is due to kwin being a very old project. This change hopefully fixes
all of it.
Summary:
This has been commented out since 2014, I doubt it will come back.
This is a big amount of code, maintenance will be easier without it.
Reviewers: #kwin, zzag
Reviewed By: #kwin, zzag
Subscribers: romangg, graesslin, kwin
Tags: #kwin, #documentation
Differential Revision: https://phabricator.kde.org/D23069
Summary:
Revision 9a59e3fb6c removed the ghns
button, but did not remove the corresponding entry in the tab focus
chain.
Reviewers: #kwin, ngraham, zzag
Reviewed By: #kwin, zzag
Subscribers: kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D23936
Summary:
Apply the KDE HIG, use form layouts, make desktop files consistent and make the KCMs look better.
{F7323519}
{F7330485}
{F7330486}
{F7302318}
{F7302319}
Test Plan: Open the {nav Window Behavior} KCMs. All options should still work
Reviewers: #kwin, #plasma, #vdg, ngraham, zzag
Reviewed By: #kwin, #plasma, #vdg, ngraham, zzag
Subscribers: ngraham, davidedmundson, zzag, #vdg, #plasma, kwin, #kwin
Tags: #kwin
Maniphest Tasks: T10273
Differential Revision: https://phabricator.kde.org/D23615
Summary:
This allows all the section headers to always have the same look and feel and be
adjusted in just one place.
Depends on D23049
Test Plan: {F7181776}
Reviewers: #vdg, kwin, GB_2, #kwin
Reviewed By: #vdg, GB_2
Tags: #kwin
Maniphest Tasks: T10384
Differential Revision: https://phabricator.kde.org/D23055
Summary:
Switch to Q_ASSERT in order to make code a bit more consistent. We have
places where both assert and Q_ASSERT are used next to each other. Also,
distributions like Ubuntu don't strip away assert(), let's hope that
things are a bit different with Q_ASSERT.
Test Plan: Compiles.
Reviewers: #kwin, davidedmundson
Reviewed By: #kwin, davidedmundson
Subscribers: romangg, davidedmundson, kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D23605
Summary:
Apply the KDE HIG, use a form layout, make the desktop file consistent and make the KCM look better.
{F7160251}
{F7149956}
Test Plan: Open the Screen Edges and Touch Screen KCMs.
Reviewers: #kwin, #plasma, #vdg, zzag, ngraham
Reviewed By: #kwin, #plasma, #vdg, zzag, ngraham
Subscribers: ngraham, zzag, #vdg, #plasma, kwin, #kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D22909
Summary:
Tweak spacing and margins, improve the look of headers and descriptions.
{F7155024}
Test Plan: Open the Desktop Effects KCM and hover over a list item.
Reviewers: #kwin, #plasma, #vdg, ngraham
Reviewed By: #vdg, ngraham
Subscribers: ngraham, #vdg, #plasma, kwin, #kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D22914
Summary:
Use the same list style as the Virtual Desktops KCM and Kirigami actions with tooltips.
Also removes the info button. The copyright info can now be accessed by clicking on the item.
BUG: 409693
BUG: 335197
BUG: 335198
Test Plan:
Together with D22827:
{F7138726}
Reviewers: #kwin, #vdg, filipf, GB_2, ngraham, davidedmundson
Reviewed By: #kwin, #vdg, filipf, GB_2, ngraham, davidedmundson
Subscribers: ngraham, GB_2, filipf, kwin
Tags: #kwin, #vdg
Maniphest Tasks: T10273
Differential Revision: https://phabricator.kde.org/D22830
Summary:
The QML Window Decorations KCM uses a fake tab bar with code copied from Plasma-pa, due
to the lack of a real QML tab widget (see https://bugs.kde.org/show_bug.cgi?id=394296).
As a result, we have to manufacture our own by combining a TabBar with a frame in which
the content sits, and any change made to one needs to be applied to the other as well.
The Plasma-pa version just received a minor change in D22533. This patch implements the
same change for the Window Decorations KCM so they don't look inconsistent with one
another.
Test Plan: Before-and-afters are identical to the images in D22533
Reviewers: #kwin, #vdg, filipf
Reviewed By: #vdg, filipf
Subscribers: kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D22886
Summary:
So far we were following a bit unique and rare doxygen comment style:
/**
* Contents of the comment.
**/
Doxygen comments with this style look balanced and neat, but many people
that contribute to KWin don't follow this style. Instead, they prefer
more traditional doxygen comment style, i.e.
/**
* Contents of the comment.
*/
Reviewing such changes has been a bit frustrating for me (so selfish!)
and for other contributors.
This change switches doxygen comment style in KWin to a more traditional
style. The main reason for doing this is to make code review process easier
for new contributors as well us.
Reviewers: #kwin, davidedmundson
Reviewed By: #kwin, davidedmundson
Subscribers: kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D22812
Summary:
Currently code base of kwin can be viewed as two pieces. One is very
ancient, and the other one is more modern, which uses new C++ features.
The main problem with the ancient code is that it was written before
C++11 era. So, no override or final keywords, lambdas, etc.
Quite recently, KDE compiler settings were changed to show a warning if
a virtual method has missing override keyword. As you might have already
guessed, this fired back at us because of that ancient code. We had
about 500 new compiler warnings.
A "solution" was proposed to that problem - disable -Wno-suggest-override
and the other similar warning for clang. It's hard to call a solution
because those warnings are disabled not only for the old code, but also
for new. This is not what we want!
The main argument for not actually fixing the problem was that git
history will be screwed as well because of human factor. While good git
history is a very important thing, we should not go crazy about it and
block every change that somehow alters git history. git blame allows to
specify starting revision for a reason.
The other argument (human factor) can be easily solved by using tools
such as clang-tidy. clang-tidy is a clang-based linter for C++. It can
be used for various things, e.g. fixing coding style(e.g. add missing
braces to if statements, readability-braces-around-statements check),
or in our case add missing override keywords.
Test Plan: Compiles.
Reviewers: #kwin, davidedmundson
Reviewed By: #kwin, davidedmundson
Subscribers: davidedmundson, apol, romangg, kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D22371
Summary:
QPalette::background() is deprecated since long time ago. It is advised
to use QPalette::window() instead.
Reviewers: #kwin, apol
Reviewed By: apol
Subscribers: kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D22373
Summary:
- Window decorations, useless, since we use maximized and borderless
windows
- Virtual Desktop, odd concept to be useful on mobile
- KWin Effects, doesn't have much of usecase on mobile
Reviewers: nicolasfella, davidedmundson
Reviewed By: davidedmundson
Subscribers: kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D22336
Summary: This patch adds a clear button to the Desktop Effects search field by using Kirigami's SearchField.
Test Plan: {F6973312}
Reviewers: #kwin, #vdg, davidedmundson, ngraham
Reviewed By: #kwin, #vdg, davidedmundson, ngraham
Subscribers: ngraham, kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D22286
Summary:
This is an alternative solution to T8707 and in comparision to D13276 a less
drastic change to KWin's default behavior.
Instead of changing the border size default for all KDecoration plugins by
switching the default from border size Normal to None introduce new
functionality, which allows a KDecoration plugin to recommend a border size in
its metadata. By default KWin listens for these recommendations and sets the
border size accordingly.
If there is no metadata recommending a border size, KWin falls back to the
current setting of Normal sized borders.
A user is able to override the recommendations from the KCM, which has been
extended accordingly.
Test Plan: Manually with adjusted metadata of Breeze.
Reviewers: #kwin, #plasma, #vdg, ngraham
Reviewed By: #vdg, ngraham
Subscribers: hpereiradacosta, filipf, anemeth, davidedmundson, abetts, graesslin, ngraham, zzag, kwin
Tags: #kwin
Maniphest Tasks: T8707
Differential Revision: https://phabricator.kde.org/D13284
Summary:
In the context of the Touch Screen and Screen Edges KCM, using the term "Run Command" to
refer to KWin is inaccurate and misleading. By using a string that starts with an action
verb and no ellipses, it is suggested that the action is literally to run some command,
prompting the user to think "which command will it run? How do I choose what it is?"
This patch changes the action text to "Show KRunner" which is the proposed new standard.
See {T10966} for more information and reasons why to do this.
Test Plan:
{F6842531}
{F6842530}
Reviewers: #vdg, #kwin, ndavis
Reviewed By: #vdg, ndavis
Subscribers: ndavis, davidedmundson, kwin
Tags: #kwin
Maniphest Tasks: T10966
Differential Revision: https://phabricator.kde.org/D21342
Summary:
The current icon (`window-duplicate`) is semantically incorrect and visually disconnected from what it actually does.
This one is much more appropriate on both counts.
Test Plan: {F6792003, size=full}
Reviewers: #vdg, #kwin, zzag
Reviewed By: #kwin, zzag
Subscribers: zzag, kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D20801
Summary:
EffectsModel has to communicate with KWin in order to receive the
actual value of SupportedRole. So, in theory the model should notify
about loaded effects after receiving response from KWin, but that's
not the case.
Test Plan: Desktop Effects KCM no longer flashes when resetting changes.
Reviewers: #kwin, davidedmundson
Reviewed By: #kwin, davidedmundson
Subscribers: kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D18728
Summary:
If an effect is installed or removed, then all not yet committed changes
will be lost. This is undesired behaviour.
Reviewers: #kwin, davidedmundson
Reviewed By: #kwin, davidedmundson
Subscribers: davidedmundson, kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D18705
Summary:
The main motivation for adding this method is to avoid code duplication.
Both virtual desktops kcm and desktop effects kcm have their own logic
to create configuration dialogs for effects.
On the bright side, if we add support for declarative effect kcms, we
will need to change only this method.
Reviewers: #kwin, davidedmundson
Reviewed By: #kwin, davidedmundson
Subscribers: kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D18704
Summary:
A while ago desktop effects and compositing settings lived under the
same roof
{F6584639}
{F6584642}
but time has passed and now those two have their own kcms. This causes
some issues:
* for newcomers it's harder to find code of the Desktop Effects KCM;
* git history doesn't look good, e.g. "[kcmkwin/compositing] Add some
bugs to Desktop Effects KCM to fix later";
* in general, the mix of two doesn't look good in the code.
This change splits out the Desktop Effects KCM. Unfortunately, in order
to have more nicer code I had to refactor EffectModel a little bit.
Before:
{F6584669}
After:
{F6587570}
Reviewers: #kwin, davidedmundson
Reviewed By: #kwin, davidedmundson
Subscribers: davidedmundson, ltoscano, mart, ngraham, kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D18703
Thanks to 5cfdbaa4b081a030a01477fd13c20f710fe58d4b in kdeclarative the implicitCellWidth
and implicitCellHeight of the GridView can be adjusted without hacks.
Differential Revision: https://phabricator.kde.org/D19729
Summary:
In KDE 4, there was a very handy option to disable decoration tooltips.
Decoration tooltips were lost in transition to KDE Plasma 5, and so
the option.
Given that decoration tooltips were brought back to KDE Plasma 5, "Show
decoration button tooltips" option can be still useful for people(like me)
who may wish to disable them because of personal preference.
Reviewers: #kwin, broulik, mart
Reviewed By: #kwin, mart
Subscribers: ngraham, kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D19152
Summary: The header text is supposed to be the KCM's name, not a duplicate of the tooltip text.
Test Plan: {F6615111, size=full}
Reviewers: #vdg, GB_2
Reviewed By: #vdg, GB_2
Subscribers: kwin
Tags: #kwin
Maniphest Tasks: T10273
Differential Revision: https://phabricator.kde.org/D19018
Summary: It makes very less sense to show on the the mobile devices
Reviewers: davidedmundson
Reviewed By: davidedmundson
Subscribers: kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D18978
Summary:
We have a mix of different doxygen comment styles, e.g.
/*!
Foo bar.
*/
/**
* Foo bar.
*/
/** Foo bar.
*/
/**
* Foo bar.
*/
/**
* Foo bar.
**/
To make the code more consistent, this change updates the style of all
doxygen comments to the last one.
Test Plan: Compiles.
Reviewers: #kwin, davidedmundson
Reviewed By: #kwin, davidedmundson
Subscribers: kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D18683
Summary:
Found better categories for GHNS v3: looks like only Aurorae is supported?
Also refresh the themes when you close the GHNS window, in case something was downloaded.
Test Plan: Open GHNS, download new theme, close GHNS -> new theme visible
Reviewers: leinir, graesslin, #kwin, davidedmundson
Reviewed By: leinir, #kwin, davidedmundson
Subscribers: ngraham, cfeck, kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D18935