summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorXavier Morel <xmo@openerp.com>2012-06-19 11:36:51 +0200
committerXavier Morel <xmo@openerp.com>2012-06-19 11:36:51 +0200
commit125eead80acd077c90cd702a417fca6c41ff43f6 (patch)
tree09ae2ccddfdae461fa174fa35d2d663dc922d205 /addons/web/static/src
parent0516533c16376bfd849dba6b5e08df27b4db472b (diff)
[FIX] focus issues with m2o contextual menu (and popup operations)
bzr revid: xmo@openerp.com-20120619093651-7rfe1pp7ucuj0ajh
Diffstat (limited to 'addons/web/static/src')
-rw-r--r--addons/web/static/src/js/view_form.js9
1 files changed, 8 insertions, 1 deletions
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index 7bf1f4a1c32..fde415347f0 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -1964,6 +1964,7 @@ openerp.web.form.FieldMany2One = openerp.web.form.Field.extend({
};
bindings[self.cm_id + "_open"] = function() {
if (!self.value) {
+ self.focus();
return;
}
var pop = new openerp.web.form.FormOpenPopup(self.view);
@@ -1977,6 +1978,7 @@ openerp.web.form.FieldMany2One = openerp.web.form.Field.extend({
);
pop.on_write_completed.add_last(function() {
self.set_value(self.value[0]);
+ self.focus();
});
};
_.each(_.range(self.related_entries.length), function(i) {
@@ -2074,8 +2076,12 @@ openerp.web.form.FieldMany2One = openerp.web.form.Field.extend({
isSelecting = false;
});
+ // avoid triggering blur on the widget when it comes from clicking on
+ // a completion of the list, on the dropdown or on the m2o menu thing
var picking_completion = false;
- this.$input.autocomplete('widget').add(this.$drop_down)
+ this.$input.autocomplete('widget')
+ .add(this.$drop_down)
+ .add(this.$menu_btn)
.mousedown(function () {
picking_completion = true;
});
@@ -2191,6 +2197,7 @@ openerp.web.form.FieldMany2One = openerp.web.form.Field.extend({
var dataset = new openerp.web.DataSetStatic(self, self.field.relation, self.build_context());
dataset.name_get([element_ids[0]], function(data) {
self._change_int_ext_value(data[0]);
+ self.focus();
});
});
},