Changeset 78193 in webkit


Ignore:
Timestamp:
Feb 10, 2011 4:07:10 AM (13 years ago)
Author:
commit-queue@webkit.org
Message:

2011-02-10 Avi Drissman <avi@google.com>

Reviewed by Darin Fisher.

<option> should implement the dir attribute. Mac Chromium version, followup to r76983, r77654.
https://bugs.webkit.org/show_bug.cgi?id=50969

Use manual test Source/WebCore/manual-tests/pop-up-alignment-and-direction.html added in r76983.

  • platform/chromium/PopupMenuChromium.cpp: (WebCore::PopupListBox::updateFromElement):
  • platform/chromium/PopupMenuChromium.h:

2011-02-10 Avi Drissman <avi@google.com>

Reviewed by Darin Fisher.

<option> should implement the dir attribute. Mac Chromium version, followup to r76983, r77654.
https://bugs.webkit.org/show_bug.cgi?id=50969

Use manual test Source/WebCore/manual-tests/pop-up-alignment-and-direction.html added in r76983.

  • public/WebMenuItemInfo.h:
  • public/WebPopupMenuInfo.h:
  • src/ChromeClientImpl.cpp: (WebKit::ChromeClientImpl::getPopupMenuInfo):
  • src/ExternalPopupMenu.cpp: (WebKit::ExternalPopupMenu::getPopupMenuInfo):
Location:
trunk/Source
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r78187 r78193  
     12011-02-10  Avi Drissman  <avi@google.com>
     2
     3        Reviewed by Darin Fisher.
     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
    1142011-02-10  Hans Wennborg  <hans@chromium.org>
    215
  • trunk/Source/WebCore/platform/chromium/PopupMenuChromium.cpp

    r77907 r78193  
    12351235        m_items.append(new PopupItem(m_popupClient->itemText(i), type));
    12361236        m_items[i]->enabled = isSelectableItem(i);
     1237        PopupMenuStyle style = m_popupClient->itemStyle(i);
     1238        m_items[i]->textDirection = style.textDirection();
     1239        m_items[i]->hasTextDirectionOverride = style.hasTextDirectionOverride();
    12371240    }
    12381241
  • trunk/Source/WebCore/platform/chromium/PopupMenuChromium.h

    r77904 r78193  
    6666    Type type;
    6767    int yOffset; // y offset of this item, relative to the top of the popup.
     68    TextDirection textDirection;
     69    bool hasTextDirectionOverride;
    6870    bool enabled;
    6971};
  • trunk/Source/WebKit/chromium/ChangeLog

    r78144 r78193  
     12011-02-10  Avi Drissman  <avi@google.com>
     2
     3        Reviewed by Darin Fisher.
     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
    1172011-02-09  David Holloway  <dhollowa@chromium.org>
    218
  • trunk/Source/WebKit/chromium/public/WebMenuItemInfo.h

    r70222 r78193  
    3434#include "WebCommon.h"
    3535#include "WebString.h"
     36#include "WebTextDirection.h"
    3637#include "WebVector.h"
    3738
     
    5758    Type type;
    5859    unsigned action;
     60    WebTextDirection textDirection;
     61    bool hasTextDirectionOverride;
    5962    bool enabled;
    6063    bool checked;
  • trunk/Source/WebKit/chromium/public/WebPopupMenuInfo.h

    r59179 r78193  
    3939// Describes the contents of a popup menu.
    4040struct WebPopupMenuInfo {
    41     // FIXME: migrate clients to WebMenuItemInfo and remove this temporary Item typedef.
    42     typedef WebMenuItemInfo Item;
    4341    int itemHeight;
    4442    int itemFontSize;
  • trunk/Source/WebKit/chromium/src/ChromeClientImpl.cpp

    r77654 r78193  
    745745    const Vector<PopupItem*>& inputItems = popupContainer->popupData();
    746746
    747     WebVector<WebPopupMenuInfo::Item> outputItems(inputItems.size());
     747    WebVector<WebMenuItemInfo> outputItems(inputItems.size());
    748748
    749749    for (size_t i = 0; i < inputItems.size(); ++i) {
    750750        const PopupItem& inputItem = *inputItems[i];
    751         WebPopupMenuInfo::Item& outputItem = outputItems[i];
     751        WebMenuItemInfo& outputItem = outputItems[i];
    752752
    753753        outputItem.label = inputItem.label;
    754754        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;
    755760
    756761        switch (inputItem.type) {
    757762        case PopupItem::TypeOption:
    758             outputItem.type = WebPopupMenuInfo::Item::Option;
     763            outputItem.type = WebMenuItemInfo::Option;
    759764            break;
    760765        case PopupItem::TypeGroup:
    761             outputItem.type = WebPopupMenuInfo::Item::Group;
     766            outputItem.type = WebMenuItemInfo::Group;
    762767            break;
    763768        case PopupItem::TypeSeparator:
    764             outputItem.type = WebPopupMenuInfo::Item::Separator;
     769            outputItem.type = WebMenuItemInfo::Separator;
    765770            break;
    766771        default:
  • trunk/Source/WebKit/chromium/src/ExternalPopupMenu.cpp

    r76442 r78193  
    129129{
    130130    int itemCount = m_popupMenuClient->listSize();
    131     WebVector<WebPopupMenuInfo::Item> items(
     131    WebVector<WebMenuItemInfo> items(
    132132        static_cast<size_t>(itemCount));
    133133    for (int i = 0; i < itemCount; ++i) {
    134         WebPopupMenuInfo::Item& popupItem = items[i];
     134        WebMenuItemInfo& popupItem = items[i];
    135135        popupItem.label = m_popupMenuClient->itemText(i);
    136136        if (m_popupMenuClient->itemIsSeparator(i))
     
    141141            popupItem.type = WebMenuItemInfo::Option;
    142142        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();
    143149    }
    144150
Note: See TracChangeset for help on using the changeset viewer.