Added composite stuff (alpha stage, of course).

A lot of things are pending for implementation like region translucency, shadows, fading...
Per window translucency is in, but now working as expected.
This commit is contained in:
Sanel Zukan
2007-12-28 10:58:56 +00:00
parent 9f65ff5859
commit d7db3f0d0f
11 changed files with 1482 additions and 4 deletions

View File

@@ -199,7 +199,7 @@ void wake_up_cb(int fd, void* v) {
}
EvokeService::EvokeService() :
is_running(0), logfile(NULL), xsm(NULL), pidfile(NULL), lockfile(NULL) {
is_running(0), logfile(NULL), xsm(NULL), composite(NULL), pidfile(NULL), lockfile(NULL) {
wake_up_pipe[0] = wake_up_pipe[1] = -1;
//quit_child_pid = quit_child_ret = -1;
@@ -209,6 +209,8 @@ EvokeService::~EvokeService() {
if(logfile)
delete logfile;
delete composite;
stop_xsettings_manager(true);
if(lockfile) {
@@ -499,6 +501,15 @@ void EvokeService::stop_xsettings_manager(bool serialize) {
xsm = NULL;
}
void EvokeService::init_composite(void) {
composite = new Composite();
if(!composite->init()) {
delete composite;
composite = NULL;
}
}
void EvokeService::setup_atoms(Display* d) {
// with them must be send '1' or property will be ignored (except _EDE_EVOKE_SPAWN)
_ede_shutdown_all = XInternAtom(d, "_EDE_EVOKE_SHUTDOWN_ALL", False);
@@ -731,6 +742,10 @@ int EvokeService::handle(const XEvent* xev) {
EVOKE_LOG("XSETTINGS manager shutdown\n");
stop_xsettings_manager(true);
}
if(composite)
composite->handle_xevents(xev);
#if 0
else if(xev->type == MapNotify) {
puts("=================");