diff options
author | rathnor <rathnor> | 2004-06-20 04:49:33 (GMT) |
---|---|---|
committer | rathnor <rathnor> | 2004-06-20 04:49:33 (GMT) |
commit | 9b7775751decd095f091d122c1ce057c6a04b64d (patch) | |
tree | d3b93265dced9c0142dc58bb9be45665cf27d132 /src/Ewmh.cc | |
parent | 4589ecdbbc719cc49f10cef4a9460d89b6a8fba7 (diff) | |
download | fluxbox-9b7775751decd095f091d122c1ce057c6a04b64d.zip fluxbox-9b7775751decd095f091d122c1ce057c6a04b64d.tar.bz2 |
support _NET_WM_WINDOW_TYPE_DESKTOP (e.g. nautilus desktop windows)
Allow FluxboxWindows to be untabable.
Diffstat (limited to 'src/Ewmh.cc')
-rw-r--r-- | src/Ewmh.cc | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/Ewmh.cc b/src/Ewmh.cc index ff09588..ad6663f 100644 --- a/src/Ewmh.cc +++ b/src/Ewmh.cc | |||
@@ -19,7 +19,7 @@ | |||
19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
20 | // DEALINGS IN THE SOFTWARE. | 20 | // DEALINGS IN THE SOFTWARE. |
21 | 21 | ||
22 | // $Id: Ewmh.cc,v 1.46 2004/06/07 11:46:04 rathnor Exp $ | 22 | // $Id: Ewmh.cc,v 1.47 2004/06/20 04:49:32 rathnor Exp $ |
23 | 23 | ||
24 | #include "Ewmh.hh" | 24 | #include "Ewmh.hh" |
25 | 25 | ||
@@ -86,6 +86,7 @@ void Ewmh::initForScreen(BScreen &screen) { | |||
86 | // window type | 86 | // window type |
87 | m_net_wm_window_type, | 87 | m_net_wm_window_type, |
88 | m_net_wm_window_type_dock, | 88 | m_net_wm_window_type_dock, |
89 | m_net_wm_window_type_desktop, | ||
89 | 90 | ||
90 | // root properties | 91 | // root properties |
91 | m_net_client_list, | 92 | m_net_client_list, |
@@ -178,6 +179,22 @@ void Ewmh::setupFrame(FluxboxWindow &win) { | |||
178 | win.setFocusHidden(true); | 179 | win.setFocusHidden(true); |
179 | win.setIconHidden(true); | 180 | win.setIconHidden(true); |
180 | break; | 181 | break; |
182 | } else if (atoms[l] == m_net_wm_window_type_desktop) { | ||
183 | /* | ||
184 | * _NET_WM_WINDOW_TYPE_DOCK indicates a "false desktop" window | ||
185 | * We let it be the size it wants, but it gets no decoration, | ||
186 | * is hidden in the toolbar and window cycling list, plus | ||
187 | * windows don't tab with it and is right on the bottom. | ||
188 | */ | ||
189 | |||
190 | win.setFocusHidden(true); | ||
191 | win.setIconHidden(true); | ||
192 | win.moveToLayer(Fluxbox::instance()->getDesktopLayer()); | ||
193 | win.setDecorationMask(0); | ||
194 | win.setTabable(false); | ||
195 | win.setMovable(false); | ||
196 | win.setResizable(false); | ||
197 | win.stick(); | ||
181 | } | 198 | } |
182 | 199 | ||
183 | } | 200 | } |
@@ -657,6 +674,7 @@ void Ewmh::createAtoms() { | |||
657 | // type atoms | 674 | // type atoms |
658 | m_net_wm_window_type = XInternAtom(disp, "_NET_WM_WINDOW_TYPE", False); | 675 | m_net_wm_window_type = XInternAtom(disp, "_NET_WM_WINDOW_TYPE", False); |
659 | m_net_wm_window_type_dock = XInternAtom(disp, "_NET_WM_WINDOW_TYPE_DOCK", False); | 676 | m_net_wm_window_type_dock = XInternAtom(disp, "_NET_WM_WINDOW_TYPE_DOCK", False); |
677 | m_net_wm_window_type_desktop = XInternAtom(disp, "_NET_WM_WINDOW_TYPE_DESKTOP", False); | ||
660 | 678 | ||
661 | // state atom and the supported state atoms | 679 | // state atom and the supported state atoms |
662 | m_net_wm_state = XInternAtom(disp, "_NET_WM_STATE", False); | 680 | m_net_wm_state = XInternAtom(disp, "_NET_WM_STATE", False); |