diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-01-12 16:24:37 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2015-01-16 13:18:27 +0100 |
commit | a84157c36175d367b80d6518956bcd0393d09048 (patch) | |
tree | 7935a0c2f8b1316758240ac50c784b302cbc961c /libreofficekit/qa | |
parent | fca89aea12874d382f500b81f9aaef4e232ced65 (diff) |
gtktiledviewer: handle more key values
Change-Id: I8af971f659d483c16507c906fa65346a5e0292f1
Diffstat (limited to 'libreofficekit/qa')
-rw-r--r-- | libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx index 73be3b9a1194..e1e9e4f241b7 100644 --- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx +++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx @@ -12,12 +12,15 @@ #include <string.h> #include <gdk/gdk.h> +#include <gdk/gdkkeysyms.h> #include <gtk/gtk.h> #include <LibreOfficeKit/LibreOfficeKitGtk.h> #include <LibreOfficeKit/LibreOfficeKitInit.h> #include "../lokdocview_quad/lokdocview_quad.h" +#include <com/sun/star/awt/Key.hpp> + static int help() { fprintf( stderr, "Usage: gtktiledviewer <absolute-path-to-libreoffice-install> <path-to-document>\n" ); @@ -129,10 +132,26 @@ static void signalKey(GtkWidget* /*pWidget*/, GdkEventKey* pEvent, gpointer /*pD { LOKDocView* pLOKDocView = LOK_DOCVIEW(pDocView); + int nCode = 0; + switch (pEvent->keyval) + { + case GDK_BackSpace: + nCode = com::sun::star::awt::Key::BACKSPACE; + break; + case GDK_Return: + nCode = com::sun::star::awt::Key::RETURN; + break; + default: + if (pEvent->keyval >= GDK_F1 && pEvent->keyval <= GDK_F26) + nCode = com::sun::star::awt::Key::F1 + (pEvent->keyval - GDK_F1); + else + nCode = gdk_keyval_to_unicode(pEvent->keyval); + } + if (pEvent->type == GDK_KEY_RELEASE) - pLOKDocView->pOffice->pClass->postKeyEvent(pLOKDocView->pOffice, LOK_KEYEVENT_KEYUP, gdk_keyval_to_unicode(pEvent->keyval)); + pLOKDocView->pOffice->pClass->postKeyEvent(pLOKDocView->pOffice, LOK_KEYEVENT_KEYUP, nCode); else - pLOKDocView->pOffice->pClass->postKeyEvent(pLOKDocView->pOffice, LOK_KEYEVENT_KEYINPUT, gdk_keyval_to_unicode(pEvent->keyval)); + pLOKDocView->pOffice->pClass->postKeyEvent(pLOKDocView->pOffice, LOK_KEYEVENT_KEYINPUT, nCode); } // GtkComboBox requires gtk 2.24 or later |