X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2FBasemenu.cc;h=ac605cb7ed6bea922003b120f66753cca40186c4;hb=5ec63388b8fbbdffc0999ba727ad718f87d683fc;hp=fcd6931e6eba5dff03dbd4012468d59f131b2b3a;hpb=0a9da781402101b450b575c9ce0b20e651aa27a3;p=chaz%2Fopenbox diff --git a/src/Basemenu.cc b/src/Basemenu.cc index fcd6931e..ac605cb7 100644 --- a/src/Basemenu.cc +++ b/src/Basemenu.cc @@ -151,7 +151,7 @@ Basemenu::~Basemenu(void) { MenuItems::const_iterator it = menuitems.begin(); while (it != menuitems.end()) { BasemenuItem *item = *it; - if ((! internal_menu)) { + if (! internal_menu) { Basemenu *tmp = (Basemenu *) item->submenu(); if (tmp) { if (! tmp->internal_menu) { @@ -224,7 +224,7 @@ int Basemenu::remove(int index) { BasemenuItem *item = find(index); if (! item) return -1; - if ((! internal_menu)) { + if (! internal_menu) { Basemenu *tmp = (Basemenu *) item->submenu(); if (tmp) { if (! tmp->internal_menu) { @@ -385,10 +385,10 @@ void Basemenu::show(void) { void Basemenu::hide(void) { - if ((! torn) && hide_tree && parent && parent->isVisible()) { + if (! torn && hide_tree && parent && parent->isVisible()) { Basemenu *p = parent; - while (p->isVisible() && (! p->torn) && p->parent) p = p->parent; + while (p->isVisible() && ! p->torn && p->parent) p = p->parent; p->internal_hide(); } else { internal_hide(); @@ -401,7 +401,7 @@ void Basemenu::internal_hide(void) { if (tmp) tmp->submenu()->internal_hide(); - if (parent && (! torn)) { + if (parent && ! torn) { parent->drawItem(parent->which_sub, False, True); parent->which_sub = -1; @@ -557,8 +557,11 @@ void Basemenu::drawItem(int index, bool highlight, bool clear, } MenuStyle *style = screen->getMenuStyle(); - BPen pen((highlight || item->isSelected()) ? style->h_text : style->f_text), - hipen(style->hilite.color()); + BPen hipen(style->hilite.color()); + // match the text color + BPen pen((highlight ? style->h_text : + (item->isEnabled() ? style->f_text : + style->d_text))); sel_x = item_x; @@ -607,14 +610,16 @@ void Basemenu::drawItem(int index, bool highlight, bool clear, } if (dosel && item->isSelected()) { - // match the text color - BPen pen((highlight ? style->h_text : - (item->isEnabled() ? style->f_text : - style->d_text))); - XPoint pts[6]; - pts[0].x = sel_x + 0; + // put the check mark on the opposite side of the menu + int x = sel_x; + if (screen->getMenuStyle()->bullet_pos == Right) + x -= (menu.item_w - menu.item_h - menu.bevel_w); + else + x += (menu.item_w - menu.item_h - menu.bevel_w); + + pts[0].x = x + 0; pts[0].y = sel_y + 2; pts[1].x = 0; @@ -808,7 +813,7 @@ void Basemenu::motionNotifyEvent(XMotionEvent *me) { if (me->window == menu.title && (me->state & Button1Mask)) { if (movable) { if (! moving) { - if (parent && (! torn)) { + if (parent && ! torn) { parent->drawItem(parent->which_sub, False, True); parent->which_sub = -1; } @@ -827,7 +832,7 @@ void Basemenu::motionNotifyEvent(XMotionEvent *me) { drawSubmenu(which_sub); } } - } else if ((! (me->state & Button1Mask)) && me->window == menu.frame && + } else if (! (me->state & Button1Mask) && me->window == menu.frame && me->x >= 0 && me->x < static_cast(menu.width) && me->y >= 0 && me->y < static_cast(menu.frame_h)) { int sbl = (me->x / menu.item_w), i = (me->y / menu.item_h), @@ -842,7 +847,7 @@ void Basemenu::motionNotifyEvent(XMotionEvent *me) { drawItem(p, False, True); if (item->submenu()) if (item->submenu()->isVisible() && - (! item->submenu()->isTorn())) { + ! item->submenu()->isTorn()) { item->submenu()->internal_hide(); which_sub = -1; } @@ -926,7 +931,7 @@ void Basemenu::enterNotifyEvent(XCrossingEvent *ce) { int sbl = (ce->x / menu.item_w), i = (ce->y / menu.item_h), w = (sbl * menu.persub) + i; - if (w != which_sub && (! tmp->submenu()->isTorn())) { + if (w != which_sub && ! tmp->submenu()->isTorn()) { tmp->submenu()->internal_hide(); drawItem(which_sub, False, True);