WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
76165
[EFL] Add visible field into ewk_tiled_backing_store's data.
https://bugs.webkit.org/show_bug.cgi?id=76165
Summary
[EFL] Add visible field into ewk_tiled_backing_store's data.
KwangHyuk
Reported
2012-01-12 03:59:40 PST
Using of evas_object_visible_get() API can't gurantee the correctness of evas_object's visible status if it's called inside of evas_object's smart_show() method. From the EFL's evas_object_show() API's implementation, I could see the reason why. EAPI void evas_object_show(Evas_Object *obj) { MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); return; MAGIC_CHECK_END(); if (obj->delete_me) return; if (evas_object_intercept_call_show(obj)) return; if (obj->smart.smart) { if (obj->smart.smart->smart_class->show) obj->smart.smart->smart_class->show(obj); // This calls object's smart_show() method. e.g) _ewk_tiled_backing_store_smart_show() } if (obj->cur.visible) { return; } obj->cur.visible = 1; // This will set the visibility of object and it is used by evas_object_visible_get() API.
Attachments
Patch.
(4.01 KB, patch)
2012-01-12 04:11 PST
,
KwangHyuk
no flags
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
KwangHyuk
Comment 1
2012-01-12 04:11:24 PST
Created
attachment 122210
[details]
Patch.
Gyuyoung Kim
Comment 2
2012-01-12 23:23:55 PST
Comment on
attachment 122210
[details]
Patch. Looks OK. :-)
Nikolas Zimmermann
Comment 3
2012-01-13 02:04:27 PST
Comment on
attachment 122210
[details]
Patch. r=me.
WebKit Review Bot
Comment 4
2012-01-13 03:25:22 PST
Comment on
attachment 122210
[details]
Patch. Clearing flags on attachment: 122210 Committed
r104915
: <
http://trac.webkit.org/changeset/104915
>
WebKit Review Bot
Comment 5
2012-01-13 03:25:27 PST
All reviewed patches have been landed. Closing bug.
Raphael Kubo da Costa (:rakuco)
Comment 6
2012-01-13 07:39:54 PST
Comment on
attachment 122210
[details]
Patch. View in context:
https://bugs.webkit.org/attachment.cgi?id=122210&action=review
> Source/WebKit/efl/ChangeLog:10 > + Using of evas_object_visible_get() API can't gurantee the correctness of > + evas_object's visible status if it's called inside of evas_object's > + smart_show() method.
This sounds weird. What kind of problems were you having, and couldn't they be solved if you call the parent show/hide functions in your smart_{show,hide} _before_ the functions enabling/disabling rendering?
KwangHyuk
Comment 7
2012-01-15 16:59:51 PST
(In reply to
comment #6
)
> (From update of
attachment 122210
[details]
) > View in context:
https://bugs.webkit.org/attachment.cgi?id=122210&action=review
> > > Source/WebKit/efl/ChangeLog:10 > > + Using of evas_object_visible_get() API can't gurantee the correctness of > > + evas_object's visible status if it's called inside of evas_object's > > + smart_show() method. > > This sounds weird. What kind of problems were you having, and couldn't they be solved if you call the parent show/hide functions in your smart_{show,hide} _before_ the functions enabling/disabling rendering?
for example, If any API which is using evas_object_visible_getUI provide unexpected behavior if it would be called inside of smart_show api. I had already checked the case you suggested too, but it wasn't effective either. but, let me check it one more time.
KwangHyuk
Comment 8
2012-01-15 23:27:58 PST
(In reply to
comment #6
)
> (From update of
attachment 122210
[details]
) > View in context:
https://bugs.webkit.org/attachment.cgi?id=122210&action=review
> > > Source/WebKit/efl/ChangeLog:10 > > + Using of evas_object_visible_get() API can't gurantee the correctness of > > + evas_object's visible status if it's called inside of evas_object's > > + smart_show() method. > > This sounds weird. What kind of problems were you having, and couldn't they be solved if you call the parent show/hide functions in your smart_{show,hide} _before_ the functions enabling/disabling rendering?
Double check was done. No significant effect from change calling position of parent show/hide function. I have also checked the return value as follows. static void _ewk_tiled_backing_store_smart_show(Evas_Object* ewkBackingStore) { printf("visible = %d in \n",evas_object_visible_get(ewkBackingStore)); ewk_tiled_backing_store_enable_render(ewkBackingStore); _parent_sc.show(ewkBackingStore); printf("visible = %d out \n",evas_object_visible_get(ewkBackingStore)); } AFAIK, as parent's methods are just for smart clipped, it calls evas_object_smart_clipped_smart_show() or hide().
Raphael Kubo da Costa (:rakuco)
Comment 9
2012-01-16 05:26:54 PST
(In reply to
comment #8
)
> I have also checked the return value as follows. > > static void _ewk_tiled_backing_store_smart_show(Evas_Object* ewkBackingStore) > { > printf("visible = %d in \n",evas_object_visible_get(ewkBackingStore)); > ewk_tiled_backing_store_enable_render(ewkBackingStore); > _parent_sc.show(ewkBackingStore); > printf("visible = %d out \n",evas_object_visible_get(ewkBackingStore)); > }
Hmm, the problem is that this is called from evas_object_show() before it sets its own `cur.visible' to 1. If these functions which have been patched are indeed called from the smart_show function, the flag added by the patch is probably needed. Thanks for the details.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug