Create new page in the search function

This commit is contained in:
neldoreth 2010-01-21 11:36:13 +01:00
parent 24b83757cc
commit 53ae254abd

View file

@ -778,7 +778,6 @@ search(void* parameter)
int page_counter; int page_counter;
GList* results; GList* results;
GList* list; GList* list;
int ov;
if(argument->data) if(argument->data)
search_item = g_strdup((char*) argument->data); search_item = g_strdup((char*) argument->data);
@ -798,11 +797,10 @@ search(void* parameter)
next_page = (Zathura.PDF.number_of_pages + Zathura.PDF.page_number + next_page = (Zathura.PDF.number_of_pages + Zathura.PDF.page_number +
page_counter * direction) % Zathura.PDF.number_of_pages; page_counter * direction) % Zathura.PDF.number_of_pages;
pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &ov); PopplerPage* page = poppler_document_get_page(Zathura.PDF.document, next_page);
pthread_mutex_lock(&(Zathura.PDF.pages[next_page]->lock)); if(!page)
results = poppler_page_find_text(Zathura.PDF.pages[next_page]->page, search_item); pthread_exit(NULL);
pthread_mutex_unlock(&(Zathura.PDF.pages[next_page]->lock)); results = poppler_page_find_text(page, search_item);
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, &ov);
if(results) if(results)
break; break;
@ -812,15 +810,9 @@ search(void* parameter)
if(results) if(results)
{ {
for(list = results; list && list->data; list = g_list_next(list)) for(list = results; list && list->data; list = g_list_next(list))
{
pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &ov);
highlight_result(next_page, (PopplerRectangle*) list->data); highlight_result(next_page, (PopplerRectangle*) list->data);
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, &ov);
}
pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &ov);
set_page(next_page); set_page(next_page);
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, &ov);
} }
else else
{ {