Package: libx11-6 Version: 2:1.5.0-1 Severity: normal Tags: l10n Dear Maintainer, *** Please consider answering these questions, where appropriate ***
* What led up to the situation? Using XIM engine to input Japanese and Chinese caused events with bogus (uninitialized) timestamps in X events. [This seems to have been ignored by many applications and libraries in the past. However, starting gdk 2 and 3, I think, in the last 18 months or so, the timestamp check is severe and gdk library stores this bogus timestamp for further processing. If the bogus timestamp is well into the future, we have a problem. A typical symptom is that the pulldown menus are no longer usable in mozilla firefox and thunderbird. Please see the mozilla bugzilla entry: Using XIM with Firefox will cause firefox menu cannot popup correctly. https://bugzilla.mozilla.org/show_bug.cgi?id=787943 Also, an earlier report of the problem of seeing bogus time stamp here. The returning event of XNextEvent() has incorrect timestamp https://bugs.freedesktop.org/show_bug.cgi?id=39367 Some other programs definitely are affected: Should reject future timestamp. https://bugzilla.gnome.org/show_bug.cgi?id=654831 Although it is not clear from the exchanges in the above URL, I think the root cause of the problem is the problem reported here. * What exactly did you do (or not do) that was effective (or ineffective)? Typing Japanese character strings into thunderbird, and then switches to another gnome-termnal console and type some Japanese string there. Then switch back to the thunderbird compose window (for new message) and then series of XEvents with bogus timestamps are generated. Depending on the particular value (picked up from stack without initialization), GDK's event handling subsequently will be screwed up :-( * What was the outcome of this action? Timing related processing may be badly affected in some applications which depend on the (bogus) timestamp recorded in GDK library data structure. For example, pull down menu no longer can be displayed in thunderbird and firefox. * What outcome did you expect instead? Correct XEvent processing. Patch below to libx11 source of debian. Of course, you would want to remove fprintf lines, but if you want, that is where you can dump the incorrect time stamp values (before setting the proper values, that is). The path in imTrans.c has not been executed in my environment so far (testing for a few days now), but I include the patch for completeness's sake. diff --git a/modules/im/ximcp/imDefLkup.c b/modules/im/ximcp/imDefLkup.c index cf75919..d82c990 100644 --- a/modules/im/ximcp/imDefLkup.c +++ b/modules/im/ximcp/imDefLkup.c @@ -713,6 +728,12 @@ _XimCommitRecv( ev.keycode = 0; ev.state = 0; + ev.time = 0L; + ev.serial = LastKnownRequestProcessed(im->core.display); + /* FIXME */ + fprintf(stderr,"%s,%d: putback k press FIXED ev.time=0 ev.serial=%lu\n", __FILE__, __LINE__, ev.serial); + + XPutBackEvent(im->core.display, (XEvent *)&ev); return True; diff --git a/modules/im/ximcp/imTrans.c b/modules/im/ximcp/imTrans.c index 0ac08aa..45fab87 100644 --- a/modules/im/ximcp/imTrans.c +++ b/modules/im/ximcp/imTrans.c @@ -228,6 +228,12 @@ _XimTransInternalConnection( kev->display = im->core.display; kev->window = spec->window; kev->keycode = 0; + /* FIXME */ + kev->time = 0L; + kev->serial = LastKnownRequestProcessed(im->core.display); + fprintf(stderr,"%s,%d: putback FIXED kev->time=0 kev->serial=%lu\n", __FILE__, __LINE__, kev->serial); + + XPutBackEvent(im->core.display, &ev); XFlush(im->core.display); spec->is_putback = True; *** End of the template - remove these lines *** -- System Information: Debian Release: wheezy/sid APT prefers testing APT policy: (500, 'testing'), (500, 'stable') Architecture: i386 (i686) Kernel: Linux 2.6.39-2-686-pae (SMP w/1 CPU core) Locale: LANG=ja_JP.UTF-8, LC_CTYPE=ja_JP.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages libx11-6 depends on: ii libc6 2.13-35 ii libx11-data 2:1.5.0-1 ii libxcb1 1.8.1-1 ii multiarch-support 2.13-35 libx11-6 recommends no packages. libx11-6 suggests no packages. -- no debconf information -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org