dail8859/SurroundSelection

[Bug] When enabled can't type accented chars

Closed this issue · 12 comments

fjcbs commented

When pluggin enabled, when typing accented chars like "á" or "ö" the accent is printed twice and can't add the other char resulting in something like "´´a" or "¨o"

You'll need to provide more details. Notepad++ version, plugin version, file encoding, etc. I typed á and ö by doing Alt+0225 and Alt+0246.

accent

Closing as I cannot reproduce the issue. Please reopen with more details if the issue persists.

fjcbs commented

Hello and thank you for your reply.

I'm using versions:
Notepad++ v7.7.1 (32bit)
SurroundSelection v1.2 (32bit)
(home pc)
The problem is also present on the 64 bit Notepad++ and plugin versions (at my work PC).

You are correct. When using Alt+0nnn the problem does not occur.

It only happens when using the keyboard set to a foreign language (like Portuguese - wish is my native language).
In a foreign keyboard configuration you type the accented chars like: Press accent key (and release) and then press letter key - the operating system or editor only displays the accented char after the second key press. The issue I reported relates to the accent being displayed (repeated) after the first keystroke... So if you press "´" followed by "a" you get "´´a" instead of the correct "á".

Apologies for the long delay.

It only happens when using the keyboard set to a foreign language (like Portuguese - wish is my native language).

Since I don't have a non-English keyboard do you know how I can test this myself? Is there some configuration within Windows (specifically Windows 7) that I can use to test this with?

fjcbs commented

Hi there.
In Windows, you can install multiple keyboard settings.

  • Open Control Panel\All Control Panel Items\Region and Language.
  • Open Keyboards and language tab - Change Keyboards.
  • Choose your new keyboard and click Add
    After that, if you press Shift+Alt this will cycle through the various configured keyboards.
    Since you only have an English keyboard you can use the onscreen keyboard to simulate a real keyboard and test the multiple keys to write an accented character.

I know it is been a while but I finally got back around to trying this out.

I used SurroundSelection v1.4 with the below Notepad++

Notepad++ v7.8.1   (32-bit)
Build time : Oct 27 2019 - 22:46:07
Path : C:\Program Files (x86)\Notepad++\notepad++.exe
Admin mode : ON
Local Conf mode : OFF
OS Name : Windows 7 Home Premium (64-bit) 
OS Build : 7601.0
Plugins : BetterMultiSelection.dll DoxyIt.dll DSpellCheck.dll ElasticTabstops.dll mimeTools.dll NppConverter.dll NppExport.dll SurroundSelection.dll 

I am not able to replicate this issue.

accent

@dail8859 Can confirm this. Czech layout. Removing this plugin fixes that.

  • Physical keyboard - when I press ´, ´´ is immediately typed into NPP.
  • OSK - when I press ´ and then a, ´´a is typed into NPP (I think it's normal behaviour because of the OSK - it still sends two separate keypresses to NPP = same problem as previous). This is shown here:

npp

Notepad++ v7.8.2   (32-bit)
Build time : Dec  4 2019 - 01:36:59
Path : C:\Program Files (x86)\Notepad++\notepad++.exe
Admin mode : ON
Local Conf mode : OFF
OS Name : Windows 10 Enterprise (64-bit) 
OS Version : 1903
OS Build : 18362.476
Plugins : BetterMultiSelection.dll ComparePlugin.dll ElasticTabstops.dll FingerText.dll IndentByFold.dll LineFilter_Unicode.dll mimeTools.dll NppConverter.dll NppExport.dll NPPJSONViewer.dll NppTextFX.dll npp_tabs.dll PythonScript.dll SurroundSelection.dll VisualStudioLineCopy.Unicode.dll _CustomizeToolbar.dll 

@ikeblaster I tried a Czech layout as well and did exactly what you did but do not get the same results. My guess would be a Windows 7 vs Windows 10 issue. Since I don't have a Windows 10 development machine, it is unlikely I'll be able to fix anytime this soon.

@dail8859 Sounds like this problem: https://stackoverflow.com/questions/1964614/toascii-tounicode-in-a-keyboard-hook-destroys-dead-keys

I will post PR in case of solving that. So far no success.

@fjcbs

A new DLL can be downloaded which should fix this issue. If there are no issues found I'll create another release soon.

fjcbs commented

@dail8859 sorry for the late reply.
I tried your new 32bit dll in Notepad++ v7.8.3 and the problem is solved.

Thank you for your effort.

Please note that the OnScreenKeyboard alters the behavior of some keys (notably shift+key) and I couldn't test with it like @ikeblaster did.

@fjcbs Thanks. A new release will be available in the Plugin Adim in the next release of Notepad++