f->output_data.w32->parent_desc = FRAME_W32_DISPLAY_INFO (f)->root_window;
window_prompting = x_figure_window_size (f, parms);
+ /* No fringes on tip frame. */
+ f->output_data.w32->fringes_extra = 0;
+
if (window_prompting & XNegative)
{
if (window_prompting & YNegative)
}
-#ifdef TEST_TOOLTIPS /* Tooltip support in progress. */
DEFUN ("x-show-tip", Fx_show_tip, Sx_show_tip, 1, 6, 0,
doc: /* Show STRING in a \"tooltip\" window on frame FRAME.
A tooltip window is a small window displaying a string.
parms = Fcons (Fcons (Qbackground_color, build_string ("lightyellow")),
parms);
+ /* Block input until the tip has been fully drawn, to avoid crashes
+ when drawing tips in menus. */
+ BLOCK_INPUT;
+
/* Create a frame for the tooltip, and record it in the global
variable tip_frame. */
frame = x_create_tip_frame (FRAME_W32_DISPLAY_INFO (f), parms, string);
show it. */
compute_tip_xy (f, parms, dx, dy, width, height, &root_x, &root_y);
- BLOCK_INPUT;
{
/* Adjust Window size to take border into account. */
RECT rect;
ShowWindow (FRAME_W32_WINDOW (f), SW_SHOWNOACTIVATE);
}
- UNBLOCK_INPUT;
/* Draw into the window. */
w->must_be_updated_p = 1;
update_single_window (w, 1);
+ UNBLOCK_INPUT;
+
/* Restore original current buffer. */
set_buffer_internal_1 (old_buffer);
windows_or_buffers_changed = old_windows_or_buffers_changed;
UNGCPRO;
return unbind_to (count, deleted);
}
-#endif
\f
return value;
}
\f
+/***********************************************************************
+ Initialization
+ ***********************************************************************/
+
+void
syms_of_w32fns ()
{
/* This is zero if not using MS-Windows. */
hourglass_atimer = NULL;
hourglass_shown_p = 0;
-#if TEST_TOOLTIPS /* Tooltip support in progress. */
defsubr (&Sx_show_tip);
defsubr (&Sx_hide_tip);
-#endif
tip_timer = Qnil;
staticpro (&tip_timer);
tip_frame = Qnil;