On Wed, 16 Aug 2000, Huw D M Davies wrote:

> On Wed, Aug 16, 2000 at 03:48:35PM +0300, Veksler Michael wrote:
> >
> > Trace of user32 relay:
> > Call user32.171: DrawTextA(00000b78,406e5754 "Cut to the 
>Clipboard",ffffffff,406e58d8,00000000) ret=00916e3b fs=008f
> > Retuser32.171: DrawTextA() retval=0000000e ret=00916e3b fs=008f
> 
> So it's writing this to the non-client area directly.I can't see how
> managed mode will ever support this.You'd somehow have to hack
> GetDCEx to return a special dc if we want a DCX_WINDOW dc.This dc
> would have to trap attempts to draw stuff to the non-client area and
> somehow persuade the Window Manager to draw them...
> 

That was the general feeling. In that case there are several questions:
1. What should be done when a client is writing to a non-client area?
   It is wrong to put it in the client area (the way it is done now).
   Your suggested hack works when the string is few pixels above the 
   client area, but is makes no sense when it is below.
2. Whose responsibility it is to recognize this non-client area writing?
   Is it x11drv, GDI32 or USER32 ? 
   I guess that x11drv since it is the part that knows what managed
   and unmanaged is, right?
3. How to detect this kind of non-client area writing in a clean way?
   Is there a call to do this?
   I guess this one I'd have to dig out of the code and the X11 docs.


  Michael


Reply via email to