summaryrefslogtreecommitdiff
path: root/src/Gtk/State.icl
diff options
context:
space:
mode:
authorCamil Staps2019-10-27 12:34:02 +0100
committerCamil Staps2019-10-27 12:34:02 +0100
commit8b94854da995a34790d194dcc01b654409e77593 (patch)
tree68f2cb72a2531992cf6c766b9eb7d99d0e708d60 /src/Gtk/State.icl
parentAdd getCellText for GtkSheet (diff)
Add runWhileEventsPending to be able to show something before starting a long task on the main thread
Diffstat (limited to 'src/Gtk/State.icl')
-rw-r--r--src/Gtk/State.icl9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/Gtk/State.icl b/src/Gtk/State.icl
index 4db51af..32c2b19 100644
--- a/src/Gtk/State.icl
+++ b/src/Gtk/State.icl
@@ -107,3 +107,12 @@ worldToVoid _ = ()
quit :: GtkM ()
quit = modState (\st -> {st & return=True}) >>| pure ()
+
+runWhileEventsPending :: GtkM ()
+runWhileEventsPending =
+ toStateR gtk_events_pending >>= \pending
+ | not pending ->
+ pure ()
+ | otherwise ->
+ toStateR gtk_main_iteration >>|
+ runWhileEventsPending