If the F1 key is pressed in a child object (an XbpSLE for example),
and the ivar :helplink is used, the event will be passed on to the
parent object. This behaviour is incorrect because when the parent
also has an XbpHelpLabel object assigned to its :helpLing instance
variable, help will be requested several times. Depending on the
usage of the :helpLink instance variable, this problem may cause
the same help page to be displayed, irrespective of where the F1
key was actually pressed. This problem makes it impossible to
implement context-sensitive help using the standard help mechanism.
|
Add code to your event loop that adds custom processing for the
keyboard event corresponding to the F1 key-press. In order to
prevent xbeP_HelpRequest from being forwarded to the Xbase PART's
parent object, this event must not be passed to the generic event
handler of the Xbase PART (:handleEvent()).
(...)
DO WHILE nEvent <> ...
nEvent := AppEvent( @mp1, @mp2, @oXbp )
// *** WORK-AROUND BEGIN ***
// Prevent default event processing from processing
// F1 key-press. Manually generate associated
// xbeP_HelpRequest event.
IF nEvent == xbeP_Keyboard .AND. mp1 == xbeK_F1
oXbp:handleEvent( xbeP_HelpRequest, NIL, NIL )
LOOP
ENDIF
// Ignore standard xbeP_HelpRequest messages
// to disable default processing
IF nEvent == xbeP_HelpRequest
LOOP
ENDIF
// *** WORK-AROUND END ***
oXbp:handleEvent( nEvent, mp1, mp2 )
(...)
ENDDO
(...)
A fix for this problem will be published in Public Fix Level (PFL)
182306. Please visit www.alaska-software.com (support section) for
further information.
|