diff options
-rw-r--r-- | libreofficekit/Executable_gtktiledviewer.mk | 2 | ||||
-rw-r--r-- | libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx | 23 |
2 files changed, 23 insertions, 2 deletions
diff --git a/libreofficekit/Executable_gtktiledviewer.mk b/libreofficekit/Executable_gtktiledviewer.mk index 153d7a01bd3f..882309ad5f5c 100644 --- a/libreofficekit/Executable_gtktiledviewer.mk +++ b/libreofficekit/Executable_gtktiledviewer.mk @@ -14,6 +14,8 @@ $(eval $(call gb_Executable_set_include,gtktiledviewer,\ -I$(SRCDIR)/desktop/inc \ )) +$(eval $(call gb_Executable_use_sdk_api,gtktiledviewer)) + $(eval $(call gb_Executable_use_externals,gtktiledviewer,\ gtk \ )) 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 |