X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2FBasemenu.cc;h=c5ecd3bb0902d4b237f8a7193f67a9863787e53f;hb=0a3cfdfcb956024639a05549a50586e3d826b42e;hp=ba476c15e6e63915fdc3ed9a66606c89c4b2e838;hpb=72af8cea6a0573f7d2c004102cd04f1a1ad88798;p=chaz%2Fopenbox diff --git a/src/Basemenu.cc b/src/Basemenu.cc index ba476c15..c5ecd3bb 100644 --- a/src/Basemenu.cc +++ b/src/Basemenu.cc @@ -34,10 +34,13 @@ # include #endif // HAVE_STDIO_H -#ifdef STDC_HEADERS +#ifdef HAVE_STDLIB_H # include +#endif // HAVE_STDLIB_H + +#ifdef HAVE_STRING_H # include -#endif // STDC_HEADERS +#endif // HAVE_STRING_H #include using namespace std; @@ -49,7 +52,7 @@ using namespace std; static Basemenu *shown = (Basemenu *) 0; -Basemenu::Basemenu(BScreen &scrn) : screen(scrn), openbox(scrn.getOpenbox()) { +Basemenu::Basemenu(BScreen &scrn) : openbox(scrn.getOpenbox()), screen(scrn) { image_ctrl = screen.getImageControl(); display = openbox.getXDisplay(); parent = (Basemenu *) 0; @@ -316,7 +319,7 @@ void Basemenu::update(void) { while (((menu.item_h * (menuitems->count() + 1) / menu.sublevels) + menu.title_h + screen.getBorderWidth()) > - screen.getHeight()) + screen.size().h()) menu.sublevels++; if (menu.sublevels < menu.minsub) menu.sublevels = menu.minsub; @@ -549,15 +552,15 @@ void Basemenu::drawSubmenu(int index) { y = (((shifted) ? menu.y_shift : menu.y) + menu.height - item->submenu()->menu.height); - if ((x + item->submenu()->getWidth()) > screen.getWidth()) { + if ((x + item->submenu()->getWidth()) > screen.size().w()) { x = ((shifted) ? menu.x_shift : menu.x) - item->submenu()->getWidth() - screen.getBorderWidth(); } if (x < 0) x = 0; - if ((y + item->submenu()->getHeight()) > screen.getHeight()) - y = screen.getHeight() - item->submenu()->getHeight() - + if ((y + item->submenu()->getHeight()) > screen.size().h()) + y = screen.size().h() - item->submenu()->getHeight() - (screen.getBorderWidth() * 2); if (y < 0) y = 0; @@ -963,8 +966,8 @@ void Basemenu::exposeEvent(XExposeEvent *ee) { void Basemenu::enterNotifyEvent(XCrossingEvent *ce) { if (ce->window == menu.frame) { menu.x_shift = menu.x, menu.y_shift = menu.y; - if (menu.x + menu.width > screen.getWidth()) { - menu.x_shift = screen.getWidth() - menu.width - + if (menu.x + menu.width > screen.size().w()) { + menu.x_shift = screen.size().w() - menu.width - screen.getBorderWidth(); shifted = True; } else if (menu.x < 0) { @@ -972,8 +975,8 @@ void Basemenu::enterNotifyEvent(XCrossingEvent *ce) { shifted = True; } - if (menu.y + menu.height > screen.getHeight()) { - menu.y_shift = screen.getHeight() - menu.height - + if (menu.y + menu.height > screen.size().h()) { + menu.y_shift = screen.size().h() - menu.height - screen.getBorderWidth(); shifted = True; } else if (menu.y + (signed) menu.title_h < 0) {