Commit graph

136 commits

Author SHA1 Message Date
Albert Astals Cid
e144748c7a Add some const &
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
2019-10-30 19:23:01 +01:00
Vlad Zahorodnii
b8a6fd7c46 Don't initialize QFlags<T> with nullptr
Summary: This looks very odd.

Test Plan: Compiles.

Reviewers: #kwin, romangg

Reviewed By: #kwin, romangg

Subscribers: apol, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D24086
2019-09-19 21:42:34 +03:00
Vlad Zahorodnii
62a7db7028 Use nullptr everywhere
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
2019-09-19 17:48:21 +03:00
Vlad Zagorodniy
630006e6f7 Delete unused includes
We don't use assert().
2019-09-06 16:07:55 +03:00
Vlad Zagorodniy
7a3722b4f5 Switch to Q_ASSERT
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
2019-08-31 20:07:05 +03:00
Vlad Zagorodniy
c7639fd7ed Port away from deprecated headers
Summary: Headers like stdio.h are deprecated in C++.

Test Plan:
Compiles.

clangd no longer spews these warnings

{F6997789, size=full}

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D22351
2019-07-09 23:59:07 +03:00
Vlad Zagorodniy
de04d362da [kcmkwin/rules] Return absolute path of decoration color scheme
Summary:
We need to return the absolute path instead of base name so decoColorToCombo
can return the correct index.

Test Plan:
* Go to System Settings > Window Management > Window Rules;
* Create a new rule for Konsole to force the Oxygen color scheme,
  close the dialog, and click the Apply button;
