LINUX.ORG.RU

В GTK+ 3.12 обнаружена серьёзная проблема с декорациями окон

 ,


0

2

Начиная с версии 3.12 в GTK+ отрисовка декораций окон производится на стороне клиента, что приводит к проблемам в окружениях, отличных от GNOME3. В частности, в openbox декорации окон выглядят также, как и в GNOME3, т.е. полностью игнорируются настройки оконного менеджера openbox. С Xfce ситуация ещё хуже: вокруг каждого окна одновременно отображаются две декорации.

Разработчик Audacious, John Lindgren, выпустил патч для обхода данной проблемы. John Lindgren надеется, что описанная выше проблема будет решена, иначе придётся задуматься о переводе плеера Audacious на другой тулкит (возможно это будет Qt).

>>> Подробности



Проверено: Shaman007 ()
Последнее исправление: Shaman007 (всего исправлений: 2)

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

Audacious на другой тулкит (возможно это будет Qt)

Скрещу пальцы.

bubblecore ★★★★
()

Developed by RH → велосипеды, костыли и баги.

AX ★★★★★
()

Реально уже стоит вопрос о форке gtk. Правда в зависимостях у него glib и куча других библиотек, контролируемых redhat. Могут начать вставлять палки в колёса.

anonymous
()

И в чём проблема? Сами заставили сделать эти csd, сами на них ныли. А теперь плохо. Но виноватых уже нашли.

atrus ★★★★★
()

А как под виндой? Понятное дело что там нельзя отключить одну рамочку и включить другую. Но отрисовывает-то её кто, приложение или система?

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

The switch is an unfortunate design decision on the part of the GNOME developers, and runs contrary to established practice in the most widely used PC windowing systems (X11, Windows, and OS X).

На сколько я понимаю, в венде тоже рамочка рисуется средствами системы.

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

Сами заставили сделать эти csd, сами на них ныли.

Давай по порядку. Кто заставлял, кто ныл? Лично я наоборот, читал в основном негативные отзывы о желании некоторых упоротых товарищей сделать отрисовку рамочек на стороне тулкита. Но, как говорится, упоровшимся пофиг.

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

А вы знаете, вы правы. Не одобряли их. Просто, наверное, уже въелось, что разрабы гнома делают что-то только из под палки, потому что у них у ребуют, а не потому что сам хотят (сами только выпиливают). Вот, воспоминания и вывернулись наизнанку. :)

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

система, ибо когда приложение виснет - рамка рисуется. но, приложение может перебить желание системы, и нарисовать заголовок по своему усмотрению (sic!). и когда виснет приложение с расфуфыренной рамкой - она меняется на стандартную.

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

к сожалению не всегда возможно. вменяемых и адекватных постовых клиентов на Qt нет например.
вся надежда на EFL

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

Последняя на даный момент версия GTK+ для виндоус это 3.6 и не думаю что оно скоро обновится.

anonymous
()

Собственно, разработчики xfce уже писали о проблемах с заголовками в gtk3.

anonymous
()

отрисовка декораций окон производится на стороне клиента

Правильное архитектурное решение.

приводит к проблемам в окружениях, отличных от GNOME3.

То есть у меня проблем не будет. Ни и ладно.

Sakka
()

Проблема высосана из пальца.

Новая «декорация-заголовок» это просто виджет https://developer.gnome.org/gtk3/stable/GtkHeaderBar.html. Никто не заставляет программистов использовать его. Естественно, если такой виджет есть, то приложение должно попросить оконный менеджер перестать декорировать окно. Что происходит с Xfce не понятно - тут либо GTK неправильно просит, либо Xfce не умеет скрывать заголовок.

Согласен, окно на скриншоте - это стандартный, встроенный диалог. Но упомянутый виджет (да и все остальные) можно скрыть программно или с помощью стиля.

lxndr
()
Ответ на: Проблема высосана из пальца. от lxndr

можно скрыть программно или с помощью стиля.

Иными словами, для XFCE и прочего надо писать свой отдельный стиль?

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

То есть у меня проблем не будет. Ни и ладно.

Ну да, в своём скворечнике тепло и удобно.

anonymous
()

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

GTK не нужен

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

И надейся что это будет не Qt5 там сейчас траблы со шрифтами и темами.

frozenix ★★★
()

Разработчик Audacious, John Lindgren, выпустил патч для обхода данной проблемы.

а почему этот патч — затрагиает только функцию ``get_directory_index(...)``

???

(и ещё добавляет какой-то directory_hash)

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

судя по коммитам - MacOS.

а так - самый консервативный тулкит. всё работает.

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

samy_volosaty ★★★★★
()

Мда. А GTK2 ещё развивается?

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

на нем-таки есть куча необходимого в повседневности софта?
и да, как у него с сабжем (проблемами с декорациями) дела?

dib2 ★★★★★
()

