LINUX.ORG.RU

gtk2 сам себя не форкнет

 , , ,


9

14

Что ж, этот день настал. Будем делать gtk 2.26.

Минимальный план работ такой:

  • Обеспечить масштабирование заданных в настройках тулкита размеров иконок в соответствии с DPI.
  • Обеспечить масштабирование заданных темой пиксельных размеров в соответствии с DPI.
  • Предоставить для приложения API для масштабирования размеров из условных пикселей (под 96 DPI) в реальные в соответствии с DPI.
  • Исправить мелкие косяки в теме Redmond, которые остались с тех пор, как отрисовка темы была переведена на cairo.
  • Дополнить дефолтный пакет тем стилями для gtk3, максимально приближенно имитирующими классические темы.
  • Бэкпортировать из gtk3 некоторые улучшения в диалогах открытия/сохранения файлов.

Приглашаются все желающие. Пишите ваши соображения.

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

P.S. @hobbit, верни тэг gtk2 в БД сайта!!!

Ответ на: комментарий от wandrien

Пока такой прикладной API вырисовывается:

Так да не так.

GdkScreen не хранит указатель на GtkSettings. Он об этом классе вообще ничего не знает.

GtkSettings назначает себя как внешнее проперти на GdkScreen при помощи g_object_set_data_full().

Пока открытым остаётся вопрос, кто за что должен отвечать.

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

Имея окно, мы должны знать, как масштабироваться для этого окна.

Таким образом главным стрелочником является GdkWindow. Именно окно платформы должно уметь отвечать на вопрос «как под тебя масштабироваться».

Сама логика масштабирования размазана на платформенно-независимую и платформенно-зависимую части.

Платформенно-независимая часть – это настройки в GtkSettings.

Платформенно-зависимая – это общение GDK с WM/комопзитором.

Вообще не очень понятно, почему GtkSettings находится в платформенно-независимой части, ведь она вроде как зависит от протокола XSETTINGS, который является платформенно-специфичным. Надо еще покопаться в коде.

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

Обработка XSETTINGS устроена так.

GDK слушает события иксов и формирует Event с типом GDK_SETTING в главном ивент-лупе.

Обработчик событий в gtk_main_do_event() ловит это событие и вызывает _gtk_settings_handle_event() в модуле gtksettings.c.

Таким образом трансляция изменений XSETTINGS, полученных от бэкэнда, в настройки GtkSettings является деталью реализации модуля gtksettings.c.

Ладно, с этим разобрались.

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

Пока у меня следующая проблема.

Я хочу организовать управление масштабированием с двух сторон:

Как с платформенно-независимой стороны – со стороны настроек тулкита и/или приложения.

Так и с платформенно-зависимой стороны – со стороны композитора.

Из-за этого возникают сложности, как классы раскидать между GDK и GTK, и какой класс за что отвечает.

Если оставить только одну сторону вопроса, то система классов получается очевидной.

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

Башка капец в тумане сегодня

Так может не надо программирУвать тогда сегодня? Сходи по лесу прогуляйся, возьми термос чая и бустер с колбасой. Пока гуляешь - оно само нарисует я в голове, а нет, так хоть пробздишься, нечего через силу кодить, все равно потом переделывать

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

Это не претензия, а лулз. ТС известен провозглашением наполеоновских планов о переписывании всего подряд «как надо», но вместо реализации своих планов сидит на форуме и катает кучу яростных постов о том, какие тупые пидарасы те кто делает опенсорс.

Это симптом.

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

Это не претензия, а лулз

А судьи - кто?

ТС известен провозглашением наполеоновских планов о переписывании всего подряд «как надо»,

И я таким был: все лучше, чем шататься по форума и смеяться с тех, кто взялся за общественно-полезное дело и не сделал пока (ведь мы-то с тобой даже не взялись, нам ли осуждать?)

но вместо реализации своих планов сидит на форуме и катает кучу яростных постов о том, какие тупые пидарасы те кто делает опенсорс.

Только что была претензия про то, что 2 недели нет постов, теперь претензия про то, что шатается по форумам, вместо того чтоб реализовывать то, за что взялся - тебе не кажется что это взаимопротиворечивые претензии?

pihter ★★★★★
()

Тут есть одна проблема. Софт уже ушел с gtk2 на gtk3, и не вернется. Тут уже если форкать то форкать gtk3. Хотя тоже не совсем ясно зачем - в принципе есть патчсет gtk-classic вычищающий гномью скверну где можно (хоть и не везде).

Qui-Gon ★★★★★
()
Ответ на: комментарий от pihter

все лучше, чем

Не лучше.

Если ты не понял, почему ТС вызывает ухмылку, поясню снова.

Если ты считаешь, что существующий софт - дерьмо, и ты можешь сделать лучше - просто бери и делай. Люди попробуют твой софт и убедятся, что действительно можно делать лучше. Но у ТСа на один коммит приходится десяток постов с руганью и нытьём. Этакая оппозиционная снежиночка от опенсорса.

И я таким был

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

Замечу ещё, что ТС часто жалуется на плохое самочувствие. А откуда оно будет хорошее, если он регулярно ругается и ноет?

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

Но у ТСа на один коммит приходится десяток постов с руганью и нытьём.

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

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

