Skip to content

Instantly share code, notes, and snippets.

@RudyLu
Created October 9, 2012 08:49
Show Gist options
  • Save RudyLu/3857440 to your computer and use it in GitHub Desktop.
Save RudyLu/3857440 to your computer and use it in GitHub Desktop.
Patch for 796740
diff --git a/apps/system/js/value_selector/value_selector.js b/apps/system/js/value_selector/value_selector.js
index 3d9012e..98d86d6 100644
--- a/apps/system/js/value_selector/value_selector.js
+++ b/apps/system/js/value_selector/value_selector.js
@@ -1,4 +1,4 @@
-/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- /
+/* -*- Mode: js; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- /
/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
'use strict';
@@ -56,6 +56,7 @@ var ValueSelector = {
this._element = document.getElementById('value-selector');
+ this._element.addEventListener('mousedown', this);
this._containers['select'] =
document.getElementById('value-selector-container');
this._containers['select'].addEventListener('click', this);
@@ -63,6 +64,7 @@ var ValueSelector = {
this._popups['select'] =
document.getElementById('select-option-popup');
+ this._popups['select'].addEventListener('submit', this);
this._popups['time'] =
document.getElementById('time-picker-popup');
this._popups['date'] =
@@ -80,9 +82,22 @@ var ValueSelector = {
this._containers['time'] = document.getElementById('picker-bar');
this._containers['date'] = document.getElementById('date-picker-container');
-
ActiveEffectHelper.enableActive(this._buttons['select']);
ActiveEffectHelper.enableActive(this._buttons['time']);
+ ActiveEffectHelper.enableActive(this._buttons['date']);
+
+ // Prevent focus being taken away by us for time picker
+ var mouseDownList = ['value-picker-hours', 'value-picker-minutes',
+ 'value-picker-hour24-state'];
+
+ function mouseDownHandler(evt) {
+ return false;
+ }
+
+ mouseDownList.forEach(function preventFocusChange(id) {
+ var element = document.getElementById(id);
+ element.onmousedown = mouseDownHandler;
+ });
window.addEventListener('appopen', this);
window.addEventListener('appwillclose', this);
@@ -115,6 +130,13 @@ var ValueSelector = {
}
break;
+ case 'submit':
+ // Prevent the form to submit.
+ case 'mousedown':
+ // Prevent focus being taken away by us.
+ evt.preventDefault();
+ break;
+
default:
this.debug('no event handler defined for' + evt.type);
break;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment