]> Dogcows Code - chaz/openbox/blobdiff - openbox/client.h
yay! gravity finally works right!
[chaz/openbox] / openbox / client.h
index 2cc64a5c26fb8b3d90a58b16d386b452f91a0072..82a565f3fd692f7e64200f8789a5be66081b2ff6 100644 (file)
@@ -35,7 +35,6 @@ struct _ObSessionState;
 
 typedef struct _ObClient      ObClient;
 typedef struct _ObClientIcon  ObClientIcon;
-typedef struct _ObAppSettings ObAppSettings;
 
 /* The value in client.transient_for indicating it is a transient for its
    group instead of for a single window */
@@ -73,13 +72,13 @@ typedef enum
     OB_CLIENT_FUNC_FULLSCREEN = 1 << 5, /*!< Allow to be made fullscreen */
     OB_CLIENT_FUNC_CLOSE      = 1 << 6, /*!< Allow to be closed */
     OB_CLIENT_FUNC_ABOVE      = 1 << 7, /*!< Allow to be put in lower layer */
-    OB_CLIENT_FUNC_BELOW      = 1 << 8  /*!< Allow to be put in higher layer */
+    OB_CLIENT_FUNC_BELOW      = 1 << 8, /*!< Allow to be put in higher layer */
+    OB_CLIENT_FUNC_UNDECORATE = 1 << 9  /*!< Allow to be undecorated */
 } ObFunctions;
 
 struct _ObClient
 {
     ObWindow obwin;
-
     Window  window;
 
     /*! The window's decorations. NULL while the window is being managed! */
@@ -363,10 +362,24 @@ gboolean client_enter_focusable(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
+/*! When the client is resized but not moved, figure out the new position
+  for it based on its gravity:
+  http://standards.freedesktop.org/wm-spec/wm-spec-1.4.html#id2512541
+*/
+void client_gravity_resize_w(ObClient *self, gint *x, gint oldw, gint neww);
+
+/*! When the client is resized but not moved, figure out the new position
+  for it based on its gravity:
+  http://standards.freedesktop.org/wm-spec/wm-spec-1.4.html#id2512541
+*/
+void client_gravity_resize_h(ObClient *self, gint *y, gint oldh, gint newh);
+
+/*! Convert a position/size from a given gravity to the client's true gravity,
+  when the client is only resizing (the reference point doesn't move)
  */
-void client_convert_gravity(ObClient *self, gint gravity, gint *x, gint *y,
-                            gint w, gint h);
+void client_convert_gravity_resize(ObClient *self, gint gravity,
+                                   gint *x, gint *y,
+                                   gint w, gint h);
 
 #define client_move(self, x, y) \
   client_configure(self, x, y, self->area.width, self->area.height, TRUE, TRUE)
This page took 0.023823 seconds and 4 git commands to generate.