On Tue, 02 Aug 2005 08:58:56 +0200, Neil Hodgson <[EMAIL PROTECTED]>
wrote:
There is no way I can make it work in 1.65 Jul 30 2005 20:36:42> Was
there any changes made recently?
The only recent change was to stop treatment of a click outside
anytab as closing tab -1 which caused undefined
behaviour. I am usingWindows XP SP2, you may need to run this in a
debugger to work outwhat is happening.
Yep, and this is a problem.
I've debuged it in OllyDbg (hardcore ;)) and this is what I've got:
part of the code from SciTEWin.cxx:
int tab = Platform::SendScintilla(wTabBar.GetID(), TCM_HITTEST,
(WPARAM)0, (LPARAM)&thti);
if (tab >= 0) {
CloseTab(tab);
}
and this is what I've got in asm:
0004052E |hWnd = 4052E // tab hwnd
0000130D |Message = MSG(130D) // TCM_HITTEST
00000000 |wParam = 0
0012DB00 \lParam = 12DB00
|. FF15 30A34400 CALL DWORD PTR DS:[<&USER32.SendMessageA>; \SendMessageA
|. 85C0 TEST EAX,EAX // eax here is ffffffff (-1)
|. 0F8C D5000000 JL SciTE.0041AB3A // if(tab >= 0) fails here, we're
jumping
|. 50 PUSH EAX ; /Arg1
|. 8BC7 MOV EAX,EDI ; |
|. E8 8320FFFF CALL SciTE.0040CAF0 ; \SciTE.0040CAF0 //
When I manually changed to NOT jump, it worked, tab was closed.
It seems that calling SendScintilla with wTabBar.GetID() fails here, and
it shouldn't. I suppose it checks if we actually hit tab. Why it fails
here? I'm pointing tab while middle clicking, for sure :P
_______________________________________________
Scite-interest mailing list
Scite-interest@lyra.org
http://mailman.lyra.org/mailman/listinfo/scite-interest