This is the mail archive of the
cygwin-patches@cygwin.com
mailing list for the Cygwin project.
setup going to background
- To: ptsekov at syntrex dot com
- Subject: setup going to background
- From: Robert Collins <robert dot collins at itdomain dot com dot au>
- Date: 02 Nov 2001 12:03:31 +1100
- Cc: cygwin-patches at cygwin dot com
Thanks for that patch Pavel.
It doesn't quite do the right thing, AFAICT, but it does help. As the
right thing may be a lot harder, I've checked it in anyway. I've also
fixed a couple of related bugs in other files.
Your changelog was missing a number of the changes that your patch
contained. I've listed all the changes in the changelog that was
committed - but in future, please include them yourself. I've included
the committed changelog here, for your reference.
Back to the setup going to background behaviour, I think what happens is
this:
when the progress dialog is hidden - as opposed to being destroyed -
windows puts the next active application to the front - which is not
setup.exe - and the next dialog then is not the active dialog, unless
SetForeGround is called, or WS_VISIBLE is set in the res.rc template.
Now, if we don't force the setup dialogs to the front, the user has
cygwin a layer or 2 back. If we do force setup dialogs to the front,
then the user can't put setup.exe at the back and leave it until they
want to come back to it.
I _think_ the solution is to have a hidden invisble window, and make all
the dialogs children of that. That way the hidden window should become
active? Anyway, this is hyopthetical - suggestions are welcome.
Rob
2001-11-02 Pavel Tsekov <ptsekov@syntrex.com>
* geturl.cc (is_showing): Remove.
(is_local_install): New static variable. Controls whether the
progress dialog and the supporting thread will be created.
(dialog_proc): Return TRUE to WM_INITDIALOG as specified by the
WIN32 API.
(init_dialog): Remove usage of SetForegroundWindow and
is_showing.
This prevents the progress dialog to gain control over the
application and fixes the "setup.exe going to background"
problem.
(progress): Use is_local_install.
(get_url_to_string): Set is_local_install.
(dismiss_url_status_dialog): Use is_local_install.
* install.cc (dialog_proc): Return TRUE as specified in WIN32
API.
(init_dialog): Remove usage of SetForegroundWindow.
This prevents the progress dialog to gain control over the
application and fixes the "setup.exe going to background"
problem.