mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-06 15:41:27 -08:00
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.
This commit is contained in:
parent
b2fdf78fd9
commit
61d6d43fe5
2 changed files with 28 additions and 23 deletions
23
src/xfns.c
23
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
|
||||
|
|
|
|||
28
src/xterm.c
28
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. */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue