О немодальности макрообластей *AutoCompletion и Search
- John Doe
- Бюрократ
- Posts: 14175
- Joined: Wed 27 Apr, 2005 20:42
- Location: github.com/FarManagerLegacy
- Has thanked: 80 times
- Been thanked: 454 times
- Contact:
О немодальности макрообластей *AutoCompletion и Search
С некоторых пор у нас прибавились 2 области, задуманные как немодальные (DialogAutoCompletion и ShellAutoCompletion).
И тут уже проблема встаёт ребром, т.к. автодополнение включено по умолчанию, и крайне навязчиво.
Соответственно каждый пользователь много раз в день с ним сталкивается.
И даже странно, почему на форуме так мало жалоб на несрабатывание макросов, назначенных на Shell или Dialog.
Вероятно половина пользователей отключила макросы, а вторая "наворотила макросы" (например: http://forum.farmanager.com/viewtopic.p ... 431#p87431 и http://forum.farmanager.com/viewtopic.p ... 90#p102590
Предлагается
В случае если в областях Search или *AutoCompletion нажата неперехватываемая клавиша, то надо не просто передавать её в родительскую область, но и вызывать макросы (при их наличии в родительских областях)
- NightRoman
- Posts: 6197
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 34 times
- Been thanked: 62 times
- Contact:
Re: О немодальности макрообластей *AutoCompletion и Search
Предположу, потому что как бы смирились, что при открытом автодополнении не все работает, и вручную сначала убирают автодополнение Esc-ом.И даже странно, почему на форуме так мало жалоб на несрабатывание макросов, назначенных на Shell или Dialog.
- John Doe
- Бюрократ
- Posts: 14175
- Joined: Wed 27 Apr, 2005 20:42
- Location: github.com/FarManagerLegacy
- Has thanked: 80 times
- Been thanked: 454 times
- Contact:
Re: О немодальности макрообластей *AutoCompletion и Search
Я не понял, вы поддерживаете предложение, или наоборот, мол нафиг надо, уже привыкли корячиться?
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: О немодальности макрообластей *AutoCompletion и Search
Проблема в том, что макрос назначенный на область, скажем, Dialog, скорее всего не будет работать корректно, если активно автодополнение. Так какой смысл автоматически вызывать макрос, который все равно глючит? А если макрос _адаптирован_ для работы при автодополнении, то это несложно (теперь) указать, расширив Area.
- John Doe
- Бюрократ
- Posts: 14175
- Joined: Wed 27 Apr, 2005 20:42
- Location: github.com/FarManagerLegacy
- Has thanked: 80 times
- Been thanked: 454 times
- Contact:
Re: О немодальности макрообластей *AutoCompletion и Search
Пардон, но я в корне не согласен.
Области, о которых мы говорим - немодальны, и закрываются перед передачей клавиши в родительскую.
Т.е. клавиша приходит уже в родительскую область. Что макросами, что без - разницы нет.
По идее то что я предлагаю абсолютно совместимо с текущим поведением, и ни один макрос не сломается.
Зато половину можно будет убрать/упростить.
Области, о которых мы говорим - немодальны, и закрываются перед передачей клавиши в родительскую.
Т.е. клавиша приходит уже в родительскую область. Что макросами, что без - разницы нет.
По идее то что я предлагаю абсолютно совместимо с текущим поведением, и ни один макрос не сломается.
Зато половину можно будет убрать/упростить.
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: О немодальности макрообластей *AutoCompletion и Search
Не совсем так. Многие функции меняют свое поведение при вызове из DialogAutoCompletion. Например:
Dlg.GetValue, Object.CurPos, Object.ItemCount... и фиг знает какие еще.
Поэтому, чтобы быть уверенным, что макрос отработает как надо, в нем все равно приходится писать вначале что-то типа:
Dlg.GetValue, Object.CurPos, Object.ItemCount... и фиг знает какие еще.
Поэтому, чтобы быть уверенным, что макрос отработает как надо, в нем все равно приходится писать вначале что-то типа:
Code: Select all
if Area.DialogAutoCompletion then
Keys("Esc")
end
- NightRoman
- Posts: 6197
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 34 times
- Been thanked: 62 times
- Contact:
Re: О немодальности макрообластей *AutoCompletion и Search
Я согласен, что неплохо бы улучшить ситуацию. Улучшит ли то, что предложено, пока не уверен. А может и хуже будет. "Гладко было на бумаге, да забыли про овраги."John Doe wrote:Я не понял, вы поддерживаете предложение, или наоборот, мол нафиг надо, уже привыкли корячиться?
- John Doe
- Бюрократ
- Posts: 14175
- Joined: Wed 27 Apr, 2005 20:42
- Location: github.com/FarManagerLegacy
- Has thanked: 80 times
- Been thanked: 454 times
- Contact:
Re: О немодальности макрообластей *AutoCompletion и Search
Нет.Max Rusov wrote:Не совсем так. Многие функции меняют свое поведение при вызове из DialogAutoCompletion. Например:
Dlg.GetValue, Object.CurPos, Object.ItemCount... и фиг знает какие еще.
1) Нажимается клавиша. Автодополнение (или быстрый поиск) на них не претендуют, и макросов в своей области на эту клавишу нет.
2) Автодополнение (или быстрый поиск) закрываются. Контекст переключается на родительскую область (панели или диалог)
3) В родительской области есть макрос на эту клавишу.
В момент вызова макроса контекстом должна являться родительская область.
- NightRoman
- Posts: 6197
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 34 times
- Been thanked: 62 times
- Contact:
Re: О немодальности макрообластей *AutoCompletion и Search
Вот, скажем, альтернативное предложение. Завести области EditBox и CommandLine (или их общее EditLine). Пусть Фар сам разберется имеется ли в данный момент строка редактора [*], пропустит клавиши в строку редактора, уберет проблемное автодополнение сам.
[*] - а это не такая и простая задача для неискушенного юзера. В текущем диалоге не едит-бокс может быть активным. А для коммандной строки нужно указывать не только шелл, но и кучу других областей панелей (дерево, инфо, т.п.).
В общем, улучшать ситуацию не обязательно в лоб. Хочется чего-то гладкого и реально удобного.
[*] - а это не такая и простая задача для неискушенного юзера. В текущем диалоге не едит-бокс может быть активным. А для коммандной строки нужно указывать не только шелл, но и кучу других областей панелей (дерево, инфо, т.п.).
В общем, улучшать ситуацию не обязательно в лоб. Хочется чего-то гладкого и реально удобного.
- NightRoman
- Posts: 6197
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 34 times
- Been thanked: 62 times
- Contact:
Re: О немодальности макрообластей *AutoCompletion и Search
John Doe, до опыта кажется, что в шелл твое предложение может улучшить ситуацию (отметем пока страхи о подводных камнях). А в диалоге вряд ли принципиально улучшит. Получается половинчатое какое-то решение.
- John Doe
- Бюрократ
- Posts: 14175
- Joined: Wed 27 Apr, 2005 20:42
- Location: github.com/FarManagerLegacy
- Has thanked: 80 times
- Been thanked: 454 times
- Contact:
Re: О немодальности макрообластей *AutoCompletion и Search
Может мы о разных вещах говорим?
Моё предложение позволит при написании макроса не задумываться о возможности наличия на экране активного автодополнения.
Как в панелях, так и в диалоге.
Не вижу разницы вообще. Где половинчатость?
Моё предложение позволит при написании макроса не задумываться о возможности наличия на экране активного автодополнения.
Как в панелях, так и в диалоге.
Не вижу разницы вообще. Где половинчатость?
- John Doe
- Бюрократ
- Posts: 14175
- Joined: Wed 27 Apr, 2005 20:42
- Location: github.com/FarManagerLegacy
- Has thanked: 80 times
- Been thanked: 454 times
- Contact:
Re: О немодальности макрообластей *AutoCompletion и Search
NightRoman wrote:Завести области EditBox и CommandLine (или их общее EditLine)
Ранее обсуждалось, могу найти пару ссылок. Очень интересно, но сильно неоднозначно.NightRoman wrote:А для коммандной строки нужно указывать не только шелл, но и кучу других областей панелей (дерево, инфо, т.п.).
И главное - выходит далеко за рамки предложенной здесь темы.
- NightRoman
- Posts: 6197
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 34 times
- Been thanked: 62 times
- Contact:
Re: О немодальности макрообластей *AutoCompletion и Search
Я не возражаю, что предложение имеет смысл. Но предлагаю не торопиться. Макросы сейчас все еще в процессе перехода. Может, еще что-то поменяется в них, и гораздо более удачное решение придет "само". Ну или не само, но в каком-то виде, который мы пока не можем придумать, а в "новых" макросах сможем.
- NightRoman
- Posts: 6197
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 34 times
- Been thanked: 62 times
- Contact:
Re: О немодальности макрообластей *AutoCompletion и Search
Сейчас, да, приходится "корячиться". Но покорячился немного один раз, и потом долго и хорошо работает. После внедрения предложения опять надо все отлаживать устаканивать, да потом еще выяснится, что поменяли шило на мыло.