This is the mail archive of the cygwin-patches@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

setup going to background


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.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]