История изменений
Исправление khrundel, (текущая версия) :
Чтобы делать многооконные интерфейсы вроде GIMP и Lazarus вместо велосипедного тайлового WM в каждой программе.
Только ради этого стоило отменить абсолютные координаты. Если кто-то в этом мире заслуживает места в аду, так это дебил, придумавший интерфейс гимпа. К сожалению, недостаточно, говноокна же можно лепить в виде попапов через относительные координаты.
В общем кто тут спрашивал про полезные фичи вяленда? Вот, одна из них: поощряет принцип «одно приложение - одно окно».
На самом деле в Wayland уже и так через некоторые трюки можно узнать и задать абсолютные координаты окон. Например создать невидимое окно во весь экран и обычные окна делать как popup относительно невидимого окна.
А я вот не уверен, что прозрачное главное окно будет прозрачно и для мыши.
Или можно сделать невидимое popup окно большого размера и запросить относительные координаты вроде (-9999, -9999) так что сервер Wayland сдвинет popup так чтобы он не выходил за пределы экрана и по обновлённой относительной позиции popup можно посчитать абсолютные координаты окна.
Правила релокации попапа, не попадающего в экран, завсегда можно изменить, можно даже рандомизировать положение такого попапа, чтоб такие умники получили по заслугам. При этом оставить нормальные попапы работоспособными. Не уверен, что относительные координаты попапа вообще можно получить. Ну и если можно, что мешает DS вернуть те же старые (-9999, -9999)? В принципе это просто, DS может хранить некие координаты смещения, которые в нормальном случае = 0, приложению недоступны, но при рендеринге попапа добавляются к «официальным» координатам.
В общем всё решаемо. А вот в случае, когда можно просто взять и совершить 2 легальных обращения + провести какие-то внутренние подсчёты, то это никак не прикрыть вообще.
Исходная версия khrundel, :
Чтобы делать многооконные интерфейсы вроде GIMP и Lazarus вместо велосипедного тайлового WM в каждой программе.
Только ради этого стоило отменить абсолютные координаты. Если кто-то в этом мире заслуживает места в аду, так это дебил, придумавший интерфейс гимпа. К сожалению, недостаточно, говноокна же можно лепить в виде попапов через относительные координаты.
В общем кто тут спрашивал про полезные фичи вяленда? Вот, одна из них: поощряет принцип «одно приложение - одно окно».
На самом деле в Wayland уже и так через некоторые трюки можно узнать и задать абсолютные координаты окон. Например создать невидимое окно во весь экран и обычные окна делать как popup относительно невидимого окна.
А я вот не уверен, что прозрачное главное окно будет прозрачно и для мыши. Ну и правила релокации попапа, не попадающего в экран, завсегда можно изменить, можно даже рандомизировать положение такого попапа, чтоб такие умники получили по заслугам. При этом оставить нормальные попапы работоспособными.
Или можно сделать невидимое popup окно большого размера и запросить относительные координаты вроде (-9999, -9999) так что сервер Wayland сдвинет popup так чтобы он не выходил за пределы экрана и по обновлённой относительной позиции popup можно посчитать абсолютные координаты окна.
Не уверен, что относительные координаты попапа вообще можно получить. Ну и если можно, что мешает DS вернуть те же старые (-9999, -9999)? В принципе это просто, DS может хранить некие координаты смещения, которые в нормальном случае = 0, приложению недоступны, но при рендеринге попапа добавляются к «официальным» координатам.
А вот в случае, когда можно просто взять и совершить 2 легальных обращения + провести какие-то внутренние подсчёты, то это никак не прикрыть вообще.