diff --git a/README.SaWMan b/README.SaWMan new file mode 100644 index 000000000..24ff61036 --- /dev/null +++ b/README.SaWMan @@ -0,0 +1,73 @@ +SaWMan +------- + +DirectFB proudly presents SaWMan, the Shared application and Window Manager, +as a co-development of Royal Philips and Denis Oliver Kropp. + +SaWMan is a new window manager module for use with DirectFB. Its main difference +to the default module is that it allows one process to be an application and window +manager, implementing all kinds of diversity, while SaWMan is only the working horse. + +On its own, SaWMan will behave similar to the default window manager, but as soon as +there's an application manager, SaWMan will do synchronous RPCs to that application in +relevant functions of the window manager module. That means it switches to the process +and continues after it has completed the requested call and returned a result. The data +which those calls operate on is already in shared memory, e.g. a window configuration. + +The application manager can hook itself into several operations with this, e.g. it can +forbid or modify requested window configurations right before they're actually applied +by SaWMan. + +For non-desktop and especially non-pointer environments like TVs, it is important to +provide a simple and convenient layout and focus management. The layout of all windows +can be completely overridden by the application manager, e.g. to implement a screen +tiling mode. + +The integration of application management allows easy definition and handling of +application specific constraints. The manager has a list of applications identified +by their name. Launching applications is usually initiated by the application manager +itself, e.g. based on global keys grabbed by an input only window. However, the public +SaWMan interfaces provide a way to send launch/shutdown requests from any application +to the application manager. + +While the key grabbing only provides asynchronous notification about keys which are +then handled in the manager's main loop, SaWMan provides a hook to let the manager +basically filter every single input event in a synchronous way, similar to the window +configuration. Critical operations like layout and focus switching are best done in +this callback. + +[...] + +For more information you can check the more or less documented header files in the +include/ directory, or have a look at 'testman' - a minimal example of a manager +implementation in the samples/ directory. You'll also find a small test program +called 'testrun' which demonstrates launching of applications from another application. + + +Running testman +---------------- + +Once you have a session running after setting the option "wm = sawman" you'll notice +that there's nothing new, except the old window manager hacks (builtin keys) are gone. + +However, if you start 'testman' from the samples/ directory, you'll see windows being +tiled on the screen, unless these windows have the DWCAPS_NODECORATION flag, e.g. LiTE +and XDirectFB use that. + +You can try running "df_andi --dfb:force-windowed" or even simply run df_window. + +Hitting F9 cycles the focus through managed windows. +F10 would switch layout modes, but there's only one implemented in the test code. +F11 switches between "smooth software" or "standard (hw/sw)" scaling (for windows only). + +The smooth scaling algorithms have also been developed in the scope of this project. + + +Using testrun +-------------- + +The command "testrun " will start/stop an application. + +Available in the test code are: + Penguins df_andi --dfb:mode=640x480,force-windowed + Windows df_windows diff --git a/configure.in b/configure.in index 8fd66d6d3..bdcdf536f 100644 --- a/configure.in +++ b/configure.in @@ -650,6 +650,19 @@ else enable_pure_voodoo=no fi +AC_ARG_ENABLE(sawman, + AC_HELP_STRING([--enable-sawman], + [enable SaWMan (window manager and application mananger) @<:@default=no@:>@]), + [], [enable_one=no]) +if test "$enable_sawman" = "yes"; then + DIRECTFB_BUILD_SAWMAN=1 + DEP_SAWMAN=sawman +else + DIRECTFB_BUILD_SAWMAN=0 + enable_sawman=no + DEP_SAWMAN= +fi + AC_SUBST(DIRECTFB_BUILD_ONE) AM_CONDITIONAL(DIRECTFB_BUILD_ONE, test "$DIRECTFB_BUILD_ONE" = "1") @@ -659,8 +672,12 @@ AM_CONDITIONAL(DIRECTFB_BUILD_VOODOO, test "$DIRECTFB_BUILD_VOODOO" = "1") AC_SUBST(DIRECTFB_BUILD_PURE_VOODOO) AM_CONDITIONAL(DIRECTFB_BUILD_PURE_VOODOO, test "$DIRECTFB_BUILD_PURE_VOODOO" = "1") +AC_SUBST(DIRECTFB_BUILD_SAWMAN) +AM_CONDITIONAL(DIRECTFB_BUILD_SAWMAN, test "$DIRECTFB_BUILD_SAWMAN" = "1") + AC_SUBST(DEP_ONE) AC_SUBST(DEP_VOODOO) +AC_SUBST(DEP_SAWMAN) dnl If we're not building a pure voodoo lib, we need sqrt sin cos for dnl various files @@ -688,6 +705,8 @@ AC_SUBST(FUSION_BUILD_KERNEL) AM_CONDITIONAL(ENABLE_ONE, test "$enable_one" = "yes") AM_CONDITIONAL(ENABLE_VOODOO, test "$enable_voodoo" = "yes") +AM_CONDITIONAL(ENABLE_SAWMAN, test "$enable_sawman" = "yes") + AC_ARG_ENABLE(unique, AC_HELP_STRING([--enable-unique], @@ -2164,6 +2183,9 @@ lib/voodoo/build.h lib/voodoo/unix/Makefile lib/voodoo/voodoo.pc +lib/sawman/Makefile +lib/sawman/sawman.pc + patches/Makefile proxy/Makefile @@ -2202,6 +2224,7 @@ wm/unique/Makefile wm/unique/classes/Makefile wm/unique/data/Makefile wm/unique/devices/Makefile +wm/sawman/Makefile gfxdrivers/Makefile gfxdrivers/ati128/Makefile @@ -2337,6 +2360,7 @@ Building System Modules: Building Window Manager Modules: Default yes UniQuE $enable_unique + SaWMan $enable_sawman Building Image Provider Modules: GIF $enable_gif diff --git a/lib/Makefile.am b/lib/Makefile.am index 82a5eee90..ddb23a5a0 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -8,5 +8,9 @@ if ENABLE_VOODOO VOODOO_DIR = voodoo endif -SUBDIRS = direct fusion $(ONE_DIR) $(VOODOO_DIR) +if ENABLE_SAWMAN +SAWMAN_DIR = sawman +endif + +SUBDIRS = direct fusion $(ONE_DIR) $(VOODOO_DIR) $(SAWMAN_DIR) diff --git a/lib/sawman/.gitignore b/lib/sawman/.gitignore new file mode 100644 index 000000000..6cafa4a51 --- /dev/null +++ b/lib/sawman/.gitignore @@ -0,0 +1,7 @@ +SaWMan.cpp +SaWMan.h +SaWManManager.cpp +SaWManManager.h +SaWManProcess.cpp +SaWManProcess.h +sawman.pc diff --git a/lib/sawman/Makefile.am b/lib/sawman/Makefile.am new file mode 100644 index 000000000..ace97bcad --- /dev/null +++ b/lib/sawman/Makefile.am @@ -0,0 +1,105 @@ +## Makefile.am for SaWMan/src + +INCLUDES = \ + -I$(top_builddir)/include \ + -I$(top_builddir)/src \ + -I$(top_builddir)/lib \ + -I$(top_builddir)/sawman \ + -I$(top_srcdir)/include \ + -I$(top_srcdir)/src \ + -I$(top_srcdir)/lib \ + -I$(top_srcdir)/lib/sawman \ + $(DIRECTFB_CFLAGS) + +AM_CPPFLAGS = \ + -DDATADIR=\"${RUNTIME_SYSROOT}@DATADIR@\" \ + -DMODULEDIR=\"${RUNTIME_SYSROOT}@MODULEDIR@\" \ + -DSYSCONFDIR=\"@sysconfdir@\" + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = sawman.pc + +includedir = @INCLUDEDIR@/sawman + +include_HEADERS = \ + sawman.h \ + sawman_types.h + +lib_LTLIBRARIES = libsawman.la + +libsawman_la_SOURCES = \ + SaWMan.cpp \ + SaWMan.h \ + SaWMan_includes.h \ + SaWMan_real.cpp \ + SaWManManager.cpp \ + SaWManManager.h \ + SaWManManager_includes.h \ + SaWManManager_real.cpp \ + SaWManProcess.cpp \ + SaWManProcess.h \ + SaWManProcess_includes.h \ + SaWManProcess_real.cpp \ + isawman.c \ + isawman.h \ + isawmanmanager.c \ + isawmanmanager.h \ + region.c \ + region.h \ + sawman_core.c \ + sawman_internal.h \ + sawman_config.c \ + sawman_config.h \ + sawman_draw.c \ + sawman_draw.h \ + sawman_updates.c \ + sawman_updates.h \ + sawman_window.c \ + sawman_window.h + +libsawman_la_LIBADD = \ + $(DIRECTFB_LIBS) + +libsawman_la_LDFLAGS = \ + -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \ + -release $(LT_RELEASE) + + +# +## and now rebuild the static version with the *correct* object files +# +if BUILD_STATIC + +clean-local: + rm -f libsawman_fixed.a + +all-local: libsawman_fixed.a + +libsawman_fixed.a: .libs/libsawman.a + rm -f libsawman_fixed.a + ${AR} cru libsawman_fixed.a `find . -name "*.o" | grep -v '.libs'` + ${RANLIB} libsawman_fixed.a + cp -pf libsawman_fixed.a .libs/libsawman.a + +.libs/libsawman.a: libsawman.la + +else + +clean-local: + +all-local: + +endif + + +distclean-local: + rm -f SaWMan.cpp + rm -f SaWMan.h + rm -f SaWManManager.cpp + rm -f SaWManManager.h + rm -f SaWManProcess.cpp + rm -f SaWManProcess.h + +include $(top_srcdir)/rules/flux_comp_sawman.make +include $(top_srcdir)/rules/nmfile.make + diff --git a/src/SaWMan.flux b/lib/sawman/SaWMan.flux similarity index 100% rename from src/SaWMan.flux rename to lib/sawman/SaWMan.flux diff --git a/src/SaWManManager.flux b/lib/sawman/SaWManManager.flux similarity index 100% rename from src/SaWManManager.flux rename to lib/sawman/SaWManManager.flux diff --git a/src/SaWManManager_includes.h b/lib/sawman/SaWManManager_includes.h similarity index 100% rename from src/SaWManManager_includes.h rename to lib/sawman/SaWManManager_includes.h diff --git a/src/SaWManManager_real.cpp b/lib/sawman/SaWManManager_real.cpp similarity index 100% rename from src/SaWManManager_real.cpp rename to lib/sawman/SaWManManager_real.cpp diff --git a/src/SaWManProcess.flux b/lib/sawman/SaWManProcess.flux similarity index 100% rename from src/SaWManProcess.flux rename to lib/sawman/SaWManProcess.flux diff --git a/src/SaWManProcess_includes.h b/lib/sawman/SaWManProcess_includes.h similarity index 100% rename from src/SaWManProcess_includes.h rename to lib/sawman/SaWManProcess_includes.h diff --git a/src/SaWManProcess_real.cpp b/lib/sawman/SaWManProcess_real.cpp similarity index 100% rename from src/SaWManProcess_real.cpp rename to lib/sawman/SaWManProcess_real.cpp diff --git a/src/SaWMan_includes.h b/lib/sawman/SaWMan_includes.h similarity index 100% rename from src/SaWMan_includes.h rename to lib/sawman/SaWMan_includes.h diff --git a/src/SaWMan_real.cpp b/lib/sawman/SaWMan_real.cpp similarity index 100% rename from src/SaWMan_real.cpp rename to lib/sawman/SaWMan_real.cpp diff --git a/src/isawman.c b/lib/sawman/isawman.c similarity index 100% rename from src/isawman.c rename to lib/sawman/isawman.c diff --git a/src/isawman.h b/lib/sawman/isawman.h similarity index 100% rename from src/isawman.h rename to lib/sawman/isawman.h diff --git a/src/isawmanmanager.c b/lib/sawman/isawmanmanager.c similarity index 100% rename from src/isawmanmanager.c rename to lib/sawman/isawmanmanager.c diff --git a/src/isawmanmanager.h b/lib/sawman/isawmanmanager.h similarity index 100% rename from src/isawmanmanager.h rename to lib/sawman/isawmanmanager.h diff --git a/src/region.c b/lib/sawman/region.c similarity index 100% rename from src/region.c rename to lib/sawman/region.c diff --git a/src/region.h b/lib/sawman/region.h similarity index 100% rename from src/region.h rename to lib/sawman/region.h diff --git a/include/sawman.h b/lib/sawman/sawman.h similarity index 100% rename from include/sawman.h rename to lib/sawman/sawman.h diff --git a/sawman.pc.in b/lib/sawman/sawman.pc.in similarity index 100% rename from sawman.pc.in rename to lib/sawman/sawman.pc.in diff --git a/src/sawman_config.c b/lib/sawman/sawman_config.c similarity index 100% rename from src/sawman_config.c rename to lib/sawman/sawman_config.c diff --git a/src/sawman_config.h b/lib/sawman/sawman_config.h similarity index 100% rename from src/sawman_config.h rename to lib/sawman/sawman_config.h diff --git a/src/sawman_core.c b/lib/sawman/sawman_core.c similarity index 100% rename from src/sawman_core.c rename to lib/sawman/sawman_core.c diff --git a/src/sawman_draw.c b/lib/sawman/sawman_draw.c similarity index 100% rename from src/sawman_draw.c rename to lib/sawman/sawman_draw.c diff --git a/src/sawman_draw.h b/lib/sawman/sawman_draw.h similarity index 100% rename from src/sawman_draw.h rename to lib/sawman/sawman_draw.h diff --git a/src/sawman_internal.h b/lib/sawman/sawman_internal.h similarity index 100% rename from src/sawman_internal.h rename to lib/sawman/sawman_internal.h diff --git a/include/sawman_types.h b/lib/sawman/sawman_types.h similarity index 100% rename from include/sawman_types.h rename to lib/sawman/sawman_types.h diff --git a/src/sawman_updates.c b/lib/sawman/sawman_updates.c similarity index 100% rename from src/sawman_updates.c rename to lib/sawman/sawman_updates.c diff --git a/src/sawman_updates.h b/lib/sawman/sawman_updates.h similarity index 100% rename from src/sawman_updates.h rename to lib/sawman/sawman_updates.h diff --git a/src/sawman_window.c b/lib/sawman/sawman_window.c similarity index 100% rename from src/sawman_window.c rename to lib/sawman/sawman_window.c diff --git a/src/sawman_window.h b/lib/sawman/sawman_window.h similarity index 100% rename from src/sawman_window.h rename to lib/sawman/sawman_window.h diff --git a/rules/flux_comp_sawman.make b/rules/flux_comp_sawman.make new file mode 100644 index 000000000..0bed9f2ff --- /dev/null +++ b/rules/flux_comp_sawman.make @@ -0,0 +1,2 @@ +$(builddir)/%.cpp $(builddir)/%.h: $(srcdir)/%.flux + fluxcomp $< diff --git a/samples/.cvsignore b/samples/.cvsignore deleted file mode 100644 index a536ad8b1..000000000 --- a/samples/.cvsignore +++ /dev/null @@ -1,8 +0,0 @@ -Makefile -Makefile.in -.deps -.libs -*.o -sample1 -testman -testrun diff --git a/samples/.gitignore b/samples/.gitignore deleted file mode 100644 index ee90dea2c..000000000 --- a/samples/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -sample1 -testman -testrun diff --git a/samples/Makefile.am b/samples/Makefile.am deleted file mode 100644 index 4c5ba4cba..000000000 --- a/samples/Makefile.am +++ /dev/null @@ -1,19 +0,0 @@ -## Makefile.am for SaWMan/samples - -INCLUDES = \ - -I$(top_srcdir)/include \ - $(DIRECTFB_CFLAGS) - - -bin_PROGRAMS = sample1 testman testrun - - -sample1_SOURCES = sample1.c -sample1_LDADD = $(DIRECTFB_LIBS) ../src/libsawman.la - -testman_SOURCES = testman.c -testman_LDADD = $(DIRECTFB_LIBS) ../src/libsawman.la - -testrun_SOURCES = testrun.c -testrun_LDADD = $(DIRECTFB_LIBS) ../src/libsawman.la - diff --git a/tests/.gitignore b/tests/.gitignore index 56955ab47..977e2beaf 100644 --- a/tests/.gitignore +++ b/tests/.gitignore @@ -1,11 +1,13 @@ coretest_blit2 coretest_task coretest_fillrect +coretest_task_fillrect dfbtest_blit dfbtest_blit_multi dfbtest_blit2 dfbtest_clipboard dfbtest_fillrect +dfbtest_flip dfbtest_font dfbtest_gl1 dfbtest_gl2 @@ -40,6 +42,9 @@ fusion_fork fusion_reactor fusion_skirmish fusion_stream +sample1 +testman +testrun voodoo_bench voodoo_bench_client voodoo_bench_client_unix diff --git a/tests/Makefile.am b/tests/Makefile.am index c8c0c8b55..e0b47629c 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -21,13 +21,23 @@ VOODOO_PROGS = \ voodoo_bench_server_unix endif +if DIRECTFB_BUILD_SAWMAN +SAWMAN_PROGS = \ + sample1 \ + testrun \ + testman +endif + INCLUDES = \ -I$(top_builddir)/include \ -I$(top_builddir)/lib \ + -I$(top_builddir)/lib/One \ + -I$(top_builddir)/lib/sawman \ -I$(top_srcdir)/include \ -I$(top_srcdir)/lib \ -I$(top_srcdir)/lib/One \ + -I$(top_srcdir)/lib/sawman \ -I$(top_srcdir)/src \ -DLINUX_2_6 @@ -94,7 +104,8 @@ bin_PROGRAMS = \ direct_stream \ direct_test \ $(ONE_PROGS) \ - $(VOODOO_PROGS) + $(VOODOO_PROGS) \ + $(SAWMAN_PROGS) libdirectfb = $(top_builddir)/src/libdirectfb.la libfusion = $(top_builddir)/lib/fusion/libfusion.la @@ -114,6 +125,13 @@ else libone = endif +if DIRECTFB_BUILD_SAWMAN +libsawman = \ + ../lib/sawman/libsawman.la +else +libsawman = +endif + coretest_blit2_SOURCES = coretest_blit2.c coretest_blit2_LDADD = $(libdirectfb) $(libone) $(libvoodoo) $(libfusion) $(libdirect) @@ -269,3 +287,12 @@ voodoo_bench_client_unix_LDADD = $(libdirectfb) $(libone) $(libvoodoo) $(libfu voodoo_bench_server_unix_SOURCES = voodoo_bench_server_unix.c voodoo_bench_server_unix_LDADD = $(libdirectfb) $(libone) $(libvoodoo) $(libfusion) $(libdirect) + +testman_SOURCES = testman.c +testman_LDADD = $(libdirectfb) $(libone) $(libvoodoo) $(libfusion) $(libdirect) $(libsawman) + +testrun_SOURCES = testrun.c +testrun_LDADD = $(libdirectfb) $(libone) $(libvoodoo) $(libfusion) $(libdirect) $(libsawman) + +sample1_SOURCES = sample1.c +sample1_LDADD = $(libdirectfb) $(libone) $(libvoodoo) $(libfusion) $(libdirect) $(libsawman) diff --git a/samples/sample1.c b/tests/sample1.c similarity index 100% rename from samples/sample1.c rename to tests/sample1.c diff --git a/samples/testman.c b/tests/testman.c similarity index 100% rename from samples/testman.c rename to tests/testman.c diff --git a/samples/testrun.c b/tests/testrun.c similarity index 100% rename from samples/testrun.c rename to tests/testrun.c diff --git a/tools/.gitignore b/tools/.gitignore index c59f7ec18..59c6022dc 100644 --- a/tools/.gitignore +++ b/tools/.gitignore @@ -18,6 +18,7 @@ mkdgifft raw15toraw24 raw16toraw24 raw32toraw24 +swmdump voodooplay voodooplay_client voodooplay_server diff --git a/tools/Makefile.am b/tools/Makefile.am index c915dfdda..ee52df872 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -3,9 +3,11 @@ INCLUDES = \ -I$(top_builddir)/include \ -I$(top_builddir)/lib \ + -I$(top_builddir)/lib/sawman \ -I$(top_builddir)/src \ -I$(top_srcdir)/include \ -I$(top_srcdir)/lib \ + -I$(top_srcdir)/lib/sawman \ -I$(top_srcdir)/src AM_CPPFLAGS = -DBINDIR=\"@bindir@\" -DDATADIR=\"@DATADIR@\" @@ -37,6 +39,11 @@ VOODOO_PROGS = \ voodooplay_server endif +if ENABLE_SAWMAN +SAWMAN_PROGS = \ + swmdump +endif + if PNG_PROVIDER PNG_PROGS = mkdfiff mkdgifft endif @@ -68,7 +75,8 @@ bin_PROGRAMS = \ dfbpenmount \ $(PNG_PROGS) \ $(FREETYPE_PROGS) \ - $(VOODOO_PROGS) + $(VOODOO_PROGS) \ + $(SAWMAN_PROGS) if DIRECTFB_BUILD_PURE_VOODOO @@ -101,6 +109,13 @@ else libvoodoo = endif +if DIRECTFB_BUILD_SAWMAN +libsawman = \ + ../lib/sawman/libsawman.la +else +libsawman = +endif + dfbdump_SOURCES = dfbdump.c dfbdump_LDADD = $(libdirectfb) $(libvoodoo) $(libone) $(libfusion) $(libdirect) @@ -164,6 +179,9 @@ voodooplay_client_LDADD = $(libdirectfb) $(libvoodoo) $(libone) $(libfusion) $ voodooplay_server_SOURCES = voodooplay_server.c voodooplay_server_LDADD = $(libdirectfb) $(libvoodoo) $(libone) $(libfusion) $(libdirect) +swmdump_SOURCES = swmdump.c +swmdump_LDADD = $(libdirectfb) $(libvoodoo) $(libone) $(libfusion) $(libdirect) $(libsawman) + EXTRA_DIST = \ README \ diff --git a/tools/swmdump.c b/tools/swmdump.c index 17867fccf..981a4a69c 100644 --- a/tools/swmdump.c +++ b/tools/swmdump.c @@ -527,7 +527,7 @@ main( int argc, char *argv[] ) static void print_usage (const char *prg_name) { - fprintf (stderr, "\nSaWMan Dump (version %s)\n\n", SAWMAN_VERSION); + fprintf (stderr, "\nSaWMan Dump (version %s)\n\n", DIRECTFB_VERSION); fprintf (stderr, "Usage: %s [options]\n\n", prg_name); fprintf (stderr, "Options:\n"); fprintf (stderr, " -g, --geometry Show advanced geometry settings\n"); @@ -552,7 +552,7 @@ parse_command_line( int argc, char *argv[] ) } if (strcmp (arg, "-v") == 0 || strcmp (arg, "--version") == 0) { - fprintf (stderr, "swmdump version %s\n", SAWMAN_VERSION); + fprintf (stderr, "swmdump version %s\n", DIRECTFB_VERSION); return DFB_FALSE; } diff --git a/wm/Makefile.am b/wm/Makefile.am index 1939b2895..1aadc58fa 100644 --- a/wm/Makefile.am +++ b/wm/Makefile.am @@ -6,4 +6,10 @@ else UNIQUE_DIR = endif -SUBDIRS = default $(UNIQUE_DIR) +if ENABLE_SAWMAN +SAWMAN_DIR = sawman +else +SAWMAN_DIR = +endif + +SUBDIRS = default $(UNIQUE_DIR) $(SAWMAN_DIR) diff --git a/wm/sawman/Makefile.am b/wm/sawman/Makefile.am index 4c5f2464d..81bc836aa 100644 --- a/wm/sawman/Makefile.am +++ b/wm/sawman/Makefile.am @@ -3,8 +3,11 @@ INCLUDES = \ -I$(top_builddir)/include \ -I$(top_builddir)/src \ + -I$(top_builddir)/lib/sawman \ -I$(top_srcdir)/include \ -I$(top_srcdir)/src \ + -I$(top_srcdir)/lib \ + -I$(top_srcdir)/lib/sawman \ $(DIRECTFB_CFLAGS) @@ -25,7 +28,7 @@ libdirectfbwm_sawman_la_SOURCES = \ sawman_wm.c libdirectfbwm_sawman_la_LIBADD = \ - $(top_builddir)/src/libsawman.la \ + $(top_builddir)/lib/sawman/libsawman.la \ $(DIRECTFB_LIBS) diff --git a/wm/sawman/sawman_wm.c b/wm/sawman/sawman_wm.c index ca6da867e..b027f9719 100644 --- a/wm/sawman/sawman_wm.c +++ b/wm/sawman/sawman_wm.c @@ -74,11 +74,11 @@ #include -#include +#include -#include "sawman_draw.h" -#include "sawman_updates.h" -#include "sawman_window.h" +#include +#include +#include DFB_WINDOW_MANAGER( sawman )