diff --git a/src/dlangui/platforms/common/platform.d b/src/dlangui/platforms/common/platform.d
index 42959d4e..eac15788 100644
--- a/src/dlangui/platforms/common/platform.d
+++ b/src/dlangui/platforms/common/platform.d
@@ -1222,6 +1222,14 @@ class Window : CustomEventTarget {
Log.d("override scheduleSystemTimer to support timers");
}
+ /// poll expired timers; returns true if update is needed
+ bool pollTimers() {
+ bool res = _timerQueue.notify();
+ if (res)
+ update(false);
+ return res;
+ }
+
/// system timer interval expired - notify queue
protected void onTimer() {
//Log.d("window.onTimer");
diff --git a/src/dlangui/platforms/console/consoleapp.d b/src/dlangui/platforms/console/consoleapp.d
index 76497cb1..d3891923 100644
--- a/src/dlangui/platforms/console/consoleapp.d
+++ b/src/dlangui/platforms/console/consoleapp.d
@@ -68,6 +68,7 @@ class ConsolePlatform : Platform {
_console.resizeEvent = &onConsoleResize;
_console.inputIdleEvent = &onInputIdle;
_console.init();
+ _console.setCursorType(ConsoleCursorType.Invisible);
_drawBuf = new ConsoleDrawBuf(_console);
}
@@ -154,7 +155,13 @@ class ConsolePlatform : Platform {
}
_needRedraw = false;
}
+
protected bool onInputIdle() {
+ checkClosedWindows();
+ foreach(w; _windowList) {
+ w.pollTimers();
+ w.handlePostedEvents();
+ }
checkClosedWindows();
redraw();
_console.flush();
diff --git a/views/res/console_theme_default.xml b/views/res/console_theme_default.xml
index 099c5c19..26b7b10e 100644
--- a/views/res/console_theme_default.xml
+++ b/views/res/console_theme_default.xml
@@ -423,12 +423,12 @@
padding="0,0,0,0"
/>