X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/416a4799e59703c2b71c83649c136c48c3f19821..8e86978af59b6465801bf1bd32f66a5d68280421:/src/unix/mediactrl.cpp diff --git a/src/unix/mediactrl.cpp b/src/unix/mediactrl.cpp index 01a553416f..c3e72b52d1 100644 --- a/src/unix/mediactrl.cpp +++ b/src/unix/mediactrl.cpp @@ -37,7 +37,7 @@ #include "wx/thread.h" // wxMutex/wxMutexLocker #ifdef __WXGTK__ -# include "wx/gtk/win_gtk.h" + #include # include // for GDK_WINDOW_XWINDOW #endif @@ -282,7 +282,7 @@ static gboolean gtk_window_expose_callback(GtkWidget *widget, if(event->count > 0) return FALSE; - GdkWindow *window = GTK_PIZZA(be->GetControl()->m_wxwindow)->bin_window; + GdkWindow *window = be->GetControl()->GTKGetDrawingWindow(); // I've seen this reccommended somewhere... // TODO: Is this needed? Maybe it is just cruft... @@ -320,7 +320,7 @@ static gboolean gtk_window_expose_callback(GtkWidget *widget, //----------------------------------------------------------------------------- #ifdef __WXGTK__ extern "C" { -static gint gtk_window_realize_callback(GtkWidget* theWidget, +static gint gtk_window_realize_callback(GtkWidget*, wxGStreamerMediaBackend* be) { DEBUG_MAIN_THREAD // TODO: Is this neccessary? @@ -333,7 +333,7 @@ static gint gtk_window_realize_callback(GtkWidget* theWidget, wxYield(); // FIXME: RN: X Server gets an error/crash if I don't do // this or a messagebox beforehand?!?!?? - GdkWindow *window = GTK_PIZZA(theWidget)->bin_window; + GdkWindow *window = be->GetControl()->GTKGetDrawingWindow(); wxASSERT(window); gst_x_overlay_set_xwindow_id( GST_X_OVERLAY(be->m_xoverlay), @@ -737,7 +737,7 @@ void wxGStreamerMediaBackend::SetupXOverlay() else { wxYield(); // see realize callback... - GdkWindow *window = GTK_PIZZA(m_ctrl->m_wxwindow)->bin_window; + GdkWindow *window = m_ctrl->m_wxwindow->GTKGetDrawingWindow(); wxASSERT(window); #endif @@ -959,7 +959,8 @@ void wxGStreamerMediaEventHandler::OnMediaFinish(wxMediaEvent& WXUNUSED(event)) // Sets m_playbin to NULL signifying we havn't loaded anything yet //----------------------------------------------------------------------------- wxGStreamerMediaBackend::wxGStreamerMediaBackend() - : m_playbin(NULL) + : m_playbin(NULL), + m_eventHandler(NULL) { } @@ -1084,12 +1085,12 @@ bool wxGStreamerMediaBackend::CreateControl(wxControl* ctrl, wxWindow* parent, // Create our playbin object m_playbin = gst_element_factory_make ("playbin", "play"); if (!GST_IS_ELEMENT(m_playbin)) - { + { if(G_IS_OBJECT(m_playbin)) g_object_unref(m_playbin); wxLogSysError(wxT("Got an invalid playbin")); return false; - } + } #if GST_VERSION_MAJOR == 0 && GST_VERSION_MINOR < 10 // Connect the glib events/callbacks we want to our playbin @@ -1125,7 +1126,7 @@ bool wxGStreamerMediaBackend::CreateControl(wxControl* ctrl, wxWindow* parent, if( !TryAudioSink(audiosink) ) { wxLogSysError(wxT("Could not find a valid audiosink")); - return false; + return false; } } } @@ -1150,7 +1151,7 @@ bool wxGStreamerMediaBackend::CreateControl(wxControl* ctrl, wxWindow* parent, g_object_unref(audiosink); wxLogSysError(wxT("Could not find a suitable video sink")); return false; - } + } } } }