When switching focus from a window to the desktop, the "passive" signal was being sent to the border twice, causing borked edje transitions. (thanks pr0t0cod7)

It looks like the section I commented out was unnecessary, and duplicated logic handled earlier in the function. (The original "else if ((!focus) && (bd->focused))" block). Can someone else verify this for me?


SVN revision: 16228
This commit is contained in:
rephorm 2005-08-18 05:03:15 +00:00 committed by rephorm
parent 3dd562b97c
commit ead97b4eb5
1 changed files with 6 additions and 1 deletions

View File

@ -940,11 +940,15 @@ e_border_focus_set(E_Border *bd, int focus, int set)
}
e_hints_active_window_set(bd->zone->container->manager, bd);
}
#if 0
/* i'm pretty sure this case is handled above -- this was resulting in the "passive"
* event getting sent twice when going from a window to the desktop. --rephorm */
else if ((!bd->focused) && (focused == bd))
{
if (focused)
{
// printf("unfocus previous\n");
// printf("unfocus previous 2\n");
edje_object_signal_emit(focused->bg_object, "passive", "");
e_focus_event_focus_out(focused);
/* FIXME: Sometimes we should leave the window fullscreen! */
@ -959,6 +963,7 @@ e_border_focus_set(E_Border *bd, int focus, int set)
}
e_hints_active_window_set(bd->zone->container->manager, NULL);
}
#endif
if (bd->focused) focused = bd;
else if ((!bd->focused) && (focused == bd)) focused = NULL;
}