bugLet me illustrate... - Bugs: bug #16847, Ctrl-Tab in wxxrc notebook with...


You are not allowed to post comments on this tracker with your current authentication level.

bug #16847: Ctrl-Tab in wxxrc notebook with pushbuttons

Submitted by:  Greg Chicares <chicares>
Submitted on:  Wed 14 Jun 2006 05:21:01 PM UTC  
Category:  GUI Severity:  3 - Normal
Item Group:  wxwindows library defect Status:  Fixed
Privacy:  Public Assigned to:  None
Open/Closed:  Closed

( Jump to the original submission)

Fri 09 Aug 2013 04:50:50 PM UTC, comment #8:

Tested and confirmed this defect is fixed; the behavior is no longer observed with lmi-20130719T1951Z and wx-2.9.3. 'Ctrl-Tab' works as expected regardless of where the focus is.

Kimberly Murphy <kmmurphy>
Project Member
Fri 28 Jul 2006 11:52:30 PM UTC, comment #7:

The solution (2) is now implemented in wx cvs HEAD, that is any top level window containing exactly one book-like control[1] now allows the user to press [Shift-]Ctrl-Tab and/or Ctrl-PageUp/Down to change the page independently of where the focus currently is.

[1] Defined as control whose virtual wxWindow::HasMultiplePages() method returns true: wxBookCtrl (and hence all derived classes including wxNotebook) already overrides it but having a virtual method also allows a user-defined notebook-like class to have notebook-like behaviour.

Vadim Zeitlin <zeitlin>
Project Member
Fri 21 Jul 2006 12:42:25 AM UTC, comment #6:

Sorry, I was wrong and you were correct. It looks like your expectations are indeed reasonable: I've just realized that the standard Windows property page dialog does allow you to use Ctrl-Tab even when the focus is on the buttons and not inside the notebook itself.

So we probably should do this as well, the only question is how. The obvious choice is to have

1a) separate wxDialogWithPages class


1b) a wxDIALOG_WITH_PAGES style

which would indicate the need to handle page navigation for the dialog itself. Another one, more convenient to use, would be to

2) detect automatically if the dialog has a single notebook

I think I'm going to implement (2) but it's not very clear how to do it yet, I'll need to think more about it.

Vadim Zeitlin <zeitlin>
Project Member
Fri 21 Jul 2006 12:00:47 AM UTC, comment #5:

> Ctrl-Tab should cycle over notebook pages when the focus is
> inside the notebook, of course. It can't work if the focus
> is on a button (or any other control) outside the notebook

It may help to draw a picture:

| [Tab] [Tab] [Tab] ... |
| |
| Notebook |
| |
| [OK] | [Cancel] | [Help] |

The pushbuttons at the bottom are indeed outside the notebook.
Okay, ├ža explique, but what's the best way to do this so that
keyboard navigation works as desired? I see these options:

(1) Do nothing. Live with the problem. Most end users don't use
the keyboard anyway, and in fact I don't think this bothers
anyone but me. Maybe it doesn't bother anyone else in the whole
wx community, either: as Wendy said, samples/xrc/rc/controls.xrc
uses this same technique. And it avoids duplicating all those
pushbuttons on every notebook page.

(2) Duplicate the pushbuttons on every notebook page. I don't
even know whether that would work. Duplication is generally a
Bad Thing anyway.

(3) Intercept navigation events. Yick.

(4) Re-parent the pushbuttons. Seems worse than (3).

Is there any other way? I'd really like to stop using (1), both
because it does bother me, and also because I think it might
contribute to worse keyboard-navigation problem with alternative
wxBookCtrl classes, as I just mentioned on the mailing list. And
I think wxTreebook in particular might be preferred by users
once they see what it can do. I see it as the right solution to
a problem that many msw applications address by putting a nasty
"More..." or "Details..." pushbutton on a notebook page.

Greg Chicares <chicares>
Project Administrator
Thu 29 Jun 2006 10:31:54 PM UTC, comment #4:

I'm sorry but there seems to be a misunderstanding here: Ctrl-Tab should cycle over notebook pages when the focus is inside the notebook, of course. It can't work if the focus is on a button (or any other control) outside the notebook which is what happens in Wendy's description. So IMHO everything works as expected and for me there is no bug here and it should be closed as "Invalid".

Vadim Zeitlin <zeitlin>
Project Member
Tue 27 Jun 2006 03:02:57 PM UTC, comment #3:

I observe the behavior Greg reports in the 'lmi' and 'skeleton'
trunks, as well as samples/xrc, but samples/controls doesn't
have the 'OK' pushbutton that I think Greg is referring to.
To reproduce the behavior in samples/xrc, do this:

- select the 'Controls Example' toolbar icon
- 'Ctrl-tab' to the 'wxButton' panel
- hit tab key three times to focus the bottom 'OK' push button
- 'Ctrl-tab' changes focus to the first 'OK' push button instead
of the next panel
- 'Ctrl-tab' again will change focus to the next panel, which is
the expected behavior of the preceding step

Wendy Boutin <wboutin>
Tue 27 Jun 2006 02:06:27 PM UTC, comment #2:

Wendy--Can you reproduce this in the 'skeleton' and 'lmi' trunks?
If so, can you modify wx/samples/xrc to reproduce it?

Greg Chicares <chicares>
Project Administrator
Tue 27 Jun 2006 01:43:54 PM UTC, comment #1:

In both samples/controls and samples/xrc Ctrl-Tab seems to work as expected so there must be something we're missing here. Is your button special in any way? Thanks!

Vadim Zeitlin <zeitlin>
Project Member
Wed 14 Jun 2006 05:21:01 PM UTC, original submission:

I believe Ctrl-Tab should always advance through notebook tabs
with wxmsw. However, when a pushbutton has focus, that keystroke
combination advances to the next control that accepts focus on
the current notebook tab.

There's a similar situation with Ctrl-Shift-Tab, which should
move in the same fashion but in the opposite direction.

I observe this behavior with wx-2.5.4, and also with wx-2.7
(actually, the 20060605 overnight snapshot that we're using
for production).

Please let me know if you can't quickly reproduce this with
an appropriate program from wxWidgets/samples/ , and I'll try
to find such a sample. If I can't, then it must be something
I'm doing, and I'll give you precise instructions for
duplicating it.

Greg Chicares <chicares>
Project Administrator


No files currently attached


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -email is unavailable- added by kmmurphy (Posted a comment)
  • -email is unavailable- added by wboutin (Updated the item)

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.




    Follow 10 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2013-08-09 kmmurphy StatusReady For Test => Fixed
        Assigned tokmurphy => None
        Open/ClosedOpen => Closed
    2007-06-22 wboutin Assigned tozeitlin => kmurphy
        Carbon-Copy- => Added -email is unavailable-
    2006-07-28 zeitlin StatusIn Progress => Ready For Test
    2006-06-27 wboutin StatusNeed Info => In Progress
        Assigned towboutin => zeitlin
    2006-06-27 chicares StatusNone => Need Info
        Assigned tozeitlin => wboutin

    Back to the top

    Powered by Savane 3.3