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: Fri, 04 Jan 2002 19:06:57 -0500

Index: emacs/src/w32term.c
diff -c emacs/src/w32term.c:1.131 emacs/src/w32term.c:1.132
*** emacs/src/w32term.c:1.131   Thu Dec 20 13:27:48 2001
--- emacs/src/w32term.c Fri Jan  4 19:06:57 2002
***************
*** 407,419 ****
  static void x_erase_phys_cursor P_ ((struct window *));
  void x_display_cursor P_ ((struct window *w, int, int, int, int, int));
  void x_display_and_set_cursor P_ ((struct window *, int, int, int, int, int));
! static void w32_draw_fringe_bitmap P_ ((struct window *, HDC hdc, struct 
glyph_row *, 
                                        enum fringe_bitmap_type, int left_p));
  static void w32_clip_to_row P_ ((struct window *, struct glyph_row *,
                                   HDC, int));
  static int x_phys_cursor_in_rect_p P_ ((struct window *, RECT *));
! static void x_draw_row_fringe_bitmaps P_ ((struct window *, struct glyph_row 
*));
! static void notice_overwritten_cursor P_ ((struct window *, int, int));
  
  static Lisp_Object Qvendor_specific_keysyms;
  
--- 407,423 ----
  static void x_erase_phys_cursor P_ ((struct window *));
  void x_display_cursor P_ ((struct window *w, int, int, int, int, int));
  void x_display_and_set_cursor P_ ((struct window *, int, int, int, int, int));
! static void w32_draw_fringe_bitmap P_ ((struct window *, HDC hdc,
!                                       struct glyph_row *, 
                                        enum fringe_bitmap_type, int left_p));
  static void w32_clip_to_row P_ ((struct window *, struct glyph_row *,
                                   HDC, int));
  static int x_phys_cursor_in_rect_p P_ ((struct window *, RECT *));
! static void x_draw_row_fringe_bitmaps P_ ((struct window *,
!                                          struct glyph_row *));
! static void notice_overwritten_cursor P_ ((struct window *,
!                                          enum glyph_row_area,
!                                          int, int, int, int));
  
  static Lisp_Object Qvendor_specific_keysyms;
  
***************
*** 3646,3651 ****
--- 3650,3656 ----
    if (s->face->use_box_color_for_shadows_p)
      color = s->face->box_color;
    else if (s->first_glyph->type == IMAGE_GLYPH
+          && s->img->pixmap
           && !IMAGE_BACKGROUND_TRANSPARENT (s->img, s->f, 0))
      color = IMAGE_BACKGROUND  (s->img, s->f, 0);
    else
***************
*** 3952,3958 ****
    if (s->hl == DRAW_IMAGE_SUNKEN
        || s->hl == DRAW_IMAGE_RAISED)
      {
!       thick = tool_bar_button_relief >= 0 ? tool_bar_button_relief : 3;
        raised_p = s->hl == DRAW_IMAGE_RAISED;
      }
    else
--- 3957,3963 ----
    if (s->hl == DRAW_IMAGE_SUNKEN
        || s->hl == DRAW_IMAGE_RAISED)
      {
!       thick = tool_bar_button_relief >= 0 ? tool_bar_button_relief : 
DEFAULT_TOOL_BAR_BUTTON_RELIEF;
        raised_p = s->hl == DRAW_IMAGE_RAISED;
      }
    else
***************
*** 5050,5056 ****
          x1 -= left_area_width;
        }
  
!       notice_overwritten_cursor (w, x0, x1);
      }
  
    /* Value is the x-position up to which drawn, relative to AREA of W.
--- 5055,5062 ----
          x1 -= left_area_width;
        }
  
!       notice_overwritten_cursor (w, area, x0, x1,
!                                row->y, MATRIX_ROW_BOTTOM_Y (row));
      }
  
    /* Value is the x-position up to which drawn, relative to AREA of W.
***************
*** 5270,5279 ****
    
    /* Notice if the cursor will be cleared by this operation.  */
    if (!updated_row->full_width_p)
!     notice_overwritten_cursor (w, output_cursor.x, -1);
  
    from_x = output_cursor.x;
!      
    /* Translate to frame coordinates.  */
    if (updated_row->full_width_p)
      {
--- 5276,5288 ----
    
    /* Notice if the cursor will be cleared by this operation.  */
    if (!updated_row->full_width_p)
!     notice_overwritten_cursor (w, updated_area,
!                              output_cursor.x, -1,
!                              updated_row->y,
!                              MATRIX_ROW_BOTTOM_Y (updated_row));
  
    from_x = output_cursor.x;
! 
    /* Translate to frame coordinates.  */
    if (updated_row->full_width_p)
      {
***************
*** 7403,7409 ****
              x_draw_glyphs (w, start_x, row, TEXT_AREA, 
                             start_hpos, end_hpos, draw, 0);
  
!             row->mouse_face_p = draw == DRAW_MOUSE_FACE || DRAW_IMAGE_RAISED;
            }
        }
  
--- 7412,7419 ----
              x_draw_glyphs (w, start_x, row, TEXT_AREA, 
                             start_hpos, end_hpos, draw, 0);
  
!             row->mouse_face_p
!               = draw == DRAW_MOUSE_FACE || draw == DRAW_IMAGE_RAISED;
            }
        }
  
***************
*** 9187,9201 ****
     of the line after START_X has been written.  */
  
  static void
! notice_overwritten_cursor (w, start_x, end_x)
       struct window *w;
!      int start_x, end_x;
  {
!   if (updated_area == TEXT_AREA
        && w->phys_cursor_on_p
!       && output_cursor.vpos == w->phys_cursor.vpos
!       && start_x <= w->phys_cursor.x
!       && (end_x < 0 || end_x > w->phys_cursor.x))
      w->phys_cursor_on_p = 0;
  }
  
--- 9197,9213 ----
     of the line after START_X has been written.  */
  
  static void
! notice_overwritten_cursor (w, area, x0, x1, y0, y1)
       struct window *w;
!      enum glyph_row_area area;
!      int x0, x1, y0, y1;
  {
!   if (area == TEXT_AREA
        && w->phys_cursor_on_p
!       && y0 <= w->phys_cursor.y
!       && y1 >= w->phys_cursor.y + w->phys_cursor_height
!       && x0 <= w->phys_cursor.x
!       && (x1 < 0 || x1 > w->phys_cursor.x))
      w->phys_cursor_on_p = 0;
  }
  
***************
*** 9664,9670 ****
              if (w32_system_caret_hwnd
                  && (w32_system_caret_height != w->phys_cursor_height
                      || w32_system_caret_width != caret_width))
!               PostMessage (hwnd, WM_EMACS_DESTROY_CARET, NULL, NULL);
  
              if (!w32_system_caret_hwnd)
                {
--- 9676,9682 ----
              if (w32_system_caret_hwnd
                  && (w32_system_caret_height != w->phys_cursor_height
                      || w32_system_caret_width != caret_width))
!               PostMessage (hwnd, WM_EMACS_DESTROY_CARET, 0, 0);
  
              if (!w32_system_caret_hwnd)
                {
***************
*** 9673,9679 ****
                }
  
              /* Move the system caret.  */
!             PostMessage (hwnd, WM_EMACS_TRACK_CARET, NULL, NULL);
            }
        }
  
--- 9685,9691 ----
                }
  
              /* Move the system caret.  */
!             PostMessage (hwnd, WM_EMACS_TRACK_CARET, 0, 0);
            }
        }
  



reply via email to

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