DO NOT REPLY TO THIS MESSAGE.  INSTEAD, POST ANY RESPONSES TO THE LINK BELOW.

[STR New]

Link: http://www.fltk.org/str.php?L2695
Version: 1.3-current


OK, here's some more details. Albrecht and I have looked into this, and
here's some notes...

Consider fltk-1.3 r8914, in the file Fl_Menu.cxx at lines 282 and 416 we
ascertain the current screen dimensions by doing:

    Fl::screen_xywh(scr_x, scr_y, scr_w, scr_h);

Now, prior to STR #2640, that would return the *work area* of the screen
in which the cursor was located.

But that was not the documented behaviour for Fl::screen_xywh() - it was
*supposed* to return the *screen size* instead. So #2640 fixed
Fl::screen_xywh() to behave correctly.

But the (unforseen) side effect is that the menu code now creates menus
that extend to the screen edge, not to the limit of the user-accessible
work area, and so menus may extend behind the taskbar / dock /
whatever-icon-system-your-WM uses...

The consequence of course is that the menu items that are "shown" behind
the dock are not user accesible, and the auto-scrolling of large menus
does not work, as the user can not "reach" the bottom of the menu.

Previously, of course, this all worked OK because the menu was (by
fortuitous error, it seems) reading the *work area* instead of the *screen
size* and the menus were then bounded to user accessible space...

So: how to fix this regression? Fl::w() and Fl::h() still return the *work
area* so in a single-monitor setup that might work OK.

I can't see how to get the *work area* of the current screen in a
multi-head set up though, so we may well be stuck.

Unless Fl::w() and Fl::h() do refer to the current screen?
But I don't think they do, I'm pretty sure they return the "whole" work
area over multiple screens - or at least, that's what I remember doing
when we were running multi-head WinXP test sets here...

Perhpas we need to consider adding a method analogous to
Fl::screen_xywh(); maybe Fl::work_xywh() perhaps, to obtain the usable
work area and limits of the current screen?

That seems like it may be a useful facility anyway, and not just for use
in Fl_Menu creation but as a general thing for users too...

Thoughts?


Link: http://www.fltk.org/str.php?L2695
Version: 1.3-current

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

Reply via email to