]> Dogcows Code - chaz/openbox/commitdiff
determine if the user/application requested its initial position or not
authorDana Jansens <danakj@orodu.net>
Wed, 6 Nov 2002 09:19:53 +0000 (09:19 +0000)
committerDana Jansens <danakj@orodu.net>
Wed, 6 Nov 2002 09:19:53 +0000 (09:19 +0000)
src/client.cc
src/client.hh

index ec907538ccf9cf0876bd18dc86718d1c7624dd52..9b26b3bf180ccac6eb71dd2d029b47c475b240b6 100644 (file)
@@ -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;
index 89da0dc9a0e782c154412e1294e3f90279f4877e..799ff70337670178805f63a106240e7f2318396a 100644 (file)
@@ -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
This page took 0.024926 seconds and 4 git commands to generate.