e-module/comp-scale: fix flickering focus animation: dont produce border_show event when setting window to another desk

SVN revision: 57340
This commit is contained in:
Hannes Janetzek 2011-02-26 14:16:08 +00:00
parent 177637e6cd
commit 5ecfc57fa4
1 changed files with 22 additions and 17 deletions

View File

@ -252,30 +252,32 @@ _pager_finish()
desk = e_desk_current_get(zone);
if (current_desk && (desk != current_desk))
EINA_LIST_FOREACH(items, l, it)
{
{
int tmp = e_config->desk_flip_animate_mode;
e_config->desk_flip_animate_mode = 0;
e_desk_show(current_desk);
e_config->desk_flip_animate_mode = tmp;
if (it->desk == it->bd->desk)
continue;
EINA_LIST_FOREACH(items, l, it)
if (it->desk && (it->desk != it->bd->desk))
e_border_desk_set(it->bd, it->desk);
}
/* dont hide border */
if (it->desk == current_desk)
it->bd->visible = 0;
e_border_desk_set(it->bd, it->desk);
if (it->desk == current_desk)
it->bd->visible = 1;
}
EINA_LIST_FREE(desks, o)
if (current_desk && (desk != current_desk))
{
evas_object_del(o);
/* dont do flip animation */
int tmp = e_config->desk_flip_animate_mode;
e_config->desk_flip_animate_mode = 0;
e_desk_show(current_desk);
e_config->desk_flip_animate_mode = tmp;
}
EINA_LIST_FREE(items, it)
{
if (it->desk && (it->desk != it->bd->desk))
e_border_desk_set(it->bd, it->desk);
if (it->bd->desk != current_desk)
{
e_border_hide(it->bd, 2);
@ -292,6 +294,9 @@ _pager_finish()
_pager_win_del(it);
}
EINA_LIST_FREE(desks, o)
evas_object_del(o);
EINA_LIST_FREE(popups, it)
_pager_win_del(it);
@ -398,12 +403,12 @@ _pager_win_cb_mouse_up(void *data, Evas *e, Evas_Object *obj, void *event_info)
if (!it->mouse_down)
return;
it->mouse_down = EINA_FALSE;
if (!scale_state)
return;
if (x + it->bd->w > zone->w) x = zone->w - it->bd->w;
if (y + it->bd->h > zone->h) y = zone->h - it->bd->h;
if (x < 0) x = 0;