| View previous topic :: View next topic |
| Author |
Message |
DV
Joined: 16 Nov 2006 Posts: 723 Location: Kyiv, Ukraine
|
Posted: Thu Sep 30, 2010 8:36 am Post subject: |
|
|
Можно попробовать блокировать работу NoSelEOL, если показан диалог Поиска или Замены. Но тогда NoSelEOL не будет работать и в том случае, когда мы работаем в окне редактирования, а неактивный диалог поиска/замены просто висит на экране.
(добавлено позднее) Появилась ещё идея использовать GetFocus() - если во время изменения выделения фокус ввода не на окне редактирования, значит, выделение меняется извне (например, из диалогов поиска/замены). |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1888 Location: Vinnitsa, Ukraine
|
Posted: Thu Sep 30, 2010 9:47 am Post subject: |
|
|
DV
Ну как минимум на время обработки Акелом сообщений AKD_TEXTFIND, AKD_TEXTREPLACE нужно приостановится - программные(со скриптов и с плагинов) поиск/замена хотя бы будут работать.
Насчет замены через GUI - не повезло. Akel выполняет замену внутренними функция напрямую(Edit.cpp ReplaceText) минуя эти сообщения. И других специфических, на которые можно было бы среагировать, не использует.
Сообщение AEM_TEXTFIND тоже активно пользуется в поиске(и в пошаговой замене), можно вокруг него поплясать.
Ещё один способ привязаться в голову пришел: WM_SETREDRAW FALSE используется только автоматическими алгоритмами, которые манипулируют текстом. Поиск/замена тоже сюда входят. Всё что делается пользователем вручную(мышь, клавиатура) WM_SETREDRAW не использует. Можно попытаться отключатся между парой WM_SETREDRAW FALSE - WM_SETREDRAW TRUE. |
|
| Back to top |
|
 |
DV
Joined: 16 Nov 2006 Posts: 723 Location: Kyiv, Ukraine
|
Posted: Sun Oct 03, 2010 3:59 pm Post subject: |
|
|
Обновление плагина: Очередная медитация на тему NoSelEOL. Добавлено множество сообщений, которые NoSelEOL игнорирует (например, AKD_TEXTFIND и др., EM_FINDTEXT и др.).
Ахтунг! Это может повлиять на работу макросов, "обходящих" NoSelEOL. |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2509 Location: Киев, Русь
|
Posted: Mon Oct 04, 2010 10:13 am Post subject: |
|
|
DV
Возможно ли что-то сделать с этой багофичей? |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2509 Location: Киев, Русь
|
Posted: Wed Apr 06, 2011 11:43 am Post subject: |
|
|
Up!
Сделайте пожалуйста что-нибудь хотя бы с багом из первого пункта (см. ссылку в пред. сообщении)!
При отключенной функции NoSelEOL выделение текущей строки работает правильно. |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4640
|
Posted: Tue Jul 12, 2011 5:50 pm Post subject: |
|
|
DV
Сегодня пришло письмо, в котором человек указывал на то, что не работает Ctrl+Shift+Del - выделяется только строка.
Если назначение SmartSel::NoSelEOL только в том, чтобы не выделять строку при тройном клике, а также выделении строки нажатием на границу слева, то почему не использовать AEN_SELCHANGED и AESCT_MOUSETRIPLECLK, AESCT_MOUSELEFTMARGIN? |
|
| Back to top |
|
 |
