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;
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;
//! The window uses shape extension to be non-rectangular?
bool _shaped;
- //! If the window has a modal child window, then this will point to it
- Client *_modal_child;
-
//! The window is modal, so it must be processed before any windows it is
//! related to can be focused
bool _modal;
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);
- //! Set whether the window is modal or not
- /*!
- This adjusts references in parents etc to match.
- */
- void setModal(bool modal);
+ void setDesktop(unsigned int desktop);
//! Calculates the stacking layer for the client window
void calcLayer();
*/
void shade(bool shade);
+ //! Recursively searches the client 'tree' for a modal client, always skips
+ //! the topmost node (the window you're starting with).
+ Client *Client::searchModalTree(Client *node, Client *skip);
+
//! Fires the urgent callbacks which lets the user do what they want with
//! urgent windows
void fireUrgent();
*/
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
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, unsigned int w, unsigned int h,
+ void internal_resize(Corner anchor, int w, int h,
bool user = true, int x = INT_MIN, int y = INT_MIN);
- //! Attempts to find and return a modal child of this window, recursively.
- Client *findModalChild(Client *skip = 0) const;
-
//! Removes or reapplies the client's border to its window
/*!
Used when managing and unmanaging a window.
This value is a 0-based index.<br>
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
//! Return the client this window is transient for
inline Client *transientFor() const { return _transient_for; }
- //! Returns the window which is a modal child of this window
- inline Client *modalChild() const { return _modal_child; }
-
//! Returns if the window is modal
/*!
If the window is modal, then no other windows that it is related to can get
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.<br>
+ 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
@param w The width component of the new size for the client.
@param h The height component of the new size for the client.
*/
- void resize(Corner anchor, unsigned int w, unsigned int h);
+ void resize(Corner anchor, int w, int h);
//! Reapplies the maximized state to the window
/*!
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
/*!
*/
void disableDecorations(DecorationFlags flags);
+ //! Return a modal child of the client window
+ /*!
+ @return A modal child of the client window, or 0 if none was found.
+ */
+ Client *findModalChild();
+
//! Attempt to focus the client window
bool focus();