1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-18 10:16:51 +00:00

* xterm.c (XTread_socket): When we get MapNotify, UnmapNotify,

Expose, ExposeWindow, or UnmapWindow, set f->async_visible, not
	f->visible.
	(x_do_pending_expose, x_raise_frame, x_lower_frame,
	x_make_frame_invisible, x_make_frame_visible, x_iconify_frame):
	Test and set f->async_visible and f->async_iconified, not
	f->visible or f->async_iconified.
This commit is contained in:
Jim Blandy 1992-12-06 22:22:09 +00:00
parent d7a803df18
commit 3a88c23802

View File

@ -1097,7 +1097,7 @@ x_do_pending_expose ()
f = XFRAME (frame);
if (! FRAME_X_P (f))
continue;
if (!f->visible)
if (!f->async_visible)
continue;
if (!f->display.x->needs_exposure)
continue;
@ -1924,10 +1924,10 @@ XTread_socket (sd, bufp, numchars, waitp, expected)
f = x_window_to_frame (event.xexpose.window);
if (f)
{
if (f->visible == 0)
if (f->async_visible == 0)
{
f->visible = 1;
f->iconified = 0;
f->async_visible = 1;
f->async_iconified = 0;
SET_FRAME_GARBAGED (f);
}
else
@ -1958,14 +1958,14 @@ XTread_socket (sd, bufp, numchars, waitp, expected)
if (event.window == f->display.x->icon_desc)
{
refreshicon (f);
f->iconified = 1;
f->async_iconified = 1;
}
if (event.window == FRAME_X_WINDOW (f))
{
/* Say must check all windows' needs_exposure flags. */
expose_all_windows = 1;
f->display.x->needs_exposure = 1;
f->visible = 1;
f->async_visible = 1;
}
break;
@ -2010,7 +2010,7 @@ XTread_socket (sd, bufp, numchars, waitp, expected)
/* 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. */
f->visible = 0;
f->async_visible = 0;
x_mouse_x = x_mouse_y = -1;
}
}
@ -2020,8 +2020,8 @@ XTread_socket (sd, bufp, numchars, waitp, expected)
f = x_window_to_frame (event.xmap.window);
if (f)
{
f->visible = 1;
f->iconified = 0;
f->async_visible = 1;
f->async_iconified = 0;
/* wait_reading_process_input will notice this and update
the frame's display structures. */
@ -2037,9 +2037,9 @@ XTread_socket (sd, bufp, numchars, waitp, expected)
case UnmapWindow:
f = x_window_to_frame (event.window);
if (event.window == f->display.x->icon_desc)
f->iconified = 0;
f->async_iconified = 0;
if (event.window == FRAME_X_WINDOW (f))
f->visible = 0;
f->async_visible = 0;
break;
#endif /* ! defined (HAVE_X11) */
@ -3329,7 +3329,7 @@ x_unfocus_frame (f)
x_raise_frame (f)
struct frame *f;
{
if (f->visible)
if (f->async_visible)
{
BLOCK_INPUT;
XRaiseWindow (XDISPLAY FRAME_X_WINDOW (f));
@ -3343,7 +3343,7 @@ x_raise_frame (f)
x_lower_frame (f)
struct frame *f;
{
if (f->visible)
if (f->async_visible)
{
BLOCK_INPUT;
XLowerWindow (XDISPLAY FRAME_X_WINDOW (f));
@ -3376,8 +3376,8 @@ x_make_frame_visible (f)
XUnmapWindow (f->display.x->icon_desc);
/* Handled by the MapNotify event for X11 */
f->visible = 1;
f->iconified = 0;
f->async_visible = 1;
f->async_iconified = 0;
/* NOTE: this may cause problems for the first frame. */
XTcursor_to (0, 0);
@ -3396,7 +3396,7 @@ x_make_frame_invisible (f)
{
int mask;
if (! f->visible)
if (! f->async_visible)
return;
BLOCK_INPUT;
@ -3439,7 +3439,7 @@ x_make_frame_invisible (f)
#else /* ! defined (HAVE_X11) */
XUnmapWindow (FRAME_X_WINDOW (f));
f->visible = 0; /* Handled by the UnMap event for X11 */
f->async_visible = 0; /* Handled by the UnMap event for X11 */
if (f->display.x->icon_desc != 0)
XUnmapWindow (f->display.x->icon_desc);
@ -3460,7 +3460,7 @@ x_iconify_frame (f)
{
int mask;
if (f->iconified)
if (f->async_iconified)
return;
BLOCK_INPUT;
@ -3495,11 +3495,11 @@ x_iconify_frame (f)
IconicState. */
x_wm_set_window_state (f, IconicState);
f->iconified = 1;
f->async_iconified = 1;
#else /* ! defined (HAVE_X11) */
XUnmapWindow (XDISPLAY FRAME_X_WINDOW (f));
f->visible = 0; /* Handled in the UnMap event for X11. */
f->async_visible = 0; /* Handled in the UnMap event for X11. */
if (f->display.x->icon_desc != 0)
{
XMapWindow (XDISPLAY f->display.x->icon_desc);