shell window activation

Martin Fuchs martin-fuchs at gmx.net
Tue Oct 7 15:27:25 CDT 2003


On Tue 7. October 2003 22:15, Alexandre Julliard wrote:
> Martin Fuchs <martin-fuchs at gmx.net> writes:
> > When trying to get my explorer clone to work on Wine, I found this way to
> > make it work in Wine's desktop mode. I am also not really sure if this is
> > the only or the best way to do it. But it works. Without this patch there
> > exists this problem: Whenever you click onto the desktop, the shell
> > window is moved into the foreground, in front of any other 'normal'
> > window. Even the task bar becomes invisible, because it is hidden behind
> > the desktop.
>
> If the problem is only with your app, then it can be fixed
> there. Probably handling WM_MOUSEACTIVATE should do the trick. I also
> think the SetWindowPos calls in SetShellWindow should be moved into
> your app.

The problem is not just my application. The problem exists with any 
application, that tries to register a shell window, for example the original 
MS explorer or GeoShell. Handling it with catching WM_MOUSEACTIVATE would be 
possible, yes. But that would be another work around especially for Wine. If 
it is launched on a bare MS windows system without MS explorer, it registers 
it`s shell window and there is no problem with focus handling. I think, Wine 
should behave the same way?
ROS explorer is targeted to be a replacement for MS explorer. So it should 
behave in the same way. This means, also its problems may be reproduced. So I 
would like to avoid any work arounds, as far as it is possible.

> > On MS Windows there is used a region of shared memory mapped read-only
> > from the kernel space into user space of each process. This memory region
> > contains for example the information about the shell window. This way it
> > is possible to avoid a call into kernel, just to get the shell window. Do
> > you think, such a thing would also be possible in Wine?
>
> At some point we'll probably do something like that yes.

Good. Which other global informations would be cancdidates for this? May be we 
could start right now to use this shared memory technique.

-- 
Martin Fuchs
martin-fuchs at gmx.net



More information about the wine-devel mailing list