summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/easy-mmode.el
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2021-10-28 21:46:01 +0800
committerLars Ingebrigtsen <larsi@gnus.org>2021-11-07 02:59:39 +0100
commit61d049aaff2ede48d3d4b357bc1cb06447f15229 (patch)
tree3fd188d55dcd396e135469b67fa85cf1966fd9f1 /lisp/emacs-lisp/easy-mmode.el
parentd69b5a9caaf7697eb70b9eb5e63fae8b94ccd798 (diff)
downloademacs-61d049aaff2ede48d3d4b357bc1cb06447f15229.tar.gz
emacs-61d049aaff2ede48d3d4b357bc1cb06447f15229.tar.bz2
emacs-61d049aaff2ede48d3d4b357bc1cb06447f15229.zip
Use an X window to display xwidgets on X11
Since Emacs draws using X11 primitives, Emacs drawing operations can erase the GtkDrawingArea used to draw the offscreen widget, which leads to unpleasant flickering effects, all of which can be prevented by creating a native X window and drawing to that instead. * src/xterm.c (x_window_to_frame): Return xwidget window if appropriate. (handle_one_xevent): Handle xwidget expose events. * src/xwidget.c (x_window_to_xvw_map): New variable. (xwidget_view_from_window): New function. (xwidget_show_view, xwidget_hide_view) (offscreen_damage_event): Move to drawing xwidgets with X windows. (xv_do_draw) (xwidget_expose): New function. (xwidget_osr_draw_cb, xwidget_osr_event_forward) (xwidget_osr_event_set_embedder): Removed. (xwidget_init_view): Replace use of GtkDrawingArea with that of an X window. (x_draw_xwidget_glyph_string): Prevent xwidget views from constantly generating expose events, and use an X window instead of a GtkDrawingArea. (syms_of_xwidget): Initialize x_window_to_xwv_map. src/xwidget.h (struct xwidget_view): Replace GTK widgets with X-related fields. (xwidget_view_from_window, xwidget_expose): New functions.
Diffstat (limited to 'lisp/emacs-lisp/easy-mmode.el')
0 files changed, 0 insertions, 0 deletions