parent
a52d19b664
commit
51ce3de0c0
|
@ -168,43 +168,79 @@ ACT_FN_GO(window_close)
|
||||||
/***************************************************************************/
|
/***************************************************************************/
|
||||||
ACT_FN_GO(desk_flip_by)
|
ACT_FN_GO(desk_flip_by)
|
||||||
{
|
{
|
||||||
E_Container *con;
|
E_Zone *zone;
|
||||||
|
|
||||||
if (!obj) return;
|
if (!obj) return;
|
||||||
if (obj->type != E_MANAGER_TYPE) return;
|
if (obj->type != E_MANAGER_TYPE) return;
|
||||||
con = e_manager_container_current_get((E_Manager *)obj);
|
zone = e_util_zone_current_get((E_Manager *)obj);
|
||||||
/* FIXME: this shoudl really go into desk logic and zone... */
|
if (zone)
|
||||||
if (con)
|
|
||||||
{
|
{
|
||||||
E_Zone *zone;
|
if (params)
|
||||||
|
|
||||||
zone = e_zone_current_get(con);
|
|
||||||
if (zone)
|
|
||||||
{
|
{
|
||||||
E_Desk *desk;
|
|
||||||
int dx = 0, dy = 0;
|
int dx = 0, dy = 0;
|
||||||
|
|
||||||
if (params)
|
if (sscanf(params, "%i %i", &dx, &dy) == 2)
|
||||||
{
|
e_zone_desk_flip_by(zone, dx, dy);
|
||||||
if (sscanf(params, "%i %i", &dx, &dy) != 2)
|
}
|
||||||
{
|
}
|
||||||
dx = 0;
|
}
|
||||||
dy = 0;
|
|
||||||
}
|
/***************************************************************************/
|
||||||
}
|
ACT_FN_GO(desk_flip_to)
|
||||||
dx = zone->desk_x_current + dx;
|
{
|
||||||
if (dx < 0) dx = 0;
|
E_Zone *zone;
|
||||||
else if (dx >= zone->desk_x_count) dx = zone->desk_x_count - 1;
|
|
||||||
dy = zone->desk_x_current + dy;
|
if (!obj) return;
|
||||||
if (dy < 0) dy = 0;
|
if (obj->type != E_MANAGER_TYPE) return;
|
||||||
else if (dy >= zone->desk_y_count) dy = zone->desk_y_count - 1;
|
zone = e_util_zone_current_get((E_Manager *)obj);
|
||||||
desk = e_desk_at_xy_get(zone, dx, dy);
|
if (zone)
|
||||||
if (desk)
|
{
|
||||||
{
|
if (params)
|
||||||
ecore_x_window_focus(con->manager->root);
|
{
|
||||||
e_desk_show(desk);
|
int dx = 0, dy = 0;
|
||||||
e_zone_update_flip(zone);
|
|
||||||
}
|
if (sscanf(params, "%i %i", &dx, &dy) == 2)
|
||||||
|
e_zone_desk_flip_to(zone, dx, dy);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/***************************************************************************/
|
||||||
|
ACT_FN_GO(desk_linear_flip_by)
|
||||||
|
{
|
||||||
|
E_Zone *zone;
|
||||||
|
|
||||||
|
if (!obj) return;
|
||||||
|
if (obj->type != E_MANAGER_TYPE) return;
|
||||||
|
zone = e_util_zone_current_get((E_Manager *)obj);
|
||||||
|
if (zone)
|
||||||
|
{
|
||||||
|
if (params)
|
||||||
|
{
|
||||||
|
int dx = 0;
|
||||||
|
|
||||||
|
if (sscanf(params, "%i", &dx) == 1)
|
||||||
|
e_zone_desk_linear_flip_by(zone, dx);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/***************************************************************************/
|
||||||
|
ACT_FN_GO(desk_linear_flip_to)
|
||||||
|
{
|
||||||
|
E_Zone *zone;
|
||||||
|
|
||||||
|
if (!obj) return;
|
||||||
|
if (obj->type != E_MANAGER_TYPE) return;
|
||||||
|
zone = e_util_zone_current_get((E_Manager *)obj);
|
||||||
|
if (zone)
|
||||||
|
{
|
||||||
|
if (params)
|
||||||
|
{
|
||||||
|
int dx = 0;
|
||||||
|
|
||||||
|
if (sscanf(params, "%i", &dx) == 1)
|
||||||
|
e_zone_desk_linear_flip_to(zone, dx);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -238,6 +274,12 @@ e_actions_init(void)
|
||||||
ACT_GO(window_close);
|
ACT_GO(window_close);
|
||||||
|
|
||||||
ACT_GO(desk_flip_by);
|
ACT_GO(desk_flip_by);
|
||||||
|
|
||||||
|
ACT_GO(desk_flip_to);
|
||||||
|
|
||||||
|
ACT_GO(desk_linear_flip_by);
|
||||||
|
|
||||||
|
ACT_GO(desk_linear_flip_to);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -82,6 +82,48 @@ e_bindings_init(void)
|
||||||
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||||
"x", E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT, 0,
|
"x", E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT, 0,
|
||||||
"window_close", "");
|
"window_close", "");
|
||||||
|
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||||
|
"Left", E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT, 0,
|
||||||
|
"desk_linear_flip_by", "-1");
|
||||||
|
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||||
|
"Right", E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT, 0,
|
||||||
|
"desk_linear_flip_by", "1");
|
||||||
|
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||||
|
"F1", E_BINDING_MODIFIER_ALT, 0,
|
||||||
|
"desk_linear_flip_to", "0");
|
||||||
|
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||||
|
"F2", E_BINDING_MODIFIER_ALT, 0,
|
||||||
|
"desk_linear_flip_to", "1");
|
||||||
|
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||||
|
"F3", E_BINDING_MODIFIER_ALT, 0,
|
||||||
|
"desk_linear_flip_to", "2");
|
||||||
|
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||||
|
"F4", E_BINDING_MODIFIER_ALT, 0,
|
||||||
|
"desk_linear_flip_to", "3");
|
||||||
|
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||||
|
"F5", E_BINDING_MODIFIER_ALT, 0,
|
||||||
|
"desk_linear_flip_to", "4");
|
||||||
|
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||||
|
"F6", E_BINDING_MODIFIER_ALT, 0,
|
||||||
|
"desk_linear_flip_to", "5");
|
||||||
|
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||||
|
"F7", E_BINDING_MODIFIER_ALT, 0,
|
||||||
|
"desk_linear_flip_to", "6");
|
||||||
|
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||||
|
"F8", E_BINDING_MODIFIER_ALT, 0,
|
||||||
|
"desk_linear_flip_to", "7");
|
||||||
|
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||||
|
"F9", E_BINDING_MODIFIER_ALT, 0,
|
||||||
|
"desk_linear_flip_to", "8");
|
||||||
|
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||||
|
"F10", E_BINDING_MODIFIER_ALT, 0,
|
||||||
|
"desk_linear_flip_to", "9");
|
||||||
|
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||||
|
"F11", E_BINDING_MODIFIER_ALT, 0,
|
||||||
|
"desk_linear_flip_to", "10");
|
||||||
|
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||||
|
"F12", E_BINDING_MODIFIER_ALT, 0,
|
||||||
|
"desk_linear_flip_to", "11");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -76,6 +76,22 @@ e_util_env_set(const char *var, const char *val)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
E_Zone *
|
||||||
|
e_util_zone_current_get(E_Manager *man)
|
||||||
|
{
|
||||||
|
E_Container *con;
|
||||||
|
|
||||||
|
con = e_manager_container_current_get(man);
|
||||||
|
if (con)
|
||||||
|
{
|
||||||
|
E_Zone *zone;
|
||||||
|
|
||||||
|
zone = e_zone_current_get(con);
|
||||||
|
return zone;
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/* local subsystem functions */
|
/* local subsystem functions */
|
||||||
static void
|
static void
|
||||||
_e_util_container_fake_mouse_up_cb(void *data)
|
_e_util_container_fake_mouse_up_cb(void *data)
|
||||||
|
|
|
@ -10,6 +10,7 @@ EAPI void e_util_container_fake_mouse_up_later(E_Container *con, int button);
|
||||||
EAPI void e_util_container_fake_mouse_up_all_later(E_Container *con);
|
EAPI void e_util_container_fake_mouse_up_all_later(E_Container *con);
|
||||||
EAPI void e_util_wakeup(void);
|
EAPI void e_util_wakeup(void);
|
||||||
EAPI void e_util_env_set(const char *var, const char *val);
|
EAPI void e_util_env_set(const char *var, const char *val);
|
||||||
|
EAPI E_Zone *e_util_zone_current_get(E_Manager *man);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -499,6 +499,49 @@ e_zone_update_flip(E_Zone *zone)
|
||||||
_e_zone_update_flip(zone);
|
_e_zone_update_flip(zone);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
e_zone_desk_flip_by(E_Zone *zone, int dx, int dy)
|
||||||
|
{
|
||||||
|
dx = zone->desk_x_current + dx;
|
||||||
|
dy = zone->desk_x_current + dy;
|
||||||
|
e_zone_desk_flip_to(zone, dx, dy);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
e_zone_desk_flip_to(E_Zone *zone, int x, int y)
|
||||||
|
{
|
||||||
|
E_Desk *desk;
|
||||||
|
|
||||||
|
if (x < 0) x = 0;
|
||||||
|
else if (x >= zone->desk_x_count) x = zone->desk_x_count - 1;
|
||||||
|
if (y < 0) y = 0;
|
||||||
|
else if (y >= zone->desk_y_count) y = zone->desk_y_count - 1;
|
||||||
|
desk = e_desk_at_xy_get(zone, x, y);
|
||||||
|
if (desk)
|
||||||
|
{
|
||||||
|
e_desk_show(desk);
|
||||||
|
_e_zone_update_flip(zone);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
e_zone_desk_linear_flip_by(E_Zone *zone, int dx)
|
||||||
|
{
|
||||||
|
dx = zone->desk_x_current +
|
||||||
|
(zone->desk_y_current * zone->desk_x_count) + dx;
|
||||||
|
e_zone_desk_linear_flip_to(zone, dx);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
e_zone_desk_linear_flip_to(E_Zone *zone, int x)
|
||||||
|
{
|
||||||
|
int y;
|
||||||
|
|
||||||
|
y = x / zone->desk_x_count;
|
||||||
|
x = x - (y * zone->desk_x_count);
|
||||||
|
e_zone_desk_flip_to(zone, x, y);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_e_zone_event_zone_desk_count_set_free(void *data, void *ev)
|
_e_zone_event_zone_desk_count_set_free(void *data, void *ev)
|
||||||
{
|
{
|
||||||
|
|
|
@ -58,6 +58,10 @@ EAPI void e_zone_flip_coords_handle(E_Zone *zone, int x, int y);
|
||||||
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);
|
||||||
EAPI void e_zone_update_flip(E_Zone *zone);
|
EAPI void e_zone_update_flip(E_Zone *zone);
|
||||||
|
EAPI void e_zone_desk_flip_by(E_Zone *zone, int dx, int dy);
|
||||||
|
EAPI void e_zone_desk_flip_to(E_Zone *zone, int x, int y);
|
||||||
|
EAPI void e_zone_desk_linear_flip_by(E_Zone *zone, int dx);
|
||||||
|
EAPI void e_zone_desk_linear_flip_to(E_Zone *zone, int x);
|
||||||
|
|
||||||
extern EAPI int E_EVENT_ZONE_DESK_COUNT_SET;
|
extern EAPI int E_EVENT_ZONE_DESK_COUNT_SET;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue