ValentijnNK / miranda

Automatically exported from code.google.com/p/miranda
0 stars 0 forks source link

Automatic keyobard layout change per contact broken in tabSRMM 3.0.13.0 #1255

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Miranda Version                  : 0.9.15 (Built Jan 21 2011 11:46:27)
Unicode Build                    : Yes
Test Build # (if applicable)     :
Plugin Version # (if applicable) : tabSRMM 3.0.13.0

What steps will reproduce the problem?
1. Using Windows 7 x64 Ent and Miranda x86, with tabSRMM latest as of 0.9.15. 
Having installed English and Bulgarian input languages system-wide. Ctrl+Shift 
is input language change shortcut. Only one keyboadrd layout per language.
2. make sure the option Remember and Set Keyboard Layout per contact, in 
Miranda options in Message section, Tabs and Layout, is set.
3. Open one contact in a tab, then open another contact in a second tab in the 
same container.
4. Switch to Bulgarian in one tab (or aonther non-english input lang). Now you 
can write in that language. It should be remembered. It is, here.
5. Switch to the other tab, it should be in English but the taskbar status 
stays as BG, still I type in English. Confusing.
6. Go back to the first tab. Now I can type in Bulgarian.
7. Try switching the language back to English now. The taskbar icon changes to 
EN but I still cannot type in Eng but just bulgarian letters appear as if no 
change ever occured.

What is the expected result?
After I switch back to English in the first tab I should be typing in English.

What happens instead?
Taskbar icon changes to EN, but I still type in Bulgarian (the second system 
keyboard layout).

