/[emacs]/emacs/src/xterm.c
ViewVC logotype

Diff of /emacs/src/xterm.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.695 by pj, Thu Dec 20 18:31:34 2001 UTC revision 1.696 by gerd, Fri Dec 28 13:33:37 2001 UTC
# Line 476  static void x_clip_to_row P_ ((struct wi Line 476  static void x_clip_to_row P_ ((struct wi
476                                 GC, int));                                 GC, int));
477  static int x_phys_cursor_in_rect_p P_ ((struct window *, XRectangle *));  static int x_phys_cursor_in_rect_p P_ ((struct window *, XRectangle *));
478  static void x_draw_row_fringe_bitmaps P_ ((struct window *, struct glyph_row *));  static void x_draw_row_fringe_bitmaps P_ ((struct window *, struct glyph_row *));
479  static void notice_overwritten_cursor P_ ((struct window *, int, int));  static void notice_overwritten_cursor P_ ((struct window *, enum glyph_row_area,
480                                               int, int, int, int));
481  static void x_flush P_ ((struct frame *f));  static void x_flush P_ ((struct frame *f));
482  static void x_update_begin P_ ((struct frame *));  static void x_update_begin P_ ((struct frame *));
483  static void x_update_window_begin P_ ((struct window *));  static void x_update_window_begin P_ ((struct window *));
# Line 5207  x_draw_glyphs (w, x, row, area, start, e Line 5208  x_draw_glyphs (w, x, row, area, start, e
5208            x1 -= left_area_width;            x1 -= left_area_width;
5209          }          }
5210    
5211        notice_overwritten_cursor (w, x0, x1);        notice_overwritten_cursor (w, area, x0, x1,
5212                                     row->y, MATRIX_ROW_BOTTOM_Y (row));
5213      }      }
5214    
5215    /* Value is the x-position up to which drawn, relative to AREA of W.    /* Value is the x-position up to which drawn, relative to AREA of W.
# Line 5429  x_clear_end_of_line (to_x) Line 5431  x_clear_end_of_line (to_x)
5431        
5432    /* Notice if the cursor will be cleared by this operation.  */    /* Notice if the cursor will be cleared by this operation.  */
5433    if (!updated_row->full_width_p)    if (!updated_row->full_width_p)
5434      notice_overwritten_cursor (w, output_cursor.x, -1);      notice_overwritten_cursor (w, updated_area,
5435                                   output_cursor.x, -1,
5436                                   updated_row->y,
5437                                   MATRIX_ROW_BOTTOM_Y (updated_row));
5438    
5439    from_x = output_cursor.x;    from_x = output_cursor.x;
5440            
# Line 7780  show_mouse_face (dpyinfo, draw) Line 7785  show_mouse_face (dpyinfo, draw)
7785                x_draw_glyphs (w, start_x, row, TEXT_AREA,                x_draw_glyphs (w, start_x, row, TEXT_AREA,
7786                               start_hpos, end_hpos, draw, 0);                               start_hpos, end_hpos, draw, 0);
7787    
7788                row->mouse_face_p = draw == DRAW_MOUSE_FACE || DRAW_IMAGE_RAISED;                row->mouse_face_p
7789                    = draw == DRAW_MOUSE_FACE || draw == DRAW_IMAGE_RAISED;
7790              }              }
7791          }          }
7792    
# Line 11098  XTread_socket (sd, bufp, numchars, expec Line 11104  XTread_socket (sd, bufp, numchars, expec
11104                               Text Cursor                               Text Cursor
11105   ***********************************************************************/   ***********************************************************************/
11106    
11107  /* Notice if the text cursor of window W has been overwritten by a  /* Notice when the text cursor of window W has been completely
11108     drawing operation that outputs N glyphs starting at START_X and     overwritten by a drawing operation that outputs glyphs in AREA
11109     ending at END_X in the line given by output_cursor.vpos.     starting at X0 and ending at X1 in the line starting at Y0 and
11110     Coordinates are area-relative.  END_X < 0 means all the rest     ending at Y1.  X coordinates are area-relative.  X1 < 0 means all
11111     of the line after START_X has been written.  */     the rest of the line after X0 has been written.  Y coordinates
11112       are window-relative.  */
11113    
11114  static void  static void
11115  notice_overwritten_cursor (w, start_x, end_x)  notice_overwritten_cursor (w, area, x0, x1, y0, y1)
11116       struct window *w;       struct window *w;
11117       int start_x, end_x;       enum glyph_row_area area;
11118         int x0, y0, x1, y1;
11119  {  {
11120    if (updated_area == TEXT_AREA    if (area == TEXT_AREA
11121        && w->phys_cursor_on_p        && w->phys_cursor_on_p
11122        && output_cursor.vpos == w->phys_cursor.vpos        && y0 <= w->phys_cursor.y
11123        && start_x <= w->phys_cursor.x        && y1 >= w->phys_cursor.y + w->phys_cursor_height
11124        && (end_x < 0 || end_x > w->phys_cursor.x))        && x0 <= w->phys_cursor.x
11125          && (x1 < 0 || x1 > w->phys_cursor.x))
11126      w->phys_cursor_on_p = 0;      w->phys_cursor_on_p = 0;
11127  }  }
11128    

Legend:
Removed from v.1.695  
changed lines
  Added in v.1.696

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26