diff options
| author | Karoly Lorentey | 2004-03-01 14:27:16 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2004-03-01 14:27:16 +0000 |
| commit | 29cd19501134dfde15743f8c5fbdc8b012ed693e (patch) | |
| tree | eab1530a8589ab50de84bcd188b1f8d8dda518db /src | |
| parent | 057a9ab495a5fd334f9bd3c7704176502e5219c4 (diff) | |
| parent | 3f383e4ad7884aad8767d3a6c26c6f3bab5f8f93 (diff) | |
| download | emacs-29cd19501134dfde15743f8c5fbdc8b012ed693e.tar.gz emacs-29cd19501134dfde15743f8c5fbdc8b012ed693e.zip | |
Merged in changes from CVS HEAD
Patches applied:
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-121
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-122
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-123
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-124
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-125
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-108
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 19 | ||||
| -rw-r--r-- | src/xfns.c | 2 | ||||
| -rw-r--r-- | src/xterm.c | 68 |
3 files changed, 30 insertions, 59 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 8b5944a1866..c1a63aab953 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,22 @@ | |||
| 1 | 2004-02-28 Kim F. Storm <storm@cua.dk> | ||
| 2 | |||
| 3 | * dispnew.c (update_window): Update header line also if there are | ||
| 4 | no other changes in window (move code after set_cursor label). | ||
| 5 | |||
| 6 | * lisp.h (mark_window_display_accurate): Remove prototype. | ||
| 7 | |||
| 8 | * window.c (window_loop, Fforce_window_update): Force mode line | ||
| 9 | updates by setting prevent_redisplay_optimizations_p and | ||
| 10 | update_mode_lines. | ||
| 11 | |||
| 12 | 2004-02-28 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> | ||
| 13 | |||
| 14 | * xfns.c (x_window): Fixed indentation. | ||
| 15 | |||
| 16 | * xterm.c (x_calc_absolute_position): Call x_real_positions | ||
| 17 | to get WM window sizes and use those to calculate position. | ||
| 18 | (x_set_offset): Removed code commented out. | ||
| 19 | |||
| 1 | 2004-02-28 Miles Bader <miles@gnu.org> | 20 | 2004-02-28 Miles Bader <miles@gnu.org> |
| 2 | 21 | ||
| 3 | * keyboard.c (adjust_point_for_property): #ifdef-out dodgy xassert. | 22 | * keyboard.c (adjust_point_for_property): #ifdef-out dodgy xassert. |
diff --git a/src/xfns.c b/src/xfns.c index 5b3f8ffe552..9f21cc98502 100644 --- a/src/xfns.c +++ b/src/xfns.c | |||
| @@ -2838,7 +2838,7 @@ x_window (f) | |||
| 2838 | 2838 | ||
| 2839 | #ifdef HAVE_X_I18N | 2839 | #ifdef HAVE_X_I18N |
| 2840 | FRAME_XIC (f) = NULL; | 2840 | FRAME_XIC (f) = NULL; |
| 2841 | if (use_xim) | 2841 | if (use_xim) |
| 2842 | { | 2842 | { |
| 2843 | BLOCK_INPUT; | 2843 | BLOCK_INPUT; |
| 2844 | create_frame_xic (f); | 2844 | create_frame_xic (f); |
diff --git a/src/xterm.c b/src/xterm.c index 6100eaacffa..feefdf24e81 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -8151,65 +8151,24 @@ x_calc_absolute_position (f) | |||
| 8151 | Window child; | 8151 | Window child; |
| 8152 | int win_x = 0, win_y = 0; | 8152 | int win_x = 0, win_y = 0; |
| 8153 | int flags = f->size_hint_flags; | 8153 | int flags = f->size_hint_flags; |
| 8154 | int this_window; | ||
| 8155 | 8154 | ||
| 8156 | /* We have nothing to do if the current position | 8155 | /* We have nothing to do if the current position |
| 8157 | is already for the top-left corner. */ | 8156 | is already for the top-left corner. */ |
| 8158 | if (! ((flags & XNegative) || (flags & YNegative))) | 8157 | if (! ((flags & XNegative) || (flags & YNegative))) |
| 8159 | return; | 8158 | return; |
| 8160 | 8159 | ||
| 8161 | this_window = FRAME_OUTER_WINDOW (f); | 8160 | /* Find the offsets of the outside upper-left corner of |
| 8162 | |||
| 8163 | /* Find the position of the outside upper-left corner of | ||
| 8164 | the inner window, with respect to the outer window. | 8161 | the inner window, with respect to the outer window. |
| 8165 | But do this only if we will need the results. */ | 8162 | But do this only if we will need the results. */ |
| 8166 | if (f->output_data.x->parent_desc != FRAME_X_DISPLAY_INFO (f)->root_window) | 8163 | if (f->output_data.x->parent_desc != FRAME_X_DISPLAY_INFO (f)->root_window) |
| 8167 | { | 8164 | /* This is to get *_pixels_outer_diff. */ |
| 8168 | int count; | 8165 | x_real_positions (f, &win_x, &win_y); |
| 8169 | |||
| 8170 | BLOCK_INPUT; | ||
| 8171 | count = x_catch_errors (FRAME_X_DISPLAY (f)); | ||
| 8172 | while (1) | ||
| 8173 | { | ||
| 8174 | x_clear_errors (FRAME_X_DISPLAY (f)); | ||
| 8175 | XTranslateCoordinates (FRAME_X_DISPLAY (f), | ||
| 8176 | |||
| 8177 | /* From-window, to-window. */ | ||
| 8178 | this_window, | ||
| 8179 | f->output_data.x->parent_desc, | ||
| 8180 | |||
| 8181 | /* From-position, to-position. */ | ||
| 8182 | 0, 0, &win_x, &win_y, | ||
| 8183 | |||
| 8184 | /* Child of win. */ | ||
| 8185 | &child); | ||
| 8186 | if (x_had_errors_p (FRAME_X_DISPLAY (f))) | ||
| 8187 | { | ||
| 8188 | Window newroot, newparent = 0xdeadbeef; | ||
| 8189 | Window *newchildren; | ||
| 8190 | unsigned int nchildren; | ||
| 8191 | |||
| 8192 | if (! XQueryTree (FRAME_X_DISPLAY (f), this_window, &newroot, | ||
| 8193 | &newparent, &newchildren, &nchildren)) | ||
| 8194 | break; | ||
| 8195 | |||
| 8196 | XFree ((char *) newchildren); | ||
| 8197 | |||
| 8198 | f->output_data.x->parent_desc = newparent; | ||
| 8199 | } | ||
| 8200 | else | ||
| 8201 | break; | ||
| 8202 | } | ||
| 8203 | |||
| 8204 | x_uncatch_errors (FRAME_X_DISPLAY (f), count); | ||
| 8205 | UNBLOCK_INPUT; | ||
| 8206 | } | ||
| 8207 | 8166 | ||
| 8208 | /* Treat negative positions as relative to the leftmost bottommost | 8167 | /* Treat negative positions as relative to the leftmost bottommost |
| 8209 | position that fits on the screen. */ | 8168 | position that fits on the screen. */ |
| 8210 | if (flags & XNegative) | 8169 | if (flags & XNegative) |
| 8211 | f->left_pos = (FRAME_X_DISPLAY_INFO (f)->width | 8170 | f->left_pos = (FRAME_X_DISPLAY_INFO (f)->width |
| 8212 | - 2 * f->border_width - win_x | 8171 | - 2 * FRAME_X_OUTPUT (f)->x_pixels_outer_diff |
| 8213 | - FRAME_PIXEL_WIDTH (f) | 8172 | - FRAME_PIXEL_WIDTH (f) |
| 8214 | + f->left_pos); | 8173 | + f->left_pos); |
| 8215 | 8174 | ||
| @@ -8234,8 +8193,12 @@ x_calc_absolute_position (f) | |||
| 8234 | 8193 | ||
| 8235 | if (flags & YNegative) | 8194 | if (flags & YNegative) |
| 8236 | f->top_pos = (FRAME_X_DISPLAY_INFO (f)->height | 8195 | f->top_pos = (FRAME_X_DISPLAY_INFO (f)->height |
| 8237 | - 2 * f->border_width | 8196 | - FRAME_X_OUTPUT (f)->y_pixels_outer_diff |
| 8238 | - win_y | 8197 | |
| 8198 | /* Assume the window manager decorations are the same size on | ||
| 8199 | three sides, i.e. left, right and bottom. This is to | ||
| 8200 | compensate for the bottom part. */ | ||
| 8201 | - FRAME_X_OUTPUT (f)->x_pixels_outer_diff | ||
| 8239 | - height | 8202 | - height |
| 8240 | + f->top_pos); | 8203 | + f->top_pos); |
| 8241 | } | 8204 | } |
| @@ -8279,17 +8242,6 @@ x_set_offset (f, xoff, yoff, change_gravity) | |||
| 8279 | modified_left = f->left_pos; | 8242 | modified_left = f->left_pos; |
| 8280 | modified_top = f->top_pos; | 8243 | modified_top = f->top_pos; |
| 8281 | 8244 | ||
| 8282 | #if 0 /* Running on psilocin (Debian), and displaying on the NCD X-terminal, | ||
| 8283 | this seems to be unnecessary and incorrect. rms, 4/17/97. */ | ||
| 8284 | /* It is a mystery why we need to add the border_width here | ||
| 8285 | when the frame is already visible, but experiment says we do. */ | ||
| 8286 | if (change_gravity != 0) | ||
| 8287 | { | ||
| 8288 | modified_left += f->border_width; | ||
| 8289 | modified_top += f->border_width; | ||
| 8290 | } | ||
| 8291 | #endif | ||
| 8292 | |||
| 8293 | if (FRAME_X_DISPLAY_INFO (f)->wm_type == X_WMTYPE_A) | 8245 | if (FRAME_X_DISPLAY_INFO (f)->wm_type == X_WMTYPE_A) |
| 8294 | { | 8246 | { |
| 8295 | /* Some WMs (twm, wmaker at least) has an offset that is smaller | 8247 | /* Some WMs (twm, wmaker at least) has an offset that is smaller |