]> Dogcows Code - chaz/openbox/blobdiff - openbox/client.h
fix drawcontent=no resizing
[chaz/openbox] / openbox / client.h
index e9a13041098204c943075e320f0ce9044e8630b6..5847c67f6cfd7b98fa8e88019e9c904bd69caa00 100644 (file)
@@ -219,6 +219,15 @@ struct _ObClient
     /*! Notify the window when it receives focus? */
     gboolean focus_notify;
 
+#ifdef SYNC
+    /*! The client wants to sync during resizes */
+    gboolean sync_request;
+    /*! The XSync counter used for synchronizing during resizes */
+    guint32 sync_counter;
+    /*! The value we're waiting for the counter to reach */
+    gulong sync_counter_value;
+#endif
+
     /*! The window uses shape extension to be non-rectangular? */
     gboolean shaped;
 
@@ -339,25 +348,27 @@ gboolean client_normal(ObClient *self);
 /* Returns if the window is focused */
 gboolean client_focused(ObClient *self);
 
+/*! Convery a position/size from a given gravity to the client's true gravity
+ */
+void client_convert_gravity(ObClient *client, gint gravity, gint *x, gint *y,
+                            gint w, gint h);
+
 #define client_move(self, x, y) \
-  client_configure(self, OB_CORNER_TOPLEFT, x, y, \
-                   self->area.width, self->area.height, \
+  client_configure(self, x, y, self->area.width, self->area.height, \
                    TRUE, TRUE)
 #define client_resize(self, w, h) \
-  client_configure(self, OB_CORNER_TOPLEFT, self->area.x, self->area.y, \
-                   w, h, TRUE, TRUE)
+  client_configure(self, self->area.x, self->area.y, w, h, TRUE, TRUE)
 #define client_move_resize(self, x, y, w, h) \
-  client_configure(self, OB_CORNER_TOPLEFT, x, y, w, h, TRUE, TRUE)
+  client_configure(self, x, y, w, h, TRUE, TRUE)
 
-#define client_configure(self, anchor, x, y, w, h, user, final) \
-  client_configure_full(self, anchor, x, y, w, h, user, final, FALSE)
+#define client_configure(self, x, y, w, h, user, final) \
+  client_configure_full(self, x, y, w, h, user, final, FALSE)
 
 /*! Figure out where a window will end up and what size it will be if you
   told it to move/resize to these coordinates.
 
   These values are what client_configure_full will give the window.
 
-  @param anchor The corner to keep in the same position when resizing.
   @param x The x coordiante of the new position for the client.
   @param y The y coordiante of the new position for the client.
   @param w The width component of the new size for the client.
@@ -372,14 +383,12 @@ gboolean client_focused(ObClient *self);
               program requested change. For program requested changes, the
               constraints are not checked.
 */
-void client_try_configure(ObClient *self, ObCorner anchor,
-                          gint *x, gint *y, gint *w, gint *h,
+void client_try_configure(ObClient *self, gint *x, gint *y, gint *w, gint *h,
                           gint *logicalw, gint *logicalh,
                           gboolean user);
 
 /*! 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.
   @param x The x coordiante of the new position for the client.
   @param y The y coordiante of the new position for the client.
   @param w The width component of the new size for the client.
@@ -394,8 +403,7 @@ void client_try_configure(ObClient *self, ObCorner anchor,
   @param force_reply Send a ConfigureNotify to the client regardless of if
                      the position changed.
 */
-void client_configure_full(ObClient *self, ObCorner anchor,
-                           gint x, gint y, gint w, gint h,
+void client_configure_full(ObClient *self, gint x, gint y, gint w, gint h,
                            gboolean user, gboolean final,
                            gboolean force_reply);
 
@@ -546,6 +554,10 @@ void client_update_transient_for(ObClient *self);
 /*! Update the protocols that the window supports and adjusts things if they
   change */
 void client_update_protocols(ObClient *self);
+#ifdef SYNC
+/*! Updates the window's sync request counter for resizes */
+void client_update_sync_request_counter(ObClient *self);
+#endif
 /*! Updates the window's colormap */
 void client_update_colormap(ObClient *self, Colormap colormap);
 /*! Updates the WMNormalHints and adjusts things if they change */
This page took 0.022003 seconds and 4 git commands to generate.