X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fclient.hh;h=c8110a3f70e75661926412e374a7f3ce0dac998a;hb=5face4c6f35172761367f63ac0b6eaf62d84e532;hp=123193d437c9c470a276a852c9690dbd88d86a28;hpb=28b8f67562bb7eb15134f2bf7a8394f0a009b9ba;p=chaz%2Fopenbox diff --git a/src/client.hh b/src/client.hh index 123193d4..c8110a3f 100644 --- a/src/client.hh +++ b/src/client.hh @@ -164,6 +164,10 @@ 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; @@ -261,6 +265,9 @@ private: //! NormalState long _wmstate; + //! True if the client supports the delete_window protocol + bool _delete_window; + //! Was the window's position requested by the application? if not, we should //! place the window ourselves when it first appears bool _positioned; @@ -352,6 +359,10 @@ 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); //! Calculates the stacking layer for the client window @@ -363,7 +374,12 @@ private: //! Updates the WMNormalHints and adjusts things if they change void updateNormalHints(); //! Updates the WMHints and adjusts things if they change - void updateWMHints(); + /*! + @param initstate Whether to read the initial_state property from the + WMHints. This should only be used during the mapping + process. + */ + void updateWMHints(bool initstate = false); //! Updates the window's title void updateTitle(); //! Updates the window's icon title @@ -390,6 +406,10 @@ private: */ void shade(bool shade); + //! Fires the urgent callbacks which lets the user do what they want with + //! urgent windows + void fireUrgent(); + //! Fullscreen's or unfullscreen's the client window /*! @param fs true if the window should be made fullscreen; false if it should @@ -564,7 +584,7 @@ BB @param window The window id that the Client class should handle void resize(Corner anchor, int w, int h); //! Attempt to focus the client window - bool focus() const; + bool focus(); //! Remove focus from the client window void unfocus() const; @@ -577,6 +597,7 @@ BB @param window The window id that the Client class should handle virtual void unmapHandler(const XUnmapEvent &e); virtual void destroyHandler(const XDestroyWindowEvent &e); virtual void reparentHandler(const XReparentEvent &e); + virtual void mapRequestHandler(const XMapRequestEvent &e); #if defined(SHAPE) virtual void shapeHandler(const XShapeEvent &e); #endif // SHAPE