Commit graph

21 commits

Author SHA1 Message Date
Sebastian Kügler
1154b2a6fd add pid to plasma window management protocol
Summary:
This patch adds a pid event to the plasma window management protocol. It
allows the compositor to tell allow a mapping between windows and processes.

Bumps the version number of the interface to 8 to indicate this.

Test Plan: autotest added, passed

Reviewers: #plasma, hein, graesslin

Reviewed By: #plasma, hein, graesslin

Subscribers: apol, davidedmundson, plasma-devel, #frameworks

Tags: #frameworks, #plasma_on_wayland

Differential Revision: https://phabricator.kde.org/D5747
2017-05-13 17:09:12 +02:00
Martin Gräßlin
d92592a291 Support passing generic QIcon through PlasmaWindow interface
Summary:
Especially for Xwayland windows the compositor might not have a themed
icon name. Resulting in a task manager not having dedicated icons for
Xwayland windows.

This change deprecates the way how a compositor is supposed to set the
window icon. Instead of passing the themed icon name, it is now supposed to
pass the QIcon. In case it's a themed icon the existing way to pass to
the client is used.

Otherwise a new event is used to inform the client that there is an icon
- no data is transmitted at this point. The client can then create a
file descriptor and pass it to the compositor. The compositor serializes
the icon into the file descriptor and the client can read from it. This
all happens transparently on client side there is no api change at all.

The writing and reading of the icon is done in a thread. Due to that
Qt5::Concurrent is now a required dependency instead of an optional
dependency.

Reviewers: #plasma_on_wayland, hein

Subscribers: plasma-devel

Tags: #plasma_on_wayland

Differential Revision: https://phabricator.kde.org/D3049
2016-10-17 07:35:21 +02:00
Martin Gräßlin
ccb4ac4280 Add a geometry event to PlasmaWindow
Summary:
This allows the compositor to expose the absolute window geometry to
processes which need it.

Reviewers: #plasma_on_wayland

Subscribers: plasma-devel

Tags: #plasma_on_wayland

Differential Revision: https://phabricator.kde.org/D2183
2016-07-15 13:31:54 +02:00
Martin Gräßlin
d52485ffb7 Add a parent_window event to Plasma Window interface
Summary:
This change adds a parent_window event to Plasma Window. From server
side it's possible to specify that a window is a transient for another
window - that is it has a parent window.

On client side this is exposed respectively with a new change signal.

Reviewers: #plasma_on_wayland, hein

Subscribers: plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D1779
2016-06-29 08:03:55 +02:00
Martin Gräßlin
7844e38e79 [autotests] Add test for showing desktop in PlasmaWindowManagement 2016-06-25 21:04:48 +02:00
Martin Gräßlin
372955bf05 Improve the deconstruction of PlasmaWindows
Summary:
The protocol is extended by a dedicated destructor request. When a
PlasmaWindow is umapped we no longer destroy the resource directly,
but only send the unmap. The client is then supposed to clean up
(which it already did in that case) and will invoke the destructor.

The PlasmaWindowInterface object will be automatically deleted after
the unmap once all resources bound for it are destroyed.

The tests are extended by two new test cases which triggered protocol
errors on the client side prior to this change.

Reviewers: #plasma

Subscribers: plasma-devel

Projects: #plasma

Differential Revision: https://phabricator.kde.org/D1594
2016-05-12 10:55:07 +02:00
Martin Gräßlin
f2406ffec5 Version 5.7 becomes version 5.22
With KWayland becoming a framework the next version is going to be 5.22.
2016-04-27 07:43:43 +02:00
Eike Hein
9d3cea7092 Add a virtual_desktop_changable state to the window protocol.
Summary:
Analogous to NET::ActionChangeDesktop.

KWindowInfo::actionSupported(NET::ActionChangeDesktop) is hardcoded
to return true in kwin, but that's not how it should be; as this will
be fixed later the Wayland protocol needs this state bit as well for
parity.

Test Plan: PlasmaWindowModel test is extended.

Reviewers: graesslin

Subscribers: plasma-devel

Projects: #plasma

Differential Revision: https://phabricator.kde.org/D1448
2016-04-20 01:16:35 +09:00
Eike Hein
90e80a548c Add states and request methods for move and resize.
Summary:
Adds states and request methods to determine whether a window can be put into
move or resize modes, and request move and resize modes, respectively.

request* naming pre-discussed with Martin. I chose to add *Mode to be more
explicit as well as avoid namespace conflicts with possible other Move/Resize
methods in the future.

Since these are not toggleable states, there is no requestToggle* methods.

Protocol version is not bumped (also pre-discussed with Martin) since we have
pending changes already bumping to 3.

Depends on D1417.

Test Plan: PlasmaWindowModel test extended.

Reviewers: graesslin

Subscribers: plasma-devel

Projects: #plasma

Differential Revision: https://phabricator.kde.org/D1432
2016-04-19 20:50:28 +09:00
Eike Hein
f47e2f7b31 Switch to naming suggested by native speakers. 2016-04-19 18:40:57 +09:00
Eike Hein
dcc9c00ce5 Add API version info; fix references to protocol version. 2016-04-15 21:10:37 +09:00
Eike Hein
d812978f1c Add window shade support to protocol, interfaces and test.
Summary:
This adds support for 'shadable' and 'shaded' states to the protocol and
to the client and server classes, as well as the window model.

Test Plan: The PlasmaWindowModel test has been extended to test the new states.

Reviewers: graesslin

Subscribers: plasma-devel

Projects: #plasma

Differential Revision: https://phabricator.kde.org/D1417
2016-04-15 20:39:14 +09:00
Marco Martin
72316718df task geometries to wayland for minimize effect
this exposes the geometry of taskbar entries in
plasma-windowmanagement, in order to make the
minimize effects possible.
unlike on X11, it takes relative positions and
it has one geometry per panel, making possible
to have multiple taskbars working.
REVIEW:125871
2015-11-04 13:16:50 +01:00
Marco Martin
27667222a4 introduce SkipTaskbar
support the skipTaskbar property in the window model
that property is set client side by
PlasmaShell::setSkipTaskbar
REVIEW:125453
2015-09-30 16:52:57 +02:00
Martin Gräßlin
42a1e1e99e Add a themed icon name to PlasmaWindow interface
Server can set a themed icon name, client gets it directly turned into a
QIcon. That only works with QGuiApplications as can be seen in the
adjusted paneltest.
2015-06-20 02:46:56 +02:00
Martin Gräßlin
1a4c431ae7 Request state changes in PlasmaWindow interface 2015-06-19 04:34:50 +02:00
Martin Gräßlin
93c1521624 Add close request to the PlasmaWindow interfaces 2015-06-19 01:43:58 +02:00
Martin Gräßlin
abf42dfdc3 Add state handling to PlasmaWindow interface
Allows to pass all on/off states from compositor to the PlasmaWindow.
2015-06-18 21:13:58 +02:00
Martin Gräßlin
c67614ad9d [server] Expose PlasmaWindowInterface::unmap
Sends an umap to the client and destroys the resource afterwards.

The PlasmaWindowInterface gets automatically destroyed once there
are no more resources bound to it.
2015-06-18 00:11:32 +02:00
Martin Gräßlin
83ce426353 [server] Add PlasmaWindowInterface to PlasmaWindowManagementInterface
Only a very small subset is supported at the moment allowing to change
window title, appId and virtual desktop.
2015-06-16 06:30:08 +02:00
Martin Gräßlin
deeb0bc50e [server] Add PlasmaWindowManagementInterface 2015-06-13 00:16:48 +02:00