Architecture ------------ - review interprocess communication - eliminate import in xdaemon\lib\xdaemon.def _XUnlockDisplay = X11.XUnlockDisplay not good practise, only good for now move lock code partly to xdeamon - eliminate unwanted redraws from hook queue on windows resizing Project documentation --------------------- - Module overview - IPC overview - Build prerequisites - determine sources of imported X11 sources - define URLs - modification for xlibint.h - X11\xlibint.h and x11.h in x11\include\x11\ (patched original) - extend C_INCLUDE_PATH by x11\include - region.h -> ??? - xcms and xmisc: xlib.h replaced by version from x11 header - existing licenses used by imported source, licences used by own sources - def settings - ebhook/xdaemon def settings LIBRARY EBHOOK INITINSTANCE TERMINSTANCE: done by _DLL_InitTerm for all instances SINGLE SHARED: InitTerm.c: HMTX global_lock - x11 MULTIPLE NONSHARED - makefile of ebhook - -Zno-fork required for -nodefaultlibs Coding ------ - create syslog concept, add syslog calls to libraries - syslog calls in hook dll (req. runtime ?) - review header files - Layout - ifdef encapsulation - finish drawing methods & text handling - include & extend everblue1 code (mouse cursors, m&k grabbing etc) - mouse cursors - mouse/keyboard grabbing - window sizing - window attributes - events - Code review (locking, resource cleanup, bugfixing, code cleanup) - resolve HMTX *_Xglobal_lock = &global_lock; ? EbQueryHookLockSem lib\x11\XlibInt.c - eliminate global_lock in xdaemon\lib\InitTerm.c xdaemon\lib\register.c - move global_lock from ebhook.c to access.c - GC attribute handling (Cairo ?, temporary bitmaps ?) Buildsystem/Build tools ----------------------- - make clean - kill subdirs - eliminate myxlibint.h and xlibint.h stubs from X11 directory (see project docs) - move EBdebug.h to X11 - eliminate weak prelinker msgs - generate def files for x11.dll, x11.lib and x11emx.lib by REXX Script - source is textfile holding names and ordinal - remove stacksize from *.def to use gcc default of 1 MB - implement call of debugger - maintain BLDLEVEL in all shipped executables - modify subdirtree current: x11 xcms xlibi18n Xmisc new: x11 include\x11\xlibint.h Xfree (renamed from xmisc, + 3 header from lib\x11 dir, ImUtil.h, xatomtype.h, xrmi.h) xcms xlibi18n - extend makefile of x11 to build sub libs - disable debug for xfree sub libraries, not required - add code to check for prerequisites legal issues / licenses ----------------------- - ensure proper licensing for own/x11 code - different license for header files ? what is meant by this ? -------------------- - standard.c for executables: initterm, register.c for xdeamon.dll - resources req. in xdeamon ? decisions --------- - gnu make 3.76.1 required - remove stacksize from *.def to use gcc default of 1 MB - symbol underscore mapping with twodef files required for compatibility with EMX linked apps (no workaround possible), one def file is generated by REXX Script - don't link ebhook with c runtime (makes hook and PM instable) - header of xfree45 (req. for compilation of x11 apps) - store version of header package compatible to spec. relase of everblue on netlabs.org - document installation - refer to by env var - InputOnly windows later! ------ - window manager hints, properties, clipboard - XKB (keyboard extension) - Xim - Input Methods - for foreign languages (chinese etc, use OS/2 methods or X code ?) - InputOnly (invisible windows catching input) - other X extensions (XRender, XTest, ...) - resource exchange after program exit - Window Save Sets (han dover windows from dying to new window manager) - WPS-Integration - window backgrounds