View Issue Details

IDProjectCategoryView StatusLast Update
0002622Far ManagerPlugins API.Dialogpublic2021-08-24 13:06
Reportershmuel Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status newResolutionopen 
Platformx86OSWindows 
Product Version3.0 
Target Version3.0 
Summary0002622: Неправильный вывод текста в элементах DI_TEXT (два бага)
DescriptionБаг 1: флаг DIF_CENTERTEXT центрирует текст не в элементе, а в диалоге.

Баг 2: если у элемента задать X2 нулём, а текст задать достаточно длинный, то текст усекается до одного символа.
Steps To Reproducelocal function f(n) return ("a"):rep(n) end

local items = {
  { "DI_TEXT",1,1,30,1, 0,0,0, "DIF_CENTERTEXT",f(5) },
  { "DI_TEXT",1,2,10,2, 0,0,0, "DIF_CENTERTEXT",f(5) },
  { "DI_TEXT",1,3, 0,3, 0,0,0, 0, f(48) },
  { "DI_TEXT",1,4, 0,4, 0,0,0, 0, f(49) },
}

far.Dialog ("",-1,-1,50,5,nil,items,0)
TagsNo tags attached.
Build

Activities

vskirdin

2014-03-16 08:26

administrator   bugnote:0011953

С первым согласен, по второму - что ожидается при указанных некорректных координатах (о чем в Энц. описано)?

shmuel

2014-03-16 09:20

developer   bugnote:0011954

В Энциклопедии для DI_TEXT описано следующее (см. замечание 5):

> Если не указан флаг DIF_CENTERTEXT, то Far Manager самостоятельно перерасчитает
> координаты X2 и Y2, исходя из размера строки и размера диалога.

Это значит, что заданная координата X2 не имеет значения, а значение имеют размер строки и ширина диалога. В приведенном примере для нижнего элемента длина строки = 49. Ширина диалога = 50. С какого перепуга результирующая строка урезалась до одного символа? Из чего исходил при этом Far: из размера строки или из размера диалога?

AleXH

2021-07-28 08:04

reporter   bugnote:0017131

Last edited: 2021-08-04 14:12

View 2 revisions

Баг №3. Неправильно усекается текст при изменении длины поля DI_TEXT - координаты X2. Если X2 увеличивать, увеличивая длину поля до 1.5 раз, то текст усекается ещё больше. Пример - диалоги копирования/переименования F5/F6, ширина рамки диалога увеличена ДО увеличения ширины поля DI_TEXT.

Баг замечен при использовании скрипта Dialog.Maximize.moon - если заменить
[Uuid Guids.CopyFilesId                    ]: {1,3,11} -- Shell: Copy
на
[Uuid Guids.CopyFilesId                    ]: {1,2,3,11} -- Shell: Copy
добавляя масштабирование DI_TEXT с длинным именем копируемого файла, то имя файла усекается неверно.

Недоработка №4. При DM_RESIZEDIALOG не выполняется пересоздание строк DI_TEXT с Х2=Х4 с учётом новой ширины диалога. А если X2!=X4, то усекается неверно (Баг №3).

Issue History

Date Modified Username Field Change
2014-03-15 15:20 shmuel New Issue
2014-03-16 08:26 vskirdin Note Added: 0011953
2014-03-16 09:20 shmuel Note Added: 0011954
2021-07-28 08:04 AleXH Note Added: 0017131
2021-08-04 14:12 AleXH Note Edited: 0017131 View Revisions