summaryrefslogtreecommitdiff
path: root/src/client.cc
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-01-04 08:02:08 +0000
committerDana Jansens <danakj@orodu.net>2003-01-04 08:02:08 +0000
commit7bae794382c7a64a6427b16d1339b98120a5166f (patch)
treefa57c08904038332abaff66eab0ad5e3651dd306 /src/client.cc
parent58cd3958a331e55699b3c1f640c0d2da907cdf22 (diff)
support net_wm_strut's! nothing to do with them yet however
Diffstat (limited to 'src/client.cc')
-rw-r--r--src/client.cc26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/client.cc b/src/client.cc
index ddc083fa..a2106d86 100644
--- a/src/client.cc
+++ b/src/client.cc
@@ -89,6 +89,7 @@ OBClient::OBClient(int screen, Window window)
updateTitle();
updateIconTitle();
updateClass();
+ updateStrut();
calcLayer();
changeState();
@@ -487,6 +488,29 @@ void OBClient::updateClass()
}
+void OBClient::updateStrut()
+{
+ unsigned long num = 4;
+ unsigned long *data;
+ if (!Openbox::instance->property()->get(_window,
+ otk::OBProperty::net_wm_strut,
+ otk::OBProperty::Atom_Cardinal,
+ &num, &data))
+ return;
+
+ if (num == 4) {
+ _strut.left = data[0];
+ _strut.right = data[1];
+ _strut.top = data[2];
+ _strut.bottom = data[3];
+
+ Openbox::instance->screen(_screen)->updateStrut();
+ }
+
+ delete [] data;
+}
+
+
void OBClient::propertyHandler(const XPropertyEvent &e)
{
otk::OtkEventHandler::propertyHandler(e);
@@ -519,6 +543,8 @@ void OBClient::propertyHandler(const XPropertyEvent &e)
else if (e.atom == property->atom(otk::OBProperty::wm_protocols))
updateProtocols();
// XXX: transient for hint
+ else if (e.atom == property->atom(otk::OBProperty::net_wm_strut))
+ updateStrut();
// XXX: strut hint
}