/* Functions taken directly from X sources for use with the Microsoft W32 API.
- Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation.
+ Copyright (C) 1989, 1992, 1993, 1994, 1995, 1999 Free Software Foundation.
This file is part of GNU Emacs.
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
-#include <signal.h>
#include <config.h>
+#include <signal.h>
#include <stdio.h>
#include "lisp.h"
+#include "keyboard.h"
#include "frame.h"
+#include "charset.h"
+#include "fontset.h"
#include "blockinput.h"
#include "w32term.h"
#include "windowsx.h"
void
select_palette (FRAME_PTR f, HDC hdc)
{
+ struct w32_display_info *display_info = FRAME_W32_DISPLAY_INFO (f);
+
+ if (!display_info->has_palette)
+ return;
+
+ if (display_info->palette == 0)
+ return;
+
if (!NILP (Vw32_enable_palette))
f->output_data.w32->old_palette =
- SelectPalette (hdc, one_w32_display_info.palette, FALSE);
+ SelectPalette (hdc, display_info->palette, FALSE);
else
f->output_data.w32->old_palette = NULL;
{
HDC hdc;
+ if (f->output_method != output_w32)
+ abort ();
+
enter_crit ();
hdc = GetDC (f->output_data.w32->window_desc);
- select_palette (f, hdc);
+
+ /* If this gets called during startup before the frame is valid,
+ there is a chance of corrupting random data or crashing. */
+ if (hdc)
+ select_palette (f, hdc);
return hdc;
}
return (TRUE);
}
+/* Process all messages in the current thread's queue. */
+void
+drain_message_queue ()
+{
+ MSG msg;
+ while (PeekMessage (&msg, NULL, 0, 0, PM_REMOVE))
+ {
+ TranslateMessage (&msg);
+ DispatchMessage (&msg);
+ }
+}
+
+
/*
* XParseGeometry parses strings of the form
* "=<width>x<height>{+-}<xoffset>{+-}<yoffset>", where
void *f;
{
}
-