|
 |
f325b2 |
From 9ca320506308555b6b7fc7bbb3f82d76cdbf9a82 Mon Sep 17 00:00:00 2001
|
|
 |
f325b2 |
From: Pranav Kant <pranavk@gnome.org>
|
|
 |
f325b2 |
Date: Sun, 26 Jul 2015 22:23:46 +0530
|
|
 |
f325b2 |
Subject: [PATCH 082/398] lokdocview: Move postMouseEvent in separate LOK
|
|
 |
f325b2 |
thread
|
|
 |
f325b2 |
|
|
 |
f325b2 |
Change-Id: I9d1a08db2a91a596d3039a2388c22e6ea76dc2b1
|
|
 |
f325b2 |
(cherry picked from commit de9224bf9686550e63876eb5ac1241b27c01bc25)
|
|
 |
f325b2 |
---
|
|
 |
f325b2 |
libreofficekit/source/gtk/lokdocview.cxx | 52 ++++++++++++++++++++++++++++++--
|
|
 |
f325b2 |
libreofficekit/source/gtk/tilebuffer.hxx | 11 ++++++-
|
|
 |
f325b2 |
2 files changed, 59 insertions(+), 4 deletions(-)
|
|
 |
f325b2 |
|
|
 |
f325b2 |
diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx
|
|
 |
f325b2 |
index 6bee2f513ae9..d23ac1af2fc1 100644
|
|
 |
f325b2 |
--- a/libreofficekit/source/gtk/lokdocview.cxx
|
|
 |
f325b2 |
+++ b/libreofficekit/source/gtk/lokdocview.cxx
|
|
 |
f325b2 |
@@ -958,7 +958,16 @@ lok_doc_view_signal_button(GtkWidget* pWidget, GdkEventButton* pEvent)
|
|
 |
f325b2 |
if ((pEvent->time - priv->m_nLastButtonPressTime) < 250)
|
|
 |
f325b2 |
nCount++;
|
|
 |
f325b2 |
priv->m_nLastButtonPressTime = pEvent->time;
|
|
 |
f325b2 |
- priv->m_pDocument->pClass->postMouseEvent(priv->m_pDocument, LOK_MOUSEEVENT_MOUSEBUTTONDOWN, pixelToTwip(pEvent->x, priv->m_fZoom), pixelToTwip(pEvent->y, priv->m_fZoom), nCount);
|
|
 |
f325b2 |
+ GTask* task = g_task_new(pDocView, NULL, NULL, NULL);
|
|
 |
f325b2 |
+ LOEvent* pLOEvent = new LOEvent(LOK_POST_MOUSE_EVENT);
|
|
 |
f325b2 |
+ pLOEvent->m_nPostMouseEventType = LOK_MOUSEEVENT_MOUSEBUTTONDOWN;
|
|
 |
f325b2 |
+ pLOEvent->m_nPostMouseEventX = pixelToTwip(pEvent->x, priv->m_fZoom);
|
|
 |
f325b2 |
+ pLOEvent->m_nPostMouseEventY = pixelToTwip(pEvent->y, priv->m_fZoom);
|
|
 |
f325b2 |
+ pLOEvent->m_nPostMouseEventCount = nCount;
|
|
 |
f325b2 |
+ g_task_set_task_data(task, pLOEvent, g_free);
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
+ g_thread_pool_push(lokThreadPool, g_object_ref(task), NULL);
|
|
 |
f325b2 |
+ g_object_unref(task);
|
|
 |
f325b2 |
break;
|
|
 |
f325b2 |
}
|
|
 |
f325b2 |
case GDK_BUTTON_RELEASE:
|
|
 |
f325b2 |
@@ -967,7 +976,16 @@ lok_doc_view_signal_button(GtkWidget* pWidget, GdkEventButton* pEvent)
|
|
 |
f325b2 |
if ((pEvent->time - priv->m_nLastButtonReleaseTime) < 250)
|
|
 |
