summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/client.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/client.cc b/src/client.cc
index 7dd63b2a..a92c1796 100644
--- a/src/client.cc
+++ b/src/client.cc
@@ -504,6 +504,17 @@ void OBClient::propertyHandler(const XPropertyEvent &e)
const otk::OBProperty *property = Openbox::instance->property();
+ // compress changes to a single property into a single change
+ XEvent ce;
+ while (XCheckTypedEvent(otk::OBDisplay::display, e.message_type, &ce)) {
+ // XXX: it would be nice to compress ALL changes to a property, not just
+ // changes in a row without other props between.
+ if (ce.xproperty.atom != e.atom) {
+ XPutBackEvent(otk::OBDisplay::display, &ce);
+ break;
+ }
+ }
+
if (e.atom == XA_WM_NORMAL_HINTS)
updateNormalHints();
else if (e.atom == XA_WM_HINTS)