emacs-diffs
[Top][All Lists]
Advanced

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

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


From: Kim F. Storm
Subject: [Emacs-diffs] Changes to emacs/src/xterm.c
Date: Fri, 30 Aug 2002 08:05:04 -0400

Index: emacs/src/xterm.c
diff -c emacs/src/xterm.c:1.751 emacs/src/xterm.c:1.752
*** emacs/src/xterm.c:1.751     Tue Aug 27 14:42:48 2002
--- emacs/src/xterm.c   Fri Aug 30 08:05:04 2002
***************
*** 11594,11600 ****
        }
    
        if (width < 0)
!       width = f->output_data.x->cursor_width;
        width = min (cursor_glyph->pixel_width, width);
    
        w->phys_cursor_width = width;
--- 11594,11600 ----
        }
    
        if (width < 0)
!       width = FRAME_CURSOR_WIDTH (f);
        width = min (cursor_glyph->pixel_width, width);
    
        w->phys_cursor_width = width;
***************
*** 11810,11816 ****
    struct frame *f = XFRAME (w->frame);
    int new_cursor_type;
    int new_cursor_width;
-   int cursor_off_state = 0;
    struct glyph_matrix *current_glyphs;
    struct glyph_row *glyph_row;
    struct glyph *glyph;
--- 11810,11815 ----
***************
*** 11843,11917 ****
  
    xassert (interrupt_input_blocked);
  
!   /* Set new_cursor_type to the cursor we want to be displayed.  In a
!      mini-buffer window, we want the cursor only to appear if we are
!      reading input from this window.  For the selected window, we want
!      the cursor type given by the frame parameter.  If explicitly
!      marked off, draw no cursor.  In all other cases, we want a hollow
!      box cursor.  */
!   new_cursor_width = -1;
!   new_cursor_type = -2;
! 
!   /* Echo area */
!   if (cursor_in_echo_area
!       && FRAME_HAS_MINIBUF_P (f)
!       && EQ (FRAME_MINIBUF_WINDOW (f), echo_area_window))
!     {
!       if (w == XWINDOW (echo_area_window))
!       new_cursor_type = FRAME_DESIRED_CURSOR (f);
!       else if (NILP (Fbuffer_local_value (Qcursor_in_non_selected_windows,
!                                         w->buffer)))
!       new_cursor_type = NO_CURSOR;
!       else
!       cursor_off_state = 1;
!     }
! 
!   /* Nonselected window or nonselected frame.  */
!   else if (f != FRAME_X_DISPLAY_INFO (f)->x_highlight_frame
!          || w != XWINDOW (f->selected_window))
!     {
!       if ((MINI_WINDOW_P (w) && minibuf_level == 0)
!         || NILP (Fbuffer_local_value (Qcursor_in_non_selected_windows,
!                                       w->buffer))
!         || NILP (XBUFFER (w->buffer)->cursor_type))
!       new_cursor_type = NO_CURSOR;
!       else
!       cursor_off_state = 1;
!     }
! 
!   /* If new_cursor_type isn't decided yet, decide it now.  */
!   if (new_cursor_type == -2)
!     {
!       struct buffer *b = XBUFFER (w->buffer);
! 
!       if (EQ (b->cursor_type, Qt))
!       {
!         new_cursor_type = FRAME_DESIRED_CURSOR (f);
!         new_cursor_width = FRAME_CURSOR_WIDTH (f);
!       }
!       else
!       new_cursor_type = x_specified_cursor_type (b->cursor_type, 
!                                                  &new_cursor_width);
!     }
! 
!   /* If cursor has blinked off, use the other specified state.  */
!   if (w->cursor_off_p)
!     {
!       new_cursor_type = FRAME_BLINK_OFF_CURSOR (f);
!       new_cursor_width = FRAME_BLINK_OFF_CURSOR_WIDTH (f);
!     }
!   /* Dim out or hollow out the cursor for nonselected windows.  */
!   if (cursor_off_state)
!     {
!       if (new_cursor_type == FILLED_BOX_CURSOR)
!       new_cursor_type = HOLLOW_BOX_CURSOR;
!       else if (new_cursor_type == BAR_CURSOR && new_cursor_width > 1)
!       new_cursor_width = 1;
!       else
!       new_cursor_type = NO_CURSOR;
!     }
! 
!   /* Now new_cursor_type is correct.  */
  
    /* If cursor is currently being shown and we don't want it to be or
       it is in the wrong place, or the cursor type is not what we want,
--- 11842,11849 ----
  
    xassert (interrupt_input_blocked);
  
!   /* Set new_cursor_type to the cursor we want to be displayed.  */
!   new_cursor_type = get_window_cursor_type (w, &new_cursor_width);
  
    /* If cursor is currently being shown and we don't want it to be or
       it is in the wrong place, or the cursor type is not what we want,
***************
*** 11921,11927 ****
          || w->phys_cursor.x != x
          || w->phys_cursor.y != y
          || new_cursor_type != w->phys_cursor_type
!         || (new_cursor_type == BAR_CURSOR
              && new_cursor_width != w->phys_cursor_width)))
      x_erase_phys_cursor (w);
  
--- 11853,11859 ----
          || w->phys_cursor.x != x
          || w->phys_cursor.y != y
          || new_cursor_type != w->phys_cursor_type
!         || ((new_cursor_type == BAR_CURSOR || new_cursor_type == HBAR_CURSOR)
              && new_cursor_width != w->phys_cursor_width)))
      x_erase_phys_cursor (w);
  




reply via email to

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