Fix deadlock on annotate PDF

git-svn-id: https://xournal.svn.sourceforge.net/svnroot/xournal/trunk/xournalpp@75 9fe2bcd3-a095-4d8b-a836-9b85dc8d7627
presentation
andreasb123 15 years ago
parent 1079809182
commit efd8af6eef
  1. 3
      src/control/Control.cpp
  2. 6
      src/model/Document.cpp

@ -1768,9 +1768,8 @@ bool Control::annotatePdf(String filename, bool attachPdf, bool attachToDocument
cursor->setCursorBusy(true);
this->doc->lock();
bool res = this->doc->readPdf(filename, true, attachToDocument);
this->doc->unlock();
if (res) {
int page = 0;
GValue value = { 0 };

@ -239,10 +239,12 @@ void Document::updateIndexPageNumbers() {
}
bool Document::readPdf(String filename, bool initPages, bool attachToDocument) {
GError *popplerError = NULL;
GError * popplerError = NULL;
String uri = "file://";
uri += filename;
lock();
if (!pdfDocument.load(uri.c_str(), password.c_str(), &popplerError)) {
char * txt = g_strdup_printf("Document not loaded! (%s), %s", filename.c_str(), popplerError->message);
lastError = txt;
@ -280,6 +282,8 @@ bool Document::readPdf(String filename, bool initPages, bool attachToDocument) {
buildContentsModel();
updateIndexPageNumbers();
unlock();
handler->fireDocumentChanged(DOCUMENT_CHANGE_PDF_BOOKMARKS);
return true;

Loading…
Cancel
Save