Changeset 147723 in webkit


Ignore:
Timestamp:
Apr 5, 2013 1:20:10 AM (11 years ago)
Author:
mikhail.pozdnyakov@intel.com
Message:

[WK2][EFL] Encapsulate view states set-up within WebView
https://bugs.webkit.org/show_bug.cgi?id=110877

Reviewed by Benjamin Poulain.

View states set-up is encapsulated within WebView. This change
reduces both usage of EwkView inside WebView class and usage of
WebPageProxy inside EwkView class.

New WKView API was added so that EwkView can define whether or not
the view is visible and focused.

  • UIProcess/API/C/efl/WKView.cpp:

(WKViewIsFocused):
(WKViewSetIsFocused):
(WKViewIsVisible):
(WKViewSetIsVisible):

  • UIProcess/API/C/efl/WKView.h:
  • UIProcess/API/efl/EwkView.cpp:

(::handleEvent):
(EwkView::handleEvasObjectShow):
(EwkView::handleEwkViewFocusIn):
(EwkView::handleEwkViewFocusOut):

  • UIProcess/API/efl/EwkView.h:
  • UIProcess/efl/WebView.cpp:

(WebKit::WebView::WebView):
(WebKit::WebView::setFocused):
(WebKit):
(WebKit::WebView::setVisible):
(WebKit::WebView::isViewFocused):
(WebKit::WebView::isViewVisible):

  • UIProcess/efl/WebView.h:

(WebKit::WebView::isFocused):
(WebView):
(WebKit::WebView::isVisible):

