Changeset 74285 in webkit


Ignore:
Timestamp:
Dec 17, 2010 1:08:36 PM (13 years ago)
Author:
bweinstein@apple.com
Message:

Text area does not update when you arrow through a <select> in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=51269
<rdar://problem/8612853>

Reviewed by Anders Carlsson.

Patch by Sam Weinig.

Insteaed of keeping track of the selected index of a <select> just in the UI process, we
need to pass this information along to the web process so that the web process can draw
the correct text in the text field at the top of the select, when the selection changes (via
the arrows or other typing while the select is opened).

When the selected item in a popup changes, the UI process sends a message to the web process, telling
it about the new selected index. The web process gets this message, and then sets the text that
is visible in the select element.

  • UIProcess/API/mac/PageClientImpl.h: CreatePopupMenuProxy now takes a WebPageProxy.
  • UIProcess/API/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::createPopupMenuProxy): Pass the WebPageProxy to create.

  • UIProcess/API/qt/qwkpage.cpp:

(QWKPagePrivate::createPopupMenuProxy):

  • UIProcess/API/qt/qwkpage_p.h: CreatePopupMenuProxy now takes a WebPageProxy.
  • UIProcess/PageClient.h: CreatePopupMenuProxy now takes a WebPageProxy.
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::valueChangedForPopupMenu): Send that the selected index changed to the

web process.selected

(WebKit::WebPageProxy::setTextFromItemForPopupMenu): Send that we should update the text for the

active popup menu (with the index of the item to show).

(WebKit::WebPageProxy::showPopupMenu): Pass the WebPageProxy to createPopupMenuProxy.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPopupMenuProxy.h: Add a client who has virtual functions for the state changing of the

popup menu. ShowPopupMenu doesn't take a new selected index anymore, that is handled by the client,
and calling down to the web process.

(WebKit::WebPopupMenuProxy::Client::~Client):
(WebKit::WebPopupMenuProxy::WebPopupMenuProxy): Initialize the client.

  • UIProcess/mac/WebPopupMenuProxyMac.h:

(WebKit::WebPopupMenuProxyMac::create): Takes a WebPopupMenuProxy::Client, and passes it to the constructor.

  • UIProcess/mac/WebPopupMenuProxyMac.mm:

(WebKit::WebPopupMenuProxyMac::WebPopupMenuProxyMac): Update what's initialized by the constructor.
(WebKit::WebPopupMenuProxyMac::showPopupMenu): Call through to the web process that the value changed.

  • UIProcess/qt/WebPopupMenuProxyQt.cpp:

(WebKit::WebPopupMenuProxyQt::WebPopupMenuProxyQt): Update what's initialized by the constructor.

  • UIProcess/win/WebPopupMenuProxyWin.cpp:

(WebKit::WebPopupMenuProxyWin::WebPopupMenuProxyWin): Ditto.
(WebKit::WebPopupMenuProxyWin::showPopupMenu): Call through to the web process that the value changed.
(WebKit::WebPopupMenuProxyWin::setFocusedIndex): Resolve a FIXME to set the text of the popup menu.

  • UIProcess/win/WebPopupMenuProxyWin.h:

(WebKit::WebPopupMenuProxyWin::create): Take in a WebPopupMenuProxy::client, and pass it to the constructor.

  • UIProcess/win/WebView.cpp:

(WebKit::WebView::createPopupMenuProxy): Pass the WebPageProxy to create.

  • UIProcess/win/WebView.h:
  • WebProcess/WebCoreSupport/WebPopupMenu.cpp:

(WebKit::WebPopupMenu::setTextForIndex): Call through to setTextFromItem to set the select text.

  • WebProcess/WebCoreSupport/WebPopupMenu.h:
  • WebProcess/WebPage/WebPage.cpp: Call through to setTextForIndex on the active popup menu.

