Commit Graph

477 Commits

Author SHA1 Message Date
Manolo Gouy
60567b12ef Rewrite Fl_X11_Window_Driver::resize_after_screen_change() to call Fl_Window_Driver::resize_after_scale_change()
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12362 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-28 07:46:33 +00:00
Manolo Gouy
bf033e7191 Remove temporary code used for development only.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12361 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-28 07:23:03 +00:00
Manolo Gouy
3f572e327f Rename Fl_Window_Driver::in_resize_after_scale_change to 'is_a_rescale' which is more expressive.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12358 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-27 14:38:35 +00:00
Manolo Gouy
4c999258f1 X11 platform, resize window when moved across screens: remove hide()/show() calls.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12355 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-26 07:45:59 +00:00
Manolo Gouy
5a8a2e1ee5 Remove virtual Fl_Window_Driver::reuse_icons() no longer useful after r.12349.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12351 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-25 15:28:43 +00:00
Manolo Gouy
9c47bc322c Remove Fl_Window_Driver::reuse_cursor() that is no longer used since commit r12349.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12350 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-25 11:31:19 +00:00
Manolo Gouy
e1972d2868 Remove Fl_Cocoa_Window_Driver::flush_double() because it is equal to Fl_Window_Driver::flush_double()
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12341 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-20 08:54:01 +00:00
Manolo Gouy
4764b9bc2e Fl_Window_Driver::flush_single() needs not be a virtual member function.
It is really an accessor to protected method Fl_Window::flush().
Rename it to Fl_Window_Driver::flush_Fl_Window to reflect that.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12340 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-20 08:10:45 +00:00
Manolo Gouy
e9741d01f0 X11 platform: Fix bug in test/overlay where overlay is clipped when using button shortcuts.
In branch 1.3, file src/Fl_Overlay_Window.cxx, function Fl_Overlay_Window::flush(),
part of line 49 was not reproduced in branch 1.4.
This fix reproduces in branch 1.4 the equivalent of the code in branch 1.3.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12320 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-16 17:42:28 +00:00
Manolo Gouy
9f69df923f Define Fl_WinAPI_Screen_Driver::DWM_scaling_factor() only without FLTK_HIDPI_SUPPORT.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12298 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-07 15:06:51 +00:00
Manolo Gouy
7847c2d87a WIN32 HiDPI support: fix copy and paste of image data when rescaling is applied.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12297 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-07 14:31:40 +00:00
Manolo Gouy
22d90078bd Fix Fl_WinAPI_Window_Driver::border_width_title_bar_height() when built without FLTK_HIDPI_SUPPORT
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12296 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-07 14:16:35 +00:00
Manolo Gouy
23e3535257 WIN32 HiDPI support: fix scaling support for Fl_Copy_Surface.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12295 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-07 09:33:17 +00:00
Manolo Gouy
90f2bba62b Fix Fl_GDI_Graphics_Driver::point_unscaled() so points are also enlarged when scaling increases.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12294 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-07 08:09:31 +00:00
Manolo Gouy
ab208735fa HiDPI support under WIN32: fix fullscreen when several monitors of distinct resolution.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12288 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-04 18:55:05 +00:00
Manolo Gouy
976959c98e Slight improvement of Fl_WinAPI_Window_Driver::border_width_title_bar_height()
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12287 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-04 17:15:23 +00:00
Manolo Gouy
8dccfc8838 HiDPI support under WIN32 platform: completed.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12285 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-03 17:31:57 +00:00
Manolo Gouy
7dc496e97d HiDPI support for WIN32 platform: begin to support screen-specific scale factor.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12280 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-29 09:44:35 +00:00
Albrecht Schlosser
14a6e9d103 Fix code formatting and typos.
Added some braces around the bodies of one-statement for loops for clarity.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12278 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-28 20:34:05 +00:00
Manolo Gouy
85724f00a0 Better implementation of Fl_WinAPI_Window_Driver::reuse_cursor() that will also work with custom cursors.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12277 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-28 17:07:09 +00:00
Manolo Gouy
582701ba07 HiDPI support: keep window's icons after rescaling
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12276 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-28 15:15:34 +00:00
Manolo Gouy
322b62a9f1 HiDPI support: keep window's cursor after rescaling.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12275 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-28 13:33:53 +00:00
Manolo Gouy
7f15c3010c WIN32 platform: more progress for full HiDPI support
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12273 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-27 12:17:29 +00:00
Manolo Gouy
7fbf318c53 Exact computation of scaled clipping region for X11 platform.
Each rectangular component of the clipping region is transformed exactly as by Fl_Xlib_Graphics_Driver::rectf_unscaled()

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12272 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-27 07:39:58 +00:00
Manolo Gouy
93a99431ed Move line_width_ protected member variable from Fl_Xlib_Graphics_Driver to Fl_Scalable_Graphics_Driver
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12269 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-21 16:08:32 +00:00
Manolo Gouy
fa3d8c6259 HiDPI support under WIN32: fix bugs with tile demo and with fullscreen demo.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12268 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-19 17:30:03 +00:00
Manolo Gouy
cd1fd95f05 HiDPI support under WIN32: fix fullscreen mode when scaling factor is > 1.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12267 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-19 11:48:16 +00:00
Manolo Gouy
4e72aac792 HiDPI support under WIN32 platform: fix Fl_WinAPI_Window_Driver::capture_titlebar_and_borders() under XP.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12266 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-19 11:37:01 +00:00
Manolo Gouy
701fa00c7c Advancing HiDPI support for the WIN32 platform - still incomplete.
It's still necessary to compile with -DFLTK_HIDPI_SUPPORT
to activate the new HiDPI support.
Default builds get the same HiDPI support as in FLTK 1.3

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12265 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-18 16:01:53 +00:00
Manolo Gouy
2cda5a4fa6 Make Fl_Screen_Driver::get_mouse(int&, int&) return the number of the mouse-containing screen.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12264 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-17 06:53:44 +00:00
Albrecht Schlosser
e14c387e8e Limit initial scaling factor to sensible values.
FLTK_SCALING_FACTOR=0 or negative values would issue unexpected
X11 warnings or crash immediately.

