--- src/nsterm.m.orig 2009-03-11 13:17:10.000000000 -0600 +++ src/nsterm.m 2009-03-12 17:18:26.000000000 -0600 @@ -2351,7 +2351,7 @@ int fx, fy, h; struct frame *f = WINDOW_XFRAME (w); struct glyph *phys_cursor_glyph; - int overspill, cursorToDraw; + int overspill; NSTRACE (dumpcursor); //fprintf(stderr, "drawcursor (%d,%d) activep = %d\tonp = %d\tc_type = %d\twidth = %d\n",x,y, active_p,on_p,cursor_type,cursor_width); @@ -2407,8 +2407,7 @@ NSDisableScreenUpdates (); #endif - cursorToDraw = active_p ? cursor_type : HOLLOW_BOX_CURSOR; - switch (cursorToDraw) + switch (cursor_type) { case NO_CURSOR: break; @@ -2425,7 +2424,7 @@ s = r; s.origin.y += lrint (0.75 * s.size.height); s.size.width = min (FRAME_COLUMN_WIDTH (f), s.size.width); - s.size.height = lrint (s.size.height * 0.25); + s.size.height = min (cursor_width, 2); //FIXME(see above) NSRectFill (s); break; case BAR_CURSOR: @@ -2437,7 +2436,7 @@ ns_unfocus (f); /* draw the character under the cursor */ - if (cursorToDraw != NO_CURSOR) + if (cursor_type != NO_CURSOR) draw_phys_cursor_glyph (w, glyph_row, DRAW_CURSOR); #ifdef NS_IMPL_COCOA