X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fclient.hh;h=5d309262d5eb9291d1fe913265df4be6d42d5813;hb=076d45d0cea0c9c2bac80c47b983d3872e7de470;hp=e40755efbe6e619b0e053fc58a7190d3b929c4b9;hpb=7b343db222f93bcfbb528a3eea4791f9aa8d9636;p=chaz%2Fopenbox diff --git a/src/client.hh b/src/client.hh index e40755ef..5d309262 100644 --- a/src/client.hh +++ b/src/client.hh @@ -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); }; }