в баге — речь идёт только о служебных (втроенных) диалоговых GTK-окнах? или обо всех GTK-окнах?

user_id_68054 ★★★★★
()

иначе придётся задуматься о переводе плеера Audacious на другой тулкит (возможно это будет Qt)

Продолжайте, мистер Линдгрен.

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

Стоп. А при чём тут Xfce? Оно же еще на GTK+2.

Проблема, видимо, с приложениями, написанными на GTK3, но не являющимися частью Xfce, если они там используются.

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

Совершенно верно. Файл под названием gtkiconcache.c - не самое удачное место для подобного рода исправлений. И похоже он делает кэш директорий. Неудивительно, что это не принимают в апстрим.

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

на нем-таки есть куча необходимого в повседневности софта?

Tk в основном для написания утилит для внутреннего использования используется. У Ttk популярность примерно как у Python3 - вроде бы давно есть и рекомендуется к использованию, а по факту почти никем не используется, ибо и вырвиглазного Tk всем хватает. Но там и отличий в API серьёзных нет.

и да, как у него с сабжем (проблемами с декорациями) дела?

Не было отродясь.

MiniRoboDancer ★☆
()
Ответ на: Проблема высосана из пальца. от lxndr

Согласен, окно на скриншоте - это стандартный, встроенный диалог. Но упомянутый виджет (да и все остальные) можно скрыть программно или с помощью стиля.

Иными словами этот самый стандартный диалог некорректно реализован?

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

И похоже он делает кэш директорий. Неудивительно, что это не принимают в апстрим.

но каким-то волшебным образом это сработало.., и даже попало на LOR! Это ли не чудо?! :)

user_id_68054 ★★★★★
()

Вот это угодили, вот это молодцы, дайте расцелую засранцев. Вот теперь до оставшихся девелоперов наконец-то допрёт на каком говнище они делают гуйцы для своих программ, они одумаются и перейдут на Qt. И за это девелоперам гнома/гытыка большое спасибо.

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

к сожалению не всегда возможно. вменяемых и адекватных постовых клиентов на Qt нет например.

Их и на GTK3 нет.

Axon ★★★★★
()
Ответ на: Проблема высосана из пальца. от lxndr

Но упомянутый виджет (да и все остальные) можно скрыть программно или с помощью стиля.

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

talksonly
()

Да это просто праздник кокойты :-)

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

Но отрисовывает-то её кто, приложение или система?

Везде, где думали головой, отрисовывает по умолчанию система. Но гнома в приказном порядке пилят под вяленого. А так как последний — неграмотный огрызок на базе фреймбуфера для мобильника, то ни декорировать окна, ни сколь-нибудь разумно ими управлять он не умеет.

baka-kun ★★★★★
()

Тут проблема не в GTK+, а в мозгах его разрабов.

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

Правильное архитектурное решение.

Ты не понял, о каком клиенте идет речь. Речь идет об X'овом клиенте — то есть о приложении:

The new look is a result of GNOME (and GTK+ along with it) switching to client-side window decorations. «Client-side» means that each running program draws its own titlebar instead of letting the window manager draw it. As a result, the look and function of each program's titlebar will vary depending on which widget toolkit that program is using. The switch is an unfortunate design decision on the part of the GNOME developers, and runs contrary to established practice in the most widely used PC windowing systems (X11, Windows, and OS X).

anonymous
()

Как быть тем, кто вообще заголовки окон не отрисовывает? (Awesome WM, например)

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

Здесь нужно читать интел?

Здесь нужно читать «выжившие из ума старушки». :)

    When I am an old woman I shall wear purple
    With a Red Hat that doesn't go and doesn't suit me.
baka-kun ★★★★★
()

ГТК+3 must die!

Господи, вот же придурки... Просто слов нет. Вершина развития гтк его вторая версия, в которой все давно работает как надо и у всех, включая OpenGL-виджет. Ну хочется им CSS-стили в темах, ну добавьте фичу 2.x, зачем все ломать нафиг?

Очень надеюсь, что народ вскоре массово повалит с гтк-третьих дистров на православные слаки или вовсе на БСД. Ибо терпеть эти издевательства больше сил никаких нет.

Третий ГТК должен как можно скорее сдохнуть нафиг, десу.

anonymous
()

Я специально заморочился

Установил openbox и xfce4. (Если брать этот злосчастный диалог) В гноме кнопки Open и Cancel наверху в виджете-заголовке. В OpenBox этого виджета нет, кнопки внизу и выглядит все прилично с системным декоратором. На xfce4 - кнопки внизу, но виджет-заголовок не спрятан и действительно получается два заголовка.

Вывод: разработчики, скорее всего, думают о других DE и WM, но немного не доработали.

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

Ждём новость о том, что ели на завтрак разработчики FLTK.

А они-то тут причем? Отличный тулкит, между прочем. Жаль только что вроде как темы пока не умеет (или уже научился ко второй версии?)

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