Commit Graph

5032 Commits

Author SHA1 Message Date
Manolo Gouy
0f5ea9a2e2 Fix STR #2612: added missing #include <X11/keysym.h>
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8625 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-27 08:47:00 +00:00
Manolo Gouy
5be46ea4ad Added function keys F13 - F16 and corrected backslash key.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8624 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-26 17:28:10 +00:00
Albrecht Schlosser
3b76848435 Documentation updates, also fixing STR #2574, trying to make clear
which events invisible and inactive widgets can get.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8623 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-24 17:09:41 +00:00
Manolo Gouy
89be9d5e04 Fix STR #2596: Fluid generated improper callback member functions for
Fl_Menu_Item's in widget classes. Fixed with OP's patch.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8622 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-24 16:25:09 +00:00
Albrecht Schlosser
06e17886ed Documentation fixes and a few indent corrections.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8621 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-23 15:46:30 +00:00
Albrecht Schlosser
5c6913fed9 Fixed potential uninitialized pointer usage.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8620 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-23 12:27:58 +00:00
Manolo Gouy
65b9610a96 Mac OS: exact implementation of the Fl::screen_dpi() function.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8619 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-22 17:30:37 +00:00
Manolo Gouy
239489c4b8 Fix STR #2608: the bug had been introduced by r.8552 to solve STR #2598.
The new code makes the STR #2598 changes unix-specific so it does not
interact with the WIN32 platform.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8618 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-22 11:00:06 +00:00
Albrecht Schlosser
0f20c065ce Fixed keyboard navigation in fl_choice() (STR #2591)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8616 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-20 14:54:42 +00:00
Albrecht Schlosser
08b93ec972 Reverted changes done in svn r 7788 for STR #2420 ("Tab-Navigation focuses
non-active_r() widgets"). This must be investigated further, and if necessary,
solved differently. STR #2420 will be reopened...


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8615 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-20 14:34:53 +00:00
Albrecht Schlosser
85a3534ee3 Updated dependencies.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8612 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-20 14:03:22 +00:00
Albrecht Schlosser
18628d428b Fixed alpha blending under X11 when line data size != 0 (STR #2606)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8611 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-20 14:01:04 +00:00
Albrecht Schlosser
2999acc1bb Added some test parameters for fine tuning of image tests. These parameters
are implemented as compiler macros and can only be edited manually to test
different implementation details.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8609 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-20 13:38:28 +00:00
Manolo Gouy
ad50b753be Added fallback mechanism if malformed UTF-8 is used for a window title.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8608 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-19 12:37:20 +00:00
Manolo Gouy
d4685c13ef Misc code cleaning.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8607 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-19 08:22:05 +00:00
Manolo Gouy
1ad8cf320d Fixed a problem in the WIN32 version of Fl_Paged_Device::print_window_part() and
Fl_Paged_Device::print_window() where the window didn't redraw well in some
cases after printing.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8606 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-18 20:47:32 +00:00
Ian MacArthur
451b91ea46 OK - this time I actually think I have got it.
The win32 text-extents stuff now seems to be handling surrogate pairs correctly,
at least in my testing harness, and with a variety of supplementary plane fonts.

I really will leave this alone now - unless anyone finds bugs of course!

I have tested for regressions and it seems to be fine AFAICT.



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8605 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-18 14:34:20 +00:00
Manolo Gouy
aa930a6d21 Fix STR #2603: deselected menu item when mouse enters menu bar out from any menu title.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8604 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-18 13:05:08 +00:00
Manolo Gouy
b51f47c437 Fix STR #2605: proper mapping of the Windows key.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8603 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-18 11:45:46 +00:00
Manolo Gouy
f763b4b709 Use adequate shortcut for "New View" on the Mac platform.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8602 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-18 11:29:30 +00:00
Manolo Gouy
619cb25982 Mac OS: The Fl_mac.cxx test
if (winclass != kHelpWindowClass)
is now replaced in Fl_cocoa.mm by its exact equivalent:
  if ( w->border() || (!w->modal() && !w->tooltip_window()) )
so that tooltip windows are handled as in carbon.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8601 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-18 08:18:16 +00:00
Ian MacArthur
ac5d865986 This WIN32 patch introduces a credible (though far from ideal)
workaround for text_extents being measured on glyphs from
supplementary Unicode planes.
It has no effect on glyphs from the Basic plane, so should not
be visible at all to most code.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8600 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-17 21:19:14 +00:00
Manolo Gouy
8f59684c0f Mac OS: Fixed bug where an application could be left with only a tooltip window opened.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8599 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-17 19:58:31 +00:00
Ian MacArthur
d77223ea58 A quick hack to prevent the OSX tooltip-crash on
badly formed UTF8 strings.

This probably is not the best solution, but it
does work.
Note that the problem actually seems to be in
setting the window title, and indeed if you try to
label ANY window with a badly formed UTF8 string
(not just a tooltip) you get the same exception
thrown.

NOTE: I'm not even sure why we try to set the 
window title in tooltips, as it is never used 
and the tooltip label itlsef still works fine.

Anyway, we can do something better, but this will
work for now.

Aside: If you close an app on OSX whilst a tooltip
is visible, the app will not exit, as there is still
a window open (the tooltip) but no way to cancel
the tooltip.

Don't know if this is OSX specific or not though
but it is certainly a bug.



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8598 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-17 14:39:16 +00:00
Ian MacArthur
e67e628317 I've extended Manolo's excellent tweaks that handle surrogate pairs.
I found some kind of weird interaction with some symbol fonts that
covered the supplementary planes that meant we could not measure
the width correctly (although we did measure the text extents correctly.)

This mod mirrors what we do for non-surrogate-pair glyphs more
closely and appears to do the Righ Thing now, at least for the test fonts that I have, and which were exhibiting the aberrant behaviour before.

I don't think I have broken anything else in the meantime!

 


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8597 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-17 13:18:55 +00:00
Manolo Gouy
f8d1e074ed Made Fl_Quartz_Graphics_Driver::text_extents() resistant to mal-formed UTF-8 text.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8596 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-17 11:19:41 +00:00
Manolo Gouy
ddc4b21b55 Fixed Fl_Paged_Device::print_window() that did not work under Windows seven.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8595 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-17 08:48:40 +00:00
Manolo Gouy
8212e4bfe7 Corrected gl.h instead of gl.H
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8594 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-15 21:41:34 +00:00
Manolo Gouy
9ff9cf1230 Added Fl_Paged_Device::print_window() to print a window with its title bar and frame.
Added Fl_Window::decorated_w() and Fl_Window::decorated_h() that return the size
of a window with its title bar and frame.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8593 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-15 21:38:05 +00:00
Manolo Gouy
c473215f2a Corrected typo.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8592 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-14 13:22:13 +00:00
Manolo Gouy
8d2d3c2a7d Corrected typo.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8591 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-14 13:21:12 +00:00
Manolo Gouy
2af958422a Corrected typo.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8590 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-14 13:16:03 +00:00
Manolo Gouy
8c6aa5edb5 Corrected typo.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8589 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-14 13:15:13 +00:00
Manolo Gouy
3f984b0b86 Corrected typo.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8588 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-14 13:11:34 +00:00
Manolo Gouy
73a57f8ac8 Corrected typo.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8587 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-14 13:04:57 +00:00
Manolo Gouy
f7c2061f0c Improved the accuracy of clipping when printing on Mac OS.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8586 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-13 20:50:41 +00:00
Ian MacArthur
be6df55717 More attempts to clean up WIN32 handling of UTF16 surrogate pairs.
In particular, I have added a new function to src/fl_utf.c called fl_ucs_to_Utf16() which
converts a single 32-bit Unicode value into one (or more) UTF16 cells.

This is needed in the win32 char-by-char text width() logic, and I suspect may also be useful in the OSX code in some places.



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8585 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-13 15:43:22 +00:00
Manolo Gouy
639ee4fbab Now sends FL_HIDE/FL_SHOW events when window is iconized/un-iconized.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8584 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-13 09:03:19 +00:00
Manolo Gouy
404a7c1bad Restores change made in r.8557 that blocked system menu shortcuts.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8583 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-12 20:15:10 +00:00
Ian MacArthur
1d988db2db Under win32, text_extents() is not handling surrogate pairs either, at least on XP.
The problem seems to be in GetGlyphIndicesW() which is returning invalid indices for the surrogate pairs.
This causes subsequent measurements of the glyphs to fail, of course.

This patch does not fix the problem, it only makes sure it fails cleanly, causing a fallback to the default fl_measure like behaviour.
This is not nice, nor what I want, but at least it is consistent for now...



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8582 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-12 16:18:42 +00:00
Manolo Gouy
8b026342dd Following STR #2583, the behaviour of fl_draw_image() with d = 4 on Mac OS is here
made consistent with other platforms, that is, the 4th byte of each pixel is ignored
instead of treated as transparency data.
In the future, the fl_draw_image() signature may be extended with another argument
that would describe if and how transparency information is available.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8581 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-12 11:38:43 +00:00
Ian MacArthur
38a3c21ffd Modify win32 text width(ucs) function to handle surrogate pairs.
This now correctly measures glyphs whose codepoint requires a surrogate pair to represent it in UTF16.

NOTE 1: This code makes any UCS point > 0xFFFF a "special case" and measures it explicitly, rather than using the lookup table. This "explicit measure" may be slow, but actually seems OK in my tests, so far.
The lookup table still covers the basic multilingual plane and is used for any glyph <= 0xFFFF as before, so the behaviour for most existing bodies of text is unchanged.

This code also retains the historical behaviour under Win32 whereby strings are measured char-by-char rather than as a whole string - again this is intended to retain compatability with existing implementations.

It is proposed that we should move towards measuring entire strings in the future as this is conceivably more efficient and certainly more consistent - rendering is now largely done "string as a whole" so we ought to measure in that way too; though to date the differences seem tiny, as evdienced by the text rendering page of the unittest example.

NOTE 2: This does not fix the *rendering* of surrogate pairs under XP, which still seems to be broken. I suspect that TextOutW() may genuinely broken under XP, as it works fine on Vista, and it is not just my code that seems broken, other non-fltk programs exhibit the same aberrant behaviour. Measuring of surrogate pairs appears to work correctly though...
Maybe we are using TextOutW() wrongly?




git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8580 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-12 10:08:58 +00:00
Ian MacArthur
d065ca89fe modify the win32 text ::draw() function to do "string at once" rather than "char by char" rendering, as advised by Bill and Manolo.
This seems to be good so far, though does not resolve the XP surrogate pairs issues.
If this fix is bad, we need to revert to r8577, which is good...

And I still haven't fixed the handling of width in win32 code, so it is still inconsistent with draw for high Ubicode points.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8579 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-11 22:00:19 +00:00
Ian MacArthur
924ed100d6 Minor rework of code to make ::rtl_draw() and ::draw(int angle,...) more consistent in coding terms. Behaviour of output unchanged.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8578 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-11 21:49:05 +00:00
Manolo Gouy
87b998ed1f Fixed crash on Mac OS when Fl::focus() called before show().
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8577 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-11 20:10:02 +00:00
Manolo Gouy
8d084cb4bc Added missing fl_lock_function() / fl_unlock_function() pairs of calls.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8576 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-11 19:52:41 +00:00
Ian MacArthur
4710a67670 Remove use of the MS API call MultiByteToWideChar(...) and re-instate use of fl_utf8toUtf16(...) now that I have fixed a slight off-by-one in handling the ends of the input strings.
This makes string handling much more consistent across variants.
Doh!. I am such an idiot...

NOTE: This still does not fix aberrant handling of surrogate pairs under WinXP, and I still haven't resolved the issues with the win32 ::width() functions not handling surrogate pairs at all...




git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8575 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-11 13:13:08 +00:00
Manolo Gouy
3d9eeb2d44 r. 8537 had by error introduced a compilation error with ppc architecture.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8573 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-10 09:10:40 +00:00
Manolo Gouy
7ce87f5102 Mac OS: fl_rect(), fl_rectf(), and fl_point() now have exact same output to display and printer.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8572 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-10 09:01:13 +00:00
Manolo Gouy
0937913a7c Added missing test of necessity of fl_open_display() call.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8571 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-04-08 16:14:05 +00:00