View Issue Details

IDProjectCategoryView StatusLast Update
0003679Far ManagerPlugins API.Dialogpublic2018-11-28 17:30
Reportershmuel Assigned ToDrKnS  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Platformx86OSWindowsOS Version7
Product Version3.0 
Fixed in Version3.0 
Summary0003679: После фильтрации комбобокса и нажатия Esc DM_LISTGETCURPOS работает неправильно
DescriptionНажмём на комбобоксе, имеющем фокус, "CtrlDown CtrlAltF", произведём фильтрацию, нажмём Esc.
Ожидается, что состояние комбобокса не изменилось, т.к. была нажата клавиша отмены.
Однако DM_LISTGETCURPOS возвращает текущую позицию, которая была на момент отмены.
Steps To Reproduce
local Guid = win.Uuid("51B704EE-BEF5-4726-A5C1-D76B23756DB8")

local Items = {
  { "DI_DOUBLEBOX", 3, 1, 25, 4, 0, 0, 0, 0, "My Dialog"},
  { "DI_COMBOBOX",  5, 2, 22, 2,
        {{Text="Foo",Flags="LIF_SELECTED"},{Text="Bar"}}, 0, 0, "DIF_DROPDOWNLIST", ""}
}

local hDlg = far.DialogInit(Guid, -1, -1, 29, 6, "", Items)
far.DialogRun(hDlg)
local pos = hDlg:send("DM_LISTGETCURPOS", 2)
far.Show(pos.SelectPos, pos.TopPos)
far.DialogFree(hDlg)
TagsNo tags attached.
Build5318

Activities

DrKnS

2018-11-16 14:08

administrator   bugnote:0016325

Когда комбобокс закрывается по Esc, диалог восстанавливает исходную позицию в нём.
Однако, фильтр всё еще активен и установить невалидную (с его точки зрения) позицию он не даёт, поэтому остаётся текущая.

Проще всего, наверное, при сворачивании комбобокса очищать фильтр.

shmuel

2018-11-16 14:17

developer   bugnote:0016326

Проще всего, наверное, при сворачивании комбобокса очищать фильтр.

DrKnS
Как угодно, лишь бы работало правильно.
Хотя я представлял себе несколько по-другому: при открытии комбобокса - запоминать его состояние, а после отмены - восстанавливать.

DrKnS

2018-11-16 14:20

administrator   bugnote:0016327

при открытии комбобокса - запоминать его состояние, а после отмены - восстанавливать

shmuel
См. выше.

shmuel

2018-11-16 14:29

developer   bugnote:0016328

А что смотреть выше, что "фильтр не даёт установить позицию"? Кто хозяин: фильтр или программист?
А насчёт сброса фильтра - я только за, причём не только при отмене, но и при выборе пункта тоже.

JohnDoe

2018-11-17 08:42

updater   bugnote:0016329

Last edited: 2018-11-17 08:44

После 5318 при отмене выбора - фильтр сбрасывается, и в следующий раз список раскрывается с выключенным фильтром.

А при подтверждении выбора - фильтр остаётся в прежнем положении, т.е. в следующий раз список раскрывается с активным фильтром.

Т.е. поведение стало не вполне консистентным.

Предлагаю всегда сбрасывать фильтр при сворачивании списка.
Пользы от хранения состояния фильтра в общем и не вижу, это скорее наоборот неожиданно.

JohnDoe

2018-11-19 07:46

updater   bugnote:0016331

5319: всегда сбрасываем фильтр при закрытии комбобокса.

Issue History

Date Modified Username Field Change
2018-11-16 11:18 shmuel New Issue
2018-11-16 11:20 shmuel Description Updated
2018-11-16 11:24 shmuel Description Updated
2018-11-16 14:08 DrKnS Note Added: 0016325
2018-11-16 14:17 shmuel Note Added: 0016326
2018-11-16 14:20 DrKnS Note Added: 0016327
2018-11-16 14:29 shmuel Note Added: 0016328
2018-11-17 00:16 DrKnS Assigned To => DrKnS
2018-11-17 00:16 DrKnS Status new => closed
2018-11-17 00:16 DrKnS Resolution open => fixed
2018-11-17 00:16 DrKnS Fixed in Version => 3.0
2018-11-17 00:16 DrKnS Build => 5318
2018-11-17 08:42 JohnDoe Status closed => assigned
2018-11-17 08:42 JohnDoe Note Added: 0016329
2018-11-17 08:44 JohnDoe Note Edited: 0016329
2018-11-19 07:46 JohnDoe Status assigned => resolved
2018-11-19 07:46 JohnDoe Note Added: 0016331
2018-11-28 17:30 shmuel Status resolved => closed