Please attach or post your VersionInfo.
( See http://wiki.miranda-im.org/Version_information )
Using only tabSRMM plugin, nothing else.

This is clearly a tabSRMM bug as I just updated from 0.9.12 (it updated the 
tabSRMM plugin as well) and the automatic keyboard layout changing per contact 
was perfectly working until I updated.

Original issue reported on code.google.com by teo...@gmail.com on 25 Jan 2011 at 5:25

GoogleCodeExporter commented 9 years ago
I can't reproduce this (yet).

Original comment by sami%mir...@gtempaccount.com on 25 Jan 2011 at 5:37

GoogleCodeExporter commented 9 years ago
There were no changes in keyboard handling for many months, there are zero 
differences between .12 and .13.

Also, works as it should here, problem cannot be reproduced.

Original comment by silverci...@gmail.com on 25 Jan 2011 at 5:55

GoogleCodeExporter commented 9 years ago
To add a comment to this.

Using Ctrl-Shift to change the input language is a very bad idea. This keyboard 
shortcut is used by the richedit control for other purposes (changing text 
direction mainly). See what happens when you use the default (left Alt + left 
Shift key) for changing the layout. You can set this in keyboard options in 
Windows.

Original comment by silverci...@gmail.com on 25 Jan 2011 at 6:01

GoogleCodeExporter commented 9 years ago
Have been using Ctrl+Shift for layout switching for years (7-8?) and it was 
perfectly working 'til today. Today I updated Miranda to 0.9.15 (from 0.9.12) 
and I started experiencing this right after that. Not a single issue in any 
other software, even in Miranda until I updated.
It happens also when I use the mouse and the language bar menu to switch 
layouts. It seems like some incompatibility with another software causes the 
new version to act like that.
I use Miranda for ICQ and GTalk only.

Original comment by teo...@gmail.com on 25 Jan 2011 at 7:04

GoogleCodeExporter commented 9 years ago
Well, since I cannot reproduce the issue here (I have 8 different keyboard 
layouts installed for testing, including RTL layouts), I cannot tell you where 
the problem is.

In fact, I tried to change the shortcut from Alt-Shift to Ctrl-Shift, and still 
everything works (except when using a RTL keyboard layout, then Ctrl-Shift will 
be intercepted for changing writing direction - but that's normal behavior and 
will not affect the language bar).

Original comment by silverci...@gmail.com on 25 Jan 2011 at 7:12

GoogleCodeExporter commented 9 years ago
Maybe the fact that I installed 0.9.15 on top of my existing 0.9.12 
installation has something to do with the issue. Everything was working 
perfectly until I updated. I created a brand new profile, still the issue. I 
tried to revert to 0.9.12 after uninstalling 0.9.15, but I had no luck in 
making Miranda to see the "old" and working tabSRMM plugin version. I guess 
there is something written in the registry by the newer version not allowing it 
to see the plugin it used to work with for months before.
I'm stuck for now. But I'll keep searching for a solution, or I'll have to live 
without this critical for me functionality of remembering the layouts per 
contact.

Original comment by teo...@gmail.com on 25 Jan 2011 at 11:34

GoogleCodeExporter commented 9 years ago
I conducted an experiment in VMWare, again Win7 Enterprise, existing Miranda 
0.8.x with no tabsrmm.
I uninstalled it, then installed 0.9.15, and the newest tabsrmm. It immediately 
acted the same (I forgot to mention) - installed some temporary (I guess) nasty 
Typewriter Bulgarian layout, which I never installed manually, nor I see in 
Regional Settings?! What is going on? To get rid of this Typewriter layout 
which I never wanted, I had to manually Add it through Regional Settings, 
Apply, then Remove it. Then, in VMWare Miranda acted normally, remembers layout 
per contact as it should. i guess this Typewriter that gets added by tabsrmm 
(tested on multiple Win7 virtual system) gets in the way of something else on 
my real system. Not sure what, but 0.9.12 was working like a charm until today.

Original comment by teo...@gmail.com on 26 Jan 2011 at 12:04

GoogleCodeExporter commented 9 years ago
TabSRMM does not add any keyboard layouts. In fact, it cannot.

Original comment by silverci...@gmail.com on 26 Jan 2011 at 12:10

GoogleCodeExporter commented 9 years ago
I guess so.
I'm trying to say that there is some incompatibility with Windows 7.
Tried on several equally clean Windows 7 installations. After starting Miranda 
for the first time, the language icon in the taskbar adds an keyboard icon next 
to it when I switch to non-english layout, indicating the two layouts 
(typewriter and Phonetic in my case). English remains with a single layout. In 
control panel the additional Typewriter is not in list, which is the strange 
thing.
In the real system all kind of strange language things happen, including not 
being able to write in English to many contacts, after few minutes of switching 
layouts (for testing).
Everything else on system works perfectly. On all of them installing 0.9.15 
with the latest tabsrmm causes this typewriter second layout to add, but not 
visible in control panel. Clearly a bug, too bad we cannot reproduce the 
conditions as it seems.
Windows 7 x64 Enterprise.

Original comment by teo...@gmail.com on 26 Jan 2011 at 12:34

GoogleCodeExporter commented 9 years ago
That is because extra layout got stored in one of the contacts. You need to 
clean it out then everything will back to normal.

Original comment by borkra on 26 Jan 2011 at 2:39

GoogleCodeExporter commented 9 years ago
borkra, how might this happen eventually? I have never used such layout, and it 
appears even when I create a new profile. Maybe got stored somehow in the 
server's list? How do I "clean it out"?
Once I cycle this layout (add it and remove) that is fixed at least. Then after 
few switches, I write in english but the indicator stays in BG most of the 
time. Then I cannot write in engslish anymore. It seems Miranda or the plugin 
has hard time switching back to English, or the second language (BG in my case) 
gets stored deeply somewhere. No ideas yet, tried Alt+Shift already, nothing to 
do with it..
Thanks for posting.

Original comment by teo...@gmail.com on 26 Jan 2011 at 9:05

GoogleCodeExporter commented 9 years ago
Sorry for posting twice, I think the attached screen talks for itself.
A virtual machine with just a few softwares installed.
Clearly a new (temporary) language layout, after restart it disappears.
This layout appears for the first time, after I start miranda and try to switch 
to BG.

Original comment by teo...@gmail.com on 26 Jan 2011 at 9:53

Attachments:

GoogleCodeExporter commented 9 years ago
Well, even after installing bulgarian keyboard layout, the issue is not 
reproducible. I also do not get the typewriter layout installed.

Just an idea: Try to change the setting "Automatic keyboard layout: Do not load 
system default for new contacts". While this option was added for a very 
specific case on request by a user who uses dvorak keyboards, it might play 
some role.

Original comment by silverci...@gmail.com on 26 Jan 2011 at 10:43

GoogleCodeExporter commented 9 years ago
Thanks again for posting on the issue.
I've gone through eery possible option I could find in Options. Including this 
one.
It seems to not affect the situation at all.
This seems to be some incompatibility with something else, but in VMs I don't 
have anything special. Maybe the previous presence of an older version. I was 
using (in the real system) 0.9.12 + tabsrmm 3.0.2 I think.
Now even if I revert to 0.9.12 (after deleting the profile folder from 0.9.15) 
and put the older tabsrmm (and its icons) that used to work, Miranda doesn't 
even see (load) the plugin at start. Do tabsrmm (or Miranda) store something 
somewhere, or in the registry that might prevent this to happen?

Original comment by teo...@gmail.com on 26 Jan 2011 at 10:58

GoogleCodeExporter commented 9 years ago
An update to the issue.
After lots of experiments in virtual machines, in different Windows accounts, I 
came up with a solution - after restarting the machine Twice, the problem went 
away. I use the Administrator account 24/7 with months of uptime and I take a 
big care of my machine, even though using Administrator is not much in line 
with that.
I started using Facebook and Yahoo with Miranda (totalling 4 protocols). Again, 
if I open a contact from a new protocol, and switch to BG, this darn Typewriter 
pops up and I have to manually add and remove it to disappear.
But I'm happy now, at least it remembers and switches per contact as it should.
I've never imagined updating something like Miranda would require me to restart 
the machine (twice) to restore full functionality. Probably not a Miranda issue 
anyway, but worth noting if others run into this.
Thanks again for being concerned with the problem. I love Miranda and tabSRMM.

Original comment by teo...@gmail.com on 28 Jan 2011 at 1:32

GoogleCodeExporter commented 9 years ago
That's strange indeed.

For the record, I never really reboot my machines either (except when doing 
system updates) but use hibernate/hybrid sleep, so my real uptimes are usually 
measured in weeks, if not months.

I've noticed one oddity with the language bar and keyboard layouts in Windows 7 
and this has something to do with the ctfmon.exe process - if this process 
isn't running, the language bar will start to act strangely and for some reason 
I've seen this process disappearing with no apparent reason (no crash report, 
nothing else to be found in the system event log). It is possible to manually 
restart it using Win+R but this is of course a crude workaround (most users 
will never know how to solve the problem when the language bar starts to act 
up).

