MacArthur, Ian (SELEX GALILEO, UK) schrieb: > What I see is that the first menu is in it's "normal" position, but all > the children open cascading to the left (rather than to the right) so > that all are visible, in the specific case that edge-collision on the > right occurs.
First research is done: Inside of Fl_Menu.cxx there is a class menuwindow and it is possible to patch menuwindow::menuwindow(). First I focused at "int right_edge", but this is a fake, because "righ_edge" is never used and I deleted all right_edge. Some lines deeper there is a term if (X > scr_x+scr_w-W) X= scr_x+scr_w-W; This one is doing the movement when reaching screen border. A first litte change to if (X + W > scr_x + scr_w) X= X -itemheight - W; is a little effort, because submenus touching right screen border now are moving to the left, leaving a square area for choose of covered submenu. The little change in if-condition doesn't change something, but for me is better to understand. This is better, but doesn't look best to me. For moving the whole submenus it seems to be necessary to patch Fl_Menu_Item::pulldown()/popup(), where there seems to be a place recalculating position of all submenus. But I think it is better to understand tomorrow morning. ;o) To be continued... _______________________________________________ fltk mailing list [email protected] http://lists.easysw.com/mailman/listinfo/fltk

