Как отключить Drag&Drop?
Как отключить Drag&Drop?
В Far Manager как-то можно отключить Drag&Drop не отключая при этом полностью всю мышь?
Last edited by HaRT on Sat 18 Nov, 2023 17:10, edited 1 time in total.
Reason: Убрано спец.оформление (значок Темы)
Reason: Убрано спец.оформление (значок Темы)
- HaRT
- Moderator
- Posts: 11017
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 233 times
- Been thanked: 368 times
Как отключить Drag&Drop?
У меня нет ответа на ваш вопрос, но он породил большое любопытство, зачем вам понадобилось отключать DnD. Чем он вам помешал?
Фар есть инструмент, а не нянька. © 2009 DrKnS
Как отключить Drag&Drop?
Из-за Windows Terminal. При даблклике на файле в Far запускается соответствующая программа, открывающая этот файл, но при этом Far Manager периодически (не всегда, закономерности не обнаружил) переходит в режим перетаскивания этого файла. Видимо, не получает событие что кнопка мыши отжата. Самое простое решение было бы вообще отключить эти перетаскивания, т.к. я ими не пользуюсь.
Last edited by Ajaja on Sun 03 Dec, 2023 10:11, edited 1 time in total.
- HaRT
- Moderator
- Posts: 11017
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 233 times
- Been thanked: 368 times
Как отключить Drag&Drop?
Да, почти наверняка событие второго отжатия ЛКМ улетает в свежезапущенное приложение. Если не сложно, понаблюдайте, воспроизводится ли у вас эта ошибка с долго стартующими приложениями/документами. Если моя гипотеза верна, то с ними должно быть всё в порядке. И в этом случае уже можно думать над какими-то ещё обходными путями.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Как отключить Drag&Drop?
Поэкспериментировал. Странно, но как-раз проблема возникает с более медленными приложениями. Если после даблклика успеть немного сместить мышь в момент когда окно приложения (видеоплеера, например, если кликать на видеофайле) еще не открылось и фокус на него не переключился, то при возврате фокуса в Far он уже находится в режиме перетаскивания этого файла мышью. С быстрыми приложениями, на которые фокус быстро переключается, проблема в основном не возникает.
Повтороюсь, это только в Windows Terminal. В conemu или классическом conhost я такую проблему никогда не замечал.
Повтороюсь, это только в Windows Terminal. В conemu или классическом conhost я такую проблему никогда не замечал.
Как отключить Drag&Drop?
Согласен, глючит страшно по двойному клику. В предыдущих билдах стабильно начинал трэкать курсор после открытия приложений. В последнем билде стал чаще начинать drag&drop. Может, отключить вообще трекинг мыши? Открывать файлы двойным кликом стало практически невозможно. Средняя кнопка в последнем билде вообще одноразовая. Запускается один раз, а потом вообще не позволяет сдвинуть курсор с места!
- Zeroes
- Мультикопипастер Броадкастер
- Posts: 589
- Joined: Wed 16 Mar, 2005 20:53
- Location: Gomel \ Belarus
- Has thanked: 1 time
- Been thanked: 3 times
- Contact:
Как отключить Drag&Drop?
скоро год будет как я открыл тикет по данной проблеме:
https://github.com/microsoft/terminal/issues/15540
они на багу посмотрели, покачали головой, а воз и ныне там...
PS. попробую скрипт написать для Autohotkey v2.x для обхода проблемы...
https://github.com/microsoft/terminal/issues/15540
они на багу посмотрели, покачали головой, а воз и ныне там...
PS. попробую скрипт написать для Autohotkey v2.x для обхода проблемы...
Last edited by Zeroes on Thu 18 Apr, 2024 09:04, edited 3 times in total.
--- Zeroes & Ones ---
- Zeroes
- Мультикопипастер Броадкастер
- Posts: 589
- Joined: Wed 16 Mar, 2005 20:53
- Location: Gomel \ Belarus
- Has thanked: 1 time
- Been thanked: 3 times
- Contact:
Как отключить Drag&Drop?
Workaround решения вышеописанной проблемы [тикет от меня: https://github.com/microsoft/terminal/issues/15540]
нужен Autohotkey v2.x [как вариант скачать последнюю портативную версию https://www.autohotkey.com/download/ahk-v2.zip в каталоге создать AutoHotkey64.ahk туда добавить скрипт, ярлык на AutoHotkey64.exe поместить в автозагрузку], работоспособность скриптов проверял на Win10.
1) Лечение даблклика левой клавиши мышки, лечение клика колесом мышки
При этом будет побочка:
a) не будет работать DND для файлов мышкой
b) не будет работать выделение мышкой в режиме граберра экрана
так же лечим работу под эмулятором терминала WezTerm (так как он тоже использует OpenConsole.exe из состава WT)
2) решение ещё одной проблемы - потери фокуса WT при некоторых обстоятельствах
тикет от меня тут: https://github.com/microsoft/terminal/issues/15956
Этот код должен быть размещён в самом конце файла AutoHotkey64.ahk
3) решение ещё одной проблемы - при возвращение по Alt-Tab в окно WT если курсор мыши попадает в активную зону окна WT, курсор мыши может стать значком ответственным за состояние BUSY OS (пока заметил эффект с одной программой WinSSHTerm, когда открыта сессия SSH и переключаемся на окно WT)
нужен Autohotkey v2.x [как вариант скачать последнюю портативную версию https://www.autohotkey.com/download/ahk-v2.zip в каталоге создать AutoHotkey64.ahk туда добавить скрипт, ярлык на AutoHotkey64.exe поместить в автозагрузку], работоспособность скриптов проверял на Win10.
1) Лечение даблклика левой клавиши мышки, лечение клика колесом мышки
При этом будет побочка:
a) не будет работать DND для файлов мышкой
b) не будет работать выделение мышкой в режиме граберра экрана
так же лечим работу под эмулятором терминала WezTerm (так как он тоже использует OpenConsole.exe из состава WT)
Code: Select all
CoordMode "Mouse" , "Window"
#HotIf Check_OpenConsole_and_FAR()
Check_OpenConsole_and_FAR()
{
Try
{
MouseGetPos , &ypos
if (ypos > 40) ; разрешаем перетаскивать за заголовок окна
{
currentTitle := WinGetTitle("A")
if (!InStr(currentTitle,"редактирование ") and !InStr(currentTitle,"edit ")) ; разрешаем выделение мышкой в редакторе
return winActive("- Far 3.0 ahk_class CASCADIA_HOSTING_WINDOW_CLASS") or winActive("- Far 3.0 ahk_class org.wezfurlong.wezterm")
}
}
}
LButton::
{
Send "{LButton}"
}
MButton::
{
Send "{MButton}"
}
#HotIf
тикет от меня тут: https://github.com/microsoft/terminal/issues/15956
Этот код должен быть размещён в самом конце файла AutoHotkey64.ahk
Code: Select all
Loop {
Try {
hwnd := WinWait("A")
className := WinGetClass(hwnd)
if className == "PseudoConsoleWindow"
{
if WinExist("ahk_class CASCADIA_HOSTING_WINDOW_CLASS")
WinActivate
}
WinWaitNotActive hwnd
}
}
3) решение ещё одной проблемы - при возвращение по Alt-Tab в окно WT если курсор мыши попадает в активную зону окна WT, курсор мыши может стать значком ответственным за состояние BUSY OS (пока заметил эффект с одной программой WinSSHTerm, когда открыта сессия SSH и переключаемся на окно WT)
Code: Select all
DllCall("RegisterShellHookWindow", "ptr", A_ScriptHwnd)
OnMessage(DllCall("RegisterWindowMessage", "str", "SHELLHOOK"), ShellHook)
ShellHook(wParam, lParam, *) {
if (wParam = 0x8004 || wParam = 4) {
hwnd := lParam || WinExist("A")
Try
{
className := WinGetClass(hwnd)
if className == "CASCADIA_HOSTING_WINDOW_CLASS"
{
MouseMove 1,0,0,"R"
MouseMove -1,0,0,"R"
}
}
}
}
Last edited by Zeroes on Fri 26 Jul, 2024 12:39, edited 10 times in total.
--- Zeroes & Ones ---
- Zeroes
- Мультикопипастер Броадкастер
- Posts: 589
- Joined: Wed 16 Mar, 2005 20:53
- Location: Gomel \ Belarus
- Has thanked: 1 time
- Been thanked: 3 times
- Contact:
Как отключить Drag&Drop?
проблема потери фокуса (мой №2) решена с версии terminal-1.23.2421.0 (canary)
--- Zeroes & Ones ---