From 870977ae6b314cecb27a7bfe18b0fdf46c8e9f79 Mon Sep 17 00:00:00 2001
From: Kato Kazuyoshi <kato.kazuyoshi@gmail.com>
Date: Thu, 5 May 2011 04:07:43 +0900
Subject: Datepicker: Remove old "ui-datepicker-multi-N" before add new one.
 Fixed #6704 - Display overflow when multiple datepickers have different
 numberOfMonths. (cherry picked from commit
 fc97ccd398b60525fd9e4c0e9aa1f51048984394)

---
 tests/unit/datepicker/datepicker_core.js | 8 ++++++++
 ui/jquery.ui.datepicker.js               | 3 +--
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/tests/unit/datepicker/datepicker_core.js b/tests/unit/datepicker/datepicker_core.js
index 2730ec861..3cb4a2f50 100644
--- a/tests/unit/datepicker/datepicker_core.js
+++ b/tests/unit/datepicker/datepicker_core.js
@@ -121,8 +121,16 @@ test('baseStructure', function() {
 	ok(child.is('div.ui-datepicker-group') && child.is('div.ui-datepicker-group-last'), 'Structure multi [2] - second month division');
 	child = dp.children(':eq(2)');
 	ok(child.is('div.ui-datepicker-row-break'), 'Structure multi [2] - row break');
+	ok(dp.is('.ui-datepicker-multi-2'), 'Structure multi [2] - multi-2');
 	inp.datepicker('hide').datepicker('destroy');
 	
+	// Multi-month 3
+	inp = init('#inp', {numberOfMonths: 3});
+	inp.focus();
+	ok(dp.is('.ui-datepicker-multi-3'), 'Structure multi [3] - multi-3');
+	ok(! dp.is('.ui-datepicker-multi-2'), 'Structure multi [3] - Trac #6704');
+	inp.datepicker('hide').datepicker('destroy');
+
 	// Multi-month [2, 2]
 	inp = init('#inp', {numberOfMonths: [2, 2]});
 	inp.focus();
diff --git a/ui/jquery.ui.datepicker.js b/ui/jquery.ui.datepicker.js
index fe24d695a..2ab23a6eb 100644
--- a/ui/jquery.ui.datepicker.js
+++ b/ui/jquery.ui.datepicker.js
@@ -683,10 +683,9 @@ $.extend(Datepicker.prototype, {
 		var numMonths = this._getNumberOfMonths(inst);
 		var cols = numMonths[1];
 		var width = 17;
+		inst.dpDiv.removeClass('ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4').width('');
 		if (cols > 1)
 			inst.dpDiv.addClass('ui-datepicker-multi-' + cols).css('width', (width * cols) + 'em');
-		else
-			inst.dpDiv.removeClass('ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4').width('');
 		inst.dpDiv[(numMonths[0] != 1 || numMonths[1] != 1 ? 'add' : 'remove') +
 			'Class']('ui-datepicker-multi');
 		inst.dpDiv[(this._get(inst, 'isRTL') ? 'add' : 'remove') +
-- 
cgit v1.2.3