*giowin32.c: G_IO_WIN32_WINDOWS_MESSAGES channels
authorAndy Lanoix <alanoix@src.gnome.org>
Tue, 22 May 2001 01:10:19 +0000 (01:10 +0000)
committerAndy Lanoix <alanoix@src.gnome.org>
Tue, 22 May 2001 01:10:19 +0000 (01:10 +0000)
not handled correctly in g_io_win32_check()

giowin32.c
glib/giowin32.c

index c542897..ae16dd3 100644 (file)
@@ -511,6 +511,7 @@ g_io_win32_prepare (GSource *source,
 static gboolean
 g_io_win32_check (GSource *source)
 {
+       MSG msg;
   GIOWin32Watch *watch = (GIOWin32Watch *)source;
   GIOWin32Channel *channel = (GIOWin32Channel *)watch->channel;
   
@@ -521,7 +522,13 @@ g_io_win32_check (GSource *source)
             watch->pollfd.events, watch->pollfd.revents, channel->revents);
 
   if (channel->type != G_IO_WIN32_WINDOWS_MESSAGES)
-    watch->pollfd.revents = (watch->pollfd.events & channel->revents);
+       {
+     watch->pollfd.revents = (watch->pollfd.events & channel->revents);
+       }
+       else
+       {
+    return (PeekMessage (&msg, channel->hwnd, 0, 0, PM_NOREMOVE));
+       }
 
   if (channel->type == G_IO_WIN32_SOCKET)
     {
index c542897..ae16dd3 100644 (file)
@@ -511,6 +511,7 @@ g_io_win32_prepare (GSource *source,
 static gboolean
 g_io_win32_check (GSource *source)
 {
+       MSG msg;
   GIOWin32Watch *watch = (GIOWin32Watch *)source;
   GIOWin32Channel *channel = (GIOWin32Channel *)watch->channel;
   
@@ -521,7 +522,13 @@ g_io_win32_check (GSource *source)
             watch->pollfd.events, watch->pollfd.revents, channel->revents);
 
   if (channel->type != G_IO_WIN32_WINDOWS_MESSAGES)
-    watch->pollfd.revents = (watch->pollfd.events & channel->revents);
+       {
+     watch->pollfd.revents = (watch->pollfd.events & channel->revents);
+       }
+       else
+       {
+    return (PeekMessage (&msg, channel->hwnd, 0, 0, PM_NOREMOVE));
+       }
 
   if (channel->type == G_IO_WIN32_SOCKET)
     {