call on_layer_op for compositor

This commit is contained in:
Vincent Wei
2020-02-07 12:11:11 +08:00
parent 1fb95ac4be
commit e324e53c0a
2 changed files with 14 additions and 0 deletions

View File

@@ -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;
}

View File

@@ -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;
}