mirror of
https://github.com/VincentWei/MiniGUI.git
synced 2026-09-26 03:23:46 +08:00
Extend JoinLayer() to JoinLayerEx() to return the client identifier; Add a new API GetClientId()
This commit is contained in:
+15
-3
@@ -518,8 +518,8 @@ BOOL client_IdleHandler4Client (PMSGQUEUE msg_queue, BOOL wait)
|
||||
return (n > 0);
|
||||
}
|
||||
|
||||
GHANDLE GUIAPI JoinLayer (const char* layer_name, const char* client_name,
|
||||
int max_nr_topmosts, int max_nr_normals)
|
||||
GHANDLE GUIAPI JoinLayerEx (const char* layer_name, const char* client_name,
|
||||
int max_nr_topmosts, int max_nr_normals, int *cli_id)
|
||||
{
|
||||
GHANDLE layer_handle = INV_LAYER_HANDLE;
|
||||
REQUEST req;
|
||||
@@ -529,8 +529,12 @@ GHANDLE GUIAPI JoinLayer (const char* layer_name, const char* client_name,
|
||||
if (mgIsServer)
|
||||
return layer_handle;
|
||||
|
||||
if (__mg_client_id != 0) /* Already joined, return the handle */
|
||||
if (__mg_client_id != 0) {
|
||||
/* Already joined, return the handle */
|
||||
if (cli_id)
|
||||
*cli_id = __mg_client_id;
|
||||
return GetLayerInfo (NAME_SELF_LAYER, NULL, NULL, NULL);
|
||||
}
|
||||
|
||||
if (layer_name) {
|
||||
strncpy (info.layer_name, layer_name, LEN_LAYER_NAME);
|
||||
@@ -593,10 +597,18 @@ GHANDLE GUIAPI JoinLayer (const char* layer_name, const char* client_name,
|
||||
|
||||
__mg_start_client_desktop ();
|
||||
|
||||
if (cli_id)
|
||||
*cli_id = __mg_client_id;
|
||||
|
||||
ret:
|
||||
return layer_handle;
|
||||
}
|
||||
|
||||
int GUIAPI GetClientId (void)
|
||||
{
|
||||
return __mg_client_id;
|
||||
}
|
||||
|
||||
GHANDLE GUIAPI GetLayerInfo (const char* layer_name,
|
||||
int* nr_clients, BOOL* is_topmost, int* cli_active)
|
||||
{
|
||||
|
||||
+1
-1
@@ -307,7 +307,7 @@ map_entry_t* __mg_map_insert_ex2 (map_t* map, const void* key,
|
||||
map_entry_t *parent;
|
||||
|
||||
if (map == NULL)
|
||||
return -1;
|
||||
return NULL;
|
||||
|
||||
WRLOCK_MAP (map);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user