You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Previous design had widget-specific callbacks (button signals, scroll
signals) scattered across different widgets, each managing its own
closure storage.
Now all widgets use a unified callback mechanism:
- Single callback signature: (widget, event, closure) → result
- Closure stored in twin_widget_t.callback_data
- Button clicks emit TwinEventButtonSignalDown event
- Applications register callbacks via twin_widget_set_callback()
Removed obsolete scroll signal typedefs and widget-specific callback
fields. Custom widgets and button handlers now use the same dispatch
pattern.
Button event types now correctly reflect their semantics:
- TwinEventButtonSignalDown: emitted on button press
- TwinEventButtonSignalUp: emitted on button release (click completion)
Applications updated to listen for ButtonSignalUp instead of Down,
matching the GTK convention where click callbacks trigger on release.
0 commit comments