summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1993-11-24 06:39:54 +0000
committerRichard M. Stallman <rms@gnu.org>1993-11-24 06:39:54 +0000
commit1fb20991bfc22d30d96576473dc2178649e8a5c2 (patch)
tree9095c133caa9f0f8bb05d87d1caecef894638b13
parent7928f0b5a24a7feaa0a7b7eafda6caaa30a38d71 (diff)
downloademacs-1fb20991bfc22d30d96576473dc2178649e8a5c2.tar.gz
(XTread_socket): Really handle Xatom_wm_window_moved events.
(XTread_socket): Generate delete_window_event's.
-rw-r--r--src/xterm.c25
1 files changed, 21 insertions, 4 deletions
diff --git a/src/xterm.c b/src/xterm.c
index 1b398a0b032..5d8470296b3 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -2692,9 +2692,17 @@ XTread_socket (sd, bufp, numchars, waitp, expected)
struct frame *f = x_window_to_frame (event.xclient.window);
if (f)
- if (numchars > 0)
- {
- }
+ {
+ if (numchars == 0)
+ abort ();
+
+ bufp->kind = delete_window_event;
+ XSET (bufp->frame_or_window, Lisp_Frame, f);
+ bufp++;
+
+ count += 1;
+ numchars -= 1;
+ }
}
}
else if (event.xclient.message_type == Xatom_wm_configure_denied)
@@ -2703,9 +2711,16 @@ XTread_socket (sd, bufp, numchars, waitp, expected)
else if (event.xclient.message_type == Xatom_wm_window_moved)
{
int new_x, new_y;
-
+ struct frame *f = x_window_to_frame (event.xclient.window);
+
new_x = event.xclient.data.s[0];
new_y = event.xclient.data.s[1];
+
+ if (f)
+ {
+ f->display.x->left_pos = new_x;
+ f->display.x->top_pos = new_y;
+ }
}
}
break;
@@ -4326,7 +4341,9 @@ x_set_mouse_position (f, x, y)
x_focus_on_frame (f)
struct frame *f;
{
+#if 0 /* This proves to be unpleasant. */
x_raise_frame (f);
+#endif
#if 0
/* I don't think that the ICCCM allows programs to do things like this
without the interaction of the window manager. Whatever you end up