]> git.eshelyaron.com Git - emacs.git/commitdiff
(x_update_begin): Regenerate the palette here, rather
authorAndrew Innes <andrewi@gnu.org>
Thu, 21 Dec 2000 14:58:55 +0000 (14:58 +0000)
committerAndrew Innes <andrewi@gnu.org>
Thu, 21 Dec 2000 14:58:55 +0000 (14:58 +0000)
than for each window.

src/ChangeLog
src/w32term.c

index 21915f3004901968c4f7e4284259794db3ba7e10..1001433b82ddd216b7acad01de0545b389d452bb 100644 (file)
@@ -1,3 +1,12 @@
+2000-12-21  Andrew Innes  <andrewi@gnu.org>
+
+       * w32term.c (x_update_begin): Regenerate the palette here, rather
+       than for each window.
+
+       * w32xfns.c (select_palette): Avoid calling SelectPalette if
+       palette is NULL, since this corrupts memory!  Also get
+       display_info reference from frame.
+
 2000-12-21  Jason Rumney  <jasonr@gnu.org>
 
        * w32bdf.c (w32_init_bdf_font): Fix test for valid bmp heap.
index cf25b7e1080a32b9c2d8c90fceb47907e1d5cf37..c32b71ea1c233ed5d6a242c15b02f4fe4ef007ca 100644 (file)
@@ -544,16 +544,21 @@ w32_clear_window (f)
 /* Start an update of frame F.  This function is installed as a hook
    for update_begin, i.e. it is called when update_begin is called.
    This function is called prior to calls to x_update_window_begin for
-   each window being updated.  Currently, there is nothing to do here
-   because all interesting stuff is done on a window basis.  */
+   each window being updated.  */
 
 static void
 x_update_begin (f)
      struct frame *f;
 {
-  /* Nothing to do.  We have to do something though, otherwise the
-     function gets optimized away and the hook is no longer valid. */
-  struct frame *cf = f;
+  struct w32_display_info *display_info = FRAME_W32_DISPLAY_INFO (f);
+
+  /* Regenerate display palette before drawing if list of requested
+     colors has changed. */
+  if (display_info->regen_palette)
+  {
+    w32_regenerate_palette (f);
+    display_info->regen_palette = FALSE;
+  }
 }
 
 
@@ -573,14 +578,6 @@ x_update_window_begin (w)
 
   BLOCK_INPUT;
 
-  /* Regenerate display palette before drawing if list of requested
-     colors has changed. */
-  if (display_info->regen_palette)
-  {
-    w32_regenerate_palette (f);
-    display_info->regen_palette = FALSE;
-  }
-
   if (f == display_info->mouse_face_mouse_frame)
     {
       /* Don't do highlighting for mouse motion during the update.  */