]> Dogcows Code - chaz/openbox/blobdiff - src/client.hh
read protocols too in OBClient
[chaz/openbox] / src / client.hh
index e40755efbe6e619b0e053fc58a7190d3b929c4b9..5d309262d5eb9291d1fe913265df4be6d42d5813 100644 (file)
@@ -71,7 +71,7 @@ private:
   // XXX: transient_for, transients
 
   //! The desktop on which the window resides (0xffffffff for all desktops)
-  unsigned int _desktop;
+  unsigned long _desktop;
 
   //! Normal window title
   std::string  _title; // XXX: Have to keep track if this string is Utf8 or not
@@ -89,6 +89,13 @@ private:
   //! Position and size of the window (relative to the root window)
   otk::Rect    _area;
 
+  //! Width of the border on the window.
+  /*!
+    The window manager will set this to 0 while the window is being managed,
+    but needs to restore it afterwards, so it is saved here.
+  */
+  int _border_width;
+
   // size bounds
   // if min > max, then the window is not resizable
   int _min_x, _min_y; // minumum size
@@ -101,8 +108,12 @@ private:
 
   //! The state of the window, one of WithdrawnState, IconicState, or
   //! NormalState
-  long _state;
+  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
@@ -131,12 +142,20 @@ private:
 
   // XXX: motif decoration hints!
 
+  void getDesktop();
+  void getType();
+  void getArea();
+  void getState();
+  void getShaped();
+
   void setWMState(long state);
   void setDesktop(long desktop);
   void setState(StateAction action, long data1, long data2);
-  
+
+  void updateProtocols();
   void updateNormalHints();
   void updateWMHints();
+  // XXX: updateTransientFor();
   void updateTitle();
   void updateClass();
 
@@ -147,7 +166,7 @@ public:
   inline Window window() const { return _window; }
 
   inline WindowType type() const { return _type; }
-  inline unsigned int desktop() const { return _desktop; }
+  inline unsigned long desktop() const { return _desktop; }
   inline const std::string &title() const { return _title; }
   inline const std::string &iconTitle() const { return _title; }
   inline const std::string &appName() const { return _app_name; }
@@ -180,6 +199,8 @@ public:
 
   void update(const XPropertyEvent &e);
   void update(const XClientMessageEvent &e);
+
+  void setArea(const otk::Rect &area);
 };
 
 }
This page took 0.02606 seconds and 4 git commands to generate.