all repos — openbox @ a9b411ce84bb67c4594efe7b286367010d5c3d82

openbox fork - make it a bit more like ryudo

fix the bottom decor stuff for maximized windows. kill the border and tings at the bottom for fullmax windows.
Dana Jansens danakj@orodu.net
commit

a9b411ce84bb67c4594efe7b286367010d5c3d82

parent

e473ec2b60e421bfad38543f85b922a0921203f9

3 files changed, 52 insertions(+), 37 deletions(-)

jump to
M openbox/frame.copenbox/frame.c

@@ -41,7 +41,7 @@

#define FRAME_ANIMATE_ICONIFY_TIME 150000 /* .15 seconds */ #define FRAME_ANIMATE_ICONIFY_STEP_TIME (G_USEC_PER_SEC / 60) /* 60 Hz */ -#define FRAME_HANDLE_Y(f) (f->size.top + f->client->area.height + f->cbwidth_y) +#define FRAME_HANDLE_Y(f) (f->size.top + f->client->area.height + f->cbwidth_b) static void flash_done(gpointer data); static gboolean flash_timeout(gpointer data);

@@ -338,18 +338,22 @@ self->max_vert = self->client->max_vert;

if (self->decorations & OB_FRAME_DECOR_BORDER) { self->bwidth = ob_rr_theme->fbwidth; - self->cbwidth_x = ob_rr_theme->cbwidthx; - self->cbwidth_y = ob_rr_theme->cbwidthy; + self->cbwidth_l = self->cbwidth_r = ob_rr_theme->cbwidthx; + self->cbwidth_t = self->cbwidth_b = ob_rr_theme->cbwidthy; } else { - self->bwidth = self->cbwidth_x = self->cbwidth_y = 0; + self->bwidth = self->cbwidth_l = self->cbwidth_t = + self->cbwidth_r = self->cbwidth_b = 0; } self->rbwidth = self->bwidth; if (self->max_horz) { - self->cbwidth_x = 0; + self->cbwidth_l = self->cbwidth_r = 0; self->width = self->client->area.width - self->bwidth * 2; + if (self->max_vert) + self->cbwidth_b = 0; } else - self->width = self->client->area.width + self->cbwidth_x * 2; + self->width = self->client->area.width + + self->cbwidth_l + self->cbwidth_r; /* some elements are sized based of the width, so don't let them have negative values */

@@ -357,10 +361,10 @@ self->width = MAX(self->width,

(ob_rr_theme->grip_width + self->bwidth) * 2 + 1); STRUT_SET(self->size, - self->cbwidth_x + (!self->max_horz ? self->bwidth : 0), - self->cbwidth_y + self->bwidth, - self->cbwidth_x + (!self->max_horz ? self->bwidth : 0), - self->cbwidth_y + self->bwidth); + self->cbwidth_l + (!self->max_horz ? self->bwidth : 0), + self->cbwidth_t + self->bwidth, + self->cbwidth_r + (!self->max_horz ? self->bwidth : 0), + self->cbwidth_b + (!self->max_horz || !self->max_vert ? self->bwidth : 0)); if (self->decorations & OB_FRAME_DECOR_TITLEBAR) self->size.top += ob_rr_theme->title_height + self->rbwidth;

@@ -373,41 +377,49 @@

