[latexila] Backward search: check that evince is the default document viewer



commit eebfd9bdeaed8074c9defd84f16c6de9e7ef7f4b
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Fri Jun 7 13:03:55 2013 +0200

    Backward search: check that evince is the default document viewer
    
    If evince is not the default document viewer for PDF files, the
    backward search with synctex is now disabled.
    
    There was a bug with the build tools: when opening a PDF file, the
    document was always opened by evince. And if the default document viewer
    was not evince, the document was also opened with the other document
    viewer. So the PDF file was opened twice.
    
    Thanks to Richard Garavuso for the bug report.

 src/utils.vala |   22 +++++++++++++++++++++-
 1 files changed, 21 insertions(+), 1 deletions(-)
---
diff --git a/src/utils.vala b/src/utils.vala
index d47601b..00d122b 100644
--- a/src/utils.vala
+++ b/src/utils.vala
@@ -291,13 +291,33 @@ namespace Utils
             return;
 
         // Backward search for PDF documents.
-        if (get_extension (uri) == ".pdf")
+        if (get_extension (uri) == ".pdf" &&
+            default_document_viewer_is_evince (uri))
         {
             Synctex synctex = Synctex.get_default ();
             synctex.create_evince_window (uri);
         }
     }
 
+    private bool default_document_viewer_is_evince (string uri)
+    {
+        File file = File.new_for_uri (uri);
+        AppInfo app;
+
+        try
+        {
+            app = file.query_default_handler ();
+        }
+        catch (Error e)
+        {
+            warning ("Impossible to know if evince is the default document viewer: %s",
+                e.message);
+            return false;
+        }
+
+        return app.get_executable ().contains ("evince");
+    }
+
 
     /*************************************************************************/
     // UI stuff


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]