forked from enlightenment/enlightenment
gadcon config generates new id's for new gadcon clients... properly.
SVN revision: 22736
This commit is contained in:
parent
8e9ee263e7
commit
0f5945349d
|
@ -1004,6 +1004,23 @@ e_gadcon_client_util_menu_attach(E_Gadcon_Client *gcc)
|
|||
evas_object_event_callback_add(gcc->o_base, EVAS_CALLBACK_MOUSE_DOWN, _e_gadcon_client_cb_mouse_down, gcc);
|
||||
}
|
||||
|
||||
EAPI E_Gadcon_Client *
|
||||
e_gadcon_client_find(E_Gadcon *gc, char *name, char *id)
|
||||
{
|
||||
Evas_List *l;
|
||||
|
||||
for (l = gc->clients; l; l = l->next)
|
||||
{
|
||||
E_Gadcon_Client *gcc;
|
||||
|
||||
gcc = l->data;
|
||||
if ((gcc->name) && (gcc->id) &&
|
||||
(!strcmp(name, gcc->name)) && (!strcmp(id, gcc->id)))
|
||||
return gcc;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* local subsystem functions */
|
||||
static void
|
||||
_e_gadcon_free(E_Gadcon *gc)
|
||||
|
@ -1167,7 +1184,9 @@ _e_gadcon_client_save(E_Gadcon_Client *gcc)
|
|||
for (l = e_config->gadcons; l; l = l->next)
|
||||
{
|
||||
cf_gc = l->data;
|
||||
if ((!strcmp(cf_gc->name, gcc->gadcon->name)) &&
|
||||
if ((cf_gc->name) && (gcc->gadcon->name) &&
|
||||
(cf_gc->id) && (gcc->gadcon->id) &&
|
||||
(!strcmp(cf_gc->name, gcc->gadcon->name)) &&
|
||||
(!strcmp(cf_gc->id, gcc->gadcon->id)))
|
||||
{
|
||||
ok++;
|
||||
|
@ -1175,7 +1194,9 @@ _e_gadcon_client_save(E_Gadcon_Client *gcc)
|
|||
{
|
||||
cf_gcc = l2->data;
|
||||
|
||||
if ((!strcmp(cf_gcc->name, gcc->name)) &&
|
||||
if ((cf_gcc->name) && (gcc->name) &&
|
||||
(cf_gcc->id) && (gcc->id) &&
|
||||
(!strcmp(cf_gcc->name, gcc->name)) &&
|
||||
(!strcmp(cf_gcc->id, gcc->id)))
|
||||
{
|
||||
cf_gcc->geom.pos = gcc->config.pos;
|
||||
|
|
|
@ -160,5 +160,7 @@ EAPI void e_gadcon_client_resizable_set(E_Gadcon_Client *gcc, int re
|
|||
EAPI void e_gadcon_client_util_menu_items_append(E_Gadcon_Client *gcc, E_Menu *menu, int flags);
|
||||
EAPI void e_gadcon_client_util_menu_attach(E_Gadcon_Client *gcc);
|
||||
|
||||
EAPI E_Gadcon_Client *e_gadcon_client_find(E_Gadcon *gc, char *name, char *id);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -77,10 +77,11 @@ _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
|||
static int
|
||||
_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
||||
{
|
||||
Evas_List *l;
|
||||
E_Config_Gadcon *cf_gc;
|
||||
E_Config_Gadcon_Client *cf_gcc;
|
||||
int ok = 0;
|
||||
Evas_List *l, *l2;
|
||||
E_Config_Gadcon *cf_gc, *cf_gc2;
|
||||
E_Config_Gadcon_Client *cf_gcc, *cf_gcc2;
|
||||
int i, ok = 0;
|
||||
char buf[256];
|
||||
|
||||
cfdata->gc->config_dialog = cfd;
|
||||
for (l = e_config->gadcons; l; l = l->next)
|
||||
|
@ -113,9 +114,31 @@ _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
|
|||
return 1; /* Apply was OK */
|
||||
}
|
||||
}
|
||||
snprintf(buf, sizeof(buf), "default");
|
||||
for (i = 0; ; i++)
|
||||
{
|
||||
ok = 1;
|
||||
for (l = e_config->gadcons; l; l = l->next)
|
||||
{
|
||||
cf_gc2 = l->data;
|
||||
for (l2 = cf_gc2->clients; l2; l2 = l2->next)
|
||||
{
|
||||
cf_gcc2 = l2->data;
|
||||
if ((!cf_gcc2->name) || (!cf_gcc2->id)) continue;
|
||||
if ((!strcmp(cf_gcc2->name, cfdata->cname)) && (!strcmp(cf_gcc2->id, buf)))
|
||||
{
|
||||
ok = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!ok) break;
|
||||
}
|
||||
if (ok) break;
|
||||
snprintf(buf, sizeof(buf), "other-%i", ok);
|
||||
}
|
||||
cf_gcc = E_NEW(E_Config_Gadcon_Client, 1);
|
||||
cf_gcc->name = evas_stringshare_add(cfdata->cname);
|
||||
cf_gcc->id = evas_stringshare_add("default");
|
||||
cf_gcc->id = evas_stringshare_add(buf);
|
||||
cf_gcc->geom.res = 800;
|
||||
cf_gcc->geom.size = 80;
|
||||
cf_gcc->geom.pos = cf_gcc->geom.res - cf_gcc->geom.size;
|
||||
|
|
|
@ -150,7 +150,7 @@ _gc_init(E_Gadcon *gc, char *name, char *id, char *style)
|
|||
e_drop_handler_add(inst,
|
||||
_ibar_inst_cb_enter, _ibar_inst_cb_move,
|
||||
_ibar_inst_cb_leave, _ibar_inst_cb_drop,
|
||||
drop, 3, cx + x, cy + y, w, h);
|
||||
drop, 3, cx + x, cy + y, w, h);
|
||||
evas_object_event_callback_add(o, EVAS_CALLBACK_MOVE,
|
||||
_ibar_cb_obj_moveresize, inst);
|
||||
evas_object_event_callback_add(o, EVAS_CALLBACK_RESIZE,
|
||||
|
|
|
@ -1334,8 +1334,6 @@ _pager_window_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_i
|
|||
ev = event_info;
|
||||
pw = data;
|
||||
|
||||
printf("MOV %i %i!\n", ev->cur.output.x, ev->cur.output.y);
|
||||
|
||||
if (!pw) return;
|
||||
/* prevent drag for a few pixels */
|
||||
if (pw->drag.start)
|
||||
|
|
Loading…
Reference in New Issue