LINUX.ORG.RU

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

На самом деле это возможно, с помощью xdg-desktop-portal’а. Нужно написать свою реализацию портала с диалогом на gtk2 и экспортировать переменную GTK_USE_PORTAL=1 чтобы портал использовался всегда. Но зачем?

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

Так же. Есть поковыряться, можно сделать через LD_PRELOAD или порталы, как предложили выше. Но порталы вряд ли с GTK+2 будут работать, поэтому остаётся наверное только LD_PRELOAD.

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

наверное только LD_PRELOAD.

Тогда интересен следующий момент, на дебиан машину с большой историей установок софта я поставил lxde. От него использую только менеджер сессии, но наверное это не важно. На этой машине файловый диалог на gtk3, на машине где операционка установлена с нуля на gtk2. Так где тот пакет который заставляет использовать файловый диалог или gtk2 или gtk3? LD_PRELOAD там и не пахнет.

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

Так где тот пакет который заставляет использовать файловый диалог или gtk2 или gtk3?

Нет его.

LD_PRELOAD там и не пахнет.

LD_PRELOAD пахнет везде, где есть UNIX-like. Ты должен ручками на C написать код который бы дёргал функцию открытия диалога из gtk2.so когда в gtk3.so дёргается аналогичная функция.

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

Тогда почему на одинаковых дебианах с разным набором пакетов, но в одном ДЕ используется gtk3, а в другом gtk2.

LD_PRELOAD там и не пахнет.

Имеется в виду то что руками LD_PRELOAD нигде не выставлял.

einhander ★★★★★ ()
Последнее исправление: einhander (всего исправлений: 1)

Есть подвижки? Тоже интересует этот момент. Баги не встречал, но дико раздражает кривая сортировка GTK3 в диалоге открытия/сохранения файлов: она игнорирует lowline (нижнее подчёркивание).

AlexYeCu

anonymous ()

Через LD_PRELOAD нужно делать, если кто возьмется сразу думайте о:

  • Нужно проинициализировать gtk2 и gtk3 одновременно [вынести в другой процесс?]
  • Нужно заставить их event-loop работать совместно [вынести в другой процесс?]
  • После gtk_create_dialog приложение на gtk3, будет вызывать с созданным объектом разные функции, например gtk_show, их тоже нужно переопределять и детектить, приходит gtk2 объект или gtk3.
MOPKOBKA ()