]> git.joonet.de Git - adminer.git/commitdiff
Ignore mousing over border of select
authorJakub Vrana <jakub@vrana.cz>
Fri, 19 Jul 2013 20:04:14 +0000 (13:04 -0700)
committerJakub Vrana <jakub@vrana.cz>
Fri, 19 Jul 2013 20:04:14 +0000 (13:04 -0700)
adminer/include/design.inc.php
adminer/include/editing.inc.php
adminer/static/editing.js

index c567d37f60006aba2111df76dbacbba90049b8fe..e82be4e29832de3521612ba2685941462cf54c42 100644 (file)
@@ -34,7 +34,7 @@ function page_header($title, $error = "", $breadcrumb = array(), $title2 = "") {
 document.body.className = document.body.className.replace(/ nojs/, ' js');
 </script>
 
-<div id="help" class="jush-<?php echo $jush; ?> jsonly hidden" onmouseover="helpOpen = 1;" onmouseout="helpMouseout();"></div>
+<div id="help" class="jush-<?php echo $jush; ?> jsonly hidden" onmouseover="helpOpen = 1;" onmouseout="helpMouseout(this, event);"></div>
 
 <div id="content">
 <?php
index bb22c20e93a3f85f4b327150d429a2374ffd1a5c..2fd7a55dfe25910e3884998e518ea3540e78eb0d 100644 (file)
@@ -474,5 +474,5 @@ function doc_link($path) {
 * @return string
 */
 function on_help($command, $side = 0) {
-       return " onmouseover='helpMouseover(getTarget(event), " . h($command) . ", $side);' onmouseout='helpMouseout();'";
+       return " onmouseover='helpMouseover(this, event, " . h($command) . ", $side);' onmouseout='helpMouseout(this, event);'";
 }
index 00278bb01e80dd27599bfccaeeaab70cdfe749f5..424caac33fa383ec2d96c0cf3d7133ba2c28a70a 100644 (file)
@@ -614,36 +614,41 @@ function schemaMouseup(ev, db) {
        }
 }
 
-var helpOpen;
+var helpOpen, helpIgnore; // when mouse outs <option> then it mouse overs border of <select> - ignore it
 
 /** Display help
 * @param HTMLElement
+* @param MouseEvent
 * @param string
 * @param bool display on left side (otherwise on top)
 */
-function helpMouseover(el, text, side) {
+function helpMouseover(el, event, text, side) {
+       var target = getTarget(event);
        if (!text) {
                helpClose();
-       } else if (window.jush) {
+       } else if (window.jush && (!helpIgnore || el != target)) {
                helpOpen = 1;
                var help = document.getElementById('help');
                help.innerHTML = text;
                jush.highlight_tag([ help ]);
                alterClass(help, 'hidden');
-               var top = 0, left = 0, parent = el;
+               var top = 0, left = 0, parent = target;
                do {
                        top += parent.offsetTop;
                        left += parent.offsetLeft;
                } while (parent = parent.offsetParent);
-               help.style.top = (top - (side ? (help.offsetHeight - el.offsetHeight) / 2 : help.offsetHeight)) + 'px';
-               help.style.left = (left - (side ? help.offsetWidth : (help.offsetWidth - el.offsetWidth) / 2)) + 'px';
+               help.style.top = (top - (side ? (help.offsetHeight - target.offsetHeight) / 2 : help.offsetHeight)) + 'px';
+               help.style.left = (left - (side ? help.offsetWidth : (help.offsetWidth - target.offsetWidth) / 2)) + 'px';
        }
 }
 
 /** Close help after timeout
+* @param HTMLElement
+* @param MouseEvent
 */
-function helpMouseout() {
+function helpMouseout(el, event) {
        helpOpen = 0;
+       helpIgnore = (el != getTarget(event));
        setTimeout(function () {
                if (!helpOpen) {
                        helpClose();