forked from enlightenment/enlightenment
Would be nice to inform the pager when desks are getting added and removed, too.:)
SVN revision: 12974
This commit is contained in:
parent
4544c3aea0
commit
be8d8e19aa
|
@ -12,13 +12,18 @@ static void _e_zone_cb_menu_end(void *data, E_Menu *m);
|
||||||
static void _e_zone_cb_bg_mouse_down(void *data, Evas *evas, Evas_Object *obj, void *event_info);
|
static void _e_zone_cb_bg_mouse_down(void *data, Evas *evas, Evas_Object *obj, void *event_info);
|
||||||
static void _e_zone_cb_bg_mouse_up(void *data, Evas *evas, Evas_Object *obj, void *event_info);
|
static void _e_zone_cb_bg_mouse_up(void *data, Evas *evas, Evas_Object *obj, void *event_info);
|
||||||
static void _e_zone_cb_bg_mouse_move(void *data, Evas *evas, Evas_Object *obj, void *event_info);
|
static void _e_zone_cb_bg_mouse_move(void *data, Evas *evas, Evas_Object *obj, void *event_info);
|
||||||
|
static void _e_zone_event_zone_desk_count_set_free(void *data, void *ev);
|
||||||
|
|
||||||
static int zone_count;
|
static int zone_count;
|
||||||
|
|
||||||
|
int E_EVENT_ZONE_DESK_COUNT_SET = 0;
|
||||||
|
|
||||||
int
|
int
|
||||||
e_zone_init(void)
|
e_zone_init(void)
|
||||||
{
|
{
|
||||||
zone_count = 0;
|
zone_count = 0;
|
||||||
|
E_EVENT_ZONE_DESK_COUNT_SET = ecore_event_type_new();
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -284,6 +289,7 @@ e_zone_desk_count_set(E_Zone *zone, int x_count, int y_count)
|
||||||
int x, y, xx, yy, moved;
|
int x, y, xx, yy, moved;
|
||||||
Evas_List *client;
|
Evas_List *client;
|
||||||
E_Border *bd;
|
E_Border *bd;
|
||||||
|
E_Event_Zone_Desk_Count_Set *ev;
|
||||||
|
|
||||||
xx = x_count;
|
xx = x_count;
|
||||||
if (xx < 1)
|
if (xx < 1)
|
||||||
|
@ -378,6 +384,12 @@ e_zone_desk_count_set(E_Zone *zone, int x_count, int y_count)
|
||||||
e_config->zone_desks_x_count = xx;
|
e_config->zone_desks_x_count = xx;
|
||||||
e_config->zone_desks_y_count = yy;
|
e_config->zone_desks_y_count = yy;
|
||||||
e_config_save_queue();
|
e_config_save_queue();
|
||||||
|
|
||||||
|
ev = E_NEW(E_Event_Zone_Desk_Count_Set, 1);
|
||||||
|
if (!ev) return;
|
||||||
|
ev->zone = zone;
|
||||||
|
e_object_ref(E_OBJECT(zone));
|
||||||
|
ecore_event_add(E_EVENT_ZONE_DESK_COUNT_SET, ev, _e_zone_event_zone_desk_count_set_free, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -386,3 +398,14 @@ e_zone_desk_count_get(E_Zone *zone, int *x_count, int *y_count)
|
||||||
*x_count = zone->desk_x_count;
|
*x_count = zone->desk_x_count;
|
||||||
*y_count = zone->desk_y_count;
|
*y_count = zone->desk_y_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_zone_event_zone_desk_count_set_free(void *data, void *ev)
|
||||||
|
{
|
||||||
|
E_Event_Zone_Desk_Count_Set *e;
|
||||||
|
|
||||||
|
e = ev;
|
||||||
|
e_object_unref(E_OBJECT(e->zone));
|
||||||
|
free(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,8 @@
|
||||||
|
|
||||||
typedef struct _E_Zone E_Zone;
|
typedef struct _E_Zone E_Zone;
|
||||||
|
|
||||||
|
typedef struct _E_Event_Zone_Desk_Count_Set E_Event_Zone_Desk_Count_Set;
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#ifndef E_ZONE_H
|
#ifndef E_ZONE_H
|
||||||
#define E_ZONE_H
|
#define E_ZONE_H
|
||||||
|
@ -25,6 +27,11 @@ struct _E_Zone
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct _E_Event_Zone_Desk_Count_Set
|
||||||
|
{
|
||||||
|
E_Zone *zone;
|
||||||
|
};
|
||||||
|
|
||||||
EAPI int e_zone_init(void);
|
EAPI int e_zone_init(void);
|
||||||
EAPI int e_zone_shutdown(void);
|
EAPI int e_zone_shutdown(void);
|
||||||
EAPI E_Zone *e_zone_new(E_Container *con, int x, int y, int w, int h);
|
EAPI E_Zone *e_zone_new(E_Container *con, int x, int y, int w, int h);
|
||||||
|
@ -37,5 +44,7 @@ EAPI Evas_List *e_zone_clients_list_get(E_Zone *zone);
|
||||||
EAPI void e_zone_desk_count_set(E_Zone *zone, int x_count, int y_count);
|
EAPI void e_zone_desk_count_set(E_Zone *zone, int x_count, int y_count);
|
||||||
EAPI void e_zone_desk_count_get(E_Zone *zone, int *x_count, int *y_count);
|
EAPI void e_zone_desk_count_get(E_Zone *zone, int *x_count, int *y_count);
|
||||||
|
|
||||||
|
extern EAPI int E_EVENT_ZONE_DESK_COUNT_SET;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -42,6 +42,7 @@ static int _pager_cb_event_border_remove(void *data, int type, void *eve
|
||||||
static int _pager_cb_event_border_hide(void *data, int type, void *event);
|
static int _pager_cb_event_border_hide(void *data, int type, void *event);
|
||||||
static int _pager_cb_event_border_show(void *data, int type, void *event);
|
static int _pager_cb_event_border_show(void *data, int type, void *event);
|
||||||
static int _pager_cb_event_border_desk_set(void *data, int type, void *event);
|
static int _pager_cb_event_border_desk_set(void *data, int type, void *event);
|
||||||
|
static int _pager_cb_event_zone_desk_count_set(void *data, int type, void *event);
|
||||||
|
|
||||||
static void _pager_reconfigure(Pager *e);
|
static void _pager_reconfigure(Pager *e);
|
||||||
|
|
||||||
|
@ -213,6 +214,9 @@ _pager_init(E_Module *m)
|
||||||
e->ev_handler_border_desk_set =
|
e->ev_handler_border_desk_set =
|
||||||
ecore_event_handler_add(E_EVENT_BORDER_DESK_SET,
|
ecore_event_handler_add(E_EVENT_BORDER_DESK_SET,
|
||||||
_pager_cb_event_border_desk_set, e);
|
_pager_cb_event_border_desk_set, e);
|
||||||
|
e->ev_handler_zone_desk_count_set =
|
||||||
|
ecore_event_handler_add(E_EVENT_ZONE_DESK_COUNT_SET,
|
||||||
|
_pager_cb_event_zone_desk_count_set, e);
|
||||||
|
|
||||||
_pager_zone_set(e, e_zone_current_get(e->con));
|
_pager_zone_set(e, e_zone_current_get(e->con));
|
||||||
_pager_reconfigure(e);
|
_pager_reconfigure(e);
|
||||||
|
@ -248,6 +252,7 @@ _pager_shutdown(Pager *e)
|
||||||
ecore_event_handler_del(e->ev_handler_border_hide);
|
ecore_event_handler_del(e->ev_handler_border_hide);
|
||||||
ecore_event_handler_del(e->ev_handler_border_show);
|
ecore_event_handler_del(e->ev_handler_border_show);
|
||||||
ecore_event_handler_del(e->ev_handler_border_desk_set);
|
ecore_event_handler_del(e->ev_handler_border_desk_set);
|
||||||
|
ecore_event_handler_del(e->ev_handler_zone_desk_count_set);
|
||||||
|
|
||||||
free(e);
|
free(e);
|
||||||
}
|
}
|
||||||
|
@ -875,3 +880,14 @@ _pager_cb_event_border_desk_set(void *data, int type, void *event)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
_pager_cb_event_zone_desk_count_set(void *data, int type, void *event)
|
||||||
|
{
|
||||||
|
Pager *e;
|
||||||
|
E_Event_Zone_Desk_Count_Set *ev;
|
||||||
|
|
||||||
|
e = data;
|
||||||
|
_pager_reconfigure(e);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,7 @@ struct _Pager
|
||||||
Ecore_Event_Handler *ev_handler_border_hide;
|
Ecore_Event_Handler *ev_handler_border_hide;
|
||||||
Ecore_Event_Handler *ev_handler_border_show;
|
Ecore_Event_Handler *ev_handler_border_show;
|
||||||
Ecore_Event_Handler *ev_handler_border_desk_set;
|
Ecore_Event_Handler *ev_handler_border_desk_set;
|
||||||
|
Ecore_Event_Handler *ev_handler_zone_desk_count_set;
|
||||||
|
|
||||||
Evas_Coord fx, fy, fw, fh, tw, th;
|
Evas_Coord fx, fy, fw, fh, tw, th;
|
||||||
Evas_Coord xx, yy;
|
Evas_Coord xx, yy;
|
||||||
|
|
Loading…
Reference in New Issue