evas_object_raise(ec->frame);
if (ec->zone != current_zone)
e_util_pointer_center(ec);
- evas_object_focus_set(ec->frame, 1);
+ ELOGF("FOCUS", "focus set | window_jump_to", ec);
+ e_client_frame_focus_set(ec, EINA_TRUE);
return 1;
}
return 0;
// e_client_desk_set(ec, e_desk_current_get(zone));
if (max) e_client_maximize(ec, max);
if (fullscreen) e_client_fullscreen(ec, fs);
- evas_object_focus_set(ec->frame, 1);
+ ELOGF("FOCUS", "focus set | window_zone_move_by_action", ec);
+ e_client_frame_focus_set(ec, EINA_TRUE);
}
/***************************************************************************/
if (!warp_client->lock_focus_out)
{
- ELOGF("FOCUS", "focus set | pointer_warp_to_center", warp_client);
- evas_object_focus_set(warp_client->frame, 1);
+ ELOGF("FOCUS", "focus set | pointer_warp_to_center", warp_client);
+ e_client_frame_focus_set(warp_client, EINA_TRUE);
e_client_focus_latest_set(warp_client);
}
warp_client = NULL;
{
e_client_focus_defer_unset(ec);
ELOGF("FOCUS", "focus unset | revert_focus", ec);
- evas_object_focus_set(ec->frame, EINA_FALSE);
+ e_client_frame_focus_set(ec, EINA_FALSE);
}
if (!focus_ec->iconic || focus_ec->exp_iconify.buffer_flush)
{
- ELOGF("FOCUS", "focus set | revert_focus", focus_ec);
- evas_object_focus_set(focus_ec->frame, EINA_TRUE);
+ ELOGF("FOCUS", "focus set | revert_focus", focus_ec);
+ e_client_frame_focus_set(focus_ec, EINA_TRUE);
}
}
}
evas_object_raise(ec->frame);
if (!ec->lock_focus_out)
{
- ELOGF("FOCUS", "focus set | reset_lost_window", ec);
- evas_object_focus_set(ec->frame, 1);
+ ELOGF("FOCUS", "focus set | reset_lost_window", ec);
+ e_client_frame_focus_set(ec, EINA_TRUE);
}
e_client_pointer_warp_to_center(ec);
ec->cur_mouse_action->func.go(E_OBJECT(ec), NULL);
if (e_config->border_raise_on_mouse_action)
evas_object_raise(ec->frame);
- ELOGF("FOCUS", "focus set | client eval", ec);
- evas_object_focus_set(ec->frame, 1);
+ ELOGF("FOCUS", "focus set | client eval", ec);
+ e_client_frame_focus_set(ec, EINA_TRUE);
}
ec->changes.visible = 0;
_e_client_event_show(ec);
{
e_client_focus_defer_unset(focused);
ELOGF("FOCUS", "focus unset | focus calculate", focused);
- evas_object_focus_set(focused->frame, EINA_FALSE);
+ e_client_frame_focus_set(focused, EINA_FALSE);
}
}
{
if (defered_focus_ec != focused)
{
- ELOGF("FOCUS", "focus set | defer_focus", defered_focus_ec);
+ ELOGF("FOCUS", "focus set | focus calculate (defer_focus)", defered_focus_ec);
if (focused)
e_client_focus_defer_unset(focused);
- evas_object_focus_set(defered_focus_ec->frame, EINA_TRUE);
+ e_client_frame_focus_set(defered_focus_ec, EINA_TRUE);
}
e_client_focus_defer_unset(defered_focus_ec);
{
if (reverted_focus_ec != focused)
{
- ELOGF("FOCUS", "focus set | revert_focus", reverted_focus_ec);
+ ELOGF("FOCUS", "focus set | focus calculate (revert_focus)", reverted_focus_ec);
if (focused)
e_client_focus_defer_unset(focused);
- evas_object_focus_set(reverted_focus_ec->frame, EINA_TRUE);
+ e_client_frame_focus_set(reverted_focus_ec, EINA_TRUE);
}
e_client_focus_defer_unset(reverted_focus_ec);
if (ec->desk && ec->desk->visible && (!ec->iconic))
{
if (e_comp->input_key_grabs || e_comp->input_mouse_grabs) break;
- ELOGF("FOCUS", "focus set | refocus", ec);
- evas_object_focus_set(ec->frame, 1);
+ ELOGF("FOCUS", "focus set | refocus", ec);
+ e_client_frame_focus_set(ec, EINA_TRUE);
break;
}
}
if (ec == focused) return;
TRACE_DS_BEGIN(CLIENT:FOCUS SET WITH POINTER);
- ELOGF("FOCUS", "focus set | focus with pointer", ec);
- evas_object_focus_set(ec->frame, 1);
+ ELOGF("FOCUS", "focus set | focus with pointer", ec);
+ e_client_frame_focus_set(ec, EINA_TRUE);
if (e_config->focus_policy == E_FOCUS_CLICK)
{
}
else
{
- ELOGF("FOCUS", "focus set | client activate", ec);
- evas_object_focus_set(focus_ec->frame, 1);
+ ELOGF("FOCUS", "focus set | client activate", focus_ec);
+ e_client_frame_focus_set(focus_ec, EINA_TRUE);
}
}
else
#if 0 // focus should be set to the top window not uniconify window
if (ec->pixmap && e_pixmap_usable_get(ec->pixmap))
- evas_object_focus_set(ec->frame, 1);
+ e_client_frame_focus_set(ec, EINA_TRUE);
#endif
_e_client_event_simple(ec, E_EVENT_CLIENT_UNICONIFY);
ELOGF("POSSIZE", "pending geometry has flushed", ec);
}
}
+
+E_API void e_client_frame_focus_set(E_Client *ec, Eina_Bool focus)
+{
+ if (!ec) return;
+ evas_object_focus_set(ec->frame, focus);
+}
EINTERN void e_client_pending_geometry_flush(E_Client *ec);
EINTERN Eina_Bool e_client_pending_geometry_has(E_Client *ec);
+E_API void e_client_frame_focus_set(E_Client *ec, Eina_Bool focus);
+
/**
* Move window to coordinates that do not account client decorations yet.
*
{
if (e_client_focused_get() == ec)
e_client_focused_set(NULL);
+
+ ELOGF("FOCUS", "FOCUS UNSET | evas_object(%p) (frame:%p)", ec, obj, ec->frame);
evas_object_focus_set(obj, focus);
}
return;
{
if (ec->focused)
{
+ ELOGF("FOCUS", "FOCUS SET | evas_object(%p) (frame:%p)", ec, obj, ec->frame);
evas_object_focus_set(obj, focus);
return;
}
if ((ec->modal) && (ec->modal != ec) &&
(ec->modal->visible) && (!e_object_is_del(E_OBJECT(ec->modal))))
{
- evas_object_focus_set(ec->modal->frame, focus);
+ ELOGF("FOCUS", "focus set | intercept focus to modal", ec->modal);
+ e_client_frame_focus_set(ec->modal, focus);
return;
}
else if ((ec->leader) && (ec->leader->modal) &&
(ec->leader->modal != ec) && ec->leader->modal->visible &&
(!e_object_is_del(E_OBJECT(ec->leader->modal))))
{
- evas_object_focus_set(ec->leader->modal->frame, focus);
+ ELOGF("FOCUS", "focus set | intercept focus to leader->modal", ec->leader->modal);
+ e_client_frame_focus_set(ec->leader->modal, focus);
return;
}
if (!cw->visible)
if (e_client_focused_get() == ec)
e_client_focused_set(NULL);
}
+
+ if (focus)
+ ELOGF("FOCUS", "FOCUS SET | evas_object(%p) (frame:%p)", ec, obj, ec->frame);
+ else
+ ELOGF("FOCUS", "FOCUS UNSET | evas_object(%p) (frame:%p)", ec, obj, ec->frame);
+
evas_object_focus_set(obj, focus);
}
if (cw->ec->focused)
{
ELOGF("FOCUS", "focus unset | smart_hide", cw->ec);
- evas_object_focus_set(cw->ec->frame, 0);
+ e_client_frame_focus_set(cw->ec, EINA_FALSE);
e_client_focus_defer_unset(cw->ec);
}
e_comp_render_queue(); //force nocomp recheck
if (focus_ec)
{
ELOGF("FOCUS", "focus unset | last_focused_focus", focus_ec);
- evas_object_focus_set(focus_ec->frame, 0);
+ e_client_frame_focus_set(focus_ec, EINA_FALSE);
}
return NULL;
if (e_client_util_ignored_get(ec)) continue;
if (!e_client_util_desk_visible(ec, desk)) continue;
if (ec->iconic) continue;
- ELOGF("FOCUS", "focus set | desk flip end", ec);
- evas_object_focus_set(ec->frame, 1);
+ ELOGF("FOCUS", "focus set | desk flip end", ec);
+ e_client_frame_focus_set(ec, EINA_TRUE);
if (e_config->raise_on_revert_focus)
evas_object_raise(ec->frame);
return;
if ((e_config->focus_policy == E_FOCUS_MOUSE) ||
(e_config->focus_policy == E_FOCUS_SLOPPY))
{
- ELOGF("FOCUS", "focus set | moues in", ec);
- evas_object_focus_set(ec->frame, 1);
+ ELOGF("FOCUS", "focus set | mouse in", ec);
+ e_client_frame_focus_set(ec, EINA_TRUE);
}
if (e_config->use_auto_raise)
{
{
if (ec->focused)
{
- ELOGF("FOCUS", "focus unset | moues out", ec);
- evas_object_focus_set(ec->frame, 0);
+ ELOGF("FOCUS", "focus unset | mouse out", ec);
+ e_client_frame_focus_set(ec, EINA_FALSE);
}
}
}
if (e_client_focus_policy_click(ec) ||
e_config->always_click_to_focus)
{
- ELOGF("FOCUS", "focus set | moues down", ec);
- evas_object_focus_set(ec->frame, 1);
+ ELOGF("FOCUS", "focus set | mouse down", ec);
+ e_client_frame_focus_set(ec, EINA_TRUE);
if (ec->floating)
evas_object_raise(ec->frame);
new_focus = e_client_transient_child_top_get(ec->parent, EINA_TRUE);
if (new_focus)
{
- ELOGF("FOCUS", "focus set | tranient_for fetch", new_focus);
- evas_object_focus_set(new_focus->frame, 1);
+ ELOGF("FOCUS", "focus set | tranient_for fetch", new_focus);
+ e_client_frame_focus_set(new_focus, EINA_TRUE);
}
}
}