summaryrefslogtreecommitdiff
path: root/src/drivers
AgeCommit message (Collapse)Author
2023-01-04Cairo/Pango: compute character widths fast and string widths accuratelyManoloFLTK
This commit has Fl_Cairo_Graphics_Driver compute string widths in 2 ways: 1) when the string contains several unicode characters, the width of the whole string is computed, accounting for kerning when it occurs; 2) when the string contains a single unicode character, its width is computed, memorised, and re-used next time it's necessary. The effect of this approach is - Fl_Text_Display is fast because it uses memorised single character widths repeatedly - Fl_Input is drawn accurately because the cursor position is determined by string widths, not by sums of character widths.
2023-01-02Fix missing include file for Visual StudioAlbrecht Schlosser
... if GDIPLUS is disabled. Thanks to Winfried Szukalski for reporting this.
2023-01-01FLUID refactor and macOS warnings removed (#623)Matthias Melcher
P renamed to g_project class Project renamed to class Fluid_Project fixes macOS type cast warnings
2023-01-01Add a missing FL_OVERRIDE flagAlbrecht Schlosser
2022-12-30Use `FL_OVERRIDE` for all overridden virtual methods (#611)Matthias Melcher
FL_OVERRIDE is defined as `override` for C++11 and higher FL_OVERRIDE is defined as `override` for VisualC 2015 and newer Don't interfere with Fl_Widget::override()
2022-12-30Fix misleading indentation (warning: [-Wmisleading-indentation])Albrecht Schlosser
2022-12-30Wayland+FreeBSD: fix "test/mandelbrot crashes on rightclick" (#618)ManoloFLTK
2022-12-28Fix for Two compiler warnings (#615) - cont'dManoloFLTK
The Page_Format and Page_Layout enums have been conceived for them to be combinable into a single int value.
2022-12-28 Fix compiler warnings on Windows with mingw-w64 CMAKE_CXX_STANDARD=20 (#615)ManoloFLTK
2022-12-28Wayland: remove un-needed #include directivesManoloFLTK
2022-12-28Wayland: remove un-necessary Fl_Wayland_Gl_Window_Driver::gl_event_queueManoloFLTK
2022-12-28Wayland: simplify function struct wl_display *fl_wl_display()ManoloFLTK
2022-12-27Wayland: Dropdown menu moves when navigated (#613) - cont'dManoloFLTK
Menu windows containing sub-menus are now processed differently.
2022-12-26Wayland: Fix for "Dropdown menu moves when navigated" (#613)ManoloFLTK
This commit uses Wayland popup positionning methods to handle common menu windows and prevents them from expanding below display bottom or above top. The previous algorithm remains in place for menu windows higher than the display height. Further changes for these big menus may come later.
2022-12-24Fix for "Fatal error while communicating with the Wayland server" (#610)ManoloFLTK
This commit should fix: once the mouse leaves the app window area and returns back to it (app loses focus and gets it again) the crash happens.
2022-12-19Complete Fl_Cairo_Graphics_Driver::restore_clip()ManoloFLTK
The driver's clip_ member was not updated to the new Cairo clip state which rendered function Fl_Cairo_Graphics_Driver::clip_box() inaccurate.
2022-12-17Remove further unused code after 12da87bManoloFLTK
2022-12-17Remove useless Fl_System_Driver members after 12da87bManoloFLTK
2022-12-10Text positioning different in 1.4.x vs 1.3.x (#568) - cont'dManoloFLTK
@wcout reports that we get better results if function pango_font_metrics_get_height() is not used until version 1.50.6 and above of libpango. The difference is specially visible with underscore characters in unscaled, standard DPI displays. This commit does that.
2022-12-10Defer opening the display as much as possible (#586)Matthias Melcher
2022-12-10Fixes some VC compiler warningsMatthias Melcher
2022-12-10Windows: fix memory leak caused by RegisterDragDrop (#569)Albrecht Schlosser
- call RevokeDragDrop() when the window is hidden - do not delete the *static* FLDropTarget object
2022-12-10Fixes OpenGL complex polygons when scaling (#576)Matthias Melcher
Also fixes gap()
2022-12-09Add new Wayland-specific fl_wl_compositor() functionManoloFLTK
2022-12-08Fix compilation warning, update dependenciesAlbrecht Schlosser
Warning: variable ā€˜j’ set but not used [-Wunused-but-set-variable]
2022-12-08 Simpler prototype of Fl_Wayland_Graphics_Driver::buffer_commit() member - ↵ManoloFLTK
cont'd
2022-12-08Simplify prototype of Fl_Wayland_Graphics_Driver::buffer_commit() memberManoloFLTK
2022-12-07Wayland: fix progressive drawing as in test/mandelbrotManoloFLTK
2022-12-06Fix issue #537 without damaging test/mandelbrotManoloFLTK
2022-12-05Fixing fl_complex_polygon() compilation for WIN32 (#571)Matthias Melcher
2022-12-05Implement fl_complex_polygon() for OpenGL (#570)Matthias Melcher
2022-12-04Wayland: remove regression in mandelbrot introduced by 1a5d657ManoloFLTK
The panel was drawn solid black when test/mandelbrot was unfocussed.
2022-12-04Fl_Cairo_Graphics_Driver: simpler way to construct font from name+sizeManoloFLTK
2022-12-03Fix dotted line drawing under Cairo graphics driverManoloFLTK
2022-12-02Fix text drawn by pango is offset +1 pixel on x and y) (#568)ManoloFLTK
2022-11-30Add a unit test for drawing complex shapes (#565)Matthias Melcher
2022-11-30Remove useless fl_matrix member variable of class Fl_Graphics_DriverManoloFLTK
2022-11-30Remove small files fl_XXX_gl_platform_init.cxxManoloFLTK
The single-function content of these files is moved to Fl_XXX_Gl_Window_Driver.cxx.
2022-11-29Fix for issue [Cairo]: Arrows have a "gap" (#561)ManoloFLTK
The problem to fix is that the arrow drawn by draw_arrow1() in src/fl_symbols.cxx displays a faint clear line between the stem and head of the arrow with the Cairo graphics driver. This occurs because draw_arrow1() draws the arrow in 2 steps (a rectangle + a triangle) and the Cairo driver is configured to use antialiasing when filling polygons. The antialiasing produces the faint line between stem and head. Why does draw_arrow1() draw a rectangle + a triangle rather than a 7-vertex polygon? That's because the X11 graphics driver fails with its polygon- drawing function when the polygon is also rotated: the polygon is drawn empty. We want to keep using antialiasing under Cairo for polygons because the result is better with non horizontal/vertical polygon edges. This implementation changes function draw_arrow1() which draws the arrow as a 7-vertex filled polygon except when the graphics driver returns false for its virtual member function can_fill_non_convex_polygon(). In that situation, draw_arrow1() draws, as before, a rectangle + a triangle. The new, virtual member function can_fill_non_convex_polygon() returns true except for the X11 graphics driver. Therefore, draw_arrow1() is effectively unchanged under the X11 driver.
2022-11-25Make Fl_XXX_Graphics_Driver::create_bitmask() a static member functionManoloFLTK
2022-11-25Fix GDI graphics driver use for bitmasksMatthias Melcher
2022-11-24Improve text drawing above GL3 scene under macOSManoloFLTK
2022-11-24Check boundary conditions in Cocoa scroll code (#554)Matthias Melcher
2022-11-24OpenGL3 under macOS: simpler implementation of support of child widgetsManoloFLTK
2022-11-23Configure-based build: control presence of GL-related packagesManoloFLTK
2022-11-23Improve Fl_Cocoa_Gl_Window_Driver::switch_to_GL1() to support multiple GL3 ↵ManoloFLTK
windows
2022-11-23Fix for issue #412 for the Wayland backendManoloFLTK
The problem was that after a drag-n-drop within a window, text selection by shift+arrow key stopped working. Also, improves drag-n-drop within a window by leaving insertion point at end of dragged text.
2022-11-22macOS: Fix release of extra NSView holding child widgets of GL windowManoloFLTK
2022-11-20Replace #if FLTK_USE_X11 by #ifdef FLTK_USE_X11ManoloFLTK
2022-11-17Remove development stage "Using Wayland backend" messageManoloFLTK