1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-03 02:31:03 -08:00

Add background transparency support for GTK+Cairo

This commit is contained in:
Håkon Flatval 2022-01-29 16:13:06 +01:00 committed by Po Lu
parent 35cd9197fc
commit b944841173
11 changed files with 157 additions and 15 deletions

View file

@ -3907,6 +3907,7 @@ static const struct frame_parm_table frame_parms[] =
{"z-group", SYMBOL_INDEX (Qz_group)},
{"override-redirect", SYMBOL_INDEX (Qoverride_redirect)},
{"no-special-glyphs", SYMBOL_INDEX (Qno_special_glyphs)},
{"alpha-background", SYMBOL_INDEX (Qalpha_background)},
#ifdef NS_IMPL_COCOA
{"ns-appearance", SYMBOL_INDEX (Qns_appearance)},
{"ns-transparent-titlebar", SYMBOL_INDEX (Qns_transparent_titlebar)},
@ -5024,6 +5025,33 @@ gui_set_alpha (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
}
}
void
gui_set_alpha_background (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
{
double alpha = 1.0;
if (NILP (arg))
alpha = 1.0;
else if (FLOATP (arg))
{
alpha = XFLOAT_DATA (arg);
if (! (0 <= alpha && alpha <= 1.0))
args_out_of_range (make_float (0.0), make_float (1.0));
}
else if (FIXNUMP (arg))
{
EMACS_INT ialpha = XFIXNUM (arg);
if (! (0 <= ialpha && ialpha <= 100))
args_out_of_range (make_fixnum (0), make_fixnum (100));
alpha = ialpha / 100.0;
}
else
wrong_type_argument (Qnumberp, arg);
f->alpha_background = alpha;
SET_FRAME_GARBAGED (f);
}
/**
* gui_set_no_special_glyphs:
@ -6100,6 +6128,7 @@ syms_of_frame (void)
#endif
DEFSYM (Qalpha, "alpha");
DEFSYM (Qalpha_background, "alpha-background");
DEFSYM (Qauto_lower, "auto-lower");
DEFSYM (Qauto_raise, "auto-raise");
DEFSYM (Qborder_color, "border-color");