The abort button does two things:
1) marks the end of the queue so no more commands are run and compilation stops.
2) *Tries* to kill the process. This doesn't work in windows whereas in other platforms does.
Wait, that works on non-Windows platforms? Why not on Windows? I looked at the source, and the line doing the actual work seems to be this one:
ret = wxProcess::Kill(m_Pid, wxSIGTERM);
According to the wxProcess::Kill documentation (http://www.wxwidgets.org/manuals/2.6.2/wx_wxprocess.html#wxprocesskill), "wxSIGNONE, wxSIGKILL and wxSIGTERM have the same meaning under both Unix and Windows".
So the question becomes: is this because of wxWidgets or because of C::B?
The only thing I could see that's possibly wrong with that line is that wxKILL_CHILDREN isn't passed as the third (flags) parameter. MinGW and normal GCC (and possibly other compilers, I wouldn't know) spawn child processes to do the actual work of compiling, so I would expect that parameter to be appropriate.
[later]I tried, that doesn't make it work either.[/later]
Summary: it's not a bug, it behaves as expected.
I beg to differ. Knowing it not to work doesn't mean it isn't still a bug when it doesn't :P. Besides, as this thread shows some people expect it to actually work ;) (As did I the first time I pushed the Big Red ButtonTM).