summaryrefslogtreecommitdiff
path: root/app-office/libreoffice/files/libreoffice-4.1.3.2-kde-calchang.patch
diff options
context:
space:
mode:
Diffstat (limited to 'app-office/libreoffice/files/libreoffice-4.1.3.2-kde-calchang.patch')
-rw-r--r--app-office/libreoffice/files/libreoffice-4.1.3.2-kde-calchang.patch74
1 files changed, 0 insertions, 74 deletions
diff --git a/app-office/libreoffice/files/libreoffice-4.1.3.2-kde-calchang.patch b/app-office/libreoffice/files/libreoffice-4.1.3.2-kde-calchang.patch
deleted file mode 100644
index 8cf3a2b3..00000000
--- a/app-office/libreoffice/files/libreoffice-4.1.3.2-kde-calchang.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 95f60222e75486336b6569afa8f34d60b51c94ad Mon Sep 17 00:00:00 2001
-From: Jan-Marek Glogowski <glogow@fbihome.de>
-Date: Thu, 21 Nov 2013 12:40:57 +0100
-Subject: [PATCH] fdo#67011: Run Display::Yield through KDEXLib::Yield.
-
-Drag'n'Drop is handled in a second thread, which tries to "yield
-the display" while the main Qt thread probably is already
-yielding. Both need the YieldMutex, which freezes the application
-until the D'n'D thread times out.
-
-Trying to yield the display throught the application yield
-results in a recursive loop.
-
-So this catches and breaks the recursion, but just inside the Qt
-thread, so other processes can "yield on the display", instead
-of simply disabling the Display::Yield.
-
-Change-Id: Ifba91aa89fe5b0a89cc94820935dc996a065112f
-Reviewed-on: https://gerrit.libreoffice.org/6750
-Tested-by: Jan-Marek Glogowski <glogow@fbihome.de>
-Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
----
- vcl/unx/kde4/KDESalDisplay.cxx | 22 ++++++++++++++++------
- 1 file changed, 16 insertions(+), 6 deletions(-)
-
-diff --git a/vcl/unx/kde4/KDESalDisplay.cxx b/vcl/unx/kde4/KDESalDisplay.cxx
-index 21440fc..ee330e7 100644
---- a/vcl/unx/kde4/KDESalDisplay.cxx
-+++ b/vcl/unx/kde4/KDESalDisplay.cxx
-@@ -25,6 +25,8 @@
- #include <assert.h>
- #include <unx/saldata.hxx>
-
-+#include <qthread.h>
-+
- SalKDEDisplay* SalKDEDisplay::selfptr = NULL;
-
- SalKDEDisplay::SalKDEDisplay( Display* pDisp )
-@@ -48,18 +50,26 @@ SalKDEDisplay::~SalKDEDisplay()
-
- void SalKDEDisplay::Yield()
- {
-- if( DispatchInternalEvent() )
-+ // 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 )
- 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" );
-
-- XEvent event;
-- XNextEvent( pDisp_, &event );
-- if( checkDirectInputEvent( &event ))
-- return;
-- qApp->x11ProcessEvent( &event );
-+ static_cast<KDEXLib*>(GetXLib())->Yield( true, false );
-+
-+ if( is_qt_gui_thread )
-+ break_cyclic_yield_recursion = false;
- }
-
- // HACK: When using Qt event loop, input methods (japanese, etc.) will get broken because
---
-1.8.5.1
-