dillo-browser / dillo

Dillo, a multi-platform graphical web browser
https://dillo-browser.github.io/
GNU General Public License v3.0
572 stars 30 forks source link

Prepare Dillo for FLTK 1.4 #246

Open rodarima opened 3 months ago

rodarima commented 3 months ago

We should prepare Dillo to be compatible with FLTK 1.4, as currently the configure prevents building with other than FLTK 1.3.

There may be some other changes to do with the transition.

rodarima commented 2 months ago

Related: https://github.com/dillo-browser/dillo/issues/258

rodarima commented 3 weeks ago

FLTK 1.4rc1 released: https://www.fltk.org/newsgroups.php?s22210+gfltk.coredev+v22223

One of the main changes with FLTK 1.4 is that they switched the units to "scale units", which are DPI independent. This will cause problems with images and text that is currently rendered to be shown at an specific size.

We probably will need to adjust the rendering of elements to take into the account the DPI, so they are properly rendered on the screen. Similarly, icons will need to have higher resolutions, so we can properly scale them on high DPI screens.

So far FLTK 1.4 causes gliches when scrolling, so it will remain not compatible until we can fix them:

fltk-1 4-glitches

xlex8 commented 2 weeks ago

FLTK 1.4.0rc2 has been released: https://www.fltk.org/articles.php?L1949

I don't see any scrolling glitches as you mentioned above, so hopefully thats fixed now.

rodarima commented 2 weeks ago

I don't see any scrolling glitches as you mentioned above, so hopefully thats fixed now.

These problems are likely in Dillo not FLTK. The FLTK new commits don't change any DPI code that I can see. They are still present for me on 1.4.0rc2.

What is your screen DPI? Are you on Xorg or Wayland? If on Xorg:

$ xdpyinfo | grep -B2 resolution

Also, how did you built dillo with FLTK 1.4? Can you attach the config.log and:

$ ldd src/dillo
xlex8 commented 2 weeks ago

It's Xorg @ 96dpi.

I set configure.ac to:

AC_PATH_PROG(FLTK_CONFIG,fltk-config) AC_MSG_CHECKING([FLTK 1.4]) fltk_version="$FLTK_CONFIG --version 2>/dev/null" case $fltk_version in 1.4.*) AC_MSG_RESULT(yes) LIBFLTK_CXXFLAGS=$FLTK_CONFIG --cxxflags LIBFLTK_CFLAGS=$FLTK_CONFIG --cflags LIBFLTK_LIBS=$FLTK_CONFIG --ldflags;;

Then removed the original FLTK package, built the new 1.4.0rc2 from source, and installed:

$ fltk-config --version 1.4.0

Then built dillo with the new version.

I sent you the config.log and the ldd output.

rodarima commented 2 weeks ago

It's Xorg @ 96dpi.

I don't think you will see it on 96dpi. You need a DPI value larger than 96 (but not a multiple), so it triggers the rounding problem. My screen is 101dpi which seems to be very problematic.

You may be able to fake a 101dpi and reproduce it with:

$ FLTK_SCALING_FACTOR=1.0539418854166667 src/dillo

I can also try with another 96dpi screen and see if it goes away on my end (probably).

xlex8 commented 2 weeks ago

Ok, I start to see some glitching when doing that, and when changing the dpi higher than 96 with xrandr.

juanitotc commented 4 days ago

For info - I just built dillo-3.1.0 against fltk-1.4.0rc3 wayland only and things seem to work