RecentScreens — переключение между окнами как в MS Windows™
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
RecentScreens — переключение между окнами как в MS Windows™
В большинстве приложений, которые я использую, переключение между окнами происходит в порядке их использования (MRU order).
Но не во всех, пример исключений: FAR manager, Google Chrome.
Для решения этой проблемы в фаре был когда-то такой плагинчик RecentScreens — меню «Экраны» в порядке использования
Вашему вниманию предлагается LuaMacro-реализация подобной функциональности.
Переключение окон-экранов по умолчанию заменяет LCtrlTab (только левый Ctrl).
В отличии от обычного переключения экранов — в процессе переключения может отображаться список окон (до тех пор, пока удерживается Ctrl).
Требуется FAR3 build 5547 или новее.
[download] https://chiselapp.com/user/johnd0e/repo ... creens.lua
Но не во всех, пример исключений: FAR manager, Google Chrome.
Для решения этой проблемы в фаре был когда-то такой плагинчик RecentScreens — меню «Экраны» в порядке использования
Вашему вниманию предлагается LuaMacro-реализация подобной функциональности.
Переключение окон-экранов по умолчанию заменяет LCtrlTab (только левый Ctrl).
В отличии от обычного переключения экранов — в процессе переключения может отображаться список окон (до тех пор, пока удерживается Ctrl).
Требуется FAR3 build 5547 или новее.
[download] https://chiselapp.com/user/johnd0e/repo ... creens.lua
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Re: RecentScreens — переключение между окнами как в MS Windo
Latest post of the previous page:
Code: Select all
local switchInstant = S.switchInstant==nil and true or S.switchInstant
Code: Select all
local Lock = { ['Num']=0, ['Caps']=1, ['Scroll']=2 }
Code: Select all
local Lock = { Num=0, Caps=1, Scroll=2 }
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: RecentScreens — переключение между окнами как в MS Windo
Не совсем так."and true" - лишнее.Code: Select all
local switchInstant = S.switchInstant==nil and true or S.switchInstant
true выступает как дефолтное значение, применяемое при отсутствии записи в базе.
А со вторым однозначно перемудрил )
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Re: RecentScreens — переключение между окнами как в MS Windo
А вы подумайте ещё.John Doe wrote:Не совсем так."and true" - лишнее.Code: Select all
local switchInstant = S.switchInstant==nil and true or S.switchInstant
true выступает как дефолтное значение, применяемое при отсутствии записи в базе.
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: RecentScreens — переключение между окнами как в MS Windo
Что тут думать, вы безусловно правы в том, что СЕЙЧАС его можно безболезненно отбросить, упростив таким образом выражение.
Но представьте, что там не значение, а переменная switchInstantDefault
Но представьте, что там не значение, а переменная switchInstantDefault
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: RecentScreens — переключение между окнами как в MS Windo
Есть подозрение, что опция "задержка меню" избыточна.
И вместо неё стоит сделать что-либо попроще, например:
- появление меню после второго нажатия CtrlTab
- отдельный хоткей для переключения с отображением списка (CtrlCapsLock)
- ...
Какие будут мнения?
И вместо неё стоит сделать что-либо попроще, например:
- появление меню после второго нажатия CtrlTab
- отдельный хоткей для переключения с отображением списка (CtrlCapsLock)
- ...
Какие будут мнения?
Re: RecentScreens — переключение между окнами как в MS Windo
Отдельный хоткей лично мне был бы удобнее. Может, настройку вариантов поведения сделать, если будут и другие пожелания?John Doe wrote:Есть подозрение, что опция "задержка меню" избыточна.
И вместо неё стоит сделать что-либо попроще, например:
- появление меню после второго нажатия CtrlTab
- отдельный хоткей для переключения с отображением списка (CtrlCapsLock)
- ...
Какие будут мнения?
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: RecentScreens — переключение между окнами как в MS Windo
Есть хоткей для открытия меню - CtrlF12. Не оно?IgorZ wrote:Отдельный хоткей лично мне был бы удобнее. Может, настройку вариантов поведения сделать, если будут и другие пожелания?
Тогда выключите в настройках отображение списка, и добавьте ещё один макрос на отдельный хоткей (CtrlCapsLock) Через пару дней сообщите, удобно ли это, и всё ли работает ожидаемым образом.
Есть ещё один момент: после того, как вы начали переключение CtrlTab (без списка), но до того, как вы отпустите Ctrl, вам тоже может понадобиться отобразить меню. CtrlF12 в этом случае сработает, а CtrlCapsLock - нет. Надо ли?
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: RecentScreens — переключение между окнами как в MS Windo
Обнаружилась проблема при переключении между редактором/вьювером с помощью F6.
А потом при выходе из файла и фар падает...
А потом при выходе из файла и фар падает...
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: RecentScreens — переключение между окнами как в MS Windo
Установить скрипт, открыть файл, нажать F6, полюбоваться на красное окошко (это мой ассерт, так что нормально), попытаться закрыть файл, получить трап.
Но это ещё не багрепорт, позже дам минимальный макрос для воспроизведения трапа.
Но это ещё не багрепорт, позже дам минимальный макрос для воспроизведения трапа.
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
RecentScreens — переключение между окнами как в MS Windo
1. Если в редакторе нажать F6, то событие VE_READ приходит раньше чем EE_CLOSE.
Во вьювере вероятно аналогично, нажать F6, то событие EE_READ приходит раньше чем VE_CLOSE.
2.Если во время EE_CLOSE/VE_CLOSE вызвать far.AdvControl (F.ACTL_GETWINDOWINFO), то вернётся nil
(Падает в обоих случаях, что вызывает трап ещё не выяснил)
P.S.
Приложил коллекцию сегодняшних трапов, они отличаются
<удалено>
Во вьювере вероятно аналогично, нажать F6, то событие EE_READ приходит раньше чем VE_CLOSE.
2.Если во время EE_CLOSE/VE_CLOSE вызвать far.AdvControl (F.ACTL_GETWINDOWINFO), то вернётся nil
(Падает в обоих случаях, что вызывает трап ещё не выяснил)
P.S.
Приложил коллекцию сегодняшних трапов, они отличаются
<удалено>
- John Doe
- Бюрократ
- Posts: 13862
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Re: RecentScreens — переключение между окнами как в MS Windo
Разобрался.
Проблема вызвана самим выводом сообщений во время событий закрытия редактора/вьювера.
Проявляется только при переходе через F6.
Вот минимум для воспроизведения: Любой из этих двух макросов приводит к трапу при выходе из редактора/вьювера.
Проблема вызвана самим выводом сообщений во время событий закрытия редактора/вьювера.
Проявляется только при переходе через F6.
Вот минимум для воспроизведения: Любой из этих двух макросов приводит к трапу при выходе из редактора/вьювера.
- t-rex
- Страшный и ужасный
- Posts: 4910
- Joined: Tue 15 Mar, 2005 16:17
- Location: Tel-Aviv
- Has thanked: 1 time
- Been thanked: 8 times
- Contact:
Re: RecentScreens — переключение между окнами как в MS Windo
и само собой до 3348 не повторяется? или это у меня уже паранойя?
- t-rex
- Страшный и ужасный
- Posts: 4910
- Joined: Tue 15 Mar, 2005 16:17
- Location: Tel-Aviv
- Has thanked: 1 time
- Been thanked: 8 times
- Contact:
Re: RecentScreens — переключение между окнами как в MS Windo
и то хорошо. но вообще при обработке этих эвентов не стоит выводить ничего интерактивного.