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

Reply via email to