diff options
author | Jan-Marek Glogowski <glogow@fbihome.de> | 2014-03-10 14:54:58 +0000 |
---|---|---|
committer | Jan-Marek Glogowski <glogow@fbihome.de> | 2014-03-14 23:35:46 +0100 |
commit | 69e7f4491ec78384c46653d3cd8870c97cc9218a (patch) | |
tree | 48e76df7c97fcb2427e74bcc1f6523dc73606b1a | |
parent | 52a2bde753fdf62cd8bb8498ef92abcce86e6c12 (diff) |
Revert "fdo#67011: Run Display::Yield through KDEXLib::Yield."
This reverts commit 95f60222e75486336b6569afa8f34d60b51c94ad.
-rw-r--r-- | vcl/unx/kde4/KDESalDisplay.cxx | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/vcl/unx/kde4/KDESalDisplay.cxx b/vcl/unx/kde4/KDESalDisplay.cxx index ee330e735625..21440fc4d7d4 100644 --- a/vcl/unx/kde4/KDESalDisplay.cxx +++ b/vcl/unx/kde4/KDESalDisplay.cxx @@ -25,8 +25,6 @@ #include <assert.h> #include <unx/saldata.hxx> -#include <qthread.h> - SalKDEDisplay* SalKDEDisplay::selfptr = NULL; SalKDEDisplay::SalKDEDisplay( Display* pDisp ) @@ -50,26 +48,18 @@ SalKDEDisplay::~SalKDEDisplay() void SalKDEDisplay::Yield() { - // We yield the display throught the main Qt thread. - // Actually this Yield may call the Display::Yield, which results in an - // unlimited cycle. - static bool break_cyclic_yield_recursion = false; - bool is_qt_gui_thread = ( qApp->thread() == QThread::currentThread() ); - - if( DispatchInternalEvent() || break_cyclic_yield_recursion ) + if( DispatchInternalEvent() ) return; - if( is_qt_gui_thread ) - break_cyclic_yield_recursion = true; - DBG_ASSERT( static_cast<SalYieldMutex*>(GetSalData()->m_pInstance->GetYieldMutex())->GetThreadId() == osl::Thread::getCurrentIdentifier(), "will crash soon since solar mutex not locked in SalKDEDisplay::Yield" ); - static_cast<KDEXLib*>(GetXLib())->Yield( true, false ); - - if( is_qt_gui_thread ) - break_cyclic_yield_recursion = false; + XEvent event; + XNextEvent( pDisp_, &event ); + if( checkDirectInputEvent( &event )) + return; + qApp->x11ProcessEvent( &event ); } // HACK: When using Qt event loop, input methods (japanese, etc.) will get broken because |