emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/w32term.c


From: Jason Rumney
Subject: [Emacs-diffs] Changes to emacs/src/w32term.c
Date: Wed, 22 May 2002 15:37:18 -0400

Index: emacs/src/w32term.c
diff -c emacs/src/w32term.c:1.159 emacs/src/w32term.c:1.160
*** emacs/src/w32term.c:1.159   Wed May  8 17:30:57 2002
--- emacs/src/w32term.c Wed May 22 15:37:17 2002
***************
*** 9455,9464 ****
     --gerd.  */
  
  static void
! x_draw_bar_cursor (w, row, width)
       struct window *w;
       struct glyph_row *row;
       int width;
  {
    struct frame *f = XFRAME (w->frame);
    struct glyph *cursor_glyph;
--- 9455,9465 ----
     --gerd.  */
  
  static void
! x_draw_bar_cursor (w, row, width, kind)
       struct window *w;
       struct glyph_row *row;
       int width;
+      enum text_cursor_kinds kind;
  {
    struct frame *f = XFRAME (w->frame);
    struct glyph *cursor_glyph;
***************
*** 9488,9493 ****
--- 9489,9495 ----
  
        if (width < 0)
          width = f->output_data.w32->cursor_width;
+       width = min (cursor_glyph->pixel_width, width);
  
        /* If the glyph's background equals the color we normally draw
         the bar cursor in, the bar cursor in its normal color is
***************
*** 9500,9509 ****
        x = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x);
        hdc = get_frame_dc (f);
        w32_clip_to_row (w, row, hdc, 0);
!       w32_fill_area (f, hdc, cursor_color, x,
!                      WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y),
!                      min (cursor_glyph->pixel_width, width),
!                      row->height);
        release_frame_dc (f, hdc);
      }
  }
--- 9502,9521 ----
        x = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x);
        hdc = get_frame_dc (f);
        w32_clip_to_row (w, row, hdc, 0);
! 
!       if (kind == BAR_CURSOR)
!       {
!         w32_fill_area (f, hdc, cursor_color, x,
!                        WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y),
!                        width, row->height);
!       }
!       else
!       {
!         w32_fill_area (f, hdc, cursor_color, x,
!                        WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y +
!                                                 row->height - width),
!                        cursor_glyph->pixel_width, width);
!       }
        release_frame_dc (f, hdc);
      }
  }
***************
*** 9872,9878 ****
          break;
  
        case BAR_CURSOR:
!         x_draw_bar_cursor (w, glyph_row, new_cursor_width);
          break;
  
        case NO_CURSOR:
--- 9884,9894 ----
          break;
  
        case BAR_CURSOR:
!         x_draw_bar_cursor (w, glyph_row, new_cursor_width, BAR_CURSOR);
!         break;
! 
!       case HBAR_CURSOR:
!         x_draw_bar_cursor (w, glyph_row, new_cursor_width, HBAR_CURSOR);
          break;
  
        case NO_CURSOR:



reply via email to

[Prev in Thread] Current Thread [Next in Thread]