f325b2 |
nCount++;
|
|
 |
f325b2 |
priv->m_nLastButtonReleaseTime = pEvent->time;
|
|
 |
f325b2 |
- priv->m_pDocument->pClass->postMouseEvent(priv->m_pDocument, LOK_MOUSEEVENT_MOUSEBUTTONUP, pixelToTwip(pEvent->x, priv->m_fZoom), pixelToTwip(pEvent->y, priv->m_fZoom), nCount);
|
|
 |
f325b2 |
+ GTask* task = g_task_new(pDocView, NULL, NULL, NULL);
|
|
 |
f325b2 |
+ LOEvent* pLOEvent = new LOEvent(LOK_POST_MOUSE_EVENT);
|
|
 |
f325b2 |
+ pLOEvent->m_nPostMouseEventType = LOK_MOUSEEVENT_MOUSEBUTTONUP;
|
|
 |
f325b2 |
+ pLOEvent->m_nPostMouseEventX = pixelToTwip(pEvent->x, priv->m_fZoom);
|
|
 |
f325b2 |
+ pLOEvent->m_nPostMouseEventY = pixelToTwip(pEvent->y, priv->m_fZoom);
|
|
 |
f325b2 |
+ pLOEvent->m_nPostMouseEventCount = nCount;
|
|
 |
f325b2 |
+ g_task_set_task_data(task, pLOEvent, g_free);
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
+ g_thread_pool_push(lokThreadPool, g_object_ref(task), NULL);
|
|
 |
f325b2 |
+ g_object_unref(task);
|
|
 |
f325b2 |
break;
|
|
 |
f325b2 |
}
|
|
 |
f325b2 |
default:
|
|
 |
f325b2 |
@@ -1050,12 +1068,37 @@ lok_doc_view_signal_motion (GtkWidget* pWidget, GdkEventMotion* pEvent)
|
|
 |
f325b2 |
}
|
|
 |
f325b2 |
|
|
 |
f325b2 |
// Otherwise a mouse move, as on the desktop.
|
|
 |
f325b2 |
- priv->m_pDocument->pClass->postMouseEvent(priv->m_pDocument, LOK_MOUSEEVENT_MOUSEMOVE, pixelToTwip(pEvent->x, priv->m_fZoom), pixelToTwip(pEvent->y, priv->m_fZoom), 1);
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
+ GTask* task = g_task_new(pDocView, NULL, NULL, NULL);
|
|
 |
f325b2 |
+ LOEvent* pLOEvent = new LOEvent(LOK_POST_MOUSE_EVENT);
|
|
 |
f325b2 |
+ pLOEvent->m_nPostMouseEventType = LOK_MOUSEEVENT_MOUSEMOVE;
|
|
 |
f325b2 |
+ pLOEvent->m_nPostMouseEventX = pixelToTwip(pEvent->x, priv->m_fZoom);
|
|
 |
f325b2 |
+ pLOEvent->m_nPostMouseEventY = pixelToTwip(pEvent->y, priv->m_fZoom);
|
|
 |
f325b2 |
+ pLOEvent->m_nPostMouseEventCount = 1;
|
|
 |
f325b2 |
+ g_task_set_task_data(task, pLOEvent, g_free);
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
+ g_thread_pool_push(lokThreadPool, g_object_ref(task), NULL);
|
|
 |
f325b2 |
+ g_object_unref(task);
|
|
 |
f325b2 |
|
|
 |
f325b2 |
return FALSE;
|
|
 |
f325b2 |
}
|
|
 |
f325b2 |
|
|
 |
f325b2 |
static void
|
|
 |
f325b2 |
+postMouseEventInThread(gpointer data)
|
|
 |
