| Differences between
and this patch
- Source/WebCore/ChangeLog +13 lines
Lines 1-3 Source/WebCore/ChangeLog_sec1
1
2011-02-07  Avi Drissman  <avi@google.com>
2
3
        Reviewed by NOBODY (OOPS!).
4
5
        <option> should implement the dir attribute. Mac Chromium version, followup to r76983, r77654.
6
        https://bugs.webkit.org/show_bug.cgi?id=50969
7
8
        Use manual test Source/WebCore/manual-tests/pop-up-alignment-and-direction.html added in r76983.
9
10
        * platform/chromium/PopupMenuChromium.cpp:
11
        (WebCore::PopupListBox::updateFromElement):
12
        * platform/chromium/PopupMenuChromium.h:
13
1
2011-02-07  Anders Carlsson  <andersca@apple.com>
14
2011-02-07  Anders Carlsson  <andersca@apple.com>
2
15
3
        Reviewed by Dan Bernstein.
16
        Reviewed by Dan Bernstein.
- Source/WebCore/platform/chromium/PopupMenuChromium.cpp +3 lines
Lines 1261-1266 void PopupListBox::updateFromElement() Source/WebCore/platform/chromium/PopupMenuChromium.cpp_sec1
1261
            type = PopupItem::TypeOption;
1261
            type = PopupItem::TypeOption;
1262
        m_items.append(new PopupItem(m_popupClient->itemText(i), type));
1262
        m_items.append(new PopupItem(m_popupClient->itemText(i), type));
1263
        m_items[i]->enabled = isSelectableItem(i);
1263
        m_items[i]->enabled = isSelectableItem(i);
1264
        PopupMenuStyle style = m_popupClient->itemStyle(i);
1265
        m_items[i]->textDirection = style.textDirection();
1266
        m_items[i]->hasTextDirectionOverride = style.hasTextDirectionOverride();
1264
    }
1267
    }
1265
1268
1266
    m_selectedIndex = m_popupClient->selectedIndex();
1269
    m_selectedIndex = m_popupClient->selectedIndex();
- Source/WebCore/platform/chromium/PopupMenuChromium.h +2 lines
Lines 65-70 struct PopupItem { Source/WebCore/platform/chromium/PopupMenuChromium.h_sec1
65
    String label;
65
    String label;
66
    Type type;
66
    Type type;
67
    int yOffset; // y offset of this item, relative to the top of the popup.
67
    int yOffset; // y offset of this item, relative to the top of the popup.
68
    TextDirection textDirection;
69
    bool hasTextDirectionOverride;
68
    bool enabled;
70
    bool enabled;
69
};
71
};
70
72
- Source/WebKit/chromium/ChangeLog +16 lines
Lines 1-3 Source/WebKit/chromium/ChangeLog_sec1
1
2011-02-07  Avi Drissman  <avi@google.com>
2
3
        Reviewed by NOBODY (OOPS!).
4
5
        <option> should implement the dir attribute. Mac Chromium version, followup to r76983, r77654.
6
        https://bugs.webkit.org/show_bug.cgi?id=50969
7
8
        Use manual test Source/WebCore/manual-tests/pop-up-alignment-and-direction.html added in r76983.
9
10
        * public/WebMenuItemInfo.h:
11
        * public/WebPopupMenuInfo.h:
12
        * src/ChromeClientImpl.cpp:
13
        (WebKit::ChromeClientImpl::getPopupMenuInfo):
14
        * src/ExternalPopupMenu.cpp:
15
        (WebKit::ExternalPopupMenu::getPopupMenuInfo):
16
1
2011-02-04  Charlie Reis  <creis@chromium.org>
17
2011-02-04  Charlie Reis  <creis@chromium.org>
2
18
3
        Reviewed by Mihai Parparita.
19
        Reviewed by Mihai Parparita.
