forked from enlightenment/enlightenment
and... working on virtual desktops.. moved desktop view to be a normal
client window thats just borderless, layer 1 etc. goign to add desktop masks for client borders next (ie what desktops a client window lives on or not)... in theory we have desktop areas and desktosp implimented now. :) SVN revision: 5426
This commit is contained in:
parent
aec66cb567
commit
ce769c8f21
|
@ -546,6 +546,7 @@ e_act_move_start (void *o, E_Action *a, void *data, int x, int y, int rx, int ry
|
||||||
b = o;
|
b = o;
|
||||||
if (!b) b = e_border_current_focused();
|
if (!b) b = e_border_current_focused();
|
||||||
if (!b) return;
|
if (!b) return;
|
||||||
|
if (b->client.fixed) return;
|
||||||
if (move_mode >= E_GUIDES_BOX)
|
if (move_mode >= E_GUIDES_BOX)
|
||||||
b->hold_changes = 1; /* if non opaque */
|
b->hold_changes = 1; /* if non opaque */
|
||||||
b->mode.move = 1;
|
b->mode.move = 1;
|
||||||
|
@ -584,6 +585,7 @@ e_act_move_stop (void *o, E_Action *a, void *data, int x, int y, int rx, int ry
|
||||||
b = o;
|
b = o;
|
||||||
if (!b) b = e_border_current_focused();
|
if (!b) b = e_border_current_focused();
|
||||||
if (!b) return;
|
if (!b) return;
|
||||||
|
if (b->client.fixed) return;
|
||||||
b->hold_changes = 0; /* if non opaque */
|
b->hold_changes = 0; /* if non opaque */
|
||||||
b->current.requested.x = b->current.x;
|
b->current.requested.x = b->current.x;
|
||||||
b->current.requested.y = b->current.y;
|
b->current.requested.y = b->current.y;
|
||||||
|
@ -615,6 +617,7 @@ e_act_move_go (void *o, E_Action *a, void *data, int x, int y, int rx, int ry
|
||||||
b = o;
|
b = o;
|
||||||
if (!b) b = e_border_current_focused();
|
if (!b) b = e_border_current_focused();
|
||||||
if (!b) return;
|
if (!b) return;
|
||||||
|
if (b->client.fixed) return;
|
||||||
b->current.requested.x += dx;
|
b->current.requested.x += dx;
|
||||||
b->current.requested.y += dy;
|
b->current.requested.y += dy;
|
||||||
if (dx != 0) b->current.requested.dx = dx;
|
if (dx != 0) b->current.requested.dx = dx;
|
||||||
|
@ -659,6 +662,8 @@ e_act_resize_start (void *o, E_Action *a, void *data, int x, int y, int rx, int
|
||||||
b = o;
|
b = o;
|
||||||
if (!b) b = e_border_current_focused();
|
if (!b) b = e_border_current_focused();
|
||||||
if (!b) return;
|
if (!b) return;
|
||||||
|
if (b->client.min.w == b->client.max.w) return;
|
||||||
|
if (b->client.min.h == b->client.max.h) return;
|
||||||
if (b->current.shaded != 0) return;
|
if (b->current.shaded != 0) return;
|
||||||
if (resize_mode >= E_GUIDES_BOX)
|
if (resize_mode >= E_GUIDES_BOX)
|
||||||
b->hold_changes = 1; /* if non opaque */
|
b->hold_changes = 1; /* if non opaque */
|
||||||
|
@ -731,6 +736,8 @@ e_act_resize_stop (void *o, E_Action *a, void *data, int x, int y, int rx, int
|
||||||
b = o;
|
b = o;
|
||||||
if (!b) b = e_border_current_focused();
|
if (!b) b = e_border_current_focused();
|
||||||
if (!b) return;
|
if (!b) return;
|
||||||
|
if (b->client.min.w == b->client.max.w) return;
|
||||||
|
if (b->client.min.h == b->client.max.h) return;
|
||||||
if (b->current.shaded != 0) return;
|
if (b->current.shaded != 0) return;
|
||||||
b->hold_changes = 0; /* if non opaque */
|
b->hold_changes = 0; /* if non opaque */
|
||||||
b->current.requested.x = b->current.x;
|
b->current.requested.x = b->current.x;
|
||||||
|
@ -760,6 +767,8 @@ e_act_resize_go (void *o, E_Action *a, void *data, int x, int y, int rx, int
|
||||||
b = o;
|
b = o;
|
||||||
if (!b) b = e_border_current_focused();
|
if (!b) b = e_border_current_focused();
|
||||||
if (!b) return;
|
if (!b) return;
|
||||||
|
if (b->client.min.w == b->client.max.w) return;
|
||||||
|
if (b->client.min.h == b->client.max.h) return;
|
||||||
if (b->current.shaded != 0) return;
|
if (b->current.shaded != 0) return;
|
||||||
if (b->mode.resize == 1)
|
if (b->mode.resize == 1)
|
||||||
{
|
{
|
||||||
|
@ -825,6 +834,7 @@ e_act_resize_h_start (void *o, E_Action *a, void *data, int x, int y, int rx, in
|
||||||
b = o;
|
b = o;
|
||||||
if (!b) b = e_border_current_focused();
|
if (!b) b = e_border_current_focused();
|
||||||
if (!b) return;
|
if (!b) return;
|
||||||
|
if (b->client.min.w == b->client.max.w) return;
|
||||||
if (b->current.shaded != 0) return;
|
if (b->current.shaded != 0) return;
|
||||||
if (resize_mode >= E_GUIDES_BOX)
|
if (resize_mode >= E_GUIDES_BOX)
|
||||||
b->hold_changes = 1; /* if non opaque */
|
b->hold_changes = 1; /* if non opaque */
|
||||||
|
@ -876,6 +886,7 @@ e_act_resize_h_stop (void *o, E_Action *a, void *data, int x, int y, int rx, in
|
||||||
b = o;
|
b = o;
|
||||||
if (!b) b = e_border_current_focused();
|
if (!b) b = e_border_current_focused();
|
||||||
if (!b) return;
|
if (!b) return;
|
||||||
|
if (b->client.min.w == b->client.max.w) return;
|
||||||
if (b->current.shaded != 0) return;
|
if (b->current.shaded != 0) return;
|
||||||
b->hold_changes = 0; /* if non opaque */
|
b->hold_changes = 0; /* if non opaque */
|
||||||
b->current.requested.x = b->current.x;
|
b->current.requested.x = b->current.x;
|
||||||
|
@ -905,6 +916,7 @@ e_act_resize_h_go (void *o, E_Action *a, void *data, int x, int y, int rx, in
|
||||||
b = o;
|
b = o;
|
||||||
if (!b) b = e_border_current_focused();
|
if (!b) b = e_border_current_focused();
|
||||||
if (!b) return;
|
if (!b) return;
|
||||||
|
if (b->client.min.w == b->client.max.w) return;
|
||||||
if (b->current.shaded != 0) return;
|
if (b->current.shaded != 0) return;
|
||||||
if (b->mode.resize == 5)
|
if (b->mode.resize == 5)
|
||||||
{
|
{
|
||||||
|
@ -956,6 +968,7 @@ e_act_resize_v_start (void *o, E_Action *a, void *data, int x, int y, int rx, in
|
||||||
b = o;
|
b = o;
|
||||||
if (!b) b = e_border_current_focused();
|
if (!b) b = e_border_current_focused();
|
||||||
if (!b) return;
|
if (!b) return;
|
||||||
|
if (b->client.min.h == b->client.max.h) return;
|
||||||
if (b->current.shaded != 0) return;
|
if (b->current.shaded != 0) return;
|
||||||
if (resize_mode >= E_GUIDES_BOX)
|
if (resize_mode >= E_GUIDES_BOX)
|
||||||
b->hold_changes = 1; /* if non opaque */
|
b->hold_changes = 1; /* if non opaque */
|
||||||
|
@ -1009,6 +1022,7 @@ e_act_resize_v_stop (void *o, E_Action *a, void *data, int x, int y, int rx, in
|
||||||
b = o;
|
b = o;
|
||||||
if (!b) b = e_border_current_focused();
|
if (!b) b = e_border_current_focused();
|
||||||
if (!b) return;
|
if (!b) return;
|
||||||
|
if (b->client.min.h == b->client.max.h) return;
|
||||||
if (b->current.shaded != 0) return;
|
if (b->current.shaded != 0) return;
|
||||||
b->hold_changes = 0; /* if non opaque */
|
b->hold_changes = 0; /* if non opaque */
|
||||||
b->current.requested.x = b->current.x;
|
b->current.requested.x = b->current.x;
|
||||||
|
@ -1038,6 +1052,7 @@ e_act_resize_v_go (void *o, E_Action *a, void *data, int x, int y, int rx, in
|
||||||
b = o;
|
b = o;
|
||||||
if (!b) b = e_border_current_focused();
|
if (!b) b = e_border_current_focused();
|
||||||
if (!b) return;
|
if (!b) return;
|
||||||
|
if (b->client.min.h == b->client.max.h) return;
|
||||||
if (b->current.shaded != 0) return;
|
if (b->current.shaded != 0) return;
|
||||||
if (b->mode.resize == 7)
|
if (b->mode.resize == 7)
|
||||||
{
|
{
|
||||||
|
@ -1077,6 +1092,7 @@ e_act_close_start (void *o, E_Action *a, void *data, int x, int y, int rx, int r
|
||||||
b = o;
|
b = o;
|
||||||
if (!b) b = e_border_current_focused();
|
if (!b) b = e_border_current_focused();
|
||||||
if (!b) return;
|
if (!b) return;
|
||||||
|
if (b->client.is_desktop) return;
|
||||||
if (b->win.client) e_icccm_delete(b->win.client);
|
if (b->win.client) e_icccm_delete(b->win.client);
|
||||||
return;
|
return;
|
||||||
UN(a);
|
UN(a);
|
||||||
|
@ -1096,6 +1112,7 @@ e_act_kill_start (void *o, E_Action *a, void *data, int x, int y, int rx, int ry
|
||||||
b = o;
|
b = o;
|
||||||
if (!b) b = e_border_current_focused();
|
if (!b) b = e_border_current_focused();
|
||||||
if (!b) return;
|
if (!b) return;
|
||||||
|
if (b->client.is_desktop) return;
|
||||||
if (b->win.client) e_window_kill_client(b->win.client);
|
if (b->win.client) e_window_kill_client(b->win.client);
|
||||||
return;
|
return;
|
||||||
UN(a);
|
UN(a);
|
||||||
|
@ -1119,6 +1136,7 @@ e_act_cb_shade(int val, void *data)
|
||||||
b = data;
|
b = data;
|
||||||
if (!b) b = e_border_current_focused();
|
if (!b) b = e_border_current_focused();
|
||||||
if (!b) return;
|
if (!b) return;
|
||||||
|
if (b->client.is_desktop) return;
|
||||||
if (val == 0)
|
if (val == 0)
|
||||||
{
|
{
|
||||||
OBJ_REF(b);
|
OBJ_REF(b);
|
||||||
|
@ -1159,6 +1177,7 @@ e_act_cb_unshade(int val, void *data)
|
||||||
b = data;
|
b = data;
|
||||||
if (!b) b = e_border_current_focused();
|
if (!b) b = e_border_current_focused();
|
||||||
if (!b) return;
|
if (!b) return;
|
||||||
|
if (b->client.is_desktop) return;
|
||||||
if (val == 0)
|
if (val == 0)
|
||||||
{
|
{
|
||||||
OBJ_REF(b);
|
OBJ_REF(b);
|
||||||
|
@ -1195,6 +1214,7 @@ e_act_shade_start (void *o, E_Action *a, void *data, int x, int y, int rx, int r
|
||||||
b = o;
|
b = o;
|
||||||
if (!b) b = e_border_current_focused();
|
if (!b) b = e_border_current_focused();
|
||||||
if (!b) return;
|
if (!b) return;
|
||||||
|
if (b->client.is_desktop) return;
|
||||||
if (b->current.shaded == 0) e_act_cb_shade(0, b);
|
if (b->current.shaded == 0) e_act_cb_shade(0, b);
|
||||||
else e_act_cb_unshade(0, b);
|
else e_act_cb_unshade(0, b);
|
||||||
return;
|
return;
|
||||||
|
@ -1215,6 +1235,7 @@ e_act_raise_start (void *o, E_Action *a, void *data, int x, int y, int rx, int r
|
||||||
b = o;
|
b = o;
|
||||||
if (!b) b = e_border_current_focused();
|
if (!b) b = e_border_current_focused();
|
||||||
if (!b) return;
|
if (!b) return;
|
||||||
|
if (b->client.is_desktop) return;
|
||||||
e_border_raise(b);
|
e_border_raise(b);
|
||||||
return;
|
return;
|
||||||
UN(a);
|
UN(a);
|
||||||
|
@ -1234,6 +1255,7 @@ e_act_lower_start (void *o, E_Action *a, void *data, int x, int y, int rx, int r
|
||||||
b = o;
|
b = o;
|
||||||
if (!b) b = e_border_current_focused();
|
if (!b) b = e_border_current_focused();
|
||||||
if (!b) return;
|
if (!b) return;
|
||||||
|
if (b->client.is_desktop) return;
|
||||||
e_border_lower(b);
|
e_border_lower(b);
|
||||||
return;
|
return;
|
||||||
UN(a);
|
UN(a);
|
||||||
|
@ -1253,6 +1275,7 @@ e_act_raise_lower_start (void *o, E_Action *a, void *data, int x, int y, int rx,
|
||||||
b = o;
|
b = o;
|
||||||
if (!b) b = e_border_current_focused();
|
if (!b) b = e_border_current_focused();
|
||||||
if (!b) return;
|
if (!b) return;
|
||||||
|
if (b->client.is_desktop) return;
|
||||||
return;
|
return;
|
||||||
UN(a);
|
UN(a);
|
||||||
UN(data);
|
UN(data);
|
||||||
|
@ -1291,6 +1314,7 @@ e_act_menu_start (void *o, E_Action *a, void *data, int x, int y, int rx, int ry
|
||||||
b = o;
|
b = o;
|
||||||
if (!b) b = e_border_current_focused();
|
if (!b) b = e_border_current_focused();
|
||||||
if (!b) return;
|
if (!b) return;
|
||||||
|
if (b->client.is_desktop) return;
|
||||||
return;
|
return;
|
||||||
UN(a);
|
UN(a);
|
||||||
UN(data);
|
UN(data);
|
||||||
|
@ -1304,9 +1328,6 @@ e_act_menu_start (void *o, E_Action *a, void *data, int x, int y, int rx, int ry
|
||||||
static void
|
static void
|
||||||
e_act_exit_start (void *o, E_Action *a, void *data, int x, int y, int rx, int ry)
|
e_act_exit_start (void *o, E_Action *a, void *data, int x, int y, int rx, int ry)
|
||||||
{
|
{
|
||||||
E_Border *b;
|
|
||||||
|
|
||||||
b = o;
|
|
||||||
exit(0);
|
exit(0);
|
||||||
return;
|
return;
|
||||||
UN(a);
|
UN(a);
|
||||||
|
@ -1321,9 +1342,6 @@ e_act_exit_start (void *o, E_Action *a, void *data, int x, int y, int rx, int ry
|
||||||
static void
|
static void
|
||||||
e_act_restart_start (void *o, E_Action *a, void *data, int x, int y, int rx, int ry)
|
e_act_restart_start (void *o, E_Action *a, void *data, int x, int y, int rx, int ry)
|
||||||
{
|
{
|
||||||
E_Border *b;
|
|
||||||
|
|
||||||
b = o;
|
|
||||||
e_exec_restart();
|
e_exec_restart();
|
||||||
return;
|
return;
|
||||||
UN(a);
|
UN(a);
|
||||||
|
@ -1343,6 +1361,7 @@ e_act_stick_start (void *o, E_Action *a, void *data, int x, int y, int rx, int r
|
||||||
b = o;
|
b = o;
|
||||||
if (!b) b = e_border_current_focused();
|
if (!b) b = e_border_current_focused();
|
||||||
if (!b) return;
|
if (!b) return;
|
||||||
|
if (b->client.is_desktop) return;
|
||||||
if (b->client.sticky) b->client.sticky = 0;
|
if (b->client.sticky) b->client.sticky = 0;
|
||||||
else b->client.sticky = 1;
|
else b->client.sticky = 1;
|
||||||
b->changed = 1;
|
b->changed = 1;
|
||||||
|
@ -1359,9 +1378,6 @@ e_act_stick_start (void *o, E_Action *a, void *data, int x, int y, int rx, int r
|
||||||
static void
|
static void
|
||||||
e_act_sound_start (void *o, E_Action *a, void *data, int x, int y, int rx, int ry)
|
e_act_sound_start (void *o, E_Action *a, void *data, int x, int y, int rx, int ry)
|
||||||
{
|
{
|
||||||
E_Border *b;
|
|
||||||
|
|
||||||
b = o;
|
|
||||||
return;
|
return;
|
||||||
UN(a);
|
UN(a);
|
||||||
UN(data);
|
UN(data);
|
||||||
|
@ -1380,6 +1396,7 @@ e_act_iconify_start (void *o, E_Action *a, void *data, int x, int y, int rx, int
|
||||||
b = o;
|
b = o;
|
||||||
if (!b) b = e_border_current_focused();
|
if (!b) b = e_border_current_focused();
|
||||||
if (!b) return;
|
if (!b) return;
|
||||||
|
if (b->client.is_desktop) return;
|
||||||
return;
|
return;
|
||||||
UN(a);
|
UN(a);
|
||||||
UN(data);
|
UN(data);
|
||||||
|
@ -1398,6 +1415,7 @@ e_act_max_start (void *o, E_Action *a, void *data, int x, int y, int rx, int ry)
|
||||||
b = o;
|
b = o;
|
||||||
if (!b) b = e_border_current_focused();
|
if (!b) b = e_border_current_focused();
|
||||||
if (!b) return;
|
if (!b) return;
|
||||||
|
if (b->client.is_desktop) return;
|
||||||
if (b->current.shaded > 0) return;
|
if (b->current.shaded > 0) return;
|
||||||
if ((b->mode.move) || (b->mode.resize)) return;
|
if ((b->mode.move) || (b->mode.resize)) return;
|
||||||
b->mode.move = 0;
|
b->mode.move = 0;
|
||||||
|
@ -1486,7 +1504,7 @@ e_act_desk_start (void *o, E_Action *a, void *data, int x, int y, int rx, int ry
|
||||||
int desk = 0;
|
int desk = 0;
|
||||||
|
|
||||||
if (a->params) desk = atoi(a->params);
|
if (a->params) desk = atoi(a->params);
|
||||||
e_desktops_goto(desk);
|
e_desktops_goto_desk(desk);
|
||||||
return;
|
return;
|
||||||
UN(o);
|
UN(o);
|
||||||
UN(a);
|
UN(a);
|
||||||
|
|
14
src/border.c
14
src/border.c
|
@ -62,8 +62,9 @@ static void e_cb_border_visibility(E_Border *b);
|
||||||
static void e_border_poll(int val, void *data);
|
static void e_border_poll(int val, void *data);
|
||||||
|
|
||||||
/* what to dowhen we're idle */
|
/* what to dowhen we're idle */
|
||||||
static void
|
|
||||||
e_idle(void *data)
|
void
|
||||||
|
e_border_update_borders(void)
|
||||||
{
|
{
|
||||||
Evas_List l;
|
Evas_List l;
|
||||||
|
|
||||||
|
@ -88,6 +89,12 @@ e_idle(void *data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
e_db_flush();
|
e_db_flush();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
e_idle(void *data)
|
||||||
|
{
|
||||||
|
e_border_update_borders();
|
||||||
return;
|
return;
|
||||||
UN(data);
|
UN(data);
|
||||||
}
|
}
|
||||||
|
@ -2371,6 +2378,9 @@ e_border_viewable(E_Border *b)
|
||||||
|
|
||||||
if (b->current.y >= b->desk->real.h)
|
if (b->current.y >= b->desk->real.h)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
if (!b->current.visible)
|
||||||
|
return 0;
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -87,12 +87,17 @@ struct _E_Border
|
||||||
int titlebar;
|
int titlebar;
|
||||||
int border;
|
int border;
|
||||||
int handles;
|
int handles;
|
||||||
|
int is_desktop;
|
||||||
int w, h;
|
int w, h;
|
||||||
struct {
|
struct {
|
||||||
int requested;
|
int requested;
|
||||||
int x, y;
|
int x, y;
|
||||||
int gravity;
|
int gravity;
|
||||||
} pos;
|
} pos;
|
||||||
|
int desk;
|
||||||
|
struct {
|
||||||
|
int x, y;
|
||||||
|
} area;
|
||||||
} client;
|
} client;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
|
@ -121,6 +126,7 @@ struct _E_Border
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
void e_border_update_borders(void);
|
||||||
void e_border_apply_border(E_Border *b);
|
void e_border_apply_border(E_Border *b);
|
||||||
void e_border_reshape(E_Border *b);
|
void e_border_reshape(E_Border *b);
|
||||||
E_Border *e_border_adopt(Window win, int use_client_pos);
|
E_Border *e_border_adopt(Window win, int use_client_pos);
|
||||||
|
|
122
src/desktops.c
122
src/desktops.c
|
@ -11,7 +11,6 @@ static Evas_List desktops = NULL;
|
||||||
static Window e_base_win = 0;
|
static Window e_base_win = 0;
|
||||||
static int screen_w, screen_h;
|
static int screen_w, screen_h;
|
||||||
static int current_desk = 0;
|
static int current_desk = 0;
|
||||||
static int current_desk_x = 0;
|
|
||||||
|
|
||||||
static void e_idle(void *data);
|
static void e_idle(void *data);
|
||||||
|
|
||||||
|
@ -108,7 +107,6 @@ e_desktops_scroll(E_Desktop *desk, int dx, int dy)
|
||||||
e_window_gravity_set(b->win.main, grav);
|
e_window_gravity_set(b->win.main, grav);
|
||||||
}
|
}
|
||||||
grav_stick = StaticGravity;
|
grav_stick = StaticGravity;
|
||||||
e_window_gravity_set(desk->win.desk, grav_stick);
|
|
||||||
/* scroll */
|
/* scroll */
|
||||||
e_window_move_resize(desk->win.container,
|
e_window_move_resize(desk->win.container,
|
||||||
xd, yd,
|
xd, yd,
|
||||||
|
@ -127,7 +125,6 @@ e_desktops_scroll(E_Desktop *desk, int dx, int dy)
|
||||||
/* e_window_gravity_set(b->win.main, grav_stick);*/
|
/* e_window_gravity_set(b->win.main, grav_stick);*/
|
||||||
}
|
}
|
||||||
e_window_move_resize(desk->win.container, 0, 0, screen_w, screen_h);
|
e_window_move_resize(desk->win.container, 0, 0, screen_w, screen_h);
|
||||||
e_window_gravity_reset(desk->win.desk);
|
|
||||||
for (l = desk->windows; l; l = l->next)
|
for (l = desk->windows; l; l = l->next)
|
||||||
{
|
{
|
||||||
E_Border *b;
|
E_Border *b;
|
||||||
|
@ -175,31 +172,42 @@ e_desktops_free(E_Desktop *desk)
|
||||||
void
|
void
|
||||||
e_desktops_init_file_display(E_Desktop *desk)
|
e_desktops_init_file_display(E_Desktop *desk)
|
||||||
{
|
{
|
||||||
desk->view = e_view_new();
|
E_View *v;
|
||||||
desk->view->size.w = desk->real.w;
|
E_Border *b;
|
||||||
desk->view->size.h = desk->real.h;
|
|
||||||
desk->view->is_desktop = 1;
|
v = e_view_new();
|
||||||
|
v->size.w = desk->real.w;
|
||||||
/* FIXME: load bg here */
|
v->size.h = desk->real.h;
|
||||||
{
|
v->options.back_pixmap = 1;
|
||||||
char buf[4096];
|
v->is_desktop = 1;
|
||||||
|
|
||||||
sprintf(buf, "%s/default.bg.db", e_config_get("backgrounds"));
|
|
||||||
desk->view->bg = e_background_load(buf);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* fixme: later */
|
/* fixme: later */
|
||||||
/* uncomment this and comment out the next line for some tress testing */
|
/* uncomment this and comment out the next line for some tress testing */
|
||||||
/* e_strdup(desk->view->dir, "/dev"); */
|
/* e_strdup(v->dir, "/dev"); */
|
||||||
e_strdup(desk->view->dir, e_file_home());
|
e_strdup(v->dir, e_file_home());
|
||||||
e_view_realize(desk->view);
|
|
||||||
|
/* FIXME: load bg here */
|
||||||
|
{
|
||||||
|
char buf[4096];
|
||||||
|
|
||||||
|
sprintf(buf, "%s/default.bg.db", e_config_get("backgrounds"));
|
||||||
|
v->bg = e_background_load(buf);
|
||||||
|
}
|
||||||
|
e_view_realize(v);
|
||||||
|
|
||||||
if (desk->view->options.back_pixmap)
|
e_window_hint_set_borderless(v->win.base);
|
||||||
e_view_update(desk->view);
|
e_window_hint_set_sticky(v->win.base, 1);
|
||||||
|
e_window_hint_set_layer(v->win.base, 1);
|
||||||
|
e_window_set_title(v->win.base, "Desktop");
|
||||||
|
e_window_set_name_class(v->win.base, "FileView", "Desktop");
|
||||||
|
e_window_set_min_size(v->win.base, desk->real.w, desk->real.h);
|
||||||
|
e_window_set_max_size(v->win.base, desk->real.w, desk->real.h);
|
||||||
|
b = e_border_adopt(v->win.base, 1);
|
||||||
|
b->client.sticky = 1;
|
||||||
|
b->client.fixed = 1;
|
||||||
|
b->client.is_desktop = 1;
|
||||||
|
|
||||||
desk->win.desk = desk->view->win.base;
|
if (v->options.back_pixmap) e_view_update(v);
|
||||||
e_window_reparent(desk->win.desk, desk->win.container, 0, 0);
|
|
||||||
e_window_show(desk->win.desk);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
E_Desktop *
|
E_Desktop *
|
||||||
|
@ -227,8 +235,6 @@ e_desktops_new(void)
|
||||||
|
|
||||||
desktops = evas_list_append(desktops, desk);
|
desktops = evas_list_append(desktops, desk);
|
||||||
|
|
||||||
e_desktops_init_file_display(desk);
|
|
||||||
|
|
||||||
return desk;
|
return desk;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -237,6 +243,9 @@ e_desktops_add_border(E_Desktop *d, E_Border *b)
|
||||||
{
|
{
|
||||||
if ((!d) || (!b)) return;
|
if ((!d) || (!b)) return;
|
||||||
b->desk = d;
|
b->desk = d;
|
||||||
|
b->client.desk = d->desk.desk;
|
||||||
|
b->client.area.x = d->desk.area.x;
|
||||||
|
b->client.area.y = d->desk.area.y;
|
||||||
e_border_raise(b);
|
e_border_raise(b);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -263,18 +272,13 @@ e_desktops_show(E_Desktop *d)
|
||||||
void
|
void
|
||||||
e_desktops_hide(E_Desktop *d)
|
e_desktops_hide(E_Desktop *d)
|
||||||
{
|
{
|
||||||
if (d->view->options.back_pixmap) e_view_update(d->view);
|
|
||||||
e_window_hide(d->win.main);
|
e_window_hide(d->win.main);
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
e_desktops_get_num(void)
|
e_desktops_get_num(void)
|
||||||
{
|
{
|
||||||
Evas_List l;
|
return 8;
|
||||||
int i;
|
|
||||||
|
|
||||||
for (i = 0, l = desktops; l; l = l->next, i++);
|
|
||||||
return i;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
E_Desktop *
|
E_Desktop *
|
||||||
|
@ -297,16 +301,62 @@ e_desktops_get_current(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
e_desktops_goto(int d)
|
e_desktops_goto_desk(int d)
|
||||||
|
{
|
||||||
|
e_desktops_goto(d, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
e_desktops_goto(int d, int ax, int ay)
|
||||||
{
|
{
|
||||||
int dx;
|
|
||||||
E_Desktop *desk;
|
E_Desktop *desk;
|
||||||
|
|
||||||
dx = d - current_desk_x;
|
|
||||||
desk = e_desktops_get(0);
|
desk = e_desktops_get(0);
|
||||||
if (desk)
|
if (desk)
|
||||||
{
|
{
|
||||||
e_desktops_scroll(desk, -(dx * desk->real.w), 0);
|
int dx, dy;
|
||||||
|
Evas_List l;
|
||||||
|
|
||||||
|
if ((d == desk->desk.desk) &&
|
||||||
|
(ax == desk->desk.area.x) &&
|
||||||
|
(ay == desk->desk.area.y)) return;
|
||||||
|
|
||||||
|
dx = ax - desk->desk.area.x;
|
||||||
|
dy = ay - desk->desk.area.y;
|
||||||
|
|
||||||
|
for (l = desk->windows; l; l = l->next)
|
||||||
|
{
|
||||||
|
E_Border *b;
|
||||||
|
|
||||||
|
b = l->data;
|
||||||
|
if (!b->client.sticky)
|
||||||
|
{
|
||||||
|
if (b->client.desk != d)
|
||||||
|
{
|
||||||
|
if (b->current.requested.visible)
|
||||||
|
{
|
||||||
|
b->current.requested.visible = 0;
|
||||||
|
b->changed = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!b->current.requested.visible)
|
||||||
|
{
|
||||||
|
b->current.requested.visible = 1;
|
||||||
|
b->changed = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
e_border_update_borders();
|
||||||
|
|
||||||
|
/* if no scrolling... */
|
||||||
|
e_desktops_scroll(desk, -(dx * desk->real.w), -(dy * desk->real.h));
|
||||||
|
/* if scrolling.. need to setup a timeout etc. */
|
||||||
|
|
||||||
|
desk->desk.desk = d;
|
||||||
|
desk->desk.area.x = ax;
|
||||||
|
desk->desk.area.y = ay;
|
||||||
}
|
}
|
||||||
current_desk_x = d;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,14 +19,18 @@ struct _E_Desktop
|
||||||
struct {
|
struct {
|
||||||
Window main;
|
Window main;
|
||||||
Window container;
|
Window container;
|
||||||
Window desk;
|
|
||||||
} win;
|
} win;
|
||||||
E_View *view;
|
|
||||||
int x, y;
|
int x, y;
|
||||||
struct {
|
struct {
|
||||||
int w, h;
|
int w, h;
|
||||||
} real, virt;
|
} real, virt;
|
||||||
Evas_List windows;
|
Evas_List windows;
|
||||||
|
struct {
|
||||||
|
int desk;
|
||||||
|
struct {
|
||||||
|
int x, y;
|
||||||
|
} area;
|
||||||
|
} desk;
|
||||||
int changed;
|
int changed;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -43,6 +47,7 @@ void e_desktops_hide(E_Desktop *d);
|
||||||
int e_desktops_get_num(void);
|
int e_desktops_get_num(void);
|
||||||
E_Desktop *e_desktops_get(int d);
|
E_Desktop *e_desktops_get(int d);
|
||||||
int e_desktops_get_current(void);
|
int e_desktops_get_current(void);
|
||||||
void e_desktops_goto(int d);
|
void e_desktops_goto_desk(int d);
|
||||||
|
void e_desktops_goto(int d, int ax, int ay);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -43,7 +43,7 @@ namespace e {
|
||||||
|
|
||||||
function flip_to_desktop( number desk )
|
function flip_to_desktop( number desk )
|
||||||
%{
|
%{
|
||||||
e_desktops_goto( (long)desk );
|
e_desktops_goto_desk( (long)desk );
|
||||||
%}
|
%}
|
||||||
|
|
||||||
function get_current_desktop()
|
function get_current_desktop()
|
||||||
|
|
2
src/fs.c
2
src/fs.c
|
@ -20,7 +20,7 @@ e_fs_flush_timeout(int val, void *data)
|
||||||
{
|
{
|
||||||
if (efsd_flush(ec) > 0)
|
if (efsd_flush(ec) > 0)
|
||||||
e_add_event_timer("e_fs_flush_timeout()",
|
e_add_event_timer("e_fs_flush_timeout()",
|
||||||
0.01, e_fs_flush_timeout, 0, NULL);
|
0.00, e_fs_flush_timeout, 0, NULL);
|
||||||
}
|
}
|
||||||
UN(data);
|
UN(data);
|
||||||
UN(val);
|
UN(val);
|
||||||
|
|
|
@ -131,7 +131,9 @@ main(int argc, char **argv)
|
||||||
#ifdef USE_FERITE
|
#ifdef USE_FERITE
|
||||||
e_ferite_init();
|
e_ferite_init();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
e_desktops_init_file_display(e_desktops_get(0));
|
||||||
|
|
||||||
setup();
|
setup();
|
||||||
|
|
||||||
e_event_loop();
|
e_event_loop();
|
||||||
|
|
|
@ -1201,7 +1201,7 @@ e_view_queue_icon_xy_record(E_View *v)
|
||||||
char name[4096];
|
char name[4096];
|
||||||
|
|
||||||
sprintf(name, "icon_xy_record.%s", v->dir);
|
sprintf(name, "icon_xy_record.%s", v->dir);
|
||||||
e_add_event_timer(name, 2.00, e_view_write_icon_xy_timeout, 0, v);
|
e_add_event_timer(name, 0.10, e_view_write_icon_xy_timeout, 0, v);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue