Ticket UUID: | 539776b62c7de320a215f0c574c0c0647f2407ed | |||
Title: | Application hangs when navigating table cells via arrow keys | |||
Type: | Bug | Version: | 6.0 | |
Submitter: | anonymous | Created on: | 2018-01-14 02:23:37 | |
Subsystem: | tklib :: tablelist | Assigned To: | nemethi | |
Priority: | 5 Medium | Severity: | Severe | |
Status: | Closed | Last Modified: | 2018-10-12 16:45:35 | |
Resolution: | Fixed | Closed By: | nemethi | |
Closed on: | 2018-10-12 16:45:35 | |||
Description: |
Observed on MacOS 10.11.6 Steps to reproduce: Alter the tablelist widget in the tileWidgets.tcl file included in the demo directory by adding the option -selecttype cell. Navigate through the table using arrow keys. When the focus lands on a cell in the first column (which is non-editable) the application hangs. Clicking on a cell in the first column does not cause any problems and tab navigation skips over the first column, so the behavior is only observed when navigating with arrow keys. Interestingly, the same steps repeated on the embeddedWindows.tcl file or the style.tcl file do not result in this behavior. | |||
User Comments: |
nemethi added on 2018-10-11 17:33:31:
Sorry, "repeated" -> "reported". nemethi added on 2018-10-11 15:42:25: Unfortunately, up to now I haven't been aware of this ticket. The repeated behavior happens only with Tablelist_tile, if the current theme is "aqua" and the first column is right-aligned. Under these circumstances the procedure tablelist::seeCell, implemented in the file tablelistWidget.tcl, triggers an endless while loop. To eliminate it, we have to take into account some internal details related to the way the header labels for the "aqua" theme are placed in their parent frame. Here is the bug-fix: Locate the line starting with "set rX": set rX [expr {$lX + [winfo width $data(hdrTxtFrmLbl)$col] - 1}] Just below this line insert the following code: if {[string compare [getCurrentTheme] "aqua"] == 0} { incr lX if {$col == 0} { incr lX } } This patch will be contained in the next Tablelist release 6.4. |