summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2002-11-06 09:19:53 +0000
committerDana Jansens <danakj@orodu.net>2002-11-06 09:19:53 +0000
commit9df8ba78f3438f7ea63d9aef8121da969d5a1d9b (patch)
tree5b039e511cd14cdba0ddba8822fe61c2bcbf6ddd /src
parentaa8047d68b9c558e632d37f3ebb3e2325978c9ff (diff)
determine if the user/application requested its initial position or not
Diffstat (limited to 'src')
-rw-r--r--src/client.cc12
-rw-r--r--src/client.hh4
2 files changed, 14 insertions, 2 deletions
diff --git a/src/client.cc b/src/client.cc
index ec907538..9b26b3bf 100644
--- a/src/client.cc
+++ b/src/client.cc
@@ -54,7 +54,8 @@ OBClient::OBClient(Window window)
" shaped: \t%s\t\t modal: \t%s\n"
" shaded: \t%s\t\t iconic: \t%s\n"
" vert maximized:\t%s\t\t horz maximized:\t%s\n"
- " fullscreen: \t%s\t\t floating: \t%s\n",
+ " fullscreen: \t%s\t\t floating: \t%s\n"
+ " requested pos: \t%s\n",
_window,
_title.c_str(),
_icon_title.c_str(),
@@ -81,7 +82,8 @@ OBClient::OBClient(Window window)
_max_vert ? "yes" : "no",
_max_horz ? "yes" : "no",
_fullscreen ? "yes" : "no",
- _floating ? "yes" : "no");
+ _floating ? "yes" : "no",
+ _positioned ? "yes" : "no");
#endif
}
@@ -239,20 +241,26 @@ void OBClient::updateNormalHints()
// get the hints from the window
if (XGetWMNormalHints(otk::OBDisplay::display, _window, &size, &ret)) {
+ _positioned = (size.flags & (PPosition|USPosition));
+
if (size.flags & PWinGravity)
_gravity = size.win_gravity;
+
if (size.flags & PMinSize) {
_min_x = size.min_width;
_min_y = size.min_height;
}
+
if (size.flags & PMaxSize) {
_max_x = size.max_width;
_max_y = size.max_height;
}
+
if (size.flags & PBaseSize) {
_base_x = size.base_width;
_base_y = size.base_height;
}
+
if (size.flags & PResizeInc) {
_inc_x = size.width_inc;
_inc_y = size.height_inc;
diff --git a/src/client.hh b/src/client.hh
index 89da0dc9..799ff703 100644
--- a/src/client.hh
+++ b/src/client.hh
@@ -103,6 +103,10 @@ private:
//! NormalState
long _wmstate;
+ //! Was the window's position requested by the application? if not, we should
+ //! place the window ourselves when it first appears
+ bool _positioned;
+
//! Can the window receive input focus?
bool _can_focus;
//! Urgency flag