#include "x11/gdkx.h"
+#ifdef HAVE_XFIXES
+#include <X11/extensions/Xfixes.h>
+#endif
+
#include "gtkxembed.h"
#include "gtkalias.h"
{
if (hints.flags & PMinSize)
{
- socket->request_width = hints.min_width;
- socket->request_height = hints.min_height;
+ socket->request_width = MAX (hints.min_width, 1);
+ socket->request_height = MAX (hints.min_height, 1);
}
else if (hints.flags & PBaseSize)
{
- socket->request_width = hints.base_width;
- socket->request_height = hints.base_height;
+ socket->request_width = MAX (hints.base_width, 1);
+ socket->request_height = MAX (hints.base_height, 1);
}
}
socket->have_size = TRUE;
void
_gtk_socket_windowing_embed_notify (GtkSocket *socket)
{
+#ifdef HAVE_XFIXES
+ GdkDisplay *display = gtk_widget_get_display (GTK_WIDGET (socket));
+
+ XFixesChangeSaveSet (GDK_DISPLAY_XDISPLAY (display),
+ GDK_WINDOW_XWINDOW (socket->plug_window),
+ SetModeInsert, SaveSetRoot, SaveSetUnmap);
+#endif
_gtk_xembed_send_message (socket->plug_window,
XEMBED_EMBEDDED_NOTIFY, 0,
GDK_WINDOW_XWINDOW (GTK_WIDGET (socket)->window),
_gtk_socket_end_embedding (socket);
g_object_ref (widget);
- g_signal_emit_by_name (widget, "plug_removed", 0, &result);
+ g_signal_emit_by_name (widget, "plug_removed", &result);
if (!result)
gtk_widget_destroy (widget);
g_object_unref (widget);