]> code.delx.au - gnu-emacs/blobdiff - src/dispnew.c
(Vnonascii_translation_table): Name changed from
[gnu-emacs] / src / dispnew.c
index 986a19834787857548c6fb998f3662556143f38c..609d0b5bf8d5db0ede353a23baced089e0d33f19 100644 (file)
@@ -1359,11 +1359,18 @@ update_frame (f, force, inhibit_hairy_id)
                }
              while (row > top && col == 0);
 
-             if (col >= FRAME_WINDOW_WIDTH (f))
+             /* Make sure COL is not out of range.  */
+             if (col >= FRAME_CURSOR_X_LIMIT (f))
                {
-                 col = 0;
+                 /* If we have another row, advance cursor into it.  */
                  if (row < FRAME_HEIGHT (f) - 1)
-                   row++;
+                   {
+                     col = FRAME_LEFT_SCROLL_BAR_WIDTH (f);
+                     row++;
+                   }
+                 /* Otherwise move it back in range.  */
+                 else
+                   col = FRAME_CURSOR_X_LIMIT (f) - 1;
                }
            }
 
@@ -1371,7 +1378,8 @@ update_frame (f, force, inhibit_hairy_id)
        }
       else
        cursor_to (FRAME_CURSOR_Y (f), 
-                  minmax (0, FRAME_CURSOR_X (f), FRAME_WINDOW_WIDTH (f) - 1));
+                  minmax (0, FRAME_CURSOR_X (f),
+                          FRAME_CURSOR_X_LIMIT (f) - 1));
     }
 
   update_end (f);
@@ -2239,8 +2247,8 @@ change_frame_size_1 (frame, newheight, newwidth, pretend, delay)
   FRAME_HEIGHT (frame) = newheight;
   SET_FRAME_WIDTH (frame, newwidth);
 
-  if (FRAME_CURSOR_X (frame) >= FRAME_WINDOW_WIDTH (frame))
-    FRAME_CURSOR_X (frame) = FRAME_WINDOW_WIDTH (frame) - 1;
+  if (FRAME_CURSOR_X (frame) >= FRAME_CURSOR_X_LIMIT (frame))
+    FRAME_CURSOR_X (frame) = FRAME_CURSOR_X_LIMIT (frame) - 1;
   if (FRAME_CURSOR_Y (frame) >= FRAME_HEIGHT (frame))
     FRAME_CURSOR_Y (frame) = FRAME_HEIGHT (frame) - 1;