[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