Title: [122793] branches/chromium/1180
- Revision
- 122793
- Author
- [email protected]
- Date
- 2012-07-16 18:38:26 -0700 (Mon, 16 Jul 2012)
Log Message
Merge 122212 -
RTL calendar picker for <input type=date> is too narrow and clipped
https://bugs.webkit.org/show_bug.cgi?id=90864
Reviewed by Kentaro Hara.
.:
* ManualTests/forms/calendar-picker.html:
- Add isRTL:true for the arabic setting
- Reset the iframe size when the setting is changed.
Source/WebCore:
Tests: ManualTests/forms/calendar-picker.html
* Resources/calendarPicker.js:
(fixWindowSize):
Checks the left edge of elemenets in RTL.
(layout): Add dir=ltr for the manual test, which re-uses the document.
[email protected]
Review URL: https://chromiumcodereview.appspot.com/10780025
Modified Paths
Diff
Modified: branches/chromium/1180/ManualTests/forms/calendar-picker.html (122792 => 122793)
--- branches/chromium/1180/ManualTests/forms/calendar-picker.html 2012-07-17 01:33:19 UTC (rev 122792)
+++ branches/chromium/1180/ManualTests/forms/calendar-picker.html 2012-07-17 01:38:26 UTC (rev 122793)
@@ -58,6 +58,7 @@
};
var arabicArguments = {
locale: 'ar',
+ isRTL: true,
monthLabels : ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو',
'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'],
dayLabels : ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'],
@@ -95,6 +96,9 @@
}
function selected(select) {
+ var frame = document.getElementsByTagName('iframe')[0];
+ frame.style.width = '100px';
+ frame.style.height = '100px';
switch (select.selectedIndex) {
case 0:
openCalendar(englishArguments);
Modified: branches/chromium/1180/Source/WebCore/Resources/calendarPicker.js (122792 => 122793)
--- branches/chromium/1180/Source/WebCore/Resources/calendarPicker.js 2012-07-17 01:33:19 UTC (rev 122792)
+++ branches/chromium/1180/Source/WebCore/Resources/calendarPicker.js 2012-07-17 01:38:26 UTC (rev 122793)
@@ -310,13 +310,23 @@
maxCellWidth = headers[i].offsetWidth;
}
var DaysAreaContainerBorder = 1;
- var maxRight = Math.max(yearMonthRightElement.offsetLeft + yearMonthRightElement.offsetWidth,
- daysAreaElement.offsetLeft + maxCellWidth * 7 + DaysAreaContainerBorder);
+ var main = $("main");
+ var yearMonthEnd;
+ var daysAreaEnd;
+ if (global.params.isRTL) {
+ var startOffset = main.offsetLeft + main.offsetWidth;
+ yearMonthEnd = startOffset - yearMonthRightElement.offsetLeft;
+ daysAreaEnd = startOffset - (daysAreaElement.offsetLeft + daysAreaElement.offsetWidth) + maxCellWidth * 7 + DaysAreaContainerBorder;
+ } else {
+ yearMonthEnd = yearMonthRightElement.offsetLeft + yearMonthRightElement.offsetWidth;
+ daysAreaEnd = daysAreaElement.offsetLeft + maxCellWidth * 7 + DaysAreaContainerBorder;
+ }
+
+ var maxEnd = Math.max(yearMonthEnd, daysAreaEnd);
var MainPadding = 6;
var MainBorder = 1;
- var desiredBodyWidth = maxRight + MainPadding + MainBorder;
+ var desiredBodyWidth = maxEnd + MainPadding + MainBorder;
- var main = $("main");
var mainHeight = main.offsetHeight;
main.style.width = "auto";
daysAreaElement.style.width = "100%";
@@ -355,6 +365,8 @@
function layout() {
if (global.params.isRTL)
document.body.dir = "rtl";
+ else
+ document.body.dir = "ltr";
var main = $("main");
var params = global.params;
main.removeChild(main.firstChild);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes