Closed Break-Neck closed 10 years ago
Двойной клик работает, но только под GTK. Под WPF не работает, видимо, даблклик передаётся другому виджету-контейнеру. К сожалению, я сейчас далеко от ПК и не могу полноценно протестировать данный патч. Если не сложно, проверьте под Win-WPF, Win-GTK, Linux-GTK. А значение задержки хорошо бы брать из системных настроек. Для этого я уже кучу времени думаю написать по плагину:IPlugin для каждой ОС, используя уже сделанное гибкое (безынтерфейсное) API (APIcallhost, APIcallplugin).
К сожалению, у меня не получилось запустить fcmd ни в связке Linux-GTK (это я писал то issue), ни Win-GTK ("Была попытка загрузить программу, имеющую неверный формат").
Действительно, значение задержки надо было сразу брать из системных настроек, я просто не был уверен, что это можно делать в управляемом коде; сейчас исправил, но на Mono протестировать не смог по уже упомянутым причинам.
Чтобы запустить FC с Win-GTK, FC нужно компилировать в той же разрядности, что и установленный gtk#. Как правило, это х86. Wpf работает в обеих разрядностях.
На Windows у меня работает.
На будущее: любые правки более, чем на пару строк, рекомендуется сопровождать указанием в начале изменённого файла, над строкой "Contributors should place own signs here", своего имени (ника) и адреса e-mail. Да, есть Git, через который всегда можно понять, кто что сделал, но с "зарубкой" в начале файла как-то проще. Возникили вопросы - взял, да спросил авторов, как оно работает (работало).
C новым бэкендом XWT GTK-3 fcmd падает:
(fcmd:10832): Gtk-ERROR **: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported
Похоже, причина в обращении к Winforms.SystemInformation.DoubleClickTime . В любом случае, дальше этой строки выполнение не идёт, а её комментирование устраняет падение. Надо вместо этого способа искать, кому уходит событие buttonpressed с multiplepress > 1.
Был очень удивлен, когда fcmd не обрабатывал двойные нажатия, теперь по двойному щелчку открывает текущий файл. Для этого потребовалось задать время задержки между щелчками (насколько быстрые считать двойным), добавил в User Setting, по-умолчанию стоит 1000 миллисекунд.