Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(222)

Side by Side Diff: Source/core/rendering/RenderText.cpp

Issue 50293006: Enable correct behaviour for deleting regional indicator symbols on Android OS (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * (C) 1999 Lars Knoll (knoll@kde.org) 2 * (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 2000 Dirk Mueller (mueller@kde.org) 3 * (C) 2000 Dirk Mueller (mueller@kde.org)
4 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. 4 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved.
5 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net) 5 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net)
6 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com) 6 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com)
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 1635 matching lines...) Expand 10 before | Expand all | Expand 10 after
1646 return current - 1; 1646 return current - 1;
1647 1647
1648 long result = iterator->preceding(current); 1648 long result = iterator->preceding(current);
1649 if (result == TextBreakDone) 1649 if (result == TextBreakDone)
1650 result = current - 1; 1650 result = current - 1;
1651 1651
1652 1652
1653 return result; 1653 return result;
1654 } 1654 }
1655 1655
1656 #if OS(MACOSX) || OS(LINUX) 1656 #if OS(MACOSX) || OS(POSIX)
lgombos 2013/11/01 19:13:20 This can and should be changed to #if OS(POSIX).
1657 1657
1658 #define HANGUL_CHOSEONG_START (0x1100) 1658 #define HANGUL_CHOSEONG_START (0x1100)
1659 #define HANGUL_CHOSEONG_END (0x115F) 1659 #define HANGUL_CHOSEONG_END (0x115F)
1660 #define HANGUL_JUNGSEONG_START (0x1160) 1660 #define HANGUL_JUNGSEONG_START (0x1160)
1661 #define HANGUL_JUNGSEONG_END (0x11A2) 1661 #define HANGUL_JUNGSEONG_END (0x11A2)
1662 #define HANGUL_JONGSEONG_START (0x11A8) 1662 #define HANGUL_JONGSEONG_START (0x11A8)
1663 #define HANGUL_JONGSEONG_END (0x11F9) 1663 #define HANGUL_JONGSEONG_END (0x11F9)
1664 #define HANGUL_SYLLABLE_START (0xAC00) 1664 #define HANGUL_SYLLABLE_START (0xAC00)
1665 #define HANGUL_SYLLABLE_END (0xD7AF) 1665 #define HANGUL_SYLLABLE_END (0xD7AF)
1666 #define HANGUL_JONGSEONG_COUNT (28) 1666 #define HANGUL_JONGSEONG_COUNT (28)
(...skipping 21 matching lines...) Expand all
1688 inline bool isRegionalIndicator(UChar32 c) 1688 inline bool isRegionalIndicator(UChar32 c)
1689 { 1689 {
1690 // National flag emoji each consists of a pair of regional indicator symbols . 1690 // National flag emoji each consists of a pair of regional indicator symbols .
1691 return 0x1F1E6 <= c && c <= 0x1F1FF; 1691 return 0x1F1E6 <= c && c <= 0x1F1FF;
1692 } 1692 }
1693 1693
1694 #endif 1694 #endif
1695 1695
1696 int RenderText::previousOffsetForBackwardDeletion(int current) const 1696 int RenderText::previousOffsetForBackwardDeletion(int current) const
1697 { 1697 {
1698 #if OS(MACOSX) || OS(LINUX) 1698 #if OS(MACOSX) || OS(POSIX)
1699 ASSERT(m_text); 1699 ASSERT(m_text);
1700 StringImpl& text = *m_text.impl(); 1700 StringImpl& text = *m_text.impl();
1701 UChar32 character; 1701 UChar32 character;
1702 bool sawRegionalIndicator = false; 1702 bool sawRegionalIndicator = false;
1703 while (current > 0) { 1703 while (current > 0) {
1704 if (U16_IS_TRAIL(text[--current])) 1704 if (U16_IS_TRAIL(text[--current]))
1705 --current; 1705 --current;
1706 if (current < 0) 1706 if (current < 0)
1707 break; 1707 break;
1708 1708
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
1772 } 1772 }
1773 if (state == HangulStateBreak) 1773 if (state == HangulStateBreak)
1774 break; 1774 break;
1775 1775
1776 --current; 1776 --current;
1777 } 1777 }
1778 } 1778 }
1779 1779
1780 return current; 1780 return current;
1781 #else 1781 #else
1782 // Platforms other than Mac or Linux delete by one code point. 1782 // Platforms other than Mac or Unix delete by one code point.
1783 if (U16_IS_TRAIL(m_text[--current])) 1783 if (U16_IS_TRAIL(m_text[--current]))
1784 --current; 1784 --current;
1785 if (current < 0) 1785 if (current < 0)
1786 current = 0; 1786 current = 0;
1787 return current; 1787 return current;
1788 #endif 1788 #endif
1789 } 1789 }
1790 1790
1791 int RenderText::nextOffset(int current) const 1791 int RenderText::nextOffset(int current) const
1792 { 1792 {
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
1841 } 1841 }
1842 secureTextTimer->restartWithNewText(lastTypedCharacterOffset); 1842 secureTextTimer->restartWithNewText(lastTypedCharacterOffset);
1843 } 1843 }
1844 1844
1845 PassRefPtr<AbstractInlineTextBox> RenderText::firstAbstractInlineTextBox() 1845 PassRefPtr<AbstractInlineTextBox> RenderText::firstAbstractInlineTextBox()
1846 { 1846 {
1847 return AbstractInlineTextBox::getOrCreate(this, m_firstTextBox); 1847 return AbstractInlineTextBox::getOrCreate(this, m_firstTextBox);
1848 } 1848 }
1849 1849
1850 } // namespace WebCore 1850 } // namespace WebCore
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698