aboutsummaryrefslogtreecommitdiff
path: root/src/Ewmh.cc
diff options
context:
space:
mode:
authorrathnor <rathnor>2004-06-20 04:49:33 (GMT)
committerrathnor <rathnor>2004-06-20 04:49:33 (GMT)
commit9b7775751decd095f091d122c1ce057c6a04b64d (patch)
treed3b93265dced9c0142dc58bb9be45665cf27d132 /src/Ewmh.cc
parent4589ecdbbc719cc49f10cef4a9460d89b6a8fba7 (diff)
downloadfluxbox-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.cc20
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);