diff options
Diffstat (limited to 'src/client.cc')
| -rw-r--r-- | src/client.cc | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/client.cc b/src/client.cc index 55f2fb4c..d6111ce2 100644 --- a/src/client.cc +++ b/src/client.cc @@ -319,9 +319,13 @@ void OBClient::getShaped() if (otk::OBDisplay::shape()) { int foo; unsigned int ufoo; + int s; - XShapeQueryExtents(otk::OBDisplay::display, client.window, &_shaped, &foo, + XShapeSelectInput(otk::OBDisplay::display, _window, ShapeNotifyMask); + + XShapeQueryExtents(otk::OBDisplay::display, _window, &s, &foo, &foo, &ufoo, &ufoo, &foo, &foo, &foo, &ufoo, &ufoo); + _shaped = (s != 0); } #endif // SHAPE } @@ -649,6 +653,14 @@ void OBClient::update(const XClientMessageEvent &e) } +#if defined(SHAPE) || defined(DOXYGEN_IGNORE) +void OBClient::update(const XShapeEvent &e) +{ + _shaped = e.shaped; +} +#endif + + void OBClient::setArea(const otk::Rect &area) { _area = area; |
