[Top][All Lists]

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

[Bug-AUCTeX] 11.87; TeX-evince-sync-view confuses window managers with b

From: Reuben Thomas
Subject: [Bug-AUCTeX] 11.87; TeX-evince-sync-view confuses window managers with bad timestamps
Date: Fri, 11 Jan 2013 03:27:07 +0000

Remember to cover the basics, that is, what you expected to happen and
what in fact did happen.

Be sure to consult the FAQ section in the manual before submitting
a bug report.  In addition check if the bug is reproducable with an
up-to-date version of AUCTeX.  So please upgrade to the version
available from http://www.gnu.org/software/auctex/ if your
installation is older than the one available from the web site.

If the bug is triggered by a specific (La)TeX file, you should try
to produce a minimal sample file showing the problem and include it
in your report.

Your bug report will be posted to the AUCTeX bug reporting list.

I've just tracked down a really bizarre window manager problem to
TeX-evince-sync-view: I noticed that when launching evince using this
command (and only then), Alt+Tab stopped working on my GNOME 3 desktop.
I discovered by instrumenting the Alt+Tab extension I use that this was
because Mutter (the Window manager) was confused by a timestamp on an X
event that was much larger than the current X clock time (which is ms
since X server was started). To cut a long story short, I finally
discovered that the time value in the bogus time stamps was "the same"
as that produced by float-time. This explains why I only had the problem
on one machine out of two: on the other one, the X server timestamps
were bigger numbers than the real time in seconds, because the X server
had been running sufficiently long.

There's a comment in the code that says:

                   ;; FIXME: Evince wants a timestamp as UInt32, but POSIX time
                   ;; is too large for emacs integers on 32 bit systems.  Emacs
                   ;; 24.2 will allow providing DBUS ints as floats, and this
                   ;; dbus version will be identifiable by its new variables
                   ;; `dbus-compiled-version' and `dbus-runtime-version'.  But
                   ;; it seems providing just 1 as timestamp has no negative
                   ;; consequences, anyway.

As far as I can tell, the first part is incomplete: the timestamp
required is specifically an X timestamp, as something (Evince? DBus?)
uses it to set the timestamp of an X event (at least, when Emacs and
Evince are running on X). However, the second part gives a solution: if
I change the code so that it always passes 1 as the timestamp,
everything works fine, because the first time the WM examines the
window, it updates the timestamp to the current time (whereas when it
finds a timestamp in the future it cautiously invokes some workaround,
with the result that things stop working).

There are obviously things going on here that I don't understand (I know
nothing about X, DBus, or Evince internals), but all I can say is that
the time argument is definitely being bogusly used as an X timestamp,
which causes really weird behavior, and that passing 1 instead seems, as
intimated by the comment, to cause no problem whatsoever.

Emacs  : GNU Emacs 24.1.1 (x86_64-pc-linux-gnu, GTK+ Version 2.24.12)
 of 2012-09-22 on batsu, modified by Debian
Package: 11.87

current state:
 AUCTeX-date "2012-11-30"
 window-system 'x
 LaTeX-version "2e"
 TeX-style-path '("/var/lib/auctex/emacs24/" 
"/home/rrt/.emacs.d/auctex/style" "auto"
 TeX-auto-save nil
 TeX-parse-self nil
 TeX-master t
 TeX-command-list '(("TeX" "%(PDF)%(tex) %`%S%(PDFout)%(mode)%' %t" TeX-run-TeX 
                     (plain-tex-mode texinfo-mode ams-tex-mode) :help "Run 
plain TeX")
                    ("LaTeX" "%`%l%(mode)%' %t" TeX-run-TeX nil (latex-mode 
doctex-mode) :help
                     "Run LaTeX")
                    ("Makeinfo" "makeinfo %t" TeX-run-compile nil 
(texinfo-mode) :help
                     "Run Makeinfo with Info output")
                    ("Makeinfo HTML" "makeinfo --html %t" TeX-run-compile nil 
                     :help "Run Makeinfo with HTML output")
                    ("AmSTeX" "%(PDF)amstex %`%S%(PDFout)%(mode)%' %t" 
TeX-run-TeX nil
                     (ams-tex-mode) :help "Run AMSTeX")
                    ("ConTeXt" "texexec --once --texutil %(execopts)%t" 
TeX-run-TeX nil
                     (context-mode) :help "Run ConTeXt once")
                    ("ConTeXt Full" "texexec %(execopts)%t" TeX-run-TeX nil 
(context-mode) :help
                     "Run ConTeXt until completion")
                    ("BibTeX" "bibtex %s" TeX-run-BibTeX nil t :help "Run 
                    ("Biber" "biber %s" TeX-run-Biber nil t :help "Run Biber")
                    ("View" "%V" TeX-run-discard-or-function t t :help "Run 
                    ("Print" "%p" TeX-run-command t t :help "Print the file")
                    ("Queue" "%q" TeX-run-background nil t :help "View the 
printer queue"
                     :visible TeX-queue-command)
                    ("File" "%(o?)dvips %d -o %f " TeX-run-command t t :help
                     "Generate PostScript file")
                    ("Index" "makeindex %s" TeX-run-command nil t :help "Create 
index file")
                    ("Check" "lacheck %s" TeX-run-compile nil (latex-mode) :help
                     "Check LaTeX file for correctness")
                    ("Spell" "(TeX-ispell-document \"\")" TeX-run-function nil 
t :help
                     "Spell-check the document")
                    ("Clean" "TeX-clean" TeX-run-function nil t :help
                     "Delete generated intermediate files")
                    ("Clean All" "(TeX-clean t)" TeX-run-function nil t :help
                     "Delete generated intermediate and output files")
                    ("Other" "" TeX-run-command t t :help "Run an arbitrary 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]