libreofficekit/qa/gtktiledviewer/gtv-lok-dialog.cxx | 8 ++++--- libreofficekit/qa/gtktiledviewer/gtv-lokdocview-signal-handlers.cxx | 11 +++++----- 2 files changed, 11 insertions(+), 8 deletions(-)
New commits: commit 9c83e29f1f33692b51031332cc0ee35ebbe243dc Author: Pranav Kant <pran...@collabora.co.uk> Date: Fri Aug 4 00:02:48 2017 +0530 lokdialog: drawing area needs to have focus to capture key events With this, key events successfully work now. Change-Id: I6dc6aff91dea08fcbc7ab840a77e2542ab9048ce diff --git a/libreofficekit/qa/gtktiledviewer/gtv-lok-dialog.cxx b/libreofficekit/qa/gtktiledviewer/gtv-lok-dialog.cxx index 6b19ddc506c0..e37f9f274062 100644 --- a/libreofficekit/qa/gtktiledviewer/gtv-lok-dialog.cxx +++ b/libreofficekit/qa/gtktiledviewer/gtv-lok-dialog.cxx @@ -110,7 +110,7 @@ gtv_lok_dialog_signal_button(GtkWidget* pDialogDrawingArea, GdkEventButton* pEve (int)pEvent->x, (int)pEvent->y, (int)pixelToTwip(pEvent->x), (int)pixelToTwip(pEvent->y)); - gtk_widget_grab_focus(GTK_WIDGET(pDialog)); + gtk_widget_grab_focus(pDialogDrawingArea); switch (pEvent->type) { @@ -194,7 +194,6 @@ gtv_lok_dialog_signal_motion(GtkWidget* pDialogDrawingArea, GdkEventButton* pEve (int)pEvent->x, (int)pEvent->y, (int)pixelToTwip(pEvent->x), (int)pixelToTwip(pEvent->y)); - gtk_widget_grab_focus(GTK_WIDGET(pDialog)); pDocument->pClass->postDialogMouseEvent(pDocument, priv->dialogid, @@ -216,6 +215,7 @@ gtv_lok_dialog_signal_key(GtkWidget* pDialogDrawingArea, GdkEventKey* pEvent) GtvApplicationWindow* window = GTV_APPLICATION_WINDOW(gtk_window_get_transient_for(GTK_WINDOW(pDialog))); LibreOfficeKitDocument* pDocument = lok_doc_view_get_document(LOK_DOC_VIEW(window->lokdocview)); + g_info("lok_dialog_signal_key"); int nCharCode = 0; int nKeyCode = 0; priv->m_nKeyModifier &= KEY_MOD2; @@ -334,12 +334,14 @@ gtv_lok_dialog_init(GtvLokDialog* dialog) priv->m_nKeyModifier = 0; priv->m_nLastButtonPressed = 0; - gtk_widget_add_events(GTK_WIDGET(priv->pDialogDrawingArea), + gtk_widget_add_events(priv->pDialogDrawingArea, GDK_BUTTON_PRESS_MASK |GDK_BUTTON_RELEASE_MASK |GDK_BUTTON_MOTION_MASK |GDK_KEY_PRESS_MASK |GDK_KEY_RELEASE_MASK); + // This is required to be able to capture key events on the drawing area + gtk_widget_set_can_focus(priv->pDialogDrawingArea, true); g_signal_connect(G_OBJECT(priv->pDialogDrawingArea), "draw", G_CALLBACK(gtv_lok_dialog_draw), nullptr); g_signal_connect(G_OBJECT(priv->pDialogDrawingArea), "button-press-event", G_CALLBACK(gtv_lok_dialog_signal_button), nullptr); commit 932993df9e866d586328a6d8d26ae23edc8600f3 Author: Pranav Kant <pran...@collabora.co.uk> Date: Fri Aug 4 00:02:38 2017 +0530 lokdialog: Invalid free Change-Id: I7713b8d025652770e7e46603edbaa86951588871 diff --git a/libreofficekit/qa/gtktiledviewer/gtv-lokdocview-signal-handlers.cxx b/libreofficekit/qa/gtktiledviewer/gtv-lokdocview-signal-handlers.cxx index 72916b56f9ce..1dc1d3a38e23 100644 --- a/libreofficekit/qa/gtktiledviewer/gtv-lokdocview-signal-handlers.cxx +++ b/libreofficekit/qa/gtktiledviewer/gtv-lokdocview-signal-handlers.cxx @@ -311,14 +311,15 @@ void LOKDocViewSigHandlers::dialogChild(LOKDocView* pDocView, gchar* pPayload, g std::string aAction = aRoot.get<std::string>("action"); std::string aPos = aRoot.get<std::string>("position"); gchar** ppCoordinates = g_strsplit(aPos.c_str(), ", ", 2); + gchar** ppCoordinate = ppCoordinates; int nX = 0; int nY = 0; - if (*ppCoordinates) - nX = atoi(*ppCoordinates); - ++ppCoordinates; - if (*ppCoordinates) - nY = atoi(*ppCoordinates); + if (*ppCoordinate) + nX = atoi(*ppCoordinate); + ++ppCoordinate; + if (*ppCoordinate) + nY = atoi(*ppCoordinate); g_strfreev(ppCoordinates); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits