Bug 544684 - Win64 issue, window handles are assumed to be 32-bit

2008-08-05  Tor Lillqvist  <tml@novell.com>

	Bug 544684 - Win64 issue, window handles are assumed to be 32-bit

	* gtk/gtksocket-win32.c: Don't cast HWND to guint, pass it as such
	as the GdkNativeWindow parameter to
	gtk_window_remove_embedded_xid(). Debugging printout format fixes.

	* gtk/gtkwin32embed.h
	* gtk/gtkwin32embed.c: Change the types of wparam and lparam
	parameters to actually be WPARAM and LPARAM.

	* gtk/gtkplug-win32.c: Adapt accordingly.


svn path=/trunk/; revision=21000
This commit is contained in:
Tor Lillqvist 2008-08-04 23:44:59 +00:00 committed by Tor Lillqvist
parent 8d41f35b9b
commit a1e3946f58
5 changed files with 27 additions and 12 deletions

View File

@ -1,3 +1,17 @@
2008-08-05 Tor Lillqvist <tml@novell.com>
Bug 544684 - Win64 issue, window handles are assumed to be 32-bit
* gtk/gtksocket-win32.c: Don't cast HWND to guint, pass it as such
as the GdkNativeWindow parameter to
gtk_window_remove_embedded_xid(). Debugging printout format fixes.
* gtk/gtkwin32embed.h
* gtk/gtkwin32embed.c: Change the types of wparam and lparam
parameters to actually be WPARAM and LPARAM.
* gtk/gtkplug-win32.c: Adapt accordingly.
2008-08-04 Matthias Clasen <mclasen@redhat.com>
* gtk/gtksettings.c: Improve a setting nick: 'aureal' is not really

View File

@ -55,7 +55,7 @@ _gtk_plug_windowing_realize_toplevel (GtkPlug *plug)
{
_gtk_win32_embed_send (plug->socket_window,
GTK_WIN32_EMBED_PARENT_NOTIFY,
(int) GDK_WINDOW_HWND (GTK_WIDGET (plug)->window),
(WPARAM) GDK_WINDOW_HWND (GTK_WIDGET (plug)->window),
GTK_WIN32_EMBED_PROTOCOL_VERSION);
_gtk_win32_embed_send (plug->socket_window,
GTK_WIN32_EMBED_EVENT_PLUG_MAPPED, 0, 0);

View File

@ -62,7 +62,7 @@ void
_gtk_socket_windowing_end_embedding_toplevel (GtkSocket *socket)
{
gtk_window_remove_embedded_xid (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (socket))),
(guint) GDK_WINDOW_HWND (socket->plug_window));
GDK_WINDOW_HWND (socket->plug_window));
}
void
@ -215,17 +215,18 @@ _gtk_socket_windowing_filter_func (GdkXEvent *gdk_xevent,
default:
if (msg->message == _gtk_win32_embed_message_type (GTK_WIN32_EMBED_PARENT_NOTIFY))
{
GTK_NOTE (PLUGSOCKET, g_printerr ("GtkSocket: PARENT_NOTIFY received window=%#x version=%ld\n", msg->wParam, msg->lParam));
GTK_NOTE (PLUGSOCKET, g_printerr ("GtkSocket: PARENT_NOTIFY received window=%p version=%d\n",
(gpointer) msg->wParam, (int) msg->lParam));
/* If we some day different protocols deployed need to add
* some more elaborate version handshake
*/
if (msg->lParam != GTK_WIN32_EMBED_PROTOCOL_VERSION)
g_warning ("GTK Win32 embedding protocol version mismatch, "
"client uses version %ld, we understand version %d",
msg->lParam, GTK_WIN32_EMBED_PROTOCOL_VERSION);
"client uses version %d, we understand version %d",
(int) msg->lParam, GTK_WIN32_EMBED_PROTOCOL_VERSION);
if (!socket->plug_window)
{
_gtk_socket_add_window (socket, msg->wParam, FALSE);
_gtk_socket_add_window (socket, (GdkNativeWindow) msg->wParam, FALSE);
if (socket->plug_window)
GTK_NOTE (PLUGSOCKET, g_printerr ("GtkSocket: window created"));

View File

@ -71,8 +71,8 @@ _gtk_win32_embed_pop_message (void)
void
_gtk_win32_embed_send (GdkWindow *recipient,
GtkWin32EmbedMessageType message,
gint wparam,
gint lparam)
WPARAM wparam,
LPARAM lparam)
{
PostMessage (GDK_WINDOW_HWND (recipient),
_gtk_win32_embed_message_type (message),
@ -82,7 +82,7 @@ _gtk_win32_embed_send (GdkWindow *recipient,
void
_gtk_win32_embed_send_focus_message (GdkWindow *recipient,
GtkWin32EmbedMessageType message,
gint wparam)
WPARAM wparam)
{
int lparam = 0;

View File

@ -82,11 +82,11 @@ void _gtk_win32_embed_push_message (MSG *msg);
void _gtk_win32_embed_pop_message (void);
void _gtk_win32_embed_send (GdkWindow *recipient,
GtkWin32EmbedMessageType message,
gint wparam,
gint lparam);
WPARAM wparam,
LPARAM lparam);
void _gtk_win32_embed_send_focus_message (GdkWindow *recipient,
GtkWin32EmbedMessageType message,
gint wparam);
WPARAM wparam);
void _gtk_win32_embed_set_focus_wrapped (void);
gboolean _gtk_win32_embed_get_focus_wrapped (void);