Author Topic: Главное окно миранды - перемещение, прикрепление к краю. Странное поведение.  (Read 6777 times)

0 Members and 2 Guests are viewing this topic.

Offline -SM-

Эта проблема возникла с появлением ноутбука 14" с разрешением 2880. Возможно связанная с разрешением дисплея и масштабированием (в винде стоит размер шрифта 200%).
Как ее описать понятным образом, не знаю. Попробую.
Во первых, перемещение окна не работает "совсем". То есть окно нельзя "схватить" за title bar и куда то переместить. И через виндовое меню, если тыкнуть в значок миранды на титл-баре, и нажать move, тоже никак. Оно как приклеено. При этом на опции в Behavior/Drag to никакой реакции, какие там галки не ставь и не снимай (если это вообще про то). То есть "отлепить" миранду от края никак не выходит.
Во вторых, все таки можно изменять ширину окна миранды. При этом "зацепляться" за край сложно, нет такого момента, когда курсор мыши превратится в "двойную стрелочку". Но можно, точно попав в край. После этого окно каким-то непонятным образом переприклеевается то к правому краю основного дисплея, то куда-то к краю первой трети дисплея по X-координате. Вроде как если его ширину поменять, когда оно в первой трети, то оно перепрыгнет в правый край, и наоборот, если поменять его ширину, когда оно справа, оно перепрыгнет в первую треть. Тоже самое происходит и при скрывании окна в трей и развертывании его оттуда обратно двойным тычком в трее - то туда приклеивается, то сюда, вроде через раз.
И, главное, что создает реальные проблемы, если при этом развернуть какое либо другое окно на весь экран на том же дисплее, где и окно миранды, то оно чаще всего, почти всегда, разворачивается только на первую треть экрана, но бывают какие-то счастливые моменты, когда получается разворачивать "чужие" окна на весь экран, и иметь на экране и миранду. Тут я вроде никакой закономерности не наблюдаю, вот просто иногда получается танцами с бубном нормально сделать, но чаще нет. Вроде чаще помогает развернуть миранду через "hide/show" по меню в трее, но как-то бывает и по двойному тычку, хотя вроде это должно быть одно и то же.
Никаких особых опций масштабирования для миранды в виндовых свойствах самого исполняемого файла не стоит.
Скриншоты настроек окна вот (надеюсь, что не гигантские выйдут, скриншотил на втором мониторе, который с нормальным dpi):
« Last Edit: 24 04 2023, 18:42:50 by -SM- »
 

Offline -SM-

Обновился на "Miranda NG Version: 0.96.3 alpha build #25571 (c104e05868) x64".
Половина из этого заработала нормально. Окно перемещается, заработало и изменение высоты окна, и snap-to и dock-to работают, курсор-стрелочки вернулся.

Одна проблема осталась. В режиме "dock to side" доступная для других программ область экрана на мониторе высокого разрешения по прежнему обрезается где-то в районе половины реально доступной области (ранее казалось, что на треть, но на самом деле это половина оставшегося места от экрана минус окно миранды. Думаю, что тут не учитывается масштабирование, которое как раз 200% для этого монитора, а на мониторе где всё 1:1, там все ОК). Ну и миранда прыгает туда-сюда на высоком разрешении как и раньше, когда она по-видимому была в "хроническом" dock to side.

И мелочь - окно миранды прилепляется не совсем к краю экрана, там сколько-то пикселей остается между правой и нижней частью окна миранды, и правым и нижнем краем экрана, на обоих мониторах, и на высоком разрешении, и на обычном.
« Last Edit: 25 04 2023, 07:36:12 by -SM- »
 

Offline dartraiden

Насчёт высокого разрешения не знаю, ни у кого из разработчиков нет таких мониторов, отлаживать не на чем.

У меня 150% масштаб на FullHD и проблем нет. Кроме зазора. Я как-то не обращал на него внимание.
« Last Edit: 25 04 2023, 12:17:17 by dartraiden »
 

Offline -SM-

ни у кого из разработчиков нет таких мониторов, отлаживать не на чем.
Для этого не надо монитор... Достаточно поменять цифру масштаба в свойствах дисплея, рядом с разрешением.
 

Offline -SM-

