]> git.eshelyaron.com Git - emacs.git/commitdiff
(w32_defined_color): Apply gamma correction before trying to map to
authorJason Rumney <jasonr@gnu.org>
Sun, 23 Jan 2000 22:20:24 +0000 (22:20 +0000)
committerJason Rumney <jasonr@gnu.org>
Sun, 23 Jan 2000 22:20:24 +0000 (22:20 +0000)
the palette.
(w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
to w32_clear_rect.

src/ChangeLog
src/w32fns.c

index 17cc9052c337550e901783f380aa4f44534cb947..6f52fa0480433682dae3683424bc09a52e92c523 100644 (file)
@@ -1,3 +1,26 @@
+2000-01-23  Jason Rumney  <jasonr@gnu.org>
+
+       * w32fns.c (w32_defined_color): Apply gamma correction before
+       trying to map to the palette.
+       (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
+       to w32_clear_rect.
+
+       * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
+       here. Callers changed to always pass real device context.
+       (w32_draw_bitmap): Likewise.
+       (w32_get_glyph_overhangs): Likewise.
+       (w32_draw_box_rect): Make use of s->hdc rather than getting a new
+       one.
+       (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
+       pfnSetScrollInfo and SetScrollRange.
+       (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
+       back into MULE characters after decoding them.
+       (x_get_glyph_face_and_encoding): Likewise.
+       (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
+       GetCharABCWidthsW fails, since this is defined on Windows 9x.
+       (x_produce_glyphs): Calculate per char metrics for a character
+       that we know exists in default font when font_not_found_p is true.
+
 2000-01-22  Jason Rumney <jasonr@gnu.org>
 
        * makefile.nt (intervals.obj, composite.obj): New modules.
index 5b6c9d3d3b1a0aaca9ba95018a6bf1d8215439a5..21d80af05726a727e2ba51703cd8bb640bf6b58e 100644 (file)
@@ -1781,6 +1781,12 @@ w32_defined_color (f, color, color_def, alloc)
 
   if (!NILP (tem)) 
     {
+      /* Apply gamma correction.  */
+      w32_color_ref = XUINT (tem);
+      gamma_correct (f, &w32_color_ref);
+      XSETINT (tem, w32_color_ref);
+
+      /* Map this color to the palette if it is enabled. */
       if (!NILP (Vw32_enable_palette))
        {
          struct w32_palette_entry * entry =
@@ -1816,12 +1822,6 @@ w32_defined_color (f, color, color_def, alloc)
         or not the display device has a palette. */
       w32_color_ref = XUINT (tem) | 0x2000000;
 
-      /* NTEMACS_TODO: Palette mapping should come after gamma
-         correction. */
-      /* Apply gamma correction.  */
-      if (f)
-        gamma_correct (f, &w32_color_ref);
-
       color_def->pixel = w32_color_ref;
       color_def->red = GetRValue (w32_color_ref);
       color_def->green = GetGValue (w32_color_ref);
@@ -3881,8 +3881,10 @@ w32_wnd_proc (hwnd, msg, wParam, lParam)
       f = x_window_to_frame (dpyinfo, hwnd);
       if (f)
        {
+          HDC hdc = get_frame_dc (f);
          GetUpdateRect (hwnd, &wmsg.rect, FALSE);
-         w32_clear_rect (f, NULL, &wmsg.rect);
+         w32_clear_rect (f, hdc, &wmsg.rect);
+          release_frame_dc (f, hdc);
 
 #if defined (W32_DEBUG_DISPLAY)
           DebPrint (("WM_ERASEBKGND: erasing %d,%d-%d,%d\n",