]> Dogcows Code - chaz/openbox/blobdiff - openbox/client.h
add partial struts tho they arent useful eyt
[chaz/openbox] / openbox / client.h
index c3bbe2b9e1368e95eb0f7c52777c628ae257df6d..954b7424acece579c27ccacde16fc8736d22b7df 100644 (file)
@@ -106,13 +106,13 @@ struct _ObClient
       is, rather, the position requested by the client, to which the window's
       gravity is applied.
     */
-    Rect    area;
+    Rect area;
 
     /*! The window's strut
       The strut defines areas of the screen that are marked off-bounds for
       window placement. In theory, where this window exists.
     */
-    Strut   strut;
+    StrutPartial strut;
      
     /*! The logical size of the window
       The "logical" size of the window is refers to the user's perception of
@@ -120,7 +120,7 @@ struct _ObClient
       user. For example, with xterms, this value it the number of characters
       being displayed in the terminal, instead of the number of pixels.
     */
-    Size   logical_size;
+    Size logical_size;
 
     /*! Width of the border on the window.
       The window manager will set this to 0 while the window is being managed,
@@ -263,6 +263,9 @@ gboolean client_normal(ObClient *self);
 /* Returns if the window is focused */
 gboolean client_focused(ObClient *self);
 
+#define client_configure(self, anchor, x, y, w, h, user, final) \
+  client_configure_full(self, anchor, x, y, w, h, user, final, FALSE)
+
 /*! Move and/or resize the window.
   This also maintains things like the client's minsize, and size increments.
   @param anchor The corner to keep in the same position when resizing.
@@ -277,17 +280,38 @@ gboolean client_focused(ObClient *self);
                configuration. e.g. Final should be FALSE if doing an
               interactive move/resize, and then be TRUE for the last call
               only.
+  @param force_reply Send a ConfigureNotify to the client regardless of if
+                     the position changed.
 */
-void client_configure(ObClient *self, ObCorner anchor,
-                      int x, int y, int w, int h,
-                     gboolean user, gboolean final);
+void client_configure_full(ObClient *self, ObCorner anchor,
+                           int x, int y, int w, int h,
+                           gboolean user, gboolean final,
+                           gboolean force_reply);
 
 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 +455,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);
 
@@ -443,4 +469,6 @@ void client_set_layer(ObClient *self, int layer);
 
 guint client_monitor(ObClient *self);
 
+gchar* client_get_sm_client_id(ObClient *self);
+
 #endif
This page took 0.023102 seconds and 4 git commands to generate.