[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 61d6d43fe5: Clean up X Windows tooltip code
From: |
Po Lu |
Subject: |
master 61d6d43fe5: Clean up X Windows tooltip code |
Date: |
Sat, 30 Apr 2022 21:16:56 -0400 (EDT) |
branch: master
commit 61d6d43fe59cb9e6cedb7973e2b6922bccdcd4e2
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>
Clean up X Windows tooltip code
* src/xfns.c (x_hide_tip): Remove "bloodcurdling hack".
* src/xterm.c (handle_one_xevent): Add a better version here
instead. The code is unlikely to be hit as well, since tooltip
frames are typically deleted, not just hidden.
---
src/xfns.c | 23 -----------------------
src/xterm.c | 28 ++++++++++++++++++++++++++++
2 files changed, 28 insertions(+), 23 deletions(-)
diff --git a/src/xfns.c b/src/xfns.c
index 06a0d4728c..27bca5523c 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -8243,29 +8243,6 @@ x_hide_tip (bool delete)
else
x_make_frame_invisible (XFRAME (tip_frame));
-#ifdef USE_LUCID
- /* Bloodcurdling hack alert: The Lucid menu bar widget's
- redisplay procedure is not called when a tip frame over
- menu items is unmapped. Redisplay the menu manually... */
- {
- Widget w;
- struct frame *f = SELECTED_FRAME ();
-
- if (FRAME_X_P (f) && FRAME_LIVE_P (f))
- {
- w = f->output_data.x->menubar_widget;
-
- if (!DoesSaveUnders (FRAME_DISPLAY_INFO (f)->screen)
- && w != NULL)
- {
- block_input ();
- xlwmenu_redisplay (w);
- unblock_input ();
- }
- }
- }
-#endif /* USE_LUCID */
-
was_open = Qt;
}
else
diff --git a/src/xterm.c b/src/xterm.c
index ea86b7f803..4baaaf9ee8 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -14797,6 +14797,34 @@ handle_one_xevent (struct x_display_info *dpyinfo,
{
bool visible = FRAME_VISIBLE_P (f);
+#ifdef USE_LUCID
+ /* Bloodcurdling hack alert: The Lucid menu bar widget's
+ redisplay procedure is not called when a tip frame over
+ menu items is unmapped. Redisplay the menu manually... */
+ if (FRAME_TOOLTIP_P (f) && popup_activated ())
+ {
+ Widget w;
+ Lisp_Object tail, frame;
+ struct frame *f1;
+
+ FOR_EACH_FRAME (tail, frame)
+ {
+ if (!FRAME_X_P (XFRAME (frame)))
+ continue;
+
+ f1 = XFRAME (frame);
+
+ if (FRAME_LIVE_P (f1))
+ {
+ w = FRAME_X_OUTPUT (f1)->menubar_widget;
+
+ if (w && !DoesSaveUnders (FRAME_DISPLAY_INFO
(f1)->screen))
+ xlwmenu_redisplay (w);
+ }
+ }
+ }
+#endif /* USE_LUCID */
+
/* While a frame is unmapped, display generation is
disabled; you don't want to spend time updating a
display that won't ever be seen. */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 61d6d43fe5: Clean up X Windows tooltip code,
Po Lu <=