From e324e53c0adb744bcbaf48b0ce571e7fad65b90d Mon Sep 17 00:00:00 2001 From: Vincent Wei Date: Fri, 7 Feb 2020 12:11:11 +0800 Subject: [PATCH] call on_layer_op for compositor --- src/server/client.c | 8 ++++++++ src/server/layer.c | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/src/server/client.c b/src/server/client.c index 6402de28..aa0b9689 100644 --- a/src/server/client.c +++ b/src/server/client.c @@ -223,6 +223,13 @@ void __mg_remove_client (int cli, int clifd) #ifdef _DEBUG err_msg ("client closed: uid %d, fd %d", mgClients [cli].uid, clifd); #endif + + if (OnChangeLayer) + OnChangeLayer (LCO_REMOVE_CLIENT, + mgClients[cli].layer, mgClients + cli); + DO_COMPSOR_OP_ARGS (on_layer_op, LCO_REMOVE_CLIENT, + mgClients[cli].layer, mgClients + cli); + __mg_client_del (cli); /* client has closed conn */ FD_CLR (clifd, &mg_rfdset); close (clifd); @@ -294,6 +301,7 @@ void __mg_set_active_client (MG_Client* client) /* Notify that active client changed. */ if (OnChangeLayer) OnChangeLayer (LCO_ACTIVE_CHANGED, layer, client); + DO_COMPSOR_OP_ARGS (on_layer_op, LCO_ACTIVE_CHANGED, layer, client); layer->cli_active = client; } diff --git a/src/server/layer.c b/src/server/layer.c index e700494e..c07b80f1 100644 --- a/src/server/layer.c +++ b/src/server/layer.c @@ -268,6 +268,7 @@ BOOL GUIAPI ServerDeleteLayer (MG_Layer* layer) ServerSetTopmostLayer (layer->next); if (OnChangeLayer) OnChangeLayer (LCO_DEL_LAYER, layer, NULL); + DO_COMPSOR_OP_ARGS (on_layer_op, LCO_DEL_LAYER, layer, client); client = layer->cli_head; while (client) { @@ -469,6 +470,7 @@ static MG_Layer* alloc_layer (const char* layer_name, /* Notify that a new layer created. */ if (OnChangeLayer) OnChangeLayer (LCO_NEW_LAYER, new_layer, NULL); + DO_COMPSOR_OP_ARGS (on_layer_op, LCO_NEW_LAYER, new_layer, NULL); mgTopmostLayer = new_layer; @@ -485,6 +487,7 @@ static MG_Layer* alloc_layer (const char* layer_name, /* Notify that a new topmost layer have been set. */ if (OnChangeLayer) OnChangeLayer (LCO_TOPMOST_CHANGED, mgTopmostLayer, NULL); + DO_COMPSOR_OP_ARGS (on_layer_op, LCO_TOPMOST_CHANGED, mgTopmostLayer, NULL); PostMessage (HWND_DESKTOP, MSG_ERASEDESKTOP, 0, 0); @@ -566,6 +569,7 @@ static void do_client_join_layer (int cli, /* Notify that a new client joined to this layer. */ if (OnChangeLayer) OnChangeLayer (LCO_JOIN_CLIENT, layer, new_client); + DO_COMPSOR_OP_ARGS (on_layer_op, LCO_JOIN_CLIENT, layer, new_client); new_client->prev = NULL; new_client->next = layer->cli_head; @@ -626,6 +630,7 @@ BOOL GUIAPI ServerSetTopmostLayer (MG_Layer* layer) /* Notify that a new topmost layer have been set. */ if (OnChangeLayer) OnChangeLayer (LCO_TOPMOST_CHANGED, mgTopmostLayer, NULL); + DO_COMPSOR_OP_ARGS (on_layer_op, LCO_TOPMOST_CHANGED, mgTopmostLayer, NULL); if (IsPaint) { SendMessage (HWND_DESKTOP, MSG_PAINT, 0, 0); @@ -678,6 +683,7 @@ MG_Layer* GUIAPI ServerCreateLayer (const char* layer_name, /* Notify that a new layer created. */ if (OnChangeLayer) OnChangeLayer (LCO_NEW_LAYER, new_layer, NULL); + DO_COMPSOR_OP_ARGS (on_layer_op, LCO_NEW_LAYER, new_layer, NULL); return new_layer; }