> Because of dealing with a huge menu structure, I finally 
> realised, what 
> in detail causes my problems: When touching the right border 
> of screen, 
> the last layer of menuitems moves to the left and covers 
> higher layer of 
> submenus. When this happens, it is not possible to choose the 
> next item 
> of the submenu and it is not possible anyway to choose other 
> items. It 
> only works to move the whole window the way, the right border is not 
> touched.

Running Edzard's demo program (with 1.1.9 on XP - but I'm fairly sure
other platforms are similar) I observe the problem as follows:

With the application positioned close to the right edge of the screen,
open the menu and position the mouse over the first item.

Now, this causes a cascade effect: The first submenu opens, and is
"pushed" back to the left by hitting the edge of the screen.
This forces its first item to be "under the mouse", so the next submenu
layer opens instantly, which is pushed back under the mouse... Until you
are left at the bottom sub-menu. It is not possible to select any of the
intermediate menu levels at all.


> I think there are two strategies to prevent this problem:
> 
> 1. Every submenu should check, whether it covers the next 
> higher submenu 
> and move to a point, where it doesn't.

I think this is what (some?) other toolkits do. Testing on this XP box,
I see that menus that would pass the right edge of the screen are
instead drawn to the left of their parent rather than to the right, so
that the parent is not covered.

> 2. When touching the right border of screen, the menu should 
> move the x0 
> of the whole menu to the left. This seems most easy to me.

I'm not sure I follow this - is this the effect I described in my
comment for (1)?

> A workaround may be, to make every submenu a little smaller, then the 
> next level. But this would make the menu huge, because the 
> first level 
> items must be longer than the longest item of the last lever plus 
> minimum 1 character for each level between.

Oh, I don't like the sound of that much.



SELEX Sensors and Airborne Systems Limited
Registered Office: Sigma House, Christopher Martin Road, Basildon, Essex SS14 
3EL
A company registered in England & Wales.  Company no. 02426132
********************************************************************
This email and any attachments are confidential to the intended
recipient and may also be privileged. If you are not the intended
recipient please delete it from your system and notify the sender.
You should not copy it or use it for any purpose nor disclose or
distribute its contents to any other person.
********************************************************************

_______________________________________________
fltk mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk

Reply via email to