diff --git a/g2o/events.py b/g2o/events.py index 3ec28a9..5930c20 100644 --- a/g2o/events.py +++ b/g2o/events.py @@ -28,9 +28,16 @@ def callEvent(evtName : str, **kwargs : dict): g2o.callEvent('testEvt', name = 'Diego') ``` """ + + isEventCancelled = False + if evtName in eventList: for event in eventList[evtName]: - event['function'](**kwargs) + result = event['function'](**kwargs) + if result != None: + isEventCancelled = not result + + return isEventCancelled def addEvent(name : str): """ diff --git a/src/events/sqevents.cpp b/src/events/sqevents.cpp index df30bf3..e95ac3c 100644 --- a/src/events/sqevents.cpp +++ b/src/events/sqevents.cpp @@ -33,8 +33,11 @@ void callEvent(const char* eventName, py::dict kwargs) { try { - g2o.attr("callEvent")(eventName, **kwargs); - + bool result = g2o.attr("callEvent")(eventName, **kwargs).cast(); + if (result) + { + Sqrat::RootTable().GetFunction("cancelEvent").Execute(); + } } catch (py::error_already_set &e) {