This is the mail archive of the
cygwin-xfree@cygwin.com
mailing list for the Cygwin XFree86 project.
How to start messing around with creating a rootless mode...
- From: "Harold Hunt" <huntharo at msu dot edu>
- To: "cygx" <cygwin-xfree at cygwin dot com>
- Date: Sun, 9 Jun 2002 10:58:30 -0400
- Subject: How to start messing around with creating a rootless mode...
Now that we have the -nodecoration parameter we can start messing around
with making the some initial moves towards a rootless mode, just like
XDarwin. Here are some initial steps to take that would help you learn a
little about creating a rootless mode:
1) Start off by simply overriding PaintWindowBackground to paint a
transparent background to cause the X Windows (still managed by a window
manager such as twm) to 'float' above the Windows desktop when
Cygwin/XFree86 has the focus.
2) You'll need to look at
xc/programs/Xserver/hw/darwin/quartz/rootlessScreen.c/RootlessPaintWindowBac
kground (). There is a check in this function that paints the root window
background using the 'magic' transparent color. You'll need to do something
like this for Cygwin/XFree86, so you'll need to start by finding the Windows
'magic' transparent color. You'll also need to put a function that is
almost equivalent to this function into some file in hw/xwin/.
3) You now need to wrap the paint background function so that our paint
background function gets called first. XDarwin does this in
xc/programs/Xserver/hw/darwin/quartz/rootlessScreen.c/RootlessWrap (). To
start you'll need to make a similar function to this in hw/xwin/, or you
could just copy the WRAP macro and the call to it for PaintWindowBackground
into hw/xwin/winscrinit.c/winFinishScreenInitFB (). Darwin calls
RootlessWrap through a convoluted sequence something like:
DarwinAddScreen->QuartzSetupScreen->AquaSetupScreen->RootlessInit->RootlessW
rap.
If you do all that you'd have put Cygwin/XFree86 on the road to having a
rootless mode.
Good luck,
Harold