diff options
author | Po Lu <luangruo@yahoo.com> | 2022-04-30 02:34:18 +0000 |
---|---|---|
committer | Po Lu <luangruo@yahoo.com> | 2022-04-30 02:34:35 +0000 |
commit | a33bf0114920a67926761ec2f51c040265b8dfd1 (patch) | |
tree | eb0c706bf17fad11257ab523b01ff7fc833fe13b | |
parent | 08108a856a544a80d11b1e9e437fe6c45e25adec (diff) | |
download | emacs-a33bf0114920a67926761ec2f51c040265b8dfd1.tar.gz emacs-a33bf0114920a67926761ec2f51c040265b8dfd1.tar.bz2 emacs-a33bf0114920a67926761ec2f51c040265b8dfd1.zip |
Prevent cursors from being set on tooltip frames on Haiku
* src/haikuterm.c (haiku_show_hourglass, haiku_hide_hourglass)
(haiku_define_frame_cursor, haiku_toggle_invisible_pointer):
Ignore tooltip frames. Otherwise, the cursor changes every time
a tooltip is mapped.
-rw-r--r-- | src/haikuterm.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/haikuterm.c b/src/haikuterm.c index 393d359b66e..1dbe3598ffd 100644 --- a/src/haikuterm.c +++ b/src/haikuterm.c @@ -2005,7 +2005,8 @@ haiku_draw_window_cursor (struct window *w, static void haiku_show_hourglass (struct frame *f) { - if (FRAME_OUTPUT_DATA (f)->hourglass_p) + if (FRAME_TOOLTIP_P (f) + || FRAME_OUTPUT_DATA (f)->hourglass_p) return; block_input (); @@ -2020,7 +2021,8 @@ haiku_show_hourglass (struct frame *f) static void haiku_hide_hourglass (struct frame *f) { - if (!FRAME_OUTPUT_DATA (f)->hourglass_p) + if (FRAME_TOOLTIP_P (f) + || !FRAME_OUTPUT_DATA (f)->hourglass_p) return; block_input (); @@ -2659,8 +2661,9 @@ haiku_flush (struct frame *f) static void haiku_define_frame_cursor (struct frame *f, Emacs_Cursor cursor) { - if (f->tooltip) + if (FRAME_TOOLTIP_P (f)) return; + block_input (); if (!f->pointer_invisible && FRAME_HAIKU_VIEW (f) && !FRAME_OUTPUT_DATA (f)->hourglass_p) @@ -3852,12 +3855,12 @@ haiku_toggle_invisible_pointer (struct frame *f, bool invisible_p) { void *view = FRAME_HAIKU_VIEW (f); - if (view) + if (view && !FRAME_TOOLTIP_P (f)) { block_input (); - BView_set_view_cursor (view, invisible_p ? - FRAME_OUTPUT_DATA (f)->no_cursor : - FRAME_OUTPUT_DATA (f)->current_cursor); + BView_set_view_cursor (view, (invisible_p + ? FRAME_OUTPUT_DATA (f)->no_cursor + : FRAME_OUTPUT_DATA (f)->current_cursor)); f->pointer_invisible = invisible_p; unblock_input (); } |