Add a parent_window event to Plasma Window interface
ClosedPublic

Authored by graesslin on Jun 6 2016, 1:08 PM.

Details

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.

Diff Detail

Repository
R127 KWayland
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
graesslin updated this revision to Diff 4244.Jun 6 2016, 1:08 PM
graesslin retitled this revision from to Add a parent_window event to Plasma Window interface.
graesslin updated this object.
graesslin edited the test plan for this revision. (Show Details)
graesslin added reviewers: Plasma on Wayland, hein.
Restricted Application added a project: Plasma. · View Herald TranscriptJun 6 2016, 1:08 PM
Restricted Application added a subscriber: plasma-devel. · View Herald Transcript
graesslin edited projects, added Plasma on Wayland; removed Plasma.Jun 6 2016, 1:43 PM
graesslin updated this revision to Diff 4264.Jun 7 2016, 7:44 AM

Frameworks version is now 5.24. This means we also need to increase the
interface version

hein edited edge metadata.Jun 10 2016, 11:27 AM

Hmm I'm concerned about using "transient" in the API docs and code. "Transient" is a descriptory adjective that means "temporary", i.e. if a window is a transient to some other window, it communicates two things: The association to the other window, and the expectation that this window is not permanent and shouldn't be treated as such. Now if the latter is the semantics we want to bake into the protocol, we should make that clear in the docs and consider misuse a bug (i.e. document that it's wrong to have a window with a parent if the window isn't temporary). Otherwise we shouldn't use "transient".

In D1779#33666, @hein wrote:
Now if the latter is the semantics we want to bake into the protocol, we should make that clear in the docs and consider misuse a bug (i.e. document that it's wrong to have a window with a parent if the window isn't temporary). Otherwise we shouldn't use "transient".

Transient in the context of windowing system has the meaning parent-child relationship. That's the only usage of the word I know. E.g. see https://en.wikipedia.org/wiki/Transient_%28computer_programming%29#X

On Wayland the situation is exactly the same and what this API provides is a parent-child relationship - which is a transient. Following the description of Wikipedia the child window will not outlife the parent window, thus it's a "transient" or a "temporary" window.

sebas accepted this revision.Jun 28 2016, 3:21 PM
sebas added a reviewer: sebas.
This revision is now accepted and ready to land.Jun 28 2016, 3:21 PM
This revision was automatically updated to reflect the committed changes.
hein added a comment.Jun 29 2016, 9:24 AM

Just for the record: Martin's reply convinced me, so +1 after the fact. Sorry for this slipping through the cracks.

hein added a comment.Jul 10 2016, 6:52 AM

Now that this in I'll try to implement XWindowsTasksModel-like transient handling in libtaskmanager on Wayland soon (next week probably) and put it up for review.