I noted some screwy problems with evince 0.8.3: odd behavior from the print
dialog was the one that really tipped me off to the fact that there was a
large problem. Note that evince is still using the gtk print system; it
doesn't yet seem to want to work correctly with the newer GNOME print
system, which is built on top of GTK+'s.
The root cause of the problem as best as I could determine was a failure on
the part of the program to inform GTK and Gdk that it (evince) was
multi-threaded. The fix (patch attached) is trivial:
---------- cut & paste text below (but not including) this line ----------
--- evince-0.8.3.ORIGINAL/shell/ev-window.c 2007-07-04
10:55:39.000000000 -0400
+++ evince-0.8.3.FINAL/shell/ev-window.c 2007-11-07
13:42:46.000000000 -0500
@@ -2046,6 +2046,12 @@
if (error) {
GtkWidget *dialog;
+
+ /*
+ LJM 07-11-2007
+ make GTK+, GDK aware of our theadedness
+ */
+ GDK_THREADS_ENTER();
dialog = gtk_message_dialog_new (GTK_WINDOW (window),
GTK_DIALOG_MODAL,
@@ -2057,6 +2063,12 @@
gtk_dialog_run (GTK_DIALOG (dialog));
gtk_widget_destroy (dialog);
+
+ /*
+ LJM
+ Corresponds with the GDK_THREADS_ENTER() above
+ */
+ GDK_THREADS_LEAVE();
}
}
---------- cut & paste text above (but not including) this line ----------
Note that version 0.8.0 had the same problem.
Since applying this patch && rebuilding evince I haven't had a problem with
it.
- Larry
--
http://linuxfromscratch.org/mailman/listinfo/blfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page