diff options
| author | Richard M. Stallman | 1993-11-24 06:39:54 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1993-11-24 06:39:54 +0000 |
| commit | 1fb20991bfc22d30d96576473dc2178649e8a5c2 (patch) | |
| tree | 9095c133caa9f0f8bb05d87d1caecef894638b13 /src/xterm.c | |
| parent | 7928f0b5a24a7feaa0a7b7eafda6caaa30a38d71 (diff) | |
| download | emacs-1fb20991bfc22d30d96576473dc2178649e8a5c2.tar.gz emacs-1fb20991bfc22d30d96576473dc2178649e8a5c2.zip | |
(XTread_socket): Really handle Xatom_wm_window_moved events.
(XTread_socket): Generate delete_window_event's.
Diffstat (limited to 'src/xterm.c')
| -rw-r--r-- | src/xterm.c | 25 |
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) | |||
| 2692 | struct frame *f = x_window_to_frame (event.xclient.window); | 2692 | struct frame *f = x_window_to_frame (event.xclient.window); |
| 2693 | 2693 | ||
| 2694 | if (f) | 2694 | if (f) |
| 2695 | if (numchars > 0) | 2695 | { |
| 2696 | { | 2696 | if (numchars == 0) |
| 2697 | } | 2697 | abort (); |
| 2698 | |||
| 2699 | bufp->kind = delete_window_event; | ||
| 2700 | XSET (bufp->frame_or_window, Lisp_Frame, f); | ||
| 2701 | bufp++; | ||
| 2702 | |||
| 2703 | count += 1; | ||
| 2704 | numchars -= 1; | ||
| 2705 | } | ||
| 2698 | } | 2706 | } |
| 2699 | } | 2707 | } |
| 2700 | else if (event.xclient.message_type == Xatom_wm_configure_denied) | 2708 | else if (event.xclient.message_type == Xatom_wm_configure_denied) |
| @@ -2703,9 +2711,16 @@ XTread_socket (sd, bufp, numchars, waitp, expected) | |||
| 2703 | else if (event.xclient.message_type == Xatom_wm_window_moved) | 2711 | else if (event.xclient.message_type == Xatom_wm_window_moved) |
| 2704 | { | 2712 | { |
| 2705 | int new_x, new_y; | 2713 | int new_x, new_y; |
| 2706 | 2714 | struct frame *f = x_window_to_frame (event.xclient.window); | |
| 2715 | |||
| 2707 | new_x = event.xclient.data.s[0]; | 2716 | new_x = event.xclient.data.s[0]; |
| 2708 | new_y = event.xclient.data.s[1]; | 2717 | new_y = event.xclient.data.s[1]; |
| 2718 | |||
| 2719 | if (f) | ||
| 2720 | { | ||
| 2721 | f->display.x->left_pos = new_x; | ||
| 2722 | f->display.x->top_pos = new_y; | ||
| 2723 | } | ||
| 2709 | } | 2724 | } |
| 2710 | } | 2725 | } |
| 2711 | break; | 2726 | break; |
| @@ -4326,7 +4341,9 @@ x_set_mouse_position (f, x, y) | |||
| 4326 | x_focus_on_frame (f) | 4341 | x_focus_on_frame (f) |
| 4327 | struct frame *f; | 4342 | struct frame *f; |
| 4328 | { | 4343 | { |
| 4344 | #if 0 /* This proves to be unpleasant. */ | ||
| 4329 | x_raise_frame (f); | 4345 | x_raise_frame (f); |
| 4346 | #endif | ||
| 4330 | #if 0 | 4347 | #if 0 |
| 4331 | /* I don't think that the ICCCM allows programs to do things like this | 4348 | /* I don't think that the ICCCM allows programs to do things like this |
| 4332 | without the interaction of the window manager. Whatever you end up | 4349 | without the interaction of the window manager. Whatever you end up |