summaryrefslogtreecommitdiff
path: root/src/haikufns.c
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2022-05-14 02:38:53 +0000
committerPo Lu <luangruo@yahoo.com>2022-05-14 02:39:18 +0000
commit96f60d1033dfba41fd995657a9afc73742daace6 (patch)
treeac19073598d423075424ddcff7234d945622fd7a /src/haikufns.c
parent334fa0c91d55c4397643a529ce33a12df39d2f7f (diff)
downloademacs-96f60d1033dfba41fd995657a9afc73742daace6.tar.gz
Fix display class of tooltip frames on Haiku
* haikufns.c (haiku_create_tip_frame): Set up frame display class. (syms_of_haikufns): New symbols `mono', `grayscale' and `color'.
Diffstat (limited to 'src/haikufns.c')
-rw-r--r--src/haikufns.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/haikufns.c b/src/haikufns.c
index b628518c26f..b4cdb93b96d 100644
--- a/src/haikufns.c
+++ b/src/haikufns.c
@@ -1119,6 +1119,23 @@ haiku_create_tip_frame (Lisp_Object parms)
/* FIXME - can this be done in a similar way to normal frames?
https://lists.gnu.org/r/emacs-devel/2007-10/msg00641.html */
+ {
+ Lisp_Object disptype;
+
+ if (be_get_display_planes () == 1)
+ disptype = Qmono;
+ else if (be_is_display_grayscale ())
+ disptype = Qgrayscale;
+ else
+ disptype = Qcolor;
+
+ if (NILP (Fframe_parameter (frame, Qdisplay_type)))
+ {
+ AUTO_FRAME_ARG (arg, Qdisplay_type, disptype);
+ Fmodify_frame_parameters (frame, arg);
+ }
+ }
+
/* Set up faces after all frame parameters are known. This call
also merges in face attributes specified for new frames.
@@ -3006,6 +3023,9 @@ syms_of_haikufns (void)
DEFSYM (Qstatic_color, "static-color");
DEFSYM (Qstatic_gray, "static-gray");
DEFSYM (Qtrue_color, "true-color");
+ DEFSYM (Qmono, "mono");
+ DEFSYM (Qgrayscale, "grayscale");
+ DEFSYM (Qcolor, "color");
defsubr (&Sx_hide_tip);
defsubr (&Sxw_display_color_p);