One of the few remaining bugs in BitWise that classified as "thorn in our side" has, at long last, been squished. On Windows, new windows would steal focus for a split second and then drop into the background (unless the "steal focus" preference was enable, of course). This had all sorts of nasty side effects, including dumping people out of full-screen games, closing any open window menus, randomly stealing a keypress here and there, etc.
After taking what must be a 5th attempt at fixing the problem, the cause was finally found in the underlying wxWidgets code. Who would think that using Show() would always call ::BringWindowToTop when there's a separate method called Raise() that's supposed to do that? After some selective pruning and modifications, the problem went away.
It's great that I could even do this with wxWidgets, since it is open source. However, the most rewarding part was sharing my findings and making someone else's day who had also spent a long time trying to prevent windows from stealing focus, and had never found a solution. Hopefully, unless someone chimes in with reasons why the code is the way it is, these changes will then make it back into wxWidgets itself and further improve this otherwise excellent library.
It was certainly nice to end the week on a big win-win situation for many people and groups. You too can enjoy this change by downloading BitWise 1.0.6.5 Beta 2, released today. Grab it now!
Does this mean that I can play games now without setting myself to away?