[Webkit-unassigned] [Bug 39474] [GStreamer] GTK XOverlay support in GStreamerGWorld

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Jul 16 07:54:03 PDT 2010


--- Comment #24 from Gustavo Noronha (kov) <gns at gnome.org>  2010-07-16 07:54:03 PST ---
(From update of attachment 61777)
 80         m_fullscreenWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
 81         gtk_widget_set_events(m_fullscreenWindow, GDK_POINTER_MOTION_MASK | GDK_KEY_PRESS_MASK | GDK_FOCUS_CHANGE_MASK);
 83         m_videoWindow = gtk_drawing_area_new();
 84         gtk_widget_set_double_buffered(m_videoWindow, FALSE);
 85         gtk_container_add(GTK_CONTAINER(m_fullscreenWindow), m_videoWindow);
 87         gtk_widget_show_all(m_fullscreenWindow);
 88         gtk_widget_realize(m_fullscreenWindow);
 89         gtk_widget_hide_all(m_fullscreenWindow);

This sequence looks very weird to me. What exactly do you intend to do here? Do you need both m_fullscreenWindow, and m_videoWindow realized? Why not just call realize on both? But, what comes later is a bit more weird:

 91 #ifdef GDK_WINDOWING_X11
 92         gdk_threads_enter();
 93         gdk_display_sync(gdk_display_get_default());
 94         m_videoWindowId = GDK_WINDOW_XID(gtk_widget_get_window(m_fullscreenWindow));
 95         gdk_threads_leave();
 96 #endif
 97 #endif
 98     }

If you think gdk_threads_enter() is required here, it should also be used above in the gtk calls, why are you not using it there? For the future, to avoid having a lot of #ifdefing, we may want to replace these with calls to, say, platformEnterFullScreen, that would be implemented in a platform/graphics/GStreamerGWorldGtk.cpp, or maybe platform/graphics/gstreamer/gtk/GStreamerGWorldGtk.cpp, similar to how, say, platform-specific parts of ResourceRequest are_factory_make("queue", "queue"); Sorry for not spotting these in earlier patches =(. I'm still looking at the patch, let me checkpoint here, though.

Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

More information about the webkit-unassigned mailing list