|
 |
f325b2 |
From e53d6dd2ee9dd5bf8aed0f84cc9ef198b7ccd606 Mon Sep 17 00:00:00 2001
|
|
 |
f325b2 |
From: Miklos Vajna <vmiklos@collabora.co.uk>
|
|
 |
f325b2 |
Date: Fri, 11 Sep 2015 11:27:08 +0200
|
|
 |
f325b2 |
Subject: [PATCH 107/398] lokdocview: GTK+ calls should be made from the main
|
|
 |
f325b2 |
thread
|
|
 |
f325b2 |
|
|
 |
f325b2 |
Change-Id: Ia76ef111170700ef507550222ca917986d4fe00e
|
|
 |
f325b2 |
(cherry picked from commit 88b6dd3ea77ca9f6d5fac2965cea6ff0634e6ba5)
|
|
 |
f325b2 |
---
|
|
 |
f325b2 |
libreofficekit/source/gtk/lokdocview.cxx | 14 ++++++++++++--
|
|
 |
f325b2 |
1 file changed, 12 insertions(+), 2 deletions(-)
|
|
 |
f325b2 |
|
|
 |
f325b2 |
diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx
|
|
 |
f325b2 |
index 83bb8b5e0aa5..27d2e1df983a 100644
|
|
 |
f325b2 |
--- a/libreofficekit/source/gtk/lokdocview.cxx
|
|
 |
f325b2 |
+++ b/libreofficekit/source/gtk/lokdocview.cxx
|
|
 |
f325b2 |
@@ -368,6 +368,16 @@ hyperlinkClicked(LOKDocView* pDocView, const std::string& rString)
|
|
 |
f325b2 |
g_signal_emit(pDocView, doc_view_signals[HYPERLINK_CLICKED], 0, rString.c_str());
|
|
 |
f325b2 |
}
|
|
 |
f325b2 |
|
|
 |
f325b2 |
+/// Trigger a redraw, invoked on the main thread by other functions running in a thread.
|
|
 |
f325b2 |
+static gboolean queueDraw(gpointer pData)
|
|
 |
f325b2 |
+{
|
|
 |
f325b2 |
+ GtkWidget* pWidget = static_cast<GtkWidget*>(pData);
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
+ gtk_widget_queue_draw(pWidget);
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
+ return G_SOURCE_REMOVE;
|
|
 |
f325b2 |
+}
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
/// Implementation of the global callback handler, invoked by globalCallback();
|
|
 |
f325b2 |
static gboolean
|
|
 |
f325b2 |
globalCallback (gpointer pData)
|
|
 |
f325b2 |
@@ -1249,7 +1259,7 @@ setEditInThread(gpointer data)
|
|
 |
f325b2 |
}
|
|
 |
f325b2 |
priv->m_bEdit = bEdit;
|
|
 |
f325b2 |
g_signal_emit(pDocView, doc_view_signals[EDIT_CHANGED], 0, bWasEdit);
|
|
 |
f325b2 |
- gtk_widget_queue_draw(GTK_WIDGET(pDocView));
|
|
 |
f325b2 |
+ gdk_threads_add_idle(queueDraw, GTK_WIDGET(pDocView));
|
|
 |
f325b2 |
}
|
|
 |
f325b2 |
|
|
 |
f325b2 |
static void
|
|
 |
f325b2 |
@@ -1305,7 +1315,7 @@ paintTileInThread (gpointer data)
|
|
 |
f325b2 |
//create a mapping for it
|
|
 |
f325b2 |
buffer.m_mTiles[index].setPixbuf(pPixBuf);
|
|
 |
f325b2 |
buffer.m_mTiles[index].valid = true;
|
|
 |
f325b2 |
- gtk_widget_queue_draw(GTK_WIDGET(pDocView));
|
|
 |
f325b2 |
+ gdk_threads_add_idle(queueDraw, GTK_WIDGET(pDocView));
|
|
 |
f325b2 |
}
|
|
 |
f325b2 |
|
|
 |
f325b2 |
|
|
 |
f325b2 |
--
|
|
 |
f325b2 |
2.12.0
|
|
 |
f325b2 |
|