[Libreoffice-commits] core.git: Branch 'feature/tiled-editing' - 4 commits - libreofficekit/qa libreofficekit/source sw/source
Miklos Vajna
vmiklos at collabora.co.uk
Thu Feb 26 07:02:02 PST 2015
libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx | 19 ++++++++++++++++++
libreofficekit/source/gtk/lokdocview.c | 21 +++++++++++++++++++-
sw/source/core/crsr/viscrs.cxx | 2 +
3 files changed, 41 insertions(+), 1 deletion(-)
New commits:
commit 6337a209559fa9967f3e29e3492b42474c165851
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date: Thu Feb 26 15:59:17 2015 +0100
SwShellTableCrsr::FillRects: ignore visual area for tiled rendering
With this, if you have a 2x2 empty table and you are on A1, pressing
shift-right results in a proper table selection of A1:B1. Still need to
fix selection handles, though.
Change-Id: Ifb4598f715991cc7b88828d505c3af008c744676
diff --git a/sw/source/core/crsr/viscrs.cxx b/sw/source/core/crsr/viscrs.cxx
index 74b5ee6..89bcc28 100644
--- a/sw/source/core/crsr/viscrs.cxx
+++ b/sw/source/core/crsr/viscrs.cxx
@@ -704,6 +704,8 @@ void SwShellTableCrsr::FillRects()
return;
SwRegionRects aReg( GetShell()->VisArea() );
+ if (GetShell()->isTiledRendering())
+ aReg = GetShell()->getIDocumentLayoutAccess()->GetCurrentLayout()->Frm();
SwNodes& rNds = GetDoc()->GetNodes();
for (size_t n = 0; n < m_SelectedBoxes.size(); ++n)
{
commit becccb19cd56164810afffe7276429bc631a44d4
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date: Thu Feb 26 14:29:32 2015 +0100
libreofficekit: pretty-print LibreOfficeKitCallbackType
Change-Id: I15a6b265c6fa0d0c62277814fa119d20b311625b
diff --git a/libreofficekit/source/gtk/lokdocview.c b/libreofficekit/source/gtk/lokdocview.c
index 31d9430..5908ad0 100644
--- a/libreofficekit/source/gtk/lokdocview.c
+++ b/libreofficekit/source/gtk/lokdocview.c
@@ -565,6 +565,25 @@ static GList* lcl_payloadToRectangles(const char* pPayload)
g_strfreev(ppRectangles);
return pRet;
}
+
+static const gchar* lcl_LibreOfficeKitCallbackTypeToString(int nType)
+{
+ switch (nType)
+ {
+ case LOK_CALLBACK_INVALIDATE_TILES:
+ return "LOK_CALLBACK_INVALIDATE_TILES";
+ case LOK_CALLBACK_INVALIDATE_VISIBLE_CURSOR:
+ return "LOK_CALLBACK_INVALIDATE_VISIBLE_CURSOR";
+ case LOK_CALLBACK_TEXT_SELECTION:
+ return "LOK_CALLBACK_TEXT_SELECTION";
+ case LOK_CALLBACK_TEXT_SELECTION_START:
+ return "LOK_CALLBACK_TEXT_SELECTION_START";
+ case LOK_CALLBACK_TEXT_SELECTION_END:
+ return "LOK_CALLBACK_TEXT_SELECTION_END";
+ }
+ return 0;
+}
+
/// Invoked on the main thread if lok_docview_callback_worker() requests so.
static gboolean lok_docview_callback(gpointer pData)
{
@@ -641,7 +660,7 @@ static void lok_docview_callback_worker(int nType, const char* pPayload, void* p
pCallback->m_nType = nType;
pCallback->m_pPayload = g_strdup(pPayload);
pCallback->m_pDocView = pDocView;
- g_info("lok_docview_callback_worker: %d, '%s'", nType, pPayload);
+ g_info("lok_docview_callback_worker: %s, '%s'", lcl_LibreOfficeKitCallbackTypeToString(nType), pPayload);
#if GTK_CHECK_VERSION(2,12,0)
gdk_threads_add_idle(lok_docview_callback, pCallback);
#else
commit 5247f74f3ef469a87085ae303e50bba9f74e10be
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date: Thu Feb 26 14:17:07 2015 +0100
gtktiledviewer: map shift key
Change-Id: Id7e995ef3b6eb117dc74a0a0258417d9dc1291e6
diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
index 2392bd6..c840c8c 100644
--- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
+++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
@@ -21,6 +21,7 @@
#include "../lokdocview_quad/lokdocview_quad.h"
#include <com/sun/star/awt/Key.hpp>
+#include <rsc/rsc-vcl-shared-types.hxx>
#ifndef g_info
#define g_info(...) g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO, __VA_ARGS__)
@@ -178,6 +179,12 @@ static void signalKey(GtkWidget* /*pWidget*/, GdkEventKey* pEvent, gpointer /*pD
nCharCode = gdk_keyval_to_unicode(pEvent->keyval);
}
+ // rsc is not public API, but should be good enough for debugging purposes.
+ // If this is needed for real, then probably a new param of type
+ // css::awt::KeyModifier is needed in postKeyEvent().
+ if (pEvent->state & GDK_SHIFT_MASK)
+ nKeyCode |= KEY_SHIFT;
+
if (pEvent->type == GDK_KEY_RELEASE)
pLOKDocView->pOffice->pClass->postKeyEvent(pLOKDocView->pOffice, LOK_KEYEVENT_KEYUP, nCharCode, nKeyCode);
else
commit dc5048579ade8ce79259101482a2234753a7c3ac
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date: Thu Feb 26 13:00:41 2015 +0100
gtktiledviewer: map down/up/left/right arrow keys
Change-Id: I2a3c729d06d73ff7a7b7cedff27d9fb4a3a88d73
diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
index 5337cc4..2392bd6 100644
--- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
+++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx
@@ -159,6 +159,18 @@ static void signalKey(GtkWidget* /*pWidget*/, GdkEventKey* pEvent, gpointer /*pD
case GDK_Tab:
nKeyCode = com::sun::star::awt::Key::TAB;
break;
+ case GDK_Down:
+ nKeyCode = com::sun::star::awt::Key::DOWN;
+ break;
+ case GDK_Up:
+ nKeyCode = com::sun::star::awt::Key::UP;
+ break;
+ case GDK_Left:
+ nKeyCode = com::sun::star::awt::Key::LEFT;
+ break;
+ case GDK_Right:
+ nKeyCode = com::sun::star::awt::Key::RIGHT;
+ break;
default:
if (pEvent->keyval >= GDK_F1 && pEvent->keyval <= GDK_F26)
nKeyCode = com::sun::star::awt::Key::F1 + (pEvent->keyval - GDK_F1);
More information about the Libreoffice-commits
mailing list