Почему мое приложение ведет себя по-другому в Unity?

Почему мое приложение ведет себя по-другому в Unity?

xlog при работе как положено, вне среды Unity

Я недавно назначенный сопровождающий приложения для программы под названием "xlog". Программа отлично работает во всех средах, кроме Unity. Она написана с использованием Gtk2.

Я никогда раньше не пользовался Unity. Я заметил в Unity, что строка меню, похоже, «перенаправлена» в другое место за пределами моего графического интерфейса приложения, на панель в верхней части экрана. Во-вторых, одно из полей ввода текста в моем графическом интерфейсе отображается в виде тонкой линии, недоступной для пользователя, кроме как через клавишу Tab.xlog в Unity — обратите внимание на отсутствующую строку меню, а поле для примечаний не является полем.

Если я возьму исполняемый файл xlog, который отлично работает в Ubuntu 12.04.2 LTS, и скопирую его в дистрибутив Unity 12.10, я увижу другое поведение.

Я понятия не имею, где искать или что мне следует изменить в приложении xlog, чтобы исправить эту ситуацию. Что в Unity уникального для всех других сред, где это приложение работает правильно?

решение1

Я заметил, что в Unity строка меню как будто «перенаправлена» в другое место за пределами графического интерфейса моего приложения, на панель в верхней части экрана.

Я думаю, то, о чем вы говорите, это поведение по умолчанию в Unity. Unity использует глобальное меню (то, что вы видите вверху), похожее на то, что видно в OSX.

Меню приложения Unity в действии.

При желании это можно отключить в приложении, но я думаю, что это не очень рекомендуется: любой, кто использует Unity, будет ожидать, что меню будет не в окне, а вверху.

Что касается поля ввода, я бы предположил, что это может быть проблема с темой Ubuntu. Чтобы проверить это, попробуйте изменить тему Ubuntu (в разделе "Параметры системы" -> "Внешний вид") и посмотрите, останется ли поле прежним.

Редактировать

Мне стало любопытно, и, взглянув на код, я понял, что проблема в вашем приложении.ЭтотКажется, проблема решена (я не могу ввести новую строку в этом поле, но не могу сказать, нормально это или ошибка). Эти значения (100, 200) были выбраны случайным образом, так что это может быть не лучшим способом решения проблемы.

введите описание изображения здесь

Связанный контент