Описываю ситуацию.
Linux, GTK2, Lazarus 1.4.4.
Тривиальный код: форма, кнопочка, обработчик кнопки вот такого вида:
procedure TForm1.Button1Click(Sender: TObject);
begin
Hide;
Sleep(700);
Show;
end;
И занятный баг.
Дело в том, что форма имеет свойство FormStyle со значением fsSystemStayOnTop. Дык вот, после выполнения этой процедуры-обработчика форма может остаться плавающей поверх всех, а может стать "обычной", т.е. вести себя как если бы это свойство стало fsNormal. При этом "внутри" свойство формы по-прежнему значится fsSystemStayOnTop. При этом то, как именно пойдет дело, зависит от того, какой работает в системе оконный менеджер. Со штатным оконным менеджером KDE 4, с Compiz и, внезапно, с Xfwm4 режим "всегда поверх" восстанавливается нормально, а вот штатные оконные менеджеры сред Trinity и Mate выдают описанный выше глюк.
На самом деле, программа, в которой я нарвался на проблему, несколько сложнее. И если в приведенном выше примере, похоже, помогает принудительное выставление свойства сначала в fsNormal, а потом обратно в fsSystemStayOnTop, то в реальном проекте, где 1-я (главная) форма получает команду на появление из 2-й, этот трюк не срабатывает. Хотелось бы, для начала, понять, есть ли штатное решение проблемы.