View Ticket
Not logged in
Ticket Hash: 4f82d061eeeda25bf3bd52e225bfb1a67c6f8eb1
Title: BLT element closest causes an error
Status: Closed Type: Incident
Severity: Important Priority: Immediate
Subsystem: Resolution: Fixed
Last Modified: 2020-05-30 09:42:03
Version Found In: Eppur si muove
User Comments:
anonymous added on 2020-05-28 08:59:10:

I made a simplified example code here.

https://gist.github.com/yyamasak/7b9751437b2ea545ebe91b1167fd628b

In my real code, <Motion> event handler creates a tooltip which describes the details of the point nearest to the mouse pointer.

The above graph example works with Tcl/Tk 8.5 and rbc 0.1. But I couldn't make it work perfectly with BLT2.4 embedded in undrowish. It generates the following error when the mouse pointer enters the graph area.

bothelement "Element A" is hidden
    while executing
"$g element closest $x $y data $element"
    (procedure "on_motion" line 4)
    invoked from within
"on_motion .graph 315 334 {{Element A}}"
    (command bound to event)

chw added on 2020-05-28 23:13:18:
The problem should be fixed with check-in [0705c1ec9b].
Even seems it to be backported from 2.4z to the current
Debian 2.5.3 packages in Debian 9 and 10 by the
03-fedora-patch-2.diff so most likely is present in many
other distros, too. How depressing. No, I really don't
have the energy to forward these news to the maintainers.
Should you be unable to rebuild undroidwish from source,
let me know on which platform you'd like to test and I
will make a test build.

chw added on 2020-05-28 23:14:43:
For easier navigation: check-in [0705c1ec9b]

anonymous (claiming to be tm9233yy@gmail.com) added on 2020-05-29 08:08:45:
My platform is Windows 10 Pro 64-bit 1909.
I ran my script on undroidwish-e5dc71ed9d-win32.exe.

I checked out the trunk repository.
I tried to build jni/blt only. But it seems to be a long way to build it successfully. Could you make a test build for Windows 32bit?

chw added on 2020-05-29 13:46:01:
Win32 test build now available, download link:
http://www.ch-werner.de/AndroWish/undroidwish-14f012082f-win32.exe

anonymous (claiming to be tm9233yy@gmail.com) added on 2020-05-30 01:55:00:

My example code worked fine on your test build. Thank you.

As a next step, I extracted blt2.4 from undroidwish using 7-zip. And I copied it to my BAWT Tcl (v1.1.2 for Tcl/Tk 8.6.10) environment.

http://www.bawt.tcl3d.org/download.html

But when I tried to pack a graph widget, wish86.exe (x86) process crashed (windows error reported tk86.dll). Although this usage might not be allowed, I would appreciate if it can be fixed. When I used "Eppur si muove" version, it didn't crash.

cd c:/tcl/lib/blt2.4
load libBLT24.dll
source graph.tcl
blt::graph .g
pack .g

chw added on 2020-05-30 05:52:00:
Now that the problem is solved I'm closing this ticket.

Regarding BAWT you should rebuild BLT from the source tree for
yourself in the BAWT environment since I don't have the time
and resources to investigate on this.

chw added on 2020-05-30 06:03:50:
Reading the ticket's entries again, there is hope: I bet you've extracted
the BLT dll from a vanillawish, and here is a freshly built one for Win32
for testing:

 http://www.ch-werner.de/AndroWish/vanillawish-14f012082f-win32.exe

anonymous (claiming to be tm9233yy@gmail.com) added on 2020-05-30 09:42:03:
Yes, you are correct! And I tried vanillawish version and it worked.
Thank you very much!