On Wed, 02 Oct 2013, Iain Patterson escribió: > Quoth I, > > >I'll have a look this week. > > It turned out to be a simple bug. wSwitchPanelSelectFirst() was > inadvertently returning NULL, thus causing the switchpanel to fail > to raise the first selected window.
Hi,
I think the problem is in the function wSwitchPanelSelectFirst(), yes, but is
because the patch removes the WM_ITERATE_ARRAY at the function beginning, and
moves it to the end. Then, the "if (back) {" block runs before the
WM_ITERATE_ARRAY. You can undo your patch and then apply only this change to
see it.
I was thinking in your patch. The idea is nice, because it avoid paint the icon
array every time the user hit "Alt+Tab" but I am not sure if this is the right
way to do it. I am not sure why :-), but I don't like the flags to store the
info and the "WMReplaceInArray" call.
I tried to work in your way, but the problem is I cannot paint the square that
select the icon (because the function doesn't paint it).
Probably the best way is paint the icons one time and re-paint only the icon
that leaves the selection, and the new icon selected, because we need paint
these icons. We know if we are going back or forward, so, we could call the
function to repaint these icons.
I spent some time trying to understand the patch, but I am not sure that I
understand everyting. Perhaps you can help more on it. I hope this info can
help you.
Attached are the patches I used to test the problem, if you need them.
Best regards,
kix
--
||// //\\// Rodolfo "kix" Garcia
||\\// //\\ http://www.kix.es/
swtchpnl.tgz
Description: application/gtar-compressed