У меня 150% масштаб на FullHD и проблем нет.
Вероятно, Вы не до конца миранду вправо затащили. Она сначала "прилипает" к углу (snap to), и тут все в порядке, но если её насильно тащить дальше вправо и разрешено dock to side, то она "паркуется" (dock to), и вот тут начинаются проблемы. Любое другое окно другого софта, если его максимизировать, то оно расширяется лишь на часть экрана. И при 150% эта проблема есть. И при 125 тоже. При 100% все норм. И на обычном мониторе 1920х1200 это тоже есть.
А должно - всегда аккурат до левого края миранды, если она припаркована вправо, не перекрывая её.
« Last Edit: 25 04 2023, 14:58:35 by -SM- »
 

Offline -SM-

Вот я видео с экрана записал, как это выглядит. Сначала я таскаю окно, то прилепляя его к краю, а потом паркуя его в край. На фоне фара, растянутого кнопкой "maximize" на весь экран.
Затем двойным щелчком по значку миранды в трее скрываю и раскрываю припаркованную миранду - и она прыгает туда-сюда.
Для повтора этого необходимы три вещи:
- масштаб в свойствах дисплея виндовс больше, чем 100%
- галка в "Dock to sides" во вкладке behavior в опциях миранды, раздел Contact list
- утаскивание окна миранды "правее правого положения" до парковки.

https://youtu.be/FtaG83AhaWM
« Last Edit: 25 04 2023, 18:55:25 by -SM- »
 

Offline dartraiden

У меня Миранда не прыгает, хотя с содержимым клиста явно происходит какая-то хрень. Окна да, не раскрываются до конца.

https://github.com/miranda-ng/miranda-ng/issues/3517
« Last Edit: 27 04 2023, 19:08:01 by dartraiden »
 
The following users thanked this post: -SM-

Offline -SM-

Окна да, не раскрываются до конца.
Добавлю. Это, преположительно, еще как-то связано с версиями Windows. В старых версиях виндовс, например в Windows 7, вроде как все норм. А вот в современной десятке - глючит. Возможно, это как-то связано с развитием чего-то, связанного с DPI и масштабированием именно операционной системы. Ведь Docking.cpp сто лет не меняли, и раньше все работало. А вычисление координат для "обрезания" рабочей области экрана исключительно в этом исходнике.
 

Offline -SM-

Еще одна добавка. Проблема докинга с отрезанием части рабочей области экрана при масштабах более, чем 100%, полностью излечивается, если сделать вот такую настройку миранде, как на скриншоте. Однако это не выход, так как в таком режиме контакт лист становится совершенно нечитаемым - очень мелким шрифтом. При этом меню в норме.
Так что, это однозначно зависит именно от операционной системы.
« Last Edit: 30 04 2023, 09:11:51 by -SM- »
 

Offline dartraiden

Quote
контакт лист становится совершенно нечитаемым

Если вы отдаёте скейлинг на откуп приложению, то нужно в mirandaboot.ini включать поддержку HiDPI скейлинга.
« Last Edit: 30 04 2023, 16:09:49 by dartraiden »
 

Offline -SM-

то нужно в mirandaboot.ini включать поддержку HiDPI скейлинга.
Не помогло. Контакт лист становится мелким-нечитаемым при этой настройке вообще всегда - и "по умолчанию", и с отдачей скейлинга приложению. То есть делает хуже. Но отдача скейлинга приложению, как я и говорил - устраняет все проблемы с уменьшением рабочей области экрана для других приложений при докинге, и это должно что-то подсказать разработчикам-специалистам по GUI (я, к сожалению, программист совсем низкого уровня - драйвера, ядра, протоколы, службы, т.п., а по GUI около нуля).
« Last Edit: 30 04 2023, 19:16:00 by -SM- »
 

Offline -SM-

Сложно сказать почему, коммитов я не видел по теме, но докинг вроде заработал. То ли это винда 10-я обновилась так удачно (глюк был виндо-зависимый, в семерке, к примеру, его не было вообще, как и в 8.1)... То ли все же миранду починили.
 

Offline dartraiden

Нет, докинг по-прежнему кривой, по крайней мере на боевой машине с 11.
« Last Edit: 21 06 2023, 22:44:57 by dartraiden »