On my Fedora 19 machine wayland is available and so I thought it would examine what might be needed to make gnome-mplayer run in this configuration. GTK 3 will support wayland, but what I am not finding is a way to embed mplayer into a GTK window. The current code uses the GTKSocket and passes the XID of that window to mplayer for embedding. I am also not completely sure that the GTKPlug/Socket API is going to work on Wayland. According to the GTK 3 manual I see this note
The GtkPlug and GtkSocket widgets are only available when GTK+ is compiled for the X11 platform and GDK_WINDOWING_X11 is defined. They can only be used on a GdkX11Display. To use GtkPlug and GtkSocket, you need to include the gtk/gtkx.h header.
So the current method of embedding mplayer may be a no go on Wayland/GTK3.
However, I believe I may have a workaround for all this. I think if we compile gnome-mplayer in GTK2 mode and then use XWayland everything should "just work". It is also possible there will be a way that XWayland is launched for applications that are linked to Xlibs or we may just need to but a wrapper script around gnome-mplayer to ensure it is launched properly even in GTK3 mode. Not the cleanest solution, but better than nothing. Once Fedora 20 is released and Wayland and XWayland are available I will do some more testing and see what needs to happen.
1 comment:
You can use gdk_set_allowed_backends("x11") to force the x11 backend even when the wayland backend would be chosen. This is useful if you make unconditional use of gtkx, e.g. for GtkSocket as you mention.
Post a Comment