summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-03-08 01:26:03 +0000
committerDana Jansens <danakj@orodu.net>2007-03-08 01:26:03 +0000
commit56307d60773d0eaf65b10414cd0e3ec0b2adc156 (patch)
tree11ead9f79518f347db5b51c4452b4211498d6497 /openbox
parentb5af5ad3e8f2cd3c23d997970c4f9ec554936960 (diff)
a) remove the top_grip_height business from the theme
b) make the focus indicator based on border width and padding, not the handle height c) add 2 more windows for the top corners for resizing, much easier to find them now. also base their width on padding, not the handle height or other weird things
Diffstat (limited to 'openbox')
-rw-r--r--openbox/focus.c3
-rw-r--r--openbox/frame.c55
-rw-r--r--openbox/frame.h6
-rw-r--r--openbox/framerender.c16
4 files changed, 55 insertions, 25 deletions
diff --git a/openbox/focus.c b/openbox/focus.c
index ad7252b8..02832cea 100644
--- a/openbox/focus.c
+++ b/openbox/focus.c
@@ -391,7 +391,8 @@ void focus_cycle_draw_indicator()
gint wt, wl, wr, wb;
wt = wl = wr = wb = MAX(3,
- ob_rr_theme->top_grip_height +
+ MAX(1, MAX(ob_rr_theme->paddingx,
+ ob_rr_theme->paddingy)) * 2 +
ob_rr_theme->fbwidth * 2);
x = focus_cycle_target->frame->area.x;
diff --git a/openbox/frame.c b/openbox/frame.c
index 866d9fd9..953ed07d 100644
--- a/openbox/frame.c
+++ b/openbox/frame.c
@@ -117,9 +117,11 @@ ObFrame *frame_new(ObClient *client)
mask |= CWCursor;
attrib.cursor = ob_cursor(OB_CURSOR_NORTHWEST);
- self->tlresize = createWindow(self->title, NULL, mask, &attrib);
+ self->tltresize = createWindow(self->title, NULL, mask, &attrib);
+ self->tllresize = createWindow(self->title, NULL, mask, &attrib);
attrib.cursor = ob_cursor(OB_CURSOR_NORTHEAST);
- self->trresize = createWindow(self->title, NULL, mask, &attrib);
+ self->trtresize = createWindow(self->title, NULL, mask, &attrib);
+ self->trrresize = createWindow(self->title, NULL, mask, &attrib);
mask &= ~CWCursor;
self->label = createWindow(self->title, NULL, mask, &attrib);
@@ -187,10 +189,14 @@ static void set_theme_statics(ObFrame *self)
XResizeWindow(ob_display, self->rgrip,
ob_rr_theme->grip_width, ob_rr_theme->handle_height);
}
- XResizeWindow(ob_display, self->tlresize,
- ob_rr_theme->grip_width, ob_rr_theme->top_grip_height);
- XResizeWindow(ob_display, self->trresize,
- ob_rr_theme->grip_width, ob_rr_theme->top_grip_height);
+ XResizeWindow(ob_display, self->tltresize,
+ ob_rr_theme->grip_width, ob_rr_theme->paddingy + 1);
+ XResizeWindow(ob_display, self->trtresize,
+ ob_rr_theme->grip_width, ob_rr_theme->paddingy + 1);
+ XResizeWindow(ob_display, self->tllresize,
+ ob_rr_theme->paddingx + 1, ob_rr_theme->title_height);
+ XResizeWindow(ob_display, self->trrresize,
+ ob_rr_theme->paddingx + 1, ob_rr_theme->title_height);
/* set up the dynamic appearances */
self->a_unfocused_title = RrAppearanceCopy(ob_rr_theme->a_unfocused_title);
@@ -366,14 +372,21 @@ void frame_adjust_area(ObFrame *self, gboolean moved,
XMapWindow(ob_display, self->title);
if (self->decorations & OB_FRAME_DECOR_GRIPS) {
- XMoveWindow(ob_display, self->tlresize, 0, 0);
- XMoveWindow(ob_display, self->trresize,
+ XMoveWindow(ob_display, self->tltresize, 0, 0);
+ XMoveWindow(ob_display, self->tllresize, 0, 0);
+ XMoveWindow(ob_display, self->trtresize,
self->width - ob_rr_theme->grip_width, 0);
- XMapWindow(ob_display, self->tlresize);
- XMapWindow(ob_display, self->trresize);
+ XMoveWindow(ob_display, self->trrresize,
+ self->width - ob_rr_theme->paddingx - 1, 0);
+ XMapWindow(ob_display, self->tltresize);
+ XMapWindow(ob_display, self->tllresize);
+ XMapWindow(ob_display, self->trtresize);
+ XMapWindow(ob_display, self->trrresize);
} else {
- XUnmapWindow(ob_display, self->tlresize);
- XUnmapWindow(ob_display, self->trresize);
+ XUnmapWindow(ob_display, self->tltresize);
+ XUnmapWindow(ob_display, self->tllresize);
+ XUnmapWindow(ob_display, self->trtresize);
+ XUnmapWindow(ob_display, self->trrresize);
}
} else
XUnmapWindow(ob_display, self->title);
@@ -536,8 +549,10 @@ void frame_grab_client(ObFrame *self, ObClient *client)
g_hash_table_insert(window_map, &self->handle, client);
g_hash_table_insert(window_map, &self->lgrip, client);
g_hash_table_insert(window_map, &self->rgrip, client);
- g_hash_table_insert(window_map, &self->tlresize, client);
- g_hash_table_insert(window_map, &self->trresize, client);
+ g_hash_table_insert(window_map, &self->tltresize, client);
+ g_hash_table_insert(window_map, &self->tllresize, client);
+ g_hash_table_insert(window_map, &self->trtresize, client);
+ g_hash_table_insert(window_map, &self->trrresize, client);
}
void frame_release_client(ObFrame *self, ObClient *client)
@@ -588,8 +603,10 @@ void frame_release_client(ObFrame *self, ObClient *client)
g_hash_table_remove(window_map, &self->handle);
g_hash_table_remove(window_map, &self->lgrip);
g_hash_table_remove(window_map, &self->rgrip);
- g_hash_table_remove(window_map, &self->tlresize);
- g_hash_table_remove(window_map, &self->trresize);
+ g_hash_table_remove(window_map, &self->tltresize);
+ g_hash_table_remove(window_map, &self->tllresize);
+ g_hash_table_remove(window_map, &self->trtresize);
+ g_hash_table_remove(window_map, &self->trrresize);
ob_main_loop_timeout_remove_data(ob_main_loop, flash_timeout, self, TRUE);
@@ -801,8 +818,10 @@ ObFrameContext frame_context(ObClient *client, Window win)
if (win == self->handle) return OB_FRAME_CONTEXT_HANDLE;
if (win == self->lgrip) return OB_FRAME_CONTEXT_BLCORNER;
if (win == self->rgrip) return OB_FRAME_CONTEXT_BRCORNER;
- if (win == self->tlresize) return OB_FRAME_CONTEXT_TLCORNER;
- if (win == self->trresize) return OB_FRAME_CONTEXT_TRCORNER;
+ if (win == self->tltresize) return OB_FRAME_CONTEXT_TLCORNER;
+ if (win == self->tllresize) return OB_FRAME_CONTEXT_TLCORNER;
+ if (win == self->trtresize) return OB_FRAME_CONTEXT_TRCORNER;
+ if (win == self->trrresize) return OB_FRAME_CONTEXT_TRCORNER;
if (win == self->max) return OB_FRAME_CONTEXT_MAXIMIZE;
if (win == self->iconify) return OB_FRAME_CONTEXT_ICONIFY;
if (win == self->close) return OB_FRAME_CONTEXT_CLOSE;
diff --git a/openbox/frame.h b/openbox/frame.h
index b48c07ca..0d044366 100644
--- a/openbox/frame.h
+++ b/openbox/frame.h
@@ -95,8 +95,10 @@ struct _ObFrame
Window lgrip;
Window rgrip;
- Window tlresize;
- Window trresize;
+ Window tltresize;
+ Window tllresize;
+ Window trtresize;
+ Window trrresize;
Colormap colormap;
diff --git a/openbox/framerender.c b/openbox/framerender.c
index 2195ff74..f0b83bec 100644
--- a/openbox/framerender.c
+++ b/openbox/framerender.c
@@ -146,14 +146,22 @@ void framerender_frame(ObFrame *self)
ob_rr_theme->a_clear->surface.parentx = 0;
ob_rr_theme->a_clear->surface.parenty = 0;
- RrPaint(ob_rr_theme->a_clear, self->tlresize,
- ob_rr_theme->grip_width, ob_rr_theme->top_grip_height);
+ if (ob_rr_theme->grip_width > 0)
+ RrPaint(ob_rr_theme->a_clear, self->tltresize,
+ ob_rr_theme->grip_width, ob_rr_theme->paddingy);
+ if (ob_rr_theme->title_height > 0)
+ RrPaint(ob_rr_theme->a_clear, self->tllresize,
+ ob_rr_theme->paddingx, ob_rr_theme->title_height);
ob_rr_theme->a_clear->surface.parentx =
self->width - ob_rr_theme->grip_width;
- RrPaint(ob_rr_theme->a_clear, self->trresize,
- ob_rr_theme->grip_width, ob_rr_theme->top_grip_height);
+ if (ob_rr_theme->grip_width > 0)
+ RrPaint(ob_rr_theme->a_clear, self->trtresize,
+ ob_rr_theme->grip_width, ob_rr_theme->paddingy);
+ if (ob_rr_theme->title_height > 0)
+ RrPaint(ob_rr_theme->a_clear, self->trrresize,
+ ob_rr_theme->paddingx, ob_rr_theme->title_height);
/* set parents for any parent relative guys */
l->surface.parent = t;