all repos — openbox @ d7b4f1b126aaafdc6f2d76c2126e0d7be6d10687

openbox fork - make it a bit more like ryudo

make separators span the width of the entire menu
Dana Jansens danakj@orodu.net
commit

d7b4f1b126aaafdc6f2d76c2126e0d7be6d10687

parent

9d42df6ab4099c9365d3631ea86348a8f21752a0

1 files changed, 13 insertions(+), 11 deletions(-)

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

@@ -94,9 +94,11 @@ self->frame = frame;

attr.event_mask = ENTRY_EVENTMASK; self->window = createWindow(self->frame->items, CWEventMask, &attr); - self->icon = createWindow(self->window, 0, NULL); self->text = createWindow(self->window, 0, NULL); - self->bullet = createWindow(self->window, 0, NULL); + if (entry->type != OB_MENU_ENTRY_TYPE_SEPARATOR) { + self->icon = createWindow(self->window, 0, NULL); + self->bullet = createWindow(self->window, 0, NULL); + } XMapWindow(ob_display, self->window); XMapWindow(ob_display, self->text);

@@ -129,10 +131,12 @@

static void menu_entry_frame_free(ObMenuEntryFrame *self) { if (self) { - XDestroyWindow(ob_display, self->icon); XDestroyWindow(ob_display, self->text); - XDestroyWindow(ob_display, self->bullet); XDestroyWindow(ob_display, self->window); + if (self->entry->type != OB_MENU_ENTRY_TYPE_SEPARATOR) { + XDestroyWindow(ob_display, self->icon); + XDestroyWindow(ob_display, self->bullet); + } RrAppearanceFree(self->a_normal); RrAppearanceFree(self->a_disabled);

@@ -256,22 +260,20 @@ RrPaint(text_a, self->text, self->frame->text_w - self->frame->item_h,

self->frame->item_h - 2*PADDING); break; case OB_MENU_ENTRY_TYPE_SEPARATOR: - XMoveResizeWindow(ob_display, self->text, - self->frame->text_x, PADDING, - self->frame->text_w - 2*PADDING, - SEPARATOR_HEIGHT); + XMoveResizeWindow(ob_display, self->text, PADDING, PADDING, + self->area.width - 2*PADDING, SEPARATOR_HEIGHT); self->a_separator->surface.parent = item_a; - self->a_separator->surface.parentx = self->frame->text_x; + self->a_separator->surface.parentx = PADDING; self->a_separator->surface.parenty = PADDING; self->a_separator->texture[0].data.lineart.color = text_a->texture[0].data.text.color; self->a_separator->texture[0].data.lineart.x1 = 2*PADDING; self->a_separator->texture[0].data.lineart.y1 = SEPARATOR_HEIGHT / 2; self->a_separator->texture[0].data.lineart.x2 = - self->frame->text_w - 6*PADDING; + self->area.width - 4*PADDING; self->a_separator->texture[0].data.lineart.y2 = SEPARATOR_HEIGHT / 2; RrPaint(self->a_separator, self->text, - self->frame->text_w - 2*PADDING, SEPARATOR_HEIGHT); + self->area.width - 2*PADDING, SEPARATOR_HEIGHT); break; }