annoying EndDialog "feature"

Andreas Mohr amohr at codeweavers.com
Mon Feb 5 16:27:41 CST 2001


On Mon, Feb 05, 2001 at 11:17:19PM +0100, gerard patel wrote:
> At 02:38 PM 5/2/01 -0600, you wrote:
> >Well, examining how Windows does it can be done,
> >but I don't think it's too useful, as I think that the current approach
> >with that fix should work fine.
> >
> >> Now I think I see : this can only be useful if EndDialog is called from
> >> another thread, right ? If yes, you really *should* mention this in the
> >> remark before the code. No need to be mysterious IMHO.
> >I don't think the "other thread" is important.
> >What is important is the fact that if we don't get frequent messages,
> >the dialog will stay open without that fix.
> 
> Well, if the current thread is active, it's in the dialog code I guess since
> DialogBox is, well, modal.
> And if it's in the dialog code, the code run should be in dialog box
> procedure, so it should be in a message handling. So any EndDialog
> is followed by a  return to the dialog loop. I am not quite sure of
> that, though.
I've never really looked that up.

> >Windows definitely does NOT do it this way, of course
> >(well, I'd be surprised if it actually did ;-).
> >This is just a (crude, if you want) hack to make it work.
> >And I figured sending WM_NULL shouldn't hurt.
> >I'm open to suggestions on how to rewrite the whole dialog handling
> >(e.g. to do it like Windows), but I don't think it matters at all
> >at the moment.
> >There are much more important things to do.
> 
> Possibly, but it's important at least to add a comment saying that it is a hack....
> Correct documentation can wait you think ? Wine is full of strange code
> that nobody knows why it's here already :-/
Well, at least I *do* add comments to my code... ;-)
(and that comment wasn't so bad)
But yes, it only went as far as explaining 70%, not 100%.

Andreas Mohr



More information about the wine-devel mailing list