- Source/WebKit/chromium/public/WebMenuItemInfo.h +3 lines
Lines 33-38 Source/WebKit/chromium/public/WebMenuItemInfo.h_sec1
33
33
34
#include "WebCommon.h"
34
#include "WebCommon.h"
35
#include "WebString.h"
35
#include "WebString.h"
36
#include "WebTextDirection.h"
36
#include "WebVector.h"
37
#include "WebVector.h"
37
38
38
namespace WebKit {
39
namespace WebKit {
Lines 56-61 struct WebMenuItemInfo { Source/WebKit/chromium/public/WebMenuItemInfo.h_sec2
56
    WebString label;
57
    WebString label;
57
    Type type;
58
    Type type;
58
    unsigned action;
59
    unsigned action;
60
    WebTextDirection textDirection;
61
    bool hasTextDirectionOverride;
59
    bool enabled;
62
    bool enabled;
60
    bool checked;
63
    bool checked;
61
};
64
};
- Source/WebKit/chromium/public/WebPopupMenuInfo.h -2 lines
Lines 38-45 namespace WebKit { Source/WebKit/chromium/public/WebPopupMenuInfo.h_sec1
38
38
39
// Describes the contents of a popup menu.
39
// Describes the contents of a popup menu.
40
struct WebPopupMenuInfo {
40
struct WebPopupMenuInfo {
41
    // FIXME: migrate clients to WebMenuItemInfo and remove this temporary Item typedef.
42
    typedef WebMenuItemInfo Item;
43
    int itemHeight;
41
    int itemHeight;
44
    int itemFontSize;
42
    int itemFontSize;
45
    int selectedIndex;
43
    int selectedIndex;
- Source/WebKit/chromium/src/ChromeClientImpl.cpp -5 / +10 lines
Lines 744-767 void ChromeClientImpl::getPopupMenuInfo( Source/WebKit/chromium/src/ChromeClientImpl.cpp_sec1
744
{
744
{
745
    const Vector<PopupItem*>& inputItems = popupContainer->popupData();
745
    const Vector<PopupItem*>& inputItems = popupContainer->popupData();
746
746
747
    WebVector<WebPopupMenuInfo::Item> outputItems(inputItems.size());
747
    WebVector<WebMenuItemInfo> outputItems(inputItems.size());
748
748
749
    for (size_t i = 0; i < inputItems.size(); ++i) {
749
    for (size_t i = 0; i < inputItems.size(); ++i) {
750
        const PopupItem& inputItem = *inputItems[i];
750
        const PopupItem& inputItem = *inputItems[i];
751
        WebPopupMenuInfo::Item& outputItem = outputItems[i];
751
        WebMenuItemInfo& outputItem = outputItems[i];
752
752
753
        outputItem.label = inputItem.label;
753
        outputItem.label = inputItem.label;
754
        outputItem.enabled = inputItem.enabled;
754
        outputItem.enabled = inputItem.enabled;
755
        if (inputItem.textDirection == WebCore::RTL)
756
            outputItem.textDirection = WebTextDirectionRightToLeft;
757
        else
758
            outputItem.textDirection = WebTextDirectionLeftToRight;
759
        outputItem.hasTextDirectionOverride = inputItem.hasTextDirectionOverride;
755
760
756
        switch (inputItem.type) {
761
        switch (inputItem.type) {
757
        case PopupItem::TypeOption:
762
        case PopupItem::TypeOption:
758
            outputItem.type = WebPopupMenuInfo::Item::Option;
763
            outputItem.type = WebMenuItemInfo::Option;
759
            break;
764
            break;
760
        case PopupItem::TypeGroup:
765
        case PopupItem::TypeGroup:
761
            outputItem.type = WebPopupMenuInfo::Item::Group;
766
            outputItem.type = WebMenuItemInfo::Group;
762
            break;
767
            break;
763
        case PopupItem::TypeSeparator:
768
        case PopupItem::TypeSeparator:
764
            outputItem.type = WebPopupMenuInfo::Item::Separator;
769
            outputItem.type = WebMenuItemInfo::Separator;
765
            break;
770
            break;
766
        default:
771
        default:
767
            ASSERT_NOT_REACHED();
772
            ASSERT_NOT_REACHED();
- Source/WebKit/chromium/src/ExternalPopupMenu.cpp -2 / +8 lines
Lines 128-137 void ExternalPopupMenu::didCancel() Source/WebKit/chromium/src/ExternalPopupMenu.cpp_sec1
128
void ExternalPopupMenu::getPopupMenuInfo(WebPopupMenuInfo* info)
128
void ExternalPopupMenu::getPopupMenuInfo(WebPopupMenuInfo* info)
129
{
129
{
130
    int itemCount = m_popupMenuClient->listSize();
130
    int itemCount = m_popupMenuClient->listSize();
131
    WebVector<WebPopupMenuInfo::Item> items(
131
    WebVector<WebMenuItemInfo> items(
132
        static_cast<size_t>(itemCount));
132
        static_cast<size_t>(itemCount));
133
    for (int i = 0; i < itemCount; ++i) {
133
    for (int i = 0; i < itemCount; ++i) {
134
        WebPopupMenuInfo::Item& popupItem = items[i];
134
        WebMenuItemInfo& popupItem = items[i];
135
        popupItem.label = m_popupMenuClient->itemText(i);
135
        popupItem.label = m_popupMenuClient->itemText(i);
136
        if (m_popupMenuClient->itemIsSeparator(i))
136
        if (m_popupMenuClient->itemIsSeparator(i))
137
            popupItem.type = WebMenuItemInfo::Separator;
137
            popupItem.type = WebMenuItemInfo::Separator;
Lines 140-145 void ExternalPopupMenu::getPopupMenuInfo Source/WebKit/chromium/src/ExternalPopupMenu.cpp_sec2
140
        else
140
        else
141
            popupItem.type = WebMenuItemInfo::Option;
141
            popupItem.type = WebMenuItemInfo::Option;
142
        popupItem.enabled = m_popupMenuClient->itemIsEnabled(i);
142
        popupItem.enabled = m_popupMenuClient->itemIsEnabled(i);
143
        PopupMenuStyle style = m_popupMenuClient->itemStyle(i);
144
        if (style.textDirection() == WebCore::RTL)
145
            popupItem.textDirection = WebTextDirectionRightToLeft;
146
        else
147
            popupItem.textDirection = WebTextDirectionLeftToRight;
148
        popupItem.hasTextDirectionOverride = style.hasTextDirectionOverride();
143
    }
149
    }
144
150
145
    info->itemHeight = m_popupMenuClient->menuStyle().font().fontMetrics().height();
151
    info->itemHeight = m_popupMenuClient->menuStyle().font().fontMetrics().height();

Return to Bug 50969