From 436323bf5927715e30d5d7fb83a0a46b0f99cdc0 Mon Sep 17 00:00:00 2001 From: Sebastian Dransfeld Date: Tue, 2 Oct 2012 08:54:35 +0000 Subject: [PATCH] e: cleanup layer handling It seems people put random numbers as layers, so it is better to define available layer numbers. This patch also puts popups below fullscreen windows, as it sucks to get popups during presentations. A better solution is maybe to put popups above fullscreen, but have a presentation mode to put fullscreen windows above popups? SVN revision: 77293 --- src/bin/e_border.c | 26 ++++++------ src/bin/e_border.h | 6 +-- src/bin/e_container.c | 9 ++--- src/bin/e_container.h | 18 ++++++++- src/bin/e_desklock.c | 5 +-- src/bin/e_dnd.c | 2 +- src/bin/e_dnd.h | 2 +- src/bin/e_gadcon_popup.c | 2 +- src/bin/e_grab_dialog.c | 3 +- src/bin/e_hints.c | 46 +++++++--------------- src/bin/e_int_border_menu.c | 21 +++------- src/bin/e_int_shelf_config.c | 6 +-- src/bin/e_moveresize.c | 2 +- src/bin/e_popup.c | 4 +- src/bin/e_popup.h | 4 +- src/bin/e_remember.c | 7 +--- src/bin/e_shelf.c | 4 +- src/bin/e_shelf.h | 6 +-- src/bin/e_win.c | 2 +- src/bin/e_win.h | 9 ++++- src/bin/e_zone.c | 10 ++--- src/bin/e_zone.h | 2 +- src/modules/conf_display/e_int_config_display.c | 2 +- .../conf_edgebindings/e_int_config_edgebindings.c | 6 +-- src/modules/everything/evry.c | 2 +- src/modules/gadman/e_mod_gadman.c | 2 +- src/modules/notification/e_mod_popup.c | 2 +- src/modules/pager/e_mod_main.c | 2 +- src/modules/syscon/e_syscon.c | 2 +- src/modules/tiling/e_mod_tiling.c | 21 +++++----- src/modules/winlist/e_winlist.c | 2 +- src/modules/wizard/e_wizard.c | 4 +- 32 files changed, 112 insertions(+), 129 deletions(-) diff --git a/src/bin/e_border.c b/src/bin/e_border.c index 724b7a5..68ab70e 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -1706,7 +1706,7 @@ e_border_resize_without_border(E_Border *bd, EAPI void e_border_layer_set(E_Border *bd, - int layer) + E_Layer layer) { int oldraise; @@ -1722,7 +1722,7 @@ e_border_layer_set(E_Border *bd, bd->saved.layer = layer; return; } - if (bd->layer != 300) + if (bd->layer != E_LAYER_FULLSCREEN) bd->saved.layer = bd->layer; bd->layer = layer; if (e_config->transient.layer) @@ -1743,6 +1743,12 @@ e_border_layer_set(E_Border *bd, } } e_border_raise(bd); + if (layer == E_LAYER_BELOW) + e_hints_window_stacking_set(bd, E_STACKING_BELOW); + else if (layer == E_LAYER_ABOVE) + e_hints_window_stacking_set(bd, E_STACKING_ABOVE); + else + e_hints_window_stacking_set(bd, E_STACKING_NONE); e_config->transient.raise = oldraise; } @@ -2965,7 +2971,7 @@ e_border_fullscreen(E_Border *bd, /* e_zone_fullscreen_set(bd->zone, 1); */ if (!e_config->allow_above_fullscreen) - e_border_layer_set(bd, 300); + e_border_layer_set(bd, E_LAYER_FULLSCREEN); if ((eina_list_count(bd->zone->container->zones) > 1) || (policy == E_FULLSCREEN_RESIZE) || (!ecore_x_randr_query())) @@ -3253,26 +3259,18 @@ EAPI void e_border_pinned_set(E_Border *bd, int set) { - int layer; - int stacking; + E_Layer layer; if (bd) { bd->borderless = set; bd->user_skip_winlist = set; if (set) - { - layer = 50; - stacking = E_STACKING_BELOW; - } + layer = E_LAYER_BELOW; else - { - layer = 100; - stacking = E_STACKING_NONE; - } + layer = E_LAYER_NORMAL; e_border_layer_set(bd, layer); - e_hints_window_stacking_set(bd, stacking); bd->client.border.changed = 1; bd->changed = 1; diff --git a/src/bin/e_border.h b/src/bin/e_border.h index a862440..4adde0e 100644 --- a/src/bin/e_border.h +++ b/src/bin/e_border.h @@ -549,7 +549,7 @@ struct _E_Border struct { int x, y, w, h; - unsigned int layer; + E_Layer layer; int zone; E_Maximize maximized; unsigned int event_mask; @@ -610,7 +610,7 @@ struct _E_Border int x, y; } drag; - unsigned int layer; + E_Layer layer; E_Action *cur_mouse_action; Ecore_Timer *raise_timer; Ecore_Poller *ping_poller; @@ -708,7 +708,7 @@ EAPI void e_border_resize(E_Border *bd, int w, int h); EAPI void e_border_resize_without_border(E_Border *bd, int w, int h); EAPI void e_border_move_resize(E_Border *bd, int x, int y, int w, int h); EAPI void e_border_move_resize_without_border(E_Border *bd, int x, int y, int w, int h); -EAPI void e_border_layer_set(E_Border *bd, int layer); +EAPI void e_border_layer_set(E_Border *bd, E_Layer layer); EAPI void e_border_raise(E_Border *bd); EAPI void e_border_lower(E_Border *bd); EAPI void e_border_stack_above(E_Border *bd, E_Border *above); diff --git a/src/bin/e_container.c b/src/bin/e_container.c index 80a8569..9deb5e4 100644 --- a/src/bin/e_container.c +++ b/src/bin/e_container.c @@ -565,12 +565,11 @@ e_container_borders_count(E_Container *con) } static int -_e_container_layer_map(int layer) +_e_container_layer_map(E_Layer layer) { int pos = 0; - if (layer < 0) layer = 0; - pos = 1 + (layer / 50); + pos = layer / 50; if (pos > 10) pos = 10; return pos; } @@ -604,7 +603,7 @@ e_container_border_remove(E_Border *bd) } EAPI void -e_container_window_raise(E_Container *con, Ecore_X_Window win, int layer) +e_container_window_raise(E_Container *con, Ecore_X_Window win, E_Layer layer) { int pos = _e_container_layer_map(layer); ecore_x_window_configure(win, @@ -615,7 +614,7 @@ e_container_window_raise(E_Container *con, Ecore_X_Window win, int layer) } EAPI void -e_container_window_lower(E_Container *con, Ecore_X_Window win, int layer) +e_container_window_lower(E_Container *con, Ecore_X_Window win, E_Layer layer) { int pos = _e_container_layer_map(layer); ecore_x_window_configure(win, diff --git a/src/bin/e_container.h b/src/bin/e_container.h index 25a9e46..2f71941 100644 --- a/src/bin/e_container.h +++ b/src/bin/e_container.h @@ -11,6 +11,20 @@ typedef enum _E_Container_Shape_Change E_CONTAINER_SHAPE_RECTS } E_Container_Shape_Change; +typedef enum _E_Layer +{ + E_LAYER_DESKTOP = 0, + E_LAYER_BELOW = 50, + E_LAYER_NORMAL = 100, + E_LAYER_ABOVE = 150, + E_LAYER_POPUP = 200, + E_LAYER_EDGE = 250, + E_LAYER_FULLSCREEN = 300, + E_LAYER_TOP = 350, + E_LAYER_DRAG = 400, + E_LAYER_PRIO = 500 +} E_Layer; + typedef struct _E_Container E_Container; typedef struct _E_Border_List E_Border_List; typedef struct _E_Container_Shape E_Container_Shape; @@ -128,8 +142,8 @@ EAPI void e_container_shape_solid_rect_get(E_Container_Shape *es, EAPI int e_container_borders_count(E_Container *con); EAPI void e_container_border_add(E_Border *bd); EAPI void e_container_border_remove(E_Border *bd); -EAPI void e_container_window_raise(E_Container *con, Ecore_X_Window win, int layer); -EAPI void e_container_window_lower(E_Container *con, Ecore_X_Window win, int layer); +EAPI void e_container_window_raise(E_Container *con, Ecore_X_Window win, E_Layer layer); +EAPI void e_container_window_lower(E_Container *con, Ecore_X_Window win, E_Layer layer); EAPI E_Border *e_container_border_raise(E_Border *bd); EAPI E_Border *e_container_border_lower(E_Border *bd); EAPI void e_container_border_stack_above(E_Border *bd, E_Border *above); diff --git a/src/bin/e_desklock.c b/src/bin/e_desklock.c index b1d7a90..aeadc1d 100644 --- a/src/bin/e_desklock.c +++ b/src/bin/e_desklock.c @@ -8,7 +8,6 @@ #define E_DESKLOCK_STATE_CHECKING 1 #define E_DESKLOCK_STATE_INVALID 2 -#define ELOCK_POPUP_LAYER 10000 #define PASSWD_LEN 256 /**************************** private data ******************************/ @@ -36,7 +35,7 @@ struct _E_Desklock_Data Ecore_X_Window elock_grab_break_wnd; char passwd[PASSWD_LEN]; int state; - Eina_Bool selected : 1; + Eina_Bool selected : 1; }; struct _E_Desklock_Run @@ -441,7 +440,7 @@ _e_desklock_popup_add(E_Zone *zone) evas_event_feed_mouse_move(edp->popup_wnd->evas, -1000000, -1000000, ecore_x_current_time_get(), NULL); - e_popup_layer_set(edp->popup_wnd, ELOCK_POPUP_LAYER); + e_popup_layer_set(edp->popup_wnd, E_LAYER_PRIO); ecore_evas_raise(edp->popup_wnd->ecore_evas); evas_event_freeze(edp->popup_wnd->evas); diff --git a/src/bin/e_dnd.c b/src/bin/e_dnd.c index d719c9f..f18397a 100644 --- a/src/bin/e_dnd.c +++ b/src/bin/e_dnd.c @@ -175,7 +175,7 @@ e_drag_new(E_Container *container, int x, int y, drag->y = y; drag->w = 24; drag->h = 24; - drag->layer = 250; + drag->layer = E_LAYER_DRAG; drag->container = container; e_object_ref(E_OBJECT(drag->container)); drag->ecore_evas = e_canvas_new(drag->container->win, diff --git a/src/bin/e_dnd.h b/src/bin/e_dnd.h index 95373b8..d858347 100644 --- a/src/bin/e_dnd.h +++ b/src/bin/e_dnd.h @@ -50,7 +50,7 @@ struct _E_Drag int shape_rects_num; Ecore_X_Rectangle *shape_rects; - unsigned int layer; + E_Layer layer; unsigned char visible : 1; unsigned char need_shape_export : 1; unsigned char xy_update : 1; diff --git a/src/bin/e_gadcon_popup.c b/src/bin/e_gadcon_popup.c index 7bd2af8..6569cdf 100644 --- a/src/bin/e_gadcon_popup.c +++ b/src/bin/e_gadcon_popup.c @@ -20,7 +20,7 @@ e_gadcon_popup_new(E_Gadcon_Client *gcc) if (!pop) return NULL; zone = e_gadcon_client_zone_get(gcc); pop->win = e_popup_new(zone, 0, 0, 0, 0); - e_popup_layer_set(pop->win, 350); + e_popup_layer_set(pop->win, E_LAYER_POPUP); o = edje_object_add(pop->win->evas); e_theme_edje_object_set(o, "base/theme/gadman", "e/gadman/popup"); diff --git a/src/bin/e_grab_dialog.c b/src/bin/e_grab_dialog.c index b3e5091..342c63d 100644 --- a/src/bin/e_grab_dialog.c +++ b/src/bin/e_grab_dialog.c @@ -161,8 +161,7 @@ e_grab_dialog_show(E_Win *parent, Eina_Bool is_mouse, Ecore_Event_Handler_Cb key eg->handlers = eina_list_append(eg->handlers, eh); } e_dialog_show(eg->dia); - e_border_layer_set(eg->dia->win->border, 150); - e_hints_window_stacking_set(eg->dia->win->border, E_STACKING_ABOVE); + e_border_layer_set(eg->dia->win->border, E_LAYER_ABOVE); if (parent) e_dialog_parent_set(eg->dia, parent); return eg; diff --git a/src/bin/e_hints.c b/src/bin/e_hints.c index bc837ed..975e24c 100644 --- a/src/bin/e_hints.c +++ b/src/bin/e_hints.c @@ -430,15 +430,15 @@ e_hints_window_init(E_Border *bd) if (!bd->lock_client_stacking) { if (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DESKTOP) - e_border_layer_set(bd, 0); + e_border_layer_set(bd, E_LAYER_DESKTOP); else if (bd->client.netwm.state.stacking == E_STACKING_BELOW) - e_border_layer_set(bd, 50); + e_border_layer_set(bd, E_LAYER_BELOW); else if (bd->client.netwm.state.stacking == E_STACKING_ABOVE) - e_border_layer_set(bd, 150); + e_border_layer_set(bd, E_LAYER_ABOVE); else if (bd->client.netwm.type == ECORE_X_WINDOW_TYPE_DOCK) - e_border_layer_set(bd, 150); + e_border_layer_set(bd, E_LAYER_ABOVE); else - e_border_layer_set(bd, 100); + e_border_layer_set(bd, E_LAYER_NORMAL); } else e_border_raise(bd); @@ -896,26 +896,18 @@ e_hints_window_state_update(E_Border *bd, switch (action) { case ECORE_X_WINDOW_STATE_ACTION_REMOVE: - e_border_layer_set(bd, 100); - e_hints_window_stacking_set(bd, E_STACKING_NONE); + e_border_layer_set(bd, E_LAYER_NORMAL); break; case ECORE_X_WINDOW_STATE_ACTION_ADD: - e_hints_window_stacking_set(bd, E_STACKING_ABOVE); - e_border_layer_set(bd, 150); + e_border_layer_set(bd, E_LAYER_ABOVE); break; case ECORE_X_WINDOW_STATE_ACTION_TOGGLE: - if (bd->layer == 150) - { - e_hints_window_stacking_set(bd, E_STACKING_NONE); - e_border_layer_set(bd, 100); - } + if (bd->layer == E_LAYER_ABOVE) + e_border_layer_set(bd, E_LAYER_NORMAL); else - { - e_hints_window_stacking_set(bd, E_STACKING_ABOVE); - e_border_layer_set(bd, 150); - } + e_border_layer_set(bd, E_LAYER_ABOVE); break; } break; @@ -927,26 +919,18 @@ e_hints_window_state_update(E_Border *bd, switch (action) { case ECORE_X_WINDOW_STATE_ACTION_REMOVE: - e_hints_window_stacking_set(bd, E_STACKING_NONE); - e_border_layer_set(bd, 100); + e_border_layer_set(bd, E_LAYER_NORMAL); break; case ECORE_X_WINDOW_STATE_ACTION_ADD: - e_hints_window_stacking_set(bd, E_STACKING_BELOW); - e_border_layer_set(bd, 50); + e_border_layer_set(bd, E_LAYER_BELOW); break; case ECORE_X_WINDOW_STATE_ACTION_TOGGLE: - if (bd->layer == 50) - { - e_hints_window_stacking_set(bd, E_STACKING_NONE); - e_border_layer_set(bd, 100); - } + if (bd->layer == E_LAYER_BELOW) + e_border_layer_set(bd, E_LAYER_NORMAL); else - { - e_hints_window_stacking_set(bd, E_STACKING_BELOW); - e_border_layer_set(bd, 50); - } + e_border_layer_set(bd, E_LAYER_BELOW); break; } break; diff --git a/src/bin/e_int_border_menu.c b/src/bin/e_int_border_menu.c index d25ece3..2f24bbe 100644 --- a/src/bin/e_int_border_menu.c +++ b/src/bin/e_int_border_menu.c @@ -789,11 +789,8 @@ _e_border_menu_cb_on_top(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi __UNU E_Border *bd; bd = data; - if (bd->layer != 150) - { - e_border_layer_set(bd, 150); - e_hints_window_stacking_set(bd, E_STACKING_ABOVE); - } + if (bd->layer != E_LAYER_ABOVE) + e_border_layer_set(bd, E_LAYER_ABOVE); } static void @@ -802,11 +799,8 @@ _e_border_menu_cb_below(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi __UNUS E_Border *bd; bd = data; - if (bd->layer != 50) - { - e_border_layer_set(bd, 50); - e_hints_window_stacking_set(bd, E_STACKING_BELOW); - } + if (bd->layer != E_LAYER_BELOW) + e_border_layer_set(bd, E_LAYER_BELOW); } static void @@ -815,11 +809,8 @@ _e_border_menu_cb_normal(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi __UNU E_Border *bd; bd = data; - if (bd->layer != 100) - { - e_border_layer_set(bd, 100); - e_hints_window_stacking_set(bd, E_STACKING_NONE); - } + if (bd->layer != E_LAYER_NORMAL) + e_border_layer_set(bd, E_LAYER_NORMAL); } static void diff --git a/src/bin/e_int_shelf_config.c b/src/bin/e_int_shelf_config.c index cd32dc7..856e111 100644 --- a/src/bin/e_int_shelf_config.c +++ b/src/bin/e_int_shelf_config.c @@ -86,7 +86,7 @@ _fill_data(E_Config_Dialog_Data *cfdata) cfdata->layer = 0; else if ((cfdata->escfg->popup) && (cfdata->escfg->layer == 0)) cfdata->layer = 1; - else if ((cfdata->escfg->popup) && (cfdata->escfg->layer == 200)) + else if ((cfdata->escfg->popup) && (cfdata->escfg->layer == E_LAYER_ABOVE)) cfdata->layer = 2; else cfdata->layer = 2; @@ -329,10 +329,10 @@ _basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) } else if (cfdata->layer == 2) { - if ((cfdata->escfg->popup != 1) || (cfdata->escfg->layer != 200)) + if ((cfdata->escfg->popup != 1) || (cfdata->escfg->layer != E_LAYER_ABOVE)) { cfdata->escfg->popup = 1; - cfdata->escfg->layer = 200; + cfdata->escfg->layer = E_LAYER_ABOVE; recreate = 1; } } diff --git a/src/bin/e_moveresize.c b/src/bin/e_moveresize.c index 7d71341..f27c75c 100644 --- a/src/bin/e_moveresize.c +++ b/src/bin/e_moveresize.c @@ -74,7 +74,7 @@ _e_resize_begin(void *data __UNUSED__, void *border) _disp_pop = e_popup_new(bd->zone, 0, 0, 1, 1); if (!_disp_pop) return; - e_popup_layer_set(_disp_pop, 255); + e_popup_layer_set(_disp_pop, E_LAYER_POPUP); _obj = edje_object_add(_disp_pop->evas); e_theme_edje_object_set(_obj, "base/theme/borders", "e/widgets/border/default/resize"); diff --git a/src/bin/e_popup.c b/src/bin/e_popup.c index 588a6d2..89b51d1 100644 --- a/src/bin/e_popup.c +++ b/src/bin/e_popup.c @@ -48,7 +48,7 @@ e_popup_new(E_Zone *zone, int x, int y, int w, int h) pop->y = y; pop->w = w; pop->h = h; - pop->layer = e_desklock_state_get() ? 200 : 250; + pop->layer = E_LAYER_POPUP; pop->ecore_evas = e_canvas_new(pop->zone->container->win, pop->zone->x + pop->x, pop->zone->y + pop->y, pop->w, pop->h, 1, 1, &(pop->evas_win)); @@ -219,7 +219,7 @@ e_popup_edje_bg_object_set(E_Popup *pop, Evas_Object *o) } EAPI void -e_popup_layer_set(E_Popup *pop, int layer) +e_popup_layer_set(E_Popup *pop, E_Layer layer) { E_OBJECT_CHECK(pop); E_OBJECT_TYPE_CHECK(pop, E_POPUP_TYPE); diff --git a/src/bin/e_popup.h b/src/bin/e_popup.h index b27181d..3a389a7 100644 --- a/src/bin/e_popup.h +++ b/src/bin/e_popup.h @@ -13,7 +13,7 @@ struct _E_Popup E_Object e_obj_inherit; int x, y, w, h, zx, zy; - int layer; + E_Layer layer; unsigned char visible : 1; unsigned char shaped : 1; unsigned char need_shape_export : 1; @@ -41,7 +41,7 @@ EAPI void e_popup_resize(E_Popup *pop, int w, int h); EAPI void e_popup_move_resize(E_Popup *pop, int x, int y, int w, int h); EAPI void e_popup_ignore_events_set(E_Popup *pop, int ignore); EAPI void e_popup_edje_bg_object_set(E_Popup *pop, Evas_Object *o); -EAPI void e_popup_layer_set(E_Popup *pop, int layer); +EAPI void e_popup_layer_set(E_Popup *pop, E_Layer layer); EAPI void e_popup_idler_before(void); EAPI E_Popup *e_popup_find_by_window(Ecore_X_Window win); diff --git a/src/bin/e_remember.c b/src/bin/e_remember.c index c85e1a6..d295db0 100644 --- a/src/bin/e_remember.c +++ b/src/bin/e_remember.c @@ -803,12 +803,7 @@ _e_remember_cb_hook_pre_post_fetch(void *data __UNUSED__, void *border) } if (rem->apply & E_REMEMBER_APPLY_LAYER) { - bd->layer = rem->prop.layer; - if (bd->layer == 100) - e_hints_window_stacking_set(bd, E_STACKING_NONE); - else if (bd->layer == 150) - e_hints_window_stacking_set(bd, E_STACKING_ABOVE); - e_container_border_raise(bd); + e_border_layer_set(bd, rem->prop.layer); } if (rem->apply & E_REMEMBER_APPLY_BORDER) { diff --git a/src/bin/e_shelf.c b/src/bin/e_shelf.c index a6c4428..4d7ae8c 100644 --- a/src/bin/e_shelf.c +++ b/src/bin/e_shelf.c @@ -190,7 +190,7 @@ e_shelf_zone_dummy_new(E_Zone *zone, Evas_Object *obj, int id) } EAPI E_Shelf * -e_shelf_zone_new(E_Zone *zone, const char *name, const char *style, int popup, int layer, int id) +e_shelf_zone_new(E_Zone *zone, const char *name, const char *style, int popup, E_Layer layer, int id) { E_Shelf *es; char buf[1024]; @@ -550,7 +550,7 @@ e_shelf_move_resize(E_Shelf *es, int x, int y, int w, int h) } EAPI void -e_shelf_layer_set(E_Shelf *es, int layer) +e_shelf_layer_set(E_Shelf *es, E_Layer layer) { E_OBJECT_CHECK(es); E_OBJECT_TYPE_CHECK(es, E_SHELF_TYPE); diff --git a/src/bin/e_shelf.h b/src/bin/e_shelf.h index 2c69e6b..2d7b9b0 100644 --- a/src/bin/e_shelf.h +++ b/src/bin/e_shelf.h @@ -14,7 +14,7 @@ struct _E_Shelf E_Object e_obj_inherit; int id; int x, y, w, h; - int layer; + E_Layer layer; E_Popup *popup; /* NULL if its within an existing canvas */ E_Zone *zone; Evas_Object *o_base; @@ -68,7 +68,7 @@ EAPI void e_shelf_config_update(void); EAPI E_Entry_Dialog *e_shelf_new_dialog(E_Zone *zone); EAPI Eina_List *e_shelf_list(void); EAPI Eina_List *e_shelf_list_all(void); // includes dummy shelves -EAPI E_Shelf *e_shelf_zone_new(E_Zone *zone, const char *name, const char *style, int popup, int layer, int id); +EAPI E_Shelf *e_shelf_zone_new(E_Zone *zone, const char *name, const char *style, int popup, E_Layer layer, int id); EAPI E_Shelf *e_shelf_zone_dummy_new(E_Zone *zone, Evas_Object *obj, int id); EAPI void e_shelf_zone_move_resize_handle(E_Zone *zone); EAPI void e_shelf_populate(E_Shelf *es); @@ -80,7 +80,7 @@ EAPI void e_shelf_urgent_show(E_Shelf *es); EAPI void e_shelf_move(E_Shelf *es, int x, int y); EAPI void e_shelf_resize(E_Shelf *es, int w, int h); EAPI void e_shelf_move_resize(E_Shelf *es, int x, int y, int w, int h); -EAPI void e_shelf_layer_set(E_Shelf *es, int layer); +EAPI void e_shelf_layer_set(E_Shelf *es, E_Layer layer); EAPI void e_shelf_save(E_Shelf *es); EAPI void e_shelf_unsave(E_Shelf *es); EAPI void e_shelf_orient(E_Shelf *es, E_Gadcon_Orient orient); diff --git a/src/bin/e_win.c b/src/bin/e_win.c index ec69c62..717cc07 100644 --- a/src/bin/e_win.c +++ b/src/bin/e_win.c @@ -434,7 +434,7 @@ e_win_borderless_set(E_Win *win, int borderless) } EAPI void -e_win_layer_set(E_Win *win, int layer) +e_win_layer_set(E_Win *win, E_Win_Layer layer) { E_OBJECT_CHECK(win); E_OBJECT_TYPE_CHECK(win, E_WIN_TYPE); diff --git a/src/bin/e_win.h b/src/bin/e_win.h index c5ab63b..8a4f802 100644 --- a/src/bin/e_win.h +++ b/src/bin/e_win.h @@ -1,5 +1,12 @@ #ifdef E_TYPEDEFS +typedef enum _E_Win_Layer +{ + E_WIN_LAYER_BELOW = 3, + E_WIN_LAYER_NORMAL = 4, + E_WIN_LAYER_ABOVE = 5 +} E_Win_Layer; + typedef struct _E_Win E_Win; #else @@ -51,7 +58,7 @@ EAPI Evas *e_win_evas_get (E_Win *win); EAPI void e_win_shaped_set (E_Win *win, int shaped); EAPI void e_win_avoid_damage_set (E_Win *win, int avoid); EAPI void e_win_borderless_set (E_Win *win, int borderless); -EAPI void e_win_layer_set (E_Win *win, int layer); +EAPI void e_win_layer_set (E_Win *win, E_Win_Layer layer); EAPI void e_win_sticky_set (E_Win *win, int sticky); EAPI void e_win_move_callback_set (E_Win *win, void (*func) (E_Win *win)); EAPI void e_win_resize_callback_set(E_Win *win, void (*func) (E_Win *win)); diff --git a/src/bin/e_zone.c b/src/bin/e_zone.c index 3bdbdcf..be953d3 100644 --- a/src/bin/e_zone.c +++ b/src/bin/e_zone.c @@ -391,7 +391,7 @@ e_zone_fullscreen_set(E_Zone *zone, { _e_zone_black_get(zone); ecore_evas_show(zone->black_ecore_evas); - e_container_window_raise(zone->container, zone->black_win, 150); + e_container_window_raise(zone->container, zone->black_win, E_LAYER_POPUP); zone->fullscreen = 1; } else if ((zone->fullscreen) && (!on)) @@ -1125,9 +1125,9 @@ e_zone_edge_new(E_Zone_Edge edge) break; } if (e_config->fullscreen_flip) - e_zone_edge_win_layer_set(zone, 350); + e_zone_edge_win_layer_set(zone, E_LAYER_TOP); else - e_zone_edge_win_layer_set(zone, 200); + e_zone_edge_win_layer_set(zone, E_LAYER_EDGE); } } } @@ -1207,8 +1207,8 @@ e_zone_edge_free(E_Zone_Edge edge) } EAPI void -e_zone_edge_win_layer_set(E_Zone *zone, - int layer) +e_zone_edge_win_layer_set(E_Zone *zone, + E_Layer layer) { if (zone->corner.left_bottom) e_container_window_raise(zone->container, zone->corner.left_bottom, layer); if (zone->corner.left_top) e_container_window_raise(zone->container, zone->corner.left_top, layer); diff --git a/src/bin/e_zone.h b/src/bin/e_zone.h index 62e0437..70da4d3 100644 --- a/src/bin/e_zone.h +++ b/src/bin/e_zone.h @@ -152,7 +152,7 @@ EAPI void e_zone_edge_enable(void); EAPI void e_zone_edge_disable(void); EAPI void e_zone_edges_desk_flip_capable(E_Zone *zone, Eina_Bool l, Eina_Bool r, Eina_Bool t, Eina_Bool b); EAPI Eina_Bool e_zone_exists_direction(E_Zone *zone, E_Zone_Edge edge); -EAPI void e_zone_edge_win_layer_set(E_Zone *zone, int layer); +EAPI void e_zone_edge_win_layer_set(E_Zone *zone, E_Layer layer); EAPI void e_zone_useful_geometry_dirty(E_Zone *zone); EAPI void e_zone_useful_geometry_get(E_Zone *zone, int *x, int *y, int *w, int *h); diff --git a/src/modules/conf_display/e_int_config_display.c b/src/modules/conf_display/e_int_config_display.c index 6c03563..06baf7a 100644 --- a/src/modules/conf_display/e_int_config_display.c +++ b/src/modules/conf_display/e_int_config_display.c @@ -197,7 +197,7 @@ _surebox_new(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) e_dialog_button_focus_num(sb->dia, 1); e_win_centered_set(sb->dia->win, 1); e_win_borderless_set(sb->dia->win, 1); - e_win_layer_set(sb->dia->win, 6); + e_win_layer_set(sb->dia->win, E_WIN_LAYER_ABOVE); e_win_sticky_set(sb->dia->win, 1); e_dialog_show(sb->dia); e_object_ref(E_OBJECT(cfd)); diff --git a/src/modules/conf_edgebindings/e_int_config_edgebindings.c b/src/modules/conf_edgebindings/e_int_config_edgebindings.c index 8b38f75..befd34e 100644 --- a/src/modules/conf_edgebindings/e_int_config_edgebindings.c +++ b/src/modules/conf_edgebindings/e_int_config_edgebindings.c @@ -190,7 +190,7 @@ _basic_apply_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) E_Container *con; E_Zone *zone; E_Config_Binding_Edge *bi, *bi2; - int layer; + E_Layer layer; _auto_apply_changes(cfdata); @@ -225,9 +225,9 @@ _basic_apply_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) if (cfdata->fullscreen_flip != e_config->fullscreen_flip) { if (cfdata->fullscreen_flip) - layer = 350; + layer = E_LAYER_TOP; else - layer = 200; + layer = E_LAYER_EDGE; EINA_LIST_FOREACH(e_manager_list(), l, man) { diff --git a/src/modules/everything/evry.c b/src/modules/everything/evry.c index 3e170ad..aefedde 100644 --- a/src/modules/everything/evry.c +++ b/src/modules/everything/evry.c @@ -165,7 +165,7 @@ evry_show(E_Zone *zone, E_Zone_Edge edge, const char *params, Eina_Bool popup) if (popup) { - e_win_layer_set(win->ewin, 350); + e_win_layer_set(win->ewin, E_WIN_LAYER_ABOVE); ecore_x_netwm_window_type_set(win->ewin->evas_win, ECORE_X_WINDOW_TYPE_UTILITY); diff --git a/src/modules/gadman/e_mod_gadman.c b/src/modules/gadman/e_mod_gadman.c index 0ea3aff..905fa0d 100644 --- a/src/modules/gadman/e_mod_gadman.c +++ b/src/modules/gadman/e_mod_gadman.c @@ -754,7 +754,7 @@ _gadman_gadcon_new(const char *name, Gadman_Layer_Type layer, E_Zone *zone, E_Ga ecore_evas_shaped_set(Man->top_ee, 1); e_canvas_add(Man->top_ee); //?? - e_container_window_raise(Man->container, Man->top_win, 250); + e_container_window_raise(Man->container, Man->top_win, E_LAYER_POPUP); ecore_evas_move_resize(Man->top_ee, 0, 0, Man->width, Man->height); ecore_evas_hide(Man->top_ee); diff --git a/src/modules/notification/e_mod_popup.c b/src/modules/notification/e_mod_popup.c index ef9af27..3d96a5d 100644 --- a/src/modules/notification/e_mod_popup.c +++ b/src/modules/notification/e_mod_popup.c @@ -316,7 +316,7 @@ _notification_popup_new(E_Notification *n) _notification_popup_refresh(popup); next_pos = _notification_popup_place(popup, next_pos); e_popup_show(popup->win); - e_popup_layer_set(popup->win, 999); + e_popup_layer_set(popup->win, E_LAYER_POPUP); popups_displayed++; return popup; diff --git a/src/modules/pager/e_mod_main.c b/src/modules/pager/e_mod_main.c index a9c249c..ef4a498 100644 --- a/src/modules/pager/e_mod_main.c +++ b/src/modules/pager/e_mod_main.c @@ -770,7 +770,7 @@ _pager_popup_new(E_Zone *zone, int keyaction) E_FREE(pp); return NULL; } - e_popup_layer_set(pp->popup, 350); + e_popup_layer_set(pp->popup, E_LAYER_POPUP); pp->pager = _pager_new(pp->popup->evas, zone, NULL); pp->pager->popup = pp; diff --git a/src/modules/syscon/e_syscon.c b/src/modules/syscon/e_syscon.c index 520d525..01b01f5 100644 --- a/src/modules/syscon/e_syscon.c +++ b/src/modules/syscon/e_syscon.c @@ -97,7 +97,7 @@ e_syscon_show(E_Zone *zone, const char *defact) return 0; } evas_event_freeze(popup->evas); - e_popup_layer_set(popup, 500); + e_popup_layer_set(popup, E_LAYER_POPUP); handlers = eina_list_append (handlers, ecore_event_handler_add diff --git a/src/modules/tiling/e_mod_tiling.c b/src/modules/tiling/e_mod_tiling.c index 567cbbb..2baf4c8 100644 --- a/src/modules/tiling/e_mod_tiling.c +++ b/src/modules/tiling/e_mod_tiling.c @@ -4,7 +4,6 @@ #define TILING_OVERLAY_TIMEOUT 5.0 #define TILING_RESIZE_STEP 5 -#define TILING_POPUP_LAYER 101 #define TILING_WRAP_SPEED 0.1 typedef enum { @@ -378,7 +377,6 @@ _restore_border(E_Border *bd) extra->orig.geom.w, extra->orig.geom.h); e_border_layer_set(bd, extra->orig.layer); - e_hints_window_stacking_set(bd, extra->orig.stacking); if (extra->orig.maximized) { e_border_maximize(bd, extra->orig.maximized); bd->maximized = extra->orig.maximized; @@ -629,7 +627,7 @@ _do_overlay(E_Border *focused_bd, if (!extra->overlay.popup) continue; - e_popup_layer_set(extra->overlay.popup, TILING_POPUP_LAYER); + e_popup_layer_set(extra->overlay.popup, E_LAYER_NORMAL); extra->overlay.obj = edje_object_add(extra->overlay.popup->evas); e_theme_edje_object_set(extra->overlay.obj, @@ -1243,8 +1241,7 @@ _add_border(E_Border *bd) extra = _get_or_create_border_extra(bd); /* Stack tiled window below so that winlist doesn't mix up stacking */ - e_border_layer_set(bd, 75); - e_hints_window_stacking_set(bd, E_STACKING_BELOW); + e_border_layer_set(bd, E_LAYER_BELOW); DBG("adding %p", bd); @@ -1807,7 +1804,7 @@ _check_moving_anims(const E_Border *bd, const Border_Extra *extra, int stack) if (!overlay->popup) return; - e_popup_layer_set(overlay->popup, TILING_POPUP_LAYER); + e_popup_layer_set(overlay->popup, E_LAYER_NORMAL); overlay->obj = edje_object_add(overlay->popup->evas); _theme_edje_object_set(overlay->obj, "modules/tiling/move/left"); @@ -1859,7 +1856,7 @@ _check_moving_anims(const E_Border *bd, const Border_Extra *extra, int stack) if (!overlay->popup) return; - e_popup_layer_set(overlay->popup, TILING_POPUP_LAYER); + e_popup_layer_set(overlay->popup, E_LAYER_NORMAL); overlay->obj = edje_object_add(overlay->popup->evas); _theme_edje_object_set(overlay->obj, "modules/tiling/move/right"); @@ -1908,7 +1905,7 @@ _check_moving_anims(const E_Border *bd, const Border_Extra *extra, int stack) if (!overlay->popup) return; - e_popup_layer_set(overlay->popup, TILING_POPUP_LAYER); + e_popup_layer_set(overlay->popup, E_LAYER_NORMAL); overlay->obj = edje_object_add(overlay->popup->evas); _theme_edje_object_set(overlay->obj, "modules/tiling/move/up"); edje_object_size_min_calc(overlay->obj, &ew, &eh); @@ -1959,7 +1956,7 @@ _check_moving_anims(const E_Border *bd, const Border_Extra *extra, int stack) if (!overlay->popup) return; - e_popup_layer_set(overlay->popup, TILING_POPUP_LAYER); + e_popup_layer_set(overlay->popup, E_LAYER_NORMAL); overlay->obj = edje_object_add(overlay->popup->evas); _theme_edje_object_set(overlay->obj, "modules/tiling/move/down"); @@ -2986,7 +2983,7 @@ _transition_overlay_key_down(void *data __UNUSED__, if (!trov->overlay.popup) { trov->overlay.popup = e_popup_new(_G.tinfo->desk->zone, 0, 0, 1, 1); - e_popup_layer_set(trov->overlay.popup, TILING_POPUP_LAYER); + e_popup_layer_set(trov->overlay.popup, E_LAYER_NORMAL); } if (!trov->overlay.obj) { trov->overlay.obj = @@ -3108,7 +3105,7 @@ _do_transition_overlay(void) if (!trov->overlay.popup) continue; - e_popup_layer_set(trov->overlay.popup, TILING_POPUP_LAYER); + e_popup_layer_set(trov->overlay.popup, E_LAYER_NORMAL); trov->overlay.obj = edje_object_add(trov->overlay.popup->evas); e_theme_edje_object_set(trov->overlay.obj, "base/theme/borders", @@ -3179,7 +3176,7 @@ _do_transition_overlay(void) if (!trov->overlay.popup) continue; - e_popup_layer_set(trov->overlay.popup, TILING_POPUP_LAYER); + e_popup_layer_set(trov->overlay.popup, E_LAYER_NORMAL); trov->overlay.obj = edje_object_add(trov->overlay.popup->evas); e_theme_edje_object_set(trov->overlay.obj, "base/theme/borders", diff --git a/src/modules/winlist/e_winlist.c b/src/modules/winlist/e_winlist.c index 4341788..a9492e5 100644 --- a/src/modules/winlist/e_winlist.c +++ b/src/modules/winlist/e_winlist.c @@ -150,7 +150,7 @@ e_winlist_show(E_Zone *zone, E_Winlist_Filter filter) evas_event_feed_mouse_move(_winlist->evas, -1000000, -1000000, ecore_x_current_time_get(), NULL); - e_popup_layer_set(_winlist, 350); + e_popup_layer_set(_winlist, E_LAYER_POPUP); evas_event_freeze(_winlist->evas); o = edje_object_add(_winlist->evas); _bg_object = o; diff --git a/src/modules/wizard/e_wizard.c b/src/modules/wizard/e_wizard.c index 972a7dd..59afbf4 100644 --- a/src/modules/wizard/e_wizard.c +++ b/src/modules/wizard/e_wizard.c @@ -247,7 +247,7 @@ _e_wizard_main_new(E_Zone *zone) Eina_Bool kg; popup = e_popup_new(zone, 0, 0, zone->w, zone->h); - e_popup_layer_set(popup, 350); + e_popup_layer_set(popup, E_LAYER_TOP); o = edje_object_add(popup->evas); e_theme_edje_object_set(o, "base/theme/wizard", "e/wizard/main"); @@ -301,7 +301,7 @@ _e_wizard_extra_new(E_Zone *zone) Evas_Object *o; popup = e_popup_new(zone, 0, 0, zone->w, zone->h); - e_popup_layer_set(popup, 350); + e_popup_layer_set(popup, E_LAYER_TOP); o = edje_object_add(popup->evas); e_theme_edje_object_set(o, "base/theme/wizard", "e/wizard/extra"); evas_object_move(o, 0, 0); -- 2.7.4