New user registration is currently disabled due to spam abuse / Регистрация новых пользователей в настоящее время приостановлена из-за злоупотреблений спаммерами

Закрепленное всплывающее окно всегда наверху

Ветка для общения разработчиков и координации разработки

Закрепленное всплывающее окно всегда наверху

Postby SlovarnyZapas » Wed Mar 17, 2010 9:32 am

Здравствуйте.

При работе с закрепленными всплывающими окнами, последние появляются под окном текущего приложения. Это создает определенное неудобство, потому что постоянно приходиться вручную выводить их на передний план. Как заставить эти окна всплывать поверх текущего рабочего окна?

Вот пример того, что я делаю и чего хочу добиться.

1. Открываю текст на иностранном языке в программе Acrobat Reader;
2. Выделяю слово курсором и жму Ctrl + c + c;
3. Появляется незакрепленное всплывающее окно с переводом;
4. Я закрепляю это окно, нажав кнопку закрепления в правом вернем углу;
5. Закончив работу с этим окном я закрываю его;
6. Далее я выделяю другое слово в тексте и снова жму Ctrl + c + c;
7. Окно с переводом появляется под окном Acrobat Reader'а в левом верхнем углу экрана.

Я же хочу добиться того, чтобы закрепленное всплывающее окно появлялось поверх Acrobat'а в центре экрана. В Compiz'е есть специальный плагин, позволяющий для определенных окон установить желаемое поведение (размеры, позиционирование и пр.), но даже при использовании этого плагина всплывающее окно упорно не хочет следовать моим предпочтениям.

Буду благодарен за любую помощь.

Debian GNU/Linux 5.0.4;
GoldenDict 0.9.1;
Qt 4.5.3;
Compiz 0.7.6.
SlovarnyZapas
 
Posts: 23
Joined: Mon Jun 15, 2009 4:29 am

Re: Закрепленное всплывающее окно всегда наверху

Postby ikm » Wed Mar 17, 2010 11:54 am

Если вы пользуетесь последней версией пакета из debian unstable, то там уже сделано, на мой взгляд, всё возможное для того, чтобы поднимать окно наверх:

scanpopup.cc:304:

Code: Select all
  if ( ui.pinButton->isChecked() )
  {
    // Pinned-down window isn't always on top, so we need to raise it
    show();
    activateWindow();
    raise();
  }
ikm
Автор GoldenDict
 
Posts: 1595
Joined: Wed Feb 04, 2009 10:40 am

Re: Закрепленное всплывающее окно всегда наверху

Postby SlovarnyZapas » Wed Mar 17, 2010 12:35 pm

Дело в том, что пришпиленное окно всплывает поверх текущего окна только в том случае, если последнее является окном GoldenDict'а, т. е. при переводе слова из статьи, открытой в GD. Если мы переводим слово из другого приложения, то это окно всегда оказывается на заднем плане. Кроме того, видимо где-то в коде за окном закреплена позиция 0:0 на экране и из-за этого в Compiz'e для него невозможно установить другое положение (по центру, например). Хотя я не исключаю варианта, что это только у меня так.
SlovarnyZapas
 
Posts: 23
Joined: Mon Jun 15, 2009 4:29 am

Re: Закрепленное всплывающее окно всегда наверху

Postby ikm » Wed Mar 17, 2010 8:18 pm

У меня всё работает как надо (kde4.3.1). Разумеется, разные WM могут вести себя совершенно по-разному, и в общем случае нет никакой возможности исправить это со стороны GD. Однако всё, что можно было сделать с его стороны, уже сделано. Если я что-то упускаю, ищите причины, пишите патчи и так далее.

p.s. В коде нигде ничего не закреплено. Попробуйте другой WM и убедитесь.
ikm
Автор GoldenDict
 
Posts: 1595
Joined: Wed Feb 04, 2009 10:40 am


Return to Разработка

Who is online

Users browsing this forum: No registered users and 14 guests

cron