diff src/redisplay-output.c @ 263:727739f917cb r20-5b30

Import from CVS: tag r20-5b30
author cvs
date Mon, 13 Aug 2007 10:24:41 +0200
parents 41ff10fd062f
children 8efd647ea9ca
line wrap: on
line diff
--- a/src/redisplay-output.c	Mon Aug 13 10:23:52 2007 +0200
+++ b/src/redisplay-output.c	Mon Aug 13 10:24:41 2007 +0200
@@ -744,10 +744,21 @@
   struct display_line *dl;
   struct display_block *db;
   struct rune *rb;
-
   int x = w->last_point_x[CURRENT_DISP];
   int y = w->last_point_y[CURRENT_DISP];
 
+  extern int cursor_in_echo_area;
+
+  /*
+   * Bail if cursor_in_echo_area is non-zero and we're fiddling
+   * with the cursor in a minibuffer window, since that is a
+   * special case that is handled elsewhere and this function
+   * need not handle it.  Return 1 so the caller will assume we
+   * succeeded.
+   */
+  if (cursor_in_echo_area && MINI_WINDOW_P (w))
+    return 1;
+
   if (y < 0 || y >= Dynarr_length (cla))
     return 0;
 
@@ -958,7 +969,15 @@
 redisplay_redraw_cursor (struct frame *f, int run_end_begin_meths)
 {
   struct window *w = XWINDOW (FRAME_SELECTED_WINDOW (f));
-
+  extern int cursor_in_echo_area; 
+ 
+  if (cursor_in_echo_area)
+    if (FRAME_HAS_MINIBUF_P (f)) 
+      { 
+	w = XWINDOW (FRAME_MINIBUF_WINDOW (f)); 
+      }
+    else
+      return;
   redraw_cursor_in_window (w, run_end_begin_meths);
 }