If GTK 2.18 is used, make sure that the DrawingArea has a native window attached

This commit is contained in:
Sebastian Dröge 2009-11-25 08:16:05 +01:00
parent 579b8f3277
commit fee44493c5
2 changed files with 14 additions and 0 deletions

View file

@ -125,6 +125,10 @@ AC_SUBST(GST_CFLAGS)
# glib-sharp and gtk-sharp and mono-cairo are currently only needed for the samples
PKG_CHECK_MODULES(GLIB_SHARP, glib-sharp-2.0 >= 2.12, have_glibsharp=yes, have_glibsharp=no)
PKG_CHECK_MODULES(GTK_SHARP, gtk-sharp-2.0 >= 2.12, have_gtksharp=yes, have_gtksharp=no)
PKG_CHECK_MODULES(GTK_2_17_3, gtk+-2.0 >= 2.17.3, have_gtk_2_17_3=yes, have_gtk_2_17_3=no)
if test "x$have_gtk_2_17_3" = "xyes"; then
GTK_SHARP_LIBS="$GTK_SHARP_LIBS -define:HAVE_GTK_2_17_3"
fi
PKG_CHECK_MODULES(MONO_CAIRO, mono-cairo, have_monocairo=yes, have_monocairo=no)
AC_SUBST(GLIB_SHARP_LIBS)
AC_SUBST(GTK_SHARP_LIBS)

View file

@ -23,6 +23,11 @@ public class MainWindow : Gtk.Window {
MainWindow window = new MainWindow ();
window.ShowAll ();
#if HAVE_GTK_2_17_3
if (!gdk_window_ensure_native (window._da.GdkWindow.Handle)) {
Console.WriteLine ("Can't ensure a native window for the drawing area");
}
#endif
switch (System.Environment.OSVersion.Platform) {
case PlatformID.Unix:
window._xWindowId = gdk_x11_drawable_get_xid (window._da.GdkWindow.Handle);
@ -241,4 +246,9 @@ public class MainWindow : Gtk.Window {
[DllImport ("libgdk-win32-2.0-0.dll") ]
static extern IntPtr gdk_win32_drawable_get_handle (IntPtr handle);
#if HAVE_GTK_2_17_3
[DllImport ("libgdk-win32-2.0-0.dll") ]
static extern bool gdk_window_ensure_native (IntPtr handle);
#endif
}