DV
Joined: 16 Nov 2006 Posts: 723 Location: Kyiv, Ukraine
|
Posted: Tue Jul 12, 2011 6:18 pm Post subject: |
|
|
| Instructor wrote: | | не работает Ctrl+Shift+Del - выделяется только строка. |
А что он должен делать? Я вообще не вижу никакой реакции после нажатия...
Изначальное назначение NoSelEOL было в том, чтобы при выделении всей строки (Shift+End или клик левее начала строки) в RichEdit не выделялся завершающий символ переноса строки.
Однако в AkelEdit это уже не столь актуально, поскольку здесь Shift+End не выделяет символ переноса строки, в отличие от RichEdit. Более того, если в AkelEdit тянуть мышку с зажатой левой кнопкой (режим выделения) за конец строки, символ переноса строки при этом так же не выделяется - в отличие от RichEdit. А именно с подобным поведением RichEdit боролся NoSelEOL.
Собственно говоря, не знаю, чего народ ожидает от NoSelEOL сейчас, поскольку поведение AkelEdit меня вполне устраивает
| Instructor wrote: | | почему не использовать AEN_SELCHANGED и AESCT_MOUSETRIPLECLK, AESCT_MOUSELEFTMARGIN? |
Наверное, потому, что, когда разрабатывался NoSelEOL, таких вещей ещё не было  |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4640
|
Posted: Tue Jul 12, 2011 6:35 pm Post subject: |
|
|
DV
Опечатался - имелось ввиду Ctrl+Shift+End. |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2509 Location: Киев, Русь
|
Posted: Thu Jul 14, 2011 7:23 am Post subject: |
|
|
| DV wrote: | Собственно говоря, не знаю, чего народ ожидает от NoSelEOL сейчас, поскольку поведение AkelEdit меня вполне устраивает  | Народ ожидает, чтобы при выделении строки тройным кликом по ней, а также с помощью нажатия на область слева от текста курсор бы не мигал на следующей строке
Если это было бы реализовано, то дальше надо посмотреть (как скрипты и плагины работают с выделением), возможно этот функционал сейчас и был бы избыточным. |
|
| Back to top |
|
 |
DV
Joined: 16 Nov 2006 Posts: 723 Location: Kyiv, Ukraine
|
Posted: Sat Jul 16, 2011 8:11 am Post subject: |
|
|
| VladSh wrote: | при выделении строки тройным кликом по ней, а также с помощью нажатия на область слева от текста курсор бы не мигал на следующей строке  |
Постараюсь глянуть. Исходя из предыдущего комментария от Instructor, наверное, проще будет сначала сделать новую ф-цию NoSelEOL2, перехватывающую лишь указанные выше сообщения и флаги, - с тем, чтобы впоследствии вообще убрать старую реализацию NoSelEOL. |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2509 Location: Киев, Русь
|
Posted: Tue Jul 19, 2011 8:23 am Post subject: |
|
|
| DV wrote: | | Исходя из предыдущего комментария от Instructor, наверное, проще будет сначала сделать новую ф-цию NoSelEOL2 | Я думаю, раз сам AkelEdit поддерживает выделение с захватом и без захвата символа переноса строки (при выделении Shift+End и мышью), то по хорошему было бы чтобы и выделение предложения без захвата символа переноса строки поддерживалось контролом или прогой, а то получается, что часть делает контрол, а часть плагин...
Но если такое не будет реализовано в проге, то, естественно, обновлённый NoSelEOL очень нужен!
Добавлено: да, и при новом NoSelEOL надо будет вручную обрабатывать ситуации захвата переноса строки - всегда будет возможно 2 варианта, а при NoSelEOL всегда был 1 - без захвата. Поэтому надо будет переписывать скрипты, т.к. многие, в случае захвата перевода строки, могут начать работать некорректно. Всё-таки проще, когда обрабатываешь 1 вариант.
Last edited by VladSh on Tue Jul 19, 2011 12:02 pm; edited 1 time in total |
|
| Back to top |
|
 |
FeyFre
Joined: 07 Aug 2007 Posts: 1888 Location: Vinnitsa, Ukraine
|
Posted: Tue Jul 19, 2011 8:44 am Post subject: |
|
|
VladSh
Не только скрипты могут пострадать, плагины тоже. Помнится когда-то уже решали проблему захвата/незахвата переноса при поиске. Это я так, к слову. |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4640
|
Posted: Tue Jul 19, 2011 5:02 pm Post subject: |
|
|
В 4.6.4 добавлен недокументированный ручной параметр для "MouseOptions" со значением 16  |
|
| Back to top |
|
 |
VladSh
Joined: 29 Nov 2006 Posts: 2509 Location: Киев, Русь
|
Posted: Tue Jul 19, 2011 5:07 pm Post subject: |
|
|
| Instructor wrote: | В 4.6.4 добавлен недокументированный ручной параметр для "MouseOptions" со значением 16  |
Здорово! Только как теперь скрипты писать, с учётом того, что это у всех будет включено?  |
|
| Back to top |
|
 |
Instructor Site Admin
Joined: 06 Jul 2006 Posts: 4640
|
Posted: Tue Jul 19, 2011 6:23 pm Post subject: |
|
|
Может как-нибудь задокументирую к релизу.
| VladSh wrote: | Только как теперь скрипты писать, с учётом того, что это у всех будет включено?  | Для скриптов и плагинов наличие/отсутствие данного параметра никакой роли играть не будет. |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|