summaryrefslogtreecommitdiff
path: root/src/drivers/X11/Fl_X11_Window_Driver.cxx
AgeCommit message (Collapse)Author
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-07-28Rewrite Fl_X11_Window_Driver::resize_after_screen_change() to call ↵Manolo Gouy
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-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-26X11 platform, resize window when moved across screens: remove hide()/show() ↵Manolo Gouy
calls. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12355 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-25Remove virtual Fl_Window_Driver::reuse_icons() no longer useful after r.12349.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12351 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-07-20Fl_Window_Driver::flush_single() needs not be a virtual member function.Manolo Gouy
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-16X11 platform: Fix bug in test/overlay where overlay is clipped when using ↵Manolo Gouy
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-06-28HiDPI support: keep window's icons after rescalingManolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12276 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
2017-02-22Avoid potential crash occurring after calling win->show(0,0)Manolo Gouy
See [fltk.general] Drawing to Fl_Offscreen received signal SIGSEGV, Segmentation fault. that is unrelated to Fl_Offscreen but caused by calling win->show(0,0). git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12179 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-12-07Add static void Fl_Surface_Device::push_current(Fl_Surface_Device ↵Manolo Gouy
*new_current) and pop_current() to set/unset the current drawing surface. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12140 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-08-23Change return type of Fl_Screen_Driver::read_win_rectangle() to Fl_RGB_Image*Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11884 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-19Complete the implementations of virtual Fl_X* Fl_Window_Driver::makeWindow() ↵Manolo Gouy
with the X11 platform. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11661 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-18Move other_xid member variable from class Fl_X to class F_Window_Driver.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11654 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-18Move wait_for_expose member variable from class Fl_X to class Fl_Window_Driver.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11653 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-18Replace static void Fl_X::activate_window(Window) under X11 platform by void ↵Manolo Gouy
Fl_X11_Window_Driver::activate_window() git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11651 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-18Replace Fl_X::sendxjunk() under USE_X11 by Fl_X11_Window_Driver::sendxjunk().Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11650 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-18Move Fl_X::backbuffer_bad under USE_X11 to class Fl_X11_Wi,dow_Driver.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11648 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-17Fixes for Linux for recent commits.Matthias Melcher
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11645 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-16 Continue removing non window-related member-functions from class Fl_X.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11633 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-16Continue removing non window-related member-functions from class Fl_X.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11630 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-13Remove redundant if condition, fix indenting.Albrecht Schlosser
Note: if (i && i->x); should have been: if (i && i->xid); [1] but this is redundant because we always have an xid when an Fl_X exists, at least in X11 (see Fl_X::set_xid(..) in src/Fl_x.cxx). This might change in the future. [1] Clang warning: address of function 'i->x' will always evaluate to 'true'. A similar warning was issued when using gcc 4.9.3 under Cygwin/X11. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11598 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-03Rewrite fl_scroll_area.cxx under the driver model.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11520 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-03Stop using fl_read_image() to read window decoration. Manolo Gouy
Use instead an API internal to each platform code base. fl_read_image() is used only for its documented feature of reading inside the current window or an offscreen buffer. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11518 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-30Rewrite functions XRectangleRegion(), XDestroyRegion() under the driver model.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11479 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-27Rewrite Fl_Menu_Window class under the driver model.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11441 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-27Rewrite Fl_Overlay_Window class under the driver model.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11440 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-26Isolate the definition of the 3 public, OS-dependent types (Fl_Offscreen, ↵Manolo Gouy
Fl_Region, Fl_Bitmask). git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11432 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-24Provide Fl_Window_Driver accessor methods for public Fl_Window attributes.Albrecht Schlosser
These methods are intended to be used instead of pWindow->method() for better code readability and easier porting of methods from Fl_Window to Fl_Window_Driver. New methods: x(), y(), y(), h(), shown(), parent(), border(), visible(), and visible_r(). We should add more such methods if appropriate. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11414 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-23Rewrite Fl_Window::show(int argc, char **argv) under the driver model.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11413 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-23Rewrite Fl_Window::hotspot(int X, int Y, int offscreen) under the driver model.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11412 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-23Rewrite Fl_Window::iconize() under the driver model.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11411 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-23Rewrite Fl_Window::size_range_() under the driver model.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11410 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-23Rewrite Fl_Window::border(int) under the driver model.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11409 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-23Fix Linux build: one include file and missing #include <config.h>.Albrecht Schlosser
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11405 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-23Rewrite Fl_Window::handle(int) under the driver model.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11403 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-23Rewrite Fl_Window::hide() under the driver model.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11402 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-22Rewrite Fl_Window::show() and Fl_Menu_Window::show() under the driver model.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11400 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-22Move all icon-support data to the platform-specific Fl_XXX_Window_Driver classManolo Gouy
because these data are platform-specific. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11399 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-22Make sure can_xdbe() from Fl_X11_Window_Driver.cxx is called after ↵Manolo Gouy
fl_open_display(). This ensures fluid does not open the display when run with -c git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11398 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-21Implement Fl_Window::make_current() under the driver model.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11393 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-21Improve the implementation of Fl_X11_Window_Driver::flush_double() and ↵Manolo Gouy
flush_overlay(). The with/without Xdbe codes are well separated, and code repetition is avoided by the introduction of Fl_X??_Window_Driver::flush_double(int). git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11392 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-20Fix Fl_Xdbe_Window_Driver::destroy_double_buffer() for an Fl_Overlay_Window.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11391 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-20Continue implementation of class Fl_Window_Driver according to Albrecht's plan.Manolo Gouy
This removes a bunch of friend class Fl_XXX_Window_Driver; declarations from Fl_Window.H, and therefore allows to add a new window driver without modifying the platform-independent code. The Fl_PicoXXX_Window_Driver classes have been modified but not tested ==> test needed. File Fl_X11_Window_Driver.cxx contained this: // DO NOT call this if the window is not mapped! static int can_xdbe() { ... } The new code does call can_xdbe() before any window is mapped, and does work. Since can_xdbe() asks the X server whether it supports the Xdbe extension, I don't see why this should not work without a mapped window. This point should be clarified by the author of "DO NOT call this if the window is not mapped!". git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11388 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-19Advancing Albrecht's plan for the Fl_Window_Driver class.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11387 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-18Fix potential crash in take_focus() (Linux).Albrecht Schlosser
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11365 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-18Beginning of Albrecht's plan for Fl_Window and Fl_Window_Driver classes.Manolo Gouy
Still unclear whether the implementation of the flush() functions follows the plan. The Fl_Printer class is fully rewritten under the driver model. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11364 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-13Fixed 'flush()' code for single, double, and overlay bufferingMatthias Melcher
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11359 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-12Moved the Fl_Window::decorated_*() functions teh Window_DriverMatthias Melcher
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11356 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-11Rewrite Fl_Window::wait_for_expose() using the window driver approach.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11346 ea41ed52-d2ee-0310-a9c1-e6b18d33e121