X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fclient.hh;h=8bbe2a918f7490217c4d6b1aa4c4b42438564d1d;hb=58847af218e486f5c1a34ffe947a961a74f97c0a;hp=b7efefa2dabd01294b0afc62154f1319fba5ebbc;hpb=43c1f2a8f84d8008155d6df8e2bcd35534c62893;p=chaz%2Fopenbox diff --git a/src/client.hh b/src/client.hh index b7efefa2..8bbe2a91 100644 --- a/src/client.hh +++ b/src/client.hh @@ -164,10 +164,6 @@ public: static const long no_propagate_mask = ButtonPressMask | ButtonReleaseMask | ButtonMotionMask; - //! The desktop value which indicated the window is iconified and not on any - //! desktop - static const long ICONIC_DESKTOP = 0xfffffffe; - //! The number of unmap events to ignore on the window int ignore_unmaps; @@ -188,7 +184,7 @@ private: Client::List _transients; //! The desktop on which the window resides (0xffffffff for all desktops) - long _desktop; + unsigned int _desktop; //! Normal window title otk::ustring _title; @@ -376,11 +372,7 @@ private: void setState(StateAction action, long data1, long data2); //! Sends the window to the specified desktop - /*! - A window is iconified by sending it to the ICONIC_DESKTOP, and restored - by sending it to any other valid desktop. - */ - void setDesktop(long desktop); + void setDesktop(unsigned int desktop); //! Calculates the stacking layer for the client window void calcLayer(); @@ -442,6 +434,16 @@ private: */ void fullscreen(bool fs, bool savearea = true); + //! Iconifies or uniconifies the client window + /*! + @param iconic true if the window should be iconified; false if it should be + restored. + @param curdesk If iconic is false, then this determines if the window will + be uniconified to the current viewable desktop (true) or to + its previous desktop (false) + */ + void iconify(bool iconic, bool curdesk = true); + //! Maximize or unmaximize the client window /*! @param max true if the window should be maximized; false if it should be @@ -528,7 +530,7 @@ BB @param window The window id that the Client class should handle This value is a 0-based index.
A value of 0xffffffff indicates that the window exists on all desktops. */ - inline long desktop() const { return _desktop; } + inline unsigned int desktop() const { return _desktop; } //! Returns the window's title inline const otk::ustring &title() const { return _title; } //! Returns the window's title when it is iconified @@ -620,6 +622,11 @@ BB @param window The window id that the Client class should handle const otk::Size &logicalSize() const { return _logical_size; } //! Returns the position and size of the client relative to the root window + /*! + Note that this value is *not* the size and position of the window's + frame, though the position will often line up.
+ If you want the frame's area, use Frame::area() instead. + */ inline const otk::Rect &area() const { return _area; } //! Returns the client's strut definition @@ -649,6 +656,12 @@ BB @param window The window id that the Client class should handle surroundings (struts, etc). */ void remaximize(); + + //! Shows the window if it should be shown, or hides it + /*! + Used when changing desktops, the window's state, etc. + */ + void showhide(); //! Choose a mask of decorations to not display on the client /*!