forked from enlightenment/enlightenment
make deskshow as a function. add an event for it
SVN revision: 24130
This commit is contained in:
parent
b542518103
commit
48b230924a
|
@ -1430,38 +1430,13 @@ ACT_FN_GO(edit_mode_toggle)
|
||||||
/***************************************************************************/
|
/***************************************************************************/
|
||||||
ACT_FN_GO(desk_deskshow_toggle)
|
ACT_FN_GO(desk_deskshow_toggle)
|
||||||
{
|
{
|
||||||
E_Border *bd;
|
|
||||||
E_Border_List *bl;
|
|
||||||
E_Zone *zone;
|
E_Zone *zone;
|
||||||
E_Desk *desk;
|
|
||||||
|
|
||||||
zone = _e_actions_zone_get(obj);
|
zone = _e_actions_zone_get(obj);
|
||||||
if (!zone) zone = e_util_zone_current_get(e_manager_current_get());
|
if (!zone) zone = e_util_zone_current_get(e_manager_current_get());
|
||||||
if (zone)
|
if (zone)
|
||||||
{
|
{
|
||||||
desk = e_desk_current_get(zone);
|
e_desk_deskshow(zone);
|
||||||
bl = e_container_border_list_first(zone->container);
|
|
||||||
while ((bd = e_container_border_list_next(bl)))
|
|
||||||
{
|
|
||||||
if (bd->desk == desk)
|
|
||||||
{
|
|
||||||
if (desk->deskshow_toggle)
|
|
||||||
{
|
|
||||||
if (bd->deskshow) e_border_uniconify(bd);
|
|
||||||
bd->deskshow = 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (bd->iconic) continue;
|
|
||||||
if (bd->client.netwm.state.skip_taskbar) continue;
|
|
||||||
if (bd->user_skip_winlist) continue;
|
|
||||||
e_border_iconify(bd);
|
|
||||||
bd->deskshow = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
desk->deskshow_toggle = desk->deskshow_toggle ? 0 : 1;
|
|
||||||
e_container_border_list_free(bl);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/***************************************************************************/
|
/***************************************************************************/
|
||||||
|
|
|
@ -10,15 +10,18 @@
|
||||||
|
|
||||||
static void _e_desk_free(E_Desk *desk);
|
static void _e_desk_free(E_Desk *desk);
|
||||||
static void _e_border_event_desk_show_free(void *data, void *ev);
|
static void _e_border_event_desk_show_free(void *data, void *ev);
|
||||||
|
static void _e_border_event_desk_deskshow_free(void *data, void *ev);
|
||||||
static void _e_border_event_desk_name_change_free(void *data, void *ev);
|
static void _e_border_event_desk_name_change_free(void *data, void *ev);
|
||||||
|
|
||||||
EAPI int E_EVENT_DESK_SHOW = 0;
|
EAPI int E_EVENT_DESK_SHOW = 0;
|
||||||
|
EAPI int E_EVENT_DESK_DESKSHOW = 0;
|
||||||
EAPI int E_EVENT_DESK_NAME_CHANGE = 0;
|
EAPI int E_EVENT_DESK_NAME_CHANGE = 0;
|
||||||
|
|
||||||
EAPI int
|
EAPI int
|
||||||
e_desk_init(void)
|
e_desk_init(void)
|
||||||
{
|
{
|
||||||
E_EVENT_DESK_SHOW = ecore_event_type_new();
|
E_EVENT_DESK_SHOW = ecore_event_type_new();
|
||||||
|
E_EVENT_DESK_DESKSHOW = ecore_event_type_new();
|
||||||
E_EVENT_DESK_NAME_CHANGE = ecore_event_type_new();
|
E_EVENT_DESK_NAME_CHANGE = ecore_event_type_new();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -253,6 +256,47 @@ e_desk_show(E_Desk *desk)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
e_desk_deskshow(E_Zone *zone)
|
||||||
|
{
|
||||||
|
E_Border *bd;
|
||||||
|
E_Border_List *bl;
|
||||||
|
E_Desk *desk;
|
||||||
|
E_Event_Desk_Show *ev;
|
||||||
|
|
||||||
|
E_OBJECT_CHECK(zone);
|
||||||
|
E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE);
|
||||||
|
|
||||||
|
desk = e_desk_current_get(zone);
|
||||||
|
bl = e_container_border_list_first(zone->container);
|
||||||
|
while ((bd = e_container_border_list_next(bl)))
|
||||||
|
{
|
||||||
|
if (bd->desk == desk)
|
||||||
|
{
|
||||||
|
if (desk->deskshow_toggle)
|
||||||
|
{
|
||||||
|
if (bd->deskshow) e_border_uniconify(bd);
|
||||||
|
bd->deskshow = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (bd->iconic) continue;
|
||||||
|
if (bd->client.netwm.state.skip_taskbar) continue;
|
||||||
|
if (bd->user_skip_winlist) continue;
|
||||||
|
e_border_iconify(bd);
|
||||||
|
bd->deskshow = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
desk->deskshow_toggle = desk->deskshow_toggle ? 0 : 1;
|
||||||
|
e_container_border_list_free(bl);
|
||||||
|
ev = E_NEW(E_Event_Desk_Show, 1);
|
||||||
|
ev->desk = desk;
|
||||||
|
e_object_ref(E_OBJECT(desk));
|
||||||
|
ecore_event_add(E_EVENT_DESK_DESKSHOW, ev,
|
||||||
|
_e_border_event_desk_deskshow_free, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
e_desk_last_focused_focus(E_Desk *desk)
|
e_desk_last_focused_focus(E_Desk *desk)
|
||||||
{
|
{
|
||||||
|
@ -416,6 +460,16 @@ _e_border_event_desk_show_free(void *data, void *event)
|
||||||
free(ev);
|
free(ev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_border_event_desk_deskshow_free(void *data, void *event)
|
||||||
|
{
|
||||||
|
E_Event_Desk_Show *ev;
|
||||||
|
|
||||||
|
ev = event;
|
||||||
|
e_object_unref(E_OBJECT(ev->desk));
|
||||||
|
free(ev);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_e_border_event_desk_name_change_free(void *data, void *event)
|
_e_border_event_desk_name_change_free(void *data, void *event)
|
||||||
{
|
{
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
|
|
||||||
typedef struct _E_Desk E_Desk;
|
typedef struct _E_Desk E_Desk;
|
||||||
typedef struct _E_Event_Desk_Show E_Event_Desk_Show;
|
typedef struct _E_Event_Desk_Show E_Event_Desk_Show;
|
||||||
|
typedef struct _E_Event_Desk_DeskShow E_Event_Desk_DeskShow;
|
||||||
typedef struct _E_Event_Desk_Name_Change E_Event_Desk_Name_Change;
|
typedef struct _E_Event_Desk_Name_Change E_Event_Desk_Name_Change;
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
@ -44,6 +45,7 @@ EAPI void e_desk_name_add(int container, int zone, int desk_x, int desk_
|
||||||
EAPI void e_desk_name_del(int container, int zone, int desk_x, int desk_y);
|
EAPI void e_desk_name_del(int container, int zone, int desk_x, int desk_y);
|
||||||
EAPI void e_desk_name_update(void);
|
EAPI void e_desk_name_update(void);
|
||||||
EAPI void e_desk_show(E_Desk *desk);
|
EAPI void e_desk_show(E_Desk *desk);
|
||||||
|
EAPI void e_desk_deskshow(E_Zone *zone);
|
||||||
EAPI void e_desk_last_focused_focus(E_Desk *desk);
|
EAPI void e_desk_last_focused_focus(E_Desk *desk);
|
||||||
EAPI E_Desk *e_desk_current_get(E_Zone *zone);
|
EAPI E_Desk *e_desk_current_get(E_Zone *zone);
|
||||||
EAPI E_Desk *e_desk_at_xy_get(E_Zone *zone, int x, int y);
|
EAPI E_Desk *e_desk_at_xy_get(E_Zone *zone, int x, int y);
|
||||||
|
@ -57,6 +59,7 @@ EAPI void e_desk_col_add(E_Zone *zone);
|
||||||
EAPI void e_desk_col_remove(E_Zone *zone);
|
EAPI void e_desk_col_remove(E_Zone *zone);
|
||||||
|
|
||||||
extern EAPI int E_EVENT_DESK_SHOW;
|
extern EAPI int E_EVENT_DESK_SHOW;
|
||||||
|
extern EAPI int E_EVENT_DESK_DESKSHOW;
|
||||||
extern EAPI int E_EVENT_DESK_NAME_CHANGE;
|
extern EAPI int E_EVENT_DESK_NAME_CHANGE;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue