summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-05-24 03:13:24 +0000
committerDana Jansens <danakj@orodu.net>2007-05-24 03:13:24 +0000
commitb52671486187871068457d28caf21ce6bea96ccc (patch)
tree2b9460c4c1cea6bb8594667d3f48e40259db9360
parent3052eaaa2a1c4f502372a140968b840322947b9a (diff)
kill the top and bottom resize contexts for max-vert windows
-rw-r--r--openbox/frame.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/openbox/frame.c b/openbox/frame.c
index 2cd75869..16910265 100644
--- a/openbox/frame.c
+++ b/openbox/frame.c
@@ -756,16 +756,24 @@ static void frame_adjust_cursors(ObFrame *self)
{
if ((self->functions & OB_CLIENT_FUNC_RESIZE) !=
(self->client->functions & OB_CLIENT_FUNC_RESIZE) ||
- ((self->max_horz && self->max_vert) !=
- (self->client->max_horz && self->client->max_vert)))
+ self->max_horz != self->client->max_horz ||
+ self->max_vert != self->client->max_vert)
{
gboolean r = (self->client->functions & OB_CLIENT_FUNC_RESIZE) &&
!(self->client->max_horz && self->client->max_vert);
+ gboolean topbot = !self->client->max_vert;
XSetWindowAttributes a;
- a.cursor = ob_cursor(r ? OB_CURSOR_NORTH : OB_CURSOR_NONE);
+ /* these ones turn off when max vert */
+ a.cursor = ob_cursor(r && topbot ? 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);
+ XChangeWindowAttributes(ob_display, self->handle, CWCursor, &a);
+ XChangeWindowAttributes(ob_display, self->handletop, CWCursor, &a);
+ XChangeWindowAttributes(ob_display, self->handlebottom, CWCursor, &a);
+
+ /* these ones don't */
a.cursor = ob_cursor(r ? OB_CURSOR_NORTHWEST : OB_CURSOR_NONE);
XChangeWindowAttributes(ob_display, self->tltresize, CWCursor, &a);
XChangeWindowAttributes(ob_display, self->tllresize, CWCursor, &a);
@@ -780,10 +788,6 @@ static void frame_adjust_cursors(ObFrame *self)
XChangeWindowAttributes(ob_display, self->left, CWCursor, &a);
a.cursor = ob_cursor(r ? OB_CURSOR_EAST : OB_CURSOR_NONE);
XChangeWindowAttributes(ob_display, self->right, CWCursor, &a);
- a.cursor = ob_cursor(r ? OB_CURSOR_SOUTH : OB_CURSOR_NONE);
- XChangeWindowAttributes(ob_display, self->handle, CWCursor, &a);
- XChangeWindowAttributes(ob_display, self->handletop, CWCursor, &a);
- XChangeWindowAttributes(ob_display, self->handlebottom, CWCursor, &a);
a.cursor = ob_cursor(r ? OB_CURSOR_SOUTHWEST : OB_CURSOR_NONE);
XChangeWindowAttributes(ob_display, self->lgrip, CWCursor, &a);
XChangeWindowAttributes(ob_display, self->handleleft, CWCursor, &a);
@@ -1262,6 +1266,10 @@ ObFrameContext frame_context(ObClient *client, Window win, gint x, gint y)
context */
return OB_FRAME_CONTEXT_TITLEBAR;
}
+ else if (self->max_vert &&
+ (win == self->titletop || win == self->topresize))
+ /* can't resize vertically when max vert */
+ return OB_FRAME_CONTEXT_TITLEBAR;
if (win == self->window) return OB_FRAME_CONTEXT_FRAME;
if (win == self->label) return OB_FRAME_CONTEXT_TITLEBAR;