问题是,我如何将启动器自动隐藏延迟时间设置为 0 ?我想要的是当我将鼠标移开时启动器立即消失。请注意,这与隐藏动画持续时间无关,因为动画仅在延迟后开始。我需要找到这个延迟设置。将显示延迟设置为零非常容易,但我找不到隐藏延迟设置。
答案1
这似乎是 Unity 源代码中的硬编码。请参阅这里在第 32 行:
const unsigned int HIDE_DELAY_TIMEOUT_LENGTH = 400;
实际的隐藏函数位于第 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));
}
}
我也不确定是否有办法标记该skip_delay
论点。你可能需要提交错误报告与 Unity 团队联系,看看是否可以让他们允许自定义此变量。否则,您可能必须自己修补和编译 Unity。