The key of this bug is: Just after hide/destroy a window where pointer pressed (but not released), when pointer button release, the pointer position within/outside current process window area. If pointer position within current process window area, then everything works fine. If pointer position outside current process window area, then bug appears. I think maybe this is a GTK bug, or Vision2 bug (have to call something to release pointer capture before hide/destroy window?). After hide/destroy a window, if first call {EV_WIDGET}.enable_capture on next focused window (MAIN_WINDOW in the demo project), then {EV_WIDGET}.disable_capture on the window immediately. The bug disappears. So the hack of this bug is call following feature just after dialog hidden/destroyed. enable_disable_capture_for_next_focused_widget -- Hack for bug#13108 local l_env: EV_ENVIRONMENT do create l_env l_env.application.focus_in_actions.extend_kamikaze (agent (a_widget: EV_WIDGET) require a_widget_not_void: a_widget /= Void do if not a_widget.is_destroyed and then a_widget.is_displayed then a_widget.enable_capture a_widget.disable_capture end end) end