La question est la suivante : comment puis-je régler le délai de masquage automatique du lanceur sur 0 ? Ce que je veux, c'est que le lanceur disparaisse instantanément lorsque j'éloigne la souris de lui. Veuillez noter que cela n'a rien à voir avec la durée de l'animation du lanceur, car l'animation ne commence qu'après un délai. C'est ce délai que je dois trouver. Il est très facile de régler le délai de révélation à zéro, mais je n'arrive pas à trouver le réglage du délai de masquage.
Réponse
Trop de publicités?
Ian B.
Points
3503
Cela semble être codé en dur dans la source de Unity. Voir aquí sur la ligne 32 :
const unsigned int HIDE_DELAY_TIMEOUT_LENGTH = 400;
La fonction de masquage proprement dite se trouve plus bas, à la ligne 63 :
void LauncherHideMachine::SetShouldHide(bool value, bool skip_delay)
{
if (_should_hide == value)
return;
if (value && !skip_delay)
{
_hide_delay_timeout.reset(new glib::Timeout(HIDE_DELAY_TIMEOUT_LENGTH));
_hide_delay_timeout->Run([&] () {
EnsureHideState(true);
return false;
});
}
else
{
_should_hide = value;
_hide_changed_emit_idle.reset(new glib::Idle(glib::Source::Priority::DEFAULT));
_hide_changed_emit_idle->Run(sigc::mem_fun(this, &LauncherHideMachine::EmitShouldHideChanged));
}
}
Je ne suis pas sûr qu'il y ait un moyen de marquer l'option skip_delay
argument non plus. Vous pouvez déposer une rapport de bogue avec l'équipe d'Unity pour voir si vous pouvez leur faire autoriser la personnalisation de cette variable. Sinon, vous devrez peut-être corriger et compiler Unity vous-même.