* Open the rules dialog (you don't have to modify anything), click OK button, then Apply button.

Without this patch, Breeze color scheme will be forced after the
last step.

Reviewers: #kwin, davidedmundson

Reviewed By: #kwin, davidedmundson

Subscribers: graesslin, broulik, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17655
2019-01-14 22:05:04 +02:00
Martin Flöser
0b28abeb01 Port window specific rules dialog to DBus
Summary:
The dialog invoked through user actions menu takes the internal uuid as
command line argument which allows to query the required information
from KWin instead of using X11.

This allows to enable the system for Wayland windows.

In order to replace the usage of ClientMachine in the rules dialog the
dbus interface is extended by a value whether the window is on the
localhost. This is exposed through a virtual method on toplevel which is
overridden in ShellClient and there always returning true.

Test Plan: Run a nested Wayland and opened the dialog on a wayland window

Reviewers: #kwin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D17750
2018-12-31 07:58:12 +01:00
Kai Uwe Broulik
1fe3c765cd Merge branch 'Plasma/5.12' into Plasma/5.14 2018-10-12 13:54:24 +02:00
Kai Uwe Broulik
980e390743 [kcmkwin/ruleswidget] Disable "Detect" button when countdown is running
Avoids triggering an assert and communicates that the timeout is running.
Ideally, there was a countdown label of some sort but this is better than crashing.

BUG: 399644
FIXED-IN: 5.12.8

Differential Revision: https://phabricator.kde.org/D16124
2018-10-12 13:51:25 +02:00
Scott Harvey
393af855c4 Revert "Revert "Add "SkipSwitcher" to API""
This reverts commit 5ef119044d.
2018-05-23 23:33:39 -05:00
Luca Beltrame
5ef119044d
Revert "Add "SkipSwitcher" to API"
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
2018-04-28 09:26:51 +02:00
Scott Harvey
8a2a00a4ca Add "SkipSwitcher" to API
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
2018-04-27 09:43:13 -05:00
Martin Flöser
d61eaa2d66 Add a new desktopfile name rule
Summary:
This allows to override the desktop file name.

CCBUG: 351055

Test Plan: Created a window rule for telegram-desktop to fix the icon

Reviewers: #kwin, #plasma

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D11266
2018-03-18 09:15:15 +01:00
Martin Flöser
7a9c805b2a [kcmkwin] Re-enable detect button for window rules
Got disabled in 5.12 branch, but is functional in master.
2018-03-04 16:32:20 +01:00
Martin Flöser
88b9de04ed Merge branch 'Plasma/5.12' 2018-03-04 09:43:38 +01:00
Martin Flöser
6d6576f819 [kcmkwin/rules] Disable detect button on Wayland
Summary:
The detect functionality is still extremely bound to X11 and results in
a crash when clicked. Thus it's better to disable it completely in 5.12
on Wayland.

Test Plan: Button disabled on Wayland, enabled on X11

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D10642
2018-03-04 09:43:03 +01:00
Martin Flöser
1d71292e13 Add a method to dbus interface to query information about a window
Summary:
This call is added for the window rules kcm which has a detect
functionality. As that detect functionality cannot query any Wayland
windows we need to have some functionality in KWin core. Furthermore
this allows to simplify the code in the kcm as all the custom X11
interaction can be removed. KWin internally has the functionality to
find a window at a given position.

From a security perspective adding this dbus method is fine as the user
stays in control of the functionality. It requires active click to
select a window.

The new dbus call is already used in the rules kcm replacing the
X11 based detect functionality. That a detect is now able to get
information for both X11 and Wayland windows. So far only X11 windows
on X11 were supported. So this fills an important gap in the Wayland
offerings. It should now be possible to create rules for Wayland
windows (though may not be fully functional).

Test Plan: Run the kwin_rules_dialog and it detected the window correctly

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D10490
2018-02-25 14:12:04 +01:00
Martin Gräßlin
db95b96854 [kwinrules] Hide all autogroup related widgets
Summary:
Window tabs which are required for autogroup are currently not supported
in KWin. Thus exposing autogroup related window rules does not make any
sense.

This change hides the options again in the hope that we can bring the
feature back in future.

BUG: 370301
FIXED-IN: 5.8.2

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D2996
2016-10-17 08:02:10 +02:00
Ivan Čukić
5f4a91e8d7 [kwinrules] Properly setting the value of the activity combo box
Summary:
The activities combobox content is loaded asynchronously,
we are storing the configured value for the window rule
until the activity list is loaded into the combo box.
And then, we set that item as the current one in the combo.

Reviewers: #kwin, mart

Reviewed By: mart

Subscribers: luebking, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D2851
2016-09-24 19:17:20 +02:00
Kai Uwe Broulik
4f222c2cda [Rules Widget] Change decoration fallback color from "Oxygen" to "Breeze"
Reviewed-By: mgraesslin
2016-05-12 10:34:14 +02:00
Kai Uwe Broulik
f9da3fb0eb [Window Rules] Fix simple shortcut not being transfered to text field
The dialog only had a "Close" button but the text was only transfered in accepted()

Also fix the position of the QDialogButtonBox which is swapped and so the buttons appear at the top.

BUG: 360521
FIXED-IN: 5.6.1

Differential Revision: https://phabricator.kde.org/D1173
2016-03-21 10:28:44 +01:00
Kevin Funk
8ea4f4dae7 Port to CMake AUTOMOC
Summary: Run convert-to-cmake-automoc.pl over all .cpp files

Differential Revision: https://phabricator.kde.org/D882
2016-02-01 21:05:36 +01:00
Thomas Lübking
a4791e629d Add rule to protect the focus on a window
This allows to pin the focus on certain window as well
as to more easily give it away on others (typically launchers)

BUG: 185060
CCBUG: 337798
FIXED-IN: 5.5
REVIEW: 126059
2015-11-17 21:30:05 +01:00
Ivan Čukić
e44bffa097 Fixing activities list in the rulewidget
KActivities API is not synchronous anymore. If we want to retrieve
the activities, we should do it when we actually get the data.
We are listening to the service status changes and activity list changes.

REVIEW: 123869
BUG: 347732
2015-06-02 20:10:48 +02:00
Alex Richardson
5977545ee6 Fix invalid escape sequence 2014-03-25 22:17:15 +01:00
Martin Gräßlin
18a37d7ee8 [kwin] Fix includes of kde4support headers
* drop unused headers
* use QExplicitlySharedDataPointer instead of KSharedPointer
* drop KDE/ from includes
2014-03-18 14:34:36 +01:00
Aleix Pol
c72e519d9c Remove KDE/ prefix in include directories
It's unneeded and deprecated since KF5.
2014-03-17 16:24:10 +01:00
Martin Gräßlin
fdee4ea8c8 Adjust kde-workspace to introduction of flags in NET classes 2014-02-05 17:40:19 +01:00
Martin Gräßlin
9414d8f7f1 [kwin] Re-enable KActivities support
* KWin lists the activities in the Alt+F3 menu
* Kcmrules though looks wrong
2014-02-03 13:40:47 +01:00
Martin Gräßlin
981e7afa96 [kwin/kcmrules] Call setupUi before accessing the ui widgets
This caused a crash with Qt 5.3 dev branch as the widgets are null
before setupUi is called. Might be a bug in Qt but still it makes
sense to first call setupUi and then do further changes to the Ui.
2014-01-30 10:39:40 +01:00
Matteo De Carlo
aad36da80b Replace NULL with nullptr in kcmkwin
Replacing all NULL to nullptr in all the files in kcmkwin folder
(also substituting some "0" used as nullptr with nullptr)

REVIEW: 114803
2014-01-08 10:30:38 +01:00
Aleix Pol
f8468b4043 Drop KDE4Support in kde-workspace/kwin
REVIEW: 114316
2013-12-05 20:24:02 +01:00
Martin Gräßlin
affa7da944 [kcm-kwinrules] Add option for window decoration scheme 2013-11-25 10:21:21 +01:00
Martin Gräßlin
3956c73c53 [kwinrules] KIcon -> QIcon::fromTheme 2013-09-30 08:44:57 +02:00
Thomas Lübking
10e7ef75ba harmonize combo/lineedit enabling connections
BUG: 322650
FIXED-IN: 4.11
REVIEW: 111627
2013-07-24 21:04:08 +02:00
Thomas Lübking
adf3509647 fix initial tabs in rules kcm 2013-04-16 22:07:05 +02:00
Àlex Fiestas
8116322f93 Make activities really optional in KWin
KWin is already able to work without activities but there was some code
left in the rules GUI.

REVIEW: 109815
2013-04-08 17:43:57 +02:00
Thomas Lübking
158d060b5f turn "ignore geometry" forcerule into a setrule
and btw. replace legacy "ignoreposition" by "ignoregeometry"

this will allow to use "apply initially" as "force" used to act
(ignore position on placement) and "force" to prevent clients
from reconfiguring themselves (to not break a tabgroup or to just
not be annoying)

BUG: 311720
CCBUG: 252314
REVIEW: 109691
FIXED-IN: 4.11
2013-03-28 20:31:08 +01:00
Martin Gräßlin
60c42b7a34 s/KLocale/KLocalizedString/g
Many headers included KLocale to use i18n and co. But those methods are
defined in KLocalizedString and not in KLocale.

With KF5 klocale.h does no longer include KLocalizedString causing lots
of compile errors.
2013-03-07 13:59:15 +01:00
Thomas Lübking
e642c5cb9d Use the NULL Uuid instead of "ALL"
to indicate "on all activities"

REVIEW: 107855
2013-01-23 21:27:45 +01:00
Martin Gräßlin
ad65af23d7 Remove unused code
SVN_SILENT
2013-01-08 11:08:56 +01:00
Thomas Lübking
850c1e6f0d add screen rule 2012-09-19 20:21:43 +02:00
Martin Gräßlin
a394fade64 Remove Tiling support from KWin
As discussed on the mailinglist [1] the tiling support is
removed from KWin. The main reasons for this step are:
* it is unmaintained
* it is a mode not used by any of the core KWin team
* original developer said at Akademy 2012 that he is not
  interested in picking up the work again
* tiling has quite some bugs, e.g. multi screen not supported
* is conflicting with other concepts in KWin, e.g. activities

There is ongoing work to get tiling supported through a KWin
script, which is a preferred way as it does not influence the
existing C++ code base.

[1] http://lists.kde.org/?l=kwin&m=133149673110558&w=2
BUG: 303090
FIXED-IN: 4.10
REVIEW: 105546
2012-07-14 11:18:06 +02:00
Ivan Čukić
0d60a7049d Adds activity window rules to KWin
- adds the kcm rule option to set the activity - one or all option like
  for virtual desktops
- makes the windows obey the rule
- makes the rule enforced even when the user tries to change the
  window's activity via the alt+f3 menu

REVIEW:104972
2012-05-17 16:32:06 +02:00
T.C. Hollingsworth
36e23e85c9 fix typo in kwin window-specific rules WhatsThis help
CCMAIL: kde-i18n-doc@kde.org
2011-12-08 02:00:14 -07:00
Thomas Lübking
9ec32d5942 4.7 backportable rules ui fixes
remove uncertain "extra role" match
fix shortcut editor s/s connection

REVIEW: 7001
2011-10-05 23:54:06 +02:00
Luboš Luňák
2202be232b Revert "rules must never be null"
This reverts commit 169a3d887d58aaaae7457a8ae3003478b78e8f3b.
2011-09-29 16:22:24 +02:00
Luboš Luňák
87a7c0f851 Revert "fix commit 169a3d88, restoring the parameter is good, asserting it not"
This reverts commit 80f8a7b9f40ed48adbd5277b1f58e1651700b56c.
2011-09-29 16:22:24 +02:00
Thomas Lübking
ed216df8e3 fix commit 169a3d88, restoring the parameter is good, asserting it not 2011-09-26 15:16:15 +02:00