Enlightenment CVS committal Author : kwo Project : e16 Module : e
Dir : e16/e/src Modified Files: menus.c Log Message: Fix various menu bugs. =================================================================== RCS file: /cvsroot/enlightenment/e16/e/src/menus.c,v retrieving revision 1.178 retrieving revision 1.179 diff -u -3 -r1.178 -r1.179 --- menus.c 28 Mar 2005 18:20:47 -0000 1.178 +++ menus.c 29 Mar 2005 22:51:31 -0000 1.179 @@ -323,30 +323,38 @@ head_num = GetPointerScreenGeometry(&x_origin, &y_origin, &width, &height); - if (Mode.x - x - ((int)mw / 2) > (x_origin + width)) - wx = x_origin + (int)b->border.left; - else if (Mode.x + ((int)mw / 2) > (int)(x_origin + width)) - wx = (x_origin + width) - (int)mw - (int)b->border.right; + if (Mode.x - x - ((int)mw / 2) > x_origin + width) + wx = x_origin + b->border.left; + else if (Mode.x + ((int)mw / 2) > x_origin + width) + wx = x_origin + width - mw - b->border.right; else - wx = Mode.x - x - ((int)w / 2); + wx = Mode.x - x - (w / 2); if ((wx - ((int)w / 2)) < x_origin) - wx = x_origin + (int)b->border.left; + wx = x_origin + b->border.left; - if (Mode.y + (int)mh > (int)VRoot.h) - wy = (y_origin + height) - (int)mh - (int)b->border.bottom; + if (Mode.y + (int)mh > VRoot.h) + wy = (y_origin + height) - mh - b->border.bottom; else - wy = Mode.y - y - ((int)h / 2); + wy = Mode.y - y - (h / 2); - if ((wy - ((int)h / 2) - (int)b->border.top) < y_origin) - wy = y_origin + (int)b->border.top; + if ((wy - ((int)h / 2) - b->border.top) < y_origin) + wy = y_origin + b->border.top; + } + else + { + /* We should never get here */ + wx = Mode.x - x - (w / 2); + wy = Mode.y - y - (h / 2); } } - - if (Conf.menus.onscreen) - EMoveWindow(m->win, wx, wy); else - EMoveWindow(m->win, Mode.x - x - (w / 2), Mode.y - y - (h / 2)); + { + wx = Mode.x - x - (w / 2); + wy = Mode.y - y - (h / 2); + } + + EMoveWindow(m->win, wx, wy); ewin = AddInternalToFamily(m->win, m->style->border_name, EWIN_TYPE_MENU, m, MenuEwinInit); @@ -359,11 +367,11 @@ ewin->head = head_num; if (Conf.menus.animate) EwinInstantShade(ewin, 0); - ICCCM_Cmap(NULL); - MoveEwin(ewin, EoGetX(ewin), EoGetY(ewin)); - FloatEwinAt(ewin, EoGetX(ewin), EoGetY(ewin)); if (!noshow) { + ICCCM_Cmap(NULL); + MoveEwin(ewin, EoGetX(ewin), EoGetY(ewin)); + FloatEwinAt(ewin, EoGetX(ewin), EoGetY(ewin)); ShowEwin(ewin); if (Conf.menus.animate) EwinUnShade(ewin); @@ -761,13 +769,6 @@ maxw += m->style->sub_iclass->padding.left; maxw += m->style->sub_iclass->padding.right; } - x = 0; - y = 0; - if ((m->style->bg_iclass) && (!m->style->use_item_bg)) - { - x = m->style->bg_iclass->padding.left; - y = m->style->bg_iclass->padding.top; - } r = 0; mmw = 0; @@ -775,8 +776,15 @@ pq = Mode.queue_up; Mode.queue_up = 0; + x = 0; + y = 0; for (i = 0; i < m->num; i++) { + if (r == 0 && (m->style->bg_iclass) && (!m->style->use_item_bg)) + { + x += m->style->bg_iclass->padding.left; + y += m->style->bg_iclass->padding.top; + } EMoveResizeWindow(m->items[i]->win, x, y, maxw, maxh); if (m->style->iconpos == ICON_LEFT) { @@ -880,6 +888,7 @@ STATE_NORMAL, &m->pmm, 1, ST_MENU); ESetWindowBackgroundPixmap(m->win, m->pmm.pmap); EShapeCombineMask(m->win, ShapeBounding, 0, 0, m->pmm.mask, ShapeSet); + EClearWindow(m->win); for (i = 0; i < m->num; i++) MenuDrawItem(m, m->items[i], 0); } ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs