diff options
| author | Fabien Costantini <fabien@onepost.net> | 2008-12-04 17:33:30 +0000 |
|---|---|---|
| committer | Fabien Costantini <fabien@onepost.net> | 2008-12-04 17:33:30 +0000 |
| commit | 899184656a08484f2a0afcdf87796a042f1dba63 (patch) | |
| tree | 4cb4797040c656c50c7583b7f936ea9e145f2bad /makeinclude.in | |
| parent | 73a2fa5b99fda883323cd53346f564c14060a01d (diff) | |
STR#2086 related Fixes :
This one was really tough to track, understand:
In fact,
the problem was comming from the misplacement of the menu window,
which itself came from invalid measurement,
which itself came from invalid fl_witdh() measurement,
but only when fl_gc is not valid because fl_width() relies on Win32 on the call
of GetTextExtentPoint32W which can't succeed if the HDC(here fl_gc) is not valid !
Now the fix:
A best-effort algorithm has been furthered to supply a valid fltk hdc if we can have one or a screen hdc if no fltk window is found by fl::first_window().
Note that when fl_gc is NULL inside fl_width() call, it can happen that Fl_Window::current() is not null but invalid (already deleted).
Finally, in the case of the buggy menu window observed here, this fl_gc was set to NULL just after an Fl_Menu_Window deletion and re-creation in Fl_Menu_Item::pulldown().
Also added a comment to describe the new fl_width() behavior.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6540 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'makeinclude.in')
0 files changed, 0 insertions, 0 deletions
