[FIX] incorrect reversion of m2o autocomplete mouse-based selection fix by revision...
authorXavier Morel <xmo@openerp.com>
Wed, 5 Sep 2012 12:04:55 +0000 (14:04 +0200)
committerXavier Morel <xmo@openerp.com>
Wed, 5 Sep 2012 12:04:55 +0000 (14:04 +0200)
bzr revid: xmo@openerp.com-20120905120455-92llmuwv267xdrn5

addons/web/static/src/js/view_form.js

index 1cefd28..f65da67 100644 (file)
@@ -2846,7 +2846,21 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc
                 self.tip_def.reject();
             }
         };
-        this.$input.focusout(anyoneLoosesFocus);
+        var ignore_blur = false;
+        this.$input.on({
+            focusout: anyoneLoosesFocus,
+            focus: function () { self.trigger('focused'); },
+            autocompleteopen: function () { ignore_blur = true; },
+            autocompleteclose: function () { ignore_blur = false; },
+            blur: function () {
+                // autocomplete open
+                if (ignore_blur) { return; }
+                if (_(self.getChildren()).any(function (child) {
+                    return child instanceof instance.web.form.AbstractFormPopup;
+                })) { return; }
+                self.trigger('blurred');
+            }
+        });
 
         var isSelecting = false;
         // autocomplete
@@ -2888,7 +2902,7 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc
             }
             isSelecting = false;
         });
-        this.setupFocus(this.$input.add(this.$follow_button));
+        this.setupFocus(this.$follow_button);
     },
     render_value: function(no_recurse) {
         var self = this;