/* position/size and map/unmap all the windows */ if (!fake) { - if (self->cbwidth_x) { + if (self->cbwidth_l) { XMoveResizeWindow(ob_display, self->innerleft, - self->size.left - self->cbwidth_x, + self->size.left - self->cbwidth_l, self->size.top, - self->cbwidth_x, self->client->area.height); + self->cbwidth_l, self->client->area.height); + + XMapWindow(ob_display, self->innerleft); + } else + XUnmapWindow(ob_display, self->innerleft); + + if (self->cbwidth_r) { XMoveResizeWindow(ob_display, self->innerright, self->size.left + self->client->area.width, self->size.top, - self->cbwidth_x, self->client->area.height); + self->cbwidth_r, self->client->area.height); - XMapWindow(ob_display, self->innerleft); XMapWindow(ob_display, self->innerright); - } else { - XUnmapWindow(ob_display, self->innerleft); + } else XUnmapWindow(ob_display, self->innerright); - } - if (self->cbwidth_y) { + if (self->cbwidth_t) { XMoveResizeWindow(ob_display, self->innertop, - self->size.left - self->cbwidth_x, - self->size.top - self->cbwidth_y, + self->size.left - self->cbwidth_l, + self->size.top - self->cbwidth_t, self->client->area.width + - self->cbwidth_x * 2, self->cbwidth_y); + self->cbwidth_l + self->cbwidth_r, + self->cbwidth_t); + + XMapWindow(ob_display, self->innertop); + } else + XUnmapWindow(ob_display, self->innertop); + + if (self->cbwidth_b) { XMoveResizeWindow(ob_display, self->innerbottom, - self->size.left - self->cbwidth_x, + self->size.left - self->cbwidth_l, self->size.top + self->client->area.height, self->client->area.width + - self->cbwidth_x * 2, self->cbwidth_y); + self->cbwidth_l + self->cbwidth_r, + self->cbwidth_b); - XMapWindow(ob_display, self->innertop); XMapWindow(ob_display, self->innerbottom); - } else { - XUnmapWindow(ob_display, self->innertop); + } else XUnmapWindow(ob_display, self->innerbottom); - } if (self->bwidth) { gint titlesides;

@@ -522,7 +534,7 @@ /* layout the title bar elements */

layout_title(self); if (!fake) { - if (self->bwidth) { + if (self->bwidth && self->size.bottom) { XMoveResizeWindow(ob_display, self->handlebottom, ob_rr_theme->grip_width + self->bwidth * 2,

@@ -538,11 +550,11 @@ self->size.top + self->client->area.height +

self->size.bottom - (!self->max_horz ? ob_rr_theme->grip_width : - self->size.bottom), + self->size.bottom - self->cbwidth_b), self->bwidth, (!self->max_horz ? ob_rr_theme->grip_width : - self->size.bottom)); + self->size.bottom - self->cbwidth_b)); XMoveResizeWindow(ob_display, self->rgripright, self->size.left + self->client->area.width + self->size.right - self->bwidth,

@@ -550,11 +562,11 @@ self->size.top + self->client->area.height +

self->size.bottom - (!self->max_horz ? ob_rr_theme->grip_width : - self->size.bottom), + self->size.bottom - self->cbwidth_b), self->bwidth, (!self->max_horz ? ob_rr_theme->grip_width : - self->size.bottom)); + self->size.bottom - self->cbwidth_b)); XMoveResizeWindow(ob_display, self->lgripbottom, self->bwidth,

@@ -701,7 +713,7 @@

if (self->bwidth && !self->max_horz) { XMoveResizeWindow(ob_display, self->right, self->client->area.width + - self->cbwidth_x * 2 + self->bwidth, + self->cbwidth_l + self->cbwidth_r + self->bwidth, self->bwidth + ob_rr_theme->grip_width, self->bwidth, self->client->area.height +
M openbox/frame.hopenbox/frame.h

@@ -162,8 +162,10 @@ 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 */ + 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 */
M themes/Clearlooks/openbox-3/themerc.xmlthemes/Clearlooks/openbox-3/themerc.xml

@@ -11,7 +11,7 @@ <handle>3</handle>

<padding x="2" y="2"/> <window> <border>1</border> - <clientpadding x="0" y="0"/> + <clientpadding x="5" y="5"/> </window> <menu> <border>1</border>

@@ -20,6 +20,7 @@ </dimensions>

<window> <active> <border r="0" g="0" b="0" a="255"/> + <clientpadding r="102" g="153" b="204" a="255"/> <label> <text> <primary r="255" g="255" b="255" a="255"/>