Give the view a chance to update before presenting next dialog

This commit is contained in:
Nathan Sobo 2013-03-01 16:27:13 -07:00 committed by probablycorey
parent f0398f2331
commit e4bf73b41c
2 changed files with 4 additions and 1 deletions

View File

@ -150,11 +150,13 @@ describe "the `atom` global", ->
callbacks = @argsForCall[0][2]
@reset()
callbacks[labels.indexOf(buttonText)]()
advanceClock 50
atom.sendMessageToBrowserProcess.simulatePathSelection = (path) ->
callback = @argsForCall[0][2]
@reset()
callback(path)
advanceClock 50
it "only presents one native dialog at a time", ->
confirmHandler = jasmine.createSpy("confirmHandler")

View File

@ -131,7 +131,8 @@ _.extend atom,
@pendingModals.push([]) # prioritize any modals presented during dismiss callback
fn?(args...)
@presentingModal = false
@presentModal(fn) if fn = @shiftPendingModal()
if fn = @shiftPendingModal()
_.delay (=> @presentModal(fn)), 50 # let view update before next dialog
pushPendingModal: (fn) ->
# pendingModals is a stack of queues. enqueue to top of stack.