Como posso impedir que outros aplicativos roubem o foco?

Eu tenho uma janela de tela cheia com a propriedade Topmost definida como true. Sempre que um aplicativo altera sua propriedade WindowState, minha janela é automaticamente minimizada, mesmo que tenha o foco ativo. Por exemplo, o código abaixo exemplifica o problema. 3 segundos após a janela ser desativada, ela muda de Minimizado para Normal, minimizando o outro aplicativo em tela cheia.

// Topmost = false
private void Form1_Deactivate(object sender, EventArgs e)
{
    System.Threading.Thread.Sleep(3000);
    this.WindowState = FormWindowState.Normal;
}

Existe uma maneira de preservar a propriedade WindowState da janela de tela cheia nesse caso? Desejo que o usuário opte por minimizar o aplicativo em tela cheia, por isso quero impedir que outros programas roubem o foco.

questionAnswers(3)

yourAnswerToTheQuestion