TobiasChe / conemu-maximus5

Automatically exported from code.google.com/p/conemu-maximus5
0 stars 0 forks source link

conemu and fantom language #944

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
Required information!
OS version: Win8x64
ConEmu version: 130212
Far version (if you are using Far Manager): Far3

*Bug description*

http://www.644634.com/conemu.htm

on conemu start input method swithing to nonpresent language.

Original issue reported on code.google.com by switch...@gmail.com on 17 Feb 2013 at 8:17

GoogleCodeExporter commented 8 years ago
Run "ConEmu64.exe /log2", ensure that problem wsas reproduced, attach here 
created logs.

Original comment by ConEmu.Maximus5 on 17 Feb 2013 at 8:42

GoogleCodeExporter commented 8 years ago
So, can you create logs?

Original comment by ConEmu.Maximus5 on 21 Mar 2013 at 10:44

GoogleCodeExporter commented 8 years ago
Хм, я же написал письмо с объяснением в чём 
проблема и как я это дело пофиксал )))

-------- Original Message --------
Subject:    Re: Issue 944 in conemu-maximus5: conemu and fantom language
Date:   Wed, 20 Feb 2013 16:38:35 -0300
From:   Alexéy Sudachén <alexey@sudachen.name>
To:     conemu-maximus5@googlecode.com

On 17.02.2013 5:42, conemu-maximus5@googlecode.com wrote:
>
> Comment #1 on issue 944 by ConEmu.M...@gmail.com: conemu and fantom 
> language
> http://code.google.com/p/conemu-maximus5/issues/detail?id=944
>
> Run "ConEmu64.exe /log2", ensure that problem wsas reproduced, attach 
> here created logs.
>
Привет. Судя по комментам в коде всем будет 
удобнее по русски.

В общем я нашёл в чём причина. Та расскладка 
что у меня стоит это 
латиноамериканская для английского языка - 
0x008a0409. В софтину 
приходит 0x8a, что наверное логично. Дальше 
софтина такую раскладку не 
находит и выставляет её директом, что 
приводит к магическому появлению 
испанского языка.

У себя я это пофиксал так

     // Если не нашли, и это "классическая" раскладка, в которой ид 
раскладки совпадает с языком
     if (!lbFound && ((dwLayoutName & 0xFFFF) == dwLayoutName))
     {
        .....
     }

     // Если не нашли, может быть это альтернативная раскладка
     if (!lbFound && ((dwLayoutName & 0xFFFF) == dwLayoutName))
     {
         DWORD_PTR dwTest = (dwNewKeybLayout << 16);

         for(i = 0; !lbFound && i < nCount; i++)
         {
             if ( (((DWORD_PTR)hKeyb[i]) & 0x0ffff000) == dwTest)
             {
                 lbFound = TRUE;
                 dwNewKeybLayout = (DWORD_PTR)hKeyb[i];
                 break;
             }
         }
     }

Но не факт что это концептуально правильно.

З.Ы.

Спасибо за софтину.

Original comment by rusoexp...@gmail.com on 22 Mar 2013 at 3:11

GoogleCodeExporter commented 8 years ago
Хм. Тут коммента нет, в личке тоже не помню. 
Странно.

Original comment by ConEmu.Maximus5 on 22 Mar 2013 at 4:29

GoogleCodeExporter commented 8 years ago
Проверьте, все ли хорошо в 130421

Original comment by ConEmu.Maximus5 on 22 Apr 2013 at 7:05