summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog14
-rw-r--r--gtk/gtkplug-win32.c2
-rw-r--r--gtk/gtksocket-win32.c11
-rw-r--r--gtk/gtkwin32embed.c6
-rw-r--r--gtk/gtkwin32embed.h6
5 files changed, 27 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index 6f5f0e60ef..fda365a3a1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
diff --git a/gtk/gtkplug-win32.c b/gtk/gtkplug-win32.c
index 58f62c9ee2..98440c1cfa 100644
--- a/gtk/gtkplug-win32.c
+++ b/gtk/gtkplug-win32.c
@@ -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);
diff --git a/gtk/gtksocket-win32.c b/gtk/gtksocket-win32.c
index 3bf1f47fc2..024b3f7f34 100644
--- a/gtk/gtksocket-win32.c
+++ b/gtk/gtksocket-win32.c
@@ -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"));
diff --git a/gtk/gtkwin32embed.c b/gtk/gtkwin32embed.c
index b386f93f98..242722173b 100644
--- a/gtk/gtkwin32embed.c
+++ b/gtk/gtkwin32embed.c
@@ -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;
diff --git a/gtk/gtkwin32embed.h b/gtk/gtkwin32embed.h
index 4e2223ef33..743af3ccc9 100644
--- a/gtk/gtkwin32embed.h
+++ b/gtk/gtkwin32embed.h
@@ -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);