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

Здесь можно сообщить о найденных багах в Far.
Post Reply
buniak_a_h
Posts: 649
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 64 times
Been thanked: 17 times
Contact:

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

Post by buniak_a_h » Sun 16 Dec, 2018 02:28

Господа, посмотрите, пожалуйста, что я делаю не так.
Пишу команду:
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: 3681
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 147 times

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

Post by 2useven10 » Sun 16 Dec, 2018 03:12

параметр 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: 3681
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 147 times

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

Post by 2useven10 » Sun 16 Dec, 2018 03:59

-1, как описано в документации, заменяется на высоту/ширину.
если при этом отсчёт от 0, вторая координата будет за пределами окна.

buniak_a_h
Posts: 649
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 64 times
Been thanked: 17 times
Contact:

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

Post by buniak_a_h » Sun 16 Dec, 2018 05:38

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

2useven10
Posts: 3681
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 147 times

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

Post by 2useven10 » Sun 16 Dec, 2018 08:03

Тем не менее это баг.
4303 (самый старый из собранных у меня) работает нормально.
Скорее всего последствия спрямления работы с координатами (введением point, rectangle ...)
Last edited by 2useven10 on Sun 16 Dec, 2018 09:16, edited 2 times in total.

2useven10
Posts: 3681
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 147 times

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

Post by 2useven10 » Sun 16 Dec, 2018 08:18

Промахнулся - 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.

buniak_a_h
Posts: 649
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 64 times
Been thanked: 17 times
Contact:

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

Post by buniak_a_h » Sun 16 Dec, 2018 11:47

2useven10 wrote:
Sun 16 Dec, 2018 08:03
Тем не менее это баг.
На самом деле я так и думал. На мантис Вы запишите?

User avatar
DrKnS
Posts: 5080
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 5 times
Been thanked: 183 times

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

Post by DrKnS » Sun 16 Dec, 2018 20:19

5343

buniak_a_h
Posts: 649
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 64 times
Been thanked: 17 times
Contact:

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

Post by buniak_a_h » Mon 17 Dec, 2018 07:49

DrKnS wrote:
Sun 16 Dec, 2018 20:19
5343
Как-то неправильно получилось...
Image

User avatar
DrKnS
Posts: 5080
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 5 times
Been thanked: 183 times

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

Post by DrKnS » Mon 17 Dec, 2018 08:59

buniak_a_h wrote:
Mon 17 Dec, 2018 07:49
Как-то неправильно получилось...
Вы хотите сказать, что 5268 было иначе?

User avatar
John Doe
Бюрократ
Posts: 12107
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 29 times
Been thanked: 154 times

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

Post by John Doe » Mon 17 Dec, 2018 09:17

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

Но разве единая строка функциональных клавиш на все окна не была бы лучше?
(очвидно что это требует более существенных переделок)

buniak_a_h
Posts: 649
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 64 times
Been thanked: 17 times
Contact:

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

Post by buniak_a_h » Mon 17 Dec, 2018 10:19

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.
Хотя, возможно, спрашивали не меня...

buniak_a_h
Posts: 649
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 64 times
Been thanked: 17 times
Contact:

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

Post by buniak_a_h » Mon 17 Dec, 2018 10:25

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: 3681
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 147 times

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

Post by 2useven10 » Mon 17 Dec, 2018 17:39

buniak_a_h, кейбар вьювера у меня не пустой и CtrlB на него влияет.

buniak_a_h
Posts: 649
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 64 times
Been thanked: 17 times
Contact:

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

Post by buniak_a_h » Mon 17 Dec, 2018 20:52

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

2useven10
Posts: 3681
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 147 times

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

Post by 2useven10 » Mon 17 Dec, 2018 21:25

buniak_a_h wrote:
Mon 17 Dec, 2018 20:52
Независимо от CtrlB кейбар показывается.
С чистым профилем и без макросов? Не верю.

Post Reply

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