aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKaroly Lorentey2004-03-01 14:27:16 +0000
committerKaroly Lorentey2004-03-01 14:27:16 +0000
commit29cd19501134dfde15743f8c5fbdc8b012ed693e (patch)
treeeab1530a8589ab50de84bcd188b1f8d8dda518db /src
parent057a9ab495a5fd334f9bd3c7704176502e5219c4 (diff)
parent3f383e4ad7884aad8767d3a6c26c6f3bab5f8f93 (diff)
downloademacs-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/ChangeLog19
-rw-r--r--src/xfns.c2
-rw-r--r--src/xterm.c68
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 @@
12004-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
122004-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
12004-02-28 Miles Bader <miles@gnu.org> 202004-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;
2841if (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