aboutsummaryrefslogtreecommitdiffstats
path: root/src/esdl2_callbacks.erl
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2018-01-17 18:11:24 +0100
committerLoïc Hoguin <[email protected]>2018-01-17 18:12:23 +0100
commitd6de0fce0b46be3b382ba3c30fb7c9559f3fcb8e (patch)
tree9171aab855f013fd4cabe9e6838e76f92af8c8cf /src/esdl2_callbacks.erl
parent13d8ea6917d584e44888d5202dd28ac5602b2836 (diff)
downloadesdl2-d6de0fce0b46be3b382ba3c30fb7c9559f3fcb8e.tar.gz
esdl2-d6de0fce0b46be3b382ba3c30fb7c9559f3fcb8e.tar.bz2
esdl2-d6de0fce0b46be3b382ba3c30fb7c9559f3fcb8e.zip
Add the SDL_SetWindowHitTest callback
Diffstat (limited to 'src/esdl2_callbacks.erl')
-rw-r--r--src/esdl2_callbacks.erl14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/esdl2_callbacks.erl b/src/esdl2_callbacks.erl
index ccbe858..ecbc4a2 100644
--- a/src/esdl2_callbacks.erl
+++ b/src/esdl2_callbacks.erl
@@ -51,7 +51,19 @@ handle_info({callback, M, F, A}, State) ->
try
apply(M, F, A)
catch Class:Reason ->
- error_logger:error_msg("Exception ~p:~p with callback:~n{~p,~p,~p}~n", [Class, Reason, M, F, A])
+ error_logger:error_msg("Exception ~p:~p with callback:~n{~p,~p,~p}~n",
+ [Class, Reason, M, F, A])
+ end,
+ {noreply, State};
+handle_info({callback, M, F, A, ResF, ResA}, State) ->
+ try apply(M, F, A) of
+ Res ->
+ apply(esdl2, ResF, ResA ++ [Res])
+ catch Class:Reason ->
+ %% We need to inform the NIF that an error occurred.
+ apply(esdl2, ResF, ResA ++ [error]),
+ error_logger:error_msg("Exception ~p:~p with callback:~n{~p,~p,~p}~n",
+ [Class, Reason, M, F, A])
end,
{noreply, State};
handle_info(_Info, State) ->