Hello, ----- Original Message ----- From: "Duane Clark" <[EMAIL PROTECTED]> To: "Dusan Vujosevic" <[EMAIL PROTECTED]> Cc: <[EMAIL PROTECTED]> Sent: Thursday, April 18, 2002 12:44 PM Subject: Re: toolbar.c problem (ATTN: Duane)
> Dusan Vujosevic wrote: > > Hi, > > > > I am having a problem with the way toolbar.c was modified between > > revisions 1.107 & 1.108. My application (Signlab) pops flyout toolbars > > that stay around until they lose focus. The parent toolbar receives a > > 'TBN_DROPDOWN' message when someone clicks on one of its flyout buttons > > (button style: TBSTYLE_DROPDOWN). It creates a flyout at that point. > > > > With revision 1.108 of toolbar.c in Wine the parent toolbar also > > receives an WN_COMMAND after TBN_DROPDOWN message which causes Wine > > (rightly so) to send an WM_SETFOCUS (and WM_ACTIVATE). That causes the > > parent to regain focus and kills the flyout. The line that sends > > the WN_COMMAND is in toolbar.c at line 4540 (TOOLBAR_LButtonUp() function): > > SendMessageA (infoPtr->hwndNotify, WM_COMMAND, > > MAKEWPARAM(infoPtr->buttons[nHit].idCommand, 0), (LPARAM)hwnd); > > In revision 1.107 it used to be: > > > > if (bSendMessage) > > SendMessageA (infoPtr->hwndNotify, WM_COMMAND, > > MAKEWPARAM(btnPtr->idCommand, 0), (LPARAM)hwnd); > > > > And that worked fine because it would never send WM_COMMAND for a flyout > > button. Note that WinXP (that's where I tested) doesn't send WM_COMMAND > > after TBN_DROPDOWN has been handled. I would like to suggest revert that > > line back to 1.106 because it is the correct way. > > It is not "the correct way", since I have tested it with control spy > under WinNT and Wine. That is not to say that my patch is correct > either, but it fixes two different applications I have and in my mind is > closer to the correct way. There may well be some conditions under which > the message should not be sent, but the previous way was not correct. How about we test whether the button has TBSTYLE_DROPDOWN style set and not send the message in that case??? > So > I guess Alexandre gets to pick which incorrect version to use ;) Hm :/ > And there is more going on in your app, because the flying toolbars also > disappear when the mouse is simply slid over them, without clicking. Wine or Windows? I don't follow this / can't reproduce it under either one. > This behavior is not there under Windows, and has nothing to do with the > ButtonUp change I made. The two may not be related, but I cannot help > thinking they are. Unfortunately, I was not able to get a spy program to > work with your app in windows, so I have not been able to figure out > what messages should really be sent, and when. I use Spy++ on it... What was the problem? > Certainly a common > problem is that a fix in one area exposes a problem elsewhere, and that > possibly is what happened here. Probably. I am really intersted in helping track this one down (although I can work around it in SL and that's what I'll do for the time being ...). Cheers, Dusan