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
Dana Jansens danakj@orodu.net
6 files changed,
55 insertions(+),
28 deletions(-)
M
openbox/focus.c
→
openbox/focus.c
@@ -391,7 +391,8 @@ gint x, y, w, h;
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;
M
openbox/frame.c
→
openbox/frame.c
@@ -117,9 +117,11 @@ self->title = createWindow(self->window, NULL, mask, &attrib);
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 @@ ob_rr_theme->grip_width, ob_rr_theme->handle_height);
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 @@ self->width, ob_rr_theme->title_height);
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 @@ g_hash_table_insert(window_map, &self->iconify, 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 @@ g_hash_table_remove(window_map, &self->iconify);
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 @@ if (win == self->label) return OB_FRAME_CONTEXT_TITLEBAR;
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;
M
openbox/frame.h
→
openbox/frame.h
@@ -95,8 +95,10 @@ Window handle;
Window lgrip; Window rgrip; - Window tlresize; - Window trresize; + Window tltresize; + Window tllresize; + Window trtresize; + Window trrresize; Colormap colormap;
M
openbox/framerender.c
→
openbox/framerender.c
@@ -146,14 +146,22 @@ ob_rr_theme->a_clear->surface.parent = t;
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;
M
render/theme.c
→
render/theme.c
@@ -987,8 +987,6 @@ theme->paddingy * 2;
} theme->button_size = theme->label_height - 2; theme->grip_width = 25; - theme->top_grip_height = MAX(theme->handle_height, - theme->title_height / 4); return theme; }
M
render/theme.h
→
render/theme.h
@@ -53,7 +53,6 @@ gint title_height;
gint menu_title_height; gint button_size; gint grip_width; - gint top_grip_height; /* style settings - colors */ RrColor *menu_b_color;