return ec2;
}
}
- if (ec->layer == E_LAYER_CLIENT_ALERT) return NULL;
+ if (ec->layer == E_LAYER_CLIENT_CURSOR) return NULL;
if (e_comp_canvas_client_layer_map(ec->layer) == 9999) return NULL;
/* go up the layers until we find one */
- for (x = e_comp_canvas_layer_map(ec->layer) + 1; x <= e_comp_canvas_layer_map(E_LAYER_CLIENT_ALERT); x++)
+ for (x = e_comp_canvas_layer_map(ec->layer) + 1; x <= e_comp_canvas_layer_map(E_LAYER_CLIENT_CURSOR); x++)
{
if (!e_comp->layers[x].clients) continue;
EINA_INLIST_FOREACH(e_comp->layers[x].clients, ec2)
e_client_bottom_get(void)
{
unsigned int x;
-
- for (x = e_comp_canvas_layer_map(E_LAYER_CLIENT_DESKTOP); x <= e_comp_canvas_layer_map(E_LAYER_CLIENT_ALERT); x++)
+ for (x = e_comp_canvas_layer_map(E_LAYER_CLIENT_DESKTOP); x <= e_comp_canvas_layer_map(E_LAYER_CLIENT_CURSOR); x++)
{
E_Client *ec2;
e_client_top_get(void)
{
unsigned int x;
-
- for (x = e_comp_canvas_layer_map(E_LAYER_CLIENT_ALERT); x >= e_comp_canvas_layer_map(E_LAYER_CLIENT_DESKTOP); x--)
+ for (x = e_comp_canvas_layer_map(E_LAYER_CLIENT_CURSOR); x >= e_comp_canvas_layer_map(E_LAYER_CLIENT_DESKTOP); x--)
{
E_Client *ec2;
case E_LAYER_CLIENT_NOTIFICATION_TOP: strncpy(buff, "E_LAYER_CLIENT_NOTIFICATION_TOP", buff_size); break;
case E_LAYER_CLIENT_ALERT_LOW: strncpy(buff, "E_LAYER_CLIENT_ALERT_LOW", buff_size); break;
case E_LAYER_CLIENT_ALERT: strncpy(buff, "E_LAYER_CLIENT_ALERT", buff_size); break;
+ case E_LAYER_CLIENT_ALERT_HIGH: strncpy(buff, "E_LAYER_CLIENT_ALERT_HIGH", buff_size); break;
+ case E_LAYER_CLIENT_CURSOR: strncpy(buff, "E_LAYER_CLIENT_CURSOR", buff_size); break;
case E_LAYER_POPUP: strncpy(buff, "E_LAYER_POPUP", buff_size); break;
case E_LAYER_EFFECT: strncpy(buff, "E_LAYER_EFFECT", buff_size); break;
case E_LAYER_MENU: strncpy(buff, "E_LAYER_MENU", buff_size); break;
# define E_COMP_TYPE (int) 0xE0b01003
-# define E_LAYER_COUNT 26
-# define E_CLIENT_LAYER_COUNT 17
+# define E_LAYER_COUNT 28
+# define E_CLIENT_LAYER_COUNT 19
typedef enum _E_Layer
{
E_LAYER_CLIENT_NOTIFICATION_TOP = 800,
E_LAYER_CLIENT_ALERT_LOW = 850,
E_LAYER_CLIENT_ALERT = 900,
+ E_LAYER_CLIENT_ALERT_HIGH = 950,
+ E_LAYER_CLIENT_CURSOR = 990,
E_LAYER_POPUP = 999, // popups
E_LAYER_EFFECT = 1999,
E_LAYER_MENU = 5000, // menus
unsigned int layer;
/* init layers */
- for (layer = e_comp_canvas_layer_map(E_LAYER_CLIENT_DESKTOP); layer <= e_comp_canvas_layer_map(E_LAYER_CLIENT_ALERT); layer++)
+ for (layer = e_comp_canvas_layer_map(E_LAYER_CLIENT_DESKTOP); layer <= e_comp_canvas_layer_map(E_LAYER_CLIENT_CURSOR); layer++)
{
Evas_Object *o2;
case 18: return E_LAYER_CLIENT_NOTIFICATION_TOP;
case 19: return E_LAYER_CLIENT_ALERT_LOW;
case 20: return E_LAYER_CLIENT_ALERT;
- case 21: return E_LAYER_POPUP;
- case 22: return E_LAYER_EFFECT;
- case 23: return E_LAYER_MENU;
- case 24: return E_LAYER_DESKLOCK;
- case 25: return E_LAYER_MAX;
+ case 21: return E_LAYER_CLIENT_ALERT_HIGH;
+ case 22: return E_LAYER_CLIENT_CURSOR;
+ case 23: return E_LAYER_POPUP;
+ case 24: return E_LAYER_EFFECT;
+ case 25: return E_LAYER_MENU;
+ case 26: return E_LAYER_DESKLOCK;
+ case 27: return E_LAYER_MAX;
default: break;
}
return -INT_MAX;
case E_LAYER_CLIENT_NOTIFICATION_TOP: return 18;
case E_LAYER_CLIENT_ALERT_LOW: return 19;
case E_LAYER_CLIENT_ALERT: return 20;
- case E_LAYER_POPUP: return 21;
- case E_LAYER_EFFECT: return 22;
- case E_LAYER_MENU: return 23;
- case E_LAYER_DESKLOCK: return 24;
- case E_LAYER_MAX: return 25;
+ case E_LAYER_CLIENT_ALERT_HIGH: return 21;
+ case E_LAYER_CLIENT_CURSOR: return 22;
+ case E_LAYER_POPUP: return 23;
+ case E_LAYER_EFFECT: return 24;
+ case E_LAYER_MENU: return 25;
+ case E_LAYER_DESKLOCK: return 26;
+ case E_LAYER_MAX: return 27;
default: break;
}
case E_LAYER_CLIENT_NOTIFICATION_TOP: return 14;
case E_LAYER_CLIENT_ALERT_LOW: return 15;
case E_LAYER_CLIENT_ALERT: return 16;
+ case E_LAYER_CLIENT_ALERT_HIGH: return 17;
+ case E_LAYER_CLIENT_CURSOR: return 18;
default: break;
}
return 9999;
LAYER_MAP(E_LAYER_CLIENT_NOTIFICATION_HIGH);
LAYER_MAP(E_LAYER_CLIENT_NOTIFICATION_TOP);
LAYER_MAP(E_LAYER_CLIENT_ALERT_LOW);
- return E_LAYER_CLIENT_ALERT;
+ LAYER_MAP(E_LAYER_CLIENT_ALERT);
+ LAYER_MAP(E_LAYER_CLIENT_ALERT_HIGH);
+ return E_LAYER_CLIENT_CURSOR;
}
E_API void
/* reached the top client layer somehow
* use top client object
*/
- o = e_comp->layers[e_comp_canvas_layer_map(E_LAYER_CLIENT_ALERT)].obj;
+ o = e_comp->layers[e_comp_canvas_layer_map(E_LAYER_CLIENT_CURSOR)].obj;
}
if (!o)
/* top client layer window hasn't been stacked yet. this probably shouldn't happen?
ec->comp_data->shell.configure = _e_comp_wl_input_pointer_configure;
ec->comp_data->shell.map = _e_comp_wl_input_pointer_map;
- evas_object_layer_set(ec->frame, E_LAYER_MAX - 1);
+ evas_object_layer_set(ec->frame, E_LAYER_CLIENT_CURSOR);
+ ec->layer = E_LAYER_CLIENT_CURSOR;
ec->is_cursor = EINA_TRUE;
}
if (!_check_layer_idx(layer_name, E_LAYER_CLIENT_NOTIFICATION_TOP)) return E_LAYER_CLIENT_NOTIFICATION_TOP;
if (!_check_layer_idx(layer_name, E_LAYER_CLIENT_ALERT_LOW)) return E_LAYER_CLIENT_ALERT_LOW;
if (!_check_layer_idx(layer_name, E_LAYER_CLIENT_ALERT)) return E_LAYER_CLIENT_ALERT;
+ if (!_check_layer_idx(layer_name, E_LAYER_CLIENT_ALERT_HIGH)) return E_LAYER_CLIENT_ALERT_HIGH;
+ if (!_check_layer_idx(layer_name, E_LAYER_CLIENT_CURSOR)) return E_LAYER_CLIENT_CURSOR;
if (!_check_layer_idx(layer_name, E_LAYER_POPUP)) return E_LAYER_POPUP;
if (!_check_layer_idx(layer_name, E_LAYER_EFFECT)) return E_LAYER_EFFECT;
if (!_check_layer_idx(layer_name, E_LAYER_MENU)) return E_LAYER_MENU;
else if (!e_util_strcmp("wl_pointer-cursor", role))
{
ELOGF("TZPOL", "Set CURSOR role", ec->pixmap, ec);
+ evas_object_layer_set(ec->frame, E_LAYER_CLIENT_CURSOR);
+ ec->layer = E_LAYER_CLIENT_CURSOR;
ec->is_cursor = EINA_TRUE;
}
}