forked from enlightenment/efl
evas: Fix non-disappearance of text entry cursor
The mouse cursor in a text entry tends to not disappear even when the mouse moves out of the entry. This seems to happen more when the cursor was visible for a single frame only (although I'm not 100% sure about this condition). One important difference with previous versions of EFL is that the cursor is now part of the theme, so it is an image object and not set by the compositor (it looks vastly different). Anyway, when processing the list of pending_objects, we look at the flags render_pre and rect_del which were (re)set during the previous frame. Those flags are then (re)set during phase 1 which happens after processing the pending objects list... only if needed. So, phase 1 sets the condition to invalidate the current lists of objects but that condition is checked for before phase 1. This patch adds a check on delete_me which should hopefully make it a rare enough case, for performance, but still force correct rendering. This is all spaghetti code, sorry if this explanation also reads like pasta. Note that exactness tests may still be broken because earlier versions of EFL simply did not have the cursor inside the canvas itself. Fixes T5231
This commit is contained in:
parent
38446d8daf
commit
1bfce47bf3
|
@ -1251,7 +1251,7 @@ _evas_render_check_pending_objects(Eina_Array *pending_objects, Evas *eo_e EINA_
|
|||
(_evas_render_can_render(eo_obj, obj) ||
|
||||
(evas_object_was_visible(eo_obj, obj) && (!obj->prev->have_clipees))))
|
||||
{
|
||||
if (!(obj->render_pre || obj->rect_del))
|
||||
if (!obj->render_pre && !obj->rect_del && !obj->delete_me)
|
||||
ok = EINA_TRUE;
|
||||
}
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue