summaryrefslogtreecommitdiff
path: root/vcl/unx
diff options
context:
space:
mode:
authorJan-Marek Glogowski <glogow@fbihome.de>2014-03-10 14:54:58 +0000
committerJan-Marek Glogowski <glogow@fbihome.de>2014-03-14 23:35:46 +0100
commit69e7f4491ec78384c46653d3cd8870c97cc9218a (patch)
tree48e76df7c97fcb2427e74bcc1f6523dc73606b1a /vcl/unx
parent52a2bde753fdf62cd8bb8498ef92abcce86e6c12 (diff)
Revert "fdo#67011: Run Display::Yield through KDEXLib::Yield."
Diffstat (limited to 'vcl/unx')
-rw-r--r--vcl/unx/kde4/KDESalDisplay.cxx22
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