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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Rootless mode revisited...


Thomas Chadwick wrote:
I just had a thought on how to implement rootless mode and I'm hoping someone more familiar with Windows programming and/or the XWin server might let me know if it's a dead-end before I spend too much time researching it further.

The idea I had is this: Can we exploit the features of the Windows API that allow for non-rectangular windows to achieve a "pseudo-rootless" mode? I have looked into it enough to find that non-rectangular Windows windows are really collections of multiple rectangles, ellipses, etc. Seems to me XWin could exploit this by simply {adding|removing} a rectangle {to|from} the collection that makes up its shape whenever an Xclient is {created|destroyed}.

I call it "pseudo-rootless" mode because you would still need to run an XWindows window manager to decorate the Xclients, as opposed to having the Windows window manager do the decoration.

What I don't know is how well Windows will handle, for instance, moving an Xclient window around once it's been created, since that would involve dynamically manipulating the shape of a Windows window.

What I also don't know is whether or not the way XWin uses DirectDraw and frame-buffering somehow precludes the use of the Windows window-shaping APIs.
I thought of something similar but "less pseudo". Currently, XWin draws in a buffer and copy this buffer to the XWin window. If one knows how to get the X windows position, one could create one Windows window per X Window a copy just the part matching the X window. This has the advantage over your method to give one button in the taskbar per X window.
If the Windows windows are fully opaque (which is the case for every body except a few geeks), the fact that, when windows overlap, the bottom window contains part of the top windows should not be a problem (it should be hidden by the top windows)

Jehan




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