]> Dogcows Code - chaz/openbox/blobdiff - openbox/frame.h
clearer code paths
[chaz/openbox] / openbox / frame.h
index b1ed8183243b791ea220cb11d16b56825fcab7d9..beb6b8a0dfceed2762c74c3f1f9d90e70cb60160 100644 (file)
@@ -77,7 +77,10 @@ struct _ObFrame
     struct _ObClient *client;
 
     Window    window;
-    Window    plate;
+
+    Pixmap    pixmap;    /* Offscreen buffer of the frame window's contents
+                            when Composite is enabled */
+    gboolean  has_alpha;
 
     Strut     size;
     Rect      area;
@@ -85,9 +88,7 @@ struct _ObFrame
 
     guint     functions;
     guint     decorations;
-    gboolean  max_horz;
 
-    Window    inner;  /*!< The window for drawing the inner client border */
     Window    title;
     Window    label;
     Window    max;
@@ -119,6 +120,13 @@ struct _ObFrame
     Window    rgriptop;
     Window    rgripright;
     Window    rgripbottom;
+    Window    innerleft;    /*!< For drawing the inner client border */
+    Window    innertop;     /*!< For drawing the inner client border */
+    Window    innerright;   /*!< For drawing the inner client border */
+    Window    innerbottom;  /*!< For drawing the inner client border */
+    Window    backback;     /*!< A colored window shown while resizing */
+    Window    backfront;    /*!< An undrawn-in window, to prevent flashing on
+                                 unmap */
 
     /* These are resize handles inside the titlebar */
     Window    topresize;
@@ -157,11 +165,13 @@ struct _ObFrame
     gint      max_x;         /* x-position of the window maximize button */
     gint      close_x;       /* x-position of the window close button */
     gint      bwidth;        /* border width */
-    gint      rbwidth;       /* border width between the title and client */
-    gint      cbwidth_x;     /* client border width */
-    gint      cbwidth_y;     /* client border width */
-    gboolean  leftb;         /* is there a border to the left of the client? */
-    gboolean  rightb;        /* is there a border to the right of the client?*/
+    gint      cbwidth_l;     /* client border width */
+    gint      cbwidth_t;     /* client border width */
+    gint      cbwidth_r;     /* client border width */
+    gint      cbwidth_b;     /* client border width */
+    gboolean  max_horz;      /* when maxed some decorations are hidden */
+    gboolean  max_vert;      /* when maxed some decorations are hidden */
+    gboolean  shaded;        /* decorations adjust when shaded */
 
     /* the leftmost and rightmost elements in the titlebar */
     ObFrameContext leftmost;
@@ -179,6 +189,7 @@ struct _ObFrame
     gboolean  iconify_hover;
 
     gboolean  focused;
+    gboolean  need_render;
 
     gboolean  flashing;
     gboolean  flash_on;
@@ -198,7 +209,6 @@ void frame_free(ObFrame *self);
 void frame_show(ObFrame *self);
 void frame_hide(ObFrame *self);
 void frame_adjust_theme(ObFrame *self);
-void frame_adjust_shape(ObFrame *self);
 void frame_adjust_area(ObFrame *self, gboolean moved,
                        gboolean resized, gboolean fake);
 void frame_adjust_client_area(ObFrame *self);
@@ -226,6 +236,10 @@ void frame_client_gravity(ObFrame *self, gint *x, gint *y, gint w, gint h);
 */
 void frame_frame_gravity(ObFrame *self, gint *x, gint *y, gint w, gint h);
 
+/*! Convert a rectangle in client coordinates/sizes to what it would be
+  for the frame, given its current decorations sizes */
+void frame_rect_to_frame(ObFrame *self, Rect *r);
+
 void frame_flash_start(ObFrame *self);
 void frame_flash_stop(ObFrame *self);
 
This page took 0.02443 seconds and 4 git commands to generate.