angular / material

Material design for AngularJS
https://material.angularjs.org/
MIT License
16.55k stars 3.39k forks source link

dialog(multiple): main dialog (clickOutsideToClose: false) is closed when nested dialog is opened #11828

Open Vadymchyk opened 4 years ago

Vadymchyk commented 4 years ago

Bug, enhancement request, or proposal:

Bug

CodePen and steps to reproduce the issue:

CodePen Demo which demonstrates the issue:

https://codepen.io/vadymchyk/pen/yLyOOPX

Detailed Reproduction Steps:

Create two multiple dialogs First: clickOutsideToClose: false, escapeToClose: false, Second (nested): clickOutsideToClose: true, multiple: true,

  1. Open the first dialog
  2. Open the second dialog(multiple)
  3. Press "Esc" or click outside when the second dialog is opening (during animation)

What is the expected behavior?

The first dialog stay opened

What is the current behavior?

The first dialog is closed

What is the use-case or motivation for changing an existing behavior?

Which versions of AngularJS, Material, OS, and browsers are affected?

Is there anything else we should know? Stack Traces, Screenshots, etc.

Splaktar commented 4 years ago

Did you change something with your CodePen reproduction after posting it? When I test it in Chrome Version 79.0.3945.88 or Firefox 70.0.1 on macOS, I see the first dialog stay opened as you expected.

Vadymchyk commented 4 years ago

I have not changed anything. The bug is still reproduced: https://www.youtube.com/watch?v=gk-_vwSK1cw

Splaktar commented 4 years ago

Thank you for sharing the video. I'm not able to reproduce that behavior.

Are you on Windows?

What browser and version are you using?

Vadymchyk commented 4 years ago

Reproduced on macOS 10.15.2: Google Chrome Version 79.0.3945.88 (Official Build) (64-bit) Safari Version 13.0.4 (15608.4.9.1.3)

and I saw this bug on Windows machine too.

Splaktar commented 3 years ago

OK, I can reproduce this if I do this critical part of the reproduction steps

when the second dialog is opening (during animation)

The ESCAPE shouldn't close the first dialog with escapeToClose: false, but it does. This does certainly seem like a buggy edge case.