From: SourceForge.net <no...@so...> - 2010-12-07 23:04:26
|
Bugs item #2917688, was opened at 2009-12-19 08:48 Message generated for change (Settings changed) made by jenglish You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112997&aid=2917688&group_id=12997 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: 88. Themed Tk Group: obsolete: 8.5.8 >Status: Closed Resolution: Fixed Priority: 9 Private: No Submitted By: Will Duquette (duquette) Assigned to: Joe English (jenglish) Summary: ttk::notebook pages don't take focus when tab is selected Initial Comment: On Mac OS X 10.5.8, using ActiveTcl 8.5.8, I see the following peculiar behavior; a script that shows the problem is attached. The script creates a ttk::notebook with two tabs; each tab contains a text widget. Do the following to reproduce the error: * Start the script. * Click in the text widget on tab Text 1. It will take focus. * Click on tab Text 2. * The text widget on tab Text 2 does not take the focus (which is OK). * Type "Hello, world". * Click on tab Text 1. * You'll see "Hello, world" in the text widget on tab Text 1. In other words, the first text widget is retaining the focus even after it's hidden, and is still responding to keyboard events. Per Joe English, this isn't what's supposed to happen. ---------------------------------------------------------------------- Comment By: Don Porter (dgp) Date: 2010-08-10 11:10 Message: please backport for 8.5.9 ---------------------------------------------------------------------- Comment By: Joe English (jenglish) Date: 2009-12-25 11:11 Message: Fixed in CVS now. ---------------------------------------------------------------------- Comment By: Joe English (jenglish) Date: 2009-12-21 17:03 Message: Also: focus logic in ttk::notebook::ActivateTab is not correct. Behavior is currently specified as: # If $tab was already the current tab, set the focus to the # notebook widget. Otherwise, set the focus to the first # traversable widget in the pane. The behavior is that the # notebook takes focus when the user selects the same tab # a second time. This mirrors Windows tab behavior. # This is wrong on (at least) two counts: (2) this doesn't say what to do when there is no traversable widget in the newly selected pane (currently it just leaves focus where it was, which is Obviously Wrong if the focus happens to be in the previously selected tab); and (2) the notebook widget should *keep* the focus if it already has it when switching tabs (Windows, Gtk+, and Qt all work this way; OO.o and Mozilla/Firefox toolkits do not appear to ever set focus to the notebook itself; have not checked other toolkits). ---------------------------------------------------------------------- Comment By: Joe English (jenglish) Date: 2009-12-21 16:22 Message: Proximate cause of the problem: [ttk::notebook::ActivateTab] calls [ttk::focusFirst] to determine which subwidget should get the focus when a tab is first selected; this in turn calls [ttk::takesFocus], which assumes that all relevant traversable widgets have a nonempty "-takefocus" option. This is not the case for [text] and other core widgets. While investigating this problem turned up a number of other defects; not fixed yet. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112997&aid=2917688&group_id=12997 |