ACTL_GETWINDOWTYPE дает 0 в VE_CLOSE вызванном после диалога

Разработка Far.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

ACTL_GETWINDOWTYPE дает 0 в VE_CLOSE вызванном после диалога

Post by NightRoman »

ACTL_GETWINDOWTYPE дает 0 в VE_CLOSE вызванном после диалога

Сценарий такой. Запускается диалог со списком файлов (типа история), выбирается по хоткею текущий файл для просмотра, диалог закрывается, запускается вьюер. При выходе из вьюера по Esc вызывается обработка VE_CLOSE, там есть вызов ACTL_GETWINDOWTYPE и он дает 0, то есть сбой.

Так же ведет себя и Фар2 с ACTL_GETSHORTWINDOWINFO (которую заменила команда ACTL_GETWINDOWTYPE в Фар3).

Вопрос - это фича или? Это совершенно не фатально лично для меня, просто хочется разобраться. Кроме того, может, это и неполадка-таки.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

ACTL_GETWINDOWTYPE дает 0 в VE_CLOSE вызванном после диа

Post by John Doe »

Видимо та же проблема, но только более тотальная: одинаково в редакторе и вьювере, никакого "после диалога" не требуется.
Просто ACTL_GETWINDOWTYPE и ACTL_GETWINDOWINFO не работают, будучи вызваны из EE_CLOSE/EV_CLOSE
  1. local F = far.Flags
  2.  
  3. local msg = "ACTL_GETWINDOWINFO"
  4.  
  5. local function diag(...)
  6.  
  7.   local info = far.AdvControl(msg)
  8.  
  9.   if not info then far.Show(msg,...) end
  10.  
  11. end
  12.  
  13. Event {
  14.  
  15.   group="ViewerEvent";
  16.  
  17.   action=diag;
  18.  
  19. }
  20.  
  21. Event {
  22.  
  23.   group="EditorEvent";
  24.  
  25.   action=diag;
  26.  
  27. }
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: ACTL_GETWINDOWTYPE дает 0 в VE_CLOSE вызванном после диа

Post by zg »

3985.

ps: а вы вот специально тестовый пример делаете так, что проблему он конечно демонстрирует, но вот для отладки от него никакой пользы?
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: ACTL_GETWINDOWTYPE дает 0 в VE_CLOSE вызванном после диа

Post by John Doe »

А что нужно было для отладки?
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

ACTL_GETWINDOWTYPE дает 0 в VE_CLOSE вызванном после диа

Post by zg »

например так:
в отличии от вашего:
1. ACTL_GETWINDOWINFO вызывается только в проблемном месте.
2. для разных событий разный код.
3. ситуации работает, не работает, события ?E_CLOSE отвалились совсем — различаются.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: ACTL_GETWINDOWTYPE дает 0 в VE_CLOSE вызванном после диа

Post by John Doe »

Да, первый мой тест был похож на ваш.
А тут же я привёл другой, составленный так специально, чтобы убедиться, что проблема возникает только при закрытии файла.
(редактор/вьювер видно на экране)
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: Глюки и баги, появившиеся в «ночных сборках»

Post by John Doe »

3987
ECTL_GETINFO и VCTL_GETINFO обламываются, если вызваны из EE_CLOSE/VE_CLOSE
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: Глюки и баги, появившиеся в «ночных сборках»

Post by zg »

John Doe wrote:ECTL_GETINFO и VCTL_GETINFO обламываются, если вызваны из EE_CLOSE/VE_CLOSE
вдумчиво читаем энциклопедию.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: Проблемы оконного менеджера

Post by John Doe »

Чтение не помогает. Ещё вчера всё работало
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: Проблемы оконного менеджера

Post by zg »

John Doe wrote:Чтение не помогает. Ещё вчера всё работало.
могу прочитать я, но это платная услуга.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: Проблемы оконного менеджера

Post by John Doe »

http://api.farmanager.com/ru/structures/processeditoreventinfo.html#EE_CLOSE wrote:"В EE_CLOSE допускается использовать только ECTL_GETINFO и ECTL_GETBOOKMARKS."
P.S.
В статье о VE_CLOSE такого замечания нет. Но тоже, ещё вчера работало.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: Проблемы оконного менеджера

Post by zg »

John Doe wrote:В статье о VE_CLOSE такого замечания нет. Но тоже, ещё вчера работало.
если в документации написано, что нельзя, а кто-то пользуется, то это проблем того, кто пользуется.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: Проблемы оконного менеджера

Post by John Doe »

Регрессия налицо.
Документация несовершенна, так почему бы не обсудить каждый случай отдельно.
User avatar
zg
zero-gravity
Posts: 6015
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: Проблемы оконного менеджера

Post by zg »

John Doe wrote:Документация несовершенна.
в документации в данном случае написано всё верно.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: Проблемы оконного менеджера

Post by John Doe »

А что с ECTL_GETINFO?
Post Reply

Return to “Development”