RE: Icon panel
Fixed, and as you seem interested to know why this was happening, here was the reason: when you press the parenthesis key, a timer is created to display the emoticon panel. When this timer elapses, Messenger Plus! does several checks to make sure the panel should be displayed, for example, it checks if the last character before the selection carret is indeed a parenthesis (in case the user would have continued to typed).
To check this character, the software was getting the text with a call to WM_GETTEXT, then the selection with EM_GETSEL and checked the character at the given index. The problem is that WM_GETTEXT can convert single carriage returns into double ones (\r\n) but as far as the selection is concerned, it still counts for only one character which makes it be off of 1 character and the posiution of the parenthesis couldn't be confirmed.
|