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]

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


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