libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx | 6 ++++-- libreofficekit/source/gtk/lokdocview.cxx | 12 +++++++----- 2 files changed, 11 insertions(+), 7 deletions(-)
New commits: commit 124c937f3bd6a7538dc6664ab9556fcfb3f27088 Author: Miklos Vajna <[email protected]> Date: Fri May 22 13:34:47 2015 +0100 lokdocview: it's enough to query the document size once Change-Id: Id99c9f1a814bc5f935eeb4e301ef3014ccb0bd07 diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx index d4f21e1..b2b7f2c 100644 --- a/libreofficekit/source/gtk/lokdocview.cxx +++ b/libreofficekit/source/gtk/lokdocview.cxx @@ -50,6 +50,8 @@ struct LOKDocView_Impl LibreOfficeKit* m_pOffice; LibreOfficeKitDocument* m_pDocument; + long m_nDocumentWidthTwips; + long m_nDocumentHeightTwips; /// View or edit mode. bool m_bEdit; /// Position and size of the visible cursor. @@ -239,6 +241,8 @@ LOKDocView_Impl::LOKDocView_Impl(LOKDocView* pDocView) m_fZoom(1), m_pOffice(0), m_pDocument(0), + m_nDocumentWidthTwips(0), + m_nDocumentHeightTwips(0), m_bEdit(false), m_aVisibleCursor({0, 0, 0, 0}), m_bCursorOverlayVisible(false), @@ -745,11 +749,8 @@ void LOKDocView_Impl::renderDocument(GdkRectangle* pPartial) { const int nTileSizePixels = 256; - // Get document size and find out how many rows / columns we need. - long nDocumentWidthTwips, nDocumentHeightTwips; - m_pDocument->pClass->getDocumentSize(m_pDocument, &nDocumentWidthTwips, &nDocumentHeightTwips); - long nDocumentWidthPixels = twipToPixel(nDocumentWidthTwips); - long nDocumentHeightPixels = twipToPixel(nDocumentHeightTwips); + long nDocumentWidthPixels = twipToPixel(m_nDocumentWidthTwips); + long nDocumentHeightPixels = twipToPixel(m_nDocumentHeightTwips); // Total number of rows / columns in this document. guint nRows = ceil((double)nDocumentHeightPixels / nTileSizePixels); guint nColumns = ceil((double)nDocumentWidthPixels / nTileSizePixels); @@ -1179,6 +1180,7 @@ SAL_DLLPUBLIC_EXPORT gboolean lok_docview_open_document( LOKDocView* pDocView, c { pDocView->m_pImpl->m_pDocument->pClass->initializeForRendering(pDocView->m_pImpl->m_pDocument); pDocView->m_pImpl->m_pDocument->pClass->registerCallback(pDocView->m_pImpl->m_pDocument, &LOKDocView_Impl::callbackWorker, pDocView); + pDocView->m_pImpl->m_pDocument->pClass->getDocumentSize(pDocView->m_pImpl->m_pDocument, &pDocView->m_pImpl->m_nDocumentWidthTwips, &pDocView->m_pImpl->m_nDocumentHeightTwips); g_timeout_add(600, &LOKDocView_Impl::handleTimeout, pDocView); pDocView->m_pImpl->renderDocument(0); } commit 2807bcc186c976e55b6844d3459e2b0fbb92cdb8 Author: Miklos Vajna <[email protected]> Date: Fri May 22 13:23:33 2015 +0100 gtktiledviewer: avoid a number of pointless re-rendering on startup Change-Id: Ia7f63a6fa7505da50e6580ea009975e06a0cb65c diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx index ae6cfa6..d066a83 100644 --- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx +++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx @@ -363,7 +363,6 @@ int main( int argc, char* argv[] ) GtkWidget* pComboBox = gtk_combo_box_text_new(); gtk_container_add( GTK_CONTAINER(pPartSelectorToolItem), pComboBox ); gtk_toolbar_insert( GTK_TOOLBAR(pToolbar), pPartSelectorToolItem, -1 ); - g_signal_connect( G_OBJECT(pComboBox), "changed", G_CALLBACK(changePart), NULL ); pPartSelector = GTK_COMBO_BOX_TEXT(pComboBox); @@ -374,7 +373,6 @@ int main( int argc, char* argv[] ) GtkWidget* pPartModeComboBox = gtk_combo_box_text_new(); gtk_container_add( GTK_CONTAINER(pPartModeSelectorToolItem), pPartModeComboBox ); gtk_toolbar_insert( GTK_TOOLBAR(pToolbar), pPartModeSelectorToolItem, -1 ); - g_signal_connect( G_OBJECT(pPartModeComboBox), "changed", G_CALLBACK(changePartMode), NULL ); #endif gtk_toolbar_insert( GTK_TOOLBAR(pToolbar), gtk_separator_tool_item_new(), -1); @@ -458,8 +456,12 @@ int main( int argc, char* argv[] ) #if ( GTK_MAJOR_VERSION == 2 && GTK_MINOR_VERSION >= 24 ) || GTK_MAJOR_VERSION > 2 populatePartSelector(); populatePartModeSelector( GTK_COMBO_BOX_TEXT(pPartModeComboBox) ); + // Connect these signals after populating the selectors, to avoid re-rendering on setting the default part/partmode. + g_signal_connect(G_OBJECT(pPartModeComboBox), "changed", G_CALLBACK(changePartMode), 0); #endif + g_signal_connect(G_OBJECT(pPartSelector), "changed", G_CALLBACK(changePart), 0); + gtk_main(); pOffice->pClass->destroy( pOffice ); _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