Location:
trunk/Source/WebKit2
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r147700 r147723  
     12013-04-05  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
     2
     3        [WK2][EFL] Encapsulate view states set-up within WebView
     4        https://bugs.webkit.org/show_bug.cgi?id=110877
     5
     6        Reviewed by Benjamin Poulain.
     7
     8        View states set-up is encapsulated within WebView. This change
     9        reduces both usage of EwkView inside WebView class and usage of
     10        WebPageProxy inside EwkView class.
     11
     12        New WKView API was added so that EwkView can define whether or not
     13        the view is visible and focused.
     14
     15        * UIProcess/API/C/efl/WKView.cpp:
     16        (WKViewIsFocused):
     17        (WKViewSetIsFocused):
     18        (WKViewIsVisible):
     19        (WKViewSetIsVisible):
     20        * UIProcess/API/C/efl/WKView.h:
     21        * UIProcess/API/efl/EwkView.cpp:
     22        (::handleEvent):
     23        (EwkView::handleEvasObjectShow):
     24        (EwkView::handleEwkViewFocusIn):
     25        (EwkView::handleEwkViewFocusOut):
     26        * UIProcess/API/efl/EwkView.h:
     27        * UIProcess/efl/WebView.cpp:
     28        (WebKit::WebView::WebView):
     29        (WebKit::WebView::setFocused):
     30        (WebKit):
     31        (WebKit::WebView::setVisible):
     32        (WebKit::WebView::isViewFocused):
     33        (WebKit::WebView::isViewVisible):
     34        * UIProcess/efl/WebView.h:
     35        (WebKit::WebView::isFocused):
     36        (WebView):
     37        (WebKit::WebView::isVisible):
     38
    1392013-04-04  KwangYong Choi  <ky0.choi@samsung.com>
    240
  • trunk/Source/WebKit2/UIProcess/API/C/efl/WKView.cpp

    r147617 r147723  
    5454{
    5555    toImpl(viewRef)->initializeClient(client);
     56}
     57
     58bool WKViewIsFocused(WKViewRef viewRef)
     59{
     60    return toImpl(viewRef)->isFocused();
     61}
     62
     63void WKViewSetIsFocused(WKViewRef viewRef, bool isFocused)
     64{
     65    toImpl(viewRef)->setFocused(isFocused);
     66}
     67
     68bool WKViewIsVisible(WKViewRef viewRef)
     69{
     70    return toImpl(viewRef)->isVisible();
     71}
     72
     73void WKViewSetIsVisible(WKViewRef viewRef, bool isVisible)
     74{
     75    toImpl(viewRef)->setVisible(isVisible);
    5676}
    5777
  • trunk/Source/WebKit2/UIProcess/API/C/efl/WKView.h

    r147617 r147723  
    5959WK_EXPORT void WKViewSetViewClient(WKViewRef, const WKViewClient*);
    6060
     61WK_EXPORT bool WKViewIsFocused(WKViewRef);
     62WK_EXPORT void WKViewSetIsFocused(WKViewRef, bool);
     63
     64WK_EXPORT bool WKViewIsVisible(WKViewRef);
     65WK_EXPORT void WKViewSetIsVisible(WKViewRef, bool);
     66
    6167WK_EXPORT void WKViewSetUserViewportTranslation(WKViewRef, double tx, double ty);
    6268WK_EXPORT WKPoint WKViewUserViewportToContents(WKViewRef, WKPoint);
  • trunk/Source/WebKit2/UIProcess/API/efl/EwkView.cpp

    r147617 r147723  
    215215{
    216216    Ewk_View_Smart_Data* smartData = static_cast<Ewk_View_Smart_Data*>(data);
    217     toEwkView(smartData)->page()->viewStateDidChange(WebPageProxy::ViewIsVisible);
     217    WKViewSetIsVisible(toEwkView(smartData)->wkView(), true);
    218218}
    219219
     
    222222{
    223223    Ewk_View_Smart_Data* smartData = static_cast<Ewk_View_Smart_Data*>(data);
    224 
    225     // We need to pass ViewIsVisible here. viewStateDidChange() itself is responsible for actually setting the visibility to Visible or Hidden
    226     // depending on what WebPageProxy::isViewVisible() returns, this simply triggers the process.
    227     toEwkView(smartData)->page()->viewStateDidChange(WebPageProxy::ViewIsVisible);
     224    WKViewSetIsVisible(toEwkView(smartData)->wkView(), false);
    228225}
    229226
     
    623620}
    624621
    625 bool EwkView::isFocused() const
    626 {
    627     return evas_object_focus_get(m_evasObject);
    628 }
    629 
    630 bool EwkView::isVisible() const
    631 {
    632     return evas_object_visible_get(m_evasObject);
    633 }
    634 
    635622const char* EwkView::title() const
    636623{
     
    11641151Eina_Bool EwkView::handleEwkViewFocusIn(Ewk_View_Smart_Data* smartData)
    11651152{
    1166     toEwkView(smartData)->page()->viewStateDidChange(WebPageProxy::ViewIsFocused | WebPageProxy::ViewWindowIsActive);
     1153    WKViewSetIsFocused(toEwkView(smartData)->wkView(), true);
    11671154    return true;
    11681155}
     
    11701157Eina_Bool EwkView::handleEwkViewFocusOut(Ewk_View_Smart_Data* smartData)
    11711158{
    1172     toEwkView(smartData)->page()->viewStateDidChange(WebPageProxy::ViewIsFocused | WebPageProxy::ViewWindowIsActive);
     1159    WKViewSetIsFocused(toEwkView(smartData)->wkView(), false);
    11731160    return true;
    11741161}
  • trunk/Source/WebKit2/UIProcess/API/efl/EwkView.h

    r147617 r147723  
    120120    WebKit::PageViewportController* pageViewportController() { return m_pageViewportController.get(); }
    121121
    122     bool isFocused() const;
    123     bool isVisible() const;
    124 
    125122    void setDeviceScaleFactor(float scale);
    126123    float deviceScaleFactor() const;
  • trunk/Source/WebKit2/UIProcess/efl/WebView.cpp

    r147617 r147723  
    5555    : m_ewkView(0)
    5656    , m_page(context->createWebPage(this, pageGroup))
     57    , m_focused(false)
     58    , m_visible(false)
    5759{
    5860    m_page->pageGroup()->preferences()->setAcceleratedCompositingEnabled(true);
     
    103105}
    104106
     107void WebView::setFocused(bool focused)
     108{
     109    if (m_focused == focused)
     110        return;
     111
     112    m_focused = focused;
     113    m_page->viewStateDidChange(WebPageProxy::ViewIsFocused | WebPageProxy::ViewWindowIsActive);
     114}
     115
     116void WebView::setVisible(bool visible)
     117{
     118    if (m_visible == visible)
     119        return;
     120
     121    m_visible = visible;
     122    m_page->viewStateDidChange(WebPageProxy::ViewIsVisible);
     123}
     124
    105125void WebView::setUserViewportTranslation(double tx, double ty)
    106126{
     
    302322bool WebView::isViewFocused()
    303323{
    304     // FIXME: Unneeded after webkit.org/b/110877
    305     if (!m_ewkView)
    306         return false;
    307 
    308     return m_ewkView->isFocused();
     324    return isFocused();
    309325}
    310326
    311327bool WebView::isViewVisible()
    312328{
    313     // FIXME: Unneeded after webkit.org/b/110877
    314     if (!m_ewkView)
    315         return false;
    316 
    317     return m_ewkView->isVisible();
     329    return isVisible();
    318330}
    319331
  • trunk/Source/WebKit2/UIProcess/efl/WebView.h

    r147617 r147723  
    6161    const WebCore::IntSize& size() const { return m_size; }
    6262
     63    bool isFocused() const { return m_focused; }
     64    void setFocused(bool);
     65
     66    bool isVisible() const { return m_visible; }
     67    void setVisible(bool);
     68
    6369    void setUserViewportTranslation(double tx, double ty);
    6470    WebCore::IntPoint userViewportToContents(const WebCore::IntPoint&) const;
     
    186192    WebCore::TransformationMatrix m_userViewportTransform;
    187193    WebCore::IntSize m_size; // Size in device units.
     194    bool m_focused;
     195    bool m_visible;
    188196};
    189197
Note: See TracChangeset for help on using the changeset viewer.