Быстрый поиск

Здесь можно сообщить о найденных багах в Far.
ccaid
Posts: 805
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 9 times
Been thanked: 5 times

Быстрый поиск

Post by ccaid » Tue 13 Jan, 2015 21:25

Latest post of the previous page:

не с этой ли фичей в ConEmu отдельная борьба ведется: флажок fix alt on alttab/altf9
Фар делают добрые люди

User avatar
HaRT
Moderator
Posts: 8025
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 99 times

Быстрый поиск

Post by HaRT » Tue 13 Jan, 2015 23:27

ccaid wrote:не с этой ли фичей в ConEmu отдельная борьба ведется: флажок fix alt on alttab/altf9
Вряд ли.
Скорее наоборот, с открытием быстрого поиска при использовании этих кнопкосочетаний.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
John Doe
Бюрократ
Posts: 11096
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 67 times

Быстрый поиск

Post by John Doe » Wed 14 Jan, 2015 09:07

ccaid, спасибо за наводку, оказывается в Conemu предусмотрены фиксы для обоих описанных проблем:
Settings/Main/Keys &Macro/Controls/Miscellaneous wrote:
[ ] Fix Alt on AltTab/AltF9 (to avoid execution of Far Manager macro, linked to Alt-release)
When You set a macro on Alt (RAlt) it can unexpectedly activates on AltTab or AltF9. This issue can be fixed by sending to console Control depress before Alt release

[ ] Skip focus events (dont send to console FOCUS_EVENT, usefull with Far Manager)
Don't send focus events to console to disable autoclosing of fast search dialog in panels

User avatar
John Doe
Бюрократ
Posts: 11096
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 67 times

Быстрый поиск

Post by John Doe » Wed 14 Jan, 2015 09:18

zg wrote:
John Doe wrote:Это фича или баг?
есть код, который реализует это намеренно. т.е. вроде фича. насколько полезная — сложно сказать, при отладке приходится отключать, например.
Есть фантастическая гипотеза появления этой "фичи".

Давным давно некто из фартим использовал штатный макрос, аналогичный нынешнему AltSearch.lua , функция которого в том, чтобы по нажатию одиночного Alt открывать быстрый поиск.
Но вот проблема: сей макрос зачастую срабатывал и по AltTab и AltF9.
В результате и родился такой кривой фикс, чтобы гасить в фоне Быстрый поиск, ставший "назойливым".

P.S.
Проверил, данный костыль появился в FAR v1.70 beta 4 (в WhatsNew конечно ничего нет)

User avatar
DrKnS
Posts: 4563
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 2 times
Been thanked: 113 times
Contact:

Быстрый поиск

Post by DrKnS » Wed 14 Jan, 2015 17:50

http://faqs.org.ru/softw/shells/far2.htm wrote:Q3> Можно ли поиск сделать как в DN,т.е. нажать Alt,а потом набиpать имя файла?
A:
(SF)
Far\Addons\Macros\AltSearch.reg
(PAF)
Если ещё сделать там макрос <.>==<*.>, то получится поиск очень похожий на
that in DN.

Неприятность: из-за козлинских windows в far приходит alt-alone при
переключении задач по alt+tab/esc.
В результате, вернувшись, ты застукаешь FAR за incsearch.
Это не вредно - любая стрелка снимает, но если захочешь написать команду,
НАДО будет звонить через Esc, это неприятно.

Евгений говорил, что, возможно, поборет это под '95, но не под NT.
(SF)
Появился плагин "KillAlt" by SK, можно попробовать его...
(RP)
Пpоблемy можно частично pешить, если в pедактоpе макpосов "yбpать" левый
Альт. То есть, быстpый поиск бyдет только по пpавомy. А по левомy - только
одновpеменно с бyквой. Но зато пpи пеpеключении по Alt+Tab не появляется
вышеyказанный поиск... :)
Не знаю, насколько это актуально сейчас - убрал "фичу", понажимал AltTab / AltF9 многократно, поиск не появился.

User avatar
John Doe
Бюрократ
Posts: 11096
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 67 times

Быстрый поиск

Post by John Doe » Wed 14 Jan, 2015 18:02

DrKnS wrote: понажимал AltTab / AltF9 многократно, поиск не появился.
Надо нажимать быстро.

И лучше повесить на Alt что-то типа mf.beep(), или far.Show(), для чистоты эксперимента.

User avatar
zg
zero-gravity
Posts: 5241
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

Быстрый поиск

Post by zg » Thu 15 Jan, 2015 16:56

John Doe wrote:При быстром переключении между приложениями по AltTab он почему-то срабатывает.
что значит быстрое? сколько пытался — не воспроизводится.

User avatar
John Doe
Бюрократ
Posts: 11096
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 67 times

Быстрый поиск

Post by John Doe » Thu 15 Jan, 2015 18:30

Быстрым движением, не удерживая долго Alt.
Но видимо зависит от ОС: проблема у меня на Windows XP.
А проверил на 8.1 — не воспроизводится.

User avatar
John Doe
Бюрократ
Posts: 11096
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 67 times

Быстрый поиск

Post by John Doe » Thu 22 Jan, 2015 14:57

Однако не может быть, что проблема нерешаема.
Можно предоставить подходящее макросвойство для использования в condition?
Или каким-либо образом извещать о потере/получении фокуса окном фара (как предлагается в связанном тикете).

Покритикуйте что-ли...

User avatar
DrKnS
Posts: 4563
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 2 times
Been thanked: 113 times
Contact:

Быстрый поиск