(WebKit::WebPage::setTextForActivePopupMenu):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in: Add a new message.
Location:
trunk/WebKit2
Files:
21 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKit2/ChangeLog

    r74284 r74285  
     12010-12-17  Brian Weinstein  <bweinstein@apple.com>
     2
     3        Reviewed by Anders Carlsson.
     4
     5        Text area does not update when you arrow through a <select> in WebKit2
     6        https://bugs.webkit.org/show_bug.cgi?id=51269
     7        <rdar://problem/8612853>
     8       
     9        Patch by Sam Weinig.
     10       
     11        Insteaed of keeping track of the selected index of a <select> just in the UI process, we
     12        need to pass this information along to the web process so that the web process can draw
     13        the correct text in the text field at the top of the select, when the selection changes (via
     14        the arrows or other typing while the select is opened).
     15       
     16        When the selected item in a popup changes, the UI process sends a message to the web process, telling
     17        it about the new selected index. The web process gets this message, and then sets the text that
     18        is visible in the select element.
     19
     20        * UIProcess/API/mac/PageClientImpl.h: CreatePopupMenuProxy now takes a WebPageProxy.
     21        * UIProcess/API/mac/PageClientImpl.mm:
     22        (WebKit::PageClientImpl::createPopupMenuProxy): Pass the WebPageProxy to create.
     23        * UIProcess/API/qt/qwkpage.cpp:
     24        (QWKPagePrivate::createPopupMenuProxy):
     25        * UIProcess/API/qt/qwkpage_p.h: CreatePopupMenuProxy now takes a WebPageProxy.
     26        * UIProcess/PageClient.h: CreatePopupMenuProxy now takes a WebPageProxy.
     27        * UIProcess/WebPageProxy.cpp:
     28        (WebKit::WebPageProxy::valueChangedForPopupMenu): Send that the selected index changed to the
     29            web process.selected
     30        (WebKit::WebPageProxy::setTextFromItemForPopupMenu): Send that we should update the text for the
     31            active popup menu (with the index of the item to show).
     32        (WebKit::WebPageProxy::showPopupMenu): Pass the WebPageProxy to createPopupMenuProxy.
     33        * UIProcess/WebPageProxy.h:
     34        * UIProcess/WebPopupMenuProxy.h: Add a client who has virtual functions for the state changing of the
     35            popup menu. ShowPopupMenu doesn't take a new selected index anymore, that is handled by the client,
     36            and calling down to the web process.
     37        (WebKit::WebPopupMenuProxy::Client::~Client):
     38        (WebKit::WebPopupMenuProxy::WebPopupMenuProxy): Initialize the client.
     39        * UIProcess/mac/WebPopupMenuProxyMac.h:
     40        (WebKit::WebPopupMenuProxyMac::create): Takes a WebPopupMenuProxy::Client, and passes it to the constructor.
     41        * UIProcess/mac/WebPopupMenuProxyMac.mm:
     42        (WebKit::WebPopupMenuProxyMac::WebPopupMenuProxyMac): Update what's initialized by the constructor.
     43        (WebKit::WebPopupMenuProxyMac::showPopupMenu): Call through to the web process that the value changed.
     44        * UIProcess/qt/WebPopupMenuProxyQt.cpp:
     45        (WebKit::WebPopupMenuProxyQt::WebPopupMenuProxyQt): Update what's initialized by the constructor.
     46        * UIProcess/win/WebPopupMenuProxyWin.cpp:
     47        (WebKit::WebPopupMenuProxyWin::WebPopupMenuProxyWin): Ditto.
     48        (WebKit::WebPopupMenuProxyWin::showPopupMenu): Call through to the web process that the value changed.
     49        (WebKit::WebPopupMenuProxyWin::setFocusedIndex): Resolve a FIXME to set the text of the popup menu.
     50        * UIProcess/win/WebPopupMenuProxyWin.h:
     51        (WebKit::WebPopupMenuProxyWin::create): Take in a WebPopupMenuProxy::client, and pass it to the constructor.
     52        * UIProcess/win/WebView.cpp:
     53        (WebKit::WebView::createPopupMenuProxy): Pass the WebPageProxy to create.
     54        * UIProcess/win/WebView.h:
     55        * WebProcess/WebCoreSupport/WebPopupMenu.cpp:
     56        (WebKit::WebPopupMenu::setTextForIndex): Call through to setTextFromItem to set the select text.
     57        * WebProcess/WebCoreSupport/WebPopupMenu.h:
     58        * WebProcess/WebPage/WebPage.cpp: Call through to setTextForIndex on the active popup menu.
     59        (WebKit::WebPage::setTextForActivePopupMenu):
     60        * WebProcess/WebPage/WebPage.h:
     61        * WebProcess/WebPage/WebPage.messages.in: Add a new message.
     62
    1632010-12-17  Anders Carlsson  <andersca@apple.com>
    264
  • trunk/WebKit2/UIProcess/API/mac/PageClientImpl.h

    r74037 r74285  
    6767    virtual void selectionChanged(bool, bool, bool, bool, uint64_t, uint64_t);
    6868
    69     virtual PassRefPtr<WebPopupMenuProxy> createPopupMenuProxy();
     69    virtual PassRefPtr<WebPopupMenuProxy> createPopupMenuProxy(WebPageProxy*);
    7070    virtual PassRefPtr<WebContextMenuProxy> createContextMenuProxy(WebPageProxy*);
    7171
  • trunk/WebKit2/UIProcess/API/mac/PageClientImpl.mm

    r74037 r74285  
    248248}
    249249
    250 PassRefPtr<WebPopupMenuProxy> PageClientImpl::createPopupMenuProxy()
    251 {
    252     return WebPopupMenuProxyMac::create(m_wkView);
     250PassRefPtr<WebPopupMenuProxy> PageClientImpl::createPopupMenuProxy(WebPageProxy* page)
     251{
     252    return WebPopupMenuProxyMac::create(m_wkView, page);
    253253}
    254254
  • trunk/WebKit2/UIProcess/API/qt/qwkpage.cpp

    r74139 r74285  
    137137}
    138138
    139 PassRefPtr<WebPopupMenuProxy> QWKPagePrivate::createPopupMenuProxy()
     139PassRefPtr<WebPopupMenuProxy> QWKPagePrivate::createPopupMenuProxy(WebPageProxy*)
    140140{
    141141    return WebPopupMenuProxyQt::create();
  • trunk/WebKit2/UIProcess/API/qt/qwkpage_p.h

    r73986 r74285  
    6363    virtual void didNotHandleKeyEvent(const WebKit::NativeWebKeyboardEvent&);
    6464    virtual void selectionChanged(bool, bool, bool, bool);
    65     virtual PassRefPtr<WebKit::WebPopupMenuProxy> createPopupMenuProxy();
     65    virtual PassRefPtr<WebKit::WebPopupMenuProxy> createPopupMenuProxy(WebKit::WebPageProxy*);
    6666    virtual PassRefPtr<WebKit::WebContextMenuProxy> createContextMenuProxy(WebKit::WebPageProxy*);
    6767
  • trunk/WebKit2/UIProcess/PageClient.h

    r74164 r74285  
    8383    virtual void didNotHandleKeyEvent(const NativeWebKeyboardEvent&) = 0;
    8484
    85     virtual PassRefPtr<WebPopupMenuProxy> createPopupMenuProxy() = 0;
     85    virtual PassRefPtr<WebPopupMenuProxy> createPopupMenuProxy(WebPageProxy*) = 0;
    8686    virtual PassRefPtr<WebContextMenuProxy> createContextMenuProxy(WebPageProxy*) = 0;
    8787
  • trunk/WebKit2/UIProcess/WebPageProxy.cpp

    r74282 r74285  
    14491449}
    14501450
     1451void WebPageProxy::valueChangedForPopupMenu(WebPopupMenuProxy*, int32_t newSelectedIndex)
     1452{
     1453    process()->send(Messages::WebPage::DidChangeSelectedIndexForActivePopupMenu(newSelectedIndex), m_pageID);
     1454}
     1455
     1456void WebPageProxy::setTextFromItemForPopupMenu(WebPopupMenuProxy*, int32_t index)
     1457{
     1458    process()->send(Messages::WebPage::SetTextForActivePopupMenu(index), m_pageID);
     1459}
     1460
    14511461void WebPageProxy::showPopupMenu(const IntRect& rect, const Vector<WebPopupItem>& items, int32_t selectedIndex, const PlatformPopupMenuData& data)
    14521462{
     
    14541464        m_activePopupMenu->hidePopupMenu();
    14551465    else
    1456         m_activePopupMenu = m_pageClient->createPopupMenuProxy();
    1457 
    1458     int32_t newSelectedIndex = 0;
    1459     m_activePopupMenu->showPopupMenu(rect, items, data, selectedIndex, newSelectedIndex);
    1460 
    1461     process()->send(Messages::WebPage::DidChangeSelectedIndexForActivePopupMenu(newSelectedIndex), m_pageID);
     1466        m_activePopupMenu = m_pageClient->createPopupMenuProxy(this);
     1467
     1468    m_activePopupMenu->showPopupMenu(rect, items, data, selectedIndex);
    14621469    m_activePopupMenu = 0;
    14631470}
  • trunk/WebKit2/UIProcess/WebPageProxy.h

    r74282 r74285  
    4343#include "WebLoaderClient.h"
    4444#include "WebPolicyClient.h"
     45#include "WebPopupMenuProxy.h"
    4546#include "WebUIClient.h"
    4647#include <WebCore/EditAction.h>
     
    101102typedef GenericCallback<WKStringRef, StringImpl*> ContentsAsStringCallback;
    102103
    103 class WebPageProxy : public APIObject {
     104class WebPageProxy : public APIObject, public WebPopupMenuProxy::Client {
    104105public:
    105106    static const Type APIType = TypePage;
     
    297298
    298299    virtual Type type() const { return APIType; }
     300
     301    // WebPopupMenuProxy::Client
     302    virtual void valueChangedForPopupMenu(WebPopupMenuProxy*, int32_t newSelectedIndex);
     303    virtual void setTextFromItemForPopupMenu(WebPopupMenuProxy*, int32_t index);
    299304
    300305    // Implemented in generated WebPageProxyMessageReceiver.cpp
  • trunk/WebKit2/UIProcess/WebPopupMenuProxy.h

    r71640 r74285  
    4141
    4242class WebPopupMenuProxy : public RefCounted<WebPopupMenuProxy> {
    43 public:   
     43public:
     44    class Client {
     45    protected:
     46        virtual ~Client()
     47        {
     48        }
     49
     50    public:
     51        virtual void valueChangedForPopupMenu(WebPopupMenuProxy*, int32_t newSelectedIndex) = 0;
     52        virtual void setTextFromItemForPopupMenu(WebPopupMenuProxy*, int32_t index) = 0;
     53    };
     54
    4455    virtual ~WebPopupMenuProxy()
    4556    {
    4657    }
    4758
    48     virtual void showPopupMenu(const WebCore::IntRect& rect, const Vector<WebPopupItem>& items, const PlatformPopupMenuData&, int32_t selectedIndex, int32_t& newSelectedIndex) = 0;
     59    virtual void showPopupMenu(const WebCore::IntRect& rect, const Vector<WebPopupItem>& items, const PlatformPopupMenuData&, int32_t selectedIndex) = 0;
    4960    virtual void hidePopupMenu() = 0;
    5061
    5162protected:
    52     WebPopupMenuProxy()
     63    WebPopupMenuProxy(Client* client)
     64        : m_client(client)
    5365    {
    5466    }
     67
     68    Client* m_client;
    5569};
    5670
  • trunk/WebKit2/UIProcess/mac/WebPopupMenuProxyMac.h

    r71640 r74285  
    4444class WebPopupMenuProxyMac : public WebPopupMenuProxy {
    4545public:
    46     static PassRefPtr<WebPopupMenuProxyMac> create(WKView* webView)
     46    static PassRefPtr<WebPopupMenuProxyMac> create(WKView* webView, WebPopupMenuProxy::Client* client)
    4747    {
    48         return adoptRef(new WebPopupMenuProxyMac(webView));
     48        return adoptRef(new WebPopupMenuProxyMac(webView, client));
    4949    }
    5050    ~WebPopupMenuProxyMac();
    5151
    52     virtual void showPopupMenu(const WebCore::IntRect&, const Vector<WebPopupItem>&, const PlatformPopupMenuData&, int32_t selectedIndex, int32_t& newSelectedIndex);
     52    virtual void showPopupMenu(const WebCore::IntRect&, const Vector<WebPopupItem>&, const PlatformPopupMenuData&, int32_t selectedIndex);
    5353    virtual void hidePopupMenu();
    5454
    5555private:
    56     WebPopupMenuProxyMac(WKView*);
     56    WebPopupMenuProxyMac(WKView*, WebPopupMenuProxy::Client* client);
    5757
    5858    void populate(const Vector<WebPopupItem>&);
  • trunk/WebKit2/UIProcess/mac/WebPopupMenuProxyMac.mm

    r71640 r74285  
    3636namespace WebKit {
    3737
    38 WebPopupMenuProxyMac::WebPopupMenuProxyMac(WKView* webView)
    39     : m_webView(webView)
     38WebPopupMenuProxyMac::WebPopupMenuProxyMac(WKView* webView, WebPopupMenuProxy::Client* client)
     39    : WebPopupMenuProxy(client)
     40    , m_webView(webView)
    4041{
    4142}
     
    7172}
    7273
    73 void WebPopupMenuProxyMac::showPopupMenu(const IntRect& rect, const Vector<WebPopupItem>& items, const PlatformPopupMenuData&, int32_t selectedIndex, int32_t& newSelectedIndex)
     74void WebPopupMenuProxyMac::showPopupMenu(const IntRect& rect, const Vector<WebPopupItem>& items, const PlatformPopupMenuData&, int32_t selectedIndex)
    7475{
    7576    populate(items);
     
    9798    [dummyView.get() removeFromSuperview];
    9899
    99     newSelectedIndex = [m_popup.get() indexOfSelectedItem];
     100    m_client->valueChangedForPopupMenu(this, [m_popup.get() indexOfSelectedItem]);
    100101}
    101102
  • trunk/WebKit2/UIProcess/qt/WebPopupMenuProxyQt.cpp

    r71640 r74285  
    3434
    3535WebPopupMenuProxyQt::WebPopupMenuProxyQt()
     36    : WebPopupMenuProxy(0)
    3637{
    3738}
     
    4142}
    4243
    43 void WebPopupMenuProxyQt::showPopupMenu(const IntRect& rect, const Vector<WebPopupItem>& items, const PlatformPopupMenuData&, int32_t selectedIndex, int32_t& newSelectedIndex)
     44void WebPopupMenuProxyQt::showPopupMenu(const IntRect& rect, const Vector<WebPopupItem>& items, const PlatformPopupMenuData&, int32_t selectedIndex)
    4445{
    4546}
  • trunk/WebKit2/UIProcess/win/WebPopupMenuProxyWin.cpp

    r73852 r74285  
    159159}
    160160
    161 WebPopupMenuProxyWin::WebPopupMenuProxyWin(WebView* webView)
    162     : m_webView(webView)
     161WebPopupMenuProxyWin::WebPopupMenuProxyWin(WebView* webView, WebPopupMenuProxy::Client* client)
     162    : WebPopupMenuProxy(client)
     163    , m_webView(webView)
    163164    , m_newSelectedIndex(0)
    164165    , m_popup(0)
     
    187188}
    188189
    189 void WebPopupMenuProxyWin::showPopupMenu(const IntRect& rect, const Vector<WebPopupItem>& items, const PlatformPopupMenuData& data, int32_t selectedIndex, int32_t& newSelectedIndex)
     190void WebPopupMenuProxyWin::showPopupMenu(const IntRect& rect, const Vector<WebPopupItem>& items, const PlatformPopupMenuData& data, int32_t selectedIndex)
    190191{
    191192    m_items = items;
     
    323324    ::ShowWindow(m_popup, SW_HIDE);
    324325
    325     newSelectedIndex = m_newSelectedIndex;
     326    m_client->valueChangedForPopupMenu(this, m_newSelectedIndex);
    326327}
    327328
     
    847848    m_focusedIndex = i;
    848849
    849     // FIXME: If we are not hotTracking, we need to send a message back to the WebProcess to
    850     // call the popupMenuClient's setTextFromItem function of this index.  This will update
    851     // the currently displayed item at the top of the list.
     850    if (!hotTracking)
     851        m_client->setTextFromItemForPopupMenu(this, i);
    852852
    853853    if (!scrollToRevealSelection())
  • trunk/WebKit2/UIProcess/win/WebPopupMenuProxyWin.h

    r71640 r74285  
    4343class WebPopupMenuProxyWin : public WebPopupMenuProxy, private WebCore::ScrollbarClient  {
    4444public:
    45     static PassRefPtr<WebPopupMenuProxyWin> create(WebView* webView)
     45    static PassRefPtr<WebPopupMenuProxyWin> create(WebView* webView, WebPopupMenuProxy::Client* client)
    4646    {
    47         return adoptRef(new WebPopupMenuProxyWin(webView));
     47        return adoptRef(new WebPopupMenuProxyWin(webView, client));
    4848    }
    4949    ~WebPopupMenuProxyWin();
    5050
    51     virtual void showPopupMenu(const WebCore::IntRect&, const Vector<WebPopupItem>&, const PlatformPopupMenuData&, int32_t selectedIndex, int32_t& newSelectedIndex);
     51    virtual void showPopupMenu(const WebCore::IntRect&, const Vector<WebPopupItem>&, const PlatformPopupMenuData&, int32_t selectedIndex);
    5252    virtual void hidePopupMenu();
    5353
     
    5555
    5656private:
    57     WebPopupMenuProxyWin(WebView*);
     57    WebPopupMenuProxyWin(WebView*, WebPopupMenuProxy::Client*);
    5858
    5959    WebCore::Scrollbar* scrollbar() const { return m_scrollbar.get(); }
  • trunk/WebKit2/UIProcess/win/WebView.cpp

    r74284 r74285  
    927927}
    928928
    929 PassRefPtr<WebPopupMenuProxy> WebView::createPopupMenuProxy()
    930 {
    931     return WebPopupMenuProxyWin::create(this);
     929PassRefPtr<WebPopupMenuProxy> WebView::createPopupMenuProxy(WebPageProxy* page)
     930{
     931    return WebPopupMenuProxyWin::create(this, page);
    932932}
    933933
  • trunk/WebKit2/UIProcess/win/WebView.h

    r74164 r74285  
    119119    virtual void selectionChanged(bool, bool, bool, bool);
    120120    virtual void compositionSelectionChanged(bool);
    121     virtual PassRefPtr<WebPopupMenuProxy> createPopupMenuProxy();
     121    virtual PassRefPtr<WebPopupMenuProxy> createPopupMenuProxy(WebPageProxy*);
    122122    virtual PassRefPtr<WebContextMenuProxy> createContextMenuProxy(WebPageProxy*);
    123123    virtual void setFindIndicator(PassRefPtr<FindIndicator>, bool fadeOut);
  • trunk/WebKit2/WebProcess/WebCoreSupport/WebPopupMenu.cpp

    r73852 r74285  
    6464}
    6565
     66void WebPopupMenu::setTextForIndex(int index)
     67{
     68    if (!m_popupClient)
     69        return;
     70
     71    m_popupClient->setTextFromItem(index);
     72}
     73
    6674Vector<WebPopupItem> WebPopupMenu::populateItems()
    6775{
  • trunk/WebKit2/WebProcess/WebCoreSupport/WebPopupMenu.h

    r73852 r74285  
    4646    void disconnectFromPage() { m_page = 0; }
    4747    void didChangeSelectedIndex(int newIndex);
     48    void setTextForIndex(int newIndex);
    4849
    4950    virtual void show(const WebCore::IntRect&, WebCore::FrameView*, int index);
  • trunk/WebKit2/WebProcess/WebPage/WebPage.cpp

    r74275 r74285  
    11171117}
    11181118
     1119void WebPage::setTextForActivePopupMenu(int32_t index)
     1120{
     1121    if (!m_activePopupMenu)
     1122        return;
     1123
     1124    m_activePopupMenu->setTextForIndex(index);
     1125}
     1126
    11191127void WebPage::didSelectItemFromActiveContextMenu(const WebContextMenuItemData& item)
    11201128{
  • trunk/WebKit2/WebProcess/WebPage/WebPage.h

    r74275 r74285  
    338338
    339339    void didChangeSelectedIndexForActivePopupMenu(int32_t newIndex);
     340    void setTextForActivePopupMenu(int32_t index);
    340341
    341342    void didChooseFilesForOpenPanel(const Vector<String>&);
  • trunk/WebKit2/WebProcess/WebPage/WebPage.messages.in

    r74275 r74285  
    8888    # Popup menu.
    8989    DidChangeSelectedIndexForActivePopupMenu(int32_t newIndex);
     90    SetTextForActivePopupMenu(int32_t index);
    9091   
    9192    # Context menu.
Note: See TracChangeset for help on using the changeset viewer.