}
-static void
-_e_client_reset_lost_window(E_Client *ec)
-{
- E_OBJECT_CHECK(ec);
-
- if (ec->during_lost) return;
- ec->during_lost = EINA_TRUE;
-
- if (ec->iconic) e_client_uniconify(ec);
- if (!ec->moving) e_comp_object_util_center(ec->frame);
-
- e_client_raise(ec);
- if (!ec->lock_focus_out)
- {
- if (e_config->focus_policy_ext != E_FOCUS_EXT_TOP_STACK)
- {
- ELOGF("FOCUS", "focus set | reset_lost_window", ec);
- e_client_frame_focus_set(ec, EINA_TRUE);
- }
- }
-
- e_client_pointer_warp_to_center(ec);
- ec->during_lost = EINA_FALSE;
-}
-
-static void
-_e_client_move_lost_window_to_center(E_Client *ec)
-{
- int loss_overlap = 5;
- int zw, zh, zx, zy;
-
- if (ec->during_lost) return;
- if (!ec->zone) return;
-
- _e_client_zones_layout_calc(ec, &zx, &zy, &zw, &zh);
-
- if (!E_INTERSECTS(zx + loss_overlap,
- zy + loss_overlap,
- zw - (2 * loss_overlap),
- zh - (2 * loss_overlap),
- ec->x, ec->y, ec->w, ec->h))
- {
- _e_client_reset_lost_window(ec);
- }
-}
-
////////////////////////////////////////////////
static void
_e_client_zone_update(E_Client *ec)
evas_object_show(ec->frame);
ec->changes.visible = !evas_object_visible_get(ec->frame);
}
-
- if ((!ec->new_client) && (!e_client_util_ignored_get(ec)) &&
- (!E_INSIDE(ec->x, ec->y, 0, 0, e_comp->w - 5, e_comp->h - 5)) &&
- (!E_INSIDE(ec->x, ec->y, 0 - ec->w + 5, 0 - ec->h + 5, e_comp->w - 5, e_comp->h - 5))
- )
- {
- if (e_config->screen_limits != E_CLIENT_OFFSCREEN_LIMIT_ALLOW_FULL)
- _e_client_move_lost_window_to_center(ec);
- }
}
// pass 3 - hide windows needing hide and eval (main eval)