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

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

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

Post by NightRoman » Thu 05 Jan, 2012 16:30

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

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

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

Вопрос - это фича или? Это совершенно не фатально лично для меня, просто хочется разобраться. Кроме того, может, это и неполадка-таки.

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

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

Post by John Doe » Wed 09 Jul, 2014 12:44

Видимо та же проблема, но только более тотальная: одинаково в редакторе и вьювере, никакого "после диалога" не требуется.
Просто ACTL_GETWINDOWTYPE и ACTL_GETWINDOWINFO не работают, будучи вызваны из EE_CLOSE/EV_CLOSE
  1. local F = far.Flags
  2. local msg = "ACTL_GETWINDOWINFO"
  3. local function diag(...)
  4.   local info = far.AdvControl(msg)
  5.   if not info then far.Show(msg,...) end
  6. end
  7. Event {
  8.   group="ViewerEvent";
  9.   action=diag;
  10. }
  11. Event {
  12.   group="EditorEvent";
  13.   action=diag;
  14. }

User avatar
zg
zero-gravity
Posts: 5246
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

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

Post by zg » Wed 09 Jul, 2014 13:47

3985.

ps: а вы вот специально тестовый пример делаете так, что проблему он конечно демонстрирует, но вот для отладки от него никакой пользы?

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

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

Post by John Doe » Wed 09 Jul, 2014 13:52

А что нужно было для отладки?

User avatar
zg
zero-gravity
Posts: 5246
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

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

Post by zg » Wed 09 Jul, 2014 14:06

например так:
в отличии от вашего:
1. ACTL_GETWINDOWINFO вызывается только в проблемном месте.
2. для разных событий разный код.
3. ситуации работает, не работает, события ?E_CLOSE отвалились совсем — различаются.

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

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

Post by John Doe » Wed 09 Jul, 2014 14:14

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

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

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

Post by John Doe » Thu 10 Jul, 2014 09:51

3987
ECTL_GETINFO и VCTL_GETINFO обламываются, если вызваны из EE_CLOSE/VE_CLOSE

User avatar
zg
zero-gravity
Posts: 5246
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

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

Post by zg » Thu 10 Jul, 2014 09:53

John Doe wrote:ECTL_GETINFO и VCTL_GETINFO обламываются, если вызваны из EE_CLOSE/VE_CLOSE
вдумчиво читаем энциклопедию.

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

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

Post by John Doe » Thu 10 Jul, 2014 09:56

Чтение не помогает. Ещё вчера всё работало

User avatar
zg
zero-gravity
Posts: 5246
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

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

Post by zg » Thu 10 Jul, 2014 09:58

John Doe wrote:Чтение не помогает. Ещё вчера всё работало.
могу прочитать я, но это платная услуга.

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

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

Post by John Doe » Thu 10 Jul, 2014 10:11

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: 5246
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

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

Post by zg » Thu 10 Jul, 2014 10:22

John Doe wrote:В статье о VE_CLOSE такого замечания нет. Но тоже, ещё вчера работало.
если в документации написано, что нельзя, а кто-то пользуется, то это проблем того, кто пользуется.

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

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

Post by John Doe » Thu 10 Jul, 2014 10:25

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

User avatar
zg
zero-gravity
Posts: 5246
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

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

Post by zg » Thu 10 Jul, 2014 10:32

John Doe wrote:Документация несовершенна.
в документации в данном случае написано всё верно.

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

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

Post by John Doe » Thu 10 Jul, 2014 10:36

А что с ECTL_GETINFO?

User avatar
zg
zero-gravity
Posts: 5246
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

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

Post by zg » Thu 10 Jul, 2014 10:46

John Doe wrote:А что с ECTL_GETINFO?
починю.

hint: на самом деле кричать «регрессия-регрессия» там, где её нет — не очень конструктивно. объяснили бы, для чего вам нужен VCTL_GETINFO в VE_CLOSE, может быть и документацию поправили бы.

Post Reply

Return to “Development”