]> git.eshelyaron.com Git - emacs.git/commit
Keep track of scale factor by atimer and recreate cairo_surface_t
authorYuuki Harano <masm+github@masm11.me>
Sat, 4 Dec 2021 06:54:37 +0000 (15:54 +0900)
committerYuuki Harano <masm+github@masm11.me>
Sat, 4 Dec 2021 06:54:37 +0000 (15:54 +0900)
commit729311c22b230faab9f8714ca2b6cb8f73ac0737
treea9fbddba89c584e5d962aee38096258c3f2c4729
parentf638541785f0641f3010fa9c4393a4c32710d47e
Keep track of scale factor by atimer and recreate cairo_surface_t

Otherwise texts become blurry when a frame moved from 1x monitor
to 2x monitor.  I need GTK's such signal, but there isn't. Instead
I watch frame's monitor's scale factor periodically.  We can see
blurriness for a short time, but it is gone soon.

* src/pgtkfns.c (update_watched_scale_factor): New function to check
scale factor and recreate cairo_surface_t if changed.
* src/pgtkfns.c (Fx_create_frame): Initialize atimer.
(Fx_show_tip): Add an argument.
* src/pgtkterm.c (FRAME_CR_SURFACE_DESIRED_WIDTH): Move macros to pgtkterm.h
(x_free_frame_resources): Free atimer.
(size_allocate): Add an argument.
(pgtk_cr_update_surface_desired_size): Add an argument. Recreate if it
is true.
* src/pgtkterm.h (struct pgtk_output): New members.
(FRAME_CR_SURFACE_DESIRED_HEIGHT): Move macros from pgtkterm.c
src/pgtkfns.c
src/pgtkterm.c
src/pgtkterm.h