f325b2 |
+{
|
|
 |
f325b2 |
+ GTask* task = G_TASK(data);
|
|
 |
f325b2 |
+ LOKDocView* pDocView = LOK_DOC_VIEW(g_task_get_source_object(task));
|
|
 |
f325b2 |
+ LOKDocViewPrivate *priv = static_cast<LOKDocViewPrivate*>(lok_doc_view_get_instance_private (pDocView));
|
|
 |
f325b2 |
+ LOEvent* pLOEvent = static_cast<LOEvent*>(g_task_get_task_data(task));
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
+ priv->m_pDocument->pClass->postMouseEvent(priv->m_pDocument,
|
|
 |
f325b2 |
+ pLOEvent->m_nPostMouseEventType,
|
|
 |
f325b2 |
+ pLOEvent->m_nPostMouseEventX,
|
|
 |
f325b2 |
+ pLOEvent->m_nPostMouseEventY,
|
|
 |
f325b2 |
+ pLOEvent->m_nPostMouseEventCount);
|
|
 |
f325b2 |
+}
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
+static void
|
|
 |
f325b2 |
openDocumentInThread (gpointer data)
|
|
 |
f325b2 |
{
|
|
 |
f325b2 |
GTask* task = G_TASK(data);
|
|
 |
f325b2 |
@@ -1236,6 +1279,9 @@ lokThreadFunc(gpointer data, gpointer /*user_data*/)
|
|
 |
f325b2 |
case LOK_PAINT_TILE:
|
|
 |
f325b2 |
paintTileInThread(task);
|
|
 |
f325b2 |
break;
|
|
 |
f325b2 |
+ case LOK_POST_MOUSE_EVENT:
|
|
 |
f325b2 |
+ postMouseEventInThread(task);
|
|
 |
f325b2 |
+ break;
|
|
 |
f325b2 |
}
|
|
 |
f325b2 |
|
|
 |
f325b2 |
g_object_unref(task);
|
|
 |
f325b2 |
diff --git a/libreofficekit/source/gtk/tilebuffer.hxx b/libreofficekit/source/gtk/tilebuffer.hxx
|
|
 |
f325b2 |
index 6e57d2fe8bd5..aa496aaf3e8f 100644
|
|
 |
f325b2 |
--- a/libreofficekit/source/gtk/tilebuffer.hxx
|
|
 |
f325b2 |
+++ b/libreofficekit/source/gtk/tilebuffer.hxx
|
|
 |
f325b2 |
@@ -138,7 +138,8 @@ enum
|
|
 |
f325b2 |
LOK_SET_PARTMODE,
|
|
 |
f325b2 |
LOK_SET_PART,
|
|
 |
f325b2 |
LOK_POST_KEY,
|
|
 |
f325b2 |
- LOK_PAINT_TILE
|
|
 |
f325b2 |
+ LOK_PAINT_TILE,
|
|
 |
f325b2 |
+ LOK_POST_MOUSE_EVENT
|
|
 |
f325b2 |
};
|
|
 |
f325b2 |
|
|
 |
f325b2 |
/**
|
|
 |
f325b2 |
@@ -187,6 +188,14 @@ struct LOEvent
|
|
 |
f325b2 |
float m_fPaintTileZoom;
|
|
 |
f325b2 |
///@}
|
|
 |
f325b2 |
|
|
 |
f325b2 |
+ /// @name postMouseEvent parameters
|
|
 |
f325b2 |
+ ///@{
|
|
 |
f325b2 |
+ int m_nPostMouseEventType;
|
|
 |
f325b2 |
+ int m_nPostMouseEventX;
|
|
 |
f325b2 |
+ int m_nPostMouseEventY;
|
|
 |
f325b2 |
+ int m_nPostMouseEventCount;
|
|
 |
f325b2 |
+ ///@}
|
|
 |
f325b2 |
+
|
|
 |
f325b2 |
/// Constructor to instantiate an object of type `type`.
|
|
 |
f325b2 |
LOEvent(int type)
|
|
 |
f325b2 |
: m_nType(type) {}
|
|
 |
f325b2 |
--
|
|
 |
f325b2 |
2.12.0
|
|
 |
f325b2 |
|