forked from enlightenment/enlightenment
Fix gqview segv. The border wasn't removed from the containers client list.
SVN revision: 14851
This commit is contained in:
parent
b62b86a6f7
commit
ca23bfa67a
|
@ -2924,7 +2924,6 @@ _e_border_eval(E_Border *bd)
|
||||||
evas_object_del(bd->bg_object);
|
evas_object_del(bd->bg_object);
|
||||||
}
|
}
|
||||||
o = edje_object_add(bd->bg_evas);
|
o = edje_object_add(bd->bg_evas);
|
||||||
bd->bg_object = o;
|
|
||||||
snprintf(buf, sizeof(buf), "widgets/border/%s/border",
|
snprintf(buf, sizeof(buf), "widgets/border/%s/border",
|
||||||
bd->client.border.name);
|
bd->client.border.name);
|
||||||
ok = e_theme_edje_object_set(o, "base/theme/borders", buf);
|
ok = e_theme_edje_object_set(o, "base/theme/borders", buf);
|
||||||
|
@ -2932,6 +2931,7 @@ _e_border_eval(E_Border *bd)
|
||||||
{
|
{
|
||||||
const char *shape_option;
|
const char *shape_option;
|
||||||
|
|
||||||
|
bd->bg_object = o;
|
||||||
shape_option = edje_object_data_get(o, "shaped");
|
shape_option = edje_object_data_get(o, "shaped");
|
||||||
if (shape_option)
|
if (shape_option)
|
||||||
{
|
{
|
||||||
|
@ -2975,6 +2975,8 @@ _e_border_eval(E_Border *bd)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
evas_object_del(o);
|
||||||
|
bd->bg_object = NULL;
|
||||||
l = 0;
|
l = 0;
|
||||||
r = 0;
|
r = 0;
|
||||||
t = 0;
|
t = 0;
|
||||||
|
@ -2990,37 +2992,40 @@ _e_border_eval(E_Border *bd)
|
||||||
bd->h += (bd->client_inset.t + bd->client_inset.b);
|
bd->h += (bd->client_inset.t + bd->client_inset.b);
|
||||||
bd->changes.size = 1;
|
bd->changes.size = 1;
|
||||||
ecore_x_window_move(bd->client.shell_win, l, t);
|
ecore_x_window_move(bd->client.shell_win, l, t);
|
||||||
edje_object_signal_callback_add(o, "move_start", "*",
|
if (bd->bg_object)
|
||||||
_e_border_cb_signal_move_start, bd);
|
{
|
||||||
edje_object_signal_callback_add(o, "move_stop", "*",
|
edje_object_signal_callback_add(bd->bg_object, "move_start", "*",
|
||||||
_e_border_cb_signal_move_stop, bd);
|
_e_border_cb_signal_move_start, bd);
|
||||||
edje_object_signal_callback_add(o, "resize_tl_start", "*",
|
edje_object_signal_callback_add(bd->bg_object, "move_stop", "*",
|
||||||
_e_border_cb_signal_resize_tl_start, bd);
|
_e_border_cb_signal_move_stop, bd);
|
||||||
edje_object_signal_callback_add(o, "resize_t_start", "*",
|
edje_object_signal_callback_add(bd->bg_object, "resize_tl_start", "*",
|
||||||
_e_border_cb_signal_resize_t_start, bd);
|
_e_border_cb_signal_resize_tl_start, bd);
|
||||||
edje_object_signal_callback_add(o, "resize_tr_start", "*",
|
edje_object_signal_callback_add(bd->bg_object, "resize_t_start", "*",
|
||||||
_e_border_cb_signal_resize_tr_start, bd);
|
_e_border_cb_signal_resize_t_start, bd);
|
||||||
edje_object_signal_callback_add(o, "resize_r_start", "*",
|
edje_object_signal_callback_add(bd->bg_object, "resize_tr_start", "*",
|
||||||
_e_border_cb_signal_resize_r_start, bd);
|
_e_border_cb_signal_resize_tr_start, bd);
|
||||||
edje_object_signal_callback_add(o, "resize_br_start", "*",
|
edje_object_signal_callback_add(bd->bg_object, "resize_r_start", "*",
|
||||||
_e_border_cb_signal_resize_br_start, bd);
|
_e_border_cb_signal_resize_r_start, bd);
|
||||||
edje_object_signal_callback_add(o, "resize_b_start", "*",
|
edje_object_signal_callback_add(bd->bg_object, "resize_br_start", "*",
|
||||||
_e_border_cb_signal_resize_b_start, bd);
|
_e_border_cb_signal_resize_br_start, bd);
|
||||||
edje_object_signal_callback_add(o, "resize_bl_start", "*",
|
edje_object_signal_callback_add(bd->bg_object, "resize_b_start", "*",
|
||||||
_e_border_cb_signal_resize_bl_start, bd);
|
_e_border_cb_signal_resize_b_start, bd);
|
||||||
edje_object_signal_callback_add(o, "resize_l_start", "*",
|
edje_object_signal_callback_add(bd->bg_object, "resize_bl_start", "*",
|
||||||
_e_border_cb_signal_resize_l_start, bd);
|
_e_border_cb_signal_resize_bl_start, bd);
|
||||||
edje_object_signal_callback_add(o, "resize_stop", "*",
|
edje_object_signal_callback_add(bd->bg_object, "resize_l_start", "*",
|
||||||
_e_border_cb_signal_resize_stop, bd);
|
_e_border_cb_signal_resize_l_start, bd);
|
||||||
edje_object_signal_callback_add(o, "action", "*",
|
edje_object_signal_callback_add(bd->bg_object, "resize_stop", "*",
|
||||||
_e_border_cb_signal_action, bd);
|
_e_border_cb_signal_resize_stop, bd);
|
||||||
edje_object_signal_callback_add(o, "drag", "*",
|
edje_object_signal_callback_add(bd->bg_object, "action", "*",
|
||||||
_e_border_cb_signal_drag, bd);
|
_e_border_cb_signal_action, bd);
|
||||||
if (bd->focused)
|
edje_object_signal_callback_add(bd->bg_object, "drag", "*",
|
||||||
edje_object_signal_emit(bd->bg_object, "active", "");
|
_e_border_cb_signal_drag, bd);
|
||||||
evas_object_move(o, 0, 0);
|
if (bd->focused)
|
||||||
evas_object_resize(o, bd->w, bd->h);
|
edje_object_signal_emit(bd->bg_object, "active", "");
|
||||||
evas_object_show(o);
|
evas_object_move(bd->bg_object, 0, 0);
|
||||||
|
evas_object_resize(bd->bg_object, bd->w, bd->h);
|
||||||
|
evas_object_show(bd->bg_object);
|
||||||
|
}
|
||||||
bd->client.border.changed = 0;
|
bd->client.border.changed = 0;
|
||||||
|
|
||||||
if (bd->icon_object)
|
if (bd->icon_object)
|
||||||
|
|
|
@ -549,17 +549,13 @@ e_container_border_add(E_Border *bd)
|
||||||
void
|
void
|
||||||
e_container_border_remove(E_Border *bd)
|
e_container_border_remove(E_Border *bd)
|
||||||
{
|
{
|
||||||
int pos;
|
int i;
|
||||||
|
|
||||||
if (bd->layer == 0) pos = 0;
|
for (i = 0; i < 7; i++)
|
||||||
else if ((bd->layer > 0) && (bd->layer <= 50)) pos = 1;
|
{
|
||||||
else if ((bd->layer > 50) && (bd->layer <= 100)) pos = 2;
|
bd->zone->container->layers[i].clients =
|
||||||
else if ((bd->layer > 100) && (bd->layer <= 150)) pos = 3;
|
evas_list_remove(bd->zone->container->layers[i].clients, bd);
|
||||||
else if ((bd->layer > 150) && (bd->layer <= 200)) pos = 4;
|
}
|
||||||
else pos = 5;
|
|
||||||
|
|
||||||
bd->zone->container->layers[pos].clients =
|
|
||||||
evas_list_remove(bd->zone->container->layers[pos].clients, bd);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -92,6 +92,10 @@ e_manager_new(Ecore_X_Window root)
|
||||||
if (h) man->handlers = evas_list_append(man->handlers, h);
|
if (h) man->handlers = evas_list_append(man->handlers, h);
|
||||||
h = ecore_event_handler_add(ECORE_X_EVENT_KEY_DOWN, _e_manager_cb_key_down, man);
|
h = ecore_event_handler_add(ECORE_X_EVENT_KEY_DOWN, _e_manager_cb_key_down, man);
|
||||||
if (h) man->handlers = evas_list_append(man->handlers, h);
|
if (h) man->handlers = evas_list_append(man->handlers, h);
|
||||||
|
|
||||||
|
/* setup hints */
|
||||||
|
e_hints_manager_init(man);
|
||||||
|
|
||||||
return man;
|
return man;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -273,6 +277,8 @@ e_manager_resize(E_Manager *man, int w, int h)
|
||||||
con = l->data;
|
con = l->data;
|
||||||
e_container_resize(con, man->w, man->h);
|
e_container_resize(con, man->w, man->h);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ecore_x_netwm_desk_size_set(man->root, man->w, man->h);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
Loading…
Reference in New Issue