Como definir o atraso do ocultador do lançador?

6

A pergunta é: como posso definir o tempo de atraso da ocultação automática do iniciador como 0? O que eu quero é que o lançador desapareça instantaneamente quando eu mover o mouse para longe dele. Por favor, note que isto não tem nada a ver com a duração da animação oculta, já que a animação só começa após um atraso. É essa configuração de atraso que preciso encontrar. É muito fácil definir o atraso de revelação para zero, mas não consigo encontrar a configuração de atraso de ocultação.

    
por astralfenix 09.01.2013 / 17:05

1 resposta

2

Isso parece ser codificado na fonte Unity. Veja aqui na linha 32:

const unsigned int HIDE_DELAY_TIMEOUT_LENGTH = 400;

A função de ocultar atual está mais abaixo na linha 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));
  }
}

Não tenho certeza se há uma maneira de sinalizar o argumento skip_delay . Você pode arquivar um relatório de erros com a equipe do Unity para ver se você pode fazer com que essa variável seja personalizada. Caso contrário, você pode ter que corrigir e compilar a Unity.

    
por Ian B. 09.01.2013 / 17:45