mirror of
https://github.com/torlando-tech/pyxis.git
synced 2026-09-25 14:13:36 +00:00
Long-press to delete a conversation, then release: the row fired on_conversation_long_pressed (confirm dialog) AND, on release, on_conversation_clicked, navigating into the conversation and hiding the dialog. Root cause: LVGL 8.4 lv_indev.c indev_proc_release() (lines 973-980) sends LV_EVENT_CLICKED on every pointer release without scrolling, including long-press release — only LV_EVENT_SHORT_CLICKED is gated on long_pr_sent == 0. The row had both CLICKED and LONG_PRESSED bound. Selection is now bound to LV_EVENT_SHORT_CLICKED. Trackball selection is unaffected: the keypad path sends SHORT_CLICKED + CLICKED on a plain enter release and suppresses both when long_pr_sent is set (lv_indev.c:526-531, 678-692). No programmatic CLICKED sends exist in the app. This row is the only object with the CLICKED + LONG_PRESSED double-bind (bubble/textarea long-press sites are single-bound, verified). Contract pins: selection must bind SHORT_CLICKED, no CLICKED binding on the row, long-press delete binding unchanged. 184/184 contracts, tdeck + tdeck-release green.