]> git.eshelyaron.com Git - emacs.git/commit
Enable scrolling optimization for xwidgets
authorPo Lu <luangruo@yahoo.com>
Fri, 29 Oct 2021 03:33:06 +0000 (11:33 +0800)
committerLars Ingebrigtsen <larsi@gnus.org>
Sun, 7 Nov 2021 01:59:39 +0000 (02:59 +0100)
commit5c387ad437872c6e95599710ba5dcdfaa470c5ea
treedb21cc292335e934f1eb93509828426fee40d0fa
parent61d049aaff2ede48d3d4b357bc1cb06447f15229
Enable scrolling optimization for xwidgets

* src/dispextern.h (struct glyph): Store xwidget ID instead of a
reference.
* src/dispnew.c (scrolling_window): Enable scrolling optimization on
xwidget builds.
* src/xdisp.c (fill_xwidget_glyph_string, produce_xwidget_glyph):
Obtain xwidget from ID.
* src/xterm.c (x_scroll_run): Scroll xwidget windows.
* src/xwidget.c (id_to_xwidget_map, xwidget_counter): New xwidget
variables.
(Fmake_xwidget): Assign each xwidget a unique ID, and keep track of
that ID.
(xwidget_from_id): New function.
(syms_of_xwidget): Initialize id_to_xwidget_map.
(xwidget_end_redisplay): Lookup xwidgets via ID.
* src/xwidget.h (struct xwidget): Add ID field.
(xwidget_from_id): New function.
src/dispextern.h
src/dispnew.c
src/xdisp.c
src/xterm.c
src/xwidget.c
src/xwidget.h