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" />