According to MS, the process is necessary to monitor the active application for 
interaction with the language bar and also provides extended text input 
services. I think, it's required when you use multiple keyboard layouts and it 
should start automatically when the system needs it. But maybe it doesn't 
always or there are other glitches.

Original comment by silverci...@gmail.com on 28 Jan 2011 at 1:54

GoogleCodeExporter commented 9 years ago
Actually as far as I can tell, I think I've never seen this process in my 
Windows 7 installation (2 months old) and I have a Task manager often on my 
desktop. I have a Office 2010, Adobe, Corel installed, they could have 
something to do also.
Now, the process is still missing, but no problem with Miranda anymore.
Worth noting I never experienced problems with languages etc. Maybe ctfmon is a 
legacy component..
Hm, it seems ctfmon is closely related to MS Office, even though I don't see 
the process even after I start Word. MS talks about it in the context of some 
older Office versions, and they say if you remove it, only Office applications 
would fail in language specific functions..

Original comment by teo...@gmail.com on 28 Jan 2011 at 2:42

GoogleCodeExporter commented 9 years ago
The conflicting software is revealed!
Right after I start Photoshop CS4 (64 bit) for the first time, Miranda 
(tabSRMM) starts its weird messing up with the keyboard layouts.
What could possibly Photoshop CS4 have something to do with tabSRMM's 
misbehaviors with the layouts, it remains a mistery and the only solution seems 
impossible - upgrading to CS5 which has a serious bug that we few friends were 
fighting on different machines while trying it last month.
Still I think it's a bug in tabSRMM because other software that remember 
layouts per tab (IE8 etc.) is not failing.
If this could be helpful, the Bulgarian (Typewriter) layout is the first in the 
registry, maybe enumerating the active non-english layouts is faulty?

