Your message dated Tue, 04 Apr 2017 20:06:39 +0000
with message-id <e1cvuit-000akl...@fasolo.debian.org>
and subject line Bug#858681: Removed package(s) from unstable
has caused the Debian Bug report #295649,
regarding tk8.4: spinbox widget gets stuck in infinite repeat
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
295649: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=295649
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: tk8.4
Version: 8.4.9-1
Severity: normal

The bug is in /usr/lib/tk8.4/spinbox.tcl.  It's possible for a spinbox
button to get effectively "stuck down" so that its action gets invoked
repeatedly until the application is killed.

The <B1-Leave> event is used to start a repeating chain of AutoScan
invocations, each of which schedules the next one, continuing until
some other event (like a <ButtonRelease-1> or a <B1-Enter>) cancels the
next scheduled invocation, whose ID is stored in Priv(afterId).  The
assumption is that a <B1-Leave> event means the user dragged from inside
the widget to outside widget, which means the user must be trying to
select a bunch of text, which ought to continue scrolling as long as the
button is held down outside the widget.

But some window managers can cause a <B1-Leave> event without any
dragging and without any corresponding button release.  In my case,
olvwm allows me to select a window (to give it the focus) by clicking
on it while holding down the WMGrab modifier (which I have configured
to be Control, but I don't think that's relevant).  As a side effect,
this causes a <B1-Leave> event (I don't know why), but no button
release.  Therefore, a never-ending chain of AutoScan invocations is
launched, with no immediate possibility of a <ButtonRelease-1> or
a <B1-Enter> because the button is not even down.  This background
activity is invisible to the user because it has no effect on the
display.  However...

If the user then clicks on one of the spinbox buttons, the background
chain of AutoScan calls can collide with the chain of Invoke calls,
because both use Priv(afterId) to store the ID of the next scheduled
call.  The button is supposed to trigger its -command action repeatedly
as long as it is held down, and the button release triggers the
cancelation of the next call.  But because the ID is shared, the button
release can instead end up terminating the background chain of AutoScan
calls, leaving the chain of Invoke calls going forever.

To reproduce this effect, run olvwm (or olwm) and the following script:

#!/usr/bin/wish
proc foo {} { puts stderr "DEBUG foo" }
spinbox .foo -command foo
pack .foo

Click on the spinbox text area while holding down the WMGrab modifier
(which I think is Alt by default), then click on one of the buttons
once or twice.  You should see an endless stream of "DEBUG foo" on
stderr.  More clues can be gathered by adding debug statements in
/usr/lib/tk8.4/spinbox.tcl.

I think perhaps AutoScan needs to check whether a text selection is
actually in progress (initiated by a button press) rather than assume
that a <B1-Leave> implies that the button is currently down.  It
would probably also be a good idea to use separate variables to store
AutoScan's after ID and Invoke's after ID.

-- System Information:
Debian Release: 3.1
  APT prefers testing
  APT policy: (900, 'testing'), (700, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.9-2-686
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)

Versions of packages tk8.4 depends on:
ii  libc6                    2.3.2.ds1-20    GNU C Library: Shared libraries an
ii  libx11-6                 4.3.0.dfsg.1-10 X Window System protocol client li
ii  tcl8.4                   8.4.9-1         Tcl (the Tool Command Language) v8
ii  xlibs                    4.3.0.dfsg.1-10 X Keyboard Extension (XKB) configu

-- no debconf information


--- End Message ---
--- Begin Message ---
Version: 8.4.20-8+rm

Dear submitter,

as the package tk8.4 has just been removed from the Debian archive
unstable we hereby close the associated bug reports.  We are sorry
that we couldn't deal with your issue properly.

For details on the removal, please see https://bugs.debian.org/858681

The version of this package that was in Debian prior to this removal
can still be found using http://snapshot.debian.org/.

This message was generated automatically; if you believe that there is
a problem with it please contact the archive administrators by mailing
ftpmas...@ftp-master.debian.org.

Debian distribution maintenance software
pp.
Chris Lamb (the ftpmaster behind the curtain)

--- End Message ---
_______________________________________________
Pkg-tcltk-devel mailing list
Pkg-tcltk-devel@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-tcltk-devel

Reply via email to