LINUX.ORG.RU

gtk.Window.set_keep_above() и диалоговые окна под офтопиком

 , ,


0

1

Проблема в следующем: под офтопиком при вызове set_keep_above() для окна это самое окно остается поверх остальных окон, но до кучи перекрывает и свои дочерние диалоги.

Диалог создается вот так:

dlg = gtk.Dialog('Error', parent_window,
                 gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT)

parent_window передается.

В линуксе как обычно все работает. Есть идеи как фиксить?

P.S. На винфак не пойду - там вендузятники, а я чувствую себя неуютно среди них.

вали на винфак

винфак не пойду - там вендузятники

такие же как и ты

anonymous
()
Ответ на: комментарий от anonymous

не надо так жестоко, не все живут в розовом мире «linux-only». по топику сказать к сожалению ничего не могу. ☹

костыль, быдлокод и дилетантское мнение: для диалогов тоже вызывать set_keep_above()? авось не подерутся.

beastie ★★★★★
()
Ответ на: комментарий от beastie

для диалогов тоже вызывать set_keep_above()

Пробовал. Не срабатывает, вообще. Пока в голову приходит только один костыль и быдлокод - перед запуском диалога вызывать set_keep_above(False) для главного окна, при закрытии - возвращать на место.

kernelpanic ★★★★★
() автор топика
Ответ на: комментарий от kernelpanic

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

beastie ★★★★★
()
Ответ на: комментарий от beastie

Таковы требования. Но в настройках есть галка, позволяющая это дело отключить.

kernelpanic ★★★★★
() автор топика

Стоит попробовать последний gtk 3.6.0. Если поведение не изменится, оставить в багтрекере минимальный код для воспроизведения. Авось когда-нибудь исправят.

А под wine как?

gag ★★★★★
()
Ответ на: комментарий от kernelpanic

а может даже и не костыль. из того, что я узнал из беглой пробежки по гуглю — window managers не обязаны безукоризненно выполнять set_keep_above. из чего я делаю вывод, что linux wm в отличае от windonws wm, не совсем придерживаются правил. т.е. тут windows как бы прав — если окно хочет быть на верху, то оно и остаётся на верху, не зависимо от того, кто там что ещё пытается показать. но опять таки повторюсь — в этом вопросе я дилитант и с радостью уступлю место знающим людям.

beastie ★★★★★
()
Ответ на: комментарий от beastie

если окно хочет быть на верху, то оно и остаётся на верху, не зависимо от того, кто там что ещё пытается показать.

Модальное диалоговое окно блокирует работу с родительским окном - логично, что диалог должен быть поверх родительского окна вне зависимости от его желаний.

kernelpanic ★★★★★
() автор топика
Ответ на: комментарий от kernelpanic

рад помочь ☺ хоть в вопросе совсем и не разбираюсь ☺ ну хоть мой google-fu пригодился ☺

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от kernelpanic

Под wine не проверял. Переписывать на gtk3 желания нет)

Если пойти по ссылке, которую привёл beastie, то, якобы, и не придётся:

Fixed in gtk-2-24 branch, will be in 2.24.8 release

Да и на gtk3 «переписывать» хорошее gtk2 без deprecated - это не переписывать, а подлатать с ifdef.

gag ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.