forked from enlightenment/enlightenment
don't recalc winlist on client add event if client is not added to winlist
This commit is contained in:
parent
a11e8d5f2e
commit
4e947b00bc
|
@ -14,7 +14,7 @@ struct _E_Winlist_Win
|
||||||
};
|
};
|
||||||
|
|
||||||
static void _e_winlist_size_adjust(void);
|
static void _e_winlist_size_adjust(void);
|
||||||
static void _e_winlist_client_add(E_Client *ec, E_Zone *zone, E_Desk *desk);
|
static Eina_Bool _e_winlist_client_add(E_Client *ec, E_Zone *zone, E_Desk *desk);
|
||||||
static void _e_winlist_client_del(E_Client *ec);
|
static void _e_winlist_client_del(E_Client *ec);
|
||||||
static void _e_winlist_activate_nth(int n);
|
static void _e_winlist_activate_nth(int n);
|
||||||
static void _e_winlist_activate(void);
|
static void _e_winlist_activate(void);
|
||||||
|
@ -775,7 +775,7 @@ _e_winlist_size_adjust(void)
|
||||||
evas_object_geometry_set(_winlist, x, y, w, h);
|
evas_object_geometry_set(_winlist, x, y, w, h);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static Eina_Bool
|
||||||
_e_winlist_client_add(E_Client *ec, E_Zone *zone, E_Desk *desk)
|
_e_winlist_client_add(E_Client *ec, E_Zone *zone, E_Desk *desk)
|
||||||
{
|
{
|
||||||
E_Winlist_Win *ww;
|
E_Winlist_Win *ww;
|
||||||
|
@ -783,23 +783,23 @@ _e_winlist_client_add(E_Client *ec, E_Zone *zone, E_Desk *desk)
|
||||||
Evas_Object *o;
|
Evas_Object *o;
|
||||||
|
|
||||||
if ((!ec->icccm.accepts_focus) &&
|
if ((!ec->icccm.accepts_focus) &&
|
||||||
(!ec->icccm.take_focus)) return;
|
(!ec->icccm.take_focus)) return EINA_FALSE;
|
||||||
if (ec->netwm.state.skip_taskbar) return;
|
if (ec->netwm.state.skip_taskbar) return EINA_FALSE;
|
||||||
if (ec->user_skip_winlist) return;
|
if (ec->user_skip_winlist) return EINA_FALSE;
|
||||||
if (ec->iconic)
|
if (ec->iconic)
|
||||||
{
|
{
|
||||||
if (!e_config->winlist_list_show_iconified) return;
|
if (!e_config->winlist_list_show_iconified) return EINA_FALSE;
|
||||||
if ((ec->zone != zone) &&
|
if ((ec->zone != zone) &&
|
||||||
(!e_config->winlist_list_show_other_screen_iconified)) return;
|
(!e_config->winlist_list_show_other_screen_iconified)) return EINA_FALSE;
|
||||||
if ((ec->desk != desk) &&
|
if ((ec->desk != desk) &&
|
||||||
(!e_config->winlist_list_show_other_desk_iconified)) return;
|
(!e_config->winlist_list_show_other_desk_iconified)) return EINA_FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (ec->sticky)
|
if (ec->sticky)
|
||||||
{
|
{
|
||||||
if ((ec->zone != zone) &&
|
if ((ec->zone != zone) &&
|
||||||
(!e_config->winlist_list_show_other_screen_windows)) return;
|
(!e_config->winlist_list_show_other_screen_windows)) return EINA_FALSE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -808,21 +808,21 @@ _e_winlist_client_add(E_Client *ec, E_Zone *zone, E_Desk *desk)
|
||||||
if ((ec->zone) && (ec->zone != zone))
|
if ((ec->zone) && (ec->zone != zone))
|
||||||
{
|
{
|
||||||
if (!e_config->winlist_list_show_other_screen_windows)
|
if (!e_config->winlist_list_show_other_screen_windows)
|
||||||
return;
|
return EINA_FALSE;
|
||||||
if (ec->zone && ec->desk && (ec->desk != e_desk_current_get(ec->zone)))
|
if (ec->zone && ec->desk && (ec->desk != e_desk_current_get(ec->zone)))
|
||||||
{
|
{
|
||||||
if (!e_config->winlist_list_show_other_desk_windows)
|
if (!e_config->winlist_list_show_other_desk_windows)
|
||||||
return;
|
return EINA_FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (!e_config->winlist_list_show_other_desk_windows)
|
else if (!e_config->winlist_list_show_other_desk_windows)
|
||||||
return;
|
return EINA_FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ww = E_NEW(E_Winlist_Win, 1);
|
ww = E_NEW(E_Winlist_Win, 1);
|
||||||
if (!ww) return;
|
if (!ww) return EINA_FALSE;
|
||||||
ww->client = ec;
|
ww->client = ec;
|
||||||
_wins = eina_list_append(_wins, ww);
|
_wins = eina_list_append(_wins, ww);
|
||||||
o = edje_object_add(ec->comp->evas);
|
o = edje_object_add(ec->comp->evas);
|
||||||
|
@ -858,6 +858,7 @@ _e_winlist_client_add(E_Client *ec, E_Zone *zone, E_Desk *desk)
|
||||||
evas_object_size_hint_max_set(ww->bg_object, 9999, mh);
|
evas_object_size_hint_max_set(ww->bg_object, 9999, mh);
|
||||||
elm_box_pack_end(_list_object, ww->bg_object);
|
elm_box_pack_end(_list_object, ww->bg_object);
|
||||||
e_object_ref(E_OBJECT(ww->client));
|
e_object_ref(E_OBJECT(ww->client));
|
||||||
|
return EINA_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -1077,9 +1078,9 @@ _e_winlist_cb_event_border_add(void *data __UNUSED__, int type __UNUSED__,
|
||||||
{
|
{
|
||||||
E_Event_Client *ev = event;
|
E_Event_Client *ev = event;
|
||||||
|
|
||||||
_e_winlist_client_add(ev->ec, _winlist_zone,
|
if (_e_winlist_client_add(ev->ec, _winlist_zone,
|
||||||
e_desk_current_get(_winlist_zone));
|
e_desk_current_get(_winlist_zone)))
|
||||||
_e_winlist_size_adjust();
|
_e_winlist_size_adjust();
|
||||||
return ECORE_CALLBACK_PASS_ON;
|
return ECORE_CALLBACK_PASS_ON;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue