Title: [101135] trunk/Source/WebKit/efl
Revision
101135
Author
[email protected]
Date
2011-11-24 05:35:10 -0800 (Thu, 24 Nov 2011)

Log Message

[EFL] Add implementation considering ewk_tiled_backing_store's visible status.
https://bugs.webkit.org/show_bug.cgi?id=71791

Patch by KwangHyuk Kim <[email protected]> on 2011-11-24
Reviewed by Gustavo Noronha Silva.

In order to prevent rendering and pre-rendering while backing store is hidden,
its visibility is checked and pre-rendering is handled whenever backing store is shown or hidden.

* ewk/ewk_tiled_backing_store.cpp:
(_ewk_tiled_backing_store_item_process_idler_start):
(_ewk_tiled_backing_store_item_fill):
(_ewk_tiled_backing_store_smart_show):
(_ewk_tiled_backing_store_smart_hide):
(ewk_tiled_backing_store_add):

Modified Paths

Diff

Modified: trunk/Source/WebKit/efl/ChangeLog (101134 => 101135)


--- trunk/Source/WebKit/efl/ChangeLog	2011-11-24 13:27:57 UTC (rev 101134)
+++ trunk/Source/WebKit/efl/ChangeLog	2011-11-24 13:35:10 UTC (rev 101135)
@@ -1,3 +1,20 @@
+2011-11-24  KwangHyuk Kim  <[email protected]>
+
+        [EFL] Add implementation considering ewk_tiled_backing_store's visible status.
+        https://bugs.webkit.org/show_bug.cgi?id=71791
+
+        Reviewed by Gustavo Noronha Silva.
+
+        In order to prevent rendering and pre-rendering while backing store is hidden,
+        its visibility is checked and pre-rendering is handled whenever backing store is shown or hidden.
+
+        * ewk/ewk_tiled_backing_store.cpp:
+        (_ewk_tiled_backing_store_item_process_idler_start):
+        (_ewk_tiled_backing_store_item_fill):
+        (_ewk_tiled_backing_store_smart_show):
+        (_ewk_tiled_backing_store_smart_hide):
+        (ewk_tiled_backing_store_add):
+
 2011-11-22  Pavel Feldman  <[email protected]>
 
         Web Inspector: remove Inspector::bringToFront from the protocol.

Modified: trunk/Source/WebKit/efl/ewk/ewk_tiled_backing_store.cpp (101134 => 101135)


--- trunk/Source/WebKit/efl/ewk/ewk_tiled_backing_store.cpp	2011-11-24 13:27:57 UTC (rev 101134)
+++ trunk/Source/WebKit/efl/ewk/ewk_tiled_backing_store.cpp	2011-11-24 13:35:10 UTC (rev 101135)
@@ -379,7 +379,7 @@
 
 static inline void _ewk_tiled_backing_store_item_process_idler_start(Ewk_Tiled_Backing_Store_Data* priv)
 {
-    if (priv->render.idler)
+    if (priv->render.idler || !evas_object_visible_get(priv->self))
         return;
     priv->render.idler = ecore_idler_add(
         _ewk_tiled_backing_store_item_process_idler_cb, priv);
@@ -410,6 +410,9 @@
 
 static inline Eina_Bool _ewk_tiled_backing_store_item_fill(Ewk_Tiled_Backing_Store_Data* priv, Ewk_Tiled_Backing_Store_Item* item, unsigned long column, unsigned long row)
 {
+    if (!evas_object_visible_get(priv->self))
+        return false;
+
     unsigned long currentColumn = priv->model.base.column + column;
     unsigned long currentRow = priv->model.base.row + row;
     double lastUsed = ecore_loop_time_get();
@@ -797,6 +800,18 @@
     _ewk_tiled_backing_store_changed(priv);
 }
 
+static void _ewk_tiled_backing_store_smart_show(Evas_Object* ewkBackingStore)
+{
+    ewk_tiled_backing_store_enable_render(ewkBackingStore);
+    _parent_sc.show(ewkBackingStore);
+}
+
+static void _ewk_tiled_backing_store_smart_hide(Evas_Object* ewkBackingStore)
+{
+    ewk_tiled_backing_store_disable_render(ewkBackingStore);
+    _parent_sc.hide(ewkBackingStore);
+}
+
 static void _ewk_tiled_backing_store_recalc_renderers(Ewk_Tiled_Backing_Store_Data* priv, Evas_Coord width, Evas_Coord height, Evas_Coord tileWidth, Evas_Coord tileHeight)
 {
     long columns, rows, oldRows, oldCols;
@@ -1382,6 +1397,8 @@
         sc.del = _ewk_tiled_backing_store_smart_del;
         sc.resize = _ewk_tiled_backing_store_smart_resize;
         sc.move = _ewk_tiled_backing_store_smart_move;
+        sc.show = _ewk_tiled_backing_store_smart_show;
+        sc.hide = _ewk_tiled_backing_store_smart_hide;
         sc.calculate = _ewk_tiled_backing_store_smart_calculate;
         sc.member_add = _ewk_tiled_backing_store_smart_member_add;
         sc.member_del = _ewk_tiled_backing_store_smart_member_del;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to