#include "gtkmarshalers.h"
#include "gtkplug.h"
#include "gtkplugprivate.h"
+#include "gtkdebug.h"
#include "win32/gdkwin32.h"
GdkNativeWindow
_gtk_plug_windowing_get_id (GtkPlug *plug)
{
- return (GdkNativeWindow) GDK_WINDOW_HWND (GTK_WIDGET (plug)->window);
+ return (GdkNativeWindow) GDK_WINDOW_HWND (gtk_widget_get_window (GTK_WIDGET (plug)));
}
void
_gtk_plug_windowing_realize_toplevel (GtkPlug *plug)
{
- if (plug->socket_window)
+ GtkPlugPrivate *priv = plug->priv;
+
+ if (priv->socket_window)
{
- _gtk_win32_embed_send (plug->socket_window,
+ _gtk_win32_embed_send (priv->socket_window,
GTK_WIN32_EMBED_PARENT_NOTIFY,
- (int) GDK_WINDOW_HWND (GTK_WIDGET (plug)->window),
+ (WPARAM) GDK_WINDOW_HWND (gtk_widget_get_window (GTK_WIDGET (plug))),
GTK_WIN32_EMBED_PROTOCOL_VERSION);
- _gtk_win32_embed_send (plug->socket_window,
+ _gtk_win32_embed_send (priv->socket_window,
GTK_WIN32_EMBED_EVENT_PLUG_MAPPED, 0, 0);
}
}
void
_gtk_plug_windowing_map_toplevel (GtkPlug *plug)
{
- if (plug->socket_window)
- _gtk_win32_embed_send (plug->socket_window,
+ GtkPlugPrivate *priv = plug->priv;
+
+ if (priv->socket_window)
+ _gtk_win32_embed_send (priv->socket_window,
GTK_WIN32_EMBED_EVENT_PLUG_MAPPED,
1, 0);
}
void
_gtk_plug_windowing_unmap_toplevel (GtkPlug *plug)
{
- if (plug->socket_window)
- _gtk_win32_embed_send (plug->socket_window,
+ GtkPlugPrivate *priv = plug->priv;
+
+ if (priv->socket_window)
+ _gtk_win32_embed_send (priv->socket_window,
GTK_WIN32_EMBED_EVENT_PLUG_MAPPED,
0, 0);
}
void
_gtk_plug_windowing_set_focus (GtkPlug *plug)
{
- if (plug->socket_window)
- _gtk_win32_embed_send (plug->socket_window,
+ GtkPlugPrivate *priv = plug->priv;
+
+ if (priv->socket_window)
+ _gtk_win32_embed_send (priv->socket_window,
GTK_WIN32_EMBED_REQUEST_FOCUS,
0, 0);
}
guint accelerator_key,
GdkModifierType accelerator_mods)
{
- if (plug->socket_window)
- _gtk_win32_embed_send (plug->socket_window,
+ GtkPlugPrivate *priv = plug->priv;
+
+ if (priv->socket_window)
+ _gtk_win32_embed_send (priv->socket_window,
GTK_WIN32_EMBED_GRAB_KEY,
accelerator_key, accelerator_mods);
}
guint accelerator_key,
GdkModifierType accelerator_mods)
{
- if (plug->socket_window)
- _gtk_win32_embed_send (plug->socket_window,
+ GtkPlugPrivate *priv = plug->priv;
+
+ if (priv->socket_window)
+ _gtk_win32_embed_send (priv->socket_window,
GTK_WIN32_EMBED_UNGRAB_KEY,
accelerator_key, accelerator_mods);
}
_gtk_plug_windowing_focus_to_parent (GtkPlug *plug,
GtkDirectionType direction)
{
+ GtkPlugPrivate *priv = plug->priv;
GtkWin32EmbedMessageType message = GTK_WIN32_EMBED_FOCUS_PREV;
switch (direction)
break;
}
- _gtk_win32_embed_send_focus_message (plug->socket_window, message, 0);
+ _gtk_win32_embed_send_focus_message (priv->socket_window, message, 0);
}
GdkFilterReturn
gpointer data)
{
GtkPlug *plug = GTK_PLUG (data);
+ GtkPlugPrivate *priv = plug->priv;
MSG *msg = (MSG *) gdk_xevent;
GdkFilterReturn return_val = GDK_FILTER_CONTINUE;
* crashes in testsocket.
*/
case WM_WINDOWPOSCHANGED:
- if (!plug->same_app)
+ if (!priv->same_app)
{
HWND parent = GetAncestor (msg->hwnd, GA_PARENT);
- gboolean was_embedded = plug->socket_window != NULL;
- GdkScreen *screen = gdk_drawable_get_screen (event->any.window);
+ gboolean was_embedded = priv->socket_window != NULL;
+ GdkScreen *screen = gdk_window_get_screen (event->any.window);
GdkDisplay *display = gdk_screen_get_display (screen);
- GTK_NOTE (PLUGSOCKET, g_printerr ("WM_WINDOWPOSCHANGED: hwnd=%p GA_PARENT=%p socket_window=%p\n", msg->hwnd, parent, plug->socket_window));
+ GTK_NOTE (PLUGSOCKET, g_printerr ("WM_WINDOWPOSCHANGED: hwnd=%p GA_PARENT=%p socket_window=%p\n", msg->hwnd, parent, priv->socket_window));
g_object_ref (plug);
if (was_embedded)
{
/* End of embedding protocol for previous socket */
- if (parent != GDK_WINDOW_HWND (plug->socket_window))
+ if (parent != GDK_WINDOW_HWND (priv->socket_window))
{
GtkWidget *widget = GTK_WIDGET (plug);
GTK_NOTE (PLUGSOCKET, g_printerr ("was_embedded, current parent != socket_window\n"));
- gdk_window_set_user_data (plug->socket_window, NULL);
- g_object_unref (plug->socket_window);
- plug->socket_window = NULL;
+ gdk_window_set_user_data (priv->socket_window, NULL);
+ g_object_unref (priv->socket_window);
+ priv->socket_window = NULL;
/* Emit a delete window, as if the user attempted to
* close the toplevel. Only do this if we are being
/* Start of embedding protocol */
GTK_NOTE (PLUGSOCKET, g_printerr ("start of embedding\n"));
- plug->socket_window = gdk_window_lookup_for_display (display, (GdkNativeWindow) parent);
- if (plug->socket_window)
+ priv->socket_window = gdk_window_lookup_for_display (display, (GdkNativeWindow) parent);
+ if (priv->socket_window)
{
gpointer user_data = NULL;
GTK_NOTE (PLUGSOCKET, g_printerr ("already had socket_window\n"));
- gdk_window_get_user_data (plug->socket_window, &user_data);
+ gdk_window_get_user_data (priv->socket_window, &user_data);
if (user_data)
{
g_warning (G_STRLOC "Plug reparented unexpectedly into window in the same process");
- plug->socket_window = NULL;
+ priv->socket_window = NULL;
break;
}
- g_object_ref (plug->socket_window);
+ g_object_ref (priv->socket_window);
}
else
{
- plug->socket_window = gdk_window_foreign_new_for_display (display, (GdkNativeWindow) parent);
- if (!plug->socket_window) /* Already gone */
+ priv->socket_window = gdk_window_foreign_new_for_display (display, (GdkNativeWindow) parent);
+ if (!priv->socket_window) /* Already gone */
break;
}
break;
case WM_SIZE:
- if (!plug->same_app && plug->socket_window)
+ if (!priv->same_app && priv->socket_window)
{
- _gtk_win32_embed_send (plug->socket_window,
+ _gtk_win32_embed_send (priv->socket_window,
GTK_WIN32_EMBED_PLUG_RESIZED,
0, 0);
}