onblur event now works
This commit is contained in:
parent
44c7015a26
commit
d9330cbab9
2 changed files with 5 additions and 4 deletions
|
|
@ -38,7 +38,7 @@ proc editInput(i: int; d: cstring): VNode =
|
||||||
entries[i] = val
|
entries[i] = val
|
||||||
selectedEntry = -1
|
selectedEntry = -1
|
||||||
result = enterInput("todo-edit", d, onTodoChange)
|
result = enterInput("todo-edit", d, onTodoChange)
|
||||||
#result.setOnfocuslost(proc (ev: Event; n: VNode) = selectedEntry = -1)
|
result.setOnfocuslost(proc (ev: Event; n: VNode) = selectedEntry = -1)
|
||||||
|
|
||||||
proc createEntry(i: int; d: cstring; selected: bool): VNode =
|
proc createEntry(i: int; d: cstring; selected: bool): VNode =
|
||||||
# implement caching:
|
# implement caching:
|
||||||
|
|
|
||||||
|
|
@ -46,11 +46,12 @@ proc vnodeToDom(n: VNode): Element =
|
||||||
let myn = n
|
let myn = n
|
||||||
for e, h in items(n.events):
|
for e, h in items(n.events):
|
||||||
proc wrapper(): proc (ev: Event) =
|
proc wrapper(): proc (ev: Event) =
|
||||||
|
let hh = h
|
||||||
result = proc (ev: Event) =
|
result = proc (ev: Event) =
|
||||||
assert myn != nil
|
assert myn != nil
|
||||||
h(ev, myn)
|
hh(ev, myn)
|
||||||
result.addEventListener(toEventName[e], wrapper())
|
result.addEventListener(toEventName[e], wrapper())
|
||||||
if n.kind == VNodeKind.input:
|
if n.kind == VNodeKind.input and toFocus.isNil:
|
||||||
toFocus = result
|
toFocus = result
|
||||||
|
|
||||||
proc same(n: VNode, e: Element): bool =
|
proc same(n: VNode, e: Element): bool =
|
||||||
|
|
@ -148,7 +149,7 @@ proc dodraw() =
|
||||||
|
|
||||||
proc redraw*() =
|
proc redraw*() =
|
||||||
# we buffer redraw requests:
|
# we buffer redraw requests:
|
||||||
when false:
|
when true:
|
||||||
if drawTimeout != nil:
|
if drawTimeout != nil:
|
||||||
clearTimeout(drawTimeout)
|
clearTimeout(drawTimeout)
|
||||||
drawTimeout = setTimeout(dodraw, 30)
|
drawTimeout = setTimeout(dodraw, 30)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue