2014 Január 16, Csütörtök 14:43 GMT dátummal, Caolán McNamara <caol...@redhat.com> ezt írta: > On Wed, 2014-01-15 at 14:25 +0000, Tamas Zolnai wrote: > > Main problem is that the 'Help' and the 'Extensions' buttons on the > > Start Center are in different GtkBoxes and so arrow key traversal > > doesn't work between them. > > So, actually containers are "invisible" to cursor traversal. So on > pressing "right" when the focus is on the Help button the Extension > button *is* considered as a candidate but is rejected because it has its > WB_GROUP bit set to state it's the start of a new group. > > The WB_GROUP bit on the button comes about because the containers are > not "invisible" to the PushButton *ctor* which checks if the preceding > window of its parent is a button and if it then defaults to grouping > with it and if it is not a button defaults to setting itself as the > start of a new group. > > So the trick to toggle off the WB_GROUP bit of the second button so that > when the "transparent" cursor traversal happens then it will allowed > to be part of the group starting with "Help" > > I've done that now with > http://cgit.freedesktop.org/libreoffice/core/commit/?id=9290998442166fae70431ee98aa9eb019bad24b3 > nBits &= ~WB_GROUP unsets the WB_GROUP bit and nBits |= WB_NOGROUP sets > the nogroup bit which suppresses vcl from resetting WB_GROUP again > > > Second I pick up "member_of" property and > > Window::SetAccessibleRelationMemberOf() method which is used not for > > only RadioButtons but for other elements too. For example: > > http://opengrok.libreoffice.org/xref/core/cui/source/dialogs/hlinettp.cxx#93 > > (an image button related with a fixed text). > > The manual calls of "SetAccessibleRelationMemberOf" etc are basically a > pre-widget layout hack to fake a hierarchy for accessibility. e.g. to > manually set all the widgets that visually appear to be subelements > under a FixedLine title as children of the fixedline. That generally all > goes away with the widget layout in favour of a VclFrame that contains > those widgets and we then delete the "SetAccessibleRelationMemberOf" > calls. (Similarly the manual SetAccessibleRelationLabeledBy stuff is > either a simple Mnemonic widget target for a label (or entered into > the .ui a11y section if the label isn't a "true" label but something > like a checkbox and doesn't have the feature to set a mnemonic target) > > > So secondly that came in my mind to modify the corresponding > > Window::ImplDlgCtrl() method to take account of member_of relation in > > case of arrow keys. > > ImplDlgDtrl is so horribly complicated, as is the rest of that family of > functions that I'd rather not touch them as much as possible :-) > > C. Ok, thanks for all this information and the commit. :)
Tamás _______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice