From bf325e9279324f02bcadc0145cd553ed94c23d2d Mon Sep 17 00:00:00 2001 From: Jonathan Blandford Date: Fri, 22 Apr 2005 03:39:52 +0000 Subject: actually remove the job. Thu Apr 21 23:37:52 2005 Jonathan Blandford * shell/ev-pixbuf-cache.c (dispose_cache_job_info): actually remove the job. * backend/ev-document.h: Remove EV_DOC_MUTEX in favor of a locking function. This helps debugging. --- (limited to 'shell') diff --git a/shell/ev-pixbuf-cache.c b/shell/ev-pixbuf-cache.c index 91bd314..b5227ee 100644 --- a/shell/ev-pixbuf-cache.c +++ b/shell/ev-pixbuf-cache.c @@ -119,6 +119,7 @@ dispose_cache_job_info (CacheJobInfo *job_info, g_signal_handlers_disconnect_by_func (job_info->job, G_CALLBACK (job_finished_cb), data); + ev_job_queue_remove_job (job_info->job); g_object_unref (G_OBJECT (job_info->job)); job_info->job = NULL; } diff --git a/shell/ev-print-job.c b/shell/ev-print-job.c index ccc07e3..70f92fd 100644 --- a/shell/ev-print-job.c +++ b/shell/ev-print-job.c @@ -234,10 +234,10 @@ idle_print_handler (EvPrintJob *job) EvPageCache *page_cache; if (!job->printing) { - g_mutex_lock (EV_DOC_MUTEX); + ev_document_doc_mutex_lock (); ev_ps_exporter_begin (EV_PS_EXPORTER (job->document), job->temp_file); - g_mutex_unlock (EV_DOC_MUTEX); + ev_document_doc_mutex_unlock (); job->next_page = 0; job->printing = TRUE; return TRUE; @@ -248,16 +248,16 @@ idle_print_handler (EvPrintJob *job) #if 0 g_printerr ("Printing page %d\n", job->next_page); #endif - g_mutex_lock (EV_DOC_MUTEX); + ev_document_doc_mutex_lock (); ev_ps_exporter_do_page (EV_PS_EXPORTER (job->document), job->next_page); - g_mutex_unlock (EV_DOC_MUTEX); + ev_document_doc_mutex_unlock (); job->next_page++; return TRUE; } else { /* no more pages */ - g_mutex_lock (EV_DOC_MUTEX); + ev_document_doc_mutex_lock (); ev_ps_exporter_end (EV_PS_EXPORTER (job->document)); - g_mutex_unlock (EV_DOC_MUTEX); + ev_document_doc_mutex_unlock (); close (job->fd); job->fd = 0; diff --git a/shell/ev-sidebar-thumbnails.c b/shell/ev-sidebar-thumbnails.c index a22d70e..7945874 100644 --- a/shell/ev-sidebar-thumbnails.c +++ b/shell/ev-sidebar-thumbnails.c @@ -267,10 +267,10 @@ ev_sidebar_thumbnails_set_document (EvSidebarPage *sidebar_page, /* We get the dimensions of the first doc so that we can make a blank * icon. */ - g_mutex_lock (EV_DOC_MUTEX); + ev_document_doc_mutex_lock (); ev_document_thumbnails_get_dimensions (EV_DOCUMENT_THUMBNAILS (priv->document), 0, THUMBNAIL_WIDTH, &width, &height); - g_mutex_unlock (EV_DOC_MUTEX); + ev_document_doc_mutex_unlock (); loading_icon = ev_document_misc_get_thumbnail_frame (width, height, NULL); diff --git a/shell/ev-view.c b/shell/ev-view.c index b51082f..cca3947 100644 --- a/shell/ev-view.c +++ b/shell/ev-view.c @@ -537,21 +537,21 @@ highlight_find_results (EvView *view) g_return_if_fail (EV_IS_DOCUMENT_FIND (view->document)); find = EV_DOCUMENT_FIND (view->document); - - g_mutex_lock (EV_DOC_MUTEX); +#if 0 + ev_document_doc_mutex_lock (); results = ev_document_find_get_n_results (find, view->current_page); - g_mutex_unlock (EV_DOC_MUTEX); - + ev_document_doc_mutex_unlock (); +#endif for (i = 0; i < results; i++) { EvRectangle rectangle; GdkRectangle view_rectangle; guchar alpha; alpha = (i == view->find_result) ? 0x90 : 0x20; - g_mutex_lock (EV_DOC_MUTEX); + ev_document_doc_mutex_lock (); ev_document_find_get_result (find, view->current_page, i, &rectangle); - g_mutex_unlock (EV_DOC_MUTEX); + ev_document_doc_mutex_unlock (); doc_rect_to_view_rect (view, &rectangle, &view_rectangle); draw_rubberband (GTK_WIDGET (view), view->bin_window, &view_rectangle, alpha); @@ -686,11 +686,11 @@ ev_view_copy (EvView *ev_view) return; } - g_mutex_lock (EV_DOC_MUTEX); + ev_document_doc_mutex_lock (); text = ev_document_get_text (ev_view->document, ev_view->current_page, &ev_view->selection); - g_mutex_unlock (EV_DOC_MUTEX); + ev_document_doc_mutex_unlock (); clipboard = gtk_widget_get_clipboard (GTK_WIDGET (ev_view), GDK_SELECTION_CLIPBOARD); @@ -721,11 +721,11 @@ ev_view_primary_get_cb (GtkClipboard *clipboard, return; } - g_mutex_lock (EV_DOC_MUTEX); + ev_document_doc_mutex_lock (); text = ev_document_get_text (ev_view->document, ev_view->current_page, &ev_view->selection); - g_mutex_unlock (EV_DOC_MUTEX); + ev_document_doc_mutex_unlock (); gtk_selection_data_set_text (selection_data, text, -1); } @@ -1341,15 +1341,15 @@ update_find_status_message (EvView *view) { char *message; -// g_mutex_lock (EV_DOC_MUTEX); +// ev_document_doc_mutex_lock (); if (view->current_page == view->find_page) { int results; -// g_mutex_lock (EV_DOC_MUTEX); +// ev_document_doc_mutex_lock (); results = ev_document_find_get_n_results (EV_DOCUMENT_FIND (view->document), view->current_page); -// g_mutex_unlock (EV_DOC_MUTEX); +// ev_document_doc_mutex_unlock (); /* TRANS: Sometimes this could be better translated as "%d hit(s) on this page". Therefore this string contains plural cases. */ @@ -1360,10 +1360,10 @@ update_find_status_message (EvView *view) } else { double percent; - g_mutex_lock (EV_DOC_MUTEX); + ev_document_doc_mutex_lock (); percent = ev_document_find_get_progress (EV_DOCUMENT_FIND (view->document)); - g_mutex_unlock (EV_DOC_MUTEX); + ev_document_doc_mutex_unlock (); if (percent >= (1.0 - 1e-10)) { message = g_strdup (_("Not found")); } else { @@ -1372,7 +1372,7 @@ update_find_status_message (EvView *view) } } -// g_mutex_unlock (EV_DOC_MUTEX); +// ev_document_doc_mutex_unlock (); ev_view_set_find_status (view, message); // g_free (message); @@ -1420,15 +1420,15 @@ jump_to_find_result (EvView *view) GdkRectangle view_rect; int n_results; - g_mutex_lock (EV_DOC_MUTEX); + ev_document_doc_mutex_lock (); n_results = ev_document_find_get_n_results (find, view->current_page); - g_mutex_unlock (EV_DOC_MUTEX); + ev_document_doc_mutex_unlock (); if (n_results > view->find_result) { - g_mutex_lock (EV_DOC_MUTEX); + ev_document_doc_mutex_lock (); ev_document_find_get_result (find, view->current_page, view->find_result, &rect); - g_mutex_unlock (EV_DOC_MUTEX); + ev_document_doc_mutex_unlock (); doc_rect_to_view_rect (view, &rect, &view_rect); ensure_rectangle_is_visible (view, &view_rect); @@ -1451,7 +1451,7 @@ jump_to_find_page (EvView *view) page = page - n_pages; } - // g_mutex_lock (EV_DOC_MUTEX); + // ev_document_doc_mutex_lock (); has_results = ev_document_find_page_has_results (EV_DOCUMENT_FIND (view->document), page); if (has_results == -1) { @@ -1649,9 +1649,9 @@ ev_view_can_find_next (EvView *view) if (EV_IS_DOCUMENT_FIND (view->document)) { EvDocumentFind *find = EV_DOCUMENT_FIND (view->document); - g_mutex_lock (EV_DOC_MUTEX); + ev_document_doc_mutex_lock (); n_results = ev_document_find_get_n_results (find, view->current_page); - g_mutex_unlock (EV_DOC_MUTEX); + ev_document_doc_mutex_unlock (); } return n_results > 0; @@ -1665,9 +1665,9 @@ ev_view_find_next (EvView *view) EvDocumentFind *find = EV_DOCUMENT_FIND (view->document); page_cache = ev_document_get_page_cache (view->document); - g_mutex_lock (EV_DOC_MUTEX); + ev_document_doc_mutex_lock (); n_results = ev_document_find_get_n_results (find, view->current_page); - g_mutex_unlock (EV_DOC_MUTEX); + ev_document_doc_mutex_unlock (); n_pages = ev_page_cache_get_n_pages (page_cache); @@ -1697,9 +1697,9 @@ ev_view_find_previous (EvView *view) page_cache = ev_document_get_page_cache (view->document); - g_mutex_lock (EV_DOC_MUTEX); + ev_document_doc_mutex_lock (); n_results = ev_document_find_get_n_results (find, view->current_page); - g_mutex_unlock (EV_DOC_MUTEX); + ev_document_doc_mutex_unlock (); n_pages = ev_page_cache_get_n_pages (page_cache); diff --git a/shell/ev-window.c b/shell/ev-window.c index 749242d..e45d485 100644 --- a/shell/ev-window.c +++ b/shell/ev-window.c @@ -525,10 +525,10 @@ password_dialog_response (GtkWidget *password_dialog, password = ev_password_dialog_get_password (password_dialog); if (password) { - g_mutex_lock (EV_DOC_MUTEX); + ev_document_doc_mutex_lock (); ev_document_security_set_password (EV_DOCUMENT_SECURITY (ev_window->priv->password_document), password); - g_mutex_unlock (EV_DOC_MUTEX); + ev_document_doc_mutex_unlock (); } g_free (password); @@ -906,9 +906,9 @@ ev_window_cmd_save_as (GtkAction *action, EvWindow *ev_window) continue; */ - g_mutex_lock (EV_DOC_MUTEX); + ev_document_doc_mutex_lock (); success = ev_document_save (ev_window->priv->document, uri, NULL); - g_mutex_unlock (EV_DOC_MUTEX); + ev_document_doc_mutex_unlock (); if (success) break; @@ -1925,16 +1925,16 @@ find_bar_search_changed_cb (EggFindBar *find_bar, if (ev_window->priv->document && EV_IS_DOCUMENT_FIND (ev_window->priv->document)) { if (visible && search_string && search_string[0]) { - g_mutex_lock (EV_DOC_MUTEX); + ev_document_doc_mutex_lock (); ev_document_find_begin (EV_DOCUMENT_FIND (ev_window->priv->document), ev_page_cache_get_current_page (ev_window->priv->page_cache), search_string, case_sensitive); - g_mutex_unlock (EV_DOC_MUTEX); + ev_document_doc_mutex_unlock (); } else { - g_mutex_lock (EV_DOC_MUTEX); + ev_document_doc_mutex_lock (); ev_document_find_cancel (EV_DOCUMENT_FIND (ev_window->priv->document)); - g_mutex_unlock (EV_DOC_MUTEX); + ev_document_doc_mutex_unlock (); egg_find_bar_set_status_text (EGG_FIND_BAR (ev_window->priv->find_bar), NULL); -- cgit v0.9.1