changeset 97605:d5535f9696b8

ns_draw_window_cursor: fix bug in setting cursor type in inactive windows. No special treatment for hollow cursor when FRAME_LAST_INACTIVE. Clear w->phys_cursor_on_p if cursor_type==NO_CURSOR.
author David Reitter <david.reitter@gmail.com>
date Thu, 21 Aug 2008 15:49:47 +0000
parents de1050b88068
children 7593f558bea1
files src/nsterm.m
diffstat 1 files changed, 7 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/nsterm.m	Thu Aug 21 14:51:25 2008 +0000
+++ b/src/nsterm.m	Thu Aug 21 15:49:47 2008 +0000
@@ -2287,13 +2287,14 @@
   NSTRACE (dumpcursor);
 
   if (!on_p) // check this?    && !w->phys_cursor_on_p)
-      return;
+	return;
 
   w->phys_cursor_type = cursor_type;
   w->phys_cursor_on_p = on_p;
 
   if (cursor_type == NO_CURSOR)
     {
+      w->phys_cursor_on_p = 0;
       w->phys_cursor_width = 0;
       return;
     }
@@ -2325,7 +2326,6 @@
 
   oldCursorType = FRAME_CURSOR (f);
   cursorType = FRAME_CURSOR (f) = FRAME_NEW_CURSOR (f);
-
   /* TODO: 23: use emacs stored cursor color instead of ns-specific */
   f->output_data.ns->current_cursor_color
     = f->output_data.ns->desired_cursor_color;
@@ -2335,14 +2335,16 @@
   ns_clip_to_row (w, glyph_row, -1, NO);
 /*  ns_focus (f, &r, 1); */
 
-  if (FRAME_LAST_INACTIVE (f))
+  /* Why would this be needed?
+     if (FRAME_LAST_INACTIVE (f))
     {
-      /* previously hollow box; clear entire area */
+      * previously hollow box; clear entire area *
       [FRAME_BACKGROUND_COLOR (f) set];
       NSRectFill (r);
       drawGlyph = 1;
       FRAME_LAST_INACTIVE (f) = NO;
     }
+  */
 
   /* prepare to draw */
   if (cursorType == no_highlight || cursor_type == NO_CURSOR)
@@ -2424,8 +2426,7 @@
       if (!active_p)
 	{
 	  /* inactive window: ignore what we just set and use a hollow box */
-	  cursorType = hollow_box;
-	  [FRAME_CURSOR_COLOR (f) set];
+	  cursorType = HOLLOW_BOX_CURSOR;
 	}
 
       NSDisableScreenUpdates ();