]> Pileus Git - ~andy/gtk/commitdiff
gdk/win32/gdkevents-win32.c Use wide-char API for message and window
authorTor Lillqvist <tml@novell.com>
Sun, 3 Sep 2006 22:50:00 +0000 (22:50 +0000)
committerTor Lillqvist <tml@src.gnome.org>
Sun, 3 Sep 2006 22:50:00 +0000 (22:50 +0000)
2006-09-04  Tor Lillqvist  <tml@novell.com>

* gdk/win32/gdkevents-win32.c
* gdk/win32/gdkwindow-win32.c: Use wide-char API for message and
window handling (PeekMessage, PostMessage, SendMessage,
DispatchMessage, DefWindowProc, RegisterClassEx,
CreateWindowEx). (#321597)

ChangeLog
gdk/win32/gdkevents-win32.c
gdk/win32/gdkwindow-win32.c

index a81859c49d6b44ee585e1abd6e68e71bfe8cc591..bedb59e5f7e1b093911f8978cd08e1d45618d36b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2006-09-04  Tor Lillqvist  <tml@novell.com>
+
+       * gdk/win32/gdkevents-win32.c
+       * gdk/win32/gdkwindow-win32.c: Use wide-char API for message and
+       window handling (PeekMessage, PostMessage, SendMessage,
+       DispatchMessage, DefWindowProc, RegisterClassEx,
+       CreateWindowEx). (#321597)
+
 2006-09-03  Kristian Rietveld  <kris@imendio.com>
 
        * gtk/gtkfilechooserdefault.c (save_entry_get_info_cb),
index d234dcf124fdbe3fc1c2f0d8f3b990e039f7daae..b2eb25528db0805b2f1148a5348e206b814c63a0 100644 (file)
@@ -262,15 +262,15 @@ inner_window_procedure (HWND   hwnd,
        * the window procedure.
        */
       if (modal_win32_dialog)
-       PostMessage (modal_win32_dialog, got_gdk_events_message,
-                    (WPARAM) 1, 0);
+       PostMessageW (modal_win32_dialog, got_gdk_events_message,
+                     (WPARAM) 1, 0);
       return ret_val;
     }
   else
     {
-      /* Otherwise call DefWindowProc(). */
-      GDK_NOTE (EVENTS, g_print (" DefWindowProc"));
-      return DefWindowProc (hwnd, message, wparam, lparam);
+      /* Otherwise call DefWindowProcW(). */
+      GDK_NOTE (EVENTS, g_print (" DefWindowProcW"));
+      return DefWindowProcW (hwnd, message, wparam, lparam);
     }
 }
 
@@ -417,7 +417,7 @@ gdk_events_pending (void)
   MSG msg;
   return (_gdk_event_queue_find_first (_gdk_display) ||
          (modal_win32_dialog == NULL &&
-          PeekMessage (&msg, NULL, 0, 0, PM_NOREMOVE)));
+          PeekMessageW (&msg, NULL, 0, 0, PM_NOREMOVE)));
 }
 
 GdkEvent*
@@ -430,7 +430,7 @@ gdk_event_get_graphics_expose (GdkWindow *window)
   
   GDK_NOTE (EVENTS, g_print ("gdk_event_get_graphics_expose\n"));
 
