X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=openbox%2Fclient.h;h=4421f8fe3e4f4af048076b0699432ddb70f9dbb8;hb=742106511fbaca5ebef385a9c60c427e8dd7a6dd;hp=c3bbe2b9e1368e95eb0f7c52777c628ae257df6d;hpb=81af5a8b0caadc0a82ff2304c315f816c9576e93;p=chaz%2Fopenbox diff --git a/openbox/client.h b/openbox/client.h index c3bbe2b9..4421f8fe 100644 --- a/openbox/client.h +++ b/openbox/client.h @@ -284,10 +284,28 @@ void client_configure(ObClient *self, ObCorner anchor, void client_reconfigure(ObClient *self); +/*! Finds coordinates to keep a client on the screen. + @param self The client + @param x The x coord of the client, may be changed. + @param y The y coord of the client, may be changed. + @param w The width of the client. + @param w The height of the client. + @param rude Be rude about it. If false, it is only moved if it is entirely + not visible. If true, then make sure the window is inside the + struts if possible. + @return true if the client was moved to be on-screen; false if not. +*/ +gboolean client_find_onscreen(ObClient *self, int *x, int *y, int w, int h, + gboolean rude); + /*! Moves a client so that it is on screen if it is entirely out of the viewable screen. + @param self The client to move + @param rude Be rude about it. If false, it is only moved if it is entirely + not visible. If true, then make sure the window is inside the + struts if possible. */ -void client_move_onscreen(ObClient *self); +void client_move_onscreen(ObClient *self, gboolean rude); /*! Fullscreen's or unfullscreen's the client window @param fs true if the window should be made fullscreen; false if it should @@ -431,6 +449,8 @@ ObClient *client_search_modal_child(ObClient *self); ObClient *client_search_top_transient(ObClient *self); +ObClient *client_search_transient(ObClient *self, ObClient *search); + /*! Return the "closest" client in the given direction */ ObClient *client_find_directional(ObClient *c, ObDirection dir);