summaryrefslogtreecommitdiff
path: root/src/Gtk/Signal.icl
diff options
context:
space:
mode:
authorCamil Staps2019-10-21 11:11:35 +0200
committerCamil Staps2019-10-21 11:11:35 +0200
commited2f12a5115ff63247025c6f0c10c5285cf337e1 (patch)
tree15e7a4d9cca0ecff539a7fa359f2b06eb8c75f60 /src/Gtk/Signal.icl
parentAdd GtkMenu* functionality and reorder combinator arguments to ease binding (diff)
Reorder more combinator arguments to ease binding
Diffstat (limited to 'src/Gtk/Signal.icl')
-rw-r--r--src/Gtk/Signal.icl9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/Gtk/Signal.icl b/src/Gtk/Signal.icl
index 699ee98..2fb8df5 100644
--- a/src/Gtk/Signal.icl
+++ b/src/Gtk/Signal.icl
@@ -11,16 +11,17 @@ import qualified Gtk.Internal as I
import Gtk.State
import Gtk.Widgets
-installSignalHandler :: !w !GSignalHandler -> State GtkState () | gtkWidget w
-installSignalHandler widget handler =
+installSignalHandler :: !GSignalHandler !w -> State GtkState w | gtkWidget w
+installSignalHandler handler widget =
modify (\st ->
{ st
& signal_handlers = 'M'.put (st.signal_counter+1) handler_internal st.signal_handlers
, signal_counter = st.signal_counter+1
}) >>|
gets (\st -> st.signal_counter) >>= \id ->
- toState case handler_internal of
- GSHI_Void _ -> 'I'.g_signal_connect_void (toPtr (gtkWidget widget)) signal_name id
+ (toState case handler_internal of
+ GSHI_Void _ -> 'I'.g_signal_connect_void (toPtr (gtkWidget widget)) signal_name id) >>|
+ pure widget
where
(signal_name,handler_internal) = case handler of
DestroyHandler f -> ("destroy",GSHI_Void f)