Post by DrKnS » Thu 22 Jan, 2015 15:36

Я склоняюсь к "оставить костыль только для XP".

User avatar
John Doe
Бюрократ
Posts: 11096
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 67 times

Быстрый поиск

Post by John Doe » Fri 23 Jan, 2015 11:32

Code: Select all

drkns 22.01.2015 23:13:47 +0200 - build 4254
...
3. Не закрываем quick search при потере фокуса, если OC новее, чем XP/2k3.
Это уже хорошо. А с XP как?

Проблема в том, что костыль не выполняет свою функцию.
Он почему-то заточен на Быстрый поиск, а проблема ведь значительно шире: "ложно" срабатывает любой макрос на Alt.

Т.е. непонятно зачем костылить Быстрый поиск, ведь макрос может в реальности выводить диалог (или вообще выполнять неинтерактивные действия).
Самое простое решение - это при потере фокуса ничего не закрывать, а посылать специальную макроклавишу, которую макрос обработает по собственному усмотрению.
Это возможно?

User avatar
DrKnS
Posts: 4563
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 2 times
Been thanked: 113 times
Contact:

Быстрый поиск

Post by DrKnS » Fri 23 Jan, 2015 18:12

John Doe wrote: Это уже хорошо. А с XP как?
А никак, у меня XP нет.
Он почему-то заточен на Быстрый поиск, а проблема ведь значительно шире: "ложно" срабатывает любой макрос на Alt
Быстрый поиск по одиночному Alt - это привычный и востребованный аудиторией паттерн, а "любой макрос на Alt" - это какая-то фантасмагория, не делайте так.

User avatar
HaRT
Moderator
Posts: 8025
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 99 times

Быстрый поиск

Post by HaRT » Fri 23 Jan, 2015 18:23

DrKnS wrote: "любой макрос на Alt" - это какая-то фантасмагория, не делайте так
Ну, во-первых, быстрый поиск есть только на файловых панелях, а в любом другом контексте одиночный Alt можно задействовать для чего-то другого. И во-вторых, какие-то другие макросы частенько назначены на RAlt, для которого, подозреваю, ситуация с переключением окон такая же, как для LAlt.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
John Doe
Бюрократ
Posts: 11096
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 67 times

Быстрый поиск

Post by John Doe » Fri 23 Jan, 2015 19:48

DrKnS wrote: А никак, у меня XP нет.
Вероятно для XP и нет идеального решения, поэтому обсуждаем улучшение костылей.
DrKnS wrote: "любой макрос на Alt" - это какая-то фантасмагория
Ок, не любой.
Но есть как минимум 2 разных плагина/скрипта с усовершенствованным поиском, и их хочется иметь на том же Alt.
Плюс как намекнул HaRT, в редакторе Alt очень подходит к функции инкрементального поиска, и т.п.

Какие по существу возражения против того, чтобы заменить "безусловное закрытие быстрого поиска" посылкой макроклавиши?
Аудитории хуже ведь не станет.

User avatar
John Doe
Бюрократ
Posts: 11096
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 67 times

Быстрый поиск

Post by John Doe » Fri 20 Feb, 2015 13:29

John Doe wrote: Какие по существу возражения против того, чтобы заменить "безусловное закрытие быстрого поиска" посылкой макроклавиши?
Хочу продемонстрировать возможно решение с использованием ProcessConsoleInputW.

Текущая версия LuaMacro пока не обрабатывает ProcessConsoleInputW (на мантисе пожелание есть), поэтому прилагаю слегка версию (x86).

Напомню суть проблемы:

Вместо того, чтобы просто гасить быстрый поиск можно дать макросу доступ к фокусным событиям, например:
Тут при поступлении фокусного события обработчик пытается выполнить макрос с именем "GOTFOCUS" или "LOSTFOCUS", что значительно гибче.
Attachments
consoleinput.7z
(25.13 KiB) Downloaded 35 times

User avatar
John Doe
Бюрократ
Posts: 11096
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 67 times

Быстрый поиск

Post by John Doe » Fri 20 Feb, 2015 13:34

Только что нашёл способ получше, позволяющий вообще не запускать макрос, в случае когда Alt приходит ошибочно (при нажатии AltTab).

Code: Select all

local F = far.Flags
local LostFocus
Event { description="watch for focus";
  group="ConsoleInput";
  action=function(Rec)
    if Rec.EventType==F.FOCUS_EVENT then
      LostFocus = not Rec.SetFocus
      return 1
    end
  end;
}
local function skipAltTab()
  LostFocus = false
  mf.waitkey(1)
  return not LostFocus
end

Macro {
  area="Shell"; key="Alt"; description="Use Alt for search by name (activate)";
  condition=skipAltTab;
  action = function()
    Keys('Alt<')
  end;
}

Macro {
  area="Search"; key="Alt"; description="Use Alt for search by name (deactivate)";
  condition=skipAltTab;
  action = function()
    Keys('Esc')
  end;
}
Преимущество перед прочими вариантами: если быстрый поиск был открыт до переключения по AltTab, то он и остаётся открытым.

User avatar
John Doe
Бюрократ
Posts: 11096
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 67 times

Быстрый поиск

Post by John Doe » Tue 03 Mar, 2015 16:04

DrKnS wrote: Быстрый поиск по одиночному Alt - это привычный и востребованный аудиторией паттерн, а "любой макрос на Alt" - это какая-то фантасмагория, не делайте так.
В Addons недалеко от AltSearch.lua лежит и AltMenu.lua

Post Reply

Return to “Глюки и баги”