Если ты считаешь, что существующий софт - дерьмо, и ты можешь сделать лучше - просто бери и делай

Ну так он вроде как берет и делает, думаю, пытался найти помошников

Но у ТСа на один коммит приходится десяток постов с руганью и нытьём.

Тем не менее, коммит у него есть

если в зрелом возрасте у тебя не выработалась аллергия на болтунов и горлопанов-обличителей, и ты не начал ставить на первое место дела вместо слов, то это печально

ТС - не просто болтун. Я лично получал от него помощь по достаточно тонким вопросам, здесь, на этом форуме. Да и ты признаешь что есть коммиты. Он может достигать или не достигать поставленных целей, может писать или нет о своей работе, но он явно что-то делает, а стало быть снисходительно похихикивать, на мой скромный взгляд, с нашей стороны было бы подло.

Замечу ещё, что ТС часто жалуется на плохое самочувствие. А откуда оно будет хорошее, если он регулярно ругается и ноет?

Не знаю, я не так пристально слежу за тс-ом чтоб прям постоянно это слышать: слышал только один раз тут, насколько я помню. А как связано нытье и самочувствие по-твоему?

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

Если ты считаешь, что существующий софт - дерьмо, и ты можешь сделать лучше - просто бери и делай. Люди попробуют твой софт и убедятся, что действительно можно делать лучше. Но у ТСа на один коммит приходится десяток постов с руганью и нытьём.

Весь софт одному человеку переписать не под силу. Но ТС, тем не менее, вносит вклад в опенсорс, у него есть свои проекты. Кроме того, критика существующих проектов (по-твоему, «ругань и нытьё») тоже нужна, без неё никто не пошевелится, а если кто-то пошевелится, то получится, что он сделал фичу только для себя, поскольку те, кому она была нужна, «не ныли», сделает раз, сделает два, а на третий забьёт.

почему ТС вызывает ухмылку

Ухмылку тут вызываешь только ты, наезжающий на тех, кто формулирует проблемы и пытается что-то делать. ТСу же я сочувствую, хоть GTK-проблемы мне и не особо близки.

и ты не начал ставить на первое место дела вместо слов

Начни с себя. Прекрати кидать словесные камни в тех, кто хоть что-то делает.

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

Прекрати кидать словесные камни в тех, кто хоть что-то делает.

Наоборот. В тех, кто что-то делает, нужно кидать втрое больше камней. Недеяние - благо, вся мировая херня творится именно активными людьми, которые «что-то делают», именно их нужно сдерживать, а не поддерживать. Иначе происходит взрывной рост херни и долгое расхлебывание последствий.

Основа любой сложной, но устойчивой системы - отрицательная обратная связь, ОТРИЦАТЕЛЬНАЯ, вот буквально negative feedback.

Верхнее техническое образование наполучали, а основ не понимаете.

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

Критика и ругань с нытьём это разные вещи.

Если тебе нужно это объяснять, то говорить с тобой не о чем.

Прекрати кидать словесные камни в тех, кто хоть что-то делает.

Я кидаю камни не в делание, а в сотрясание воздуха, в горлопанство. Потому что для самого же ТСа было бы намного полезнее заниматься делом, а не скандалить на форуме и высказываться по всем вопросам в мире.

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

Тут есть одна проблема. Софт уже ушел с gtk2 на gtk3, и не вернется. Тут уже если форкать то форкать gtk3.

А раньше ты об этом ТСу сказать не мог? Он уже год gtk2 форкает. Какой же ты все таки нехороший человек.

mbivanyuk ★★★★★
()
26 декабря 2024 г.
Ответ на: комментарий от anonymous

Я про это и говорю. Что софт на GTK2 будет некому кодить, да уже много лет как никто на нём не пишет. Сейчас молодняк на Qt всё пишет. Тем более форк древнего тулкита обрекает сам себя на дичайшую маргинальность. Взять тот же TQT для Trinity. Его нигде в официальных репах нет и не будет. Как итог: trinity DE юзают 1.5 пердолика.

gtk222
()

если взять gtk2 со всеми зависимостями, то, наверное, миллион строк кода наберется, что многовато
как думаете, что можно оттуда выкинуть? поддержку винды, мака и прочей проприетарщины?
поддержку иксов надо оставить - будет преимуществом, когда в новых версиях gtk ее выкинут, перейдя на мало что умеющий вайланд
поддержку сглаживания шрифтов оставить - тоже будет преимуществом, когда в новых версиях gtk рендеринг шрифтов будет ориентирован исключительно на highdpi экраны

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

Можешь назвать другие приложения, которые до сих пор обновляются и на GTK2?

Gimp, claws-mail. Печаль в том, что форк от нонейма никто использовать не будет, даже не узнают о нём.

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

FixBrowser

Это пока что навсего васянская поделка. Без донатов (а он уже обозначил 5к евро минимум), оно загнётся.

The project needs your help. For this initial round €5000 will be needed to be raised. It will allow me to work on FixBrowser to make it usable for actual browsing and also implement some of the additional areas based on a vote. The work will take about a year, expecting major improvements within about 6 months. 
gtk222
()
Последнее исправление: gtk222 (всего исправлений: 1)