View Issue Details

IDProjectCategoryView StatusLast Update
0003525WishesPlugins API.Panelpublic2018-01-27 13:44
ReporterJohnDoe Assigned ToDrKnS  
PrioritynormalSeverityfeatureReproducibilityalways
Status assignedResolutionopen 
Platformx86OSWindowsOS VersionXP SP3
Product Version3.0 
Summary0003525: FCTL_SETUSERSCREEN: нежелательный перевод строки
DescriptionПобочным эффектом использования FCTL_SETUSERSCREEN является перевод строки.
Это не имеет значения, если между get/setuserscreen - цельный и непрерывный вывод, но создаёт неудобства в других случаях.
Вот несколько:
  1. Если вывод в буфер осуществляется дискретно.
  2. Это может быть в случае, если например вывод является дополнительной функцией (скажем, логгирование), а при этом для основного действия требуется другой контекст.
  3. Если использовать get/setuserscreen как альтернативу Ctrl-O (), то при вывод постепенно уползает вверх.

Предлагаю при использовании FCTL_SETUSERSCREEN не переводить строку.
Возможно поведение по умолчанию не менять, а управлять переводом строки с помощью параметров.
Steps To Reproduce
    panel.GetUserScreen()
    io.write(1)
    io.write(2)
    io.write(3)
    panel.SetUserScreen()
    
    panel.GetUserScreen()
    io.write(4)
    panel.SetUserScreen()

    panel.GetUserScreen()
    io.write(5)
    panel.SetUserScreen()

Выводит:
123
4
5

А хотелось бы:
12345
Additional InformationАналогичные пожелания высказывались и ранее, например: 0003297:0014767
TagsDesktop/Userscreen
Build

Relationships

related to 0003302 new Разрешить переключение в Desktop из модальных окон 

Activities

JohnDoe

2017-10-17 08:36

updater   bugnote:0015673

Уточнение для вложенных вызовов (get get set set).
Перевод строки может происходит не после SetUserScreen, а перед вложенным GetUserScreen.

DrKnS

2018-01-25 22:10

administrator   bugnote:0015956

5133.
Чтобы перевода не было - передавайте 1 в Param1.

JohnDoe

2018-01-27 12:09

updater   bugnote:0015958

Спасибо.
Не проверял, пока отсутствует поддержка со стороны LuaFAR.

Но информация в Энциклопедии вызывает вопросы:
Неясно какую роль параметр выполняет отдельно в Get и Set, надо ли передавать в обоих случаях, что если передать только в одном, и какой именно сценарий подразумевается под "(при повторном вызове)".

DrKnS

2018-01-27 13:00

administrator   bugnote:0015959

> и какой именно сценарий подразумевается под "(при повторном вызове)".
Предыдущий комментарий же.

JohnDoe

2018-01-27 13:43

updater   bugnote:0015961

Last edited: 2018-01-27 13:44

>Предыдущий комментарий же.
Т.е. "get get set set"?

Из Энциклопедии может показаться что оба вызова (и Get и Set) переводят строку, а это не так (насколько я понимаю): Get переводит строку только если он вложенный (и в этом случае парный ему Set не выполняет действий).

Возможно я не прав, т.к. предыдущее утверждение основывается на наблюдениях, а не на изучении исходников.
В любом случае я не улавливаю значения уточнения "(при повторном вызове)" в описании FCTL_SETUSERSCREEN.

Issue History

Date Modified Username Field Change
2017-10-13 08:23 JohnDoe New Issue
2017-10-17 08:36 JohnDoe Note Added: 0015673
2017-10-31 21:32 JohnDoe Relationship added related to 0003302
2017-11-02 15:53 JohnDoe Tag Attached: Desktop/Userscreen
2018-01-25 22:10 DrKnS Assigned To => DrKnS
2018-01-25 22:10 DrKnS Status new => feedback
2018-01-25 22:10 DrKnS Note Added: 0015956
2018-01-27 12:09 JohnDoe Note Added: 0015958
2018-01-27 12:09 JohnDoe Status feedback => assigned
2018-01-27 13:00 DrKnS Note Added: 0015959
2018-01-27 13:43 JohnDoe Note Added: 0015961
2018-01-27 13:44 JohnDoe Note Edited: 0015961