Qt4: окно появляется в верхнем левом углу метагорода

У меня проблема с появлением окна в qt4 на Metacity. Первоначальная проблема заключалась в появлении окна под другим окном, из которого оно вызывалось нажатием кнопки. Я решил это на Compiz, отправив _NET_ACTIVE_WINDOW, но на metacity он все еще не работал. После нескольких часов поиска в Google, я попробовал это:

if (window -> isMinimized())
{
  window -> showNormal();
}
else if (window -> isHidden())
{
  window -> show();
}

//the code that I added, which makes the window appear above.

window ->setWindowFlags(Qt::WindowStaysOnTopHint);
Qt::WindowFlags flags = window->windowFlags();
flags &= ~Qt::WindowStaysOnTopHint;
window->setWindowFlags(flags);

window->setGeometry(window->geometry());

window -> activateWindow();
window->show();
window -> raise();

Это просто обходной путь, но на самом деле окно появляется выше. И здесь возникает другая проблема: если показано окно, и я переключаю фокус на окно, откуда оно вызывается, и нажимаю кнопку, мое окно появляется выше в том же месте, что и должно. Но если я закрою окно и вызову его снова, оно появится в верхнем левом углу. У кого-нибудь есть идея, почему это происходит? Заранее спасибо.

0 ответов

Другие вопросы по тегам