mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-20 06:08:14 +00:00
If GTK 2.18 is used, make sure that the DrawingArea has a native window attached
This commit is contained in:
parent
579b8f3277
commit
fee44493c5
2 changed files with 14 additions and 0 deletions
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue