История изменений
Исправление firkax, (текущая версия) :
У этих функций в документации указано, что их может перехватывать оконный менеджер и подменять их поведение. Если ты пишешь оконный менеджер - то они будут работать точно так, как там описано. Если ты используешь оконный менеджер, которых их не перехватывает - то тоже.
Причём перехват не всегда чтобы заблокировать. Вот пример: допустим, у проги есть окно 100х100 пикселей, и она хочешь его поставить (левый верхний угол) на x=10, y=10. Но оконный менеджер вокруг этого окна рисует рамку и заголовок. Рамка, допустим, занимает 3 пикселя, заголовок 20 пикселей. И так вот, программа шлёт команду «переместить окно на 10,10», оконный менеджер её перехватывает и заменяет на:
1) переместить рамку на 10,10
2) переместить заголовок на 13,13
3) переместить основное окно (то самое) на 13,33
В итоге окно расположено немного не так, где хотела прога, потому что прога не учитывает что над окном есть ещё 23 пикселя служебным элементов. Аналогично и с ресайзом - прога хочет размер 100х100, а оконный менеджер должен думать как всё сделать чтобы ещё и заголовок с рамкой влезли - то ли уменьшить настоящий размер окна, то ли увеличить размер окна+заголовка+рамки.
Есть, конечно, и другой вариант - окно переместить на 10,10, как прога и хотела, а заголовок пририсовать выше (он на y=-10 окажется и уползёт за границу экрана).
Но и для блокировки перемещения этот перехват тоже, конечно, может использоваться.
Исходная версия firkax, :
У этих функций в документации указано, что их может перехватывать оконный менеджер и подменять их поведение. Если ты пишешь оконный менеджер - то они будут работать точно так, как там описано. Если ты используешь оконный менеджер, которых их не перехватывает - то тоже.
Причём перехват не всегда чтобы заблокировать. Вот пример: допустим, у проги есть окно 100х100 пикселей, и она хочешь его поставить (левый верхний угол) на x=10, y=10. Но оконный менеджер вокруг этого окна рисует рамку и заголовок. Рамка, допустим, занимает 3 пикселя, заголовок 20 пикселей. И так вот, программа шлёт команду «переместить окно на 10,10», оконный менеджер её перехватывает и заменяет на:
1) переместить рамку на 10,10
2) переместить заголовок на 13,13
3) переместить основное окно (то самое) на 13,33
В итоге окно расположено немного не так, где хотела прога, потому что прога не учитывает что над окном есть ещё 23 пикселя служебным элементов. Аналогично и с ресайзом - прога хочет размер 100х100, а оконный менеджер должен думать как всё сделать чтобы ещё и заголовок с рамкой влезли - то ли уменьшить настоящий размер окна, то ли увеличить размер окна+заголовка+рамки.
Но и для блокировки перемещения этот перехват тоже, конечно, может использоваться.