[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

commit-queue at webkit.org commit-queue at webkit.org
Wed Dec 22 14:02:42 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit f732d1c13d58090f104fbdef81e19575a17990b9
Author: commit-queue at webkit.org <commit-queue at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Oct 1 20:05:16 2010 +0000

    2010-10-01  Rafael Antognolli  <antognolli at profusion.mobi>
    
            Reviewed by Kenneth Rohde Christiansen.
    
            [EFL] Call contents_resize when the main frame gets resized.
            https://bugs.webkit.org/show_bug.cgi?id=47004
    
            The previous implementation was just calling contents_resize when the
            viewport size had changed. That's not enough, and contents_resize
            shouldn't be called if the contents size didn't change.
    
            Now the contents_size_changed function is called directly from the
            ChromeClientEfl.
    
            * WebCoreSupport/ChromeClientEfl.cpp:
            (WebCore::ChromeClientEfl::contentsSizeChanged):
            * ewk/ewk_private.h:
            * ewk/ewk_view.cpp:
            (_ewk_view_smart_calculate):
            (ewk_view_fixed_layout_size_set):
            (ewk_view_contents_size_changed):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@68918 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/efl/ChangeLog b/WebKit/efl/ChangeLog
index 7659be0..8522612 100644
--- a/WebKit/efl/ChangeLog
+++ b/WebKit/efl/ChangeLog
@@ -1,3 +1,25 @@
+2010-10-01  Rafael Antognolli  <antognolli at profusion.mobi>
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        [EFL] Call contents_resize when the main frame gets resized.
+        https://bugs.webkit.org/show_bug.cgi?id=47004
+
+        The previous implementation was just calling contents_resize when the
+        viewport size had changed. That's not enough, and contents_resize
+        shouldn't be called if the contents size didn't change.
+
+        Now the contents_size_changed function is called directly from the
+        ChromeClientEfl.
+
+        * WebCoreSupport/ChromeClientEfl.cpp:
+        (WebCore::ChromeClientEfl::contentsSizeChanged):
+        * ewk/ewk_private.h:
+        * ewk/ewk_view.cpp:
+        (_ewk_view_smart_calculate):
+        (ewk_view_fixed_layout_size_set):
+        (ewk_view_contents_size_changed):
+
 2010-09-29  João Paulo Rechi Vita  <jprvita at profusion.mobi>
 
         Reviewed by Antonio Gomes.
diff --git a/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp b/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp
index 21747a1..bd9e055 100644
--- a/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp
+++ b/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp
@@ -319,6 +319,8 @@ IntRect ChromeClientEfl::windowResizerRect() const
 void ChromeClientEfl::contentsSizeChanged(Frame* frame, const IntSize& size) const
 {
     ewk_frame_contents_size_changed(kit(frame), size.width(), size.height());
+    if (ewk_view_frame_main_get(m_view) == kit(frame))
+        ewk_view_contents_size_changed(m_view, size.width(), size.height());
 }
 
 IntRect ChromeClientEfl::windowToScreen(const IntRect& rect) const
diff --git a/WebKit/efl/ewk/ewk_private.h b/WebKit/efl/ewk/ewk_private.h
index eaad13c..5b89b8c 100644
--- a/WebKit/efl/ewk/ewk_private.h
+++ b/WebKit/efl/ewk/ewk_private.h
@@ -150,6 +150,8 @@ WTF::PassRefPtr<WebCore::Widget> ewk_frame_plugin_create(Evas_Object* o, const W
 
 Eina_Bool ewk_view_navigation_policy_decision(Evas_Object* o, Ewk_Frame_Resource_Request* request);
 
+void ewk_view_contents_size_changed(Evas_Object *o, Evas_Coord w, Evas_Coord h);
+
 #ifdef __cplusplus
 
 }
diff --git a/WebKit/efl/ewk/ewk_view.cpp b/WebKit/efl/ewk/ewk_view.cpp
index 19efbfa..3b93516 100644
--- a/WebKit/efl/ewk/ewk_view.cpp
+++ b/WebKit/efl/ewk/ewk_view.cpp
@@ -805,10 +805,6 @@ static void _ewk_view_smart_calculate(Evas_Object* o)
             view->resize(w, h);
             view->forceLayout();
             view->adjustViewSize();
-            IntSize size = view->contentsSize();
-            if (!sd->api->contents_resize(sd, size.width(), size.height()))
-                ERR("failed to resize contents to %dx%d",
-                    size.width(), size.height());
         }
         evas_object_resize(sd->main_frame, w, h);
         sd->changed.frame_rect = EINA_TRUE;
@@ -4213,3 +4209,22 @@ Eina_Bool ewk_view_navigation_policy_decision(Evas_Object* o, Ewk_Frame_Resource
 
     return sd->api->navigation_policy_decision(sd, request);
 }
+
+/**
+ * @internal
+ * Reports that the contents have resized. The ewk_view calls contents_resize,
+ * which can be reimplemented as needed.
+ *
+ * @param o view.
+ * @param w new content width.
+ * @param h new content height.
+ */
+void ewk_view_contents_size_changed(Evas_Object *o, int w, int h)
+{
+    EWK_VIEW_SD_GET_OR_RETURN(o, sd);
+    EINA_SAFETY_ON_NULL_RETURN(sd->api);
+    EINA_SAFETY_ON_NULL_RETURN(sd->api->contents_resize);
+
+    if (!sd->api->contents_resize(sd, w, h))
+        ERR("failed to resize contents to %dx%d", w, h);
+}

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list