Commit Graph

5696 Commits

Author SHA1 Message Date
Albrecht Schlosser
418699fcea Fix two compiler warnings [-Wunused-variable] 2021-08-30 14:28:35 +02:00
Albrecht Schlosser
dc13b56915 Fix compiler warnings (Windows only)
src/Fl_Native_File_Chooser_WIN32.cxx:331:12: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
  331 |   while ( s=strchr(s,'\\') ) *s = '/';
      |           ~^~~~~~~~~~~~~~~

src/Fl_Native_File_Chooser_WIN32.cxx:336:12: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
  336 |   while ( s=strchr(s,'/') ) *s = '\\';
      |           ~^~~~~~~~~~~~~~
2021-08-30 14:16:49 +02:00
Duncan Gibson
6d78015071 add fl_filename_match comments as per STR3186
add Notes: section to fl_filename_match documentation
explaining case-sensitivity [or not] and use of \x

see also https://www.fltk.org/str.php?L3186
2021-08-28 15:12:38 +02:00
Albrecht Schlosser
29a56f87e3 Fix "Tooltip causing Window to 'unfocus' on Windows" (#261)
This fixes a regression introduced in FLTK 1.4 in commit
3bc5be71a3 ("Rewrite Fl_Tooltip.cxx
for the driver model").
2021-08-27 18:38:04 +02:00
Albrecht Schlosser
6ac305a508 Remove compiler warnings '-Wextra-semi' (see also PR #266)
I compiled with `-Wextra-semi -Werror=extra-semi` on Linux and Windows
(cross-compiled on Linux) and removed all "extra semicolon" warnings
I could find. I didn't check on macOS (yet).

Note: Linux configured with and w/o Pango but not w/o Xft. Compilation
with other options (e.g. Cairo) might still emit such warnings.
2021-08-27 14:52:43 +02:00
ManoloFLTK
33cf312a73 Fix problem in native file chooser with macOS 12 "Monterey" (beta). 2021-08-06 15:12:40 +02:00
ManoloFLTK
db7bb6cd98 Have Fl_Quartz_Copy_Surface_Driver account for current display scaling factor. 2021-08-05 19:21:05 +02:00
ManoloFLTK
e4ce39559a macOS: account for deprecation of [NSBitmapImageRep initWithFocusedViewRect:] in macOS 10.14 2021-08-04 18:25:37 +02:00
ManoloFLTK
fa49d29ec8 macOS: fix paste of image for macOS 11.x
With macOS 11.x, the pasteboard image can be found with floating point pixel values.
This changes makes FLTK process adequately such image data.
2021-08-03 18:08:33 +02:00
ManoloFLTK
ded0253bb7 Fix © year. 2021-07-24 18:10:16 +02:00
ManoloFLTK
39956805a4
Remove useless friend declaration. 2021-07-24 09:27:51 +02:00
Albrecht Schlosser
c6eccf6137 Call pthread's recursive mutex on Linux (Issue #245)
Add CMake test for PTHREAD_MUTEX_RECURSIVE

Add autoconf/configure compile test for PTHREAD_MUTEX_RECURSIVE

Replace "#ifdef PTHREAD_MUTEX_RECURSIVE"
   with "#ifdef HAVE_PTHREAD_MUTEX_RECURSIVE"
and define HAVE_PTHREAD_MUTEX_RECURSIVE in config.h
2021-07-21 12:16:20 +02:00
Albrecht Schlosser
787c67afea macOS: fix fltk_cairo shared library (issue #250)
- add missing dependencies to build the shared libfltk_cairo(.dylib)
- remove incorrect dependency on cairo from libfltk
- add cairo_test-shared demo (linked with shared libs)
2021-07-12 20:05:07 +02:00
Albrecht Schlosser
5cca79489b Harmonize and document syntax of config.h source files
- configh.in: add and improve comments, reorder statements
- configh.cmake.in: add comments, fix whitespace

- src/drivers/GDI/Fl_GDI_Graphics_Driver_line_style.cxx:
  fix trailing whitespace
2021-07-08 13:59:47 +02:00
Albrecht Schlosser
135ba3a7e1 macOS: Fl::add_timeout() must always create a new timer (#248)
The old version would reschedule an existing timer if a matching timer
existed already which was unique to macOS.

The new behavior is consistent on all platforms and allows to create
multiple timer entries with the same callback and userdata.
2021-07-08 10:10:58 +02:00
Albrecht Schlosser
87475c20d6 macOS: Fix a timer inconsistency and prevent a crash
Calling Fl::repeat_timeout() instead of Fl::add_timeout() to create
a timer would crash on macOS but fall back to Fl::add_timeout() on
Windows and Unix/Linux. Although this is documented as "undefined
behavior" a crash should always be avoided and the fallback is now
consistent on all major platforms.

In the future this may be documented as the standard behavior.
2021-07-07 15:35:14 +02:00
Albrecht Schlosser
1008cdfab2 Remove duplicate BOM check (#247)
Sorry for the noise, this was a "merge error".

Also, fix a typo.
2021-07-04 16:13:09 +02:00
Albrecht Schlosser
2e9d13c1a2 Fix svg image check (#247)
Thanks to @wcout for pointing out that "<svg\t" is a valid notation.

The overall length check (>= 5) is left in place intentionally.
2021-07-03 19:45:10 +02:00
Albrecht Schlosser
ce26f04f2d Check for valid length and simplify BOM check (#247) 2021-07-03 19:10:38 +02:00
ManoloFLTK
6361e7d1b7 Fix for issue #247 : loading SVG image with BOM. 2021-07-03 18:08:16 +02:00
Albrecht Schlosser
e3e8fe494d Fix FL_MOUSEWHEEL event coordinates in subwindow (#210)
Issue #210: "Fl::event_x() & event_y() doesn't take into account
  embedded window's coords with Mouse wheel events"

In fact the calculation of Fl::event_x() and Fl::event_y() used the
wrong window coordinates if the event was sent to a subwindow.
2021-07-01 18:42:03 +02:00
fire-eggs
55eee459d4 Fix use of variable out-of-scope (PR #242) 2021-06-27 14:34:17 +02:00
Albrecht Schlosser
75211977b2 Fix a potential memory leak (PR #241)
This is a hypothetical fix, since the condition `count == 0` may not
be true although `doit` has been allocated. In practice this should
not be possible since the same loop is executed twice in lines 463++
and 471++. But anyway, here it is...
2021-06-26 15:48:13 +02:00
fire-eggs
c21732705c Fix potential memory leak (#241)
Signed-off-by: Albrecht Schlosser <albrechts.fltk@online.de>
2021-06-26 15:46:56 +02:00
Albrecht Schlosser
713d1bfd7c Revert parts of and fix other 'constness' changes (#239, #181)
Some of the previous constness changes turned out to be incomplete,
others had to be reverted because some other driver methods could
not be made 'const' - particularly those calling open_display() to
get the requested information.
2021-06-18 18:46:17 +02:00
Albrecht Schlosser
f94ed7116c Make non-const Fl_Screen_Driver methods const (#181)
As requested by issue #181:
  "Fl_Screen_Driver.H non-const functions should be const"

Not all methods could be made 'const' because some screen related
methods call init() internally.
2021-06-16 14:24:05 +02:00
ManoloFLTK
465789951f Don't activate scaling shortcuts if platform doesn't support scaling. 2021-06-09 23:20:49 +02:00
Albrecht Schlosser
1bd57a20e6 Windows: Fix compiler warning, simplify code
src/Fl_Native_File_Chooser_WIN32.cxx:190:10:
  warning: ‘char* strncpy(char*, const char*, size_t)’ specified bound
  depends on the length of the source argument [-Wstringop-overflow=]
  190 |   strncpy(wp2, string, n);
      |   ~~~~~~~^~~~~~~~~~~~~~~~

Although there was no real problem with the code (the allocated buffer
was large enough), the code was questionable and there was redundant
code that could be simplified.
2021-05-31 14:14:37 +02:00
ManoloFLTK
b027d2ba57 Windows platform: use GDI+ to antialias oblique lines and curves. 2021-05-31 08:28:06 +02:00
ManoloFLTK
d95dd7acc4 New virtual member function Fl_Graphics_Driver::colored_rectf(). 2021-05-28 13:30:59 +02:00
ManoloFLTK
47ba6632b1 macOS: Avoid premature FL_RELEASE event at start of drag-n-drop operation.
This fixes this issue mentioned in fltk.general :
https://www.fltk.org/newsgroups.php?s40623+gfltk.general+v40638+T
2021-05-27 08:49:27 +02:00
Albrecht Schlosser
3b40d7a07f Fix trailing whitespace and formatting 2021-05-26 22:01:35 +02:00
Albrecht Schlosser
e4a972c3f3 Windows: fix fl_system() and fl_execvp() (STR 3438)
Use correct conversions to Windows "wide character" encoding and
use the appropriate wide character functions.
2021-05-26 21:52:58 +02:00
Albrecht Schlosser
12c0509806 X11: fix fl_clip_box() coordinates > 16-bit (STR 3134)
Pre-clip coordinates to 16-bit range before using X11 clipping
functions because X11 supports only 16-bit int's.
2021-05-26 15:25:36 +02:00
Albrecht Schlosser
0f3619ba0e Reimplement Fl_Group::delete_child(int) for Fl_Scroll 2021-05-25 17:41:00 +02:00
Albrecht Schlosser
9abbff2078 Add virtual int Fl_Group::delete_child(int n) (STR 3218)
This is a convenience method that does range checking (index n),
removes the child given by index n from the group and deletes it.
2021-05-25 17:39:20 +02:00
Albrecht Schlosser
3e0c30213b Suppress Visual Studio warnings in nanosvg code
- disable warning C4244 (conversion / data loss)
- restore #pragma warning after nanosvg includes
2021-05-07 16:48:54 +02:00
Albrecht Schlosser
374232e2f4 Fix MSVC 2010 and older not finding round()
Actually we don't know about some newer MSVC versions, but current
version MSVC 2019 works fine w/o defining round(). If other MSVC
versions need this as well we can change the version test or add
a compiler feature test to CMake (configure not required).
2021-05-07 15:48:24 +02:00
Albrecht Schlosser
4190cd5426 Fix Windows (Visual Studio) compiler warnings 2021-05-06 13:38:04 +02:00
Albrecht Schlosser
cce652f58c Fix compiler warning on macOS
Compiling drivers/Posix/Fl_Posix_System_Driver.cxx...
drivers/Posix/Fl_Posix_System_Driver.cxx:176:14: warning: unused function 'quadruple_dlopen' [-Wunused-function]
2021-05-03 21:42:00 +02:00
ManoloFLTK
9df287b415 Cleaner access to Fl_Gl_Window_Driver objects. 2021-04-29 10:40:18 +02:00
Albrecht Schlosser
f9e8ef0b7a Fix "Fl_Shared_Image: use of unitialized data" (#216)
- fix issue as proposed
- fix more potential access to uninitialized data issues
- document Fl_Shared_Image::add_handler()
- document typedef Fl_Shared_Image::Fl_Shared_Handler()
2021-04-28 13:36:34 +02:00
ManoloFLTK
3bc9017970 Slightly simplify gl_texture_fifo::compute_texture()
The font size is set to the value necessary for the GL scene before
computing the string width.
Virtual Fl_Gl_Window_Driver::effective_size() becomes unnecessary.
2021-04-27 09:09:08 +02:00
Albrecht Schlosser
7a7f3c3324 Avoid "Bogus FL_MOVE/FL_DRAG events" (#76)
Fix sending bogus events if CONSOLIDATE_MOTION is on.
2021-04-26 14:15:55 +02:00
Albrecht Schlosser
72901a626c Fix potential buffer overrun (WIN32 only) 2021-04-16 18:08:15 +02:00
ManoloFLTK
cacaa17499 Minor simplification in Fl_Gl_Window_Driver::capture_gl_rectangle() 2021-04-16 09:31:02 +02:00
ManoloFLTK
78aa959ab9 Fix Fl_Cairo_Graphics_Driver::rect and Fl_Cairo_Graphics_Driver::rectf 2021-04-14 13:59:16 +02:00
Daniel G
5c0fe8f411 Update Fl_WinAPI_Window_Driver.H
Fix copy paste error.
2021-04-13 12:23:01 +02:00
Albrecht Schlosser
22cb8a7fdb Make Fl_Input::handle_key() protected (#203)
... as requested in this comment:
https://github.com/fltk/fltk/issues/211#issuecomment-814235771
2021-04-07 19:14:25 +02:00
Albrecht Schlosser
7f969b5496 Remove static variable, fix gcc warning [-Wclobbered] (#203)
PR #203 "Multithread fix for PNG loading" includes a suggested fix
that moves the variable fp to the Fl_PNG_Image structure.

This commit fixes the threading issue by allocating the variable fp
with new, avoiding the [-Wclobbered] warning w/o using a static var.

The same issue is now also fixed in Fl_JPEG_Image.
2021-04-07 10:55:13 +02:00