Merge branch 'multi'
This commit is contained in:
commit
e21be6619b
|
@ -1,6 +1,7 @@
|
|||
#include "private.h"
|
||||
|
||||
#include <Ecore.h>
|
||||
#include <Ecore_Con.h>
|
||||
#include <Ecore_Ipc.h>
|
||||
#include <Eet.h>
|
||||
#include "ipc.h"
|
||||
|
@ -92,6 +93,8 @@ ipc_init(void)
|
|||
"background", background, EET_T_STRING);
|
||||
EET_DATA_DESCRIPTOR_ADD_BASIC(new_inst_edd, Ipc_Instance,
|
||||
"name", name, EET_T_STRING);
|
||||
EET_DATA_DESCRIPTOR_ADD_BASIC(new_inst_edd, Ipc_Instance,
|
||||
"theme", theme, EET_T_STRING);
|
||||
EET_DATA_DESCRIPTOR_ADD_BASIC(new_inst_edd, Ipc_Instance,
|
||||
"role", role, EET_T_STRING);
|
||||
EET_DATA_DESCRIPTOR_ADD_BASIC(new_inst_edd, Ipc_Instance,
|
||||
|
@ -128,6 +131,16 @@ ipc_init(void)
|
|||
"hold", hold, EET_T_INT);
|
||||
EET_DATA_DESCRIPTOR_ADD_BASIC(new_inst_edd, Ipc_Instance,
|
||||
"nowm", nowm, EET_T_INT);
|
||||
EET_DATA_DESCRIPTOR_ADD_BASIC(new_inst_edd, Ipc_Instance,
|
||||
"xterm_256color", xterm_256color, EET_T_INT);
|
||||
EET_DATA_DESCRIPTOR_ADD_BASIC(new_inst_edd, Ipc_Instance,
|
||||
"active_links", active_links, EET_T_INT);
|
||||
EET_DATA_DESCRIPTOR_ADD_BASIC(new_inst_edd, Ipc_Instance,
|
||||
"video_mute", active_links, EET_T_INT);
|
||||
EET_DATA_DESCRIPTOR_ADD_BASIC(new_inst_edd, Ipc_Instance,
|
||||
"cursor_blink", active_links, EET_T_INT);
|
||||
EET_DATA_DESCRIPTOR_ADD_BASIC(new_inst_edd, Ipc_Instance,
|
||||
"visual_bell", active_links, EET_T_INT);
|
||||
}
|
||||
|
||||
Eina_Bool
|
||||
|
@ -171,6 +184,19 @@ ipc_instance_new_func_set(void (*func) (Ipc_Instance *inst))
|
|||
func_new_inst = func;
|
||||
}
|
||||
|
||||
void
|
||||
ipc_instance_conn_free(void)
|
||||
{
|
||||
char *hash = _ipc_hash_get();
|
||||
char *address = ecore_con_local_path_new(EINA_FALSE,
|
||||
hash,
|
||||
0);
|
||||
errno = 0;
|
||||
unlink(address);
|
||||
ERR("unlinking: '%s': %s", address, strerror(errno));
|
||||
free(address);
|
||||
}
|
||||
|
||||
Eina_Bool
|
||||
ipc_instance_add(Ipc_Instance *inst)
|
||||
{
|
||||
|
@ -186,6 +212,7 @@ ipc_instance_add(Ipc_Instance *inst)
|
|||
free(hash);
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
ipcsrv = ecore_ipc_server_connect(ECORE_IPC_LOCAL_USER, hash, 0, NULL);
|
||||
if (ipcsrv)
|
||||
{
|
||||
|
@ -196,6 +223,10 @@ ipc_instance_add(Ipc_Instance *inst)
|
|||
ecore_ipc_server_del(ipcsrv);
|
||||
return EINA_TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
DBG("connect failed");
|
||||
}
|
||||
free(data);
|
||||
free(hash);
|
||||
return EINA_FALSE;
|
||||
|
|
|
@ -7,28 +7,33 @@ typedef struct _Ipc_Instance Ipc_Instance;
|
|||
|
||||
struct _Ipc_Instance
|
||||
{
|
||||
const char *cmd;
|
||||
const char *cd;
|
||||
const char *background;
|
||||
const char *name;
|
||||
const char *role;
|
||||
const char *title;
|
||||
const char *icon_name;
|
||||
const char *font;
|
||||
const char *startup_id;
|
||||
const char *startup_split;
|
||||
char *cmd;
|
||||
char *cd;
|
||||
char *background;
|
||||
char *name;
|
||||
char *theme;
|
||||
char *role;
|
||||
char *title;
|
||||
char *icon_name;
|
||||
char *font;
|
||||
char *startup_id;
|
||||
char *startup_split;
|
||||
int x, y, w, h;
|
||||
int pos;
|
||||
int login_shell;
|
||||
int fullscreen;
|
||||
int iconic;
|
||||
int borderless;
|
||||
int override;
|
||||
int maximized;
|
||||
int hold;
|
||||
int nowm;
|
||||
int xterm_256color;
|
||||
int active_links;
|
||||
Eina_Bool pos;
|
||||
Eina_Bool login_shell;
|
||||
Eina_Bool fullscreen;
|
||||
Eina_Bool iconic;
|
||||
Eina_Bool borderless;
|
||||
Eina_Bool override;
|
||||
Eina_Bool maximized;
|
||||
Eina_Bool hold;
|
||||
Eina_Bool nowm;
|
||||
Eina_Bool xterm_256color;
|
||||
Eina_Bool video_mute;
|
||||
Eina_Bool active_links;
|
||||
Eina_Bool cursor_blink;
|
||||
Eina_Bool visual_bell;
|
||||
Config *config;
|
||||
};
|
||||
|
||||
void ipc_init(void);
|
||||
|
@ -36,5 +41,6 @@ void ipc_shutdown(void);
|
|||
Eina_Bool ipc_serve(void);
|
||||
void ipc_instance_new_func_set(void (*func) (Ipc_Instance *inst));
|
||||
Eina_Bool ipc_instance_add(Ipc_Instance *inst);
|
||||
void ipc_instance_conn_free(void);
|
||||
|
||||
#endif
|
||||
|
|
870
src/bin/main.c
870
src/bin/main.c
File diff suppressed because it is too large
Load Diff
|
@ -1248,7 +1248,6 @@ media_add(Evas_Object *parent, const char *src, const Config *config, int mode,
|
|||
if (!_smart) _smart_init();
|
||||
obj = evas_object_smart_add(e, _smart);
|
||||
sd = evas_object_smart_data_get(obj);
|
||||
if (!sd) return obj;
|
||||
|
||||
sd->src = eina_stringshare_add(src);
|
||||
sd->config = config;
|
||||
|
|
|
@ -3324,6 +3324,7 @@ _tabs_close(Term_Container *tc, Term_Container *child)
|
|||
|
||||
l = _tab_item_find(tabs, child);
|
||||
item = l->data;
|
||||
tabs->tabs = eina_list_remove_list(tabs->tabs, l);
|
||||
|
||||
next = eina_list_next(l);
|
||||
if (!next)
|
||||
|
@ -3331,7 +3332,6 @@ _tabs_close(Term_Container *tc, Term_Container *child)
|
|||
next_item = next->data;
|
||||
next_child = next_item->tc;
|
||||
assert (next_child->type == TERM_CONTAINER_TYPE_SOLO);
|
||||
tabs->tabs = eina_list_remove_list(tabs->tabs, l);
|
||||
|
||||
assert (child->type == TERM_CONTAINER_TYPE_SOLO);
|
||||
solo = (Solo*)child;
|
||||
|
@ -6060,11 +6060,11 @@ win_font_update(Term *term)
|
|||
void
|
||||
windows_free(void)
|
||||
{
|
||||
Eina_List *l, *l_next;
|
||||
Win *wn;
|
||||
|
||||
while (wins)
|
||||
EINA_LIST_FOREACH_SAFE(wins, l, l_next, wn)
|
||||
{
|
||||
wn = eina_list_data_get(wins);
|
||||
win_free(wn);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue