summaryrefslogtreecommitdiff
path: root/src/Fl_x.cxx
AgeCommit message (Collapse)Author
2021-12-05Fixes STR #3352: "tiny window problem if child group larger than window"Greg Ercolano
2021-11-26Fix for issue #253: Remove xdbe supportManoloFLTK
2021-11-19Refactor and improve "Print front window" dialogAlbrecht Schlosser
src/print_button.cxx: "Print front window" implementation (new file) This is compiled and activated if USE_PRINT_BUTTON is defined. The feature can be fine controlled by environment variable 'FLTK_PRINT_BUTTON' (see docs in source file).
2021-11-05Fix X11 build with FLTK_CONSOLIDATE_MOTION turned offAlbrecht Schlosser
2021-11-05Make "FLTK_CONSOLIDATE_MOTION" user-definable (issue #76)Albrecht Schlosser
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-04-26Avoid "Bogus FL_MOVE/FL_DRAG events" (#76)Albrecht Schlosser
Fix sending bogus events if CONSOLIDATE_MOTION is on.
2021-03-31Move probe_for_GTK() to class Fl_Posix_System_Driver from Fl_X11_System_Driver.ManoloFLTK
Similarly move dlopen_or_dlsym(). This move is because GTK is not X11-specific.
2021-02-11Fix X11 copy-paste and drag-and-drop target selection (#182)Albrecht Schlosser
Select the "best" target rather than a random one out of a list of suitable targets. The old target selection algorithm would sometimes select the wrong target and hence retrieve unexpected data. This could happen in both copy-paste and drag-and-drop operations. Note: backported to 1.3.6 (git current) as well (commit 7ce6d2cf5dfc0488ec30d9f9f1709be73353479c). Closes #182.
2020-11-25Fix for issue #123 - X11 platformManoloFLTK
As discussed, only the window position becomes rounded to nearest integer value when a fractional GUI scale factor is applied.
2020-11-22Fix for STR #3424 and for issue #160ManoloFLTK
2020-10-28Remove the "Print" window meant for debugging.ManoloFLTK
2020-10-28Pango ps (#148)ManoloFLTK
Use cairo-PostScript to output PostScript when pango is available. This allows to draw in vectorial form any script. Before, only the Latin script could be drawn to PostScript in vectorial form.
2020-10-04Create Fl_X11_System_Driver::dlopen_or_dlsym() for run-time addresses.ManoloFLTK
The intent is to gather in a single place of the X11 platform source code all variable elements when using dlopen() and dlsym() system functions (e.g., .so vs .dylib extension name, is RTLD_DEFAULT available, locations to be sought). Member function Fl_System_Driver::load() is created only to support Fl_Plugin_Manager::load().
2020-07-06Remove $Id$ tags, update URL's, and moreAlbrecht Schlosser
- 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-06-24Fix static code analyzer warningsAlbrecht Schlosser
Note: there's more to do ...
2020-05-08Replace Fl_Window_Driver::is_a_rescale() by Fl_Window::is_a_rescale()ManoloFLTK
so it can be called by any user code.
2020-02-10X11: Fix X Input Methods (XIM) (STR 3502, 3192)Albrecht Schlosser
Revert commit 958d912ffcdb using 'XSetLocaleModifiers("@im=");' which was incorrect (STR 3192). Apply fix for STR 3502, using 'XSetLocaleModifiers("");' which appears to be the correct solution for using X Input Methods (XIM). This has also been backported to FLTK 1.3.6 in branch-1.3, see commit 219ae5e455e7943ffb35fdd5edbe13dcc6955423.
2020-02-09Eliminate -Wunknown-pragmas and -Wsign-compare warnings on GCCdarealshinji
2020-02-03Don't "export" X11 specific fl_open_display() functionAlbrecht Schlosser
The X11 specific overloaded function fl_open_display(Display *) has never been documented but exposed (and "exported" in the ABI) in FL/platform.H which is not necessary. This internal function is now static and no longer exposed in the ABI. Don't confuse with fl_open_display() w/o arguments which is still exported and declared in FL/platform.H.
2020-01-31Fix disabling of deprecated warningsAlbrecht Schlosser
Fix cut'n'paste error: needs #pragma pop instead of push.
2020-01-31Disable X11 "deprecated declaration" warningAlbrecht Schlosser
... for GCC >= 4.6 and clang compilers. This annoying warning exists on X11 (Linux/Unix/macOS) platforms because we need to use XKeycodeToKeysym() although it is deprecated. See STR 2913 for discussion and details.
2019-10-30Concentrate source code that supports Darwin + XQuartz + fink as test platformManoloFLTK
2019-07-18X11: support copy/paste of image via clipboard within a single appManoloFLTK
X11 requires to process differently paste if both copy and paste are within the same app or are in 2 separate apps. This was implemented for paste of text. It's now also implemented for paste of image.
2019-03-25Replace static void Fl_Window_Driver::default_icons() by virtual ↵ManoloFLTK
Fl_Screen_Driver::default_icons()
2019-03-11X11 platform: keep GUI scaling after screen is reconfiguredManoloFLTK
2019-03-11X11 platform: follow when the OS changes the Xft.dpi resourceManoloFLTK
Under gnome, Tweaks -> Fonts ->Scaling factor allows to change the size of all fonts handled by gnome. With that change, FLTK apps obey to changes to Xft.dpi.
2019-03-06Improve static function react_to_screen_reconfiguration()ManoloFLTK
2019-03-06Process env var FLTK_SCALING_FACTOR consistently across platforms.ManoloFLTK
The procedure to set screen scaling factors becomes: 1) each screen scaling factor is set to 1 2) the OS is queried according to each platform to get screen scaling factor values 3) The value of FLTK_SCALING_FACTOR, if present, is used to multiply scaling factors
2019-02-23New member function const Fl_Image* Fl_Window::shape() replaces int ↵ManoloFLTK
Fl_Window::is_shaped() The new function allows to get the window's shaping image and delete it after use, if appropriate.
2019-02-09X11 platform: account for window scaling in drag-n-drop operations.ManoloFLTK
2018-09-07X11: simplify the use of member function Fl_X11_Screen_Driver::init_workarea().Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@13044 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-08-03Remove private member variable Fl_X11_Window_Driver::current_cursor_ that's ↵Manolo Gouy
no longer used. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@13003 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-06-26Move Fl_Window_Driver.H from FL/ to src/Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12974 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-06-08Fix for STR#3475: X11 platform, re-use current screen scaling factor when ↵Manolo Gouy
processing a screen reconfiguration event. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12939 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-05-12Remove public member function Fl_Window_Driver *Fl_Window::driver() so class ↵Manolo Gouy
Fl_Window_Driver is not in FLTK public API. This function is replaced by static Fl_Window_Driver* Fl_Window_Driver::(const Fl_Window *win). The purpose is to have class Fl_Window_Driver outside from FLTK ABI. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12915 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-05-09Rename Fl_Paged_Device::start_job() to begin_job() and ↵Manolo Gouy
Fl_Paged_Device::start_page() to begin_page(). The new function names begin_job() and begin_page() better match end_job() and end_page() with which they must be used by pair. The old names start_job() and start_page() are maintained for API compatibility with FLTK 1.3.x git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12910 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-01-31Replace FL/x.H with FL/platform.H - step 2 (STR #3435).Albrecht Schlosser
This second step replaces FL/x.H with FL/platform.H in all source files. Dependencies have been adjusted as well. This commit completes the replacement of FL/x.H with FL/platform.H. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12641 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-15Fix doxygen and other comments, coding style, and alignment.Albrecht Schlosser
Replace QT style doxygen markers "/*!" with Javadoc markers "/**". This commit does not change executable code. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12497 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-15Replace remaining calls to unlink() with fl_unlink().Albrecht Schlosser
Tested under Linux, MinGW, and Visual Studio 2015. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12496 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-30Improve rescaling when window moved across screens: make sure center stays ↵Manolo Gouy
on new screen. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12367 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-28Replace static protected bool Fl_Window_Driver::is_a_rescale by a private ↵Manolo Gouy
static variable and a public getter. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12364 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-27Rename Fl_Window_Driver::in_resize_after_scale_change to 'is_a_rescale' ↵Manolo Gouy
which is more expressive. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12358 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-25Remove Fl_Window_Driver::reuse_cursor() that is no longer used since commit ↵Manolo Gouy
r12349. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12350 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-25Rewrite Fl_Window_Driver::resize_after_scale_change() removing calls to ↵Manolo Gouy
Fl_Window::hide() and Fl_Window::show(). Windows are now rescaled with a call to Fl_Window::resize() which has been slightly modified. Static member variable bool Fl_Window_Driver::in_resize_after_scale_change is created, and is true if and only if Fl_Window::resize() is called by Fl_Window_Driver::resize_after_scale_change(). This new flag allows Fl_Window::resize() to perform correctly the rescaling of the window. Fl_Gl_Window::resize() and Fl_Double_Window::resize() also consult the value of the Fl_Window_Driver::in_resize_after_scale_change flag. The platform-specific Fl_WinAPI_Window_Driver::resize() and Fl_X11_Window_Driver::resize() also use the Fl_Window_Driver::in_resize_after_scale_change flag. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12349 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-03HiDPI support under WIN32 platform: completed.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12285 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-28HiDPI support: keep window's cursor after rescaling.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12275 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-17Make Fl_Screen_Driver::get_mouse(int&, int&) return the number of the ↵Manolo Gouy
mouse-containing screen. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12264 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-10Scaling for X11 platform: avoid undrawn right and bottom window margins when ↵Manolo Gouy
manually resizing windows git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12255 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-01Divide virtual Fl_Screen_Driver::open_display() in a platform-specific part ↵Manolo Gouy
followed by a platform-independent part. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12245 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-05-17Introduce HiDPI + rescaling support for the X11 platform (+ partial support ↵Manolo Gouy
for WIN32) Corresponds to STR #3320 1) HiDPI support consists in detecting the adequate scaling factor for the screen on which FLTK maps a window, and scaling all FLTK units by this factor. FLTK tries to detect the correct value of this factor at startup (see more details below). Environment variable FLTK_SCALING_FACTOR can also be used to set this value. 2) Rescaling support consists in changing the scaling factor of all FLTK windows in reply to ctrl/+/-/0/ keystrokes. More details for the various platforms : - X11: Support is very advanced. Some details need still to be improved. Automatic detection of the correct starting value of the scaling factor works well with the gnome desktop. The present code contains no support for this on other desktops. FLTK_SCALING_FACTOR provides a workaround. -WIN32: Support is incomplete at this point, although many test applications have partial or complete HiDPI and scaling support. The current value of the system's scaling factor is correctly detected at application startup. Apps respond to changes of this value in real time. Support needs to define the FLTK_HIDPI_SUPPORT preprocessor variable at compile time. This way, standard builds produce a code with the default WIN32 HiDPI support, that is, where all graphics goes to an internal buffer that gets enlarged by the system and then mapped to the HiDPI display. To experiment with (or develop) the new HiDPI support requires a modified build procedure in which FLTK_HIDPI_SUPPORT is defined at compile time. When the support will be complete, the requirement for the definition of this preprocessor variable will be removed. The present commit contains support for a single scaling factor. Eventually, per-screen scaling factors should be implemented, as done for X11. - MacOS: this commit does not give new HiDPI for this platform. Eventually, window rescaling in reply to command/+/-/0/ is desirable. Per-screen scaling factor makes no sense on this platform because the OS itself takes care of the difference between the resolutions of traditional and retina displays. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12239 ea41ed52-d2ee-0310-a9c1-e6b18d33e121