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.
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 :-/
Gerard
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