Changeset View
Changeset View
Standalone View
Standalone View
layers.cpp
Show All 34 Lines | |||||
35 | be used to get the stacking order, because it also checks the stacking order | 35 | be used to get the stacking order, because it also checks the stacking order | ||
36 | is up to date. | 36 | is up to date. | ||
37 | All clients are also stored in Workspace::clients (except for isDesktop() clients, | 37 | All clients are also stored in Workspace::clients (except for isDesktop() clients, | ||
38 | as those are very special, and are stored in Workspace::desktops), in the order | 38 | as those are very special, and are stored in Workspace::desktops), in the order | ||
39 | the clients were created. | 39 | the clients were created. | ||
40 | 40 | | |||
41 | Every window has one layer assigned in which it is. There are 7 layers, | 41 | Every window has one layer assigned in which it is. There are 7 layers, | ||
42 | from bottom : DesktopLayer, BelowLayer, NormalLayer, DockLayer, AboveLayer, NotificationLayer, | 42 | from bottom : DesktopLayer, BelowLayer, NormalLayer, DockLayer, AboveLayer, NotificationLayer, | ||
43 | ActiveLayer and OnScreenDisplayLayer (see also NETWM sect.7.10.). The layer a window is in depends | 43 | ActiveLayer, CriticalNotificationLayer, and OnScreenDisplayLayer (see also NETWM sect.7.10.). | ||
44 | on the window type, and on other things like whether the window is active. We extend the layers | 44 | The layer a window is in depends on the window type, and on other things like whether the window | ||
45 | provided in NETWM by the NotificationLayer and OnScreenDisplayLayer. | 45 | is active. We extend the layers provided in NETWM by the NotificationLayer, OnScreenDisplayLayer, | ||
46 | and CriticalNotificationLayer. | ||||
46 | The NoficationLayer contains notification windows which are kept above all windows except the active | 47 | The NoficationLayer contains notification windows which are kept above all windows except the active | ||
47 | fullscreen window. The OnScreenDisplayLayer is used for eg. volume and brightness change feedback and | 48 | fullscreen window. The CriticalNotificationLayer contains notification windows which are important | ||
48 | is kept above all windows since it provides immediate response to a user action. | 49 | enough to keep them even above fullscreen windows. The OnScreenDisplayLayer is used for eg. volume | ||
50 | and brightness change feedback and is kept above all windows since it provides immediate response | ||||
51 | to a user action. | ||||
49 | 52 | | |||
50 | NET::Splash clients belong to the Normal layer. NET::TopMenu clients | 53 | NET::Splash clients belong to the Normal layer. NET::TopMenu clients | ||
51 | belong to Dock layer. Clients that are both NET::Dock and NET::KeepBelow | 54 | belong to Dock layer. Clients that are both NET::Dock and NET::KeepBelow | ||
52 | are in the Normal layer in order to keep the 'allow window to cover | 55 | are in the Normal layer in order to keep the 'allow window to cover | ||
53 | the panel' Kicker setting to work as intended (this may look like a slight | 56 | the panel' Kicker setting to work as intended (this may look like a slight | ||
54 | spec violation, but a) I have no better idea, b) the spec allows adjusting | 57 | spec violation, but a) I have no better idea, b) the spec allows adjusting | ||
55 | the stacking order if the WM thinks it's a good idea . We put all | 58 | the stacking order if the WM thinks it's a good idea . We put all | ||
56 | NET::KeepAbove above all Docks too, even though the spec suggests putting | 59 | NET::KeepAbove above all Docks too, even though the spec suggests putting | ||
▲ Show 20 Lines • Show All 821 Lines • Show Last 20 Lines |