Latest post of the previous page:
на DN_CONTROLINPUT с param1==-1 вернуть true.NightRoman wrote: ↑Fri 29 Sep, 2017 06:23Должен ли немодальный диалог автоматически закрываться при клике вне диалога? Сейчас закрывается. Может, это настраивается?
Latest post of the previous page:
на DN_CONTROLINPUT с param1==-1 вернуть true.NightRoman wrote: ↑Fri 29 Sep, 2017 06:23Должен ли немодальный диалог автоматически закрываться при клике вне диалога? Сейчас закрывается. Может, это настраивается?
Частично помогает, это предотвращает закрытие. Но это буквально команда Фару "я обработал, ничего не делай", а ведь хотелось бы переключения в другое окно в данном новом случае.
1. ACTL_SETCURRENTWINDOW вроде никто не запрещает использовать.NightRoman wrote: ↑Fri 29 Sep, 2017 10:57Частично помогает, это предотвращает закрытие. Но это буквально команда Фару "я обработал, ничего не делай", а ведь хотелось бы переключения в другое окно в данном новом случае.
ну вот почему туда же? вот клик вне немодального окна. это же общее отсутствие функциональности. оно и к диалогам относится, и к редакторам, и к просмотрам. altf11 — только к диалогам. зачем всё смешивать?
[?] Show background screens number
"Туда же" это на мантис.
Code: Select all
local id = win.Uuid"45B09D0D-6AE8-416C-BB5A-F5FA7B5CC430"
local F = far.Flags
local items = {
--[[01]] {F.DI_TEXT,1,1,0,0,0,0,0,0,"test"},
}
local flags = "FDLG_NONMODAL"
hDlg = far.DialogInit (id,-1,-1,6,3,HelpTopic,items,flags,function(hDlg,Msg,Param1,Param2)
if Msg==F.DN_CONTROLINPUT and Param1==-1 then
local wi = far.AdvControl(F.ACTL_GETWINDOWINFO)
far.AdvControl(F.ACTL_SETCURRENTWINDOW,wi.Pos-1)
return 1
end
return
end)
Code: Select all
╔══════════════════════════ Exception occurred ══════════════════════════╗
║ Exception: Access violation (write to 0x01AAAB40) ║
║ Address: 0x66F935FB lua_pushlightuserdata ║
║ Function: main ║
║ Module: C:\APPs\Far3\Far.exe ║
╟────────────────────────────────────────────────────────────────────────╢
║ { Terminate Far } [ Stack ] [ Minidump ] [ Ignore ] ║
╚════════════════════════════════════════════════════════════════════════╝
Code: Select all
local id = win.Uuid"45B09D0D-6AE8-416C-BB5A-F5FA7B5CC430"
local F = far.Flags
local items = {
--[[01]] {F.DI_TEXT,1,1,0,0,0,0,0,0,"test"},
}
local flags = 0
hDlg = far.DialogInit (id,-1,-1,6,3,HelpTopic,items,0,function(hDlg,Msg,Param1,Param2)
if Msg==F.DN_CONTROLINPUT and Param1==-1 then
local wi = far.AdvControl(F.ACTL_GETWINDOWINFO)
far.Show('hit')
return 1
end
return
end)
far.DialogRun(hDlg)
far.DialogFree(hDlg)
Code: Select all
far.exe /p%FARHOME%\Plugins /m
Code: Select all
lua:@crash.lua
Code: Select all
CtrlTab
lua:collectgarbage()
CtrlTab
Code: Select all
DialogRun и DialogFree для такого диалога указывать не нужно. при закрытии диалог автоматически уничтожается.
будет то же, что SendDlgMessage для обычного диалога, которому сделали DialogFree.
проверить наличие в списке окон.