1) I will look into it,
I want to know the (full) path the edited file, in visual studio there is a tooltip with this info when the mouse is over the tab.You can always see this in the properties of the edited file (using right mouse button on the tab)...?!
Any idea if this is possible/difficult??I've a pending patch that implements this applied in my working copy for a couple of month. However, it's untested on Linux.
I've a pending patch that implements this applied in my working copy for a couple of month. However, it's untested on Linux.
@daniloz :
====================================================
On thing I miss is the ability to scroll through the tabs (notebooks) by using the mouse wheel.
====================================================
I just tried this :
- Left click on a tab, dont release the button
- In the same time, use Left / Right arrow keyboard keys
Better than clicking the little black arrows !
earlgrey: Why do you think so? To me it looks like it will waste to much vertical space.
By the way there is the open files plugin, which uses a list control to switch files. It could be useful for someone...
Please, please, please, post the patch... :-)Hey, I just realised it IS already in trunk! See the codesnippet here:
void wxMultiColumnListCtrl::OnMouseEvent(wxMouseEvent& event)
{
if (event.GetEventType() == wxEVT_MOUSEWHEEL)
{
Jens: great news, me wonna test :lol:
Found first bug: the tooltips show even if I'm on another virtual desktop. Happens with Enlightenment dr 17. I don't know it can happen with gnome/kde.Should be fixed with this (updated) patch.
Should be fixed with this (updated) patch....looks good to me! :-)
Done, also removed a warning about unused parameters.Should be fixed with this (updated) patch....looks good to me! :-)
Just one minor note: The destructor should be virtual to avoid warnings... unless you have an implicit reason not to do so.
Updated patch attached (no change of functionality).Well, I notice another thing (which I thought was due to a background app on my PC when I tried the first time):
Updated patch attached (no change of functionality).Well, I notice another thing (which I thought was due to a background app on my PC when I tried the first time):
1.) The tooltip flickers quite ugly on Windows XP. It seems it's set a "million" times when I keep hovering over the tab. Notice that I don't move the mouse. Probably a little caching (like checking if the old tooltip is the same as the new one) might help...?!
2.) While the tooltip is showing I have no access any longer to the menu using the right mosue button. :-(
Edit: [additional info to 2.)] -> Again this is only, if I don't move the mouse. f I move the mouse a little bit on the tab and press the right mouse button I see the menu. Hence I guess it's because he tooltip is no longer shown in that case.
Another two issues:
1. Changing the desktop using the keyboard (alt+fn in E17) doesn't hide the tooltip
2. Tooltip doesn't show for .wxs files
p.s. if you can fix the TipWindow to not steel the key/mouse input will be great because this is really annoying problem for the debugger :(
p.p.s. is it possible to resend the events to the root window?
No1 is fixed, thanks
There is another problem: when I move the mouse the tooltip is not hidden.
Steps to reproduce:
1. Hover on a tab and way the tooltip to show
2. Move the mouse in the direction of the editor.
The movement should be fast, so no MouseMoved messages are received by the notebook.
If the mouse is moved horizontally the tooltip disappears as expected.
Probably you have to listen for MouseEnter, MouseLeave events....
Should be fixed with this patch.Excellent work! Both is fine now. I'd vote for an application to trunk.
Should be fixed with this patch.Excellent work! Both is fine now. I'd vote for an application to trunk.
Jens (as our auiNotebook spe[spammer]t): I have another feature request:
The problem is:
1. open tabs, so that all tabs can't be visible at the same time
2. scroll to the last tab
3. close the last tab
4. the tabs on the left of the last tab don't move.
Is it possible to make tabs on the left move to the right
(the notebook will behave like the one in firefox for example)?
Jens (as our auiNotebook spe[spammer]t): I have another feature request:I'm not sure how this happened. I meant spe-ci-a-list, not spammer and I hope I've not offended you Jen :)
It's our (new) antispam module, it reconizes c i a l i s as spam (something like v i a g r a), it should not do it inside a word.Jens (as our auiNotebook spe[spammer]t): I have another feature request:I'm not sure how this happened. I meant spe-ci-a-list, not spammer and I hope I've not offended you Jen :)
I'm waiting for the patch and I'll test is as soon as available :)
p.s. there is something wrong in the forum :(
The patch comes after some more cleanup.
Unfortunately the patch doesn't apply in the debuggers branch, so I can't test it :(So try this, just the minimize space patch, without the other changes.
Since the feature-request season is open... ;-)
On thing I miss is the ability to scroll through the tabs (notebooks) by using the mouse wheel.
The mousewheel-feature is easy to implement on wxGTK, but needs a hack using mouseenter- and mouseleave-event on windows.Thanks jens... I was actually thinking that your super DwellTimer could also be used to implement the mousewheel and I got the same problems as you... but, anyway, you were quicker... Very nice !!! I've downloaded the patch and will test right now !
That's the cause, why it took so long to create it.
Error occured on Monday, December 20, 2010 at 13:50:56.
C:\Work\codeblocks_trunk\src\output\codeblocks.exe caused an Access Violation at location 010e5a77 in module C:\Work\codeblocks_trunk\src\output\codeblocks.dll Reading from location 00000000.
Registers:
eax=00000000 ebx=00000000 ecx=0022f4e0 edx=0000000e esi=ffffffff edi=0022f4e0
eip=010e5a77 esp=0022f398 ebp=0022f3c0 iopl=0 nv up ei pl zr na po nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010246
Call stack:
010E5A77 C:\Work\codeblocks_trunk\src\output\codeblocks.dll:010E5A77 _ZN13cbAuiNotebook14OnLeaveTabCtrlER12wxMouseEvent
62783C28 C:\Work\codeblocks_trunk\src\output\wxmsw28u_gcc_custom.dll:62783C28 _ZN12wxEvtHandler21ProcessEventIfMatchesERK21wxEventTableEntryBasePS_R7wxEvent
6278404E C:\Work\codeblocks_trunk\src\output\wxmsw28u_gcc_custom.dll:6278404E _ZN12wxEvtHandler23SearchDynamicEventTableER7wxEvent
62784103 C:\Work\codeblocks_trunk\src\output\wxmsw28u_gcc_custom.dll:62784103 _ZN12wxEvtHandler12ProcessEventER7wxEvent
627CF28E C:\Work\codeblocks_trunk\src\output\wxmsw28u_gcc_custom.dll:627CF28E _ZN8wxWindow18GenerateMouseLeaveEv
627D22CC C:\Work\codeblocks_trunk\src\output\wxmsw28u_gcc_custom.dll:627D22CC _ZN8wxWindow13MSWWindowProcEjjl
627CB6FE C:\Work\codeblocks_trunk\src\output\wxmsw28u_gcc_custom.dll:627CB6FE _Z9wxWndProcP6HWND__jjl@16
77ECFD72 C:\Windows\system32\USER32.dll:77ECFD72 GetWindowLongW
77ECFE4A C:\Windows\system32\USER32.dll:77ECFE4A GetWindowLongW
77ED018D C:\Windows\system32\USER32.dll:77ED018D GetMessageW
77ED022B C:\Windows\system32\USER32.dll:77ED022B DispatchMessageW
627B0966 C:\Work\codeblocks_trunk\src\output\wxmsw28u_gcc_custom.dll:627B0966 _ZN11wxEventLoop14ProcessMessageEP6tagMSG
627B0B43 C:\Work\codeblocks_trunk\src\output\wxmsw28u_gcc_custom.dll:627B0B43 _ZN11wxEventLoop8DispatchEv
62844A6C C:\Work\codeblocks_trunk\src\output\wxmsw28u_gcc_custom.dll:62844A6C _ZN17wxEventLoopManual3RunEv
62824279 C:\Work\codeblocks_trunk\src\output\wxmsw28u_gcc_custom.dll:62824279 _ZN9wxAppBase8MainLoopEv
004058C4 C:\Work\codeblocks_trunk\src\output\codeblocks.exe:004058C4
6273114E C:\Work\codeblocks_trunk\src\output\wxmsw28u_gcc_custom.dll:6273114E _Z14wxEntryCleanupv
627895D6 C:\Work\codeblocks_trunk\src\output\wxmsw28u_gcc_custom.dll:627895D6 _Z7wxEntryP11HINSTANCE__S0_Pci
00401D71 C:\Work\codeblocks_trunk\src\output\codeblocks.exe:00401D71 WinMain@16 C:/Work/codeblocks_trunk/src/src/app.cpp:260
00460446 C:\Work\codeblocks_trunk\src\output\codeblocks.exe:00460446
004010DB C:\Work\codeblocks_trunk\src\output\codeblocks.exe:004010DB
00401158 C:\Work\codeblocks_trunk\src\output\codeblocks.exe:00401158
768ED0E9 C:\Windows\system32\kernel32.dll:768ED0E9 BaseThreadInitThunk
77D319BB C:\Windows\system32\ntdll.dll:77D319BB RtlInitializeExceptionChain
77D3198E C:\Windows\system32\ntdll.dll:77D3198E RtlInitializeExceptionChain
addr2line -e C:\Work\codeblocks_trunk\src\devel\codeblocks.dll 010E5A77
C:\Work\codeblocks_trunk\src\output\codeblocks.dll[010E5A77]:
??:0
@jens:
It crashed here, just after I finished writing the last post and clicked back on C::B... :-)
I found the cause for the crash (shame on me): the dynamically connected event-handler have the control, that sends the event as this-pointer, not the instance of the class, they are member of. But the compiler does not know this (dynamically) and therefore it does not lead to an error, if we call a member-function directly or use a member-variable as pointer.@jens:
It crashed here, just after I finished writing the last post and clicked back on C::B... :-)
No such crash here.
Did you try to remove the devel and output subdirectory and the pch-files (include/*.gch) manually, to be sure everything is linked correctly.
The windows-hack for the mousewheel seems to break the tooltips. I will see if I find a solution.
For the moment, you can just comment out the part of the hack in cbauinotebook.cpp in cbAuiNotebook::UpdateTabControlsArray() (the lines that disconnect and connect the wxEVT_LEAVE_WINDOW and wxEVT_ENTER_WINDOW events).
Should be fixed in the attached patch.Yeap, I confirm, no more crashes here....
void cbAuiNotebook::OnTabCtrlMouseWheel(wxMouseEvent& event)
{
wxAuiTabCtrl* tabCtrl = (wxAuiTabCtrl*)event.GetEventObject();
cbAuiNotebook* nb = (cbAuiNotebook*)tabCtrl->GetParent();
wxWindow* win = (wxWindow*) nb->GetParent();
nb->CancelToolTip();
nb->m_LastTime = nb->m_StopWatch.Time();
nb->SetSelection(nb->GetPageIndex(tabCtrl->GetWindowFromIdx(tabCtrl->GetActivePage())));
size_t tabOffset = tabCtrl->GetTabOffset();
size_t lastTabIdx = tabCtrl->GetPageCount()-1;
wxClientDC dc(win);
//Manager::Get()->GetLogManager()->DebugLog(F(_T("MouseWheel: tabOffset before=%d (last %d) [last visible=%1d]\n"),tabOffset,lastTabIdx,tabCtrl->IsTabVisible(lastTabIdx,tabOffset,&dc,win)));
if (event.GetWheelRotation() > 0)
{
if (!tabCtrl->IsTabVisible(lastTabIdx,tabOffset,&dc,win))
tabOffset++;
}
else
{
if (tabOffset > 0)
tabOffset--;
}
tabCtrl->SetTabOffset(tabOffset);
nb->Refresh();
}
Should be fixed in the attached patch.Yeap, I confirm, no more crashes here....
@jens:
I've changed the Mousewheel behavior. What I wanted originally was just scrolling the tabs and not changing the current editor tab, so here is what I did in "cbAuiNotebook::OnTabCtrlMouseWheel" (file cbauibook.cpp:265) :
[...]
Sorry, it was easier just to give you my code than to create a patch against your patch... :-)
I understood that, but I think it's not really intuitive.It's interesting, because I find it so much more intuitive than changing the focus...And I'm sure I've seeing it in some other application, but I can't remember where... Anyway, just found interesting how what we find intuitive or not is related to our life experience... 8)
In other applications scrolling with the mousewheel als changes the focus.
What do you think about making it configurable:I like the idea of making it configurable and having a modifying key to change behavior... I'd go for it...
as default scrolling with mousewheel changes the focus, but with key pressed (I suggest ctrl) we only scroll through the tabs without changing the activated tab.
The default behaviour, without additional key (scrolling and activating or just scrolling) can be made configurable and the additional key also.
I understood that, but I think it's not really intuitive.It's interesting, because I find it so much more intuitive than changing the focus...And I'm sure I've seeing it in some other application, but I can't remember where... Anyway, just found interesting how what we find intuitive or not is related to our life experience... 8)
In other applications scrolling with the mousewheel als changes the focus.What do you think about making it configurable:I like the idea of making it configurable and having a modifying key to change behavior... I'd go for it...
as default scrolling with mousewheel changes the focus, but with key pressed (I suggest ctrl) we only scroll through the tabs without changing the activated tab.
The default behaviour, without additional key (scrolling and activating or just scrolling) can be made configurable and the additional key also.
Jens: your patch seems to work well, I think I've not encountered any problems using it...I got another one: C::B started to crash since application of this patch in very rare cases that seems to happen when C::B was running in the background and the mouse is hovering over the tab so that it gets "Re-Activated" I don't remember the exact reason though (I accidentally deleted the report file) but it happened more than once. I can (however) not reproduce... :-(
Jens: your patch seems to work well, I think I've not encountered any problems using it...I will see what can be done.
But I've another feature request:
1. open many tabs
2. enlarge the project manager (on the left side of the editor)
3. select the last opened file
4. shrink the project manager
The result is that there unused space on the notebooks (same as the file closing problem).
Jens: your patch seems to work well, I think I've not encountered any problems using it...I got another one: C::B started to crash since application of this patch in very rare cases that seems to happen when C::B was running in the background and the mouse is hovering over the tab so that it gets "Re-Activated" I don't remember the exact reason though (I accidentally deleted the report file) but it happened more than once. I can (however) not reproduce... :-(
Jens: your patch seems to work well, I think I've not encountered any problems using it...Should be fixed with the attached patch.
But I've another feature request:
1. open many tabs
2. enlarge the project manager (on the left side of the editor)
3. select the last opened file
4. shrink the project manager
The result is that there unused space on the notebooks (same as the file closing problem).
Jens: your patch seems to work well, I think I've not encountered any problems using it...I got another one: C::B started to crash since application of this patch in very rare cases that seems to happen when C::B was running in the background and the mouse is hovering over the tab so that it gets "Re-Activated" I don't remember the exact reason though (I accidentally deleted the report file) but it happened more than once. I can (however) not reproduce... :-(
@jens:
I've changed the direction of scrolling without activating tabs to be the same when activating, I think it's nicer this way... and more natural as well... There's only one change in cbaiubook.cpp; see the patch attached, which includes your latest patch....
It's interfering with both the middle mouse key and the "x" close button.Huh? I can't reproduce. How long are you hovering before you click the "X"? And what does actually happen with the middle mouse button?
I've experienced an issue with this patch on Windows Vista meanwhile. It's (however) VERY weired, I am tryinig to explain anyways:
1.) steps to reproduce (crashes always for me)
- startup a fresh C::B
- open a workspace with a saved last opened editor window, so thatt his editor window is re-opened when opening the workspace
- close the editor via the "X"
- open another file from the project tree
-> You'll see the new editor quickly and then -> CRASH.
In the debugger you#ll see the image as attached. It's this line that fails:
m_pLastFocused->SetFocus();
...in void cbAuiNotebook::RestoreFocus().
However, I don't get why it fails. Comparing the addresses shows that the address of m_pLastFocused is indeed not the one of nullptr. However, it seems also not to be a valid address to a wxWindow -> or probably it hasn't been reset. Now I wonder how that can be. m_pLastFocused is initialised with nullptr or set in void cbAuiNotebook::StoreFocus(). So for me either its a valid pointer or not. The only thing I can imagine is that the window that had the focus (most likely the previous editor) is not released properly on destruction and thus the pointer is not being cleared.
Any ideas? Notice that this happens ONLY on windows Vista for me. All other Windows's I drive are working properly with a binary identical C::B and wxWidgets version.
EDIT: Notice that this does NOT happen if I disable to open the last used editors from settings -> environment -> On project load... I might have disabled this option on the other Windows's, but I can't have a look atm...
That's a show stopper for me.Agreed.
[...]
I will not commit, before the cause is found.
Here comes a patch that (hopefully) fixes the issue (it does it at least on win7).That's a show stopper for me.Agreed.
[...]
I will not commit, before the cause is found.
Here comes a patch that (hopefully) fixes the issue (it does it at least on win7).So you were able to reproduce? I am very curious what has caused this effect! (I've no access to C::B atm...).
For awhile there, I didn't have to hover at all.
Then I deleted my local repository, downloaded and rebuilt. It's working much better now.
However, I would like to turn this feature off. If we're going to add features that popup, we should also give the user a chance to turn them off.
I'm currently working on a patch, that alows turning off tooltips completely and to change the dwelltime.Applied to trunk svn r6936 !
Jens (as our auiNotebook spe[spammer]t): I have another feature request:
The problem is:
1. open tabs, so that all tabs can't be visible at the same time
2. scroll to the last tab
3. close the last tab
4. the tabs on the left of the last tab don't move.
Is it possible to make tabs on the left move to the right
(the notebook will behave like the one in firefox for example)?
I will attach a patch later this day (or tomorrow)
...well done. I can tell the bug I mentioned seems indeed fixed. Thanks for this contribution!Fixed with the patch against 6931 or does it not appear in trunk ?
...well done. I can tell the bug I mentioned seems indeed fixed. Thanks for this contribution!Fixed with the patch against 6931 or does it not appear in trunk ?
The problematic code is not (yet) committed.
In ntdll!DbgUiConvertStateChangeStructure () (C:\Windows\system32\ntdll.dll)
#0 0x77ab8b2f in ntdll!DbgUiConvertStateChangeStructure () from C:\Windows\system32\ntdll.dll
#1 0x77afc9a0 in ntdll!EtwEventEnabled () from C:\Windows\system32\ntdll.dll
#2 0x38d2a2ac in ?? ()
#3 0x00000000 in ?? ()
Thread 14 (Thread 6664.0x204c):
#0 0x77ab8b2f in ntdll!DbgUiConvertStateChangeStructure () from C:\Windows\system32\ntdll.dll
#1 0x77afc9a0 in ntdll!EtwEventEnabled () from C:\Windows\system32\ntdll.dll
#2 0x38d2a2ac in ?? ()
#3 0x00000000 in ?? ()
Thread 13 (Thread 6664.0x2618):
#0 wxStringData::Unlock (this=0x62b43f6c) at C:/Work/wxWidgets-2.8.10/include/wx/string.h:243
#1 0x65f08601 in ~wxStringBase (this=0xfa9f9b4, __in_chrg=<value optimized out>) at C:/Work/wxWidgets-2.8.10/include/wx/string.h:396
#2 0x65f0f0e5 in ~wxString (this=0xfa9f9b4, __in_chrg=<value optimized out>) at C:/Work/wxWidgets-2.8.10/include/wx/string.h:660
#3 0x65ef2e80 in Tokenizer::DoGetToken (this=0x10eb1f78) at C:\Work\codeblocks_trunk\src\plugins\codecompletion\parser\tokenizer.cpp:1018
#4 0x65ef37fe in Tokenizer::CalcConditionExpression (this=0x10eb1f78) at C:\Work\codeblocks_trunk\src\plugins\codecompletion\parser\tokenizer.cpp:1228
#5 0x65ef4451 in Tokenizer::HandleConditionPreprocessor (this=0x10eb1f78, type=ptIf) at C:\Work\codeblocks_trunk\src\plugins\codecompletion\parser\tokenizer.cpp:1448
#6 0x65ef238c in Tokenizer::SkipUnwanted (this=0x10eb1f78) at C:\Work\codeblocks_trunk\src\plugins\codecompletion\parser\tokenizer.cpp:902
#7 0x65ef25c8 in Tokenizer::GetToken (this=0x10eb1f78) at C:\Work\codeblocks_trunk\src\plugins\codecompletion\parser\tokenizer.cpp:963
#8 0x65edb8c6 in ParserThread::DoParse (this=0x10eb1f70) at C:\Work\codeblocks_trunk\src\plugins\codecompletion\parser\parserthread.cpp:503
#9 0x65edb671 in ParserThread::Parse (this=0x10eb1f70) at C:\Work\codeblocks_trunk\src\plugins\codecompletion\parser\parserthread.cpp:467
#10 0x65f077a5 in ParserThread::Execute (this=0x10eb1f70) at C:/Work/codeblocks_trunk/src/plugins/codecompletion/parser/parserthread.h:137
#11 0x010a2f62 in cbThreadPool::cbWorkerThread::Entry (this=0xe91cab8) at C:\Work\codeblocks_trunk\src\sdk\cbthreadpool.cpp:228
#12 0x6277d8c4 in wxThreadInternal::DoThreadStart(wxThread*) () from C:\Work\codeblocks_trunk\src\devel\wxmsw28u_gcc_custom.dll
#13 0x6277d9f8 in wxThreadInternal::WinThreadStart () from C:\Work\codeblocks_trunk\src\devel\wxmsw28u_gcc_custom.dll
#14 0x76df2599 in wcstombs () from C:\Windows\system32\msvcrt.dll
#15 0x76df26b3 in msvcrt!_beginthreadex () from C:\Windows\system32\msvcrt.dll
#16 0x7721d0e9 in KERNEL32!AcquireSRWLockExclusive () from C:\Windows\system32\kernel32.dll
#17 0x77ab19bb in ntdll!RtlInitializeNtUserPfn () from C:\Windows\system32\ntdll.dll
#18 0x77ab198e in ntdll!RtlInitializeNtUserPfn () from C:\Windows\system32\ntdll.dll
#19 0x00000000 in ?? ()
Thread 10 (Thread 6664.0x1bb4):
#0 0x77ad5e74 in ntdll!LdrAccessResource () from C:\Windows\system32\ntdll.dll
#1 0x77ad5620 in ntdll!ZwWaitForSingleObject () from C:\Windows\system32\ntdll.dll
#2 0x77219884 in WaitForSingleObjectEx () from C:\Windows\system32\kernel32.dll
#3 0x00000230 in ?? () at C:/Work/codeblocks_trunk/src/src/scriptingsettingsdlg.h:30
#4 0x00000000 in ?? ()
Thread 9 (Thread 6664.0x171c):
#0 0x77ad5e74 in ntdll!LdrAccessResource () from C:\Windows\system32\ntdll.dll
#1 0x77ad5620 in ntdll!ZwWaitForSingleObject () from C:\Windows\system32\ntdll.dll
#2 0x77219884 in WaitForSingleObjectEx () from C:\Windows\system32\kernel32.dll
#3 0x000001f0 in ?? () at C:/Work/codeblocks_trunk/src/src/scriptingsettingsdlg.h:29
#4 0x00000000 in ?? ()
Thread 8 (Thread 6664.0x1914):
#0 0x77ad5e74 in ntdll!LdrAccessResource () from C:\Windows\system32\ntdll.dll
#1 0x77ad5620 in ntdll!ZwWaitForSingleObject () from C:\Windows\system32\ntdll.dll
#2 0x77219884 in WaitForSingleObjectEx () from C:\Windows\system32\kernel32.dll
#3 0x00000170 in ?? () at C:/Work/codeblocks_trunk/src/src/scriptingsettingsdlg.h:27
#4 0x00000000 in ?? ()
Thread 7 (Thread 6664.0x1a10):
#0 0x77ad5e74 in ntdll!LdrAccessResource () from C:\Windows\system32\ntdll.dll
#1 0x77ad5620 in ntdll!ZwWaitForSingleObject () from C:\Windows\system32\ntdll.dll
#2 0x77219884 in WaitForSingleObjectEx () from C:\Windows\system32\kernel32.dll
#3 0x00000168 in ?? () at C:/Work/codeblocks_trunk/src/src/scriptingsettingsdlg.h:27
#4 0x00000000 in ?? ()
Thread 6 (Thread 6664.0x1cfc):
#0 0x77ad5e74 in ntdll!LdrAccessResource () from C:\Windows\system32\ntdll.dll
#1 0x77ad5620 in ntdll!ZwWaitForSingleObject () from C:\Windows\system32\ntdll.dll
#2 0x77219884 in WaitForSingleObjectEx () from C:\Windows\system32\kernel32.dll
#3 0x0000015c in ?? () at C:/Work/codeblocks_trunk/src/src/scriptingsettingsdlg.h:27
#4 0x00000000 in ?? ()
Thread 5 (Thread 6664.0xd88):
#0 0x77ad5e74 in ntdll!LdrAccessResource () from C:\Windows\system32\ntdll.dll
#1 0x77ad5620 in ntdll!ZwWaitForSingleObject () from C:\Windows\system32\ntdll.dll
#2 0x77219884 in WaitForSingleObjectEx () from C:\Windows\system32\kernel32.dll
#3 0x00000158 in ?? () at C:/Work/codeblocks_trunk/src/src/scriptingsettingsdlg.h:27
#4 0x00000000 in ?? ()
Thread 3 (Thread 6664.0x16ac):
#0 0x77ad5e74 in ntdll!LdrAccessResource () from C:\Windows\system32\ntdll.dll
#1 0x77ad50b0 in ntdll!ZwRemoveIoCompletion () from C:\Windows\system32\ntdll.dll
#2 0x7721d11e in KERNEL32!GetQueuedCompletionStatusEx () from C:\Windows\system32\kernel32.dll
#3 0x76c803c8 in RPCRT4!NdrTypeFree () from C:\Windows\system32\rpcrt4.dll
#4 0x00000108 in ?? ()
#5 0x05dffed8 in ?? ()
#6 0x76c804fd in RPCRT4!NdrTypeFree () from C:\Windows\system32\rpcrt4.dll
#7 0xffffffff in ?? ()
#8 0x05dfff44 in ?? ()
#9 0x76c8011c in RPCRT4!NdrTypeFree () from C:\Windows\system32\rpcrt4.dll
#10 0x05dfff7c in ?? ()
#11 0x76c800e3 in RPCRT4!NdrTypeFree () from C:\Windows\system32\rpcrt4.dll
#12 0x00c09480 in ?? ()
#13 0x76c80166 in RPCRT4!NdrTypeFree () from C:\Windows\system32\rpcrt4.dll
#14 0x00c08d38 in ?? ()
#15 0x7721d0e9 in KERNEL32!AcquireSRWLockExclusive () from C:\Windows\system32\kernel32.dll
#16 0x77ab19bb in ntdll!RtlInitializeNtUserPfn () from C:\Windows\system32\ntdll.dll
#17 0x77ab198e in ntdll!RtlInitializeNtUserPfn () from C:\Windows\system32\ntdll.dll
#18 0x00000000 in ?? ()
Thread 1 (Thread 6664.0xb04):
#0 0x77ad5e74 in ntdll!LdrAccessResource () from C:\Windows\system32\ntdll.dll
#1 0x77ad5620 in ntdll!ZwWaitForSingleObject () from C:\Windows\system32\ntdll.dll
#2 0x77aae16a in ntdll!RtlAddAccessDeniedObjectAce () from C:\Windows\system32\ntdll.dll
#3 0x77aae04d in ntdll!RtlAddAccessDeniedObjectAce () from C:\Windows\system32\ntdll.dll
#4 0x6277b829 in wxCriticalSection::Enter() () from C:\Work\codeblocks_trunk\src\devel\wxmsw28u_gcc_custom.dll
#5 0x65f0d1fd in wxCriticalSectionLocker (this=0x22f4f8, cs=...) at C:/Work/wxWidgets-2.8.10/include/wx/thread.h:286
#6 0x65eda619 in ParserThread::ParseBufferForNamespaces (this=0x22f5a0, buffer=..., result=...) at C:\Work\codeblocks_trunk\src\plugins\codecompletion\parser\parserthread.cpp:261
warning: (Internal error: pc 0x22f in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x22f in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x22f in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x22f in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x1ef in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x1ef in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x1ef in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x1ef in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x1ef in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x16f in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x16f in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x16f in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x16f in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x16f in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x167 in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x167 in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x167 in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x167 in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x167 in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x15b in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x15b in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x15b in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x15b in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x15b in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x157 in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x157 in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x157 in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x157 in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x157 in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x107 in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x107 in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x107 in read in psymtab, but not in symtab.)
warning: (Internal error: pc 0x107 in read in psymtab, but not in symtab.)
#7 0x65ed63c9 in Parser::ParseBufferForNamespaces (this=0xe91d7f8, buffer=..., result=...) at C:\Work\codeblocks_trunk\src\plugins\codecompletion\parser\parser.cpp:595
#8 0x65eac80c in CodeCompletion::ParseFunctionsAndFillToolbar (this=0x84d6458, force=false) at C:\Work\codeblocks_trunk\src\plugins\codecompletion\codecompletion.cpp:2143
#9 0x65eadcbd in CodeCompletion::OnStartParsingFunctions (this=0x84d6458, event=...) at C:\Work\codeblocks_trunk\src\plugins\codecompletion\codecompletion.cpp:2416
#10 0x62783c28 in wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) () from C:\Work\codeblocks_trunk\src\devel\wxmsw28u_gcc_custom.dll
#11 0x62783d61 in wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) () from C:\Work\codeblocks_trunk\src\devel\wxmsw28u_gcc_custom.dll
#12 0x6278412c in wxEvtHandler::ProcessEvent(wxEvent&) () from C:\Work\codeblocks_trunk\src\devel\wxmsw28u_gcc_custom.dll
#13 0x6288cbdd in wxTimerBase::Notify() () from C:\Work\codeblocks_trunk\src\devel\wxmsw28u_gcc_custom.dll
#14 0x627c28f4 in wxTimerProc () from C:\Work\codeblocks_trunk\src\devel\wxmsw28u_gcc_custom.dll
#15 0x77c4fd72 in USER32!GetWindowMinimizeRect () from C:\Windows\system32\user32.dll
#16 0x00000000 in ?? ()
This looks like a CC problem.
Can you try to disable the CC and try to reproduce it.
#define CC_PARSERTHREAD_DEBUG_OUTPUT 1
One more info: I've turned on the debug output on parserthread.cppThis is because there are too many log message, so you will get freeze, You can disable all the "header path search" in the CC dialog, so that CC can only parse your project files.Codeand I see lots of messages in the DebugLog panel (as expected). If I change from one tab to another before waiting for *all* messages to show up, i.e. while the logging is in progress, it freezes here, no matter what!#define CC_PARSERTHREAD_DEBUG_OUTPUT 1
I'm just not sure if this is because the parser hasn't finished and that causes the freeze or it's just a display problem, that the DebugLog is flooded with messages and moving to another editor tab just cannot be treated by the painting thread... Anyway, just FYI.
There is another bug with the enhancement:Here, on Windows Vista 32-bit, trunk svn 7010, the menu doesn't close when the tooltip shows and I can come back to it...
1. Goto the main menu
2. Open a menu that is rendered on top of the notebook
3. Hover on an item on top of the notebook
The result is that the menu closes and the tooltip shows
Could you please test svn r7011 (if needed, I can merge trunk to debugger-branch).Great work! 8)
I was not able to reproduce the crash on windows (tested on vista 64-bit), but the tooltip should not appear any more if the tab is behind an open menu.
So the crash might also be fixed.
(if needed, I can merge trunk to debugger-branch).I can test only after a merge, but don't worry, too much.
Another thing:
If I click on a tab that is not the first one, but it is not the last one either, the tab I've clicked on is made the first one.
There more tabs, than there is space on the notebook, so probably your code for scrolling is kicking in.
This behaviour is a bit annoying...
Should be fixed in svn r7015 on trunk and svn r7016 in debugger-branch.Another thing:
If I click on a tab that is not the first one, but it is not the last one either, the tab I've clicked on is made the first one.
There more tabs, than there is space on the notebook, so probably your code for scrolling is kicking in.
This behaviour is a bit annoying...
Confirmed.
Next issue to fix.
Testing it ... seems the two problems are fixed...Inverse scrolling for both kinds of scrolling ?
Can you implement an invert scrolling options?
I want to have the same scrolling as in Firefox, but at the moment it is in the opposite direction.
It is a little bit confusing, because I'm scrolling first to the wrong direction, then I realize it is the opposite,
so I always do two operations instead of just one.
: wxPopupTransientWindow(parent)
: wxPopupTransientWindow(parent, wxBORDER_NONE|wxWANTS_CHARS)
Hm, I think, I've solved the tooltip steeling focus bug.I'm not at home this week (and the next two weeks also), but I will test it theis evening in the hotel or at one of the weekends.
The problem seems to be in the wxWidgets, more specifically in the constructor of wxTipWindow.
Replace the line 120 in tipwnd.cpp from:CodeTo:: wxPopupTransientWindow(parent)
Code: wxPopupTransientWindow(parent, wxBORDER_NONE|wxWANTS_CHARS)
I've not talked with the wx guys, nor have I tested it thoroughly...
I have a "half finished" work about "tab on left/right".What component is modified? You can post a patch anyways to try...
Is the code useful?
The notebook enhancements are pretty good, but there is one thing that is really annoying.This should be possible, but would lead to problems on windows, where I force the focus to the tabcontrol, if mousewheelscrolling for tabs is allowed and the mouse-pointer is over the tabs (of course), because otherwise the mousewheel-event is not catched.
The problem is that when I click on a tab, the tab/notebook control gets the focus.
This means that all subsequent key presses (left/right arrow, home, end) are handled by the notebook, not the editor.
This is very annoying because, when I click on a tab, my intention is to work with the file in that tab,
not to use the keys to switch tabs or go to the first tab.
Jens, do you think this can be fixed?
Steps:
1. Open many files
2. Click on a tab
3. Press home
4. The result is that the first tab is selected and the notebook is switched to it. What should have happened is to go to to the beginning of the file.
Another enhancement request:This should not happen (and it used to work correctly, since I added the MinimizeFreeSpace-function in cbAuiNotebook), but I saw this issue also.
Steps to reproduce:
1. Open many tabs
2. Make the last tab visible and active
3. Double click on the last tab
4. When switched to the minimal perspective the last tab is not at the right of the notebook, but there is empty space. Probably this could be optimized.
Another enhancement request:This should not happen (and it used to work correctly, since I added the MinimizeFreeSpace-function in cbAuiNotebook), but I saw this issue also.
Steps to reproduce:
1. Open many tabs
2. Make the last tab visible and active
3. Double click on the last tab
4. When switched to the minimal perspective the last tab is not at the right of the notebook, but there is empty space. Probably this could be optimized.
I will try to find the cause and fix it.
Hm, Jens, is moving a tab with the mousewheel still working?
It doesn't for me. CentOS 5.6, debugger branch 7509.