I have a menu-popup which hides some buttons. This menu-popup contains buttons which close this popup when they receive an LV_EVENT_PRESSED.
When the popup disappears, the finger is still on the touchscreen, so the underlying button (which is no longer hidden) immediately receives an LV_EVENT_PRESSED.
This feels very strange, because the user never intended to press the (hidden) button. All the user wanted to do was to choose some menu-entry from the popup, which in turn removes this popup and unhides the (hidden) button.
Hmm… is there a possibility that your touchscreen driver doesn’t implement debouncing? You could add some printf statements in read_cb to see if the state is changing there.