CVSROOT: /cvs/directfb
Module name: DirectFB
Changes by: dok 20041107 09:15:22
Modified files:
lib/fusion : fusion.c object.h ref.c ref.h
src/core : core.c coretypes.h gfxcard.c layer_context.c
layer_context.h layers.c layers.h windows.c
windows.h windows_internal.h windowstack.c
windowstack.h wm.c wm.h wm_module.h
src/display : idirectfbsurface_window.c
src/windows : idirectfbwindow.c
tools : dfbdump.c
wm/default : default.c
wm/unique : .cvsignore Makefile.am context.c context.h
internal.h stret.c stret.h stret_iteration.c
stret_iteration.h stret_test.c types.h unique.c
uniquewm.c
wm/unique/classes: foo.c root.c window.c
Added files:
docs : ReferenceMaps.txt
wm/unique : STRET uwmdump.c window.c window.h
Log message:
Use new Fusion API for entering the world.
Added fusion_ref_inherit() using the new ioctl FUSION_REF_INHERIT.
Added fusion_object_inherit() to inherit the local reference count
from another object of any type.
Fixed the global reference cycle "Layer Context, Layer Region,
Cursor Window" by removing the global reference to the Cursor Window,
which now inherits local references from the Layer Context, i.e. if the
last application releases the stack, the cursor gets destroyed :-)
Fixed the global reference cycle of "Layer Context, Layer Region,
Unique Context" using the same technique.
Added "docs/ReferenceMaps.txt" which explains references
and visualizes different cases of inter object referencing.
-
Split unique window manager code into the objects UniqueContext
and UniqueWindow. The wm module only uses the unique wm library,
nothing is implemented in the module any longer. Moved all stuff
from StackData and WindowData to UniqueContext and UniqueWindow
respectively. Added methods to these new objects to implement
the current functionality for now.
Added the ability to create a StReT Region with multiple levels.
Actually, there's a variable number of children vectors now. This
eliminates the usage of invisible StReT Regions all having the same
size to emulate the levels. Creation of a Region needs specification
of the number of provided levels, now. Additionally, the level to
be added to within the parent must be specified.
The Root Region consists of these UniqueRootLevel's:
- UNRL_DESKTOP Icons, redirected fullscreen apps (force-desktop)
- UNRL_USER User windows (currently available stacking classes)
- UNRL_SYSTEM Dock/Panel, Glass, Expos�, Clipboard, Virtual Keyboard, IMs
- UNRL_CURSOR Cursor shape and attached objects, e.g. Drag'N'Drop
- UNRL_SCREEN Display Locking, Screensaver
The Frame Region consists of these UniqueFrameLevel's:
- UNFL_BACKGROUND Background for blended content, effects, decorations
- UNFL_CONTENT The actual DirectFB Window, i.e. its content
- UNFL_FOREGROUND Decorations, effects, any other content overlay
Added "uwmdump" in the flavor of "dfbdump", but not showing much, yet.
Added debug domain and messages to StReT Iteration code, along with support
for the new level feature.
Enhanced "stret_test" to check for correct implementation of multiple levels.
-
Added a CoreWindowConfig containing position, size, opacity, stacking,
options, events, color key and opaque region.
Added dfb_wm_set_window_config() to change any combination of the different
settings with one call. Current implementations, however, simply iterate over
each entry, e.g. still two window stack updates for changing position and size.
Removed dfb_wm_move_window(), dfb_wm_resize_window(), dfb_wm_set_opacity()
and dfb_wm_set_options().
Added dfb_wm_set_active() to notify the window manager about layer context
switches, e.g. switching to a full screen application.
In dfb_layer_context_activate() and dfb_layer_context_deactivate(): replaced
calls to dfb_windowstack_repaint_all() and dfb_wm_flush_keys()
by dfb_wm_set_active().
Replaced dfb_window_set_options() by dfb_window_change_options() which takes
two bit masks: one for clearing bits and one for setting bits afterwards.
Added dfb_window_change_events() in the same flavor.
-
Added debug domain to the main file of fusion.
Minor API cleanups, e.g. adding return values (DFBResult).