reuse previously processed lock value, call callback outside model lock

This commit is contained in:
gullradriel
2026-02-10 02:04:18 +01:00
parent 2b1a010ef4
commit 9e70c9fbd4
+8 -4
View File
@@ -404,6 +404,8 @@ bool protopirate_view_receiver_input(InputEvent* event, void* context) {
receiver->view, ProtoPirateReceiverModel * model, { lock = model->lock; }, false);
if(lock == ProtoPirateLockOn) {
bool do_unlock_cb = false;
with_view_model(
receiver->view,
ProtoPirateReceiverModel * model,
@@ -414,10 +416,7 @@ bool protopirate_view_receiver_input(InputEvent* event, void* context) {
if(model->lock_count >= UNLOCK_CNT) {
model->lock = ProtoPirateLockOff;
model->lock_count = 0;
if(receiver->callback) {
receiver->callback(
ProtoPirateCustomEventViewReceiverUnlock, receiver->context);
}
do_unlock_cb = true;
}
}
} else if(
@@ -427,6 +426,11 @@ bool protopirate_view_receiver_input(InputEvent* event, void* context) {
}
},
true);
if(do_unlock_cb && receiver->callback) {
receiver->callback(ProtoPirateCustomEventViewReceiverUnlock, receiver->context);
}
consumed = true;
} else if(
event->type == InputTypeShort || event->type == InputTypeLong ||