summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorJan-Marek Glogowski <glogow@fbihome.de>2014-03-10 14:54:58 +0000
committerTor Lillqvist <tml@collabora.com>2014-03-25 11:40:32 +0200
commitb42072d73b7330912e1ee7923668df1eb682edeb (patch)
tree30d9bffc649471fd5216b37a61e0ecbd9e42a89c /vcl
parentef641271372a9080d6aad6ddf8789834cbe6dbd3 (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