Original comment by teo...@gmail.com on 29 Jan 2011 at 8:49

GoogleCodeExporter commented 9 years ago
Well, maybe, but TabSRMM does not enumerate anything from the registry - the 
keyboard layout stuff is based on windows messages received by the richedit 
control when the user changes the keyboard layout. The only thing that might be 
able to confuse it are message hooks installed by other applications which also 
play with keyboard layouts. There are known conflicts with some transliteration 
software (for example, punto switcher) which cannot be resolved easily, because 
both applications will "fight" to set or change the keyboard layout eventually. 
Other than that, I don't know of any conflicts.

I doubt that I'll be able to fix this issue without being able to reproduce it 
and I do not have the time for long investigations right now.

And yes, I have CS4 (64bit) installed and used it quite frequently. Never seen 
any issue with keyboard layouts though.

Original comment by silverci...@gmail.com on 29 Jan 2011 at 11:34

GoogleCodeExporter commented 9 years ago
I see. It's reproducible for me on three Win7 machines (and virtual), some are 
cleanly installed, CS4, and miranda. As long as I don't start PS CS4, it 
remembers the layouts. I open 2 tabs, one in Bg, the other is EN.
I start PS for the first time. Right after that, I go to the tab which is in 
BG, then switch to the other tab - the indicator next to the tray still shows 
BG but I type in English. This is the start phase of the problems if I continue 
the use of Miranda for the current session. If I remember correctly, when I had 
CS5 for some time to try it, I don't remember to have had such issues but I 
might be wrong.
It seems PS is doing something to the current Windows session to confuse 
tabSRMM because even after I close PS, the problem persists until I logoff or 
restart.
And these are clean machines, no third party keyboard manipulation or such 
software installed. At the same time IE8 works perfectly at remembering and 
seting layouts per tabs.. Weird. I'll dig some more into this. Any ideas to 
debug this on my own would be appreciated. Maybe some monitoring of the 
WMessages, API calls...

Original comment by teo...@gmail.com on 29 Jan 2011 at 11:56

