]> git.eshelyaron.com Git - emacs.git/commit
Implement `alpha-background' on non-Cairo builds
authorPo Lu <luangruo@yahoo.com>
Mon, 31 Jan 2022 02:15:47 +0000 (10:15 +0800)
committerPo Lu <luangruo@yahoo.com>
Mon, 31 Jan 2022 02:15:47 +0000 (10:15 +0800)
commit1555453694d9c2861c447b2f030b125f60e48297
treecedd9f133ad03b211c4bec5b37c9b2c3324b1c63
parent58bb9eb4005599155a8fce8d5c5beb531a72c534
Implement `alpha-background' on non-Cairo builds

* src/frame.c (gui_set_alpha_background): Recompute basic faces
so xft face ext info gets reset.
* src/gtkutil.c (xg_create_frame_widgets): Attach to style
updated signal.
(xg_update_frame_menubar): Set menu bar visual correctly.
(xg_widget_style_updated): New function.

* src/xfns.c (x_set_alpha_background): New function.
(x_frame_parm_handlers): Use x_set_alpha_background instead.

* src/xfont.c (xfont_draw):
* src/xftfont.c (xftfont_draw): Handle `alpha-background'
parameter.

* src/xterm.c (x_xr_ensure_picture): Export function.
(x_update_opaque_region): New function.
(x_fill_rectangle): New parameter `respect_alpha_background'.
All callers changed.
(handle_one_xevent): Set opaque region on ConfigureNotify.
(x_drop_xrender_surfaces): Set opaque region.
(x_xrender_color_from_gc_foreground):
(x_xrender_color_from_gc_background): Premultiply alpha with
components if asked for.
* src/xterm.h (struct x_display_info): New atom
`Xatom_net_wm_opaque_region'.
src/frame.c
src/gtkutil.c
src/xfns.c
src/xfont.c
src/xftfont.c
src/xterm.c
src/xterm.h