emacs-diffs
[Top][All Lists]
Advanced

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

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


From: Jason Rumney
Subject: [Emacs-diffs] Changes to emacs/src/w32fns.c
Date: Fri, 22 Mar 2002 17:00:42 -0500

Index: emacs/src/w32fns.c
diff -c emacs/src/w32fns.c:1.162 emacs/src/w32fns.c:1.163
*** emacs/src/w32fns.c:1.162    Thu Mar 21 14:31:23 2002
--- emacs/src/w32fns.c  Fri Mar 22 17:00:42 2002
***************
*** 277,283 ****
  
  extern Lisp_Object Qtop;
  extern Lisp_Object Qdisplay;
- extern Lisp_Object Qtool_bar_lines;
  
  /* State variables for emulating a three button mouse. */
  #define LMOUSE 1
--- 277,282 ----
***************
*** 2292,2297 ****
--- 2291,2303 ----
  
    if (FRAME_W32_WINDOW (f) != 0)
      {
+       BLOCK_INPUT;
+       /* Update frame's cursor_gc.  */
+       f->output_data.w32->cursor_gc->foreground = fore_pixel;
+       f->output_data.w32->cursor_gc->background = pixel;
+ 
+       UNBLOCK_INPUT;
+ 
        if (FRAME_VISIBLE_P (f))
        {
          x_update_cursor (f, 0);
***************
*** 5671,5677 ****
    
    x_default_parameter (f, parms, Qmenu_bar_lines, make_number (1),
                       "menuBar", "MenuBar", RES_TYPE_NUMBER);
!   x_default_parameter (f, parms, Qtool_bar_lines, make_number (0),
                         "toolBar", "ToolBar", RES_TYPE_NUMBER);
    x_default_parameter (f, parms, Qbuffer_predicate, Qnil,
                       "bufferPredicate", "BufferPredicate", RES_TYPE_SYMBOL);
--- 5677,5683 ----
    
    x_default_parameter (f, parms, Qmenu_bar_lines, make_number (1),
                       "menuBar", "MenuBar", RES_TYPE_NUMBER);
!   x_default_parameter (f, parms, Qtool_bar_lines, make_number (HAVE_IMAGES),
                         "toolBar", "ToolBar", RES_TYPE_NUMBER);
    x_default_parameter (f, parms, Qbuffer_predicate, Qnil,
                       "bufferPredicate", "BufferPredicate", RES_TYPE_SYMBOL);
***************
*** 8142,8148 ****
  }
  
  
- 
  /***********************************************************************
                            Image types
   ***********************************************************************/
--- 8148,8153 ----
***************
*** 8968,8987 ****
      {
        EMACS_TIME t;
        unsigned long old;
!       int i, any_freed_p = 0;
  
        EMACS_GET_TIME (t);
        old = EMACS_SECS (t) - XFASTINT (Vimage_cache_eviction_delay);
        
!       for (i = 0; i < c->used; ++i)
        {
          struct image *img = c->images[i];
          if (img != NULL
!             && (force_p
!                 || (img->timestamp > old)))
            {
              free_image (f, img);
!             any_freed_p = 1;
            }
        }
  
--- 8973,8995 ----
      {
        EMACS_TIME t;
        unsigned long old;
!       int i, nfreed;
  
        EMACS_GET_TIME (t);
        old = EMACS_SECS (t) - XFASTINT (Vimage_cache_eviction_delay);
        
!       /* Block input so that we won't be interrupted by a SIGIO
!        while being in an inconsistent state.  */
!       BLOCK_INPUT;
!       
!       for (i = nfreed = 0; i < c->used; ++i)
        {
          struct image *img = c->images[i];
          if (img != NULL
!             && (force_p || (img->timestamp < old)))
            {
              free_image (f, img);
!             ++nfreed;
            }
        }
  
***************
*** 8989,8999 ****
         Emacs was iconified for a longer period of time.  In that
         case, current matrices may still contain references to
         images freed above.  So, clear these matrices.  */
!       if (any_freed_p)
        {
!         clear_current_matrices (f);
          ++windows_or_buffers_changed;
        }
      }
  }
  
--- 8997,9018 ----
         Emacs was iconified for a longer period of time.  In that
         case, current matrices may still contain references to
         images freed above.  So, clear these matrices.  */
!       if (nfreed)
        {
!         Lisp_Object tail, frame;
!         
!         FOR_EACH_FRAME (tail, frame)
!           {
!             struct frame *f = XFRAME (frame);
!             if (FRAME_W32_P (f)
!                 && FRAME_X_IMAGE_CACHE (f) == c)
!               clear_current_matrices (f);
!           }
! 
          ++windows_or_buffers_changed;
        }
+ 
+       UNBLOCK_INPUT;
      }
  }
  



reply via email to

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