aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenry Jameson <me@hjkos.com>2022-06-27 19:16:33 +0300
committerHenry Jameson <me@hjkos.com>2022-06-27 19:16:33 +0300
commitcb135645f9b290944c40052f09a3eb9a487598a1 (patch)
treea56e085b0e9ec3028035f4adbe32ea5b1e0fb2a1
parent9c9dc2053b68813f748bc7cd656987242f45158c (diff)
make hover popovers less annoying to close
-rw-r--r--src/components/popover/popover.js8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/components/popover/popover.js b/src/components/popover/popover.js
index 5dfcf810..82ae9885 100644
--- a/src/components/popover/popover.js
+++ b/src/components/popover/popover.js
@@ -45,6 +45,10 @@ const Popover = {
inject: ['popoversZLayer'], // override popover z layer
data () {
return {
+ // lockReEntry is a flag that is set when mouse cursor is leaving the popover's content
+ // so that if mouse goes back into popover it won't be re-shown again to prevent annoyance
+ // with popovers refusing to be hidden when user wants to interact with something in below popover
+ lockReEntry: false,
hidden: true,
styles: {},
oldSize: { width: 0, height: 0 },
@@ -202,6 +206,7 @@ const Popover = {
},
onMouseenter (e) {
if (this.trigger === 'hover') {
+ this.lockReEntry = false
clearTimeout(this.graceTimeout)
this.graceTimeout = null
this.showPopover()
@@ -213,7 +218,8 @@ const Popover = {
}
},
onMouseenterContent (e) {
- if (this.trigger === 'hover') {
+ if (this.trigger === 'hover' && !this.lockReEntry) {
+ this.lockReEntry = true
clearTimeout(this.graceTimeout)
this.graceTimeout = null
this.showPopover()