diff --git a/data/themes/default_border.edc b/data/themes/default_border.edc index 5d606d864..4fa9658df 100644 --- a/data/themes/default_border.edc +++ b/data/themes/default_border.edc @@ -1144,6 +1144,12 @@ group { source: "title"; action: SIGNAL_EMIT "action" "menu"; } + program { + name: "menu_action_title4"; + signal: "mouse,clicked,2"; + source: "title"; + action: SIGNAL_EMIT "action" "lower"; + } program { name: "close_action"; signal: "mouse,clicked,1"; diff --git a/src/bin/e_border.c b/src/bin/e_border.c index e0c8decec..21c8a9583 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -1927,7 +1927,10 @@ _e_border_cb_signal_action(void *data, Evas_Object *obj, const char *emission, c evas_pointer_canvas_xy_get(bd->bg_evas , &x, &y); _e_border_menu_show(bd, x + bd->x, y + bd->y); } - + else if (!strcmp(source, "lower")) + { + e_container_window_lower(bd->zone->container, bd->win, bd->layer); + } } static void diff --git a/src/bin/e_container.c b/src/bin/e_container.c index 43774bee6..563697b2f 100644 --- a/src/bin/e_container.c +++ b/src/bin/e_container.c @@ -500,6 +500,25 @@ e_container_window_raise(E_Container *con, Ecore_X_Window win, int layer) { int pos; + if (layer == 0) pos = 1; + else if ((layer > 0) && (layer <= 50)) pos = 2; + else if ((layer > 50) && (layer <= 100)) pos = 3; + else if ((layer > 100) && (layer <= 150)) pos = 4; + else if ((layer > 150) && (layer <= 200)) pos = 5; + else pos = 6; + + ecore_x_window_configure(win, + ECORE_X_WINDOW_CONFIGURE_MASK_SIBLING | + ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE, + 0, 0, 0, 0, 0, + con->layers[pos], ECORE_X_WINDOW_STACK_BELOW); +} + +void +e_container_window_lower(E_Container *con, Ecore_X_Window win, int layer) +{ + int pos; + if (layer == 0) pos = 0; else if ((layer > 0) && (layer <= 50)) pos = 1; else if ((layer > 50) && (layer <= 100)) pos = 2; @@ -508,16 +527,10 @@ e_container_window_raise(E_Container *con, Ecore_X_Window win, int layer) else pos = 5; ecore_x_window_configure(win, - ECORE_X_WINDOW_CONFIGURE_MASK_SIBLING | - ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE, - 0, 0, 0, 0, 0, - con->layers[pos], ECORE_X_WINDOW_STACK_BELOW); -} - -void -e_container_window_lower(E_Container *con, Ecore_X_Window win, int layer) -{ - ecore_x_window_lower(win); + ECORE_X_WINDOW_CONFIGURE_MASK_SIBLING | + ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE, + 0, 0, 0, 0, 0, + con->layers[pos], ECORE_X_WINDOW_STACK_ABOVE); } /* local subsystem functions */