LINUX.ORG.RU

Задание границ для окна - _NET_WM_STRUT_PARTIAL

 , ,


0

1

Здравствуйте! Наткнулся на такую проблему при разработке панели. Если использовать несколько мониторов, при том в разной ориентации (один в горизонтальной, другой в вертикальной), то возникает ситуация, при которой нижняя граница второго монитора ниже, чем первого. Или наоборот, верхняя граница второго монитора выше, чем первого. Раньше я использовал просто _NET_WM_STRUT, но стало ясно, что этот вариант не подходит даже для того случая, когда все мониторы в одной ориентации (на втором мониторе тоже задаётся граница, когда она там не нужна). Нашёл _NET_WM_STRUT_PARTIAL. Подумал, что это как раз то, что нужно. Он позволяет указать ограничения для границ. Т.е. я могу задать все границы (left, right, top, bottom) и могу потом указать для каких зон они действуют (left_start_y, left_end_y, right_start_y, right_end_y, top_start_x, top_end_x, bottom_start_x, bottom_end_x). Однако путём несложных тестов и осознания того, что здесь написано, стало ясно, что это подходит только, когда, в моём случае, высота второго монитора <= высоте первого. Т.е. помимо top_start_x, top_end_x, bottom_start_x, bottom_end_x, мне еще нужны top_start_y, top_end_y, bottom_start_y, bottom_end_y. Подскажите, пожалуйста, как их задать (и возможно ли это в принципе). Спецификация freedesktop не предлагает таких параметров у _NET_WM_STRUT_PARTIAL

P.S. с мониторами имею ввиду такую ситуацию: https://ibb.co/6vLQghB



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

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

она уже давно готова, просто решил таки пофиксить баг ) а зависимого от X там мало, так что можно легко в случае чего доделать под Wayland. + у Wayland свои приколы, из-за которых, вероятно, придется писать еще и композитор.

thm
() автор топика
Последнее исправление: thm (всего исправлений: 2)