Disabling Scroll Wheel Over PopupMenu on Raspberry Pi (ChatGPT's Advice)

I’m trying to disable the mouse wheel scrolling of a Popupmenu that occurs on Raspberry Pi but not MacOS. This scrolling happens without clicking on the control and can lead to users inadvertently changing the selected value in the PopupMenu.

I posed the question to ChatGPT and received the suggestion below. It refers to a Handled Property of an Event Handler that doesn’t work for me. I’m using Xojo 2023R3 where the Handled property does not exist according to the error message that I received.

By default ChatGPT does not show where it scraped the information it presents as answers. But does anybody here know where it might have come up with this idea?

From ChatGPT:

In Xojo, setting Handled to True within an event handler serves to indicate that the event has been fully handled and should not be processed further by the control or by the Xojo framework. This mechanism allows you to intercept events and modify their default behavior according to your application’s requirements.

Here’s a more detailed explanation of how setting Handled to True works in Xojo:

  1. Event Propagation: When an event occurs (e.g., a mouse click, a key press, etc.), Xojo propagates that event to the relevant control or object in your application. Each control or object has specific event handlers that respond to these events.

  2. Default Behavior: By default, when an event occurs, Xojo executes the default behavior associated with that event. For example, when a user clicks a button, the button’s Action event is triggered, causing the button to perform its default action (e.g., running a specified method).

  3. Custom Behavior: Sometimes, you may want to override or modify the default behavior of an event. You can achieve this by implementing an event handler for that event and writing custom code to handle the event according to your needs.

  4. Handled Property: Within an event handler, you have access to a special property called Handled, which is a Boolean variable. By setting Handled to True within an event handler, you indicate to Xojo that you have fully handled the event and that Xojo should not perform its default processing for that event.

  5. Preventing Default Behavior: When you set Handled to True within an event handler, Xojo stops the event from propagating further and prevents the default behavior associated with that event from occurring. This allows you to intercept the event and implement your custom logic without interference from Xojo’s default behavior.

  6. Event Cascading: If multiple event handlers are involved (e.g., if a parent control and a child control both have event handlers for the same event), setting Handled to True in one event handler prevents the event from reaching subsequent event handlers in the event chain.

In summary, setting Handled to True in Xojo’s event handlers gives you fine-grained control over event processing and allows you to customize the behavior of your application’s controls and objects to meet your specific requirements.