Commit graph

73 commits

Author SHA1 Message Date
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
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
2a8ab547e1 Move X11Cursor into the x11standalone platform plugin
At the same time the xinput2 integration is split out of X11Cursor
and made a standalone part of the platform plugin. XInput integration
is nowadays not only used by the cursor position polling, but also
for modifier only shortcuts.

By splitting it out the modifier shortcuts start to work also when
one doesn't have anything requesting a mouse position polling.

This also simplifies the conditional builds: xinput integration is
only included if we have support for it at compile time without having
to have many ifdefs in the cursor implementation. For the inclusion of
cursor in the kcmkwin this also removes all the ifdefs.

The key events are only requested if we have xinput 2.1. Otherwise we
would not get all raw events if the input device gets grabbed.

Reviewers: #kwin, #plasma_on_wayland

Subscribers: plasma-devel, kwin

Tags: #plasma_on_wayland, #kwin

Differential Revision: https://phabricator.kde.org/D2473
2016-08-19 10:57:09 +02:00
Martin Gräßlin
8a9bbf7ca3 XCB::CURSOR becomes a required dependency
It was only optional because build.kde.org did not provide it when the
dependency got introduced.
2015-06-04 17:50:29 +02:00
Martin Gräßlin
0faf2fbcf8 Use xcb_cursor library instead of Xlib based one in Cursor
Straight forward port from XLib based XCursor library to the
xcb variant which is considerably new. The xcb variant only allows
to create xcb_cursor_t for the default theme and size. Which suits
the needs in Cursor quite well, but means it's not a replacement for
the usage in zoom effect.

REVIEW: 122290
2015-02-06 13:41:18 +01:00
Martin Gräßlin
1c2f27945c Adjust kcmkwins to new ki18n
Define the TRANSLATION_DOMAIN in each of the kcms and use
ki18n_wrap_ui.
2014-05-05 08:03:55 +02:00
Martin Gräßlin
28b4cfaa9a Drop build dependency on kde4support for the build system
* Ported last qt4_wrap thingy to qt5_wrap thingy
* Include KF5Init (needed for kdeinit_executable
* Optionally include KF5DocTools and bind the docs subdirectory to it
* Include GenerateExportHeaders
2014-04-03 10:15:57 +02:00
Martin Gräßlin
dbf2218338 [kwin] kde4_add_ui_files -> qt5_wrap_ui
Less deprecated CMake usage.
2014-03-18 11:06:56 +01:00
Martin Gräßlin
8e4f8f0d9c [kwin/kcms] Only link KCMUtils where needed
In some KCMs we don't use anything from KCMUtils but just KCModule
which is in ConfigWidgets.
2014-03-18 07:41:30 +01:00
Martin Gräßlin
4586767db8 [kwin] Use imported targets for all XCB libs
Requires 04f78489265b6e52cabd2980dfc417abeee3a695 from ECM
2014-02-25 15:48:39 +01:00
Hrvoje Senjan
814ff851b4 Use correct Activities, they are now a proper framework 2014-02-13 20:06:33 +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 Klapetek
54bc491c46 Port to KF5 renaming changes 2013-12-11 21:41:47 +01:00
Aleix Pol
f8468b4043 Drop KDE4Support in kde-workspace/kwin
REVIEW: 114316
2013-12-05 20:24:02 +01:00
Aleix Pol
7b110f0671 Improve CMake usage
It's basically a run of the port-cmake.sh script in here, mostly the changes
are the following:
- Using KF5::* targets
- Using the proper macros, following recent developments in frameworks
2013-11-15 13:37:47 +01:00
Aurélien Gâteau
05b6de1002 ${KDE4Support_LIBRARIES} => KF5::KDE4Support
Fixes a few link errors
2013-10-29 13:00:46 +01:00
Sebastian Kügler
1c3e540507 kde4_add_kdeinit_executable becomes kf5_add_kdeinit_executable 2013-10-08 01:00:27 +02:00
Martin Gräßlin
a63ca0c311 Fix linking and includes
Seems like there were some changes, we need more explicit linking.
2013-10-02 15:23:56 +02:00
Martin Gräßlin
98b5f64c38 [kwinrules] Adjust linking of kwinrules KCM to Qt5/KF5 2013-09-30 09:56:35 +02:00
Martin Gräßlin
5b1f4a4131 [kwinrules] Use KWin::Cursor to map Qt::CursorShape to an X cursor
Needed for grabbing the pointer.
2013-09-30 09:53:56 +02:00
Martin Gräßlin
9ab751042a Drop X11_XCB library dependency
We don't need it anymore - the xcb connection is also provided by
QX11Info.
2013-07-24 09:58:43 +02:00
Martin Gräßlin
dfec59c60e Port getStringProperty to XCB 2013-05-13 08:48:19 +02:00
Martin Gräßlin
5cd223f051 Improved resolving whether a window is on local machine
Most windows use the hostname in WM_CLIENT_MACHINE, but there are windows
using the FQDN (for example libreoffice). So instead of "foo" it is
"foo.local.net" or similar. The logic so far has been unable to properly
determine whether windows with FQDN are on the local system.

In order to solve this problem the handling is split out into an own
class which stores the information of hostname and whether it is a local
machine. This is to not query multiple times. To determine whether the
Client is on the local system getaddrinfo is used for the own hostname
and the FQDN provided in WM_CLIENT_MACHINE. If one of the queried
names matches, we know that it is on the local machine. The old logic to
compare the hostname is still used and getaddrinfo is only a fallback in
case hostname does not match.

The problem with getaddrinfo is, that it accesses the network and by that
could block. To circumvent this problem the calls are moved into threads
by using QtConcurrent::run.

Obviously this brings disadvantages. When trying to resolve whether a
Client is on the local machine and a FQDN is used, the information is
initially wrong. The new ClientMachine class emits a signal when the
information that the system is local becomes available, but for some
things this is just too late:
* window rules are already gathered
* Session Management has already taken place

In both cases this is an acceptable loss. For window rules it just needs
a proper matching of the machine in case of localhost (remote hosts are
not affected). And the case of session management is very academic as it
is unlikely that a restoring session contains remote windows.

BUG: 308391
FIXED-IN: 4.11
REVIEW: 108235
2013-01-21 16:00:49 +01: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
Thomas Lübking
d233891da7 make kwinrules kcm more user friendly 2011-05-08 21:30:15 +02:00
Luboš Luňák
1a02507f50 more helper apps to libexec
svn path=/trunk/KDE/kdebase/workspace/; revision=1122313
2010-05-03 15:02:26 +00:00
Dirk Mueller
d46ff1342f fix link lines
svn path=/trunk/KDE/kdebase/workspace/; revision=829218
2008-07-07 20:56:56 +00:00
Laurent Montel
778c869e40 Commit patch from Alex
(He didn't have time to make it yesterday and will able to commit it next thursday)
This patch clean up some :
target_link_libraries(kfoo kdeinit_kfoo) which is already done in kde4_add_kdeinit_executable()
macro 	and use "INSTALL_TARGETS_DEFAULT_ARGS" in other place.
I tested all compile file, all works fine but if there is a pb send me a mail.

CCMAIL: neundorf@kde.org 

svn path=/trunk/KDE/kdebase/workspace/; revision=795711
2008-04-11 06:52:03 +00:00
Christian Ehrlicher
d91c540b61 LIB_INSTALL_DIR -> INSTALL_TARGETS_DEFAULT_ARGS
svn path=/trunk/KDE/kdebase/workspace/; revision=792590
2008-04-01 16:42:27 +00:00
David Johnson
dbb57de9d5 convert rules dialog to qt4 format; remove qt3support dependency
svn path=/trunk/KDE/kdebase/workspace/; revision=770234
2008-02-03 04:37:34 +00:00
Urs Wolfer
6e87d16cec * enable deprecated warnings
* less Q3 support

svn path=/trunk/KDE/kdebase/workspace/; revision=763174
2008-01-18 20:14:40 +00:00
Luboš Luňák
d6b7ef180d No kde3/qt3 support in kwin core. Saves about 150M of memory in gdb
by not loading the support libraries and the complete kdelibs stack it depends
on. Gdb taking 0.5M and lousy handling of near-OOM in Linux kernel
can be a pretty bad combination :(.


svn path=/trunk/KDE/kdebase/workspace/; revision=741856
2007-11-26 15:42:44 +00:00
Luboš Luňák
26149b29fb Porting uic3->uic4 is fun.
svn path=/trunk/KDE/kdebase/workspace/; revision=731738
2007-11-01 18:51:01 +00:00
Laurent Montel
08987fd938 KDE4_KDE3SUPPORT_LIBS not necessary
svn path=/trunk/KDE/kdebase/workspace/; revision=723503
2007-10-09 20:41:01 +00:00
Allen Winter
5c93175949 remove kde4_automoc()
svn path=/trunk/KDE/kdebase/workspace/; revision=685984
2007-07-10 09:14:12 +00:00
Laurent Montel
2c4161bbaa Remove not necessary cmake variable
svn path=/trunk/KDE/kdebase/workspace/; revision=683772
2007-07-05 09:27:29 +00:00
Dirk Mueller
1e3214ed73 include cleanup to separate workspace
svn path=/trunk/KDE/kdebase/workspace/; revision=678951
2007-06-22 16:32:06 +00:00
Luboš Luňák
047ad1b80a Merging from old trunk:
r619161 | mlaurent | 2007-01-02 22:48:19 +0100 (Tue, 02 Jan 2007) | 2 lines

Use signal to refresh config into all kwin instance


svn path=/trunk/KDE/kdebase/workspace/; revision=659520
2007-04-30 11:32:47 +00:00
Luboš Luňák
ff291be58f Merging from old trunk:
r615451 | mlaurent | 2006-12-21 16:34:31 +0100 (Thu, 21 Dec 2006) | 2 lines

Use dbus interface


svn path=/trunk/KDE/kdebase/workspace/; revision=659495
2007-04-30 10:01:00 +00:00
Luboš Luňák
b2eabf7b36 Merging from old trunk:
r602118 | neundorf | 2006-11-05 13:24:44 +0100 (Sun, 05 Nov 2006) | 5 lines

-remove kde4_install_libtool_file(), not necessary anymore since we switched away from libltdl

Alex


svn path=/trunk/KDE/kdebase/workspace/; revision=659301
2007-04-29 22:32:46 +00:00
Luboš Luňák
9faad7bc5e Merging from old trunk:
r601561 | mlaurent | 2006-11-03 17:35:38 +0100 (Fri, 03 Nov 2006) | 2 lines

Port to uic4


svn path=/trunk/KDE/kdebase/workspace/; revision=659298
2007-04-29 22:30:07 +00:00
Luboš Luňák
2c539daa5d Merging from old trunk:
r598290 | mlaurent | 2006-10-23 08:53:27 +0200 (Mon, 23 Oct 2006) | 5 lines

Apply Alex patch (now we can use enable-final argument
some module compiles with enable-final now)
As discussed with Alex it's not necessary to have program name
into automoc macro


svn path=/trunk/KDE/kdebase/workspace/; revision=659295
2007-04-29 22:04:13 +00:00
Luboš Luňák
d8439e8543 Merging from old trunk:
r564549 | mlaurent | 2006-07-20 15:08:26 +0200 (Thu, 20 Jul 2006) | 2 lines

Replace all bin by ${BIN_INSTALL_DIR}


svn path=/trunk/KDE/kdebase/workspace/; revision=659256
2007-04-29 20:46:45 +00:00
Luboš Luňák
f52b8e48cd branches/work/kwin_composite becomes new trunk kwin.
svn path=/trunk/KDE/kdebase/workspace/; revision=659202
2007-04-29 17:35:43 +00:00
Luboš Luňák
2b7e1f4993 Remove kwin, kwin_composite will become new trunk kwin, missing merges
from trunk will be merged in.


svn path=/trunk/KDE/kdebase/workspace/; revision=659200
2007-04-29 17:34:49 +00:00
Robert Knight
a23a2fafa5 Use relative path to reference KWin build directory. Fixes compilation when 'kwin_composite' branch is checked out into local 'kdebase/workspace' folder with a name other than 'kwin'
svn path=/branches/work/kwin_composite/; revision=656442
2007-04-21 12:26:18 +00:00
Laurent Montel
1adecf7737 Fix install icons
Fix install lib under x86_64
Fix install include (remove deprecated cmake macro)
Cleanup

svn path=/branches/work/kwin_composite/; revision=655792
2007-04-19 11:52:53 +00:00
Laurent Montel
53fcddb43f link
svn path=/trunk/KDE/kdebase/workspace/; revision=649768
2007-04-03 07:01:23 +00:00
Luboš Luňák
edc6f0e75b Include path for config-kwin.h .
svn path=/branches/work/kwin_composite/; revision=636647
2007-02-23 18:04:23 +00:00
Dirk Mueller
6883415ff4 KListBox->K3ListBox
svn path=/branches/work/kwin_composite/; revision=633055
2007-02-13 00:27:24 +00:00