-  if (PeekMessage (&msg, GDK_WINDOW_HWND (window), WM_PAINT, WM_PAINT, PM_REMOVE))
+  if (PeekMessageW (&msg, GDK_WINDOW_HWND (window), WM_PAINT, WM_PAINT, PM_REMOVE))
     {
       handle_wm_paint (&msg, window, TRUE, &event);
       if (event != NULL)
@@ -2166,7 +2166,7 @@ gdk_event_translate (MSG  *msg,
       
       /* If result is GDK_FILTER_CONTINUE, we continue as if nothing
        * happened. If it is GDK_FILTER_REMOVE or GDK_FILTER_TRANSLATE,
-       * we return TRUE, and DefWindowProc() will not be called.
+       * we return TRUE, and DefWindowProcW() will not be called.
        */
       if (result == GDK_FILTER_REMOVE || result == GDK_FILTER_TRANSLATE)
        return TRUE;
@@ -2194,12 +2194,11 @@ gdk_event_translate (MSG  *msg,
           */
          GDK_NOTE (EVENTS, g_print (" (posted)"));
        
-         PostMessage (msg->hwnd, msg->message,
-                      msg->wParam, msg->lParam);
+         PostMessageW (msg->hwnd, msg->message, msg->wParam, msg->lParam);
        }
       else if (msg->message == WM_CREATE)
        {
-         window = (UNALIGNED GdkWindow*) (((LPCREATESTRUCT) msg->lParam)->lpCreateParams);
+         window = (UNALIGNED GdkWindow*) (((LPCREATESTRUCTW) msg->lParam)->lpCreateParams);
          GDK_WINDOW_HWND (window) = msg->hwnd;
        }
       else
@@ -2453,7 +2452,7 @@ gdk_event_translate (MSG  *msg,
     case WM_SYSCHAR:
       if (msg->wParam != VK_SPACE)
        {
-         /* To prevent beeps, don't let DefWindowProc() be called */
+         /* To prevent beeps, don't let DefWindowProcW() be called */
          return_val = TRUE;
          goto done;
        }
@@ -3310,7 +3309,7 @@ gdk_event_translate (MSG  *msg,
 
       if (impl->hint_flags & (GDK_HINT_MIN_SIZE | GDK_HINT_MAX_SIZE))
        {
-         /* Don't call DefWindowProc() */
+         /* Don't call DefWindowProcW() */
          GDK_NOTE (EVENTS, g_print (" (handled, mintrack:%ldx%ld maxtrack:%ldx%ld "
                                     "maxpos:%+ld%+ld maxsize:%ldx%ld)",
                                     mmi->ptMinTrackSize.x, mmi->ptMinTrackSize.y,
@@ -3505,10 +3504,10 @@ _gdk_events_queue (GdkDisplay *display)
     return;
   
   while (!_gdk_event_queue_find_first (display) &&
-        PeekMessage (&msg, NULL, 0, 0, PM_REMOVE))
+        PeekMessageW (&msg, NULL, 0, 0, PM_REMOVE))
     {
       TranslateMessage (&msg);
-      DispatchMessage (&msg);
+      DispatchMessageW (&msg);
     }
 }
 
@@ -3525,7 +3524,7 @@ gdk_event_prepare (GSource *source,
 
   retval = (_gdk_event_queue_find_first (_gdk_display) != NULL ||
            (modal_win32_dialog == NULL &&
-            PeekMessage (&msg, NULL, 0, 0, PM_NOREMOVE)));
+            PeekMessageW (&msg, NULL, 0, 0, PM_NOREMOVE)));
 
   GDK_THREADS_LEAVE ();
 
@@ -3543,7 +3542,7 @@ gdk_event_check (GSource *source)
   if (event_poll_fd.revents & G_IO_IN)
     retval = (_gdk_event_queue_find_first (_gdk_display) != NULL ||
              (modal_win32_dialog == NULL &&
-              PeekMessage (&msg, NULL, 0, 0, PM_NOREMOVE)));
+              PeekMessageW (&msg, NULL, 0, 0, PM_NOREMOVE)));
   else
     retval = FALSE;
 
@@ -3600,9 +3599,9 @@ gdk_event_send_client_message_for_display (GdkDisplay     *display,
 {
   check_for_too_much_data (event);
 
-  return PostMessage ((HWND) winid, client_message,
-                     (WPARAM) event->client.message_type,
-                     event->client.data.l[0]);
+  return PostMessageW ((HWND) winid, client_message,
+                      (WPARAM) event->client.message_type,
+                      event->client.data.l[0]);
 }
 
 void
@@ -3611,9 +3610,9 @@ gdk_screen_broadcast_client_message (GdkScreen *screen,
 {
   check_for_too_much_data (event);
 
-  PostMessage (HWND_BROADCAST, client_message,
+  PostMessageW (HWND_BROADCAST, client_message,
               (WPARAM) event->client.message_type,
-              event->client.data.l[0]);
+               event->client.data.l[0]);
 }
 
 void
@@ -3623,10 +3622,10 @@ gdk_flush (void)
   MSG msg;
 
   /* Process all messages currently available */
-  while (PeekMessage (&msg, NULL, 0, 0, PM_REMOVE))
+  while (PeekMessageW (&msg, NULL, 0, 0, PM_REMOVE))
     {
       TranslateMessage (&msg);
-      DispatchMessage (&msg);
+      DispatchMessageW (&msg);
     }
 #endif
 
@@ -3641,8 +3640,8 @@ gdk_display_sync (GdkDisplay * display)
   g_return_if_fail (display == _gdk_display);
 
   /* Process all messages currently available */
-  while (PeekMessage (&msg, NULL, 0, 0, PM_REMOVE))
-    DispatchMessage (&msg);
+  while (PeekMessageW (&msg, NULL, 0, 0, PM_REMOVE))
+    DispatchMessageW (&msg);
 }
 
 void
index 472a59fcb4be28190854d42e8e77217205adec46..b5a83e1b49a27c2f88385b01079a8a55f69e4d15 100644 (file)
@@ -368,7 +368,7 @@ RegisterGdkClass (GdkWindowType wtype)
   static ATOM klassCHILD    = 0;
   static ATOM klassTEMP     = 0;
   static HICON hAppIcon = NULL;
-  static WNDCLASSEX wcl; 
+  static WNDCLASSEXW wcl; 
   ATOM klass = 0;
 
   wcl.cbSize = sizeof (WNDCLASSEX);
@@ -418,10 +418,10 @@ RegisterGdkClass (GdkWindowType wtype)
     case GDK_WINDOW_TOPLEVEL:
       if (0 == klassTOPLEVEL)
        {
-         wcl.lpszClassName = "gdkWindowToplevel";
+         wcl.lpszClassName = L"gdkWindowToplevel";
          
          ONCE_PER_CLASS ();
-         klassTOPLEVEL = RegisterClassEx (&wcl);
+         klassTOPLEVEL = RegisterClassExW (&wcl);
        }
       klass = klassTOPLEVEL;
       break;
@@ -429,11 +429,11 @@ RegisterGdkClass (GdkWindowType wtype)
     case GDK_WINDOW_CHILD:
       if (0 == klassCHILD)
        {
-         wcl.lpszClassName = "gdkWindowChild";
+         wcl.lpszClassName = L"gdkWindowChild";
          
          wcl.style |= CS_PARENTDC; /* MSDN: ... enhances system performance. */
          ONCE_PER_CLASS ();
-         klassCHILD = RegisterClassEx (&wcl);
+         klassCHILD = RegisterClassExW (&wcl);
        }
       klass = klassCHILD;
       break;
@@ -441,10 +441,10 @@ RegisterGdkClass (GdkWindowType wtype)
     case GDK_WINDOW_DIALOG:
       if (0 == klassDIALOG)
        {
-         wcl.lpszClassName = "gdkWindowDialog";
+         wcl.lpszClassName = L"gdkWindowDialog";
          wcl.style |= CS_SAVEBITS;
          ONCE_PER_CLASS ();
-         klassDIALOG = RegisterClassEx (&wcl);
+         klassDIALOG = RegisterClassExW (&wcl);
        }
       klass = klassDIALOG;
       break;
@@ -452,10 +452,10 @@ RegisterGdkClass (GdkWindowType wtype)
     case GDK_WINDOW_TEMP:
       if (0 == klassTEMP)
        {
-         wcl.lpszClassName = "gdkWindowTemp";
+         wcl.lpszClassName = L"gdkWindowTemp";
          wcl.style |= CS_SAVEBITS;
          ONCE_PER_CLASS ();
-         klassTEMP = RegisterClassEx (&wcl);
+         klassTEMP = RegisterClassExW (&wcl);
        }
       klass = klassTEMP;
       break;
@@ -467,7 +467,7 @@ RegisterGdkClass (GdkWindowType wtype)
   
   if (klass == 0)
     {
-      WIN32_API_FAILED ("RegisterClassEx");
+      WIN32_API_FAILED ("RegisterClassExW");
       g_error ("That is a fatal error");
     }
   return klass;
@@ -491,7 +491,7 @@ gdk_window_new_internal (GdkWindow     *parent,
   GdkDrawableImplWin32 *draw_impl;
   GdkVisual *visual;
   const gchar *title;
-  char *mbtitle;
+  wchar_t *wtitle;
   gint window_width, window_height;
   gint offset_x = 0, offset_y = 0;
 
@@ -681,20 +681,20 @@ gdk_window_new_internal (GdkWindow     *parent,
 
   klass = RegisterGdkClass (private->window_type);
 
-  mbtitle = g_locale_from_utf8 (title, -1, NULL, NULL, NULL);
-  
-  hwndNew = CreateWindowEx (dwExStyle,
-                           MAKEINTRESOURCE (klass),
-                           mbtitle,
-                           dwStyle,
-                           ((attributes_mask & GDK_WA_X) ?
-                            impl->position_info.x - offset_x : CW_USEDEFAULT),
-                           impl->position_info.y - offset_y, 
-                           window_width, window_height,
-                           hparent,
-                           NULL,
-                           _gdk_app_hmodule,
-                           window);
+  wtitle = g_utf8_to_utf16 (title, -1, NULL, NULL, NULL);
+  
+  hwndNew = CreateWindowExW (dwExStyle,
+                            MAKEINTRESOURCEW (klass),
+                            wtitle,
+                            dwStyle,
+                            ((attributes_mask & GDK_WA_X) ?
+                             impl->position_info.x - offset_x : CW_USEDEFAULT),
+                            impl->position_info.y - offset_y, 
+                            window_width, window_height,
+                            hparent,
+                            NULL,
+                            _gdk_app_hmodule,
+                            window);
   if (GDK_WINDOW_HWND (window) != hwndNew)
     {
       g_warning ("gdk_window_new: gdk_event_translate::WM_CREATE (%p, %p) HWND mismatch.",
@@ -721,7 +721,7 @@ gdk_window_new_internal (GdkWindow     *parent,
   gdk_win32_handle_table_insert (&GDK_WINDOW_HWND (window), window);
 
   GDK_NOTE (MISC, g_print ("... \"%s\" %dx%d@%+d%+d %p = %p\n",
-                          mbtitle,
+                          title,
                           window_width, window_height,
                           ((attributes_mask & GDK_WA_X) ?
                            impl->position_info.x - offset_x: CW_USEDEFAULT),
@@ -729,11 +729,11 @@ gdk_window_new_internal (GdkWindow     *parent,
                           hparent,
                           GDK_WINDOW_HWND (window)));
 
-  g_free (mbtitle);
+  g_free (wtitle);
 
   if (draw_impl->handle == NULL)
     {
-      WIN32_API_FAILED ("CreateWindowEx");
+      WIN32_API_FAILED ("CreateWindowExW");
       g_object_unref (window);
       return NULL;
     }
@@ -1440,7 +1440,7 @@ _gdk_windowing_window_clear_area (GdkWindow *window,
                               width, height, x, y));
       hdc = GetDC (GDK_WINDOW_HWND (window));
       IntersectClipRect (hdc, x, y, x + width + 1, y + height + 1);
-      SendMessage (GDK_WINDOW_HWND (window), WM_ERASEBKGND, (WPARAM) hdc, 0);
+      SendMessageW (GDK_WINDOW_HWND (window), WM_ERASEBKGND, (WPARAM) hdc, 0);
       GDI_CALL (ReleaseDC, (GDK_WINDOW_HWND (window), hdc));
     }
 }
@@ -2509,10 +2509,10 @@ gdk_window_set_icon_list (GdkWindow *window,
   small_hicon = _gdk_win32_pixbuf_to_hicon (small_pixbuf);
 
   /* Set the icons */
-  SendMessage (GDK_WINDOW_HWND (window), WM_SETICON, ICON_BIG,
-              (LPARAM)big_hicon);
-  SendMessage (GDK_WINDOW_HWND (window), WM_SETICON, ICON_SMALL,
-              (LPARAM)small_hicon);
+  SendMessageW (GDK_WINDOW_HWND (window), WM_SETICON, ICON_BIG,
+               (LPARAM)big_hicon);
+  SendMessageW (GDK_WINDOW_HWND (window), WM_SETICON, ICON_SMALL,
+               (LPARAM)small_hicon);
 
   /* Store the icons, destroying any previous icons */
   if (impl->hicon_big)
@@ -2941,8 +2941,8 @@ gdk_window_begin_resize_drag (GdkWindow     *window,
       break;
     }
 
-  DefWindowProc (GDK_WINDOW_HWND (window), WM_NCLBUTTONDOWN, winedge,
-                MAKELPARAM (root_x - _gdk_offset_x, root_y - _gdk_offset_y));
+  DefWindowProcW (GDK_WINDOW_HWND (window), WM_NCLBUTTONDOWN, winedge,
+                 MAKELPARAM (root_x - _gdk_offset_x, root_y - _gdk_offset_y));
 }
 
 void
@@ -2971,8 +2971,8 @@ gdk_window_begin_move_drag (GdkWindow *window,
    */
   gdk_display_pointer_ungrab (_gdk_display, 0);
 
-  DefWindowProc (GDK_WINDOW_HWND (window), WM_NCLBUTTONDOWN, HTCAPTION,
-                MAKELPARAM (root_x - _gdk_offset_x, root_y - _gdk_offset_y));
+  DefWindowProcW (GDK_WINDOW_HWND (window), WM_NCLBUTTONDOWN, HTCAPTION,
+                 MAKELPARAM (root_x - _gdk_offset_x, root_y - _gdk_offset_y));
 }