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:
Robert Roebling
1999-05-31 19:16:11 +00:00
parent 28d2a709de
commit db2d879ad4
4 changed files with 18 additions and 22 deletions

View File

@@ -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;

View File

@@ -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 ))

View File

@@ -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;

View File

@@ -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 ))