Commit Graph

763 Commits

Author SHA1 Message Date
ManoloFLTK
5bab46940c Re-organize cross-platform support for text input methods.
FLTK 1.3 supports complex text input methods (TIMs) for the 3 platforms
(X11, Windows, macOS). This support has an interface with FLTK that is
common for X11 and Windows, via (undocumented) functions fl_set_spot(),
fl_set_status() and fl_reset_spot().
In contrast, and because it's been developed independently, the
interface between the macOS TIM and FLTK 1.3 is completely different :
static functions FL::insertion_point_location() and Fl::reset_marked_text().

The present change implements a single TIM/FLTK interface
used by all platforms based on functions fl_set_spot() and
fl_reset_spot().

The previous macOS-specific functions FL::insertion_point_location() and
Fl::reset_marked_text() are maintained only for compatibility with 1.3
and deprecated.
2022-01-07 16:34:54 +01:00
ManoloFLTK
27c175dad8 Add virtual void Fl_Graphics_Driver::set_status() and implement for X11 platform. 2022-01-07 07:50:36 +01:00
ManoloFLTK
eeb3e92eb2 Fix fullscreen window level corner cases on macOS - cont'd
See long discussion in PR#277 at
https://github.com/fltk/fltk/pull/277
2021-12-29 17:18:47 +01:00
Albrecht Schlosser
5438954d8c Generate FL/fl_config.h rather than FL/abi-version.h
... as discussed in fltk.coredev in thread "RFC: introduce public
config header <FL/fl_config.h>", see:
https://groups.google.com/g/fltkcoredev/c/xLCs1AIXMVo/m/MHZpQggzAQAJ

- Rename abi-version.h to fl_config.h, rename input files,
  update dependencies, .gitignore, CMake, configure and Makefiles.

- Include Cairo options in FL/fl_config.h

- Rename FLTK_USE_CAIRO to FLTK_HAVE_CAIROEXT for consistency.

- Include <FL/fl_config.h> in config.h and wherever necessary,
  fix include order (move FL/Fl.H to the top) and more.

- Move USE_X11 to fl_config.h and rename to FLTK_USE_X11

- Do not include <config.h> in Cairo demo program which is no
  longer required in Cairo programs since FLTK 1.4.0
2021-12-18 22:44:08 +01:00
ManoloFLTK
93a55f64c3 macOS platform: fix for issue #325 Disabling IM disables Greek and Cyrillic layouts
Thanks to Pierre Ossman who gave the fix.
2021-12-17 16:00:57 +01:00
ManoloFLTK
939d536b66 Fix for fltk.coredev "reentrant calls with Fl_Window::resize" - cont'd 2021-12-07 10:54:41 +01:00
ManoloFLTK
8bf62c67cf macOS platform: compute the screen number where a top window is mapped. 2021-12-06 10:18:29 +01:00
Greg Ercolano
74dd5164d3 Fixes STR #3352: "tiny window problem if child group larger than window" 2021-12-05 12:26:25 -08:00
ManoloFLTK
7e484c614c Fix for [fltk.coredev] reentrant calls with Fl_Window::resize 2021-11-24 10:35:18 +01:00
ManoloFLTK
76a3ded549 Fix for issue #279 about detecting early retina with GL windows. 2021-11-05 15:21:56 +01:00
Albrecht Schlosser
0ad192a27b Make "FLTK_CONSOLIDATE_MOTION" user-definable (issue #76)
This undocumented macro is used on X11 and macOS platforms to
consolidate mouse move events, i.e. to collect some events and send
them later as one event. The old macro name CONSOLIDATE_MOTION has been
renamed to FLTK_CONSOLIDATE_MOTION since it is now a "global" symbol.

Users can define FLTK_CONSOLIDATE_MOTION in their build system, e.g.
on the compiler commandline, as 0 or 1 to disable or enable this
feature, respectively.

In FLTK 1.3 the default was 0 (OFF) on macOS and 1 (ON) on X11.
In FLTK 1.4 the default is always 0 (OFF).
2021-11-05 12:46:21 +01:00
Albrecht Schlosser
14f842708d Fix indenting, whitespace errors and dependencies
(no code changes)
2021-10-27 20:52:08 +02:00
ManoloFLTK
d2c41924a6 macOS: "Fix fullscreen window level corner cases"
This corresponds to changes of PR#277 (Author: Samuel Mannehed)
2021-10-06 11:11:59 +02:00
ManoloFLTK
0f12e96d13 macOS platform: facilitate use when another toolkit handles the system menu. 2021-09-24 17:56:35 +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
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
ManoloFLTK
d93fc2bfa6 Use <config.h> when appropriate. 2021-02-16 11:08:59 +01:00
ManoloFLTK
4291e9497b Fix for issue #123 - macOS platform 2020-11-27 17:49:49 +01:00
ManoloFLTK
3ec51f0b80 Remove unnecessary function call when macOS ≥ 10.6 2020-11-19 15:59:48 +01:00
ManoloFLTK
0f6fb2ab5a Add comment about detection of macOS "Big Sur" 11.0 at run-time. 2020-11-19 15:59:48 +01:00
Albrecht Schlosser
5cb72ef065 Fix whitespace and minor formatting issues 2020-11-17 16:11:03 +01:00
ManoloFLTK
0d8385a652 Simpler macOS implementation of capture of window titlebars. 2020-10-12 21:05:38 +02:00
ManoloFLTK
5830226aab Change procedure to capture window titlebar for macOS ≥ 10.15
That is necessary to support macOS Big Sur because previous procedure
did not work for tabbed windows. The new procedure is potentially
usable from macOS 10.5, but tested at this stage for macOS ≥ 10.15.
2020-10-11 10:43:01 +02:00
ManoloFLTK
de4a5765bc Fix for issue #145 and for unbundled macOS apps. 2020-10-05 18:20:25 +02:00
ManoloFLTK
5c5132f681 Fix when building with SDK 10.15 and running with 11.0 Big Sur
When FLTK runs under macOS "Big Sur", the OS appears as 11.0
if FLTK was built with SDK 11.0 and as 10.16 it it was built with
SDK 10.15.
2020-09-19 21:59:25 +02:00
ManoloFLTK
148e1df908 Further minor change to support macOS 11.0 "Big Sur". 2020-09-07 08:36:13 +02:00
ManoloFLTK
b8b2805270 Make recent changes to support macOS 11.0 "Big Sur" active with 11.0 only.
An optimisation used for drawing to windows is not possible under 11.0.
This commits reinstalls it under macOS 10.14 and 10.15.
2020-08-17 17:21:53 +02:00
ManoloFLTK
8f32a29a8b Slightly simpler code in the drawRect:(NSRect) method 2020-08-11 15:18:56 +02:00
ManoloFLTK
e5b5189870 Add support of macOS 11.0 "Big Sur". 2020-08-10 07:31:50 +02:00
Greg Ercolano
2141c63628 Implement + deploy fl_strdup() 2020-08-01 14:19:40 -07:00
ManoloFLTK
b40e218c01 Fix for "Crashing regression in MacOS code" in fltk.coredev. 2020-07-27 17:04:27 +02:00
ManoloFLTK
5839817c51 Fix problem when calling Fl_Window::fullscreen_off() in certain circumstances.
The problem was discovered in fltk.coredev "Crashing regression in MacOS code"
2020-07-24 18:41:53 +02:00
ManoloFLTK
3bb3429670 Restore use of virtual Fl_Window::resize() to be notified when window moves.
A previous commit c66caf5dce
"Simpler implementation of Fl_Cocoa_Window_Driver::resize()"
made that Fl_Window::resize() was no longer called by FLTK when a
window is moved. This prevented the undocumented practice of
re-implementing the virtual function Fl_Window::resize() and use it
as a way to get a notification that a window was moved.
2020-07-17 15:08:33 +02:00
ManoloFLTK
e5fbfcbec1 Simpler code to support layer-based views that occur when macOS ≥ 10.14 2020-07-11 15:40:53 +02:00
Albrecht Schlosser
f09e17c3c5 Remove $Id$ tags, update URL's, and more
- remove obsolete svn '$Id$' tags from all source files
- update .fl files and generated files accordingly
- replace 'http://www.fltk.org' URL's with 'https://...'
- replace bug report URL 'str.php' with 'bugs.php'
- remove trailing whitespace
- fix other whitespace errors flagged by Git
- add and/or fix missing or wrong standard headers
- convert tabs to spaces in all source files

The only relevant code changes are in the fluid/ folder where
some .fl files and other source files were used to generate
the '$Id' headers and footers.
2020-07-06 20:28:20 +02:00
ManoloFLTK
46b89686df Allow using an Fl_SVG_Image object as window icon.
Fix for issue #90: Setting an svg image as a window icon causes a segfault.
2020-06-15 19:05:47 +02:00
ManoloFLTK
e43dee9d8a Fix for "Fullscreen_off removing the icon from the titlebar on MacOS" in fltk.coredev 2020-06-10 17:22:59 +02:00
ManoloFLTK
f9a63b5ed5 Fix for PR#86: mousewheel simultaneous X and Y scrolling under OS X .
Thanks to the OP for most of the fix.
2020-06-02 19:44:57 +02:00
ManoloFLTK
61d9035e99 Avoid repeated calls to CGBitmapContextGetBytesPerRow(). 2020-06-01 11:04:46 +02:00
ManoloFLTK
897b903f16 Have NSAutoreleasePool released after last use of variable e 2020-05-31 21:19:26 +02:00
ManoloFLTK
9957063398 Protect NSHomeDirectory() call by an NSAutoreleasePool.
That may be necessary if preferences are accessed before fl_open_display() was called.
2020-05-31 11:47:34 +02:00
ManoloFLTK
026d560fb4 Reorganise code that captures on-screen window content.
Also introduce new rect_to_NSBitmapImageRep: method of class FLWindow
which makes it possible to reimplement it.
2020-05-20 07:51:33 +02:00
ManoloFLTK
7f7e0e4ea1 Replace Fl_Window_Driver::is_a_rescale() by Fl_Window::is_a_rescale()
so it can be called by any user code.
2020-05-08 17:08:33 +02:00
ManoloFLTK
b3d46711be Slightly improve drawing of window titlebars. 2020-04-21 09:45:43 +02:00
Albrecht Schlosser
8a7d4c9f61 Remove CodeWarrior "support"
Metrowerks CodeWarrior was an ancient macOS compiler (discontinued
since 2005) that defined the macro __MWERKS__. Code using this macro
and several comments have been removed.
2020-03-11 14:38:02 +01:00
ManoloFLTK
87c994e2f8 Fl_Sys_Menu_Bar: make it strict equivalent of Fl_Menu_Bar outside macOS 2020-02-28 16:47:44 +01:00
ManoloFLTK
707b81b626 Restore macOS capacity to turn window fullscreen encompassing several screens. 2020-02-09 11:17:49 +01:00
ManoloFLTK
83bd04e0a3 Fix Fl_Cocoa_Window_Driver::resize when called before the window is show()'n. 2020-02-07 17:11:22 +01:00