X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/820162a63f43434b77b1e10a1cd37480e54f45b0..80f3f3beb68c3aabfdf521e78b383c41399ac75e:/src/unix/mediactrl.cpp?ds=sidebyside diff --git a/src/unix/mediactrl.cpp b/src/unix/mediactrl.cpp index 7f4ad8b491..2a333c3818 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 @@ -128,30 +128,6 @@ // Max wait time for element state waiting - GST_CLOCK_TIME_NONE for inf #define wxGSTREAMER_TIMEOUT (100 * GST_MSECOND) // Max 100 milliseconds -//----------------------------------------------------------------------------- -// wxGTK Debugging and idle stuff -//----------------------------------------------------------------------------- -#ifdef __WXGTK__ - -# ifdef __WXDEBUG__ -# if wxUSE_THREADS -# define DEBUG_MAIN_THREAD \ - if (wxThread::IsMain() && g_mainThreadLocked) \ - wxPrintf(wxT("gui reentrance")); -# else -# define DEBUG_MAIN_THREAD -# endif -# else -# define DEBUG_MAIN_THREAD -# endif // Debug - -#ifndef __WXGTK20__ -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; -#endif -extern bool g_mainThreadLocked; -#endif // wxGTK - //----------------------------------------------------------------------------- // wxLogTrace mask string //----------------------------------------------------------------------------- @@ -282,7 +258,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 = widget->window; // I've seen this reccommended somewhere... // TODO: Is this needed? Maybe it is just cruft... @@ -320,20 +296,12 @@ 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* widget, wxGStreamerMediaBackend* be) { - DEBUG_MAIN_THREAD // TODO: Is this neccessary? - -#ifndef __WXGTK20__ - if (g_isIdle) // FIXME: Why is needed? For wxYield? ?? - wxapp_install_idle_handler(); -#endif - - 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; + gdk_flush(); + + GdkWindow *window = widget->window; wxASSERT(window); gst_x_overlay_set_xwindow_id( GST_X_OVERLAY(be->m_xoverlay), @@ -736,8 +704,9 @@ void wxGStreamerMediaBackend::SetupXOverlay() } else { - wxYield(); // see realize callback... - GdkWindow *window = GTK_PIZZA(m_ctrl->m_wxwindow)->bin_window; + gdk_flush(); + + GdkWindow *window = m_ctrl->m_wxwindow->window; wxASSERT(window); #endif @@ -1007,7 +976,11 @@ bool wxGStreamerMediaBackend::CreateControl(wxControl* ctrl, wxWindow* parent, char **argvGST = new char*[wxTheApp->argc + 1]; for ( i = 0; i < wxTheApp->argc; i++ ) { +#if wxUSE_UNICODE_WCHAR argvGST[i] = wxStrdupA(wxConvUTF8.cWX2MB(wxTheApp->argv[i])); +#else + argvGST[i] = wxStrdupA(wxTheApp->argv[i].utf8_str()); +#endif } argvGST[wxTheApp->argc] = NULL;