Closed Bug 380026 Opened 17 years ago Closed 16 years ago

"text-decoration: underline" for CJK characters is positioned higher than expected

Categories

(Core :: Graphics, defect)

PowerPC
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: gzjjgod, Assigned: masayuki)

References

()

Details

Attachments

(5 files)

User-Agent:       Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en) AppleWebKit/419 (KHTML, like Gecko) Safari/419.3
Build Identifier: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.9a4) Gecko/20070427 GranParadiso/3.0a4

"text-decoration: underline" for CJK characters is positioned higher than expected, so underline actually crossed the characters.

Reproducible: Always

Steps to Reproduce:
View the following HTML: 

<html>
<body>
<a href="#">中文测试</a>
</body>
</html>
Actual Results:  
See attached screenshot.
Version: unspecified → Trunk
3.0 builds are using GFX: Thebes, not GFX: Mac.
Assignee: joshmoz → nobody
Component: GFX: Mac → GFX: Thebes
QA Contact: mac → thebes
Status: UNCONFIRMED → NEW
Ever confirmed: true
This is a regression from Gecko1.8.x. We should fix this before 1.9 final.

From the screenshot, looks like the baseline has width on ATS. I.e., ascent + underline size + underline position is a correct offset. (now, we are using ascent + underline offset.) Because underline offset/size is same as position/thickness of underscore. I think that the underline should be below the underscore. It is same (or similar) on Windows too. (I don't know on Linux.)
Flags: blocking1.9?
Attached patch Patch rv1.0Splinter Review
er, it seems that this patch is correct.

The API document doesn't clear what is a base of underlineOffset. I assumed that the base is bottom of descent, it's works fine for me.
Assignee: nobody → masayuki
Status: NEW → ASSIGNED
Attachment #279748 - Flags: review?(vladimir)
Attachment #279748 - Flags: approval1.9?
Attachment #279748 - Attachment is patch: true
Attachment #279748 - Flags: review?(vladimir)
Attachment #279748 - Flags: review+
Attachment #279748 - Flags: approval1.9?
Attachment #279748 - Flags: approval1.9+
checked-in.

But I'm not sure this patch works fine with all western language, if you find some problem, please tell me in bug 394832.

Don't reopen this. The CJK font problems are fixed by this.
Blocks: 394832
Status: ASSIGNED → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
some tinderbox tests are failed, the patch is backed-out.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
I still don't have idea for the causes...

> *** 40593 INFO Running /tests/toolkit/content/tests/widgets/test_textbox_number.xul...
> *** 40594 INFO PASS | initial n1 value is '0'
> *** 40595 INFO PASS | initial n1 valueNumber is 0
> *** 40596 INFO PASS | initial n1 inputField value is 0
> *** 40597 INFO PASS | initial n1 min is 0
> *** 40598 INFO PASS | initial n1 max is Infinity
> *** 40599 INFO PASS | initial n2 value is '10'
> *** 40600 INFO PASS | initial n2 valueNumber is 10
> *** 40601 INFO PASS | initial n2 inputField value is 10
> *** 40602 INFO PASS | initial n2 min is 5
> *** 40603 INFO PASS | initial n2 max is 15
> *** 40604 INFO PASS | initial n3 value is '12'
> *** 40605 INFO PASS | initial n3 valueNumber is 12
> *** 40606 INFO PASS | initial n3 inputField value is 12
> *** 40607 INFO PASS | initial n3 min is 1
> *** 40608 INFO PASS | initial n3 max is 12
> *** 40609 INFO PASS | initial n4 value is '-2'
> *** 40610 INFO PASS | initial n4 valueNumber is -2
> *** 40611 INFO PASS | initial n4 inputField value is -2
> *** 40612 INFO PASS | initial n4 min is -8
> *** 40613 INFO PASS | initial n4 max is 18
> *** 40614 INFO PASS | initial n5 value is '-10'
> *** 40615 INFO PASS | initial n5 valueNumber is -10
> *** 40616 INFO PASS | initial n5 inputField value is -10
> *** 40617 INFO PASS | initial n5 min is -10
> *** 40618 INFO PASS | initial n5 max is -3
> *** 40619 INFO PASS | initial n6 value is '12'
> *** 40620 INFO PASS | initial n6 valueNumber is 12
> *** 40621 INFO PASS | initial n6 inputField value is 12
> *** 40622 INFO PASS | initial n6 min is 12
> *** 40623 INFO PASS | initial n6 max is 12
> *** 40624 INFO PASS | initial n7 value is '4.68'
> *** 40625 INFO PASS | initial n7 valueNumber is 4.68
> *** 40626 INFO PASS | initial n7 inputField value is 4.68
> *** 40627 INFO PASS | initial n7 min is 2
> *** 40628 INFO PASS | initial n7 max is 10.5
> *** 40629 INFO PASS | spinButtons set
> *** 40630 INFO PASS | decimalSymbol defaults to .
> *** 40631 INFO PASS | wrapAround defaults to false
> *** 40632 INFO PASS | increment defaults to 1
> *** 40633 INFO PASS | decimalPlaces defaults to 0
> *** 40634 INFO PASS | wrapAround when set to true
> *** 40635 INFO PASS | increment when set to 1
> *** 40636 INFO PASS | decimalPlaces when set to 2
> *** 40637 INFO PASS | set value, value is '1700'
> *** 40638 INFO PASS | set value, valueNumber is 1700
> *** 40639 INFO PASS | set value, inputField value is 1700
> *** 40640 INFO PASS | set value int, value is '1600'
> *** 40641 INFO PASS | set value int, valueNumber is 1600
> *** 40642 INFO PASS | set value int, inputField value is 1600
> *** 40643 INFO PASS | set value below min, value is '5'
> *** 40644 INFO PASS | set value below min, valueNumber is 5
> *** 40645 INFO PASS | set value below min, inputField value is 5
> *** 40646 INFO PASS | set value below min int, value is '5'
> *** 40647 INFO PASS | set value below min int, valueNumber is 5
> *** 40648 INFO PASS | set value below min int, inputField value is 5
> *** 40649 INFO PASS | set value above max, value is '15'
> *** 40650 INFO PASS | set value above max, valueNumber is 15
> *** 40651 INFO PASS | set value above max, inputField value is 15
> *** 40652 INFO PASS | set value below min negative, value is '5'
> *** 40653 INFO PASS | set value below min negative, valueNumber is 5
> *** 40654 INFO PASS | set value below min negative, inputField value is 5
> *** 40655 INFO PASS | set value above max positive, value is '-3'
> *** 40656 INFO PASS | set value above max positive, valueNumber is -3
> *** 40657 INFO PASS | set value above max positive, inputField value is -3
> *** 40658 INFO PASS | set value to decimal, value is '6'
> *** 40659 INFO PASS | set value to decimal, valueNumber is 6
> *** 40660 INFO PASS | set value to decimal, inputField value is 6
> *** 40661 INFO PASS | set value to decimal below min, value is '2'
> *** 40662 INFO PASS | set value to decimal below min, valueNumber is 2
> *** 40663 INFO PASS | set value to decimal below min, inputField value is 2
> *** 40664 INFO PASS | set value to decimal above max, value is '10.5'
> *** 40665 INFO PASS | set value to decimal above max, valueNumber is 10.5
> *** 40666 INFO PASS | set value to decimal above max, inputField value is 10.5
> *** 40667 INFO PASS | set value to decimal round, value is '5'
> *** 40668 INFO PASS | set value to decimal round, valueNumber is 5
> *** 40669 INFO PASS | set value to decimal round, inputField value is 5
> *** 40670 INFO PASS | set valueNumber, value is '27'
> *** 40671 INFO PASS | set valueNumber, valueNumber is 27
> *** 40672 INFO PASS | set valueNumber, inputField value is 27
> *** 40673 INFO PASS | set valueNumber below min, value is '5'
> *** 40674 INFO PASS | set valueNumber below min, valueNumber is 5
> *** 40675 INFO PASS | set valueNumber below min, inputField value is 5
> *** 40676 INFO PASS | set valueNumber above max, value is '15'
> *** 40677 INFO PASS | set valueNumber above max, valueNumber is 15
> *** 40678 INFO PASS | set valueNumber above max, inputField value is 15
> *** 40679 INFO PASS | set valueNumber below min negative, value is '5'
> *** 40680 INFO PASS | set valueNumber below min negative, valueNumber is 5
> *** 40681 INFO PASS | set valueNumber below min negative, inputField value is 5
> *** 40682 INFO PASS | set valueNumber above max positive, value is '-3'
> *** 40683 INFO PASS | set valueNumber above max positive, valueNumber is -3
> *** 40684 INFO PASS | set valueNumber above max positive, inputField value is -3
> *** 40685 INFO PASS | set valueNumber to decimal, value is '8.23'
> *** 40686 INFO PASS | set valueNumber to decimal, valueNumber is 8.23
> *** 40687 INFO PASS | set valueNumber to decimal, inputField value is 8.23
> *** 40688 INFO PASS | set valueNumber to decimal below min, value is '2'
> *** 40689 INFO PASS | set valueNumber to decimal below min, valueNumber is 2
> *** 40690 INFO PASS | set valueNumber to decimal below min, inputField value is 2
> *** 40691 INFO PASS | set valueNumber to decimal above max, value is '10.5'
> *** 40692 INFO PASS | set valueNumber to decimal above max, valueNumber is 10.5
> *** 40693 INFO PASS | set valueNumber to decimal above max, inputField value is 10.5
> *** 40694 INFO PASS | set valueNumber to decimal round, value is '9'
> *** 40695 INFO PASS | set valueNumber to decimal round, valueNumber is 9
> *** 40696 INFO PASS | set valueNumber to decimal round, inputField value is 9
> *** 40697 INFO PASS | set integer min, value is '8'
> *** 40698 INFO PASS | set integer min, valueNumber is 8
> *** 40699 INFO PASS | set integer min, inputField value is 8
> *** 40700 INFO PASS | set integer min, min is 8
> *** 40701 INFO PASS | set integer min, max is Infinity
> *** 40702 INFO PASS | set decimal min, value is '6.7'
> *** 40703 INFO PASS | set decimal min, valueNumber is 6.7
> *** 40704 INFO PASS | set decimal min, inputField value is 6.7
> *** 40705 INFO PASS | set decimal min, min is 6.7
> *** 40706 INFO PASS | set decimal min, max is 10.5
> *** 40707 INFO PASS | set integer max, value is '22'
> *** 40708 INFO PASS | set integer max, valueNumber is 22
> *** 40709 INFO PASS | set integer max, inputField value is 22
> *** 40710 INFO PASS | set integer max, min is 8
> *** 40711 INFO PASS | set integer max, max is 22
> *** 40712 INFO PASS | set decimal max, value is '10.1'
> *** 40713 INFO PASS | set decimal max, valueNumber is 10.1
> *** 40714 INFO PASS | set decimal max, inputField value is 10.1
> *** 40715 INFO PASS | set decimal max, min is 6.7
> *** 40716 INFO PASS | set decimal max, max is 10.1
> *** 40717 INFO PASS | integer decrease method value is '21'
> *** 40718 INFO PASS | integer decrease method valueNumber is 21
> *** 40719 INFO PASS | integer decrease method inputField value is 21
> *** 40720 INFO PASS | integer increase method value is '22'
> *** 40721 INFO PASS | integer increase method valueNumber is 22
> *** 40722 INFO PASS | integer increase method inputField value is 22
> *** 40723 INFO PASS | integer decrease method at min value is '8'
> *** 40724 INFO PASS | integer decrease method at min valueNumber is 8
> *** 40725 INFO PASS | integer decrease method at min inputField value is 8
> *** 40726 INFO PASS | integer increase method at max value is '22'
> *** 40727 INFO PASS | integer increase method at max valueNumber is 22
> *** 40728 INFO PASS | integer increase method at max inputField value is 22
> *** 40729 INFO PASS | integer key up change event target 
> *** 40730 INFO PASS | integer key up change event fired
> *** 40731 INFO PASS | integer key up
> *** 40732 INFO PASS | integer key up at max change event not fired
> *** 40733 INFO PASS | integer key up at max
> *** 40734 INFO PASS | integer key down change event target 
> *** 40735 INFO PASS | integer key down change event fired
> *** 40736 INFO PASS | integer key down
> *** 40737 INFO PASS | integer key down at min change event not fired
> *** 40738 INFO PASS | integer key down at min
> *** 40739 INFO PASS | integer mouse up change event target 
> *** 40740 INFO PASS | integer mouse up change event fired
> *** 40741 INFO PASS | integer mouse up
> *** 40742 INFO PASS | integer mouse up at max change event not fired
> *** 40743 ERROR FAIL | integer mouse down change event fired | got false, expected true | /tests/toolkit/content/tests/widgets/test_textbox_number.xul
> *** 40744 ERROR FAIL | integer mouse down | got "22", expected 21 | /tests/toolkit/content/tests/widgets/test_textbox_number.xul
> *** 40745 INFO PASS | integer mouse down at min change event target 
> *** 40746 ERROR FAIL | integer mouse down at min change event not fired | got true, expected false | /tests/toolkit/content/tests/widgets/test_textbox_number.xul
> *** 40747 INFO PASS | decimal decrease method value is '9.1'
> *** 40748 INFO PASS | decimal decrease method valueNumber is 9.1
> *** 40749 INFO PASS | decimal decrease method inputField value is 9.1
> *** 40750 INFO PASS | decimal increase method value is '10.1'
> *** 40751 INFO PASS | decimal increase method valueNumber is 10.1
> *** 40752 INFO PASS | decimal increase method inputField value is 10.1
> *** 40753 INFO PASS | decimal decrease method at min value is '6.7'
> *** 40754 INFO PASS | decimal decrease method at min valueNumber is 6.7
> *** 40755 INFO PASS | decimal decrease method at min inputField value is 6.7
> *** 40756 INFO PASS | decimal increase method at max value is '10.1'
> *** 40757 INFO PASS | decimal increase method at max valueNumber is 10.1
> *** 40758 INFO PASS | decimal increase method at max inputField value is 10.1
> *** 40759 INFO PASS | decimal key up change event target 
> *** 40760 INFO PASS | decimal key up change event fired
> *** 40761 INFO PASS | decimal key up
> *** 40762 INFO PASS | decimal key up at max change event not fired
> *** 40763 INFO PASS | decimal key up at max
> *** 40764 INFO PASS | decimal key down change event target 
> *** 40765 INFO PASS | decimal key down change event fired
> *** 40766 INFO PASS | decimal key down
> *** 40767 INFO PASS | decimal key down at min change event not fired
> *** 40768 INFO PASS | decimal key down at min
> *** 40769 INFO PASS | decimal mouse up change event target 
> *** 40770 INFO PASS | decimal mouse up change event fired
> *** 40771 INFO PASS | decimal mouse up
> *** 40772 INFO PASS | decimal mouse up at max change event not fired
> *** 40773 ERROR FAIL | decimal mouse down change event fired | got false, expected true | /tests/toolkit/content/tests/widgets/test_textbox_number.xul
> *** 40774 ERROR FAIL | decimal mouse down | got "10.1", expected 9.1 | /tests/toolkit/content/tests/widgets/test_textbox_number.xul
> *** 40775 INFO PASS | decimal mouse down at min change event target 
> *** 40776 ERROR FAIL | decimal mouse down at min change event not fired | got true, expected false | /tests/toolkit/content/tests/widgets/test_textbox_number.xul
> *** 40777 INFO PASS | integer with increment decrease method value is '9'
> *** 40778 INFO PASS | integer with increment decrease method valueNumber is 9
> *** 40779 INFO PASS | integer with increment decrease method inputField value is 9
> *** 40780 INFO PASS | integer with increment increase method value is '12'
> *** 40781 INFO PASS | integer with increment increase method valueNumber is 12
> *** 40782 INFO PASS | integer with increment increase method inputField value is 12
> *** 40783 INFO PASS | integer with increment decrease method at min value is '1'
> *** 40784 INFO PASS | integer with increment decrease method at min valueNumber is 1
> *** 40785 INFO PASS | integer with increment decrease method at min inputField value is 1
> *** 40786 INFO PASS | integer with increment increase method at max value is '12'
> *** 40787 INFO PASS | integer with increment increase method at max valueNumber is 12
> *** 40788 INFO PASS | integer with increment increase method at max inputField value is 12
> *** 40789 INFO PASS | integer with increment key up change event target 
> *** 40790 INFO PASS | integer with increment key up change event fired
> *** 40791 INFO PASS | integer with increment key up
> *** 40792 INFO PASS | integer with increment key up at max change event not fired
> *** 40793 INFO PASS | integer with increment key up at max
> *** 40794 INFO PASS | integer with increment key down change event target 
> *** 40795 INFO PASS | integer with increment key down change event fired
> *** 40796 INFO PASS | integer with increment key down
> *** 40797 INFO PASS | integer with increment key down at min change event not fired
> *** 40798 INFO PASS | integer with increment key down at min
> *** 40799 INFO PASS | integer with increment mouse up change event target 
> *** 40800 INFO PASS | integer with increment mouse up change event fired
> *** 40801 INFO PASS | integer with increment mouse up
> *** 40802 INFO PASS | integer with increment mouse up at max change event not fired
> *** 40803 ERROR FAIL | integer with increment mouse down change event fired | got false, expected true | /tests/toolkit/content/tests/widgets/test_textbox_number.xul
> *** 40804 ERROR FAIL | integer with increment mouse down | got "12", expected 9 | /tests/toolkit/content/tests/widgets/test_textbox_number.xul
> *** 40805 INFO PASS | integer with increment mouse down at min change event target 
> *** 40806 ERROR FAIL | integer with increment mouse down at min change event not fired | got true, expected false | /tests/toolkit/content/tests/widgets/test_textbox_number.xul
> *** 40807 INFO PASS | increment changed
> *** 40808 INFO PASS | integer with increment decrease method value is '5.8'
> *** 40809 INFO PASS | integer with increment decrease method valueNumber is 5.8
> *** 40810 INFO PASS | integer with increment decrease method inputField value is 5.8
> *** 40811 INFO PASS | integer with increment increase method value is '10.1'
> *** 40812 INFO PASS | integer with increment increase method valueNumber is 10.1
> *** 40813 INFO PASS | integer with increment increase method inputField value is 10.1
> *** 40814 INFO PASS | integer with increment decrease method at min value is '2.7'
> *** 40815 INFO PASS | integer with increment decrease method at min valueNumber is 2.7
> *** 40816 INFO PASS | integer with increment decrease method at min inputField value is 2.7
> *** 40817 INFO PASS | integer with increment increase method at max value is '10.1'
> *** 40818 INFO PASS | integer with increment increase method at max valueNumber is 10.1
> *** 40819 INFO PASS | integer with increment increase method at max inputField value is 10.1
> *** 40820 INFO PASS | integer with increment key up change event target 
> *** 40821 INFO PASS | integer with increment key up change event fired
> *** 40822 INFO PASS | integer with increment key up
> *** 40823 INFO PASS | integer with increment key up at max change event not fired
> *** 40824 INFO PASS | integer with increment key up at max
> *** 40825 INFO PASS | integer with increment key down change event target 
> *** 40826 INFO PASS | integer with increment key down change event fired
> *** 40827 INFO PASS | integer with increment key down
> *** 40828 INFO PASS | integer with increment key down at min change event not fired
> *** 40829 INFO PASS | integer with increment key down at min
> *** 40830 INFO PASS | integer with increment mouse up change event target 
> *** 40831 INFO PASS | integer with increment mouse up change event fired
> *** 40832 INFO PASS | integer with increment mouse up
> *** 40833 INFO PASS | integer with increment mouse up at max change event not fired
> *** 40834 ERROR FAIL | integer with increment mouse down change event fired | got false, expected true | /tests/toolkit/content/tests/widgets/test_textbox_number.xul
> *** 40835 ERROR FAIL | integer with increment mouse down | got "10.1", expected 5.8 | /tests/toolkit/content/tests/widgets/test_textbox_number.xul
> *** 40836 INFO PASS | integer with increment mouse down at min change event target 
> *** 40837 ERROR FAIL | integer with increment mouse down at min change event not fired | got true, expected false | /tests/toolkit/content/tests/widgets/test_textbox_number.xul
> *** 40838 INFO PASS | integer wraparound decrease method value is '15'
> *** 40839 INFO PASS | integer wraparound decrease method valueNumber is 15
> *** 40840 INFO PASS | integer wraparound decrease method inputField value is 15
> *** 40841 INFO PASS | integer wraparound decrease method value is '5'
> *** 40842 INFO PASS | integer wraparound decrease method valueNumber is 5
> *** 40843 INFO PASS | integer wraparound decrease method inputField value is 5
> *** 40844 INFO PASS | change wrapAround
> *** 40845 INFO PASS | decimal wraparound decrease method value is '10.1'
> *** 40846 INFO PASS | decimal wraparound decrease method valueNumber is 10.1
> *** 40847 INFO PASS | decimal wraparound decrease method inputField value is 10.1
> *** 40848 INFO PASS | decimal wraparound decrease method value is '2.7'
> *** 40849 INFO PASS | decimal wraparound decrease method valueNumber is 2.7
> *** 40850 INFO PASS | decimal wraparound decrease method inputField value is 2.7
> *** 40851 INFO PASS | set decimalPlaces 3 value is '22'
> *** 40852 INFO PASS | set decimalPlaces 3 valueNumber is 22
> *** 40853 INFO PASS | set decimalPlaces 3 inputField value is 22
> *** 40854 INFO PASS | set decimalPlaces 3 set value, value is '10.624'
> *** 40855 INFO PASS | set decimalPlaces 3 set value, valueNumber is 10.624
> *** 40856 INFO PASS | set decimalPlaces 3 set value, inputField value is 10.624
> *** 40857 INFO PASS | set decimalPlaces 0 set value, value is '11'
> *** 40858 INFO PASS | set decimalPlaces 0 set value, valueNumber is 11
> *** 40859 INFO PASS | set decimalPlaces 0 set value, inputField value is 11
> *** 40860 INFO PASS | set decimalPlaces Infinity set value, value is '10.678123'
> *** 40861 INFO PASS | set decimalPlaces Infinity set value, valueNumber is 10.678123
> *** 40862 INFO PASS | set decimalPlaces Infinity set value, inputField value is 10.678123
> *** 40863 INFO PASS | set decimalPlaces set value, value is '9.67'
> *** 40864 INFO PASS | set decimalPlaces set value, valueNumber is 9.67
> *** 40865 INFO PASS | set decimalPlaces set value, inputField value is 9.67
> *** 40866 INFO PASS | key up value is '6'
> *** 40867 INFO PASS | key up valueNumber is 6
> *** 40868 INFO PASS | key up inputField value is 6
> *** 40869 INFO PASS | key down value is '5'
> *** 40870 INFO PASS | key down valueNumber is 5
> *** 40871 INFO PASS | key down inputField value is 5
> *** 40872 INFO PASS | spinbuttons up value is '6'
> *** 40873 INFO PASS | spinbuttons up valueNumber is 6
> *** 40874 INFO PASS | spinbuttons up inputField value is 6
> *** 40875 ERROR FAIL | spinbuttons down value is '5' |  | /tests/toolkit/content/tests/widgets/test_textbox_number.xul
> *** 40876 ERROR FAIL | spinbuttons down valueNumber is 5 |  | /tests/toolkit/content/tests/widgets/test_textbox_number.xul
> *** 40877 ERROR FAIL | spinbuttons down inputField value is 5 |  | /tests/toolkit/content/tests/widgets/test_textbox_number.xul
> *** 40878 INFO PASS | key up at max value is '15'
> *** 40879 INFO PASS | key up at max valueNumber is 15
> *** 40880 INFO PASS | key up at max inputField value is 15
> *** 40881 INFO PASS | spinbuttons up at max value is '15'
> *** 40882 INFO PASS | spinbuttons up at max valueNumber is 15
> *** 40883 INFO PASS | spinbuttons up at max inputField value is 15
> *** 40884 INFO PASS | key down at min value is '5'
> *** 40885 INFO PASS | key down at min valueNumber is 5
> *** 40886 INFO PASS | key down at min inputField value is 5
> *** 40887 ERROR FAIL | spinbuttons down at min value is '5' |  | /tests/toolkit/content/tests/widgets/test_textbox_number.xul
> *** 40888 ERROR FAIL | spinbuttons down at min valueNumber is 5 |  | /tests/toolkit/content/tests/widgets/test_textbox_number.xul
> *** 40889 ERROR FAIL | spinbuttons down at min inputField value is 5 |  | /tests/toolkit/content/tests/widgets/test_textbox_number.xul
> *** 40890 INFO PASS | key up wraparound at max value is '5'
> *** 40891 INFO PASS | key up wraparound at max valueNumber is 5
> *** 40892 INFO PASS | key up wraparound at max inputField value is 5
> *** 40893 INFO PASS | key down wraparound at min value is '15'
> *** 40894 INFO PASS | key down wraparound at min valueNumber is 15
> *** 40895 INFO PASS | key down wraparound at min inputField value is 15
> *** 40896 INFO PASS | spinbuttons up wraparound at max value is '5'
> *** 40897 INFO PASS | spinbuttons up wraparound at max valueNumber is 5
> *** 40898 INFO PASS | spinbuttons up wraparound at max inputField value is 5
> *** 40899 ERROR FAIL | spinbuttons down wraparound at min value is '15' |  | /tests/toolkit/content/tests/widgets/test_textbox_number.xul
> *** 40900 ERROR FAIL | spinbuttons down wraparound at min valueNumber is 15 |  | /tests/toolkit/content/tests/widgets/test_textbox_number.xul
> *** 40901 ERROR FAIL | spinbuttons down wraparound at min inputField value is 15 |  | /tests/toolkit/content/tests/widgets/test_textbox_number.xul
> *** 40902 INFO PASS | key up read only change event not fired
> *** 40903 INFO PASS | key up read only value
> *** 40904 INFO PASS | key down read only change event not fired
> *** 40905 INFO PASS | key down read only value
> *** 40906 INFO PASS | mouse up read only change event not fired
> *** 40907 INFO PASS | mouse up read only value
> *** 40908 INFO PASS | mouse down read only change event not fired
> *** 40909 INFO PASS | mouse down read only value
> *** 40910 INFO PASS | mouse up disabled change event not fired
> *** 40911 INFO PASS | mouse up disabled value
> *** 40912 INFO PASS | mouse down disabled change event not fired
> *** 40913 INFO PASS | mouse down disabled value
> *** 40914 INFO PASS | true
http://lxr.mozilla.org/mozilla/source/toolkit/content/tests/widgets/test_textbox_number.xul
checked-in, and the test is cleared now!
Status: REOPENED → RESOLVED
Closed: 17 years ago17 years ago
Resolution: --- → FIXED
Flags: blocking1.9?
The current approach may be wrong.

If I find another approach for this bug, I'll reopen this.
This appears to only be a problem with some fonts, most fonts render correctly.

Testcase:

1. Open the testcase from xxx

https://bugzilla.mozilla.org/attachment.cgi?id=277665

2. Add in the text below to the textbox

<u lang="zh-CN">_中文测试_</u>

3. Click 'Display'

Result: you'll see the text display in a long list of fonts.

Edit the testcase to change the list of fonts.

On my dev build which includes changes for 299222 but not the patch attached to this bug, the following fonts display the underline at the baseline or below:

LiHei Pro	
LiSong Pro
STFangsong
STHeiti
STKaiti
STSong
STXihei

These fonts display incorrectly:

Apple LiGothic Medium
Apple LiSung Light
Hei Regular
Kai Regular

Both the fonts above are from the same foundry, Shanghai Ikarus.

Attached file testcase
Attached image testcase screenshot
tested on Windows XP SP2, with PMingLiU font, default font in traditional Chinese XP system
I am not sure if this bug is really fixed.

I've created a testcase html file, and tested it in 2.0.0.7 and 3.0a9pre (20071013), using Windows XP SP2 Traditional Chinese, with PMingLiU font. You can see the result in the screenshot. In 3.0a9pre, the underline is still too high. Some characters, such like 色, 土, 賣, are even unidentifiable. 
(In reply to comment #15)
> I am not sure if this bug is really fixed.
> 
> I've created a testcase html file, and tested it in 2.0.0.7 and 3.0a9pre
> (20071013), using Windows XP SP2 Traditional Chinese, with PMingLiU font. You
> can see the result in the screenshot. In 3.0a9pre, the underline is still too
> high. Some characters, such like 色, 土, 賣, are even unidentifiable. 

This bug is not for Win. Probably, this is a font issue of MacOS X.
I can reproduce what Hemiola SUN has reported on Windows XP Home (Both 2.0.0.7 and 3.0a8 use Mingliu font). If I use MS JhengHei instead, the situation is not as bad as using Mingliu. But the gap between underscore and the bottom of words in 3.0a8 is still prominently narrower than that in Fx 2.0.0.7.
(In reply to comment #17)

Please file a new bug about this, specifically for Windows. This bug (380026) is about issues on Mac.

-> REOPEN

this comes back by bug 402524 fixed. but this will be fixed again by bug 417014. please wait a week.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
I'll fix this bug in bug 417014, which need the blacklist of bad fonts.
If you are interesting, please check the bug.
Status: REOPENED → ASSIGNED
now, this bug should be fixed by bug 417014.
Status: ASSIGNED → RESOLVED
Closed: 17 years ago16 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: