parent
119f7014fa
commit
8a7477d9a8
|
@ -2840,93 +2840,86 @@ _e_gadcon_cb_dnd_enter(void *data, const char *type __UNUSED__, void *event)
|
||||||
gc->new_gcc = NULL;
|
gc->new_gcc = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ev->data)
|
while (ev->data)
|
||||||
{
|
{
|
||||||
/* Create a new gadcon to show where the gadcon will end up */
|
/* Create a new gadcon to show where the gadcon will end up */
|
||||||
E_Gadcon_Client_Class *cc;
|
E_Gadcon_Client_Class *cc;
|
||||||
|
|
||||||
gcc = ev->data;
|
gcc = ev->data;
|
||||||
cc = eina_hash_find(providers, gcc->name);
|
cc = eina_hash_find(providers, gcc->name);
|
||||||
if (cc)
|
if (!cc) break;
|
||||||
|
if (!gcc->style)
|
||||||
|
gc->new_gcc = cc->func.init(gc, gcc->name, gcc->cf->id,
|
||||||
|
cc->default_style);
|
||||||
|
else
|
||||||
|
gc->new_gcc = cc->func.init(gc, gcc->name, gcc->cf->id,
|
||||||
|
gcc->style);
|
||||||
|
|
||||||
|
if (!gc->new_gcc) break;
|
||||||
|
gc->new_gcc->cf = gcc->cf;
|
||||||
|
gc->new_gcc->client_class = cc;
|
||||||
|
gc->new_gcc->config.pos = gcc->config.pos;
|
||||||
|
gc->new_gcc->config.size = gcc->config.size;
|
||||||
|
gc->new_gcc->config.res = gcc->config.res;
|
||||||
|
gc->new_gcc->state_info.seq = gcc->state_info.seq;
|
||||||
|
gc->new_gcc->state_info.flags = gcc->state_info.flags;
|
||||||
|
gc->new_gcc->config.pos_x = gcc->config.pos_x;
|
||||||
|
gc->new_gcc->config.pos_y = gcc->config.pos_y;
|
||||||
|
gc->new_gcc->config.size_w = gcc->config.size_w;
|
||||||
|
gc->new_gcc->config.size_h = gcc->config.size_h;
|
||||||
|
if (gc->new_gcc->client_class->func.orient)
|
||||||
{
|
{
|
||||||
if (!gcc->style)
|
if (gc->orient == E_GADCON_ORIENT_FLOAT)
|
||||||
gc->new_gcc = cc->func.init(gc, gcc->name, gcc->cf->id,
|
|
||||||
cc->default_style);
|
|
||||||
else
|
|
||||||
gc->new_gcc = cc->func.init(gc, gcc->name, gcc->cf->id,
|
|
||||||
gcc->style);
|
|
||||||
|
|
||||||
if (gc->new_gcc)
|
|
||||||
{
|
{
|
||||||
gc->new_gcc->cf = gcc->cf;
|
gc->new_gcc->client_class->func.orient(gc->new_gcc, gcc->gadcon->orient);
|
||||||
gc->new_gcc->client_class = cc;
|
gc->new_gcc->cf->orient = gcc->gadcon->orient;
|
||||||
gc->new_gcc->config.pos = gcc->config.pos;
|
}
|
||||||
gc->new_gcc->config.size = gcc->config.size;
|
else
|
||||||
gc->new_gcc->config.res = gcc->config.res;
|
{
|
||||||
gc->new_gcc->state_info.seq = gcc->state_info.seq;
|
gc->new_gcc->client_class->func.orient(gc->new_gcc, gc->orient);
|
||||||
gc->new_gcc->state_info.flags = gcc->state_info.flags;
|
gc->new_gcc->cf->orient = gc->orient;
|
||||||
gc->new_gcc->config.pos_x = gcc->config.pos_x;
|
|
||||||
gc->new_gcc->config.pos_y = gcc->config.pos_y;
|
|
||||||
gc->new_gcc->config.size_w = gcc->config.size_w;
|
|
||||||
gc->new_gcc->config.size_h = gcc->config.size_h;
|
|
||||||
if (gc->new_gcc->client_class->func.orient)
|
|
||||||
{
|
|
||||||
if (gc->orient == E_GADCON_ORIENT_FLOAT)
|
|
||||||
{
|
|
||||||
gc->new_gcc->client_class->func.orient(gc->new_gcc, gcc->gadcon->orient);
|
|
||||||
gc->new_gcc->cf->orient = gcc->gadcon->orient;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
gc->new_gcc->client_class->func.orient(gc->new_gcc, gc->orient);
|
|
||||||
gc->new_gcc->cf->orient = gc->orient;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (gc->new_gcc->o_frame)
|
|
||||||
e_gadcon_layout_pack_options_set(gc->new_gcc->o_frame, gc->new_gcc);
|
|
||||||
else if (gc->new_gcc->o_base)
|
|
||||||
{
|
|
||||||
e_gadcon_layout_pack_options_set(gc->new_gcc->o_base, gc->new_gcc);
|
|
||||||
if (!gc->o_container)
|
|
||||||
{
|
|
||||||
int w, h, gw, gh;
|
|
||||||
|
|
||||||
w = gc->zone->w;
|
|
||||||
h = gc->zone->h;
|
|
||||||
if ((!gc->new_gcc->config.pos_x) && (!gc->new_gcc->config.pos_y))
|
|
||||||
{
|
|
||||||
gc->new_gcc->config.pos_x = (double)ev->x / (double)w;
|
|
||||||
gc->new_gcc->config.pos_y = (double)ev->y / (double)h;
|
|
||||||
}
|
|
||||||
if ((!gc->new_gcc->config.size_w) && (!gc->new_gcc->config.size_h))
|
|
||||||
{
|
|
||||||
evas_object_geometry_get(gcc->o_frame ?: gcc->o_base, NULL, NULL, &gw, &gh);
|
|
||||||
gc->new_gcc->config.size_w = (double)gw / (double)w;
|
|
||||||
gc->new_gcc->config.size_h = (double)gh / (double)h;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
gw = gc->new_gcc->config.size_w * w;
|
|
||||||
gh = gc->new_gcc->config.size_h * h;
|
|
||||||
}
|
|
||||||
evas_object_resize(gc->new_gcc->o_base, gw, gh);
|
|
||||||
evas_object_move(gc->new_gcc->o_base, ev->x, ev->y);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
evas_object_hide(gc->drag_gcc->drag.drag->object);
|
|
||||||
e_gadcon_client_edit_begin(gc->new_gcc);
|
|
||||||
e_gadcon_client_autoscroll_set(gc->new_gcc, gcc->autoscroll);
|
|
||||||
/* e_gadcon_client_resizable_set(gc->new_gcc, gcc->resizable);*/
|
|
||||||
gc->new_gcc->state_info.resist = 1;
|
|
||||||
if (gc->instant_edit)
|
|
||||||
e_gadcon_client_util_menu_attach(gc->new_gcc);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
if (gc->new_gcc->o_frame)
|
||||||
else
|
e_gadcon_layout_pack_options_set(gc->new_gcc->o_frame, gc->new_gcc);
|
||||||
{
|
else if (gc->new_gcc->o_base)
|
||||||
/* TODO: Create a placeholder to show where the gadcon will end up */
|
{
|
||||||
|
e_gadcon_layout_pack_options_set(gc->new_gcc->o_base, gc->new_gcc);
|
||||||
|
if (!gc->o_container)
|
||||||
|
{
|
||||||
|
int w, h, gw, gh;
|
||||||
|
|
||||||
|
w = gc->zone->w;
|
||||||
|
h = gc->zone->h;
|
||||||
|
if ((!gc->new_gcc->config.pos_x) && (!gc->new_gcc->config.pos_y))
|
||||||
|
{
|
||||||
|
gc->new_gcc->config.pos_x = (double)ev->x / (double)w;
|
||||||
|
gc->new_gcc->config.pos_y = (double)ev->y / (double)h;
|
||||||
|
}
|
||||||
|
if ((!gc->new_gcc->config.size_w) && (!gc->new_gcc->config.size_h))
|
||||||
|
{
|
||||||
|
evas_object_geometry_get(gcc->o_frame ?: gcc->o_base, NULL, NULL, &gw, &gh);
|
||||||
|
gc->new_gcc->config.size_w = (double)gw / (double)w;
|
||||||
|
gc->new_gcc->config.size_h = (double)gh / (double)h;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gw = gc->new_gcc->config.size_w * w;
|
||||||
|
gh = gc->new_gcc->config.size_h * h;
|
||||||
|
}
|
||||||
|
evas_object_resize(gc->new_gcc->o_base, gw, gh);
|
||||||
|
evas_object_move(gc->new_gcc->o_base, ev->x, ev->y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
evas_object_hide(gc->drag_gcc->drag.drag->object);
|
||||||
|
e_gadcon_client_edit_begin(gc->new_gcc);
|
||||||
|
e_gadcon_client_autoscroll_set(gc->new_gcc, gcc->autoscroll);
|
||||||
|
/* e_gadcon_client_resizable_set(gc->new_gcc, gcc->resizable);*/
|
||||||
|
gc->new_gcc->state_info.resist = 1;
|
||||||
|
if (gc->instant_edit)
|
||||||
|
e_gadcon_client_util_menu_attach(gc->new_gcc);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
e_gadcon_layout_thaw(gc->o_container);
|
e_gadcon_layout_thaw(gc->o_container);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue