Tried to find thread/clipboard problem cause...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2604 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -250,7 +250,7 @@ static gint wxapp_wakeup_timerout_callback( gpointer WXUNUSED(data) )
|
|||||||
GDK_THREADS_LEAVE ();
|
GDK_THREADS_LEAVE ();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
wxTheApp->m_wakeUpTimerTag = gtk_timeout_add( 10, wxapp_wakeup_timerout_callback, (gpointer) NULL );
|
wxTheApp->m_wakeUpTimerTag = gtk_timeout_add( 20, wxapp_wakeup_timerout_callback, (gpointer) NULL );
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@@ -276,7 +276,7 @@ wxApp::wxApp()
|
|||||||
m_idleTag = gtk_idle_add( wxapp_idle_callback, (gpointer) NULL );
|
m_idleTag = gtk_idle_add( wxapp_idle_callback, (gpointer) NULL );
|
||||||
|
|
||||||
#if wxUSE_THREADS
|
#if wxUSE_THREADS
|
||||||
m_wakeUpTimerTag = gtk_timeout_add( 10, wxapp_wakeup_timerout_callback, (gpointer) NULL );
|
m_wakeUpTimerTag = gtk_timeout_add( 20, wxapp_wakeup_timerout_callback, (gpointer) NULL );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
m_colorCube = (unsigned char*) NULL;
|
m_colorCube = (unsigned char*) NULL;
|
||||||
|
@@ -231,8 +231,7 @@ selection_clear_clip( GtkWidget *WXUNUSED(widget), GdkEventSelection *event )
|
|||||||
if ((!wxTheClipboard->m_ownsPrimarySelection) &&
|
if ((!wxTheClipboard->m_ownsPrimarySelection) &&
|
||||||
(!wxTheClipboard->m_ownsClipboard))
|
(!wxTheClipboard->m_ownsClipboard))
|
||||||
{
|
{
|
||||||
/* the clipboard is no longer in our hands. we can the clipboard data. */
|
/* the clipboard is no longer in our hands. we can the delete clipboard data. */
|
||||||
|
|
||||||
if (wxTheClipboard->m_dataBroker)
|
if (wxTheClipboard->m_dataBroker)
|
||||||
{
|
{
|
||||||
delete wxTheClipboard->m_dataBroker;
|
delete wxTheClipboard->m_dataBroker;
|
||||||
@@ -445,26 +444,21 @@ bool wxClipboard::AddData( wxDataObject *data )
|
|||||||
wxCHECK_MSG( data, FALSE, _T("data is invalid") );
|
wxCHECK_MSG( data, FALSE, _T("data is invalid") );
|
||||||
|
|
||||||
/* if clipboard has been cleared before, create new data broker */
|
/* if clipboard has been cleared before, create new data broker */
|
||||||
|
|
||||||
if (!m_dataBroker) m_dataBroker = new wxDataBroker();
|
if (!m_dataBroker) m_dataBroker = new wxDataBroker();
|
||||||
|
|
||||||
/* add new data to list of offered data objects */
|
/* add new data to list of offered data objects */
|
||||||
|
|
||||||
m_dataBroker->Add( data );
|
m_dataBroker->Add( data );
|
||||||
|
|
||||||
/* get native format id of new data object */
|
/* get native format id of new data object */
|
||||||
|
|
||||||
GdkAtom format = data->GetFormat().GetAtom();
|
GdkAtom format = data->GetFormat().GetAtom();
|
||||||
|
|
||||||
wxCHECK_MSG( format, FALSE, _T("data has invalid format") );
|
wxCHECK_MSG( format, FALSE, _T("data has invalid format") );
|
||||||
|
|
||||||
/* This should happen automatically, but to be on the safe side */
|
/* This should happen automatically, but to be on the safe side */
|
||||||
|
|
||||||
m_ownsClipboard = FALSE;
|
m_ownsClipboard = FALSE;
|
||||||
m_ownsPrimarySelection = FALSE;
|
m_ownsPrimarySelection = FALSE;
|
||||||
|
|
||||||
/* Add handlers if someone requests data */
|
/* Add handlers if someone requests data */
|
||||||
|
|
||||||
|
|
||||||
#if (GTK_MINOR_VERSION > 0)
|
#if (GTK_MINOR_VERSION > 0)
|
||||||
|
|
||||||
@@ -497,9 +491,9 @@ bool wxClipboard::AddData( wxDataObject *data )
|
|||||||
selection_handler,
|
selection_handler,
|
||||||
(gpointer) NULL );
|
(gpointer) NULL );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// printf( "vorher.\n" );
|
||||||
/* Tell the world we offer clipboard data */
|
/* Tell the world we offer clipboard data */
|
||||||
|
|
||||||
if (!gtk_selection_owner_set( m_clipboardWidget,
|
if (!gtk_selection_owner_set( m_clipboardWidget,
|
||||||
g_clipboardAtom,
|
g_clipboardAtom,
|
||||||
GDK_CURRENT_TIME ))
|
GDK_CURRENT_TIME ))
|
||||||
@@ -508,6 +502,10 @@ bool wxClipboard::AddData( wxDataObject *data )
|
|||||||
}
|
}
|
||||||
m_ownsClipboard = TRUE;
|
m_ownsClipboard = TRUE;
|
||||||
|
|
||||||
|
// printf( "nachher.\n" );
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
if (!gtk_selection_owner_set( m_clipboardWidget,
|
if (!gtk_selection_owner_set( m_clipboardWidget,
|
||||||
GDK_SELECTION_PRIMARY,
|
GDK_SELECTION_PRIMARY,
|
||||||
GDK_CURRENT_TIME ))
|
GDK_CURRENT_TIME ))
|
||||||
|
@@ -250,7 +250,7 @@ static gint wxapp_wakeup_timerout_callback( gpointer WXUNUSED(data) )
|
|||||||
GDK_THREADS_LEAVE ();
|
GDK_THREADS_LEAVE ();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
wxTheApp->m_wakeUpTimerTag = gtk_timeout_add( 10, wxapp_wakeup_timerout_callback, (gpointer) NULL );
|
wxTheApp->m_wakeUpTimerTag = gtk_timeout_add( 20, wxapp_wakeup_timerout_callback, (gpointer) NULL );
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@@ -276,7 +276,7 @@ wxApp::wxApp()
|
|||||||
m_idleTag = gtk_idle_add( wxapp_idle_callback, (gpointer) NULL );
|
m_idleTag = gtk_idle_add( wxapp_idle_callback, (gpointer) NULL );
|
||||||
|
|
||||||
#if wxUSE_THREADS
|
#if wxUSE_THREADS
|
||||||
m_wakeUpTimerTag = gtk_timeout_add( 10, wxapp_wakeup_timerout_callback, (gpointer) NULL );
|
m_wakeUpTimerTag = gtk_timeout_add( 20, wxapp_wakeup_timerout_callback, (gpointer) NULL );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
m_colorCube = (unsigned char*) NULL;
|
m_colorCube = (unsigned char*) NULL;
|
||||||
|
@@ -231,8 +231,7 @@ selection_clear_clip( GtkWidget *WXUNUSED(widget), GdkEventSelection *event )
|
|||||||
if ((!wxTheClipboard->m_ownsPrimarySelection) &&
|
if ((!wxTheClipboard->m_ownsPrimarySelection) &&
|
||||||
(!wxTheClipboard->m_ownsClipboard))
|
(!wxTheClipboard->m_ownsClipboard))
|
||||||
{
|
{
|
||||||
/* the clipboard is no longer in our hands. we can the clipboard data. */
|
/* the clipboard is no longer in our hands. we can the delete clipboard data. */
|
||||||
|
|
||||||
if (wxTheClipboard->m_dataBroker)
|
if (wxTheClipboard->m_dataBroker)
|
||||||
{
|
{
|
||||||
delete wxTheClipboard->m_dataBroker;
|
delete wxTheClipboard->m_dataBroker;
|
||||||
@@ -445,26 +444,21 @@ bool wxClipboard::AddData( wxDataObject *data )
|
|||||||
wxCHECK_MSG( data, FALSE, _T("data is invalid") );
|
wxCHECK_MSG( data, FALSE, _T("data is invalid") );
|
||||||
|
|
||||||
/* if clipboard has been cleared before, create new data broker */
|
/* if clipboard has been cleared before, create new data broker */
|
||||||
|
|
||||||
if (!m_dataBroker) m_dataBroker = new wxDataBroker();
|
if (!m_dataBroker) m_dataBroker = new wxDataBroker();
|
||||||
|
|
||||||
/* add new data to list of offered data objects */
|
/* add new data to list of offered data objects */
|
||||||
|
|
||||||
m_dataBroker->Add( data );
|
m_dataBroker->Add( data );
|
||||||
|
|
||||||
/* get native format id of new data object */
|
/* get native format id of new data object */
|
||||||
|
|
||||||
GdkAtom format = data->GetFormat().GetAtom();
|
GdkAtom format = data->GetFormat().GetAtom();
|
||||||
|
|
||||||
wxCHECK_MSG( format, FALSE, _T("data has invalid format") );
|
wxCHECK_MSG( format, FALSE, _T("data has invalid format") );
|
||||||
|
|
||||||
/* This should happen automatically, but to be on the safe side */
|
/* This should happen automatically, but to be on the safe side */
|
||||||
|
|
||||||
m_ownsClipboard = FALSE;
|
m_ownsClipboard = FALSE;
|
||||||
m_ownsPrimarySelection = FALSE;
|
m_ownsPrimarySelection = FALSE;
|
||||||
|
|
||||||
/* Add handlers if someone requests data */
|
/* Add handlers if someone requests data */
|
||||||
|
|
||||||
|
|
||||||
#if (GTK_MINOR_VERSION > 0)
|
#if (GTK_MINOR_VERSION > 0)
|
||||||
|
|
||||||
@@ -497,9 +491,9 @@ bool wxClipboard::AddData( wxDataObject *data )
|
|||||||
selection_handler,
|
selection_handler,
|
||||||
(gpointer) NULL );
|
(gpointer) NULL );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// printf( "vorher.\n" );
|
||||||
/* Tell the world we offer clipboard data */
|
/* Tell the world we offer clipboard data */
|
||||||
|
|
||||||
if (!gtk_selection_owner_set( m_clipboardWidget,
|
if (!gtk_selection_owner_set( m_clipboardWidget,
|
||||||
g_clipboardAtom,
|
g_clipboardAtom,
|
||||||
GDK_CURRENT_TIME ))
|
GDK_CURRENT_TIME ))
|
||||||
@@ -508,6 +502,10 @@ bool wxClipboard::AddData( wxDataObject *data )
|
|||||||
}
|
}
|
||||||
m_ownsClipboard = TRUE;
|
m_ownsClipboard = TRUE;
|
||||||
|
|
||||||
|
// printf( "nachher.\n" );
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
if (!gtk_selection_owner_set( m_clipboardWidget,
|
if (!gtk_selection_owner_set( m_clipboardWidget,
|
||||||
GDK_SELECTION_PRIMARY,
|
GDK_SELECTION_PRIMARY,
|
||||||
GDK_CURRENT_TIME ))
|
GDK_CURRENT_TIME ))
|
||||||
|
Reference in New Issue
Block a user