From 0f58c499bef475e10f2340d22d7b3aec92d2e8e6 Mon Sep 17 00:00:00 2001 From: Marc Grabanski Date: Mon, 29 Sep 2008 23:04:12 +0000 Subject: [PATCH] Datepicker: Default date cell shows over-state when nothing is selected, next months do not show over state unless keyboard is activated. --- ui/ui.datepicker.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/ui/ui.datepicker.js b/ui/ui.datepicker.js index d547e4fcb..425a1f79f 100644 --- a/ui/ui.datepicker.js +++ b/ui/ui.datepicker.js @@ -25,6 +25,7 @@ var PROP_NAME = 'datepicker'; function Datepicker() { this.debug = false; // Change this to true to start debugging this._curInst = null; // The current instance in use + this._keyEvent = false; // If the last event was a key event this._disabledInputs = []; // List of date picker inputs that have been disabled this._datepickerShowing = false; // True if the popup picker is showing , false if not this._inDialog = false; // True if showing within a "dialog", false if not @@ -470,13 +471,17 @@ $.extend(Datepicker.prototype, { _doKeyDown: function(e) { var inst = $.datepicker._getInst(e.target); var handled = true; + inst._keyEvent = true; if ($.datepicker._datepickerShowing) switch (e.keyCode) { case 9: $.datepicker._hideDatepicker(null, ''); break; // hide on tab out - case 13: if ($('td.ui-datepicker-days-cell-over', inst.dpDiv)[0]) + case 13: if ($('td.ui-datepicker-days-cell-over, td.ui-datepicker-current-day', inst.dpDiv)[0]) { $.datepicker._selectDay(e.target, inst.selectedMonth, inst.selectedYear, - $('td.ui-datepicker-days-cell-over', inst.dpDiv)[0]); + $('td.ui-datepicker-days-cell-over, td.ui-datepicker-current-day', inst.dpDiv)[0]); + } else { + $.datepicker._hideDatepicker(null, $.datepicker._get(inst, 'duration')); + } return false; // don't submit the form break; // select the value on enter case 27: $.datepicker._hideDatepicker(null, $.datepicker._get(inst, 'duration')); @@ -521,8 +526,9 @@ $.extend(Datepicker.prototype, { } else if (e.keyCode == 36 && e.ctrlKey) // display the date picker on ctrl+home $.datepicker._showDatepicker(this); - else + else { handled = false; + } if (handled) { e.preventDefault(); e.stopPropagation(); @@ -1454,11 +1460,13 @@ $.extend(Datepicker.prototype, { html += '' + ($.browser.msie && parseInt($.browser.version,10) < 7 && !inst.inline ? '' : ''); + inst._keyEvent = false; return html; },