TPageControl: TabStop, TabSwitch Focus and Keyboard TabSwitch
Original Reporter info from Mantis: biloky @biloky
-
Reporter name: Joeny Ang
Original Reporter info from Mantis: biloky @biloky
- Reporter name: Joeny Ang
Description:
All Widgetsets:
- When TabStop = False, it should not receive focus
- nboKeyboardTabSwitch not implemented properly (switching tab via Ctrl-Tab/
Ctrl-Shift-Tab)
Gtk2:
- when switching page, focus should be on the first control of the page
- TComboBox (csDropDownList) does not trigger onEnter/onExit when
gtk_widget_focus_child() is called. This needs to be fixed in order to
address the issue below
- switching to a page with a TComboBox, TRadioGroup or TCheckGroup will move
focus to the corresponding combobox, radiogroup or checkgroup. This happens
only when switching using the mouse, not when using SelectNextPage().
Changes made by patch:
1. TabStop issue (fixed GTK2 and Win32)
- added TWSWinControl.SetTabStop() to be overriden by widgetsets, called
by TWinControl.CMTabStopChanged() when TabStop is changed.
2. Keyboard TabSwitch issue
- removed TCustomTabControl.KeyDown() function and moved implementation to
TWinControl.DoKeyDownBeforeInterface(). This will look for the first
tab control parent of the focused control and process the keys.
3. TabSwitch Focus issue (Gtk2)
- caused by issue#20493 workaround in GtkWSNotebook_SwitchPage() and
GtkWSNotebook_AfterSwitchPage(). Modified workaround (see unit1.pas
source notes)
Steps to reproduce:
Test projects:
\- Project1: tab focus test<br/>
- try switching back and forth between pages 1 & 2 using the mouse. Focus
will go to the combobox on page 2.
- Project2: gtk_widget_focus_child() test (gtk2)
- using gtk_widget_focus_child(), the combobox (list) does not trigger
onEnter/onExit
- Project3: keyboard tabswitch test
Mantis conversion info:
- Mantis ID: 37942
- Build: r64032
- Version: 2.1 (SVN)
- Monitored by: » AntonK (Anton Kavalenka)