summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorJan-Marek Glogowski <glogow@fbihome.de>2014-03-10 14:54:58 +0000
committerCaolán McNamara <caolanm@redhat.com>2014-03-22 15:11:23 +0000
commit6df01ea56717803f1ccf66bbbbb7a2815aa09fb5 (patch)
tree3004f0a4529e836d55afca4e649fe9fc923e23ca /vcl
parentf13a93eef2b860ce14d036e6657a6ed8dbfe3651 (diff)
Revert "fdo#67011: Run Display::Yield through KDEXLib::Yield."
This reverts commit 95f60222e75486336b6569afa8f34d60b51c94ad. (cherry picked from commit 69e7f4491ec78384c46653d3cd8870c97cc9218a) Change-Id: I180172424092eb64e8a7bc02072e1d477641cc8d Reviewed-on: https://gerrit.libreoffice.org/8709 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl')
-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