Angus Leeming wrote: > Jean-Marc Lasgouttes wrote: >> The xforms patch seems reasonable enough. I do not know about the >> LyX part. But doing that would be very very nice. In particular, I >> think that would fix the bug with submenus staying on screen after >> they are closed. > > Try out the patches I posted in reply to John. It certainly does > something. It almost does the right thing too ;-)
And if you patch the patch, so that the code in XWorkArea::work_area_handler is changed to this, then all will work perfectly. Perhaps John could answer the Question? case FL_DRAW: { if (!area->work_area || !area->work_area->form->visible) return 1; if (ev) { // XScreen::expose posts XEvents with x, y relative // to the top left corner of ob. // However, X11 itself generates XEvents with // x, y relative to the top left corner // of the window. // Question: should XScreen::expose always post // with x, y relative to the top left corner // of the window? The code below would continue // to exist, but would no longer need to be wrapped // in std::max. int const x = std::max(0, ev->xexpose.x - ob->x); int const y = std::max(0, ev->xexpose.y - ob->y); area->paint(x, y, ev->xexpose.width, ev->xexpose.height); } ... -- Angus