Немодальный вьюер на часть экрана

Здесь можно сообщить о найденных багах в Far.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Немодальный вьюер на часть экрана

Post by buniak_a_h »

Господа, посмотрите, пожалуйста, что я делаю не так.
Пишу команду:
lua:viewer.Viewer([[DirInfo.txt]], nil, 0,0,-1,-1, far.Flags.VF_NONMODAL+far.Flags.VF_IMMEDIATERETURN)
Всё нормально, файл открывается на просмотр.
Теперь заменяю любую координату на не-умолчательную, например так:
lua:viewer.Viewer([[DirInfo.txt]], nil, 0,1,-1,-1, far.Flags.VF_NONMODAL+far.Flags.VF_IMMEDIATERETURN)
(здесь Y1 заменена с 0 на 1)
В результате строка с подсказкой по функциональным клавишам появляется на верхней строке. И при обновлении экрана (например, при прокручивании текста) она на секунду появляется опять, а потом пропадает.
Это глюк, баг или так и должно быть, просто я чего-то не понимаю?
2useven10
Posts: 5209
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

Немодальный вьюер на часть экрана

Post by 2useven10 »

параметр 3/4 = -1 -- ширина/высота экрана, независимо от начальной координаты.
если начало не 0, надо задавать конечную позицию, -1 не годится.

ps: это imho - код не смотрел


update: а вообще, скорее баг
Last edited by 2useven10 on Sun 16 Dec, 2018 03:37, edited 4 times in total.
2useven10
Posts: 5209
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

Немодальный вьюер на часть экрана

Post by 2useven10 »

-1, как описано в документации, заменяется на высоту/ширину.
если при этом отсчёт от 0, вторая координата будет за пределами окна.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Немодальный вьюер на часть экрана

Post by buniak_a_h »

2useven10 wrote: Sun 16 Dec, 2018 03:59 -1, как описано в документации, заменяется на высоту/ширину.
если при этом отсчёт от 0, вторая координата будет за пределами окна.
На самом деле я заменил только одну координату для простоты воспроизведения. В реалии я получаю координаты панели и вывожу вьюер в них:
  1. local PPanel_Rect=panel.GetPanelInfo(nil, 0).PanelRect
  2.  
  3. local vx1,vy1,vx2,vy2 = PPanel_Rect.left+1, PPanel_Rect.top+2, PPanel_Rect.right-1, PPanel_Rect.bottom-2
  4.  
  5. viewer.Viewer([[Dirinfo.txt]], '', vx1, vy1, vx2, vy2,{VF_DISABLEHISTORY=1; VF_NONMODAL=1, VF_IMMEDIATERETURN=1})
Я проверял. Все координаты вполне положительные и нормальные (я имею в виду, что X2>x1 и Y2>Y1) Так что дело, видимо, не в этом...
2useven10
Posts: 5209
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

Немодальный вьюер на часть экрана

Post by 2useven10 »

Тем не менее это баг.
4303 (самый старый из собранных у меня) работает нормально.
Скорее всего последствия спрямления работы с координатами (введением point, rectangle ...)
Last edited by 2useven10 on Sun 16 Dec, 2018 09:16, edited 2 times in total.
2useven10
Posts: 5209
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

Немодальный вьюер на часть экрана

Post by 2useven10 »

Промахнулся - 5268, первое предположение было верным
5267 - ok
5268 - bingo (я ставлю на пункт 1)
drkns 15.09.2018 15:13:24 +0100 - build 5268
1. Рефакторинг. Паттерны типа "int X1, int X2, int Y1, int Y2" заменены на rectangle, "int X, int Y" - на point.
2. Экспериментально: Ctrl+U не меняет размеры панелей.
3. tag_build.bat должен корректно работать в локалях, отличных от 866.
Last edited by 2useven10 on Sun 16 Dec, 2018 08:29, edited 2 times in total.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Немодальный вьюер на часть экрана

Post by buniak_a_h »

2useven10 wrote: Sun 16 Dec, 2018 08:03 Тем не менее это баг.
На самом деле я так и думал. На мантис Вы запишите?
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Немодальный вьюер на часть экрана

Post by DrKnS »

5343
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Немодальный вьюер на часть экрана

Post by buniak_a_h »

DrKnS wrote: Sun 16 Dec, 2018 20:195343
Как-то неправильно получилось...
Image
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Немодальный вьюер на часть экрана

Post by DrKnS »

buniak_a_h wrote: Mon 17 Dec, 2018 07:49Как-то неправильно получилось...
Вы хотите сказать, что 5268 было иначе?
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Немодальный вьюер на часть экрана

Post by John Doe »

DrKnS, понятно что целью последнего исправления было другое.

Но разве единая строка функциональных клавиш на все окна не была бы лучше?
(очвидно что это требует более существенных переделок)
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Немодальный вьюер на часть экрана

Post by buniak_a_h »

DrKnS wrote: Mon 17 Dec, 2018 08:59 Вы хотите сказать, что 5268 было иначе?
Конкретно про 5268 сказать не могу. На версии до обновления на 5343 эта строка была сверху; теперь стала снизу. Но не снизу окна ФАРа, а снизу окна вьюера. Согласитесь, это странно... Она, вроде как, одна на весь ФАР должна быть...
John Doe wrote: Mon 17 Dec, 2018 09:17 Но разве единая строка функциональных клавиш на все окна не была бы лучше?
John Doe wrote: Mon 17 Dec, 2018 09:54 Лично вам как кажется лучше?
Лично я считаю, что строка должна быть единая. Аналогично QView. А если кому-то потребуется сделать свою строку кейбара, то на это, вроде, свой интерфейс есть... Типа viewer.SetKeybar.
Хотя, возможно, спрашивали не меня...
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Немодальный вьюер на часть экрана

Post by buniak_a_h »

2useven10 wrote: Mon 17 Dec, 2018 10:04 Мне не нравится, что два кейбара высвечены одновременно.
Ну да, мне тоже...
2useven10 wrote: Mon 17 Dec, 2018 10:04 Но с другой стороны на активном кейбаре будут надписи относящиееся именно к редакторы/просмотру.
Может быть лучше (и проще) гасить панельный кейбар.
Не, не лучше. Если кому-то надо, можно вызывать viewer.SetKeyBar . В крайнем случае не гасить, а очищать (пустые лайбы для ключей). Но местоположение (точнее, строка на экране) должно (а) быть постоянно и (б) зависеть от состояния переключателя CtrlB (раз уж есть такая фича) И, кстати, я проверил: выключение кейбара по CtrlB не влияет на кейбар вьюера.
Last edited by buniak_a_h on Mon 17 Dec, 2018 10:26, edited 1 time in total.
2useven10
Posts: 5209
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

Немодальный вьюер на часть экрана

Post by 2useven10 »

buniak_a_h, кейбар вьювера у меня не пустой и CtrlB на него влияет.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Немодальный вьюер на часть экрана

Post by buniak_a_h »

2useven10 wrote: Mon 17 Dec, 2018 17:39 buniak_a_h, кейбар вьювера у меня не пустой и CtrlB на него влияет.
По тому примеру, что я сделал в первом посте темы у меня тоже непустой. НО! Независимо от CtrlB кейбар показывается.
Windows 10 x64
Far 3.0.5343 x64.
Post Reply

Return to “Глюки и баги”