*/
int _border_width;
+ //! The minimum aspect ratio the client window can be sized to.
+ /*!
+ A value of 0 means this is ignored.
+ */
+ float _min_ratio;
+ //! The maximum aspect ratio the client window can be sized to.
+ /*!
+ A value of 0 means this is ignored.
+ */
+ float _max_ratio;
+
//! The minimum size of the client window
/*!
If the min is > the max, then the window is not resizable
*/
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
@param anchor The corner to keep in the same position when resizing.
@param w The width component of the new size for the client.
@param h The height component of the new size for the client.
+ @param user Specifies whether this is a user-requested change or a
+ program requested change.
@param x An optional X coordinate to which the window will be moved
after resizing.
@param y An optional Y coordinate to which the window will be moved
The x and y coordinates must both be sepcified together, or they will have
no effect. When they are specified, the anchor is ignored.
*/
- void internal_resize(Corner anchor, int w, int h,
+ void internal_resize(Corner anchor, int w, int h, bool user = true,
int x = INT_MIN, int y = INT_MIN);
public:
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;
+ //! Validate client, by making sure no Destroy or Unmap events exist in
+ //! the event queue for the window.
+ /*!
+ @return true if the client is valid; false if the client has already
+ been unmapped/destroyed, and so is invalid.
+ */
+ bool validate() const;
+
virtual void focusHandler(const XFocusChangeEvent &e);
virtual void unfocusHandler(const XFocusChangeEvent &e);
virtual void propertyHandler(const XPropertyEvent &e);