Как Отключить “Окно, не отвечающее” Диалоговое окно

При отладке программ UI я часто вижу, "Ожидают или вызывают выход" Диалоговое окно.

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

Я хотел бы отключить это полностью или по крайней мере иметь опцию проигнорировать это окно.

19
задан 26 August 2018 в 01:58

4 ответа

Это - известная проблема. См. , "Программа" не отвечает при отладке в gdb.

Оценка из другого отчета об ошибках < something> не отвечает окно постоянно показывает при отладке программы , которая, кажется, связана, проблема, кажется, решена в gnome-shell Выполнение версии 3.28.4.

apt-cache policy gnome-shell для знания установленной версии .

при использовании старой версии попытайтесь обновить Ubuntu18 путем выполнения:

sudo apt update
sudo apt dist-upgrade

Однако эта проблема остается открытой для отладки gdb.

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

3
ответ дан 23 November 2019 в 02:03

Более простое обходное решение, если обновление и патч, не возможный или неудобный.

  • Создают сценарий обертки в ДОМАШНЕЙ папке с тем же именем zenity. (Проверьте $PATH для точного ~/.../bin местоположение).
  • Отфильтровывают вызовы с mutter-dialog или определенный аргумент путем проверки параметров.
  • Передача все другие вызовы к исходному zenity (/usr/bin/zenity $@)

Ссылка: ошибка RH: Раздражающий zenity "вызвал выход", или "ожидайте" всплывающее окно всего, в то время как предварительно связываются/компилируют/загружают

3
ответ дан 23 November 2019 в 02:03

Один способ достигнуть этого состоит в том, чтобы измениться, сколько времени время, окну позволяют "не ответить" перед диалоговым окном, показывают. Код, который обрабатывает это, находится в libmutter-4-0 библиотека, где время трудно кодируется к 5 секундам. Остерегайтесь этого, следующее является своего рода взломом, не очень изящным, но это действительно работает. (И у меня была некоторая забава, делающая его!)

Мы можем получить исходный код для libmutter-4-0 пакет как это:

apt-get source libmutter-4-0

который дает названный каталог mutter-3.32.2+git20190711. Войдите в тот каталог:

cd mutter-3.32.2+git20190711

Затем внесите изменение в файле src/core/display.c на строке, которая похожа на это:

#define PING_TIMEOUT_DELAY 5000

Это означает, что будет ожидать 5 000 миллисекунд прежде, чем показать "не отвечающее" диалоговое окно. Измените его на что-то намного большее, я использовал 5000000, который соответствует 5 000 секунд:

#define PING_TIMEOUT_DELAY 5000000

Внеся то изменение, мы хотим создать измененную библиотеку. Чтобы сделать это, сначала настройте как это:

meson _build

(в той точке могут быть ошибки из-за недостающих зависимостей, просто установить то, что избегает использовать sudo apt install и попробуйте meson _build снова)

Затем сборка:

ninja -C _build

После этого новый файл библиотеки находится в ./_build/src/libmutter-4.so.0.0.0 - теперь все, что мы должны сделать, должно установить его:

sudo install ./_build/src/libmutter-4.so.0.0.0 /usr/lib/x86_64-linux-gnu/

и затем перезагрузка для проверки менеджера окон перезапущена с помощью нового файла библиотеки. После перезагрузки должно быть эффективно отключено "не отвечающее" диалоговое окно (строго говоря, это может все еще обнаружиться в конечном счете, в зависимости от какой PING_TIMEOUT_DELAY оцените Вас используемый).

Если Вы хотите вернуться это изменение и переустановить исходный файл библиотеки, который может быть сделан с помощью sudo apt reinstall libmutter-4-0.

0
ответ дан 23 November 2019 в 02:03

В версиях mutter ≥ 3.35.92 вы можете установить время ожидания, используемое для проверки того, живо ли окно. Это также полезно для X-forwarding по ssh с высокой задержкой. Например, вы можете установить время ожидания 60 с (60000 мс), используя:

gsettings set org.gnome.mutter check-alive-timeout 60000
4
ответ дан 9 March 2020 в 20:51

Другие вопросы по тегам:

Похожие вопросы: