--- src/Screen.cc.orig 2003-08-04 19:24:27.000000000 -0700 +++ src/Screen.cc 2003-08-04 21:27:18.000000000 -0700 @@ -2413,9 +2417,17 @@ void BScreen::showPosition(int x, int y) { if (! geom_visible) { +#ifdef XINERAMA + int t; + t = (getWidth() - geom_w) / 2; + XMoveResizeWindow(blackbox->getXDisplay(), geom_window, + (x>t) ? (t+(t/2)) : (t-(t/2)), + (getHeight() - geom_h) / 2, geom_w, geom_h); +#else XMoveResizeWindow(blackbox->getXDisplay(), geom_window, (getWidth() - geom_w) / 2, (getHeight() - geom_h) / 2, geom_w, geom_h); +#endif XMapWindow(blackbox->getXDisplay(), geom_window); XRaiseWindow(blackbox->getXDisplay(), geom_window); @@ -2435,12 +2447,21 @@ label, true); } - +#ifdef XINERAMA +void BScreen::showGeometry(unsigned int gx, unsigned int gy, int x, int y) { + if (! geom_visible) { + int t; + t = (getWidth() - geom_w) / 2; + XMoveResizeWindow(blackbox->getXDisplay(), geom_window, + (x>t) ? (t+(t/2)) : (t-(t/2)), + (getHeight() - geom_h) / 2, geom_w, geom_h); +#else void BScreen::showGeometry(unsigned int gx, unsigned int gy) { if (! geom_visible) { XMoveResizeWindow(blackbox->getXDisplay(), geom_window, (getWidth() - geom_w) / 2, (getHeight() - geom_h) / 2, geom_w, geom_h); +#endif XMapWindow(blackbox->getXDisplay(), geom_window); XRaiseWindow(blackbox->getXDisplay(), geom_window); --- src/Screen.hh.orig 2003-08-04 21:34:17.000000000 -0700 +++ src/Screen.hh 2003-08-04 21:32:06.000000000 -0700 @@ -413,7 +413,11 @@ void rereadMenu(void); void shutdown(void); void showPosition(int x, int y); +#ifdef XINERAMA + void showGeometry(unsigned int gx, unsigned int gy, int x, int y); +#else void showGeometry(unsigned int gx, unsigned int gy); +#endif void hideGeometry(void); bool parseMenuFile(FILE *file, Rootmenu *menu); --- src/Window.cc.orig 2003-08-04 21:23:53.000000000 -0700 +++ src/Window.cc 2003-08-04 21:32:44.000000000 -0700 @@ -3843,8 +3843,12 @@ screen->getOpGC(), frame.changing.x(), frame.changing.y(), frame.changing.width() - 1, frame.changing.height() - 1); +#ifdef XINERAMA + screen->showGeometry(gw, gh, frame.changing.x(), frame.changing.y()); +#else screen->showGeometry(gw, gh); - +#endif + frame.grab_x = x_root; frame.grab_y = y_root; } @@ -3902,7 +3906,11 @@ screen->getOpGC(), frame.changing.x(), frame.changing.y(), frame.changing.width() - 1, frame.changing.height() - 1); +#ifdef XINERAMA + screen->showGeometry(gw, gh, frame.changing.x(), frame.changing.y()); +#else screen->showGeometry(gw, gh); +#endif }