summaryrefslogtreecommitdiff
path: root/gtk/gtkplug-x11.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk/gtkplug-x11.c')
-rw-r--r--gtk/gtkplug-x11.c53
1 files changed, 31 insertions, 22 deletions
diff --git a/gtk/gtkplug-x11.c b/gtk/gtkplug-x11.c
index a02876582c..8a2544d49b 100644
--- a/gtk/gtkplug-x11.c
+++ b/gtk/gtkplug-x11.c
@@ -57,31 +57,33 @@ static void xembed_set_info (GdkWindow *window,
GdkNativeWindow
_gtk_plug_windowing_get_id (GtkPlug *plug)
{
- return GDK_WINDOW_XWINDOW (GTK_WIDGET (plug)->window);
+ return GDK_WINDOW_XWINDOW (gtk_widget_get_window (GTK_WIDGET (plug)));
}
void
_gtk_plug_windowing_realize_toplevel (GtkPlug *plug)
{
- xembed_set_info (GTK_WIDGET (plug)->window, 0);
+ xembed_set_info (gtk_widget_get_window (GTK_WIDGET (plug)), 0);
}
void
_gtk_plug_windowing_map_toplevel (GtkPlug *plug)
{
- xembed_set_info (GTK_WIDGET (plug)->window, XEMBED_MAPPED);
+ xembed_set_info (gtk_widget_get_window (GTK_WIDGET (plug)), XEMBED_MAPPED);
}
void
_gtk_plug_windowing_unmap_toplevel (GtkPlug *plug)
{
- xembed_set_info (GTK_WIDGET (plug)->window, 0);
+ xembed_set_info (gtk_widget_get_window (GTK_WIDGET (plug)), 0);
}
void
_gtk_plug_windowing_set_focus (GtkPlug *plug)
{
- _gtk_xembed_send_message (plug->socket_window,
+ GtkPlugPrivate *priv = plug->priv;
+
+ _gtk_xembed_send_message (priv->socket_window,
XEMBED_REQUEST_FOCUS, 0, 0, 0);
}
@@ -90,7 +92,9 @@ _gtk_plug_windowing_add_grabbed_key (GtkPlug *plug,
guint accelerator_key,
GdkModifierType accelerator_mods)
{
- _gtk_xembed_send_message (plug->socket_window, XEMBED_GTK_GRAB_KEY, 0,
+ GtkPlugPrivate *priv = plug->priv;
+
+ _gtk_xembed_send_message (priv->socket_window, XEMBED_GTK_GRAB_KEY, 0,
accelerator_key, accelerator_mods);
}
@@ -99,7 +103,9 @@ _gtk_plug_windowing_remove_grabbed_key (GtkPlug *plug,
guint accelerator_key,
GdkModifierType accelerator_mods)
{
- _gtk_xembed_send_message (plug->socket_window, XEMBED_GTK_UNGRAB_KEY, 0,
+ GtkPlugPrivate *priv = plug->priv;
+
+ _gtk_xembed_send_message (priv->socket_window, XEMBED_GTK_UNGRAB_KEY, 0,
accelerator_key, accelerator_mods);
}
@@ -107,6 +113,7 @@ void
_gtk_plug_windowing_focus_to_parent (GtkPlug *plug,
GtkDirectionType direction)
{
+ GtkPlugPrivate *priv = plug->priv;
XEmbedMessageType message = XEMBED_FOCUS_PREV; /* Quiet GCC */
switch (direction)
@@ -122,8 +129,8 @@ _gtk_plug_windowing_focus_to_parent (GtkPlug *plug,
message = XEMBED_FOCUS_NEXT;
break;
}
-
- _gtk_xembed_send_focus_message (plug->socket_window, message, 0);
+
+ _gtk_xembed_send_focus_message (priv->socket_window, message, 0);
}
static void
@@ -220,6 +227,7 @@ _gtk_plug_windowing_filter_func (GdkXEvent *gdk_xevent,
GdkScreen *screen = gdk_drawable_get_screen (event->any.window);
GdkDisplay *display = gdk_screen_get_display (screen);
GtkPlug *plug = GTK_PLUG (data);
+ GtkPlugPrivate *priv = plug->priv;
XEvent *xevent = (XEvent *)gdk_xevent;
GdkFilterReturn return_val;
@@ -254,7 +262,7 @@ _gtk_plug_windowing_filter_func (GdkXEvent *gdk_xevent,
case ReparentNotify:
{
XReparentEvent *xre = &xevent->xreparent;
- gboolean was_embedded = plug->socket_window != NULL;
+ gboolean was_embedded = priv->socket_window != NULL;
GTK_NOTE (PLUGSOCKET, g_message("GtkPlug: ReparentNotify received"));
@@ -271,14 +279,14 @@ _gtk_plug_windowing_filter_func (GdkXEvent *gdk_xevent,
* then add to a local window before we get notification
* Probably need check in _gtk_plug_add_to_socket
*/
-
- if (xre->parent != GDK_WINDOW_XWINDOW (plug->socket_window))
+
+ if (xre->parent != GDK_WINDOW_XWINDOW (priv->socket_window))
{
GtkWidget *widget = GTK_WIDGET (plug);
- 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. Simple as to how we
@@ -306,25 +314,26 @@ _gtk_plug_windowing_filter_func (GdkXEvent *gdk_xevent,
/* Start of embedding protocol */
GTK_NOTE (PLUGSOCKET, g_message ("GtkPlug: start of embedding"));
- plug->socket_window = gdk_window_lookup_for_display (display, xre->parent);
- if (plug->socket_window)
+
+ priv->socket_window = gdk_window_lookup_for_display (display, xre->parent);
+ if (priv->socket_window)
{
gpointer user_data = NULL;
- 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; /* FIXME: shouldn't this unref the plug? i.e. "goto done;" instead */
}
- g_object_ref (plug->socket_window);
+ g_object_ref (priv->socket_window);
}
else
{
- plug->socket_window = gdk_window_foreign_new_for_display (display, xre->parent);
- if (!plug->socket_window) /* Already gone */
+ priv->socket_window = gdk_window_foreign_new_for_display (display, xre->parent);
+ if (!priv->socket_window) /* Already gone */
break; /* FIXME: shouldn't this unref the plug? i.e. "goto done;" instead */
}