2016-02-22 6 views
0

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

Когда я запускаю это приложение, и Окно получает свое положение по умолчанию (т. Е. не в начале (0,0)), границы четко видны.

Однако, когда я выполняю this.Move(0, 0) в конструкторе главного окна, чтобы убедиться, что окно в правильном положении, верхний правый пикселей, кажется, исчезают, таким образом:

enter image description here

Игнорировать Act текст в этом захвате это фактически меню Activities под рабочим столом Gnome. Фактический верхний левый пиксель окна - это место, где будут встречаться эти две красные линии.

Кто-нибудь знает, что может вызвать эту проблему? Возможно, что-то связано с расширениями Gnome Shell, контролирующими эту область?

ответ

1

Отсутствующие пиксели являются артефактом пути gnome-shell делает закругленные прямоугольники для своих окон.

Если вы действительно хотите его изменить, вы можете отредактировать файл /usr/share/gnome-shell/theme/gnome-shell.css. Найдите селектор CSS .panel-corner и установите -panel-corner-radius на 0px. Это приведет к тому, что окна будут иметь квадратные углы, а не округлые. Возможно, вам придется перезагрузить gnome-shell после внесения изменений, нажав Alt-F2 и введите команду r.

Возможно ли, что редактирование сохранится при обновлении gnome-shell (или даже темы), вам, возможно, придется внедрить что-то, что держит его на нужное значение (или установить расширение, чтобы сделать это для вас).

0

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

Если ваше приложение должно быть полноэкранным, а не только расположено в углу, вы можете запросить gnome-shell, чтобы сделать это с помощью Window.fullscreen(). Не полагайтесь всегда на полный экран: диспетчер окон может решить другое.

+0

@paxdiablo, пожалуйста, не изменяйте содержание ответа без обсуждения. Если вы не согласны с частью ответа, напишите свой собственный ответ или добавьте комментарий. Я собираюсь вернуть часть об изменении вида оболочки: это просто не то, что должен (или мог) сделать обычный разработчик приложения. – jku

+0

Никаких проблем, jku, это просто то, что ваше первоначальное заявление заключалось в том, что это невозможно сделать, что было неправильно. Поэтому я добавил, как это можно сделать. Поскольку ваш ответ больше не содержит этого, я не могу его принять, поскольку он не решает мою проблему. Как вы предлагаете, я отправлю свой собственный ответ с дополнительной информацией. Что касается нормальных разработчиков, у меня есть очень конкретный вариант использования, поэтому, надеюсь, вы не будете считать меня слишком ненормальным :-) – paxdiablo

+0

Приветствия, это звучит отлично. Хорошо, что вы нашли решение. – jku