+ //! Internal version of the Client::move function
+ /*!
+ @param x The X coordinate to move to.
+ @param y The Y coordinate to move to.
+ */
+ void internal_move(int x, int y);
+ //! Internal version of the Client::resize function
+ /*!
+ This also maintains things like the client's minsize, and size increments.
+ @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
+ after resizing.
+ 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, 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.
+ @param addborder true if adding the border to the client; false if removing
+ from the client
+ */
+ void toggleClientBorder(bool addborder);
+
+ //! Applies the states requested when the window mapped
+ /*!
+ This should be called only once, during the window mapping process. It
+ applies things like maximized, and fullscreen.
+ */
+ void applyStartupState();
+