@@ -133,7 +133,7 @@ const CModal = defineComponent({
133
133
emit ( 'show' )
134
134
}
135
135
const handleAfterEnter = ( ) => {
136
- window . addEventListener ( 'click ' , handleClickOutside )
136
+ window . addEventListener ( 'mousedown ' , handleMouseDown )
137
137
window . addEventListener ( 'keyup' , handleKeyUp )
138
138
}
139
139
const handleLeave = ( el : RendererElement , done : ( ) => void ) => {
@@ -144,7 +144,7 @@ const CModal = defineComponent({
144
144
el . classList . remove ( 'show' )
145
145
}
146
146
const handleAfterLeave = ( el : RendererElement ) => {
147
- window . removeEventListener ( 'click ' , handleClickOutside )
147
+ window . removeEventListener ( 'mousedown ' , handleMouseDown )
148
148
window . removeEventListener ( 'keyup' , handleKeyUp )
149
149
el . style . display = 'none'
150
150
}
@@ -168,7 +168,12 @@ const CModal = defineComponent({
168
168
}
169
169
}
170
170
}
171
- const handleClickOutside = ( event : Event ) => {
171
+
172
+ const handleMouseDown = ( event : Event ) => {
173
+ window . addEventListener ( 'mouseup' , ( ) => handleMouseUp ( event ) )
174
+ }
175
+
176
+ const handleMouseUp = ( event : Event ) => {
172
177
if ( modalContentRef . value && ! modalContentRef . value . contains ( event . target as HTMLElement ) ) {
173
178
if ( props . backdrop !== 'static' ) {
174
179
handleDismiss ( )
0 commit comments