GoogleCodeExporter commented 9 years ago
@silverci...., I don't really understand, how's that you cannot see the problem?
I tested/installed several virtual Win7 Pro/Ent x64, clean as the rain in the 
morning, installed the master collection CS4, on another I installed standalone 
PS CS4's, all kind of experiments in clean environments, from different 
sources, on all of them the problem is clearly present. It's all about that if 
you see it, you might get an idea of what could be possibly wrong, as the 
developer of tabSRMM.
Just tried master collection CS5 on a new Win7, guess - the same problem exists.
Not sure what I would do from now on :( .

Original comment by teo...@gmail.com on 30 Jan 2011 at 2:45

GoogleCodeExporter commented 9 years ago
Well, fact is I do not see the problem on my own machine (I only have one with 
Photoshop installed) and therefore cannot investigate it further. Maybe it is 
one of Adobe's additional services that come with the suite (which I do not 
need and therefore didn't install - I only have a plain Photoshop CS4).

It should for now be filed as a known issue - I don't really have time for 
experiments with different configurations or VM's. Apparently there IS a 
compatibility problem with the CS suite and my guess it that something prevents 
TabSRMM from seeing the necessary window notification messages OR something 
prevents the plugin from changing the keyboard layout though I have no idea, 
really. 

Original comment by silverci...@gmail.com on 30 Jan 2011 at 3:26

GoogleCodeExporter commented 9 years ago
silver, thanks for taking the time to respond.
Yes, it seems like a compatibility issue. I have a friend with Server 2008 R2 
x64, plain PS CS4 also, and Miranda+tabsrmm+2 other plugins. He experiences the 
same problem. I tried disabling most of the plain photoshop's services etc. to 
no avail.
For now the workaround is to disable remembering and seting the layout 
automatically per tab.
And since it became apparent after I updated to the miranda and tabsrmm version 
dated 20 or 21 January 2011, I guess more users will see this, so filling it as 
a known issue may help resolving it, even if some PS workaround would be 
involved. I'll post if I find a solition.

Original comment by teo...@gmail.com on 30 Jan 2011 at 4:06

GoogleCodeExporter commented 9 years ago
This started happening to me a few days ago (about the same time I updated to 
0.9.30). After I turned "Remember and set keyboard layout for contact" off it 
seems to be fixed. I am using Windows 7 x64, tabSRMM 3.0.22. I've got no 
products from Adobe CS however.

Original comment by merith.f...@gmail.com on 20 Sep 2011 at 11:38

GoogleCodeExporter commented 9 years ago
This can't be real.
Still it seems the issue is plaguing with me, even with the latest versions of 
Miranda and the plugin. Totally new installation, with Master Collection CS4 
and Miranda. Tested with CS5 as well, the same.
As soon as I start Photoshop for the first time, tabSRMM's 
keyboard_remember_switching between open tabs is totally messed up, until I 
restart the machine.
All other programs that are able to remember keyaobard between tabs (e.g. IE9) 
are working fine all the time.
This is a real PITA as I'm communicating with people from around the world and 
from home country. From time to time I check if it was fixed.
Silver, please, could you take some time to investigate this? It's only tabSRMM 
that fails miserably, whereas other programs have no problems with keyboard.
Anyway, if you cannot reproduce, I guess we'll have to live with this bug for 
ever :( , as leaving Photoshop (or any other master collection app) is not an 
option either.

Original comment by teo...@gmail.com on 19 May 2012 at 12:34

GoogleCodeExporter commented 9 years ago
Well, basically, I've finished working on TabSRMM (and all other 
Miranda-related stuff) quite a while ago, due to a lack of time and lost 
interest.

I would continue to support TabSRMM by fixing major bugs, but this one doesn't 
qualify. First, I cannot reproduce it (never was able to) and second, 
investigating the issue without being able to reproduce it will most likely be 
very time consuming - time I do not have. Sorry, but I'm afraid it will stay as 
it is unless someone else would come up with a fix.

It also appears that no one else is seeing this issue (comment #24 is most 
likely just random noise as it's totally unrelated to the Adobe CS issue).

Original comment by silverci...@gmail.com on 19 May 2012 at 12:44

GoogleCodeExporter commented 9 years ago
Thanks for the fast response.
That's unfortunate. I understand you though.
tabSRMM is one of the few main reasons I use Miranda in the first place. If it 
stops working after some Miranda release, I'd certainly quit Miranda. Even with 
this bug it is my preferable IM. Maybe it's something in the master collection 
itself. Certainly I have spoken with acquaintances and friends, I'm not the 
only one experiencing this, I just reported it here. Mostly they didn't even 
know about this option, or are using IMs mostly for one language.
I've been using it that way for a year, I'll get used to it for the time ahead 
I suppose, just like when I wasn't using such an option.

Original comment by teo...@gmail.com on 19 May 2012 at 7:16