Also commented out scaling factor output statements (printf).


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12261 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-15 15:39:55 +00:00
Manolo Gouy
fe4f37519d Remove temporary code used for development of the scaling support.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12257 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-10 06:28:12 +00:00
Manolo Gouy
6b2c5fcd09 X11 platform: Accurate box graphics at wide range of scaling factor values.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12254 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-06 19:09:02 +00:00
Manolo Gouy
822f14c77a Fix problem introduced at r.12247
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12251 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-02 14:04:31 +00:00
Manolo Gouy
12fd93485f Remove the 'defined(WIN32)' and 'defined(__APPLE__)' preprocessor directives introduced at r.12239
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12247 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-01 17:41:42 +00:00
Manolo Gouy
0960d07315 Additional check in Fl_Xlib_Graphics_Driver::font_unscaled(Fl_Font, Fl_Fontsize) to recognize if current font is unchanged.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12246 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-01 15:23:26 +00:00
Manolo Gouy
90efebb97e Divide virtual Fl_Screen_Driver::open_display() in a platform-specific part followed by a platform-independent part.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12245 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-06-01 14:05:47 +00:00
Manolo Gouy
3a390bfb5f X11 + Pango platform: improve text drawing with angle.
Make sure that text length computed without angle is equal to text length drawn with angle.
This property is essential so that rotated text appears at controlled location at both ends.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12244 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-05-22 14:42:06 +00:00
Manolo Gouy
0489d79085 Fix warnings: 'Fl_Xlib_Graphics_Driver::scale' hides overloaded virtual function [-Woverloaded-virtual]
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12242 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-05-22 13:59:22 +00:00
Manolo Gouy
f48750b0f4 Introduce HiDPI + rescaling support for the X11 platform (+ partial support 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
2017-05-17 11:54:18 +00:00
Manolo Gouy
39b2976f88 De-duplicate code to load pointer to the TransparentBlt() system function at run-time.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12234 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-05-06 07:36:40 +00:00
Manolo Gouy
0794cc0ceb Fix erroneously cased include file names
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12233 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-05-05 16:27:59 +00:00
Manolo Gouy
18a84d073d Remove Fl_Translated_GDI_Graphics_Driver and have its functions performed by Fl_GDI_Graphics_Driver.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12227 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-04-25 17:05:17 +00:00
Manolo Gouy
2ddc89fb61 Add an argument to the private, virtual member function void Fl_Surface_Device::end_current_().
The X11 platform uses this argument to restore the correct clipping state after
drawing to an Fl_Image_Surface object.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12226 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-04-25 12:42:22 +00:00
Albrecht Schlosser
f15f477243 Remove unused variable from class Fl_Xlib_Image_Surface_Driver.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12225 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-04-24 21:19:20 +00:00
Manolo Gouy
05b9f2bc98 Undo change at r.12221 because it's done at r.12222 in a cross-platform fashion.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12223 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-04-24 10:43:24 +00:00
Albrecht Schlosser
da31ffd952 Fix Fl_Image_Surface::image() as discussed in fltk.general
See thread "fl_pop_clip: clip stack underflow! warning on X11"
started on Thu, 20 Apr 2017.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12221 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-04-23 10:43:48 +00:00
Manolo Gouy
ed807788ff Fix for STR#3374: Crash with pango enabled when changing default font
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12218 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-04-12 12:41:47 +00:00
Albrecht Schlosser
cd10796251 Fix Windows CreateDC/DeleteDC mismatch (STR #3373).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12217 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-04-11 21:53:50 +00:00
Manolo Gouy
1c0b4d9b60 Fixed typo in warning message.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12215 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-04-07 16:42:23 +00:00