all repos — openbox @ 383f1ee85fbe6c7317781db2b05018e7932b9eab

openbox fork - make it a bit more like ryudo

don't show vertical resize context/arrow when the window is shaded
Dana Jansens danakj@orodu.net
commit

383f1ee85fbe6c7317781db2b05018e7932b9eab

parent

6005c3c86135ce9a7e95abacf275f94c440094c7

3 files changed, 22 insertions(+), 9 deletions(-)

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

@@ -3174,7 +3174,7 @@ self->shaded = shade;

client_change_state(self); client_change_wm_state(self); /* the window is being hidden/shown */ /* resize the frame to just the titlebar */ - frame_adjust_area(self->frame, FALSE, FALSE, FALSE); + frame_adjust_area(self->frame, FALSE, TRUE, FALSE); } void client_close(ObClient *self)
M openbox/frame.copenbox/frame.c

@@ -334,6 +334,7 @@ self->functions = self->client->functions;

self->decorations = self->client->decorations; self->max_horz = self->client->max_horz; self->max_vert = self->client->max_vert; + self->shaded = self->client->shaded; if (self->decorations & OB_FRAME_DECOR_BORDER || (self->client->undecorated && config_theme_keepborder))

@@ -804,15 +805,18 @@ {

if ((self->functions & OB_CLIENT_FUNC_RESIZE) != (self->client->functions & OB_CLIENT_FUNC_RESIZE) || self->max_horz != self->client->max_horz || - self->max_vert != self->client->max_vert) + self->max_vert != self->client->max_vert || + self->shaded != self->client->shaded) { gboolean r = (self->client->functions & OB_CLIENT_FUNC_RESIZE) && !(self->client->max_horz && self->client->max_vert); gboolean topbot = !self->client->max_vert; + gboolean sh = self->client->shaded; XSetWindowAttributes a; - /* these ones turn off when max vert */ - a.cursor = ob_cursor(r && topbot ? OB_CURSOR_NORTH : OB_CURSOR_NONE); + /* these ones turn off when max vert, and some when shaded */ + a.cursor = ob_cursor(r && topbot && !sh ? + OB_CURSOR_NORTH : OB_CURSOR_NONE); XChangeWindowAttributes(ob_display, self->topresize, CWCursor, &a); XChangeWindowAttributes(ob_display, self->titletop, CWCursor, &a); a.cursor = ob_cursor(r && topbot ? OB_CURSOR_SOUTH : OB_CURSOR_NONE);

@@ -821,17 +825,21 @@ XChangeWindowAttributes(ob_display, self->handletop, CWCursor, &a);

XChangeWindowAttributes(ob_display, self->handlebottom, CWCursor, &a); XChangeWindowAttributes(ob_display, self->innerbottom, CWCursor, &a); - /* these ones don't */ - a.cursor = ob_cursor(r ? OB_CURSOR_NORTHWEST : OB_CURSOR_NONE); + /* these ones change when shaded */ + a.cursor = ob_cursor(r ? (sh ? OB_CURSOR_WEST : OB_CURSOR_NORTHWEST) : + OB_CURSOR_NONE); + XChangeWindowAttributes(ob_display, self->titleleft, CWCursor, &a); XChangeWindowAttributes(ob_display, self->tltresize, CWCursor, &a); XChangeWindowAttributes(ob_display, self->tllresize, CWCursor, &a); XChangeWindowAttributes(ob_display, self->titletopleft, CWCursor, &a); - XChangeWindowAttributes(ob_display, self->titleleft, CWCursor, &a); - a.cursor = ob_cursor(r ? OB_CURSOR_NORTHEAST : OB_CURSOR_NONE); + a.cursor = ob_cursor(r ? (sh ? OB_CURSOR_EAST : OB_CURSOR_NORTHEAST) : + OB_CURSOR_NONE); + XChangeWindowAttributes(ob_display, self->titleright, CWCursor, &a); XChangeWindowAttributes(ob_display, self->trtresize, CWCursor, &a); XChangeWindowAttributes(ob_display, self->trrresize, CWCursor, &a); XChangeWindowAttributes(ob_display, self->titletopright, CWCursor, &a); - XChangeWindowAttributes(ob_display, self->titleright, CWCursor, &a); + + /* these ones are pretty static */ a.cursor = ob_cursor(r ? OB_CURSOR_WEST : OB_CURSOR_NONE); XChangeWindowAttributes(ob_display, self->left, CWCursor, &a); XChangeWindowAttributes(ob_display, self->innerleft, CWCursor, &a);

@@ -1327,6 +1335,10 @@ }

else if (self->max_vert && (win == self->titletop || win == self->topresize)) /* can't resize vertically when max vert */ + return OB_FRAME_CONTEXT_TITLEBAR; + else if (self->shaded && + (win == self->titletop || win == self->topresize)) + /* can't resize vertically when shaded */ return OB_FRAME_CONTEXT_TITLEBAR; if (win == self->window) return OB_FRAME_CONTEXT_FRAME;
M openbox/frame.hopenbox/frame.h

@@ -167,6 +167,7 @@ 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;