[EGIT] [apps/express] master 01/01: express: Initialize home variable to NULL
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=b91eb6ff85908b6a2ebbf9120b3bb9544091dab6 commit b91eb6ff85908b6a2ebbf9120b3bb9544091dab6 Author: Chris Michael Date: Mon Oct 26 11:04:58 2015 -0400 express: Initialize home variable to NULL Signed-off-by: Chris Michael --- src/bin/utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/utils.c b/src/bin/utils.c index a263739..b83bbe9 100644 --- a/src/bin/utils.c +++ b/src/bin/utils.c @@ -543,7 +543,7 @@ _util_is_file(const char *str) static Eina_Bool _homedir_get(char *buf, size_t size) { - const char *home; + const char *home = NULL; #if defined (HAVE_GETUID) && defined(HAVE_GETEUID) if (getuid() != geteuid()) --
[EGIT] [apps/express] master 01/01: express: Fix adding conformant widget
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=7e420f44ec14a3baf0104ee489f734c0ed0eb5e4 commit 7e420f44ec14a3baf0104ee489f734c0ed0eb5e4 Author: Chris Michael Date: Mon Oct 26 11:13:36 2015 -0400 express: Fix adding conformant widget Summary: This fixes an issue where the elm_conformant widget was not being added to the proper evas object @fix Signed-off-by: Chris Michael --- src/bin/window.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/window.c b/src/bin/window.c index 856f381..a4e2ebe 100644 --- a/src/bin/window.c +++ b/src/bin/window.c @@ -376,7 +376,7 @@ _window_create(void) evas_object_show(_win->o_bg); /* add a conformant here */ - _win->o_conform = elm_conformant_add(_win->evas); + _win->o_conform = elm_conformant_add(_win->o_win); WEIGHT_SET(_win->o_conform, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); FILL_SET(_win->o_conform, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_win_resize_object_add(_win->o_win, _win->o_conform); --
[EGIT] [apps/express] master 01/01: express: Fix issue of adding elm_icon to improper parent
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=4211d3c94902cdcbe4b74f33a0e125cd7442f958 commit 4211d3c94902cdcbe4b74f33a0e125cd7442f958 Author: Chris Michael Date: Mon Oct 26 11:19:31 2015 -0400 express: Fix issue of adding elm_icon to improper parent Signed-off-by: Chris Michael --- src/bin/channel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/channel.c b/src/bin/channel.c index 7be2383..c6f57a6 100644 --- a/src/bin/channel.c +++ b/src/bin/channel.c @@ -1260,7 +1260,7 @@ _channel_userlist_user_append(Channel *chl, const char *user, Eina_Bool op) char buff[PATH_MAX]; static char data[] = "1"; -icon = elm_icon_add(chl->o_bg); +icon = elm_icon_add(chl->userlist.o_list); elm_image_resizable_set(icon, EINA_TRUE, EINA_TRUE); WEIGHT_SET(icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); ALIGN_SET(icon, EVAS_HINT_FILL, EVAS_HINT_FILL); --
[EGIT] [apps/express] master 01/01: express: Add support for receiving private messages
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=6c7fde0aaa52926cb4528f3869e9f47ba7bf786e commit 6c7fde0aaa52926cb4528f3869e9f47ba7bf786e Author: Chris Michael Date: Mon Oct 26 11:59:31 2015 -0400 express: Add support for receiving private messages Summary: This adds preliminary support for receiving private messages. This will automatically create a new channel view for any received private messages (based on sender). @feature Signed-off-by: Chris Michael --- src/bin/callbacks.c | 35 +++ 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/src/bin/callbacks.c b/src/bin/callbacks.c index ede7b02..b9d00c9 100644 --- a/src/bin/callbacks.c +++ b/src/bin/callbacks.c @@ -336,15 +336,34 @@ _callback_user_join(Express_Network *net, const char *event EINA_UNUSED, const c } void -_callback_user_private(Express_Network *net EINA_UNUSED, const char *event EINA_UNUSED, const char *source, const char **params, unsigned int count, void *data EINA_UNUSED) +_callback_user_private(Express_Network *net, const char *event EINA_UNUSED, const char *source, const char **params, unsigned int count EINA_UNUSED, void *data EINA_UNUSED) { - DBG("User Private %s", params[0]); - DBG("\tCount: %d", count); - DBG("\tUser: %s", source); - DBG("\tMessage:"); - DBG("\t%s", params[1]); - DBG("\t%s", params[2]); - DBG("\t%s", params[3]); + Channel * chl = NULL; + + /* DBG("User Private %s", params[0]); */ + /* DBG("\tCount: %d", count); */ + /* DBG("\tUser: %s", source); */ + /* DBG("\tMessage:"); */ + /* DBG("\t%s", params[1]); // message */ + /* DBG("\t%s", params[2]); */ + /* DBG("\t%s", params[3]); */ + + if (!(chl = _window_channel_find(source))) + { +Express_Server *srv; + +if ((srv = express_network_server_connected_get(net))) + { + const char *srv_name = NULL; + + srv_name = express_network_server_realname_get(srv); + if ((chl = _window_channel_create(source, srv_name))) + _channel_network_set(chl, net); + } + } + + _channel_text_append(chl, source, params[1], +_row_color_simple_create(COLOR_TEXT)); } void --
[EGIT] [apps/express] master 01/01: express: Comment out debugging messages for user nick changes
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=5f1ac00a8c66559b292fc4efe5361ace2fd55fe1 commit 5f1ac00a8c66559b292fc4efe5361ace2fd55fe1 Author: Chris Michael Date: Mon Oct 26 12:01:18 2015 -0400 express: Comment out debugging messages for user nick changes Signed-off-by: Chris Michael --- src/bin/callbacks.c | 16 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/bin/callbacks.c b/src/bin/callbacks.c index b9d00c9..8d4a828 100644 --- a/src/bin/callbacks.c +++ b/src/bin/callbacks.c @@ -367,7 +367,7 @@ _callback_user_private(Express_Network *net, const char *event EINA_UNUSED, cons } void -_callback_user_nick(Express_Network *net EINA_UNUSED, const char *event EINA_UNUSED, const char *source, const char **params, unsigned int count, void *data EINA_UNUSED) +_callback_user_nick(Express_Network *net EINA_UNUSED, const char *event EINA_UNUSED, const char *source, const char **params, unsigned int count EINA_UNUSED, void *data EINA_UNUSED) { Eina_List *channels, *l; Channel *chl; @@ -380,13 +380,13 @@ _callback_user_nick(Express_Network *net EINA_UNUSED, const char *event EINA_UNU else eina_strlcpy(user, params[0], strlen(params[0]) + 1); - DBG("User Changed Nick %s", user); - DBG("\tCount: %d", count); - DBG("\tUser: %s", source); - DBG("\tMessage:"); - DBG("\t%s", params[1]); - DBG("\t%s", params[2]); - DBG("\t%s", params[3]); + /* DBG("User Changed Nick %s", user); */ + /* DBG("\tCount: %d", count); */ + /* DBG("\tUser: %s", source); */ + /* DBG("\tMessage:"); */ + /* DBG("\t%s", params[1]); */ + /* DBG("\t%s", params[2]); */ + /* DBG("\t%s", params[3]); */ snprintf(buff, sizeof(buff), "%s is now known as %s\r\n", source, user); --
[EGIT] [apps/express] master 01/01: express: Reduce calls to treeview update
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=92eb062bc790f102d794992470d4f51ac1dc34ef commit 92eb062bc790f102d794992470d4f51ac1dc34ef Author: Chris Michael Date: Mon Oct 26 15:37:56 2015 -0400 express: Reduce calls to treeview update Summary: If we assign the network to the channel earlier in the process, we can reduce calls to update the window treeview @fix Signed-off-by: Chris Michael --- src/bin/callbacks.c | 8 src/bin/window.c| 14 -- src/bin/window.h| 2 +- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/bin/callbacks.c b/src/bin/callbacks.c index 8d4a828..f9cc79f 100644 --- a/src/bin/callbacks.c +++ b/src/bin/callbacks.c @@ -321,8 +321,8 @@ _callback_user_join(Express_Network *net, const char *event EINA_UNUSED, const c const char *srv_name = NULL; srv_name = express_network_server_realname_get(srv); - if ((chl = _window_channel_create(channel, srv_name))) - _channel_network_set(chl, net); + chl = _window_channel_create(net, channel, srv_name); + if (!chl) return; } } @@ -357,8 +357,8 @@ _callback_user_private(Express_Network *net, const char *event EINA_UNUSED, cons const char *srv_name = NULL; srv_name = express_network_server_realname_get(srv); - if ((chl = _window_channel_create(source, srv_name))) - _channel_network_set(chl, net); + chl = _window_channel_create(net, source, srv_name); + if (!chl) return; } } diff --git a/src/bin/window.c b/src/bin/window.c index a4e2ebe..95451c9 100644 --- a/src/bin/window.c +++ b/src/bin/window.c @@ -391,7 +391,7 @@ _window_create(void) evas_object_show(_win->o_base); /* try to create a default channel */ - if ((chl = _window_channel_create("Status", NULL))) + if ((chl = _window_channel_create(NULL, "Status", NULL))) { /* swallow channel background */ _window_channel_swallow(chl); @@ -555,7 +555,7 @@ _window_size_update(void) } Channel * -_window_channel_create(const char *name, const char *server) +_window_channel_create(Express_Network *network, const char *name, const char *server) { Channel *chl; @@ -567,6 +567,8 @@ _window_channel_create(const char *name, const char *server) _channel_window_set(chl, _win->o_win); + _channel_network_set(chl, network); + /* force channel config update */ _channel_update(chl); @@ -881,7 +883,7 @@ _window_network_channels_create(Express_Network *net) continue; /* try to create a channel */ - if (!(chl = _window_channel_create(cfg_chl->name, srv_name))) + if (!(chl = _window_channel_create(net, cfg_chl->name, srv_name))) { express_network_channel_part(net, cfg_chl->name); continue; @@ -893,8 +895,6 @@ _window_network_channels_create(Express_Network *net) break; } - _window_treeview_update(); - /* if (i >= 0) */ /* { */ /* remove the default channel window @@ -942,7 +942,7 @@ _window_network_channels_destroy(Express_Network *net) Channel *chl; /* try to create a default channel */ -if ((chl = _window_channel_create("Status", NULL))) +if ((chl = _window_channel_create(NULL, "Status", NULL))) { /* swallow channel background */ _window_channel_swallow(chl); @@ -1030,6 +1030,8 @@ _window_tabcount_update(void) int n = 0, i = 0; double v1 = 0.0, v2 = 0.0; + if (!_ex_cfg->gui.tabs) return; + n = eina_list_count(_win->channels); if (n < 1) return; diff --git a/src/bin/window.h b/src/bin/window.h index eac6d83..2655340 100644 --- a/src/bin/window.h +++ b/src/bin/window.h @@ -6,7 +6,7 @@ Eina_Bool _window_destroy(void); void _window_update(void); void _window_size_update(void); -Channel *_window_channel_create(const char *name, const char *server); +Channel *_window_channel_create(Express_Network *network, const char *name, const char *server); void _window_channel_destroy(const char *name); Channel *_window_channel_find(const char *name); Channel *_window_channel_server_find(const char *server); --
[EGIT] [apps/express] master 01/01: express: Fix crash when adding channel groups
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=928de66e3906c61ccce8ecc7181635b4093e839b commit 928de66e3906c61ccce8ecc7181635b4093e839b Author: Chris Michael Date: Tue Oct 27 11:05:30 2015 -0400 express: Fix crash when adding channel groups This fixes an issue when having channels from more than one network would crash when adding channel groups to the treeview @fix Signed-off-by: Chris Michael --- src/bin/channel.c | 32 +++ src/bin/channel.h | 4 +-- src/bin/window.c | 94 +-- 3 files changed, 69 insertions(+), 61 deletions(-) diff --git a/src/bin/channel.c b/src/bin/channel.c index c6f57a6..af58d6e 100644 --- a/src/bin/channel.c +++ b/src/bin/channel.c @@ -45,7 +45,6 @@ struct _Channel Evas_Object *o_frame; Evas_Object *o_box; Evas_Object *o_list; -Elm_Object_Item *group; Elm_Genlist_Item_Class *itc, *gitc; } treeview; @@ -1447,37 +1446,28 @@ _channel_treeview_clear(Channel *chl) elm_genlist_clear(chl->treeview.o_list); } -void +Elm_Object_Item * _channel_treeview_group_add(Channel *chl, const char *group) { Elm_Object_Item *it; - it = elm_genlist_item_append(chl->treeview.o_list, chl->treeview.gitc, -group, NULL, ELM_GENLIST_ITEM_GROUP, -NULL, NULL); - elm_genlist_item_expanded_set(it, EINA_FALSE); + it = + elm_genlist_item_append(chl->treeview.o_list, chl->treeview.gitc, + group, NULL, ELM_GENLIST_ITEM_GROUP, NULL, NULL); + elm_genlist_item_expanded_set(it, EINA_TRUE); elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY); - if (chl->net) - { -const char *netname; - -if ((netname = express_network_name_get(chl->net))) - { - if (!strcmp(netname, group)) - chl->treeview.group = it; - } - } + return it; } void -_channel_treeview_group_item_add(Channel *pchl, Channel *chl) +_channel_treeview_group_item_add(Channel *pchl, Channel *chl, Elm_Object_Item *group) { Elm_Object_Item *it; it = - elm_genlist_item_append(pchl->treeview.o_list, pchl->treeview.itc, - chl, pchl->treeview.group, ELM_GENLIST_ITEM_NONE, + elm_genlist_item_append(pchl->treeview.o_list, pchl->treeview.itc, + chl, group, ELM_GENLIST_ITEM_NONE, _cb_treeview_selected, NULL); if (chl->active) @@ -1490,8 +1480,8 @@ _channel_treeview_item_add(Channel *pchl, Channel *chl) Elm_Object_Item *it; it = - elm_genlist_item_append(pchl->treeview.o_list, pchl->treeview.itc, - chl, NULL, ELM_GENLIST_ITEM_NONE, + elm_genlist_item_append(pchl->treeview.o_list, pchl->treeview.itc, + chl, NULL, ELM_GENLIST_ITEM_NONE, _cb_treeview_selected, NULL); if (chl->active) diff --git a/src/bin/channel.h b/src/bin/channel.h index a07d6cc..7171bf8 100644 --- a/src/bin/channel.h +++ b/src/bin/channel.h @@ -64,8 +64,8 @@ void _channel_tabspacer_create(Channel *chl, double v1, double v2); void _channel_tabspacer_destroy(Channel *chl); void _channel_treeview_clear(Channel *chl); -void _channel_treeview_group_add(Channel *chl, const char *group); -void _channel_treeview_group_item_add(Channel *pchl, Channel *chl); +Elm_Object_Item *_channel_treeview_group_add(Channel *chl, const char *group); +void _channel_treeview_group_item_add(Channel *pchl, Channel *chl, Elm_Object_Item *group); void _channel_treeview_item_add(Channel *pchl, Channel *chl); Eina_Bool _channel_user_find(Channel *chl, const char *user); diff --git a/src/bin/window.c b/src/bin/window.c index 95451c9..6404a46 100644 --- a/src/bin/window.c +++ b/src/bin/window.c @@ -7,6 +7,12 @@ #include "options.h" #include "callbacks.h" +typedef struct _Group +{ + char *name; + Eina_List *channels; +} Group; + struct _Window { Evas *evas; @@ -337,12 +343,6 @@ _window_new(void) return win; } -static int -_cb_groups_sort(const void *d1, const void *d2) -{ - return strcasecmp(d1, d2); -} - /* external functions */ Eina_Bool _window_create(void) @@ -1054,59 +1054,77 @@ _window_tabcount_update(void) } } +static void +_cb_groups_free(void *data) +{ + Group *group; + + group = data; + free(group->name); + free(group); +} + void _window_treeview_update(void) { - Eina_List *l, *groups = NULL; - Eina_List *ll, *channels = NULL; - Channel *chl; - const char *name; + Eina_List *l, *ll; + Channel *chl, *lchl; + Eina_Hash *groups; + Group *group; + Eina_Iterator *itr; + void *data = NULL; + + groups = eina_hash_strin
[EGIT] [apps/express] master 02/02: express: Set treeview items to always selected mode
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=23ce92e3192e719e43570a6d1cb8dac5b7106366 commit 23ce92e3192e719e43570a6d1cb8dac5b7106366 Author: Chris Michael Date: Tue Oct 27 11:26:13 2015 -0400 express: Set treeview items to always selected mode Signed-off-by: Chris Michael --- src/bin/channel.c | 13 +++-- 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/bin/channel.c b/src/bin/channel.c index af58d6e..c3cd335 100644 --- a/src/bin/channel.c +++ b/src/bin/channel.c @@ -667,13 +667,12 @@ _cb_treeview_selected(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void if ((pchl = _window_channel_active_get())) { if (pchl != chl) - _window_channel_unswallow(pchl); + { + _window_channel_unswallow(pchl); + _window_channel_activate(chl); + _window_channel_swallow(chl); + } } - - _window_channel_activate(chl); - _window_channel_swallow(chl); - - /* elm_genlist_item_selected_set(item, EINA_TRUE); */ } static void @@ -1469,6 +1468,7 @@ _channel_treeview_group_item_add(Channel *pchl, Channel *chl, Elm_Object_Item *g elm_genlist_item_append(pchl->treeview.o_list, pchl->treeview.itc, chl, group, ELM_GENLIST_ITEM_NONE, _cb_treeview_selected, NULL); + elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_ALWAYS); if (chl->active) elm_genlist_item_selected_set(it, EINA_TRUE); @@ -1483,6 +1483,7 @@ _channel_treeview_item_add(Channel *pchl, Channel *chl) elm_genlist_item_append(pchl->treeview.o_list, pchl->treeview.itc, chl, NULL, ELM_GENLIST_ITEM_NONE, _cb_treeview_selected, NULL); + elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_ALWAYS); if (chl->active) elm_genlist_item_selected_set(it, EINA_TRUE); --
[EGIT] [apps/express] master 01/02: express: Remove blank line
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=470dee67e91161142da0bc6708af4b91b2c9da2e commit 470dee67e91161142da0bc6708af4b91b2c9da2e Author: Chris Michael Date: Tue Oct 27 11:13:34 2015 -0400 express: Remove blank line Signed-off-by: Chris Michael --- src/bin/window.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/bin/window.c b/src/bin/window.c index 6404a46..b758185 100644 --- a/src/bin/window.c +++ b/src/bin/window.c @@ -702,7 +702,6 @@ _window_channel_activate(Channel *chl) snprintf(buff, sizeof(buff), "%s - %s", elm_app_name_get(), _channel_name_get(chl)); elm_win_title_set(_win->o_win, buff); - } Channel * --
[EGIT] [core/efl] master 01/01: ecore-evas-wayland: Use proper Ecore_Wl2 window functions
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9f1eb3e021d3050367dcb096d2091d91061e33eb commit 9f1eb3e021d3050367dcb096d2091d91061e33eb Author: Chris Michael Date: Thu Dec 3 14:55:42 2015 -0500 ecore-evas-wayland: Use proper Ecore_Wl2 window functions To get the proper maximized and fullscreen states, we should be using the ecore_wl2_window functions, not the ecore_wl_window functions @fix Signed-off-by: Chris Michael --- src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c index 1659988..a7500f2 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c @@ -183,8 +183,8 @@ _ecore_evas_wl_common_cb_window_configure(void *data EINA_UNUSED, int type EINA_ prev_max = ee->prop.maximized; prev_full = ee->prop.fullscreen; - ee->prop.maximized = ecore_wl_window_maximized_get(wdata->win); - ee->prop.fullscreen = ecore_wl_window_fullscreen_get(wdata->win); + ee->prop.maximized = ecore_wl2_window_maximized_get(wdata->win); + ee->prop.fullscreen = ecore_wl2_window_fullscreen_get(wdata->win); nw = ev->w; nh = ev->h; --
[EGIT] [core/elementary] master 01/01: elementary: Don't call ecore_wl2_shutdown unless we have a display
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=1d876e8fbaafe7bf0469597f52b319fe919ac6b4 commit 1d876e8fbaafe7bf0469597f52b319fe919ac6b4 Author: Chris Michael Date: Fri Dec 4 10:47:44 2015 -0500 elementary: Don't call ecore_wl2_shutdown unless we have a display During _elm_config_sub_shutdown we were explicitly calling ecore_wl2_shutdown. We should only be doing this if we are actually in a wayland environment. @fix Signed-off-by: Chris Michael --- src/lib/elm_config.c | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/lib/elm_config.c b/src/lib/elm_config.c index 5b1fa2f..22b4909 100644 --- a/src/lib/elm_config.c +++ b/src/lib/elm_config.c @@ -3327,8 +3327,11 @@ _elm_config_sub_shutdown(void) if (ecore_x_display_get()) ecore_x_shutdown(); #endif #ifdef HAVE_ELEMENTARY_WL2 - if (_elm_wl_display) ecore_wl2_display_disconnect(_elm_wl_display); - ecore_wl2_shutdown(); + if (_elm_wl_display) + { +ecore_wl2_display_disconnect(_elm_wl_display); +ecore_wl2_shutdown(); + } #endif #ifdef HAVE_ELEMENTARY_WIN32 ecore_win32_shutdown(); --
[EGIT] [core/efl] master 01/01: ecore-evas-wl: Cleanup creating a wayland canvas
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=04a4b599aba597552f466e81ee2e7d2473877ea4 commit 04a4b599aba597552f466e81ee2e7d2473877ea4 Author: Chris Michael Date: Fri Dec 4 11:35:35 2015 -0500 ecore-evas-wl: Cleanup creating a wayland canvas Unsure where all these extra display_connect calls came from, but remove them. @fix Signed-off-by: Chris Michael --- .../engines/wayland/ecore_evas_wayland_egl.c| 21 - .../engines/wayland/ecore_evas_wayland_shm.c| 21 - 2 files changed, 42 deletions(-) diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c index cb7befb..8f4fea9 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c @@ -149,27 +149,6 @@ ecore_evas_wayland_egl_new_internal(const char *disp_name, unsigned int parent, return NULL; } - ewd = ecore_wl2_display_connect(disp_name); - if (!ewd) - { -ERR("Failed to connect to Wayland Display %s", disp_name); -return NULL; - } - - ewd = ecore_wl2_display_connect(disp_name); - if (!ewd) - { -ERR("Failed to connect to Wayland Display %s", disp_name); -return NULL; - } - - ewd = ecore_wl2_display_connect(disp_name); - if (!ewd) - { -ERR("Failed to connect to Wayland Display %s", disp_name); -return NULL; - } - if (!(ee = calloc(1, sizeof(Ecore_Evas { ERR("Failed to allocate Ecore_Evas"); diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c index e8be589..c516de6 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c @@ -148,27 +148,6 @@ ecore_evas_wayland_shm_new_internal(const char *disp_name, unsigned int parent, return NULL; } - ewd = ecore_wl2_display_connect(disp_name); - if (!ewd) - { -ERR("Failed to connect to Wayland Display %s", disp_name); -return NULL; - } - - ewd = ecore_wl2_display_connect(disp_name); - if (!ewd) - { -ERR("Failed to connect to Wayland Display %s", disp_name); -return NULL; - } - - ewd = ecore_wl2_display_connect(disp_name); - if (!ewd) - { -ERR("Failed to connect to Wayland Display %s", disp_name); -return NULL; - } - if (!(ee = calloc(1, sizeof(Ecore_Evas { ERR("Failed to allocate Ecore_Evas"); --
[EGIT] [core/efl] master 01/01: ecore-evas-wayland: Properly cleanup ecore_wl2 during error
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=49e645d695a65c31dc6d32e3d432bc26140fee22 commit 49e645d695a65c31dc6d32e3d432bc26140fee22 Author: Chris Michael Date: Fri Dec 4 11:40:54 2015 -0500 ecore-evas-wayland: Properly cleanup ecore_wl2 during error If we fail to connect to an existing wayland display, then we should properly cleanup (call ecore_wl2_shutdown) before exiting @fix Signed-off-by: Chris Michael --- .../ecore_evas/engines/wayland/ecore_evas_wayland_egl.c | 12 ++-- .../ecore_evas/engines/wayland/ecore_evas_wayland_shm.c | 9 - 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c index 8f4fea9..b6b0189 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c @@ -146,7 +146,7 @@ ecore_evas_wayland_egl_new_internal(const char *disp_name, unsigned int parent, if (!ewd) { ERR("Failed to connect to Wayland Display %s", disp_name); -return NULL; +goto conn_err; } if (!(ee = calloc(1, sizeof(Ecore_Evas @@ -284,12 +284,12 @@ ecore_evas_wayland_egl_new_internal(const char *disp_name, unsigned int parent, return ee; - err: +err: ecore_evas_free(ee); - return NULL; - - ee_err: - ecore_wl_shutdown(); +ee_err: + ecore_wl2_display_disconnect(ewd); +conn_err: + ecore_wl2_shutdown(); return NULL; } diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c index c516de6..fb1e25b 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c @@ -145,7 +145,7 @@ ecore_evas_wayland_shm_new_internal(const char *disp_name, unsigned int parent, if (!ewd) { ERR("Failed to connect to Wayland Display %s", disp_name); -return NULL; +goto conn_err; } if (!(ee = calloc(1, sizeof(Ecore_Evas @@ -280,12 +280,11 @@ ecore_evas_wayland_shm_new_internal(const char *disp_name, unsigned int parent, return ee; - err: +err: ecore_evas_free(ee); - return NULL; - - ee_err: +ee_err: ecore_wl2_display_disconnect(ewd); +conn_err: ecore_wl2_shutdown(); return NULL; } --
[EGIT] [core/efl] master 02/02: ecore-evas-wayland: Acknowledge configure event post render
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3a8cfeb6d6feb077c30d2d8eea74babf16616613 commit 3a8cfeb6d6feb077c30d2d8eea74babf16616613 Author: Chris Michael Date: Fri Dec 4 14:15:19 2015 -0500 ecore-evas-wayland: Acknowledge configure event post render This fixes a potential issue where we may have been sending the configure acknowledgement before applying the actual new configuration to the surface. Sending the ack_configure during post-render ensures that we have already rendered according to the new configure (addresses deferred rendering issue). @fix Signed-off-by: Chris Michael --- src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c | 7 +++ .../ecore_evas/engines/wayland/ecore_evas_wayland_private.h| 1 + 2 files changed, 8 insertions(+) diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c index a7500f2..0a36eec 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c @@ -1351,8 +1351,15 @@ _ecore_evas_wl_common_render_updates(void *data, Evas *evas EINA_UNUSED, void *e void _ecore_evas_wl_common_post_render(Ecore_Evas *ee) { + Ecore_Evas_Engine_Wl_Data *wdata; + LOGFN(__FILE__, __LINE__, __FUNCTION__); + wdata = ee->engine.data; + if (wdata->win->configure_ack) + wdata->win->configure_ack(wdata->win->xdg_surface, + wdata->win->configure_serial); + _ecore_evas_idle_timeout_update(ee); if (ee->func.fn_post_render) ee->func.fn_post_render(ee); } diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_private.h b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_private.h index f627d29..2551c0f 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_private.h +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_private.h @@ -21,6 +21,7 @@ #include #include #include +#include "ecore_wl2_private.h" #include #include "ecore_evas_private.h" --
[EGIT] [core/efl] master 01/02: ecore-wl2: Implement function pointer for configure acknowledge
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=298d66377eddb44deca081ac19eeeab006b876f1 commit 298d66377eddb44deca081ac19eeeab006b876f1 Author: Chris Michael Date: Fri Dec 4 14:12:06 2015 -0500 ecore-wl2: Implement function pointer for configure acknowledge We need a way to store the configure serial, and make the xdg_surface_ack_configure callback be callable by Ecore_Evas at the appropriate time. This fixes an issue where previously we were (potentially) sending a configure acknowledgment while not applying the configure due to deferred rendering. @fix Signed-off-by: Chris Michael --- src/lib/ecore_wl2/ecore_wl2_private.h | 3 +++ src/lib/ecore_wl2/ecore_wl2_window.c | 6 -- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/lib/ecore_wl2/ecore_wl2_private.h b/src/lib/ecore_wl2/ecore_wl2_private.h index 1b0eebc..fee3649 100644 --- a/src/lib/ecore_wl2/ecore_wl2_private.h +++ b/src/lib/ecore_wl2/ecore_wl2_private.h @@ -117,6 +117,9 @@ struct _Ecore_Wl2_Window struct xdg_surface *xdg_surface; struct xdg_popup *xdg_popup; + uint32_t configure_serial; + void (*configure_ack)(struct xdg_surface *surface, uint32_t serial); + Eina_Rectangle saved; Eina_Rectangle geometry; Eina_Rectangle opaque; diff --git a/src/lib/ecore_wl2/ecore_wl2_window.c b/src/lib/ecore_wl2/ecore_wl2_window.c index 3fc7a9f..590dc66 100644 --- a/src/lib/ecore_wl2/ecore_wl2_window.c +++ b/src/lib/ecore_wl2/ecore_wl2_window.c @@ -112,10 +112,10 @@ _xdg_surface_cb_configure(void *data, struct xdg_surface *xdg_surface EINA_UNUSE } } + win->configure_serial = serial; + if ((w > 0) && (h > 0)) _ecore_wl2_window_configure_send(win, w, h, 0); - - xdg_surface_ack_configure(win->xdg_surface, serial); } static void @@ -314,6 +314,8 @@ ecore_wl2_window_show(Ecore_Wl2_Window *window) xdg_surface_set_user_data(window->xdg_surface, window); xdg_surface_add_listener(window->xdg_surface, &_xdg_surface_listener, window); + +window->configure_ack = xdg_surface_ack_configure; } else if ((disp->wl.wl_shell) && (!window->wl_shell_surface)) { --
[EGIT] [core/efl] master 02/02: ecore-evas-wayland: Fix issue of starting resizing causing size jumps
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b5f8966fbed5e758d57a29fb079219f8ed96cd46 commit b5f8966fbed5e758d57a29fb079219f8ed96cd46 Author: Chris Michael Date: Wed Dec 9 12:03:53 2015 -0500 ecore-evas-wayland: Fix issue of starting resizing causing size jumps Previously, when we started to resize an efl app, the size would "jump" due to framespace being adjusted. This patch fixes that issue and resize now works as expected. @fix Signed-off-by: Chris Michael --- .../engines/wayland/ecore_evas_wayland_common.c| 23 +++--- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c index 4b090ef..e5ccd88 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c @@ -167,8 +167,7 @@ _ecore_evas_wl_common_cb_window_configure(void *data EINA_UNUSED, int type EINA_ Ecore_Evas *ee; Ecore_Evas_Engine_Wl_Data *wdata; Ecore_Wl2_Event_Window_Configure *ev; - int nw = 0, nh = 0; - int fw = 0, fh = 0; + int nw = 0, nh = 0, fy = 0; Eina_Bool prev_max, prev_full; LOGFN(__FILE__, __LINE__, __FUNCTION__); @@ -200,21 +199,13 @@ _ecore_evas_wl_common_cb_window_configure(void *data EINA_UNUSED, int type EINA_ /* NB: We receive window configure sizes based on xdg surface * window geometry, so we need to subtract framespace here */ - evas_output_framespace_get(ee->evas, NULL, NULL, &fw, &fh); + evas_output_framespace_get(ee->evas, NULL, &fy, NULL, NULL); + nh = (ev->h - fy); - if (ECORE_EVAS_PORTRAIT(ee)) - { -nw -= fw; -nh -= fh; - } - else - { -nw -= fh; -nh -= fw; - } - - if (ee->prop.fullscreen || (ee->x != ev->x) || (ee->y != ev->y)) - _ecore_evas_wl_common_move(ee, ev->x, ev->y); + /* NB: This block commented out for now. Unsure this is really needed. +* Maximize and moving both seem to work fine without this */ + /* if (ee->prop.fullscreen || (ee->x != ev->x) || (ee->y != ev->y)) */ + /* _ecore_evas_wl_common_move(ee, ev->x, ev->y); */ if (ee->prop.fullscreen || (ee->req.w != nw) || (ee->req.h != nh)) _ecore_evas_wl_common_resize(ee, nw, nh); --
[EGIT] [core/efl] master 01/02: ecore-evas-wayland: Move configure acknowledge to render_flush_pre
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=abbfde9d68b7e54d0561f5263f4b8797c8b7aa51 commit abbfde9d68b7e54d0561f5263f4b8797c8b7aa51 Author: Chris Michael Date: Wed Dec 9 09:38:01 2015 -0500 ecore-evas-wayland: Move configure acknowledge to render_flush_pre If we acknowledge a configure from xdg during post render, we end up breaking maximize of EFL clients inside Weston (and perhaps other compositors). In order to fix that, we will now send the configure ack post render but pre flush. @fix Signed-off-by: Chris Michael --- .../engines/wayland/ecore_evas_wayland_common.c | 19 --- .../engines/wayland/ecore_evas_wayland_egl.c | 3 +++ .../engines/wayland/ecore_evas_wayland_private.h | 1 + .../engines/wayland/ecore_evas_wayland_shm.c | 3 +++ 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c index f0f5f92..4b090ef 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c @@ -1310,6 +1310,18 @@ _ecore_evas_wl_common_render_pre(void *data, Evas *evas EINA_UNUSED, void *event ecore_evas_manual_render_set(ee, 1); } +void +_ecore_evas_wl_common_render_flush_pre(void *data, Evas *evas EINA_UNUSED, void *event EINA_UNUSED) +{ + Ecore_Evas *ee = data; + Ecore_Evas_Engine_Wl_Data *wdata; + + wdata = ee->engine.data; + if (wdata->win->configure_ack) + wdata->win->configure_ack(wdata->win->xdg_surface, + wdata->win->configure_serial); +} + void _ecore_evas_wl_common_render_updates(void *data, Evas *evas EINA_UNUSED, void *event) { @@ -1342,15 +1354,8 @@ _ecore_evas_wl_common_render_updates(void *data, Evas *evas EINA_UNUSED, void *e void _ecore_evas_wl_common_post_render(Ecore_Evas *ee) { - Ecore_Evas_Engine_Wl_Data *wdata; - LOGFN(__FILE__, __LINE__, __FUNCTION__); - wdata = ee->engine.data; - if (wdata->win->configure_ack) - wdata->win->configure_ack(wdata->win->xdg_surface, - wdata->win->configure_serial); - _ecore_evas_idle_timeout_update(ee); if (ee->func.fn_post_render) ee->func.fn_post_render(ee); } diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c index b6b0189..6514968 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c @@ -236,6 +236,9 @@ ecore_evas_wayland_egl_new_internal(const char *disp_name, unsigned int parent, evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_PRE, _ecore_evas_wl_common_render_pre, ee); + evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_FLUSH_PRE, + _ecore_evas_wl_common_render_flush_pre, ee); + /* FIXME: This needs to be set based on theme & scale */ if (ee->prop.draw_frame) evas_output_framespace_set(ee->evas, fx, fy, fw, fh); diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_private.h b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_private.h index 2551c0f..6d6b695 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_private.h +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_private.h @@ -75,6 +75,7 @@ int _ecore_evas_wl_common_pre_render(Ecore_Evas *ee); /* int _ecore_evas_wl_common_render_updates(Ecore_Evas *ee); */ void _ecore_evas_wl_common_post_render(Ecore_Evas *ee); int _ecore_evas_wl_common_render(Ecore_Evas *ee); +void _ecore_evas_wl_common_render_flush_pre(void *data, Evas *evas EINA_UNUSED, void *event EINA_UNUSED); void _ecore_evas_wl_common_screen_geometry_get(const Ecore_Evas *ee, int *x, int *y, int *w, int *h); void _ecore_evas_wl_common_screen_dpi_get(const Ecore_Evas *ee, int *xdpi, int *ydpi); void _ecore_evas_wl_common_render_pre(void *data, Evas *evas EINA_UNUSED, void *event); diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c index fb1e25b..0592feb 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c @@ -232,6 +232,9 @@ ecore_evas_wayland_shm_new_internal(const char *disp_name, unsigned int parent, evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_PRE, _ecore_evas_wl_common_render_pre, ee); + evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_FLUSH_PRE, + _ecore_evas_wl
[EGIT] [core/enlightenment] master 01/01: Add function to clear and reload keyboard modifiers
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=7733e873fd845a6d21bd4b64a64e43186f5a361a commit 7733e873fd845a6d21bd4b64a64e43186f5a361a Author: Chris Michael Date: Fri Dec 11 13:29:36 2015 -0500 Add function to clear and reload keyboard modifiers Signed-off-by: Chris Michael --- src/bin/e_comp_wl_input.c | 11 +++ src/bin/e_comp_wl_input.h | 2 ++ 2 files changed, 13 insertions(+) diff --git a/src/bin/e_comp_wl_input.c b/src/bin/e_comp_wl_input.c index ec9d2e1..79f75d4 100644 --- a/src/bin/e_comp_wl_input.c +++ b/src/bin/e_comp_wl_input.c @@ -643,3 +643,14 @@ e_comp_wl_input_touch_check(struct wl_resource *res) return wl_resource_instance_of(res, &wl_touch_interface, &_e_touch_interface); } + +EINTERN void +e_comp_wl_input_keyboard_modifers_clear(void) +{ + e_comp_wl->kbd.mod_depressed = 0; + e_comp_wl->kbd.mod_latched = 0; + e_comp_wl->kbd.mod_locked = 0; + e_comp_wl->kbd.mod_group = 0; + + e_comp_wl_input_keyboard_modifiers_serialize(); +} diff --git a/src/bin/e_comp_wl_input.h b/src/bin/e_comp_wl_input.h index b3300c8..a9bc9d4 100644 --- a/src/bin/e_comp_wl_input.h +++ b/src/bin/e_comp_wl_input.h @@ -23,6 +23,8 @@ EINTERN void e_comp_wl_input_keyboard_modifiers_update(void); EINTERN void e_comp_wl_input_keyboard_state_update(uint32_t keycode, Eina_Bool pressed); EINTERN void e_comp_wl_input_keyboard_enter_send(E_Client *client); +EINTERN void e_comp_wl_input_keyboard_modifers_clear(void); + E_API void e_comp_wl_input_pointer_enabled_set(Eina_Bool enabled); E_API void e_comp_wl_input_keyboard_enabled_set(Eina_Bool enabled); E_API void e_comp_wl_input_touch_enabled_set(Eina_Bool enabled); --
[EGIT] [core/enlightenment] master 01/01: Fix type of size fields for E_Shell_Data
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=e40033be0a9d7cab056d0f7bd52db7a1e2bb2d9b commit e40033be0a9d7cab056d0f7bd52db7a1e2bb2d9b Author: Chris Michael Date: Tue Dec 15 10:20:33 2015 -0500 Fix type of size fields for E_Shell_Data In the xdg_surface_configure_send function, the size params (width/height) come in as int32_t. This patch makes the E_Shell_Data fields for width & height match those (else we end up with compiler warnings when comparing int32_t to uint32_t). Signed-off-by: Chris Michael --- src/modules/wl_desktop_shell/e_mod_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/wl_desktop_shell/e_mod_main.c b/src/modules/wl_desktop_shell/e_mod_main.c index 9935c35..bb4020d 100644 --- a/src/modules/wl_desktop_shell/e_mod_main.c +++ b/src/modules/wl_desktop_shell/e_mod_main.c @@ -8,8 +8,8 @@ struct E_Shell_Data { uint32_t edges; - uint32_t width; - uint32_t height; + int32_t width; + int32_t height; Eina_Bool fullscreen : 1; Eina_Bool maximized : 1; Eina_Bool activated : 1; --
[EGIT] [core/elementary] master 01/01: elementary: Comment out unused functions
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=5b0c5c23b473f2cd13fc972a2d685133b4f93dcc commit 5b0c5c23b473f2cd13fc972a2d685133b4f93dcc Author: Chris Michael Date: Thu Dec 24 16:51:30 2015 -0500 elementary: Comment out unused functions Seems these 2 functions are currently unused inside elm_calendar. For now, let's just #if 0 them out Signed-off-by: Chris Michael --- src/lib/elm_calendar.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/elm_calendar.c b/src/lib/elm_calendar.c index 65e13e7..0ba6fa5 100644 --- a/src/lib/elm_calendar.c +++ b/src/lib/elm_calendar.c @@ -79,6 +79,7 @@ _button_widget_year_dec_start(void *data, void *event_info EINA_UNUSED); /* This two functions should be moved in Eina for next release. */ +#if 0 static Eina_Tmpstr * _eina_tmpstr_strftime(const char *format, const struct tm *tm) { @@ -121,6 +122,7 @@ _eina_tmpstr_steal(Eina_Tmpstr *s) eina_tmpstr_del(s); return r; } +#endif static Eina_Bool _key_action_move(Evas_Object *obj, const char *params); --
[EGIT] [core/enlightenment] master 01/01: Add missing function prototype for e_winlist_direction_select
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=bc716aae54450fd1f604e39bec5d386ad6e333ff commit bc716aae54450fd1f604e39bec5d386ad6e333ff Author: Chris Michael Date: Thu Dec 24 16:58:39 2015 -0500 Add missing function prototype for e_winlist_direction_select This function is being used inside e_mod_main, but the function prototype was never exposed which lead to implicit declaration warnings when building winlist module Signed-off-by: Chris Michael --- src/modules/winlist/e_winlist.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/modules/winlist/e_winlist.h b/src/modules/winlist/e_winlist.h index 00260eb..a31ffad 100644 --- a/src/modules/winlist/e_winlist.h +++ b/src/modules/winlist/e_winlist.h @@ -27,5 +27,6 @@ void e_winlist_right(E_Zone *zone); void e_winlist_down(E_Zone *zone); void e_winlist_up(E_Zone *zone); void e_winlist_modifiers_set(int mod, E_Winlist_Activate_Type type); +void e_winlist_direction_select(E_Zone *zone, int dir); #endif --
[EGIT] [core/efl] master 02/02: ecore-wl2: Fix MIN() macro comparing int vs unsigned int
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d91e403a98f5343b312bda2e24cf27156cf8 commit d91e403a98f5343b312bda2e24cf27156cf8 Author: Chris Michael Date: Mon Dec 28 09:15:01 2015 -0500 ecore-wl2: Fix MIN() macro comparing int vs unsigned int @fix Signed-off-by: Chris Michael --- src/lib/ecore_wl2/ecore_wl2_display.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/ecore_wl2/ecore_wl2_display.c b/src/lib/ecore_wl2/ecore_wl2_display.c index e72506a..db0435d 100644 --- a/src/lib/ecore_wl2/ecore_wl2_display.c +++ b/src/lib/ecore_wl2/ecore_wl2_display.c @@ -77,7 +77,7 @@ _cb_global_add(void *data, struct wl_registry *registry, unsigned int id, const if (!strcmp(interface, "wl_compositor")) { -int request_version = 3; +unsigned int request_version = 3; #ifdef WL_SURFACE_DAMAGE_BUFFER_SINCE_VERSION request_version = 4; #endif --
[EGIT] [core/efl] master 01/01: eo: Fix resource leak
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c94289d0b2e0a80b3f20bb2a409479dbb2f96a04 commit c94289d0b2e0a80b3f20bb2a409479dbb2f96a04 Author: Chris Michael Date: Mon Dec 28 10:09:36 2015 -0500 eo: Fix resource leak Coverity CID1339783 says that we have a potential resource leak here. 'cb' gets allocated via calloc, but is not freed if we end up returning here @fix Signed-off-by: Chris Michael --- src/lib/eo/eo_base_class.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/eo/eo_base_class.c b/src/lib/eo/eo_base_class.c index f99ca37..756dc05 100644 --- a/src/lib/eo/eo_base_class.c +++ b/src/lib/eo/eo_base_class.c @@ -564,6 +564,7 @@ _eo_base_event_callback_priority_add(Eo *obj, Eo_Base_Data *pd, if (!cb || !desc || !func) { ERR("Tried adding callback with invalid values: cb: %p desc: %p func: %p\n", cb, desc, func); +free(cb); return; } cb->items.item.desc = desc; --
[EGIT] [core/enlightenment] v0.20.2 10/13: Add missing function prototype for e_winlist_direction_select
discomfitor pushed a commit to annotated tag v0.20.2. http://git.enlightenment.org/core/enlightenment.git/commit/?id=31d948a0870a173a6a94ee0e56730cb94093bdb8 commit 31d948a0870a173a6a94ee0e56730cb94093bdb8 Author: Chris Michael Date: Thu Dec 24 16:58:39 2015 -0500 Add missing function prototype for e_winlist_direction_select This function is being used inside e_mod_main, but the function prototype was never exposed which lead to implicit declaration warnings when building winlist module Signed-off-by: Chris Michael --- src/modules/winlist/e_winlist.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/modules/winlist/e_winlist.h b/src/modules/winlist/e_winlist.h index 00260eb..a31ffad 100644 --- a/src/modules/winlist/e_winlist.h +++ b/src/modules/winlist/e_winlist.h @@ -27,5 +27,6 @@ void e_winlist_right(E_Zone *zone); void e_winlist_down(E_Zone *zone); void e_winlist_up(E_Zone *zone); void e_winlist_modifiers_set(int mod, E_Winlist_Activate_Type type); +void e_winlist_direction_select(E_Zone *zone, int dir); #endif --
[EGIT] [core/enlightenment] enlightenment-0.20 08/11: Add missing function prototype for e_winlist_direction_select
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=fbeb88d6a9cb891d054e4c600bcc89f4dcdcda23 commit fbeb88d6a9cb891d054e4c600bcc89f4dcdcda23 Author: Chris Michael Date: Thu Dec 24 16:58:39 2015 -0500 Add missing function prototype for e_winlist_direction_select This function is being used inside e_mod_main, but the function prototype was never exposed which lead to implicit declaration warnings when building winlist module Signed-off-by: Chris Michael --- src/modules/winlist/e_winlist.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/modules/winlist/e_winlist.h b/src/modules/winlist/e_winlist.h index 00260eb..a31ffad 100644 --- a/src/modules/winlist/e_winlist.h +++ b/src/modules/winlist/e_winlist.h @@ -27,5 +27,6 @@ void e_winlist_right(E_Zone *zone); void e_winlist_down(E_Zone *zone); void e_winlist_up(E_Zone *zone); void e_winlist_modifiers_set(int mod, E_Winlist_Activate_Type type); +void e_winlist_direction_select(E_Zone *zone, int dir); #endif --
[EGIT] [core/enlightenment] master 01/01: Fix xbl_avail variable being used when it could be undefined
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=8554024cba26d54dbee2fe92231e3dfa14b8ca0f commit 8554024cba26d54dbee2fe92231e3dfa14b8ca0f Author: Chris Michael Date: Mon Dec 28 14:30:56 2015 -0500 Fix xbl_avail variable being used when it could be undefined Signed-off-by: Chris Michael --- src/bin/e_backlight.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bin/e_backlight.c b/src/bin/e_backlight.c index c90e2ef..95d03be 100644 --- a/src/bin/e_backlight.c +++ b/src/bin/e_backlight.c @@ -254,7 +254,9 @@ _e_backlight_update(void) if (bl_sysval) { sysmode = MODE_SYS; +#ifndef HAVE_WAYLAND_ONLY xbl_avail = EINA_FALSE; +#endif _bl_sys_level_get(); return; } --
[EGIT] [core/efl] master 01/01: ecore-drm: Add missing variable 'dev'
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0d6383d69f18b87fbf5ec2b87817baa80b32a4bd commit 0d6383d69f18b87fbf5ec2b87817baa80b32a4bd Author: Chris Michael Date: Tue Dec 29 09:12:50 2015 -0500 ecore-drm: Add missing variable 'dev' Seems this should have been declared in the previously pushed patch, but was missing. @fix Signed-off-by: Chris Michael --- src/lib/ecore_drm/ecore_drm_evdev.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/ecore_drm/ecore_drm_evdev.c b/src/lib/ecore_drm/ecore_drm_evdev.c index b40aa43..a57c7e8 100644 --- a/src/lib/ecore_drm/ecore_drm_evdev.c +++ b/src/lib/ecore_drm/ecore_drm_evdev.c @@ -647,6 +647,8 @@ _ecore_drm_evdev_device_create(Ecore_Drm_Seat *seat, struct libinput_device *dev if (libinput_device_has_capability(device, LIBINPUT_DEVICE_CAP_POINTER)) { +Ecore_Drm_Device *dev; + edev->seat_caps |= EVDEV_SEAT_POINTER; /* TODO: make this configurable */ --
[EGIT] [core/elementary] master 01/01: elementary: Fix formatting
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=fbbd8a86de623bf104821f34dd7473e8f76c6bb7 commit fbbd8a86de623bf104821f34dd7473e8f76c6bb7 Author: Chris Michael Date: Tue Dec 29 10:24:08 2015 -0500 elementary: Fix formatting NB: No functional changes Signed-off-by: Chris Michael --- src/lib/elm_main.c | 37 +++-- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/src/lib/elm_main.c b/src/lib/elm_main.c index 333d3a9..4469873 100644 --- a/src/lib/elm_main.c +++ b/src/lib/elm_main.c @@ -273,7 +273,8 @@ _elm_clouseau_reload() return EINA_TRUE; } -static Eina_Bool _sys_memory_changed(void *data EINA_UNUSED, int type EINA_UNUSED, void *event EINA_UNUSED) +static Eina_Bool +_sys_memory_changed(void *data EINA_UNUSED, int type EINA_UNUSED, void *event EINA_UNUSED) { Ecore_Memory_State state = ecore_memory_state_get(); @@ -284,7 +285,8 @@ static Eina_Bool _sys_memory_changed(void *data EINA_UNUSED, int type EINA_UNUSE return ECORE_CALLBACK_PASS_ON; } -static Eina_Bool _sys_lang_changed(void *data EINA_UNUSED, int type EINA_UNUSED, void *event EINA_UNUSED) +static Eina_Bool +_sys_lang_changed(void *data EINA_UNUSED, int type EINA_UNUSED, void *event EINA_UNUSED) { char *lang; @@ -303,8 +305,7 @@ static Eina_Bool _sys_lang_changed(void *data EINA_UNUSED, int type EINA_UNUSED, } EAPI int -elm_init(intargc, - char **argv) +elm_init(int argc, char **argv) { _elm_init_count++; if (_elm_init_count > 1) return _elm_init_count; @@ -312,8 +313,10 @@ elm_init(intargc, elm_quicklaunch_sub_init(argc, argv); _prefix_shutdown(); - system_handlers[0] = ecore_event_handler_add(ECORE_EVENT_MEMORY_STATE, _sys_memory_changed, NULL); - system_handlers[1] = ecore_event_handler_add(ECORE_EVENT_LOCALE_CHANGED, _sys_lang_changed, NULL); + system_handlers[0] = + ecore_event_handler_add(ECORE_EVENT_MEMORY_STATE, _sys_memory_changed, NULL); + system_handlers[1] = + ecore_event_handler_add(ECORE_EVENT_LOCALE_CHANGED, _sys_lang_changed, NULL); if (_elm_config->atspi_mode != ELM_ATSPI_MODE_OFF) _elm_atspi_bridge_init(); @@ -325,9 +328,8 @@ EAPI int elm_shutdown(void) { if (_elm_init_count <= 0) - { -return 0; - } + return 0; + _elm_init_count--; if (_elm_init_count > 0) return _elm_init_count; @@ -488,8 +490,10 @@ elm_need_e_dbus(void) #ifndef RTLD_NOLOAD # define RTLD_NOLOAD RTLD_GLOBAL #endif - if (!e_dbus_handle) e_dbus_handle = dlopen("libedbus.so", RTLD_LAZY | RTLD_NOLOAD); - if (!e_dbus_handle) e_dbus_handle = dlopen("libedbus.so.1", RTLD_LAZY | RTLD_NOLOAD); + if (!e_dbus_handle) + e_dbus_handle = dlopen("libedbus.so", RTLD_LAZY | RTLD_NOLOAD); + if (!e_dbus_handle) + e_dbus_handle = dlopen("libedbus.so.1", RTLD_LAZY | RTLD_NOLOAD); if (!e_dbus_handle) return EINA_FALSE; init_func = dlsym(e_dbus_handle, "e_dbus_init"); if (!init_func) return EINA_FALSE; @@ -640,7 +644,8 @@ elm_quicklaunch_init(intargc, ecore_file_init(); eio_init(); - _elm_exit_handler = ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, _elm_signal_exit, NULL); + _elm_exit_handler = + ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, _elm_signal_exit, NULL); if (argv) { @@ -662,9 +667,7 @@ elm_quicklaunch_init(intargc, if (!_elm_data_dir) _elm_data_dir = eina_stringshare_add("/"); if (!_elm_lib_dir) _elm_lib_dir = eina_stringshare_add("/"); - eina_log_timing(_elm_log_dom, - EINA_LOG_STATE_STOP, - EINA_LOG_STATE_INIT); + eina_log_timing(_elm_log_dom, EINA_LOG_STATE_STOP, EINA_LOG_STATE_INIT); if (quicklaunch_on) _elm_init_count++; @@ -736,9 +739,7 @@ elm_quicklaunch_shutdown(void) _elm_ql_init_count--; if (_elm_ql_init_count > 0) return _elm_ql_init_count; - eina_log_timing(_elm_log_dom, - EINA_LOG_STATE_STOP, - EINA_LOG_STATE_SHUTDOWN); + eina_log_timing(_elm_log_dom, EINA_LOG_STATE_STOP, EINA_LOG_STATE_SHUTDOWN); if (pfx) eina_prefix_free(pfx); pfx = NULL; --
[EGIT] [apps/express] master 01/02: express: Add support for animated gifs
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=91a981dc00ecc8852dab6a4e286e170749b5125b commit 91a981dc00ecc8852dab6a4e286e170749b5125b Author: Chris Michael Date: Mon Aug 3 13:07:34 2015 -0400 express: Add support for animated gifs Signed-off-by: Chris Michael --- src/bin/media.c | 60 - 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/src/bin/media.c b/src/bin/media.c index 619470e..dc38458 100644 --- a/src/bin/media.c +++ b/src/bin/media.c @@ -26,6 +26,8 @@ struct _Media int tmpfd; int w, h, iw, ih, sw, sh; int mode, resizes; + int frame, frame_num, loops; + Ecore_Timer *anim; Media_Type type; @@ -54,6 +56,61 @@ _media_cb_img_preloaded(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EIN evas_object_show(sd->o_clip); } +static Eina_Bool +_img_cb_frame(void *data) +{ + Media *sd; + double t; + int frame; + + if (!(sd = evas_object_smart_data_get(data))) return EINA_FALSE; + sd->frame++; + frame = ((sd->frame - 1) % sd->frame_num) + 1; + if ((sd->frame >= sd->frame_num) && (frame == 1)) + { +int loops; + +if (evas_object_image_animated_loop_type_get(sd->o_img) == +EVAS_IMAGE_ANIMATED_HINT_NONE) + { + sd->anim = NULL; + return EINA_FALSE; + } + +sd->loops++; +loops = evas_object_image_animated_loop_count_get(sd->o_img); +if (loops != 0) + { + if (loops < sd->loops) + { + sd->anim = NULL; + return EINA_FALSE; + } + } + } + + evas_object_image_animated_frame_set(sd->o_img, frame); + t = evas_object_image_animated_frame_duration_get(sd->o_img, frame, 0); + ecore_timer_interval_set(sd->anim, t); + + return EINA_TRUE; +} + +static void +_img_type_anim_handle(Evas_Object *obj) +{ + Media *sd; + double t; + + if (!(sd = evas_object_smart_data_get(obj))) return; + if (!evas_object_image_animated_get(sd->o_img)) return; + sd->frame = 1; + sd->frame_num = evas_object_image_animated_frame_count_get(sd->o_img); + if (sd->frame_num < 2) return; + t = evas_object_image_animated_frame_duration_get(sd->o_img, sd->frame, 0); + sd->anim = ecore_timer_add(t, _img_cb_frame, obj); +} + static void _img_type_init(Evas_Object *obj) { @@ -71,7 +128,8 @@ _img_type_init(Evas_Object *obj) evas_object_image_file_set(sd->o_img, sd->realf, NULL); evas_object_image_size_get(sd->o_img, &sd->iw, &sd->ih); evas_object_image_preload(sd->o_img, EINA_FALSE); - /* TODO: anim handle */ + + _img_type_anim_handle(obj); } static void --
[EGIT] [apps/express] master 02/02: express: Add support for media thumbnails
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=331f331bcbbe3faaaf2d6f0357be00fd577a8ada commit 331f331bcbbe3faaaf2d6f0357be00fd577a8ada Author: Chris Michael Date: Mon Aug 3 13:37:21 2015 -0400 express: Add support for media thumbnails Signed-off-by: Chris Michael --- src/bin/media.c | 208 ++-- 1 file changed, 202 insertions(+), 6 deletions(-) diff --git a/src/bin/media.c b/src/bin/media.c index dc38458..6b811ae 100644 --- a/src/bin/media.c +++ b/src/bin/media.c @@ -18,6 +18,7 @@ struct _Media Ecore_Con_Url *url; Ecore_Event_Handler *_prog_hdlr, *_compl_hdlr; + Ethumb_Client_Async *et_req; const char *src, *ext, *realf; @@ -43,8 +44,13 @@ struct _Media static Evas_Smart *_smart = NULL; static Evas_Smart_Class _parent_sc = EVAS_SMART_CLASS_INIT_NULL; +static Ethumb_Client *et_client = NULL; +static Eina_Bool et_connected = EINA_FALSE; +static Eina_List *et_queue = NULL; static void _smart_calculate(Evas_Object *obj); +static void _thumb_type_init(Evas_Object *obj); +static void _ethumb_init(void); static void _media_cb_img_preloaded(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) @@ -187,6 +193,192 @@ _img_type_calc(Media *sd, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h evas_object_resize(sd->o_img, w, h); } +static void +_thumb_type_calc(Media *sd, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h) +{ + if (!sd) return; + if ((w <= 0) || (h <= 0) || (sd->iw <= 0) || (sd->ih <= 0)) + { +w = 1; +h = 1; + } + else + { +int iw = 1, ih = 1; + +iw = w; +ih = (sd->ih * w) / sd->iw; +if (ih > h) + { + ih = h; + iw = (sd->iw * h) / sd->ih; + if (iw > w) iw = w; + } +if ((iw > sd->iw) || (ih > sd->ih)) + { + iw = sd->iw; + ih = sd->ih; + } + +x += ((w - iw) / 2); +y += ((h - ih) / 2); +w = iw; +h = ih; + } + + evas_object_move(sd->o_img, x, y); + evas_object_resize(sd->o_img, w, h); +} + +static void +_thumb_cb_preloaded(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) +{ + Media *sd; + Evas_Coord ox, oy, ow, oh; + + if (!(sd = evas_object_smart_data_get(data))) return; + evas_object_geometry_get(data, &ox, &oy, &ow, &oh); + _thumb_type_calc(sd, ox, oy, ow, oh); + evas_object_show(sd->o_img); + evas_object_show(sd->o_clip); +} + +static void +_ethumb_cb_done(Ethumb_Client *ec EINA_UNUSED, const char *file, const char *key, void *data) +{ + Media *sd; + + if (!(sd = evas_object_smart_data_get(data))) return; + sd->et_req = NULL; + evas_object_event_callback_add(sd->o_img, EVAS_CALLBACK_IMAGE_PRELOADED, + _thumb_cb_preloaded, data); + evas_object_image_file_set(sd->o_img, file, key); + evas_object_image_size_get(sd->o_img, &sd->iw, &sd->ih); + evas_object_image_preload(sd->o_img, EINA_FALSE); +} + +static void +_ethumb_cb_error(Ethumb_Client *ec EINA_UNUSED, void *data) +{ + Media *sd; + + if (!(sd = evas_object_smart_data_get(data))) return; + sd->et_req = NULL; +} + +static void +_ethumb_disconnect(void *data EINA_UNUSED, Ethumb_Client *ec) +{ + if (ec != et_client) return; + ethumb_client_disconnect(et_client); + et_connected = EINA_FALSE; + et_client = NULL; + if (et_queue) _ethumb_init(); +} + +static void +_ethumb_connect(void *data EINA_UNUSED, Ethumb_Client *ec, Eina_Bool ok) +{ + if (ok) + { +Evas_Object *o; + +et_connected = EINA_TRUE; + +ethumb_client_on_server_die_callback_set(ec, _ethumb_disconnect, + NULL, NULL); + +EINA_LIST_FREE(et_queue, o) + _thumb_type_init(o); + } + else + et_client = NULL; +} + +static void +_ethumb_init(void) +{ + if (et_client) return; + ethumb_client_init(); + et_client = ethumb_client_connect(_ethumb_connect, NULL, NULL); +} + +static void +_thumb_type_theme_init(Evas_Object *obj) +{ + Media *sd; + + if (!(sd = evas_object_smart_data_get(obj))) return; + + if ((sd->realf) && (sd->realf[0] != '/')) + { +static const char *icon_theme = NULL; +const char *f; + +if (!icon_theme) + { + Efreet_Icon_Theme *theme; + + theme = efreet_icon_theme_find(getenv("E_ICON_THEME")); + if (!theme) + { + const char **itr; + static const char *themes[] = +{ + "Human", "oxygen", "gnome&q
[EGIT] [apps/express] master 01/01: express: Remove TODO items that have already been done
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=9bfc4b4e9615d5adca0a9574c6b950fe5047c3b3 commit 9bfc4b4e9615d5adca0a9574c6b950fe5047c3b3 Author: Chris Michael Date: Mon Aug 3 13:40:37 2015 -0400 express: Remove TODO items that have already been done Signed-off-by: Chris Michael --- src/bin/options_font.c | 2 -- src/bin/window.c | 1 - 2 files changed, 3 deletions(-) diff --git a/src/bin/options_font.c b/src/bin/options_font.c index 62be019..4608475 100644 --- a/src/bin/options_font.c +++ b/src/bin/options_font.c @@ -71,7 +71,6 @@ _cb_font_sel(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) eina_stringshare_replace(&_ex_cfg->font.name, f->name); _ex_cfg->font.bitmap = f->bitmap; - /* TODO: update sizing ? */ _config_save(); elm_object_disabled_set(o_small, f->bitmap); @@ -91,7 +90,6 @@ _cb_size_sel(void *data, Evas_Object *obj, void *event EINA_UNUSED) if (_ex_cfg->font.size == size) return; _ex_cfg->font.size = size; - /* TODO: update sizing ? */ elm_genlist_realized_items_update(o_list); _config_save(); } diff --git a/src/bin/window.c b/src/bin/window.c index 32f47bc..936784a 100644 --- a/src/bin/window.c +++ b/src/bin/window.c @@ -237,7 +237,6 @@ _cb_idle(void *data EINA_UNUSED) /* cbs.mode = ; */ /* cbs.user_mode = ; */ /* cbs.kick = ; */ -/* cbs.notice = ; */ /* cbs.invite = ; */ /* cbs.numeric = ; */ /* cbs.unknown = ; */ --
[EGIT] [apps/express] master 01/01: express: Add support for scaleable media (svg, etc)
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=4519bfb63ad98601aa61432c7da921b924b4f5d5 commit 4519bfb63ad98601aa61432c7da921b924b4f5d5 Author: Chris Michael Date: Mon Aug 3 14:21:37 2015 -0400 express: Add support for scaleable media (svg, etc) Signed-off-by: Chris Michael --- src/bin/media.c | 233 1 file changed, 219 insertions(+), 14 deletions(-) diff --git a/src/bin/media.c b/src/bin/media.c index 6b811ae..b122081 100644 --- a/src/bin/media.c +++ b/src/bin/media.c @@ -15,6 +15,7 @@ struct _Media Evas_Object *o_ctrl; Evas_Object *o_busy; Evas_Object *o_event; + Evas_Object *o_tmp; Ecore_Con_Url *url; Ecore_Event_Handler *_prog_hdlr, *_compl_hdlr; @@ -28,7 +29,9 @@ struct _Media int w, h, iw, ih, sw, sh; int mode, resizes; int frame, frame_num, loops; - Ecore_Timer *anim; + + Ecore_Timer *anim_tmr; + Ecore_Timer *smooth_tmr; Media_Type type; @@ -38,6 +41,7 @@ struct _Media Eina_Bool down : 1; } down; + Eina_Bool nosmooth : 1; Eina_Bool downloading : 1; Eina_Bool queued : 1; }; @@ -53,7 +57,7 @@ static void _thumb_type_init(Evas_Object *obj); static void _ethumb_init(void); static void -_media_cb_img_preloaded(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) +_img_cb_preloaded(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) { Media *sd; @@ -79,7 +83,7 @@ _img_cb_frame(void *data) if (evas_object_image_animated_loop_type_get(sd->o_img) == EVAS_IMAGE_ANIMATED_HINT_NONE) { - sd->anim = NULL; + sd->anim_tmr = NULL; return EINA_FALSE; } @@ -89,7 +93,7 @@ _img_cb_frame(void *data) { if (loops < sd->loops) { - sd->anim = NULL; + sd->anim_tmr = NULL; return EINA_FALSE; } } @@ -97,7 +101,7 @@ _img_cb_frame(void *data) evas_object_image_animated_frame_set(sd->o_img, frame); t = evas_object_image_animated_frame_duration_get(sd->o_img, frame, 0); - ecore_timer_interval_set(sd->anim, t); + ecore_timer_interval_set(sd->anim_tmr, t); return EINA_TRUE; } @@ -114,7 +118,7 @@ _img_type_anim_handle(Evas_Object *obj) sd->frame_num = evas_object_image_animated_frame_count_get(sd->o_img); if (sd->frame_num < 2) return; t = evas_object_image_animated_frame_duration_get(sd->o_img, sd->frame, 0); - sd->anim = ecore_timer_add(t, _img_cb_frame, obj); + sd->anim_tmr = ecore_timer_add(t, _img_cb_frame, obj); } static void @@ -129,7 +133,7 @@ _img_type_init(Evas_Object *obj) evas_object_clip_set(sd->o_img, sd->o_clip); evas_object_raise(sd->o_event); evas_object_event_callback_add(sd->o_img, EVAS_CALLBACK_IMAGE_PRELOADED, - _media_cb_img_preloaded, obj); + _img_cb_preloaded, obj); evas_object_image_load_orientation_set(sd->o_img, EINA_TRUE); evas_object_image_file_set(sd->o_img, sd->realf, NULL); evas_object_image_size_get(sd->o_img, &sd->iw, &sd->ih); @@ -379,6 +383,203 @@ _thumb_type_init(Evas_Object *obj) _thumb_type_theme_init(obj); } +static void +_scale_cb_preloaded(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) +{ + Media *sd; + + if (!(sd = evas_object_smart_data_get(data))) return; + + if (!sd->o_tmp) + { +evas_object_show(sd->o_img); +evas_object_show(sd->o_clip); + } + else + { +evas_object_del(sd->o_img); +sd->o_img = sd->o_tmp; +sd->o_tmp = NULL; +evas_object_show(sd->o_img); +evas_object_show(sd->o_clip); + } +} + +static void +_scale_type_calc(Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h) +{ + Media *sd; + + if (!(sd = evas_object_smart_data_get(obj))) return; + + if ((w <= 0) || (h <= 0) || (sd->iw <= 0) || (sd->ih <= 0)) + { +w = 1; +h = 1; + } + else + { +int iw = 1, ih = 1; + +if ((sd->mode & MEDIA_SIZE_MASK) == MEDIA_BG) + { + iw = w; + ih = (sd->ih * w) / sd->iw; + if (ih < h) + { + ih = h; + iw = (sd->iw * h) / sd->ih; + if (iw < w) iw = w; + } + } +else if ((sd->mode & MEDIA_SIZE_MASK) == MEDIA_POP) + { + iw = w; + ih = (sd->ih * w) / sd->iw; + if (ih > h) + {
[EGIT] [apps/express] master 01/03: express: Delete temporary scale object
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=40bd2ad0bf6df39e83ff4aae6a5c75f494931f31 commit 40bd2ad0bf6df39e83ff4aae6a5c75f494931f31 Author: Chris Michael Date: Mon Aug 3 14:25:42 2015 -0400 express: Delete temporary scale object Signed-off-by: Chris Michael --- src/bin/media.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/media.c b/src/bin/media.c index b122081..6c011df 100644 --- a/src/bin/media.c +++ b/src/bin/media.c @@ -741,6 +741,7 @@ _smart_del(Evas_Object *obj) if (sd->o_ctrl) evas_object_del(sd->o_ctrl); if (sd->o_busy) evas_object_del(sd->o_busy); if (sd->o_event) evas_object_del(sd->o_event); + if (sd->o_tmp) evas_object_del(sd->o_tmp); if (sd->anim_tmr) ecore_timer_del(sd->anim_tmr); if (sd->smooth_tmr) ecore_timer_del(sd->smooth_tmr); --
[EGIT] [apps/express] master 03/03: express: Actually initialize image object for scaler
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=f08d916f27b6c0d6afa31ba6b226228957888b4c commit f08d916f27b6c0d6afa31ba6b226228957888b4c Author: Chris Michael Date: Mon Aug 3 14:29:37 2015 -0400 express: Actually initialize image object for scaler Signed-off-by: Chris Michael --- src/bin/media.c | 9 + 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/bin/media.c b/src/bin/media.c index 4333463..961aa09 100644 --- a/src/bin/media.c +++ b/src/bin/media.c @@ -950,10 +950,10 @@ _media_add(Evas_Object *parent, const char *src, int mode, Media_Type type) PACKAGE_NAME); sd->realf = eina_stringshare_add(path); -sd->url_prog_hdlr = +sd->url_prog_hdlr = ecore_event_handler_add(ECORE_CON_EVENT_URL_PROGRESS, _media_cb_prog, obj); -sd->url_compl_hdlr = +sd->url_compl_hdlr = ecore_event_handler_add(ECORE_CON_EVENT_URL_COMPLETE, _media_cb_compl, obj); } @@ -994,8 +994,9 @@ _media_add(Evas_Object *parent, const char *src, int mode, Media_Type type) case MEDIA_TYPE_IMG: if (!sd->url) _img_type_init(obj); break; - /* case MEDIA_TYPE_SCALE: */ - /* break; */ + case MEDIA_TYPE_SCALE: + if (!sd->url) _scale_type_init(obj); + break; /* case MEDIA_TYPE_EDJE: */ /* break; */ /* case MEDIA_TYPE_MOV: */ --
[EGIT] [apps/express] master 02/03: express: Rename url handlers
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=ca1e9c87c7b9ba400e4b983a97129ed280a9def6 commit ca1e9c87c7b9ba400e4b983a97129ed280a9def6 Author: Chris Michael Date: Mon Aug 3 14:28:33 2015 -0400 express: Rename url handlers Signed-off-by: Chris Michael --- src/bin/media.c | 26 +- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/bin/media.c b/src/bin/media.c index 6c011df..4333463 100644 --- a/src/bin/media.c +++ b/src/bin/media.c @@ -18,7 +18,7 @@ struct _Media Evas_Object *o_tmp; Ecore_Con_Url *url; - Ecore_Event_Handler *_prog_hdlr, *_compl_hdlr; + Ecore_Event_Handler *url_prog_hdlr, *url_compl_hdlr; Ethumb_Client_Async *et_req; const char *src, *ext, *realf; @@ -659,11 +659,11 @@ _media_cb_compl(void *data, int type EINA_UNUSED, void *event) if (ev->url_con != sd->url) return EINA_TRUE; edje_object_signal_emit(sd->o_busy, "done", PACKAGE_NAME); - ecore_event_handler_del(sd->_prog_hdlr); - ecore_event_handler_del(sd->_compl_hdlr); + ecore_event_handler_del(sd->url_prog_hdlr); + ecore_event_handler_del(sd->url_compl_hdlr); ecore_con_url_free(sd->url); - sd->_prog_hdlr = NULL; - sd->_compl_hdlr = NULL; + sd->url_prog_hdlr = NULL; + sd->url_compl_hdlr = NULL; sd->url = NULL; switch (sd->type) @@ -718,13 +718,13 @@ _smart_del(Evas_Object *obj) emotion_object_last_position_save(sd->o_img); if (sd->url) { -ecore_event_handler_del(sd->_prog_hdlr); -ecore_event_handler_del(sd->_compl_hdlr); +ecore_event_handler_del(sd->url_prog_hdlr); +ecore_event_handler_del(sd->url_compl_hdlr); ecore_con_url_free(sd->url); } - sd->_prog_hdlr = NULL; - sd->_compl_hdlr = NULL; + sd->url_prog_hdlr = NULL; + sd->url_compl_hdlr = NULL; sd->url = NULL; if (sd->tmpfd >= 0) @@ -941,7 +941,8 @@ _media_add(Evas_Object *parent, const char *src, int mode, Media_Type type) } else { -sd->o_busy = edje_object_add(evas_object_evas_get(obj)); +sd->o_busy = + edje_object_add(evas_object_evas_get(obj)); evas_object_smart_member_add(sd->o_busy, obj); _theme_apply(sd->o_busy, "express/mediabusy"); evas_object_show(sd->o_busy); @@ -949,13 +950,12 @@ _media_add(Evas_Object *parent, const char *src, int mode, Media_Type type) PACKAGE_NAME); sd->realf = eina_stringshare_add(path); -sd->_prog_hdlr = +sd->url_prog_hdlr = ecore_event_handler_add(ECORE_CON_EVENT_URL_PROGRESS, _media_cb_prog, obj); -sd->_compl_hdlr = +sd->url_compl_hdlr = ecore_event_handler_add(ECORE_CON_EVENT_URL_COMPLETE, _media_cb_compl, obj); - } } --
[EGIT] [apps/express] master 01/01: express: Reduce calls to evas_object_smart_data_get
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=ab692306f54fe71ea06c8419fbcce3d022ba7b90 commit ab692306f54fe71ea06c8419fbcce3d022ba7b90 Author: Chris Michael Date: Mon Aug 3 15:30:30 2015 -0400 express: Reduce calls to evas_object_smart_data_get Summary: As we have already gotten the smart data from the evas object previously, lets modify some functions to take the smart data instead of the object so that we can reduce calls to evas_object_smart_data_get. Signed-off-by: Chris Michael --- src/bin/media.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/bin/media.c b/src/bin/media.c index 961aa09..25d7a4d 100644 --- a/src/bin/media.c +++ b/src/bin/media.c @@ -61,7 +61,7 @@ _img_cb_preloaded(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_UNUS { Media *sd; - if (!(sd = evas_object_smart_data_get(data))) return; + if (!(sd = data)) return; evas_object_show(sd->o_img); evas_object_show(sd->o_clip); } @@ -73,7 +73,7 @@ _img_cb_frame(void *data) double t; int frame; - if (!(sd = evas_object_smart_data_get(data))) return EINA_FALSE; + if (!(sd = data)) return EINA_FALSE; sd->frame++; frame = ((sd->frame - 1) % sd->frame_num) + 1; if ((sd->frame >= sd->frame_num) && (frame == 1)) @@ -118,7 +118,7 @@ _img_type_anim_handle(Evas_Object *obj) sd->frame_num = evas_object_image_animated_frame_count_get(sd->o_img); if (sd->frame_num < 2) return; t = evas_object_image_animated_frame_duration_get(sd->o_img, sd->frame, 0); - sd->anim_tmr = ecore_timer_add(t, _img_cb_frame, obj); + sd->anim_tmr = ecore_timer_add(t, _img_cb_frame, sd); } static void @@ -133,7 +133,7 @@ _img_type_init(Evas_Object *obj) evas_object_clip_set(sd->o_img, sd->o_clip); evas_object_raise(sd->o_event); evas_object_event_callback_add(sd->o_img, EVAS_CALLBACK_IMAGE_PRELOADED, - _img_cb_preloaded, obj); + _img_cb_preloaded, sd); evas_object_image_load_orientation_set(sd->o_img, EINA_TRUE); evas_object_image_file_set(sd->o_img, sd->realf, NULL); evas_object_image_size_get(sd->o_img, &sd->iw, &sd->ih); --
[EGIT] [core/evas_generic_loaders] master 01/02: evas-generic-loaders: Remove unused variable
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/evas_generic_loaders.git/commit/?id=5dd48dee56821a13bc6c21f9a6de055271cb84c3 commit 5dd48dee56821a13bc6c21f9a6de055271cb84c3 Author: Chris Michael Date: Tue Aug 11 09:43:15 2015 -0400 evas-generic-loaders: Remove unused variable Summary: This removes an unused variable in the pdf loader Signed-off-by: Chris Michael --- src/bin/pdf/main.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/bin/pdf/main.cpp b/src/bin/pdf/main.cpp index d2cf856..8164d5f 100644 --- a/src/bin/pdf/main.cpp +++ b/src/bin/pdf/main.cpp @@ -46,7 +46,6 @@ double dpi = -1.0; Eina_Bool poppler_init(const char *file, int page_nbr, int size_w, int size_h) { Object obj; - SplashColor white; double w, h, cw, ch; int rot; --
[EGIT] [core/evas_generic_loaders] master 02/02: evas-generic-loaders: Add missing EINA_UNUSED
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/evas_generic_loaders.git/commit/?id=76432b08a1e785fe3c51e5b83a3d5afada943b1f commit 76432b08a1e785fe3c51e5b83a3d5afada943b1f Author: Chris Michael Date: Tue Aug 11 09:44:38 2015 -0400 evas-generic-loaders: Add missing EINA_UNUSED Summary: This adds missing EINA_UNUSED for function paramaters which are not being used Signed-off-by: Chris Michael --- src/bin/pdf/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/pdf/main.cpp b/src/bin/pdf/main.cpp index 8164d5f..7eaca4e 100644 --- a/src/bin/pdf/main.cpp +++ b/src/bin/pdf/main.cpp @@ -145,7 +145,7 @@ void poppler_shutdown() delete globalParams; } -void poppler_load_image(int size_w, int size_h) +void poppler_load_image(int size_w EINA_UNUSED, int size_h EINA_UNUSED) { SplashOutputDev *output_dev; SplashColor white; --
[EGIT] [apps/express] master 04/08: express: Add images for media control to theme
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=b63268e9d019c124965f80bcb8d6a78e0e3a9e37 commit b63268e9d019c124965f80bcb8d6a78e0e3a9e37 Author: Chris Michael Date: Wed Aug 12 12:31:07 2015 -0400 express: Add images for media control to theme Signed-off-by: Chris Michael --- data/themes/images/Makefile.am| 10 -- data/themes/images/media_bg.png | Bin 0 -> 1171 bytes data/themes/images/media_knob_pos.png | Bin 0 -> 660 bytes data/themes/images/media_knob_vol.png | Bin 0 -> 693 bytes data/themes/images/media_line.png | Bin 0 -> 471 bytes data/themes/images/media_pause.png| Bin 0 -> 250 bytes data/themes/images/media_play.png | Bin 0 -> 293 bytes data/themes/images/media_stop.png | Bin 0 -> 243 bytes 8 files changed, 8 insertions(+), 2 deletions(-) diff --git a/data/themes/images/Makefile.am b/data/themes/images/Makefile.am index 84b56da..1b6745b 100644 --- a/data/themes/images/Makefile.am +++ b/data/themes/images/Makefile.am @@ -42,5 +42,11 @@ tab_shad_l1.png \ tab_shad_l2.png \ tab_shad_r0.png \ tab_shad_r1.png \ -tab_shad_r2.png - +tab_shad_r2.png \ +media_bg.png \ +media_play.png \ +media_stop.png \ +media_pause.png \ +media_line.png \ +media_knob_vol.png \ +media_knob_pos.png diff --git a/data/themes/images/media_bg.png b/data/themes/images/media_bg.png new file mode 100644 index 000..00642a2 Binary files /dev/null and b/data/themes/images/media_bg.png differ diff --git a/data/themes/images/media_knob_pos.png b/data/themes/images/media_knob_pos.png new file mode 100644 index 000..52b333d Binary files /dev/null and b/data/themes/images/media_knob_pos.png differ diff --git a/data/themes/images/media_knob_vol.png b/data/themes/images/media_knob_vol.png new file mode 100644 index 000..db8b273 Binary files /dev/null and b/data/themes/images/media_knob_vol.png differ diff --git a/data/themes/images/media_line.png b/data/themes/images/media_line.png new file mode 100644 index 000..96381ed Binary files /dev/null and b/data/themes/images/media_line.png differ diff --git a/data/themes/images/media_pause.png b/data/themes/images/media_pause.png new file mode 100644 index 000..ed5e7ba Binary files /dev/null and b/data/themes/images/media_pause.png differ diff --git a/data/themes/images/media_play.png b/data/themes/images/media_play.png new file mode 100644 index 000..5a924b4 Binary files /dev/null and b/data/themes/images/media_play.png differ diff --git a/data/themes/images/media_stop.png b/data/themes/images/media_stop.png new file mode 100644 index 000..727e0e2 Binary files /dev/null and b/data/themes/images/media_stop.png differ --
[EGIT] [apps/express] master 07/08: express: Re-enable Video options in config toolbar
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=ef0fa3fb134265f8a82166c8bd6b49b63dcad8c8 commit ef0fa3fb134265f8a82166c8bd6b49b63dcad8c8 Author: Chris Michael Date: Wed Aug 12 13:17:39 2015 -0400 express: Re-enable Video options in config toolbar Signed-off-by: Chris Michael --- src/bin/options.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/options.c b/src/bin/options.c index 2710234..f2cc944 100644 --- a/src/bin/options.c +++ b/src/bin/options.c @@ -173,7 +173,7 @@ _options_toggle(Evas_Object *win, Evas_Object *base, Evas_Object *grid, void (*c TB_APPEND("preferences-desktop-font", "Font", FONT); TB_APPEND("preferences-desktop-theme", "Colors", COLORS); -/* TB_APPEND("video-display", "Video", VIDEO); */ +TB_APPEND("video-display", "Video", VIDEO); TB_APPEND("preferences-system-network", "Networks", NETWORKS); #undef TB_APPEND --
[EGIT] [apps/express] master 08/08: express: Disable Color config options in config toolbar
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=67bd8aa4919656f272494d131a7d91a00d83ab7a commit 67bd8aa4919656f272494d131a7d91a00d83ab7a Author: Chris Michael Date: Wed Aug 12 13:18:10 2015 -0400 express: Disable Color config options in config toolbar Summary: Disabling option to config colors (for now) as it's not implemented yet anyway Signed-off-by: Chris Michael --- src/bin/options.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/options.c b/src/bin/options.c index f2cc944..e19cf3a 100644 --- a/src/bin/options.c +++ b/src/bin/options.c @@ -172,7 +172,7 @@ _options_toggle(Evas_Object *win, Evas_Object *base, Evas_Object *grid, void (*c elm_toolbar_item_selected_set(o_itm, EINA_TRUE); TB_APPEND("preferences-desktop-font", "Font", FONT); -TB_APPEND("preferences-desktop-theme", "Colors", COLORS); +/* TB_APPEND("preferences-desktop-theme", "Colors", COLORS); */ TB_APPEND("video-display", "Video", VIDEO); TB_APPEND("preferences-system-network", "Networks", NETWORKS); #undef TB_APPEND --
[EGIT] [apps/express] master 06/08: express: Add config options for video engine used for movie media playback
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=b045e197da7a6c9fb0698b7e31e438ad7b6658df commit b045e197da7a6c9fb0698b7e31e438ad7b6658df Author: Chris Michael Date: Wed Aug 12 13:17:20 2015 -0400 express: Add config options for video engine used for movie media playback Signed-off-by: Chris Michael --- src/bin/options_video.c | 106 +++- 1 file changed, 104 insertions(+), 2 deletions(-) diff --git a/src/bin/options_video.c b/src/bin/options_video.c index dbf8833..9d081df 100644 --- a/src/bin/options_video.c +++ b/src/bin/options_video.c @@ -1,10 +1,36 @@ #include "private.h" #include "options_video.h" +#include "config.h" + +static void +_cb_mute_changed(void *data EINA_UNUSED, Evas_Object *obj, void *event EINA_UNUSED) +{ + _ex_cfg->video.muted = elm_check_state_get(obj); + _config_save(); +} + +static void +_cb_visual_changed(void *data EINA_UNUSED, Evas_Object *obj, void *event EINA_UNUSED) +{ + _ex_cfg->video.visualized = elm_check_state_get(obj); + _config_save(); +} + +static void +_cb_module_changed(void *data EINA_UNUSED, Evas_Object *obj, void *event EINA_UNUSED) +{ + int v; + + v = elm_radio_value_get(obj); + if (v == _ex_cfg->video.module) return; + _ex_cfg->video.module = v; + _config_save(); +} void _options_video(Evas_Object *box, Evas_Object *grid EINA_UNUSED) { - Evas_Object *o_frame, *vbox, *o; + Evas_Object *o_frame, *vbox, *o, *o_mod; /* video frame */ o_frame = elm_frame_add(box); @@ -21,12 +47,88 @@ _options_video(Evas_Object *box, Evas_Object *grid EINA_UNUSED) elm_object_content_set(o_frame, vbox); evas_object_show(vbox); + o = elm_check_add(box); + WEIGHT_SET(o, EVAS_HINT_EXPAND, 0.0); + ALIGN_SET(o, EVAS_HINT_FILL, 0.5); + elm_object_text_set(o, "Audio Muted"); + elm_check_state_set(o, _ex_cfg->video.muted); + evas_object_smart_callback_add(o, "changed", _cb_mute_changed, NULL); + elm_box_pack_end(vbox, o); + evas_object_show(o); + + o = elm_check_add(box); + WEIGHT_SET(o, EVAS_HINT_EXPAND, 0.0); + ALIGN_SET(o, EVAS_HINT_FILL, 0.5); + elm_object_text_set(o, "Audio Visualized"); + elm_check_state_set(o, _ex_cfg->video.visualized); + evas_object_smart_callback_add(o, "changed", _cb_visual_changed, NULL); + elm_box_pack_end(vbox, o); + evas_object_show(o); + + o = elm_separator_add(box); + WEIGHT_SET(o, EVAS_HINT_EXPAND, 0.0); + ALIGN_SET(o, EVAS_HINT_FILL, 0.5); + elm_separator_horizontal_set(o, EINA_TRUE); + elm_box_pack_end(vbox, o); + evas_object_show(o); + o = elm_label_add(box); WEIGHT_SET(o, EVAS_HINT_EXPAND, 0.0); ALIGN_SET(o, 0.0, EVAS_HINT_FILL); - elm_object_text_set(o, "Video Engine"); + elm_object_text_set(o, "Video Engine:"); elm_box_pack_end(vbox, o); evas_object_show(o); + o_mod = o = elm_radio_add(box); + WEIGHT_SET(o, EVAS_HINT_EXPAND, 0.0); + ALIGN_SET(o, EVAS_HINT_FILL, 0.5); + elm_object_text_set(o, "Automatic"); + elm_radio_state_value_set(o, 0); + evas_object_smart_callback_add(o, "changed", _cb_module_changed, NULL); + elm_box_pack_end(vbox, o); + evas_object_show(o); + + o = elm_radio_add(box); + WEIGHT_SET(o, EVAS_HINT_EXPAND, 0.0); + ALIGN_SET(o, EVAS_HINT_FILL, 0.5); + elm_object_text_set(o, "Gstreamer"); + elm_radio_state_value_set(o, 1); + elm_radio_group_add(o, o_mod); + evas_object_smart_callback_add(o, "changed", _cb_module_changed, NULL); + elm_box_pack_end(vbox, o); + evas_object_show(o); + + o = elm_radio_add(box); + WEIGHT_SET(o, EVAS_HINT_EXPAND, 0.0); + ALIGN_SET(o, EVAS_HINT_FILL, 0.5); + elm_object_text_set(o, "Xine"); + elm_radio_state_value_set(o, 2); + elm_radio_group_add(o, o_mod); + evas_object_smart_callback_add(o, "changed", _cb_module_changed, NULL); + elm_box_pack_end(vbox, o); + evas_object_show(o); + + o = elm_radio_add(box); + WEIGHT_SET(o, EVAS_HINT_EXPAND, 0.0); + ALIGN_SET(o, EVAS_HINT_FILL, 0.5); + elm_object_text_set(o, "VLC"); + elm_radio_state_value_set(o, 3); + elm_radio_group_add(o, o_mod); + evas_object_smart_callback_add(o, "changed", _cb_module_changed, NULL); + elm_box_pack_end(vbox, o); + evas_object_show(o); + + o = elm_radio_add(box); + WEIGHT_SET(o, EVAS_HINT_EXPAND, 0.0); + ALIGN_SET(o, EVAS_HINT_FILL, 0.5); + elm_object_text_set(o, "Gstreamer 1.X"); + elm_radio_state_value_set(o, 4); + elm_radio_group_add(o, o_mod); + evas_object_smart_callback_add(o, "changed", _cb_module_changed, NULL); + elm_box_pack_end(vbox, o); + evas_object_show(o); + + elm_radio_value_set(o, _ex_cfg->video.module); + elm_box_pack_end(box, o_frame); } --
[EGIT] [apps/express] master 03/08: express: Start on media support for movies
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=fd8e9efa2bf049aab9d63243b4e10c30cc677894 commit fd8e9efa2bf049aab9d63243b4e10c30cc677894 Author: Chris Michael Date: Wed Aug 12 12:26:07 2015 -0400 express: Start on media support for movies Signed-off-by: Chris Michael --- src/bin/media.c | 285 ++-- 1 file changed, 277 insertions(+), 8 deletions(-) diff --git a/src/bin/media.c b/src/bin/media.c index 25d7a4d..e020d70 100644 --- a/src/bin/media.c +++ b/src/bin/media.c @@ -33,6 +33,8 @@ struct _Media Ecore_Timer *anim_tmr; Ecore_Timer *smooth_tmr; + Ecore_Job *restart_job; + Media_Type type; struct @@ -44,6 +46,7 @@ struct _Media Eina_Bool nosmooth : 1; Eina_Bool downloading : 1; Eina_Bool queued : 1; + Eina_Bool pos_drag : 1; }; static Evas_Smart *_smart = NULL; @@ -581,6 +584,269 @@ _smooth_handler(Evas_Object *obj) } static void +_mov_type_calc(Media *sd, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h) +{ + if (!sd) return; + + evas_object_move(sd->o_ctrl, x, y); + evas_object_resize(sd->o_ctrl, w, h); + + emotion_object_size_get(sd->o_img, &(sd->iw), &(sd->ih)); + if ((w <= 0) || (h <= 0) || (sd->iw <= 0) || (sd->ih <= 0)) + { +w = 1; +h = 1; + } + else + { +int iw = 1, ih = 1; +double ratio; + +ratio = emotion_object_ratio_get(sd->o_img); +if (ratio > 0.0) sd->iw = (sd->ih * ratio) + 0.5; +else ratio = (double)sd->iw / (double)sd->ih; + +if ((sd->mode & MEDIA_SIZE_MASK) == MEDIA_BG) + { + iw = w; + ih = w / ratio; + if (ih < h) + { + ih = h; + iw = h * ratio; + if (iw < w) iw = w; + } + } +else if ((sd->mode & MEDIA_SIZE_MASK) == MEDIA_POP) + { + iw = w; + ih = w / ratio; + if (ih > h) + { + ih = h; + iw = h * ratio; + if (iw > w) iw = w; + } + } +else if ((sd->mode & MEDIA_SIZE_MASK) == MEDIA_STRETCH) + { + iw = w; + ih = h; + } +x += ((w - iw) / 2); +y += ((h - ih) / 2); +w = iw; +h = ih; + } + + evas_object_move(sd->o_img, x, y); + evas_object_resize(sd->o_img, w, h); +} + +static void +_mov_cb_frame_decode(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) +{ + Media *sd; + Evas_Coord x, y, w, h; + double len, pos; + + if (!(sd = evas_object_smart_data_get(data))) return; + + evas_object_geometry_get(data, &x, &y, &w, &h); + evas_object_show(sd->o_img); + evas_object_show(sd->o_clip); + + _mov_type_calc(sd, x, y, w, h); + + if (sd->pos_drag) return; + + len = emotion_object_play_length_get(sd->o_img); + pos = emotion_object_position_get(sd->o_img); + pos /= len; + + edje_object_part_drag_value_set(sd->o_ctrl, "express.posdrag", pos, pos); +} + +static void +_mov_cb_frame_resize(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) +{ + Media *sd; + Evas_Coord x, y, w, h; + + if (!(sd = evas_object_smart_data_get(data))) return; + evas_object_geometry_get(data, &x, &y, &w, &h); + _mov_type_calc(sd, x, y, w, h); +} + +static void +_mov_cb_restart(void *data) +{ + Media *sd; + + if (!(sd = evas_object_smart_data_get(data))) return; + sd->restart_job = NULL; + emotion_object_position_set(sd->o_img, 0.0); + emotion_object_play_set(sd->o_img, EINA_TRUE); +} + +static void +_mov_cb_decode_stop(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) +{ + Media *sd; + + if (!(sd = evas_object_smart_data_get(data))) return; + if (sd->restart_job) ecore_job_del(sd->restart_job); + sd->restart_job = ecore_job_add(_mov_cb_restart, data); + evas_object_smart_callback_call(data, "loop", NULL); +} + +/* static void */ +/* _mov_cb_progress(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) */ +/* { */ + +/* } */ + +static void +_mov_cb_play(void *data, Evas_Object *obj EINA_UNUSED, const char *emission EINA_UNUSED, const char *src EINA_UNUSED) +{ + _media_play_set(data, EINA_TRUE); +} + +static void +_mov_cb_pause(void *data, Evas_Object *obj EINA_UNUSED, const char *emission EINA_UNUSED, const char *src EINA_UNUSED) +{ + _media_play_set(data, EINA_FALSE); +} + +static void +_mov_cb_stop(void *data, Evas_Object *obj EINA_UNUSED, const char *emission EINA_UNUSED, const char *src EINA_UNUSED) +{ + _media_stop(data); +} + +static void +_mov_cb_vol(void *data, Eva
[EGIT] [apps/express] master 05/08: express: Add media control part to express default theme
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=4b45acb50cf59347d5808b5ac1a190b7739460d4 commit 4b45acb50cf59347d5808b5ac1a190b7739460d4 Author: Chris Michael Date: Wed Aug 12 13:02:01 2015 -0400 express: Add media control part to express default theme Signed-off-by: Chris Michael --- data/themes/default.edc | 326 +++- 1 file changed, 325 insertions(+), 1 deletion(-) diff --git a/data/themes/default.edc b/data/themes/default.edc index c82896e..6fd64ee 100644 --- a/data/themes/default.edc +++ b/data/themes/default.edc @@ -2007,6 +2007,7 @@ collections } /* TODO: bell */ + /* TODO: popmedia */ } programs { @@ -3656,6 +3657,329 @@ collections target: "fade"; } } -} + } + + group + { +name: "express/mediactrl"; +images + { + image: "media_bg.png" COMP; + image: "media_play.png" COMP; + image: "media_stop.png" COMP; + image: "media_pause.png" COMP; + image: "media_line.png" COMP; + image: "media_knob_vol.png" COMP; + image: "media_knob_pos.png" COMP; + } +parts + { + part + { + name: "clip"; + type: RECT; + mouse_events: 0; + description +{ + state: "default" 0.0; + rel1.to: "background"; + rel2.to: "background"; +} + } + part + { + name: "background"; + clip_to: "clip"; + description +{ + state: "default" 0.0; + image.normal: "media_bg.png"; + image.border: 11 11 11 11; + min: 24 24; + max: 24 24; + align: 1.0 0.0; +} + description +{ + state: "expanded" 0.0; + inherit: "default" 0.0; + min: 216 24; + max: 216 24; +} + } + part + { + name: "play"; + mouse_events: 1; + repeat_events: 1; + clip_to: "clip"; + description +{ + state: "default" 0.0; + image.normal: "media_pause.png"; + max: 24 24; + align: 1.0 0.0; +} + description +{ + state: "paused" 0.0; + inherit: "default" 0.0; + image.normal: "media_play.png"; +} + } + part + { + name: "stop"; + mouse_events: 1; + repeat_events: 1; + clip_to: "clip"; + description +{ + state: "default" 0.0; + image.normal: "media_stop.png"; + max: 24 24; + rel1.to: "play"; + rel1.offset: -16 0; + rel2.to: "play"; + rel2.offset: -16 0; +} + } + part + { + name: "posline"; + mouse_events: 1; + repeat_events: 1; + clip_to: "clip"; + description +{ + state: "default" 0.0; + image.normal: "media_line.png"; + image.border: 15 15 0 0; + min: 90 14; + max: 90 14; + rel1.to: "stop"; + rel1.offset: -25 0; + rel2.to: "stop"; + rel2.offset: -90 0; +} + } + part + { + name: "express.posdrag"; + mouse_events: 0; + repeat_events: 1; + clip_to: "clip"; +
[EGIT] [apps/express] master 02/08: express: Add oga as an audio extension
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=70b3a178cb38d5cff64efabe8c87d2e92e99db9a commit 70b3a178cb38d5cff64efabe8c87d2e92e99db9a Author: Chris Michael Date: Wed Aug 12 12:14:45 2015 -0400 express: Add oga as an audio extension Signed-off-by: Chris Michael --- src/bin/utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/utils.c b/src/bin/utils.c index 282b6f7..5bd00ce 100644 --- a/src/bin/utils.c +++ b/src/bin/utils.c @@ -39,7 +39,7 @@ const char *extn_mov[] = const char *extn_aud[] = { - ".mp3", ".aac", ".wav", ".flac", ".m4a", ".opus", + ".mp3", ".aac", ".wav", ".flac", ".m4a", ".opus", ".oga", NULL }; --
[EGIT] [apps/express] master 01/08: express: Add config options for video playback
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=6afc0c1752497f96c91cd99d338cf623fbc22185 commit 6afc0c1752497f96c91cd99d338cf623fbc22185 Author: Chris Michael Date: Wed Aug 12 11:48:49 2015 -0400 express: Add config options for video playback Signed-off-by: Chris Michael --- src/bin/config.c | 12 +++- src/bin/config.h | 17 - 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/bin/config.c b/src/bin/config.c index 8c1c601..e77ddbe 100644 --- a/src/bin/config.c +++ b/src/bin/config.c @@ -25,7 +25,7 @@ EET_DATA_DESCRIPTOR_ADD_HASH(edd, type, #member, member, eddtype) # define EX_CONFIG_FILE_EPOCH 0x0004 -# define EX_CONFIG_FILE_GENERATION 0x011d +# define EX_CONFIG_FILE_GENERATION 0x012d # define EX_CONFIG_FILE_VERSION \ ((EX_CONFIG_FILE_EPOCH << 16) | EX_CONFIG_FILE_GENERATION) @@ -198,6 +198,9 @@ _config_init(void) EX_CONFIG_VAL(D, T, gui.zoom, EET_T_DOUBLE); EX_CONFIG_VAL(D, T, gui.scrollback, EET_T_INT); EX_CONFIG_VAL(D, T, gui.tabs, EET_T_INT); + EX_CONFIG_VAL(D, T, video.module, EET_T_INT); + EX_CONFIG_VAL(D, T, video.muted, EET_T_UCHAR); + EX_CONFIG_VAL(D, T, video.visualized, EET_T_UCHAR); EX_CONFIG_LIST(D, T, networks, _ex_cfg_net_edd); _config_load(); @@ -280,10 +283,17 @@ _config_load(void) _ex_cfg->font.use_entry = EINA_TRUE; IFCFGEND; + IFCFG(0x012d); + _ex_cfg->video.module = 0; + _ex_cfg->video.muted = EINA_FALSE; + _ex_cfg->video.visualized = EINA_TRUE; + IFCFGEND; + /* limit config values so they are sane */ EX_CONFIG_LIMIT(_ex_cfg->font.size, 3, 400); EX_CONFIG_LIMIT(_ex_cfg->gui.zoom, 0.1, 1.0); EX_CONFIG_LIMIT(_ex_cfg->gui.scrollback, 0, 20); + EX_CONFIG_LIMIT(_ex_cfg->video.module, 0, 4); _ex_cfg->version = EX_CONFIG_FILE_VERSION; diff --git a/src/bin/config.h b/src/bin/config.h index 3bd421a..1c8424c 100644 --- a/src/bin/config.h +++ b/src/bin/config.h @@ -14,8 +14,8 @@ struct _Config_Channel struct _Config_Server { - const char *name; int port; + const char *name; }; struct _Config_Network @@ -38,22 +38,29 @@ struct _Config struct { -const char *name; int size; +const char *name; Eina_Bool bitmap; Eina_Bool use_entry; } font; struct { -Eina_Bool translucent; -Eina_Bool use_gravatar; -int opacity; double zoom; +int opacity; int scrollback; int tabs; +Eina_Bool translucent; +Eina_Bool use_gravatar; } gui; + struct + { +int module; +Eina_Bool muted; +Eina_Bool visualized; + } video; + Eina_List *networks; }; --
[EGIT] [apps/express] master 03/04: express: Add support for popup media in a channel
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=4f746c9c85e39015f8cfe8882e7aad944fe8e02f commit 4f746c9c85e39015f8cfe8882e7aad944fe8e02f Author: Chris Michael Date: Wed Aug 12 15:59:42 2015 -0400 express: Add support for popup media in a channel Signed-off-by: Chris Michael --- src/bin/channel.c | 129 ++ 1 file changed, 129 insertions(+) diff --git a/src/bin/channel.c b/src/bin/channel.c index 6668aa8..7be2383 100644 --- a/src/bin/channel.c +++ b/src/bin/channel.c @@ -6,6 +6,8 @@ #include "grid.h" #include "utils.h" #include "commands.h" +#include "dbus.h" +#include "media.h" struct _Channel { @@ -23,6 +25,7 @@ struct _Channel Evas_Object *o_tabregion_base; Evas_Object *o_img; Evas_Object *o_entry; + Evas_Object *o_popmedia; struct { @@ -59,16 +62,125 @@ struct _Channel int min_w, min_h; int req_w, req_h; + Eina_List *popmedia_queue; + Eina_Bool active : 1; Eina_Bool size_done : 1; Eina_Bool translucent : 1; Eina_Bool focused : 1; Eina_Bool unswallowed : 1; Eina_Bool missed : 1; + Eina_Bool popmedia_deleted : 1; Express_Network *net; }; +static void _channel_popmedia(Channel *chl, const char *src); + +static void +_cb_popmedia_loop(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) +{ + Channel *chl; + + chl = data; + if (chl->popmedia_queue) + { +if (chl->o_popmedia) _media_play_set(chl->o_popmedia, EINA_FALSE); +edje_object_signal_emit(chl->o_bg, "popmedia,off", PACKAGE_NAME); + } +} + +static void +_cb_popmedia_del(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) +{ + Channel *chl; + + chl = data; + chl->o_popmedia = NULL; + chl->popmedia_deleted = EINA_TRUE; + edje_object_signal_emit(chl->o_bg, "popmedia,off", PACKAGE_NAME); +} + +static void +_channel_popmedia_queue_process(Channel *chl) +{ + const char *src; + + if (!chl->popmedia_queue) return; + src = chl->popmedia_queue->data; + chl->popmedia_queue = + eina_list_remove_list(chl->popmedia_queue, chl->popmedia_queue); + if (!src) return; + _channel_popmedia(chl, src); + eina_stringshare_del(src); +} + +static void +_cb_popmedia_done(void *data, Evas_Object *obj EINA_UNUSED, const char *emission EINA_UNUSED, const char *src EINA_UNUSED) +{ + Channel *chl; + + chl = data; + if ((chl->o_popmedia) || (chl->popmedia_deleted)) + { +if (chl->o_popmedia) + { + evas_object_event_callback_del(chl->o_popmedia, EVAS_CALLBACK_DEL, +_cb_popmedia_del); + evas_object_del(chl->o_popmedia); + chl->o_popmedia = NULL; + } +chl->popmedia_deleted = EINA_FALSE; +_channel_popmedia_queue_process(chl); + } +} + +static void +_channel_popmedia_show(Channel *chl, const char *src, Media_Type type) +{ + _dbus_link_hide(); + + if (chl->o_popmedia) + { +const char *s; + +EINA_LIST_FREE(chl->popmedia_queue, s) + eina_stringshare_del(s); + +chl->popmedia_queue = + eina_list_append(chl->popmedia_queue, eina_stringshare_add(src)); + +edje_object_signal_emit(chl->o_bg, "popmedia,off", PACKAGE_NAME); + +return; + } + + chl->o_popmedia = _media_add(chl->o_win, src, MEDIA_POP, type); + chl->popmedia_deleted = EINA_FALSE; + evas_object_smart_callback_add(chl->o_popmedia, "loop", + _cb_popmedia_loop, chl); + evas_object_event_callback_add(chl->o_popmedia, EVAS_CALLBACK_DEL, + _cb_popmedia_del, chl); + edje_object_part_swallow(chl->o_bg, "express.popmedia", chl->o_popmedia); + evas_object_show(chl->o_popmedia); + + edje_object_signal_emit(chl->o_bg, "popmedia,on", PACKAGE_NAME); +} + +static void +_channel_popmedia(Channel *chl, const char *src) +{ + Media_Type type; + + type = _media_src_type_get(src); + if (type == MEDIA_TYPE_UNKNOWN) + { + + } + else + _channel_popmedia_show(chl, src, type); +} + static void _cb_theme_reload(Channel *chl) { @@ -138,6 +250,19 @@ _cb_next(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) } } +static void +_cb_popup(void *data, Evas_Object *obj EINA_UNUSED, void *event) +{ + Channel *chl; + const char *src; + + chl = data; + src = event; + if (!src) src = _grid_link_get(chl->o_grid); + if (!src) return; + _channel_popmedia(chl, src); +} + static void _cb_count_go(void *data, Evas_Object *obj EINA_UNUSED, const char *sig EINA_UNUSED, const char *source EINA_UNUSED) {
[EGIT] [apps/express] master 01/04: express: Add function for returning the active url link in a grid
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=92c57067c4dc31496811642a2270028904af10db commit 92c57067c4dc31496811642a2270028904af10db Author: Chris Michael Date: Wed Aug 12 15:58:50 2015 -0400 express: Add function for returning the active url link in a grid Signed-off-by: Chris Michael --- src/bin/grid.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/grid.h b/src/bin/grid.h index 2023005..f189a3c 100644 --- a/src/bin/grid.h +++ b/src/bin/grid.h @@ -182,6 +182,7 @@ void _grid_theme_set(Evas_Object *obj, Evas_Object *theme); void _grid_resize(Evas_Object *obj, int nw, int nh); void _grid_text_append(Evas_Object *obj, const char *txt, int len, Row_Color *color); void _grid_nicklen_set(Evas_Object *obj, int len); +const char *_grid_link_get(Evas_Object *obj); #define GRID_CELLS(SD, X, Y) \ SD->cells[X + (((Y + SD->circular_offset) % SD->h) * SD->w)] --
[EGIT] [apps/express] master 04/04: express: Add popmedia controls to default theme
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=13ca55f4b4a64db9cb22f30594bb81cd04930177 commit 13ca55f4b4a64db9cb22f30594bb81cd04930177 Author: Chris Michael Date: Wed Aug 12 16:00:48 2015 -0400 express: Add popmedia controls to default theme Signed-off-by: Chris Michael --- data/themes/default.edc | 284 +++- 1 file changed, 282 insertions(+), 2 deletions(-) diff --git a/data/themes/default.edc b/data/themes/default.edc index 6fd64ee..4c43cb6 100644 --- a/data/themes/default.edc +++ b/data/themes/default.edc @@ -2007,7 +2007,229 @@ collections } /* TODO: bell */ - /* TODO: popmedia */ + + part + { + name: "popmedia_clip"; + type: RECT; + mouse_events: 1; + description +{ + state: "default" 0.0; + fixed: 1 1; + visible: 0; + color: 255 255 255 0; +} + description +{ + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + color: 255 255 255 255; +} + } + part + { + name: "popmedia_shadow"; + mouse_events: 0; + description +{ + state: "default" 0.0; + fixed: 1 1; + rel1.to: "express.popmedia"; + rel2.to: "express.popmedia"; + image + { +normal: "pm_shadow.png"; +border: 64 64 64 64; +border_scale_by: 0.1; + } + fill.smooth: 0; + visible: 0; +} + description +{ + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + rel1.offset: -32 -32; + rel2.offset: 31 31; + image.border_scale_by: 1.0; +} + } + part + { + name: "popmedia_fill"; + mouse_events: 0; + description +{ + state: "default" 0.0; + fixed: 1 1; + rel1.to: "express.popmedia"; + rel2.to: "express.popmedia"; + image.normal: "pm_fill.png"; + fill + { +size.relative: 0.0 0.0; +size.offset: 64 64; + } +} + } + part + { + name: "express.popmedia"; + type: SWALLOW; + clip_to: "popmedia_clip"; + description +{ + state: "default" 0.0; + fixed: 1 1; + rel1.relative: 0.5 0.5; + rel2.relative: 0.5 0.5; + visible: 0; +} + description +{ + state: "visible" 0.0; + inherit: "default" 0.0; + rel1.relative: 0.1 0.1; + rel2.relative: 0.9 0.9; + visible: 1; +} + } + part + { + name: "popmedia_overlay"; + mouse_events: 0; + description +{ + state: "default" 0.0; + fixed: 1 1; + rel1.to: "express.popmedia"; + rel2.to: "express.popmedia"; + image.normal: "pm_overlay.png"; + fill.smooth: 0; + visible: 0; +} + description +{ + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; +} + } + part + { + name: "popmedi
[EGIT] [apps/express] master 02/04: express: Add support for activating links into a popup
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=5e09435d3944d0708bc114eb9e5eb483b4868b78 commit 5e09435d3944d0708bc114eb9e5eb483b4868b78 Author: Chris Michael Date: Wed Aug 12 15:59:17 2015 -0400 express: Add support for activating links into a popup Signed-off-by: Chris Michael --- src/bin/grid.c | 96 +- 1 file changed, 61 insertions(+), 35 deletions(-) diff --git a/src/bin/grid.c b/src/bin/grid.c index 399e8b6..92ee337 100644 --- a/src/bin/grid.c +++ b/src/bin/grid.c @@ -7,6 +7,7 @@ #include "theme.h" #include "dbus.h" #include "gravatar.h" +#include "media.h" /* local function prototypes */ static void _smart_size(Evas_Object *obj, int w, int h, Eina_Bool force); @@ -18,6 +19,20 @@ static Evas_Smart *_smart = NULL; static Evas_Smart_Class _parent_sc = EVAS_SMART_CLASS_INIT_NULL; /* local functions */ +static Eina_Bool +_should_inline(const Evas_Object *obj) +{ + const Evas *evas; + const Evas_Modifier *mods; + + evas = evas_object_evas_get(obj); + mods = evas_key_modifier_get(evas); + + if (evas_key_modifier_is_set(mods, "Control")) return EINA_FALSE; + + return EINA_TRUE; +} + static void _coord_to_cursor(Evas_Object *obj, Evas_Coord x, Evas_Coord y, int *cx, int *cy) { @@ -228,7 +243,7 @@ _cb_link_down(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_UNUSED, } static void -_link_activate(Evas_Object *obj, Eina_Bool may_inline EINA_UNUSED) +_link_activate(Evas_Object *obj, Eina_Bool may_inline) { Grid *sd; char buff[PATH_MAX], *s, *esc; @@ -283,23 +298,24 @@ _link_activate(Evas_Object *obj, Eina_Bool may_inline EINA_UNUSED) esc = ecore_file_escape_name(s); if (esc) { - /* int type; */ - /* type = media_src_type_get(sd->link.string); */ - /* if (may_inline && _should_inline(obj)) */ - /* { */ - /* if ((type == MEDIA_TYPE_IMG) || */ - /* (type == MEDIA_TYPE_SCALE) || */ - /* (type == MEDIA_TYPE_EDJE)) */ - /*{ */ - /* evas_object_smart_callback_call(obj, "popup", NULL); */ - /* handled = EINA_TRUE; */ - /*} */ - /* else if (type == MEDIA_TYPE_MOV) */ - /*{ */ - /* evas_object_smart_callback_call(obj, "popup", NULL); */ - /* handled = EINA_TRUE; */ - /*} */ - /* } */ + int type; + + type = _media_src_type_get(sd->link.str); + if (may_inline && _should_inline(obj)) + { + if ((type == MEDIA_TYPE_IMG) || + (type == MEDIA_TYPE_SCALE) || + (type == MEDIA_TYPE_EDJE)) +{ + evas_object_smart_callback_call(obj, "popup", NULL); + handled = EINA_TRUE; +} + else if (type == MEDIA_TYPE_MOV) +{ + evas_object_smart_callback_call(obj, "popup", NULL); + handled = EINA_TRUE; +} + } if (!handled) { /* if ((type == MEDIA_TYPE_IMG) || */ @@ -335,24 +351,24 @@ _link_activate(Evas_Object *obj, Eina_Bool may_inline EINA_UNUSED) esc = ecore_file_escape_name(s); if (esc) { - /* int type; */ + int type; - /* type = media_src_type_get(sd->link.string); */ - /* if (may_inline && _should_inline(obj)) */ - /* { */ - /* if ((type == MEDIA_TYPE_IMG) || */ - /* (type == MEDIA_TYPE_SCALE) || */ - /* (type == MEDIA_TYPE_EDJE)) */ - /*{ */ - /* evas_object_smart_callback_call(obj, "popup", NULL); */ - /* handled = EINA_TRUE; */ - /*} */ - /* else if (type == MEDIA_TYPE_MOV) */ - /*{ */ - /* evas_object_smart_callback_call(obj, "popup", NULL); */ - /* handled = EINA_TRUE; */ - /*} */ - /* } */ + type = _media_src_type_get(sd->link.str); + if (may_inline && _should_inline(obj)) + { + if ((type == MEDIA_TYPE_IMG) || + (type == MEDIA_TYPE_SCALE) || + (type == MEDIA_TYPE_EDJE)) +{ + evas_object_smart
[EGIT] [apps/express] master 02/02: express: Adjust default size of window
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=7042ecaa751d995b7070182b048444a22b4c6d9e commit 7042ecaa751d995b7070182b048444a22b4c6d9e Author: Chris Michael Date: Thu Aug 13 11:40:00 2015 -0400 express: Adjust default size of window Signed-off-by: Chris Michael --- src/bin/window.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/window.c b/src/bin/window.c index 936784a..856f381 100644 --- a/src/bin/window.c +++ b/src/bin/window.c @@ -57,8 +57,8 @@ _cb_size_job(void *data EINA_UNUSED) _size_job = NULL; - defw = 400 * elm_config_scale_get(); - defh = 245 * elm_config_scale_get(); + defw = 480 * elm_config_scale_get(); + defh = 310 * elm_config_scale_get(); /* try to get the active channel */ EINA_LIST_FOREACH(_win->channels, l, chl) --
[EGIT] [apps/express] master 01/02: express: Adjust transition speed for dismissing popup media box
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=2a7efea18cd5cba587a220ed4bc782a180b19479 commit 2a7efea18cd5cba587a220ed4bc782a180b19479 Author: Chris Michael Date: Thu Aug 13 11:39:36 2015 -0400 express: Adjust transition speed for dismissing popup media box Signed-off-by: Chris Michael --- data/themes/default.edc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/themes/default.edc b/data/themes/default.edc index 4c43cb6..0b150ea 100644 --- a/data/themes/default.edc +++ b/data/themes/default.edc @@ -2452,7 +2452,7 @@ collections signal: "mouse,clicked,*"; source: "popmedia_dismiss"; action: STATE_SET "default" 0.0; - transition: DECELERATE 0.5; + transition: DECELERATE 0.2; target: "express.popmedia"; target: "popmedia_clip"; target: "popmedia_dismiss"; --
[EGIT] [apps/express] master 01/01: express: Allow download progress for movies played in popup window
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=98551bf3d7f82bee62809a6693f65d65bf7217e7 commit 98551bf3d7f82bee62809a6693f65d65bf7217e7 Author: Chris Michael Date: Thu Aug 13 12:08:44 2015 -0400 express: Allow download progress for movies played in popup window Signed-off-by: Chris Michael --- src/bin/media.c | 32 +++- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/src/bin/media.c b/src/bin/media.c index e020d70..e7791c6 100644 --- a/src/bin/media.c +++ b/src/bin/media.c @@ -700,11 +700,27 @@ _mov_cb_decode_stop(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_U evas_object_smart_callback_call(data, "loop", NULL); } -/* static void */ -/* _mov_cb_progress(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) */ -/* { */ +static void +_mov_cb_progress(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) +{ + Media *sd; + + if (!(sd = evas_object_smart_data_get(data))) return; + DBG("Movie Progress: '%s' '%3.3f", + emotion_object_progress_info_get(sd->o_img), + emotion_object_progress_status_get(sd->o_img)); +} -/* } */ +static void +_mov_cb_ref(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED) +{ + Media *sd; + + if (!(sd = evas_object_smart_data_get(data))) return; + DBG("Movie Ref: '%s' num '%i'", + emotion_object_ref_file_get(sd->o_img), + emotion_object_ref_num_get(sd->o_img)); +} static void _mov_cb_play(void *data, Evas_Object *obj EINA_UNUSED, const char *emission EINA_UNUSED, const char *src EINA_UNUSED) @@ -809,6 +825,10 @@ _mov_type_init(Evas_Object *obj) _mov_cb_frame_resize, obj); evas_object_smart_callback_add(sd->o_img, "decode_stop", _mov_cb_decode_stop, obj); + evas_object_smart_callback_add(sd->o_img, "progress_change", + _mov_cb_progress, obj); + evas_object_smart_callback_add(sd->o_img, "ref_change", + _mov_cb_ref, obj); emotion_object_file_set(sd->o_img, sd->realf); if (((sd->mode & MEDIA_OPTIONS_MASK) & MEDIA_RECOVER) @@ -1137,7 +1157,7 @@ _media_add(Evas_Object *parent, const char *src, int mode, Media_Type type) sd->tmpfd = -1; #if HAVE_MKSTEMPS - if (_util_link_is_url(sd->src) && (type != MEDIA_TYPE_MOV)) + if (_util_link_is_url(sd->src))// && (type != MEDIA_TYPE_MOV)) { const char *ext = NULL; char *buff; @@ -1196,6 +1216,7 @@ _media_add(Evas_Object *parent, const char *src, int mode, Media_Type type) { if (!(sd->url = ecore_con_url_new(buff))) { + ERR("Failed to connect to url: %s", buff); unlink(tmp); close(sd->tmpfd); } @@ -1206,6 +1227,7 @@ _media_add(Evas_Object *parent, const char *src, int mode, Media_Type type) { unlink(tmp); close(sd->tmpfd); +sd->url = NULL; } else { --
[EGIT] [apps/express] master 01/01: express: Use getcwd instead of getting current working directory based on process id
devilhorns pushed a commit to branch master. http://git.enlightenment.org/apps/express.git/commit/?id=0e044cd9cb2aa63c017590a9f8bf92589c43ddfe commit 0e044cd9cb2aa63c017590a9f8bf92589c43ddfe Author: Chris Michael Date: Fri Aug 14 10:16:14 2015 -0400 express: Use getcwd instead of getting current working directory based on process id Signed-off-by: Chris Michael --- src/bin/utils.c | 47 +-- 1 file changed, 5 insertions(+), 42 deletions(-) diff --git a/src/bin/utils.c b/src/bin/utils.c index 18c5640..d767849 100644 --- a/src/bin/utils.c +++ b/src/bin/utils.c @@ -573,44 +573,6 @@ _homedir_get(char *buf, size_t size) return eina_strlcpy(buf, home, size) < size; } -Eina_Bool -_cwd_get(const Evas_Object *obj EINA_UNUSED, char *buf, size_t size) -{ - pid_t pid; - - pid = getpid(); - -#if defined (__MacOSX__) || (defined (__MACH__) && defined (__APPLE__)) - - struct proc_vnodepathinfo vpi; - - if (proc_pidinfo(pid, PROC_PIDVNODEPATHINFO, 0, &vpi, sizeof(vpi)) <= 0) - { -ERR(_("Could not get working directory of pid %i: %s"), -pid, strerror(errno)); -return EINA_FALSE; - } - memcpy(buf, vpi.pvi_cdir.vip_path, size); - -#else - - char procpath[PATH_MAX]; - ssize_t siz; - - snprintf(procpath, sizeof(procpath), "/proc/%d/cwd", pid); - if ((siz = readlink(procpath, buf, size)) < 1) - { -ERR("Could not load working directory %s: %s", -procpath, strerror(errno)); -return EINA_FALSE; - } - buf[siz] = 0; - -#endif - - return EINA_TRUE; -} - static char * _home_path_get(const Evas_Object *obj EINA_UNUSED, const char *relpath) { @@ -624,12 +586,13 @@ _home_path_get(const Evas_Object *obj EINA_UNUSED, const char *relpath) } static char * -_cwd_path_get(const Evas_Object *obj, const char *relpath) +_cwd_path_get(const char *relpath) { char cwdpath[PATH_MAX], tmppath[PATH_MAX]; + char *tmp = NULL; - if (!_cwd_get(obj, cwdpath, sizeof(cwdpath))) - return NULL; + tmp = getcwd(cwdpath, PATH_MAX); + if (!tmp) return NULL; eina_str_join(tmppath, sizeof(tmppath), '/', cwdpath, relpath); return strdup(tmppath); @@ -648,7 +611,7 @@ _util_local_path_get(const Evas_Object *obj, const char *relpath) else if (eina_str_has_prefix(relpath, "~/")) return _home_path_get(obj, relpath + 2); else - return _cwd_path_get(obj, relpath); + return _cwd_path_get(relpath); } Eina_Bool --
[EGIT] [admin/devs] master 01/01: Drop existing keys and switch to EdDSA
devilhorns pushed a commit to branch master. http://git.enlightenment.org/admin/devs.git/commit/?id=117629d1907f3f181f6269fd7bc5729d3052bb55 commit 117629d1907f3f181f6269fd7bc5729d3052bb55 Author: Chris Michael Date: Mon Aug 17 09:09:52 2015 -0400 Drop existing keys and switch to EdDSA --- developers/devilhorns/id_ed25519.pub | 1 + developers/devilhorns/id_rsa.pub | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/developers/devilhorns/id_ed25519.pub b/developers/devilhorns/id_ed25519.pub new file mode 100644 index 000..ef1df51 --- /dev/null +++ b/developers/devilhorns/id_ed25519.pub @@ -0,0 +1 @@ +ssh-ed25519 C3NzaC1lZDI1NTE5IM2fZENOAs7QSomL25tP6lLzC3ZpPHmBoqapkGnX3Sqe devilhorns@paradox diff --git a/developers/devilhorns/id_rsa.pub b/developers/devilhorns/id_rsa.pub deleted file mode 100644 index f1ded2d..000 --- a/developers/devilhorns/id_rsa.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-rsa B3NzaC1yc2EBIwAAAQEApyTPkrwLZNLgozPoOQQhKoDpXCCduFCC2MiWjeazzl1/0jgENRdjAl462kNUR2K9KV0HEAaDHP96YK7+9NYvAVUrKHA091P+FpSdAquSCNTVt9pFEAQhrIxsBPWife3yTEDlNJFgcRw/M1j1RCE6qaIzlhnOmIKl0ROkAhUUJLO61HhYENWlaX8hQf04zMtHA20rBxBaxDvL7VOUDPWzOwnvl5iYCssP2OHD7ibJyA+T714cRis/lmALaZo0GSdJxl1B5h1EPGAQFp4xmwgF5q+xGVeoefjEEEdMZSbBGM+yHYWklLfbUTrpADcsy/nnQWE2ECvhS/i5G81BF9sPEw== devilhorns@revolution --
[EGIT] [enlightenment/modules/wallpaper2] master 01/01: wallpaper2: Include string.h for strdupa usage
devilhorns pushed a commit to branch master. http://git.enlightenment.org/enlightenment/modules/wallpaper2.git/commit/?id=26366a479d132787ef16b6dfdb5e17662d4a83f1 commit 26366a479d132787ef16b6dfdb5e17662d4a83f1 Author: Chris Michael Date: Fri Oct 2 14:13:43 2015 -0400 wallpaper2: Include string.h for strdupa usage Signed-off-by: Chris Michael --- src/e_mod_main.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/e_mod_main.h b/src/e_mod_main.h index 4bf1976..a3bcd01 100644 --- a/src/e_mod_main.h +++ b/src/e_mod_main.h @@ -1,6 +1,8 @@ #ifndef E_MOD_MAIN_H #define E_MOD_MAIN_H +#include + #ifdef ENABLE_NLS # include # define D_(str) dgettext(PACKAGE, str) --
[EGIT] [enlightenment/modules/wallpaper2] master 01/01: wallpaper2: Make wallpaper2 function again with EFL/E from git
devilhorns pushed a commit to branch master. http://git.enlightenment.org/enlightenment/modules/wallpaper2.git/commit/?id=c55d5f31d60d798b9edd672c530632ef515d250e commit c55d5f31d60d798b9edd672c530632ef515d250e Author: Chris Michael Date: Thu May 7 15:32:54 2015 -0400 wallpaper2: Make wallpaper2 function again with EFL/E from git Signed-off-by: Chris Michael --- src/e_mod_main.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/e_mod_main.c b/src/e_mod_main.c index 006ce93..ee8493f 100644 --- a/src/e_mod_main.c +++ b/src/e_mod_main.c @@ -10,13 +10,13 @@ static E_Int_Menu_Augmentation *maug = NULL; //static E_Fm2_Mime_Handler *import_hdl = NULL; /* module setup */ -EAPI E_Module_Api e_modapi = +E_API E_Module_Api e_modapi = { E_MODULE_API_VERSION, "Settings - Wallpaper 2" }; -EAPI void * +E_API void * e_modapi_init(E_Module *m) { bindtextdomain(PACKAGE, LOCALEDIR); @@ -43,7 +43,7 @@ e_modapi_init(E_Module *m) return m; } -EAPI int +E_API int e_modapi_shutdown(E_Module *m EINA_UNUSED) { // E_Config_Dialog *cfd; @@ -71,7 +71,7 @@ e_modapi_shutdown(E_Module *m EINA_UNUSED) return 1; } -EAPI int +E_API int e_modapi_save(E_Module *m EINA_UNUSED) { return 1; --
[EGIT] [enlightenment/modules/wallpaper2] master 01/01: wallpaper2: Fix implicit declaration of strdupa warning
devilhorns pushed a commit to branch master. http://git.enlightenment.org/enlightenment/modules/wallpaper2.git/commit/?id=c3133ac6b71e38e033eacc5818a3dc1310421d5b commit c3133ac6b71e38e033eacc5818a3dc1310421d5b Author: Chris Michael Date: Fri Jun 5 09:57:37 2015 -0400 wallpaper2: Fix implicit declaration of strdupa warning Signed-off-by: Chris Michael --- configure.ac | 1 + 1 file changed, 1 insertion(+) diff --git a/configure.ac b/configure.ac index 222f2ad..8b8f979 100644 --- a/configure.ac +++ b/configure.ac @@ -14,6 +14,7 @@ AC_ISC_POSIX AM_INIT_AUTOMAKE([1.8 dist-bzip2]) AM_CONFIG_HEADER(config.h) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) +AC_USE_SYSTEM_EXTENSIONS AC_PROG_CC AM_PROG_CC_STDC --
[EGIT] [admin/devs] master 01/01: Promote xavi to developers
devilhorns pushed a commit to branch master. http://git.enlightenment.org/admin/devs.git/commit/?id=ce3b5caf4f6187857e5d347bdaf539a1d375226e commit ce3b5caf4f6187857e5d347bdaf539a1d375226e Author: Chris Michael Date: Tue Sep 25 13:29:38 2018 -0400 Promote xavi to developers --- {probies => developers}/xartigas/id_ed25519.pub | 0 {probies => developers}/xartigas/info.txt | 0 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/probies/xartigas/id_ed25519.pub b/developers/xartigas/id_ed25519.pub similarity index 100% rename from probies/xartigas/id_ed25519.pub rename to developers/xartigas/id_ed25519.pub diff --git a/probies/xartigas/info.txt b/developers/xartigas/info.txt similarity index 100% rename from probies/xartigas/info.txt rename to developers/xartigas/info.txt --
[EGIT] [core/elementary] master 01/01: elementary: Fix elementary not compiling
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=a8d3df85a28de104597d909544ef1f19b3f06d91 commit a8d3df85a28de104597d909544ef1f19b3f06d91 Author: Chris Michael Date: Tue Jan 5 08:55:54 2016 -0500 elementary: Fix elementary not compiling With the push of 1056b6ed01475817da2439012057d11865d2c5d8, elementary compile broke due to undeclared variables. This patch fixes elm to compile again by declaring the missing vars. @fix @raster, Please double check this change as I am unsure if it is what you Really intended here. Signed-off-by: Chris Michael --- src/lib/elm_config.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/lib/elm_config.c b/src/lib/elm_config.c index c2a02a7..02091dd 100644 --- a/src/lib/elm_config.c +++ b/src/lib/elm_config.c @@ -1898,8 +1898,9 @@ _elm_config_eet_close_error_get(Eet_File *ef, } static Eina_Bool -_elm_config_profile_save(void) +_elm_config_profile_save(const char *profile) { + Elm_Config_Derived *derived; char buf[4096], buf2[4096]; int ok = 0, ret; const char *err; @@ -1943,7 +1944,7 @@ _elm_config_profile_save(void) derived = _elm_config_derived_load(profile ? profile : _elm_profile); if (derived) { -_elm_config_derived_save(cfg, derived); +_elm_config_derived_save(_elm_config, derived); _elm_config_derived_free(derived); } return EINA_TRUE; @@ -1956,7 +1957,6 @@ err: Eina_Bool _elm_config_save(Elm_Config *cfg, const char *profile) { - Elm_Config_Derived *derived; char buf[4096], buf2[4096]; int ok = 0, ret; const char *err; @@ -1990,7 +1990,7 @@ _elm_config_save(Elm_Config *cfg, const char *profile) if (!profile) { -if (!_elm_config_profile_save()) +if (!_elm_config_profile_save(NULL)) return EINA_FALSE; } @@ -3608,7 +3608,7 @@ elm_config_all_flush(void) return; } - if (!_elm_config_profile_save()) + if (!_elm_config_profile_save(NULL)) { ERR("Failed to save profile"); return; --
[EGIT] [core/enlightenment] master 02/02: Reenable building wl_wl module
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=1a35c7e8a27fc3073b04de0235bbac7cb7cf2beb commit 1a35c7e8a27fc3073b04de0235bbac7cb7cf2beb Author: Chris Michael Date: Tue Jan 5 13:16:38 2016 -0500 Reenable building wl_wl module Signed-off-by: Chris Michael --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 6098d47..2d00ea4 100644 --- a/configure.ac +++ b/configure.ac @@ -793,7 +793,7 @@ WL_WL=false define([CHECK_MODULE_WL_WL], [ if test "x${have_wayland}" = "xyes"; then -WL_WL=false +WL_WL=true else WL_WL=false fi --
[EGIT] [core/enlightenment] master 01/02: Fix issue of nested compositors not working with Ecore_Wl2 library
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=acb1875af0cb0e4d97572e9f2a9b0d1856c6bf93 commit acb1875af0cb0e4d97572e9f2a9b0d1856c6bf93 Author: Chris Michael Date: Tue Jan 5 13:15:56 2016 -0500 Fix issue of nested compositors not working with Ecore_Wl2 library Signed-off-by: Chris Michael --- src/modules/Makefile_wl_wl.mk | 3 +- src/modules/wl_wl/e_mod_main.c | 35 src/modules/wl_wl/wl.c | 119 - 3 files changed, 27 insertions(+), 130 deletions(-) diff --git a/src/modules/Makefile_wl_wl.mk b/src/modules/Makefile_wl_wl.mk index 1721a3f..5a7e71c 100644 --- a/src/modules/Makefile_wl_wl.mk +++ b/src/modules/Makefile_wl_wl.mk @@ -9,8 +9,7 @@ src_modules_wl_wl_module_la_CPPFLAGS = $(MOD_CPPFLAGS) @WAYLAND_CFLAGS@ src_modules_wl_wl_module_la_LIBADD = $(LIBS) @WAYLAND_LIBS@ src_modules_wl_wl_module_la_LDFLAGS = $(MOD_LDFLAGS) src_modules_wl_wl_module_la_SOURCES = \ -src/modules/wl_wl/e_mod_main.c \ -src/modules/wl_wl/wl.c +src/modules/wl_wl/e_mod_main.c PHONIES += wl_wl install-wl_wl wl_wl: $(wl_wlpkg_LTLIBRARIES) $(wl_wl_DATA) diff --git a/src/modules/wl_wl/e_mod_main.c b/src/modules/wl_wl/e_mod_main.c index 35bac19..d3decfa 100644 --- a/src/modules/wl_wl/e_mod_main.c +++ b/src/modules/wl_wl/e_mod_main.c @@ -1,7 +1,5 @@ #include "e.h" -EINTERN void wl_wl_init(void); - E_API E_Module_Api e_modapi = { E_MODULE_API_VERSION, "Wl_Wl" }; static void @@ -10,11 +8,27 @@ _cb_delete_request(Ecore_Evas *ee EINA_UNUSED) ecore_main_loop_quit(); } -E_API void * -e_modapi_init(E_Module *m) +static Eina_Bool +_cb_sync_done(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) { + Ecore_Wl2_Event_Sync_Done *ev; int w = 0, h = 0; + ev = event; + if (ev->display != e_comp_wl->wl.client_disp) + return ECORE_CALLBACK_PASS_ON; + + ecore_evas_screen_geometry_get(e_comp->ee, NULL, NULL, &w, &h); + if ((w < 1) || (h < 1)) return ECORE_CALLBACK_PASS_ON; + + e_comp_canvas_resize(w / 4, h / 4); + + return ECORE_CALLBACK_PASS_ON; +} + +E_API void * +e_modapi_init(E_Module *m) +{ printf("LOAD WL_WL MODULE\n"); if (e_comp_config_get()->engine == E_COMP_ENGINE_GL) @@ -38,17 +52,17 @@ e_modapi_init(E_Module *m) return NULL; } } + + ecore_evas_data_set(e_comp->ee, "comp", e_comp); ecore_evas_callback_delete_request_set(e_comp->ee, _cb_delete_request); ecore_evas_title_set(e_comp->ee, "Enlightenment: WL-WL"); ecore_evas_name_class_set(e_comp->ee, "E", "compositor"); - ecore_evas_screen_geometry_get(e_comp->ee, NULL, NULL, &w, &h); + ecore_event_handler_add(ECORE_WL2_EVENT_SYNC_DONE, _cb_sync_done, NULL); if (!e_comp_wl_init()) return NULL; - if (!e_comp_canvas_init(w * 3 / 4, h * 3 / 4)) return NULL; + if (!e_comp_canvas_init(1024, 768)) return NULL; - ecore_evas_pointer_xy_get(e_comp->ee, &e_comp_wl->ptr.x, - &e_comp_wl->ptr.y); e_comp_wl_input_pointer_enabled_set(EINA_TRUE); e_comp_wl_input_keyboard_enabled_set(EINA_TRUE); e_comp_wl_input_touch_enabled_set(EINA_TRUE); @@ -59,7 +73,10 @@ e_modapi_init(E_Module *m) e_comp->pointer->color = EINA_TRUE; e_comp_wl_input_keymap_set(NULL, NULL, NULL, NULL, NULL); - wl_wl_init(); + + ecore_evas_pointer_xy_get(e_comp->ee, &e_comp_wl->ptr.x, + &e_comp_wl->ptr.y); + evas_event_feed_mouse_in(e_comp->evas, 0, NULL); return m; } diff --git a/src/modules/wl_wl/wl.c b/src/modules/wl_wl/wl.c deleted file mode 100644 index 3242770..000 --- a/src/modules/wl_wl/wl.c +++ /dev/null @@ -1,119 +0,0 @@ -#include "e.h" - -static struct wl_display *disp; -static Ecore_Fd_Handler *wl_fdh; - -static void -_wl_handle_global(void *data EINA_UNUSED, struct wl_registry *registry EINA_UNUSED, unsigned int id, const char *interface, unsigned int version) -{ - Ecore_Wl_Global *global; - - if (!(global = calloc(1, sizeof(Ecore_Wl_Global return; - - global->id = id; - global->interface = strdup(interface); - global->version = version; - e_comp_wl->wl.globals = eina_inlist_append(e_comp_wl->wl.globals, EINA_INLIST_GET(global)); - - if (!strcmp(interface, "wl_shm")) - e_comp_wl->wl.shm = wl_registry_bind(registry, id, &wl_shm_interface, 1); - ecore_event_add(E_EVENT_WAYLAND_GLOBAL_ADD, NULL, NULL, NULL); -} - -static void -_wl_handle_global_remove(void *data EINA_UNUSED, struct wl_registry *registry EINA_UNUSED, unsigned int id) -{ - Ecore_Wl_Global *global; - Eina_Inlist *tmp; - - EINA_INLIST_FOREACH_SAFE(e_comp_wl->wl.globals, tmp, global) - { -if (global->id != id) continue; -e_comp_wl->wl.globals = -
[EGIT] [core/efl] master 02/02: ecore-wl2: Fix support for nested compositors
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6967aa14573b68166838af71904f87e7d4791462 commit 6967aa14573b68166838af71904f87e7d4791462 Author: Chris Michael Date: Tue Jan 5 13:10:40 2016 -0500 ecore-wl2: Fix support for nested compositors When trying to create nested compositors, we were failing here due to trying to read the WAYLAND_DISPLAY env variable and find an existing server display to match. In order for nested compositors to function, we cannot reuse that environment variable for server display hash. @fix Signed-off-by: Chris Michael --- src/lib/ecore_wl2/ecore_wl2_display.c | 17 + 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/src/lib/ecore_wl2/ecore_wl2_display.c b/src/lib/ecore_wl2/ecore_wl2_display.c index 0313322..3f9f647 100644 --- a/src/lib/ecore_wl2/ecore_wl2_display.c +++ b/src/lib/ecore_wl2/ecore_wl2_display.c @@ -401,22 +401,7 @@ ecore_wl2_display_create(const char *name) if (!_server_displays) _server_displays = eina_hash_string_superfast_new(NULL); - if (!name) - { -const char *n; - -/* someone wants to create a new server */ -n = getenv("WAYLAND_DISPLAY"); -if (n) - { - /* we have a default wayland display */ - - /* check hash of cached server displays for this name */ - ewd = eina_hash_find(_server_displays, n); - if (ewd) goto found; - } - } - else + if (name) { /* someone wants to create a server with a specific display */ --
[EGIT] [core/efl] master 01/02: ecore-wl2: Remove blank line
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6afbd272bd04ef27cff16d17d2f8345c35d7716d commit 6afbd272bd04ef27cff16d17d2f8345c35d7716d Author: Chris Michael Date: Tue Jan 5 09:26:17 2016 -0500 ecore-wl2: Remove blank line NB: No functional changes Signed-off-by: Chris Michael --- src/lib/ecore_wl2/ecore_wl2_display.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/lib/ecore_wl2/ecore_wl2_display.c b/src/lib/ecore_wl2/ecore_wl2_display.c index e02d729..0313322 100644 --- a/src/lib/ecore_wl2/ecore_wl2_display.c +++ b/src/lib/ecore_wl2/ecore_wl2_display.c @@ -415,7 +415,6 @@ ecore_wl2_display_create(const char *name) ewd = eina_hash_find(_server_displays, n); if (ewd) goto found; } - } else { --
[EGIT] [core/efl] master 02/02: ecore-wl2: Mark API as Beta before 1.17 gets released
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=67044ae214b6647293b393a884bf233d5bcd2743 commit 67044ae214b6647293b393a884bf233d5bcd2743 Author: Chris Michael Date: Wed Jan 6 12:16:33 2016 -0500 ecore-wl2: Mark API as Beta before 1.17 gets released Signed-off-by: Chris Michael --- src/lib/ecore_wl2/Ecore_Wl2.h | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/lib/ecore_wl2/Ecore_Wl2.h b/src/lib/ecore_wl2/Ecore_Wl2.h index f77ede3..18960b0 100644 --- a/src/lib/ecore_wl2/Ecore_Wl2.h +++ b/src/lib/ecore_wl2/Ecore_Wl2.h @@ -28,11 +28,13 @@ /* extern "C" { */ /* # endif */ +# ifdef EFL_BETA_API_SUPPORT + typedef struct _Ecore_Wl2_Subsurface Ecore_Wl2_Subsurface; -# ifndef _ECORE_WL2_WINDOW_PREDEF +# ifndef _ECORE_WL2_WINDOW_PREDEF typedef struct _Ecore_Wl2_Window Ecore_Wl2_Window; -# endif +# endif typedef struct _Ecore_Wl2_Display Ecore_Wl2_Display; typedef struct _Ecore_Wl2_Output Ecore_Wl2_Output; @@ -1047,6 +1049,8 @@ EAPI Ecore_Wl2_Display *ecore_wl2_window_display_get(const Ecore_Wl2_Window *win /* } */ /* # endif */ +# endif + # undef EAPI # define EAPI --
[EGIT] [core/efl] master 01/02: evas-wayland-egl: Remove unused variables and unused function
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a957f5a57f57b02eb2fe7a40fe9a91232a1c59ce commit a957f5a57f57b02eb2fe7a40fe9a91232a1c59ce Author: Chris Michael Date: Wed Jan 6 12:11:53 2016 -0500 evas-wayland-egl: Remove unused variables and unused function Signed-off-by: Chris Michael --- src/modules/evas/engines/wayland_egl/evas_engine.c | 17 ++--- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/src/modules/evas/engines/wayland_egl/evas_engine.c b/src/modules/evas/engines/wayland_egl/evas_engine.c index 0d6ad0d..44968b7 100644 --- a/src/modules/evas/engines/wayland_egl/evas_engine.c +++ b/src/modules/evas/engines/wayland_egl/evas_engine.c @@ -964,12 +964,11 @@ _native_cb_free(void *data, void *image) } static int -_native_cb_yinvert(void *data, void *image) +_native_cb_yinvert(void *data EINA_UNUSED, void *image) { - Render_Engine *re = data; Evas_GL_Image *im = image; Native *n = im->native.data; - int yinvert = 0, val; + int yinvert = 0; // Yinvert callback should only be used for EVAS_NATIVE_SURFACE_EVASGL type now, // as yinvert value is not changed for other types. @@ -1325,18 +1324,6 @@ eng_image_native_set(void *data, void *image, void *native) return img; } -static void * -eng_image_native_get(void *data EINA_UNUSED, void *image) -{ - Evas_GL_Image *im = image; - Evas_Native_Surface *n; - - if (!im) return NULL; - n = im->native.data; - if (!n) return NULL; - return n; -} - Eina_Bool eng_preload_make_current(void *data, void *doit) { --
[EGIT] [core/efl] master 01/01: ecore-drm: Fix formatting
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f836aba678b4ed251875a4d43db27b2a3fce8494 commit f836aba678b4ed251875a4d43db27b2a3fce8494 Author: Chris Michael Date: Thu Jan 7 08:55:49 2016 -0500 ecore-drm: Fix formatting NB: No functional changes Signed-off-by: Chris Michael --- src/lib/ecore_drm/ecore_drm_device.c | 4 +--- src/lib/ecore_drm/ecore_drm_private.h | 5 ++--- src/lib/ecore_drm/ecore_drm_tty.c | 9 ++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/lib/ecore_drm/ecore_drm_device.c b/src/lib/ecore_drm/ecore_drm_device.c index d3eb91f..5376dbd 100644 --- a/src/lib/ecore_drm/ecore_drm_device.c +++ b/src/lib/ecore_drm/ecore_drm_device.c @@ -117,9 +117,7 @@ _ecore_drm_device_cached_context_get(enum xkb_context_flags flags) } struct xkb_keymap * -_ecore_drm_device_cached_keymap_get(struct xkb_context *ctx, - const struct xkb_rule_names *names, - enum xkb_keymap_compile_flags flags) +_ecore_drm_device_cached_keymap_get(struct xkb_context *ctx, const struct xkb_rule_names *names, enum xkb_keymap_compile_flags flags) { EINA_SAFETY_ON_NULL_RETURN_VAL(ctx, NULL); diff --git a/src/lib/ecore_drm/ecore_drm_private.h b/src/lib/ecore_drm/ecore_drm_private.h index c3ba84c..bb959e9 100644 --- a/src/lib/ecore_drm/ecore_drm_private.h +++ b/src/lib/ecore_drm/ecore_drm_private.h @@ -297,7 +297,6 @@ void _ecore_drm_inputs_init(void); void _ecore_drm_inputs_shutdown(void); struct xkb_context *_ecore_drm_device_cached_context_get(enum xkb_context_flags flags); -struct xkb_keymap *_ecore_drm_device_cached_keymap_get(struct xkb_context *ctx, - const struct xkb_rule_names *names, - enum xkb_keymap_compile_flags flags); +struct xkb_keymap *_ecore_drm_device_cached_keymap_get(struct xkb_context *ctx, const struct xkb_rule_names *names, enum xkb_keymap_compile_flags flags); + #endif diff --git a/src/lib/ecore_drm/ecore_drm_tty.c b/src/lib/ecore_drm/ecore_drm_tty.c index bf05786..fdc2bcd 100644 --- a/src/lib/ecore_drm/ecore_drm_tty.c +++ b/src/lib/ecore_drm/ecore_drm_tty.c @@ -242,7 +242,8 @@ EAPI Eina_Bool ecore_drm_tty_release(Ecore_Drm_Device *dev) { /* check for valid device */ - EINA_SAFETY_ON_TRUE_RETURN_VAL((!dev) || (!dev->drm.name) || (dev->tty.fd < 0), EINA_FALSE); + EINA_SAFETY_ON_TRUE_RETURN_VAL((!dev) || (!dev->drm.name) || + (dev->tty.fd < 0), EINA_FALSE); /* send ioctl for vt release */ if (ioctl(dev->tty.fd, VT_RELDISP, 1) < 0) @@ -258,7 +259,8 @@ EAPI Eina_Bool ecore_drm_tty_acquire(Ecore_Drm_Device *dev) { /* check for valid device */ - EINA_SAFETY_ON_TRUE_RETURN_VAL((!dev) || (!dev->drm.name) || (dev->tty.fd < 0), EINA_FALSE); + EINA_SAFETY_ON_TRUE_RETURN_VAL((!dev) || (!dev->drm.name) || + (dev->tty.fd < 0), EINA_FALSE); /* send ioctl for vt acquire */ if (ioctl(dev->tty.fd, VT_RELDISP, VT_ACKACQ) < 0) @@ -274,7 +276,8 @@ EAPI int ecore_drm_tty_get(Ecore_Drm_Device *dev) { /* check for valid device */ - EINA_SAFETY_ON_TRUE_RETURN_VAL((!dev) || (!dev->drm.name) || (dev->tty.fd < 0), -1); + EINA_SAFETY_ON_TRUE_RETURN_VAL((!dev) || (!dev->drm.name) || + (dev->tty.fd < 0), -1); return dev->tty.fd; } --
[EGIT] [core/efl] master 01/01: ecore-wl2: API expose ecore_wl2_input_grab function
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5499a53c7568a2c889f5b7db82161583fff24bf7 commit 5499a53c7568a2c889f5b7db82161583fff24bf7 Author: Chris Michael Date: Thu Jan 7 11:55:52 2016 -0500 ecore-wl2: API expose ecore_wl2_input_grab function This input_grab function should have been exposed via EAPI for use in enlightenment, but was missed before the push Signed-off-by: Chris Michael --- src/lib/ecore_wl2/Ecore_Wl2.h | 4 src/lib/ecore_wl2/ecore_wl2_input.c | 8 2 files changed, 12 insertions(+) diff --git a/src/lib/ecore_wl2/Ecore_Wl2.h b/src/lib/ecore_wl2/Ecore_Wl2.h index 18960b0..a31fee7 100644 --- a/src/lib/ecore_wl2/Ecore_Wl2.h +++ b/src/lib/ecore_wl2/Ecore_Wl2.h @@ -782,6 +782,10 @@ EAPI Ecore_Wl2_Input *ecore_wl2_window_input_get(Ecore_Wl2_Window *window); /* TODO: doxy */ /** @since 1.17 */ +EAPI void ecore_wl2_input_grab(Ecore_Wl2_Input *input, Ecore_Wl2_Window *window, unsigned int button); + +/* TODO: doxy */ +/** @since 1.17 */ EAPI void ecore_wl2_input_ungrab(Ecore_Wl2_Input *input); /* TODO: doxy */ diff --git a/src/lib/ecore_wl2/ecore_wl2_input.c b/src/lib/ecore_wl2/ecore_wl2_input.c index df7847c..1b1174d 100644 --- a/src/lib/ecore_wl2/ecore_wl2_input.c +++ b/src/lib/ecore_wl2/ecore_wl2_input.c @@ -1366,6 +1366,14 @@ _ecore_wl2_input_cursor_update_stop(Ecore_Wl2_Input *input) } EAPI void +ecore_wl2_input_grab(Ecore_Wl2_Input *input, Ecore_Wl2_Window *window, unsigned int button) +{ + EINA_SAFETY_ON_NULL_RETURN(input); + + _ecore_wl2_input_grab(input, window, button); +} + +EAPI void ecore_wl2_input_ungrab(Ecore_Wl2_Input *input) { EINA_SAFETY_ON_NULL_RETURN(input); --
[EGIT] [core/elementary] master 02/02: elementary: Fix warnings of uninitialized variable usage
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=2f718de3b95b715fd965dedb93f0bc58bf9c8c00 commit 2f718de3b95b715fd965dedb93f0bc58bf9c8c00 Author: Chris Michael Date: Thu Jan 7 14:58:23 2016 -0500 elementary: Fix warnings of uninitialized variable usage This patch just fixes a compiler warning about using fw/fh uninitialized if the conditional is false Signed-off-by: Chris Michael --- src/lib/els_box.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/els_box.c b/src/lib/els_box.c index 54e3d58..eec3f95 100644 --- a/src/lib/els_box.c +++ b/src/lib/els_box.c @@ -169,7 +169,7 @@ _smart_extents_non_homogeneous_calc(Evas_Object_Box_Data *priv, int w, int h, in if (do_aspect && aspect) { - int ww, hh, fw, fh; + int ww, hh, fw = 0, fh = 0; double wx, wy, ax, ay; evas_object_size_hint_weight_get(opt->obj, &wx, &wy); --
[EGIT] [core/efl] master 01/01: ecore-evas: Rename ecore_evas_wayland_window_get2 function
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=99ac0763ab89af93c38b69e87547815c0eb2c46a commit 99ac0763ab89af93c38b69e87547815c0eb2c46a Author: Chris Michael Date: Thu Jan 7 15:02:13 2016 -0500 ecore-evas: Rename ecore_evas_wayland_window_get2 function This renames the ecore_evas_wayland_window_get2 function to be ecore_evas_wayland2_window_get before the 1.17 roll out. Signed-off-by: Chris Michael --- src/lib/ecore_evas/Ecore_Evas.h| 2 +- src/lib/ecore_evas/ecore_evas.c| 4 ++-- src/lib/ecore_evas/ecore_evas_wayland.h| 2 +- src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/lib/ecore_evas/Ecore_Evas.h b/src/lib/ecore_evas/Ecore_Evas.h index 3514d6b..30e45b1 100644 --- a/src/lib/ecore_evas/Ecore_Evas.h +++ b/src/lib/ecore_evas/Ecore_Evas.h @@ -1316,7 +1316,7 @@ EAPI voidecore_evas_wayland_move(Ecore_Evas *ee, int x, int y); EAPI voidecore_evas_wayland_pointer_set(Ecore_Evas *ee, int hot_x, int hot_y); EAPI voidecore_evas_wayland_type_set(Ecore_Evas *ee, int type); EAPI Ecore_Wl_Window *ecore_evas_wayland_window_get(const Ecore_Evas *ee); -EAPI Ecore_Wl2_Window *ecore_evas_wayland_window_get2(const Ecore_Evas *ee); /** @since 1.17 */ +EAPI Ecore_Wl2_Window *ecore_evas_wayland2_window_get(const Ecore_Evas *ee); /** @since 1.17 */ EAPI Ecore_Cocoa_Window *ecore_evas_cocoa_window_get(const Ecore_Evas *ee); /** @since 1.17 */ diff --git a/src/lib/ecore_evas/ecore_evas.c b/src/lib/ecore_evas/ecore_evas.c index 076b3f5..d3e3f28 100644 --- a/src/lib/ecore_evas/ecore_evas.c +++ b/src/lib/ecore_evas/ecore_evas.c @@ -3998,13 +3998,13 @@ ecore_evas_cocoa_window_get(const Ecore_Evas *ee) } EAPI Ecore_Wl2_Window * -ecore_evas_wayland_window_get2(const Ecore_Evas *ee) +ecore_evas_wayland2_window_get(const Ecore_Evas *ee) { Ecore_Evas_Interface_Wayland *iface; iface = (Ecore_Evas_Interface_Wayland *)_ecore_evas_interface_get(ee, "wayland"); EINA_SAFETY_ON_NULL_RETURN_VAL(iface, NULL); - return iface->window_get2(ee); + return iface->window2_get(ee); } EAPI Ecore_Evas * diff --git a/src/lib/ecore_evas/ecore_evas_wayland.h b/src/lib/ecore_evas/ecore_evas_wayland.h index ab3894e..b75f779 100644 --- a/src/lib/ecore_evas/ecore_evas_wayland.h +++ b/src/lib/ecore_evas/ecore_evas_wayland.h @@ -12,7 +12,7 @@ struct _Ecore_Evas_Interface_Wayland void (*pointer_set)(Ecore_Evas *ee, int hot_x, int hot_y); void (*type_set)(Ecore_Evas *ee, int type); Ecore_Wl_Window* (*window_get)(const Ecore_Evas *ee); - Ecore_Wl2_Window *(*window_get2)(const Ecore_Evas *ee); + Ecore_Wl2_Window *(*window2_get)(const Ecore_Evas *ee); void (*pre_post_swap_callback_set)(const Ecore_Evas *ee, void *data, void (*pre_cb) (void *data, Evas *e), void (*post_cb) (void *data, Evas *e)); }; diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c index f10f4d0..40db840 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c @@ -1561,7 +1561,7 @@ _ecore_evas_wl_interface_new(void) iface->move = _ecore_evas_wayland_move; /* iface->pointer_set = _ecore_evas_wayland_pointer_set; */ iface->type_set = _ecore_evas_wayland_type_set; - iface->window_get2 = _ecore_evas_wayland_window_get; + iface->window2_get = _ecore_evas_wayland_window_get; #ifdef BUILD_ECORE_EVAS_WAYLAND_EGL iface->pre_post_swap_callback_set = --
[EGIT] [core/elementary] master 01/01: elementary: Fix potential sizeof mismatch
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=a6fb564f38278f83fb14291357c1902a80970ca0 commit a6fb564f38278f83fb14291357c1902a80970ca0 Author: Chris Michael Date: Thu Jan 7 15:23:45 2016 -0500 elementary: Fix potential sizeof mismatch Coverity CID1347398 reports that this could potentially be a non-portable assumption resulting in a sizeof mismatch. Fix this by using the actual structure type in the call to calloc. Signed-off-by: Chris Michael --- src/lib/elm_config.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/elm_config.c b/src/lib/elm_config.c index 2f86c1c..bd1b9ff 100644 --- a/src/lib/elm_config.c +++ b/src/lib/elm_config.c @@ -900,7 +900,7 @@ elm_config_profile_derived_add(const char *profile, const char *derive_options) Elm_Config_Derived *derived; derived = _elm_config_derived_load(_elm_profile); - if (!derived) derived = calloc(1, sizeof(derived)); + if (!derived) derived = calloc(1, sizeof(Elm_Config_Derived)); if (derived) { Elm_Config_Derived_Profile *dp = calloc(1, sizeof(Elm_Config_Derived_Profile)); --
[EGIT] [core/enlightenment] master 01/01: Update wl_weekeyboard for ecore_evas_wayland_window_get2 function rename
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=370b6a03e33c650acd4375eaa40ee7f5d03b9260 commit 370b6a03e33c650acd4375eaa40ee7f5d03b9260 Author: Chris Michael Date: Fri Jan 8 10:37:42 2016 -0500 Update wl_weekeyboard for ecore_evas_wayland_window_get2 function rename Signed-off-by: Chris Michael --- src/modules/wl_weekeyboard/e_mod_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/wl_weekeyboard/e_mod_main.c b/src/modules/wl_weekeyboard/e_mod_main.c index 5a45aea..b3dfc24 100644 --- a/src/modules/wl_weekeyboard/e_mod_main.c +++ b/src/modules/wl_weekeyboard/e_mod_main.c @@ -546,7 +546,7 @@ _wkb_setup(struct weekeyboard *wkb) /* Set input panel surface */ DBG("Setting up input panel"); - wkb->win = ecore_evas_wayland_window_get2(wkb->ee); + wkb->win = ecore_evas_wayland2_window_get(wkb->ee); ecore_wl2_window_type_set(wkb->win, ECORE_WL2_WINDOW_TYPE_NONE); wkb->surface = ecore_wl2_window_surface_get(wkb->win); --
[EGIT] [core/efl] master 01/01: ecore-drm: Call inputs shutdown before eina_shutdown
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d50784a086d9e4b6357963bf542ccd872b5a953b commit d50784a086d9e4b6357963bf542ccd872b5a953b Author: Chris Michael Date: Mon Jan 11 13:57:23 2016 -0500 ecore-drm: Call inputs shutdown before eina_shutdown As we end up freeing the input hash inside the _ecore_drm_inputs_shutdown function, it should be called before we shutdown eina @fix Signed-off-by: Chris Michael --- src/lib/ecore_drm/ecore_drm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/ecore_drm/ecore_drm.c b/src/lib/ecore_drm/ecore_drm.c index 02dd76e..07b6a4f 100644 --- a/src/lib/ecore_drm/ecore_drm.c +++ b/src/lib/ecore_drm/ecore_drm.c @@ -127,6 +127,8 @@ ecore_drm_shutdown(void) /* if we are still in use, decrement init count and get out */ if (--_ecore_drm_init_count != 0) return _ecore_drm_init_count; + _ecore_drm_inputs_shutdown(); + /* close eeze */ eeze_shutdown(); @@ -143,8 +145,6 @@ ecore_drm_shutdown(void) /* shutdown eina */ eina_shutdown(); - _ecore_drm_inputs_shutdown(); - /* return init count */ return _ecore_drm_init_count; } --
[EGIT] [core/enlightenment] master 01/02: Update dependencies for enlightenment_alert binary
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=eec66f4fc52d24210a3300ab7c05e799bd427dee commit eec66f4fc52d24210a3300ab7c05e799bd427dee Author: Chris Michael Date: Fri Jan 8 11:30:10 2016 -0500 Update dependencies for enlightenment_alert binary Signed-off-by: Chris Michael --- configure.ac | 3 +++ 1 file changed, 3 insertions(+) diff --git a/configure.ac b/configure.ac index 0eddd53..dcecd58 100644 --- a/configure.ac +++ b/configure.ac @@ -942,6 +942,9 @@ if test "x${have_wayland_only}" != "xyes"; then eina >= ${efl_version} ecore >= ${efl_version} ecore-ipc >= ${efl_version} +ecore-input >= ${efl_version} +ecore-drm >= ${efl_version} +evas >= ${efl_version} ]) fi --
[EGIT] [core/enlightenment] master 02/02: Port e_alert to implement WBOD for drm/wayland
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=3911b504cc38711bd848ebc12ae1d10d617b4be8 commit 3911b504cc38711bd848ebc12ae1d10d617b4be8 Author: Chris Michael Date: Wed Jan 13 14:15:11 2016 -0500 Port e_alert to implement WBOD for drm/wayland This patch makes e_alert_main (the enlightenment_alert binary) work for crashes when running with wayland (via the drm backend). ref T2926 Signed-off-by: Chris Michael --- src/bin/e_alert_main.c | 494 + 1 file changed, 463 insertions(+), 31 deletions(-) diff --git a/src/bin/e_alert_main.c b/src/bin/e_alert_main.c index e2b7abb..dbe599c 100644 --- a/src/bin/e_alert_main.c +++ b/src/bin/e_alert_main.c @@ -16,6 +16,15 @@ #include #include +#ifdef HAVE_WAYLAND +# ifdef HAVE_WL_DRM +# include +# include +# include +# include +# endif +#endif + #define WINDOW_WIDTH 320 #define WINDOW_HEIGHT 240 @@ -24,6 +33,7 @@ #endif /* local function prototypes */ +#ifndef HAVE_WAYLAND static int _e_alert_connect(void); static void _e_alert_create(void); static void _e_alert_display(void); @@ -51,8 +61,11 @@ static xcb_window_t btn1 = 0; static xcb_window_t btn2 = 0; static xcb_font_t font = 0; static xcb_gcontext_t gc = 0; +static int fa = 0, fw = 0; +#endif + static int sw = 0, sh = 0; -static int fa = 0, fh = 0, fw = 0; +static int fh = 0; static const char *title = NULL, *str1 = NULL, *str2 = NULL; static int ret = 0, sig = 0; static pid_t pid; @@ -60,6 +73,422 @@ static Eina_Bool tainted = EINA_TRUE; static const char *backtrace_str = NULL; static int exit_gdb = 0; +struct +{ + int signal; + const char *name; +} signal_name[5] = { + { SIGSEGV, "SEGV" }, + { SIGILL, "SIGILL" }, + { SIGFPE, "SIGFPE" }, + { SIGBUS, "SIGBUS" }, + { SIGABRT, "SIGABRT" } +}; + +#ifdef HAVE_WAYLAND +# ifdef HAVE_WL_DRM +static Ecore_Drm_Device *dev = NULL; +static Ecore_Drm_Fb *buffer; +static Evas *canvas = NULL; + +static Eina_Bool +_e_alert_drm_cb_key_down(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) +{ + Ecore_Event_Key *ev; + + ev = event; + if (!strcmp(ev->key, "F12")) + { +ret = 2; +ecore_main_loop_quit(); + } + else if (!strcmp(ev->key, "F1")) + { +ret = 1; +ecore_main_loop_quit(); + } + + return ECORE_CALLBACK_RENEW; +} + +static int +_e_alert_drm_connect(void) +{ + fprintf(stderr, "E_Alert Drm Connect\n"); + + if (!evas_init()) + { +printf("\tCannot init evas\n"); +return 0; + } + + if (!ecore_drm_init()) + { +printf("\tCannot init ecore_drm\n"); +return 0; + } + + dev = ecore_drm_device_find(NULL, NULL); + if (!dev) + { +printf("\tCannot find drm device\n"); +return 0; + } + + if (!ecore_drm_launcher_connect(dev)) + { +printf("\tCannot connect to drm device\n"); +return 0; + } + + if (!ecore_drm_device_open(dev)) + { +printf("\tCannot open drm device\n"); +return 0; + } + + if (!ecore_drm_outputs_create(dev)) + { +printf("\tCannot create drm outputs\n"); +return 0; + } + + if (!ecore_drm_inputs_create(dev)) + { +printf("\tCannot create drm inputs\n"); +return 0; + } + + ecore_drm_outputs_geometry_get(dev, NULL, NULL, &sw, &sh); + fprintf(stderr, "\tOutput Size: %d %d\n", sw, sh); + + ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, + _e_alert_drm_cb_key_down, NULL); + + return 1; +} + +static void +_e_alert_drm_draw_outline(void) +{ + Evas_Object *o; + int wx = 0, wy = 0; + + wx = ((sw - WINDOW_WIDTH) / 2); + wy = ((sh - WINDOW_HEIGHT) / 2); + + /* create background */ + o = evas_object_rectangle_add(canvas); + evas_object_move(o, wx, wy); + evas_object_resize(o, WINDOW_WIDTH, WINDOW_HEIGHT); + evas_object_show(o); + + /* create outline */ + o = evas_object_rectangle_add(canvas); + evas_object_color_set(o, 0, 0, 0, 255); + evas_object_move(o, wx, wy); + evas_object_resize(o, WINDOW_WIDTH, WINDOW_HEIGHT); + evas_object_show(o); + + /* create white inside */ + o = evas_object_rectangle_add(canvas); + evas_object_move(o, wx + 1, wy + 1); + evas_object_resize(o, WINDOW_WIDTH - 2, WINDOW_HEIGHT - 2); + evas_object_show(o); +} + +static void +_e_alert_drm_draw_title_outline(void) +{ + Evas_Object *o; + int wx = 0, wy = 0; + + wx = ((sw - WINDOW_WIDTH) / 2); + wy = ((sh - WINDOW_HEIGHT) / 2); + + /* create title outline */ + o = evas_object_rectangle_add(canvas); + evas_object_color_set(o, 0, 0, 0, 255); + evas_object_move(o, wx + 2, wy + 2); + evas_
[EGIT] [core/enlightenment] master 01/01: Fix build break for non-wayland builds
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=542e44a4457087c8ef65afc1ac3b18cc8dffbbf0 commit 542e44a4457087c8ef65afc1ac3b18cc8dffbbf0 Author: Chris Michael Date: Thu Jan 14 08:56:50 2016 -0500 Fix build break for non-wayland builds This patch fixes an issue where implementing WBOD for wayland would always (previously) require ecore-drm to build. We fix this by adjusting the enlightenment_alert requirements based on if we are building with wayland support or not. Signed-off-by: Chris Michael --- configure.ac | 30 +++--- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/configure.ac b/configure.ac index dcecd58..f5a4960 100644 --- a/configure.ac +++ b/configure.ac @@ -934,18 +934,26 @@ fi AM_CONDITIONAL([HAVE_WAYLAND_ONLY], [test "x${have_wayland_only}" = "xyes"]) +e_alert_requires="\ + evas >= $efl_version \ + ecore >= $efl_version \ + xcb \ + xcb-shape \ + xcb-keysyms \ + eina >= ${efl_version} \ + ecore >= ${efl_version} \ + ecore-ipc >= ${efl_version}" + +if test "x${have_wayland}" = "xyes"; then + e_alert_requires="\ +$e_alert_requires \ +ecore-input >= ${efl_version} \ +ecore-drm >= ${efl_version} \ +evas >= ${efl_version}" +fi + if test "x${have_wayland_only}" != "xyes"; then - PKG_CHECK_MODULES(E_ALERT, [ -xcb -xcb-shape -xcb-keysyms -eina >= ${efl_version} -ecore >= ${efl_version} -ecore-ipc >= ${efl_version} -ecore-input >= ${efl_version} -ecore-drm >= ${efl_version} -evas >= ${efl_version} - ]) + PKG_CHECK_MODULES(E_ALERT, [$e_alert_requires]) fi if test "x${have_wayland_only}" != "xyes"; then --
[EGIT] [core/enlightenment] enlightenment-0.20 01/34: Fix xbl_avail variable being used when it could be undefined
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=7c7920277160e4ce22c9cdbd681a4692470bd430 commit 7c7920277160e4ce22c9cdbd681a4692470bd430 Author: Chris Michael Date: Mon Dec 28 14:30:56 2015 -0500 Fix xbl_avail variable being used when it could be undefined Signed-off-by: Chris Michael --- src/bin/e_backlight.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bin/e_backlight.c b/src/bin/e_backlight.c index c90e2ef..95d03be 100644 --- a/src/bin/e_backlight.c +++ b/src/bin/e_backlight.c @@ -254,7 +254,9 @@ _e_backlight_update(void) if (bl_sysval) { sysmode = MODE_SYS; +#ifndef HAVE_WAYLAND_ONLY xbl_avail = EINA_FALSE; +#endif _bl_sys_level_get(); return; } --
[EGIT] [core/elementary] master 01/01: elementary: Fix elm_win_window_id_get function
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=1029f53f99d748c3d515a3b74a74c529b289c80e commit 1029f53f99d748c3d515a3b74a74c529b289c80e Author: Chris Michael Date: Tue Jan 19 10:43:28 2016 -0500 elementary: Fix elm_win_window_id_get function When using this function with wayland windows, we should be returning the matching Ecore_Wl2_Window id, not the surface_id ref T3058 @fix Signed-off-by: Chris Michael --- src/lib/elm_win.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c index 050e82b..5f0234c 100644 --- a/src/lib/elm_win.c +++ b/src/lib/elm_win.c @@ -5613,14 +5613,14 @@ _elm_win_window_id_get(Eo *obj EINA_UNUSED, Elm_Win_Data *sd) { #if HAVE_ELEMENTARY_WL2 if (sd->wl.win) - return (Ecore_Window)ecore_wl2_window_surface_id_get(sd->wl.win); + return (Ecore_Window)ecore_wl2_window_id_get(sd->wl.win); if (sd->parent) { Ecore_Wl2_Window *parent; parent = elm_win_wl_window_get(sd->parent); if (parent) - return (Ecore_Window)ecore_wl2_window_surface_id_get(parent); + return (Ecore_Window)ecore_wl2_window_id_get(parent); return 0; } #endif --
[EGIT] [core/enlightenment] master 02/02: Fix issue of using the wrong id when finding pixmap client
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=1b36f93956ea80173c5fef2fa8fbb0d9a886efb1 commit 1b36f93956ea80173c5fef2fa8fbb0d9a886efb1 Author: Chris Michael Date: Tue Jan 19 10:46:03 2016 -0500 Fix issue of using the wrong id when finding pixmap client Previously, we were passing in the wl window id into the pixmap_find_client function. This is improper as the e_pixmap_new functions take the surface resource id. To solve this, we will get the Ecore_Wl2_window from the Evas_Object, fetch the surface id from that, then pass those into e_pixmap_find_client. This resolves an issue where the everything module was not working properly. ref T3058 Signed-off-by: Chris Michael --- src/bin/e_win.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/bin/e_win.c b/src/bin/e_win.c index 266d43f..51c21a4 100644 --- a/src/bin/e_win.c +++ b/src/bin/e_win.c @@ -79,11 +79,13 @@ _e_elm_win_trap_show(void *data, Evas_Object *o) #ifdef HAVE_WAYLAND if (!strncmp(ecore_evas_engine_name_get(ee), "wayland", 7)) { + Ecore_Wl2_Window *ewin = elm_win_wl_window_get(o); + type = E_PIXMAP_TYPE_WL; ecore_evas_object_cursor_set(ee, NULL, 0, 0, 0); ctx->pointer = e_comp->pointer; elm_win_borderless_set(o, 1); - wl_win_id = win; + wl_win_id = ecore_wl2_window_surface_id_get(ewin); } else #endif --
[EGIT] [core/enlightenment] master 01/02: Fix issue of compositor surface create passing wrong parameter to e_pixmap_new function
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=67170f40a1a901101591c8102631dbec8e49794b commit 67170f40a1a901101591c8102631dbec8e49794b Author: Chris Michael Date: Tue Jan 19 10:44:37 2016 -0500 Fix issue of compositor surface create passing wrong parameter to e_pixmap_new function e_pixmap_new (when creating wayland windows) is expecting to get a uintptr_t type passed into it (surface id). Previously we were passing the entire wl_resource. ref T3058 Signed-off-by: Chris Michael --- src/bin/e_comp_wl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 0833db1..ba62070 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -1502,7 +1502,7 @@ _e_comp_wl_compositor_cb_surface_create(struct wl_client *client, struct wl_reso E_Pixmap *ep; /* try to create new pixmap */ -if (!(ep = e_pixmap_new(E_PIXMAP_TYPE_WL, res))) +if (!(ep = e_pixmap_new(E_PIXMAP_TYPE_WL, (uintptr_t)id))) { ERR("Could not create new pixmap"); wl_resource_destroy(res); --
[EGIT] [core/enlightenment] master 01/01: fix compiler warning about comparison between signed and unsigned ints
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=01ae2a6287fa3f0ca12291fa9c36d45df8a8f111 commit 01ae2a6287fa3f0ca12291fa9c36d45df8a8f111 Author: Chris Michael Date: Wed Jan 20 15:10:36 2016 -0500 fix compiler warning about comparison between signed and unsigned ints Signed-off-by: Chris Michael --- src/bin/e_xkb.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bin/e_xkb.c b/src/bin/e_xkb.c index 5e6f3d2..0878593 100644 --- a/src/bin/e_xkb.c +++ b/src/bin/e_xkb.c @@ -35,7 +35,8 @@ _xkb_changed_state(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) { Ecore_X_Event_Xkb *ev = (Ecore_X_Event_Xkb *)event; - if (ev->group < 0 || ev->group >= eina_list_count(e_config->xkb.used_layouts)) + if (ev->group < 0 || + ev->group >= (int)eina_list_count(e_config->xkb.used_layouts)) return ECORE_CALLBACK_PASS_ON; e_config->xkb.cur_group = ev->group; --
[EGIT] [core/efl] master 01/02: ecore-drm: Cleanup ecore-drm shutdown routine
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=17fa5dee65059f6019ace06433765e639d2cd812 commit 17fa5dee65059f6019ace06433765e639d2cd812 Author: Chris Michael Date: Thu Jan 21 09:22:37 2016 -0500 ecore-drm: Cleanup ecore-drm shutdown routine This patch addresses an issue where when closing Enlightenment, the shutdown procedure would previously end up calling the same functions twice. These functions should be called from the ecore_evas drm shutdown routine as the sprites, inputs, outputs, etc are all called from the ecore_evas drm init routine. @fix Signed-off-by: Chris Michael --- src/lib/ecore_drm/ecore_drm_device.c | 13 - src/lib/ecore_drm/ecore_drm_launcher.c | 1 + 2 files changed, 1 insertion(+), 13 deletions(-) diff --git a/src/lib/ecore_drm/ecore_drm_device.c b/src/lib/ecore_drm/ecore_drm_device.c index 80cabf3..a406d5e 100644 --- a/src/lib/ecore_drm/ecore_drm_device.c +++ b/src/lib/ecore_drm/ecore_drm_device.c @@ -266,7 +266,6 @@ out: EAPI void ecore_drm_device_free(Ecore_Drm_Device *dev) { - Ecore_Drm_Output *output; unsigned int i = 0; /* check for valid device */ @@ -277,18 +276,6 @@ ecore_drm_device_free(Ecore_Drm_Device *dev) if (dev->dumb[i]) ecore_drm_fb_destroy(dev->dumb[i]); dev->dumb[i] = NULL; } - /* destroy all sprites*/ - ecore_drm_sprites_destroy(dev); - /* clear inputs */ - ecore_drm_inputs_destroy(dev); - /* free outputs */ - EINA_LIST_FREE(dev->outputs, output) - ecore_drm_output_free(output); - /* disconnect launcher */ - ecore_drm_launcher_disconnect(dev); - /* close myself */ - ecore_drm_device_close(dev); - /* free crtcs */ if (dev->crtcs) free(dev->crtcs); diff --git a/src/lib/ecore_drm/ecore_drm_launcher.c b/src/lib/ecore_drm/ecore_drm_launcher.c index c9e1ce2..72dd140 100644 --- a/src/lib/ecore_drm/ecore_drm_launcher.c +++ b/src/lib/ecore_drm/ecore_drm_launcher.c @@ -88,6 +88,7 @@ EAPI void ecore_drm_launcher_disconnect(Ecore_Drm_Device *dev) { EINA_SAFETY_ON_NULL_RETURN(dev); + if (dev->tty.switch_hdlr) ecore_event_handler_del(dev->tty.switch_hdlr); dev->tty.switch_hdlr = NULL; --
[EGIT] [core/efl] master 02/02: ecore-evas-drm: Cleanup drm outputs during shutdown
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=479bf37aecd60d519aa323eb3f2a93e1b0f3faa6 commit 479bf37aecd60d519aa323eb3f2a93e1b0f3faa6 Author: Chris Michael Date: Thu Jan 21 09:24:06 2016 -0500 ecore-evas-drm: Cleanup drm outputs during shutdown As we no longer cleanup outputs inside the ecore_drm_device_free function (see previous commit), we should be cleaning up outputs here as they are created during the _ecore_evas_drm_init function. @fix Signed-off-by: Chris Michael --- src/modules/ecore_evas/engines/drm/ecore_evas_drm.c | 9 +++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c index 7f18eca..f25c52c 100644 --- a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c +++ b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c @@ -604,16 +604,21 @@ dev_err: static int _ecore_evas_drm_shutdown(void) { + Ecore_Drm_Output *output; + if (--_ecore_evas_init_count != 0) return _ecore_evas_init_count; ecore_drm_inputs_destroy(dev); - /* NB: No need to free outputs here. Is done in device free */ + + EINA_LIST_FREE(dev->outputs, output) + ecore_drm_output_free(output); + ecore_drm_sprites_destroy(dev); ecore_drm_device_close(dev); ecore_drm_launcher_disconnect(dev); ecore_drm_device_free(dev); - dev = NULL; ecore_drm_shutdown(); + dev = NULL; ecore_event_evas_shutdown(); --
[EGIT] [core/enlightenment] master 01/01: check siginfo si_code to verify that SIGUSR2 comes from user
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=d09b1030b814124a0ffb23e7901bb754eec8e5e6 commit d09b1030b814124a0ffb23e7901bb754eec8e5e6 Author: Chris Michael Date: Thu Jan 21 11:28:31 2016 -0500 check siginfo si_code to verify that SIGUSR2 comes from user When VT switching away and back, the kernel uses SIGUSR1 and SIGUSR2 to notify us of a vt switch event. That same signal was being trapped here to toggle display of the 'fps' window. If we check the signal's si_code, we can tell if this signal came from the kernel (as in vt switch) or from the user (as is sent in 'kill'). This fixes the issue of VT-switching back and forth under DRM would cause the compositor 'fps' display to appear. Signed-off-by: Chris Michael --- src/bin/e_comp.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index 9facdd0..4bce85d 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -817,6 +817,12 @@ _e_comp_key_down(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_Event_Key * static Eina_Bool _e_comp_signal_user(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_Event_Signal_User *ev) { + siginfo_t sig; + + sig = ev->data; + /* anything sent via 'kill' will set this code to SI_USER */ + if (sig.si_code != SI_USER) return ECORE_CALLBACK_PASS_ON; + if (ev->number == 1) { // e uses this to pop up config panel --
[EGIT] [core/efl] master 03/04: ecore-drm: Don't unset logind variable when disconnecting a device
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e0c36d27f56ae207b5a969d53bf7eba2d67e38a7 commit e0c36d27f56ae207b5a969d53bf7eba2d67e38a7 Author: Chris Michael Date: Thu Jan 21 11:35:45 2016 -0500 ecore-drm: Don't unset logind variable when disconnecting a device For a case where we have more than one device open, if we set the 'logind' variable to false, then the second device would never close properly. @fix Signed-off-by: Chris Michael --- src/lib/ecore_drm/ecore_drm_launcher.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/ecore_drm/ecore_drm_launcher.c b/src/lib/ecore_drm/ecore_drm_launcher.c index 72dd140..ff24c90 100644 --- a/src/lib/ecore_drm/ecore_drm_launcher.c +++ b/src/lib/ecore_drm/ecore_drm_launcher.c @@ -57,6 +57,7 @@ EAPI Eina_Bool ecore_drm_launcher_connect(Ecore_Drm_Device *dev) { EINA_SAFETY_ON_NULL_RETURN_VAL(dev, EINA_FALSE); + /* try to connect to logind */ if (!(logind = _ecore_drm_logind_connect(dev))) { @@ -100,7 +101,6 @@ ecore_drm_launcher_disconnect(Ecore_Drm_Device *dev) else { _ecore_drm_logind_disconnect(dev); -logind = EINA_FALSE; } } --
[EGIT] [core/efl] master 04/04: ecore-drm: Unify and cleanup tty code
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=cb983f747b72c369499f7b738973c422c7996fee commit cb983f747b72c369499f7b738973c422c7996fee Author: Chris Michael Date: Thu Jan 21 11:38:07 2016 -0500 ecore-drm: Unify and cleanup tty code This patch brings the tty code more inline with what the logind code Was doing. It also fixes the return value from the vt_signal handler, and opens the tty in non-blocking mode now. @fix Signed-off-by: Chris Michael --- src/lib/ecore_drm/ecore_drm_private.h | 1 + src/lib/ecore_drm/ecore_drm_tty.c | 50 +-- 2 files changed, 31 insertions(+), 20 deletions(-) diff --git a/src/lib/ecore_drm/ecore_drm_private.h b/src/lib/ecore_drm/ecore_drm_private.h index bb959e9..1f51d3b 100644 --- a/src/lib/ecore_drm/ecore_drm_private.h +++ b/src/lib/ecore_drm/ecore_drm_private.h @@ -263,6 +263,7 @@ void _ecore_drm_launcher_device_close(const char *device, int fd); int _ecore_drm_launcher_device_flags_set(int fd, int flags); Eina_Bool _ecore_drm_tty_switch(Ecore_Drm_Device *dev, int activate_vt); +void _ecore_drm_tty_restore(Ecore_Drm_Device *dev); Ecore_Drm_Evdev *_ecore_drm_evdev_device_create(Ecore_Drm_Seat *seat, struct libinput_device *device); void _ecore_drm_evdev_device_destroy(Ecore_Drm_Evdev *evdev); diff --git a/src/lib/ecore_drm/ecore_drm_tty.c b/src/lib/ecore_drm/ecore_drm_tty.c index f88cb4b..cd41bb6 100644 --- a/src/lib/ecore_drm/ecore_drm_tty.c +++ b/src/lib/ecore_drm/ecore_drm_tty.c @@ -17,8 +17,10 @@ _ecore_drm_tty_cb_vt_signal(void *data, int type EINA_UNUSED, void *event) ev = event; sig = ev->data; - if (sig.si_code != SI_KERNEL) return ECORE_CALLBACK_RENEW; - if (!(dev = data)) return ECORE_CALLBACK_RENEW; + if (sig.si_code != SI_KERNEL) return ECORE_CALLBACK_PASS_ON; + if (!(dev = data)) return ECORE_CALLBACK_PASS_ON; + + DBG("TTY SWITCH SIGNAL"); switch (ev->number) { @@ -38,7 +40,7 @@ _ecore_drm_tty_cb_vt_signal(void *data, int type EINA_UNUSED, void *event) break; } - return ECORE_CALLBACK_RENEW; + return ECORE_CALLBACK_PASS_ON; } Eina_Bool @@ -55,7 +57,8 @@ _ecore_drm_tty_setup(Ecore_Drm_Device *dev) struct vt_mode vtmode = { 0, 0, SIGUSR1, SIGUSR2, 0 }; if ((fstat(dev->tty.fd, &st) == -1) || - (major(st.st_rdev) != TTY_MAJOR) || (minor(st.st_rdev) == 0)) + (major(st.st_rdev) != TTY_MAJOR) || (minor(st.st_rdev) <= 0) || + (minor(st.st_rdev) >= 64)) { ERR("Failed to get stats for tty"); return EINA_FALSE; @@ -70,23 +73,25 @@ _ecore_drm_tty_setup(Ecore_Drm_Device *dev) if (kmode != KD_TEXT) WRN("Virtual Terminal already in KD_GRAPHICS mode"); - if (ioctl(dev->tty.fd, VT_ACTIVATE, minor(st.st_rdev)) < 0) - { -ERR("Failed to activate vt: %m"); -return EINA_FALSE; - } + /* if (ioctl(dev->tty.fd, VT_ACTIVATE, minor(st.st_rdev)) < 0) */ + /* { */ + /* ERR("Failed to activate vt: %m"); */ + /* return EINA_FALSE; */ + /* } */ - if (ioctl(dev->tty.fd, VT_WAITACTIVE, minor(st.st_rdev)) < 0) - { -ERR("Failed to wait active: %m"); -return EINA_FALSE; - } + /* if (ioctl(dev->tty.fd, VT_WAITACTIVE, minor(st.st_rdev)) < 0) */ + /* { */ + /* ERR("Failed to wait active: %m"); */ + /* return EINA_FALSE; */ + /* } */ if (ioctl(dev->tty.fd, KDGKBMODE, &kbd_mode)) { -ERR("Could not get curent kbd mode: %m"); -return EINA_FALSE; +WRN("Could not get current kbd mode: %m"); +dev->tty.kbd_mode = K_UNICODE; } + else if (dev->tty.kbd_mode == K_OFF) + dev->tty.kbd_mode = K_UNICODE; if (ioctl(dev->tty.fd, KDSKBMUTE, 1) && ioctl(dev->tty.fd, KDSKBMODE, K_OFF)) @@ -105,6 +110,7 @@ _ecore_drm_tty_setup(Ecore_Drm_Device *dev) vtmode.waitv = 0; vtmode.relsig = SIGUSR1; vtmode.acqsig = SIGUSR2; + if (ioctl(dev->tty.fd, VT_SETMODE, &vtmode) < 0) { ERR("Could not set Terminal Mode: %m"); @@ -115,6 +121,8 @@ _ecore_drm_tty_setup(Ecore_Drm_Device *dev) err_setmode: ioctl(dev->tty.fd, KDSETMODE, KD_TEXT); err_kmode: + ioctl(dev->tty.fd, KDSKBMUTE, 0); + ioctl(dev->tty.fd, KDSKBMODE, dev->tty.kbd_mode); return EINA_FALSE; } @@ -158,10 +166,10 @@ ecore_drm_tty_open(Ecore_Drm_Device *dev, const char *name) { DBG("Trying to Open Tty: %s", tty); -dev->tty.fd = open(tty, (O_RDWR | O_CLOEXEC)); //O_RDWR | O_NOCTTY); +dev->tty.fd = open(tty, (O_RDWR | O_CLOEXEC | O_NONBLOCK)); if (dev->tty.fd < 0) { - DBG("Failed to Open Tty: %m"); +
[EGIT] [core/efl] master 01/04: ecore-drm: Refactor logind code to use tty functions
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=cddc7ba445035040ee31685c1920327ca26f47d7 commit cddc7ba445035040ee31685c1920327ca26f47d7 Author: Chris Michael Date: Thu Jan 21 11:20:29 2016 -0500 ecore-drm: Refactor logind code to use tty functions This patch cleans up some of the logind code to make use of the existing tty functions as they both did the same thing @fix Signed-off-by: Chris Michael --- src/lib/ecore_drm/ecore_drm_logind.c | 78 ++-- 1 file changed, 4 insertions(+), 74 deletions(-) diff --git a/src/lib/ecore_drm/ecore_drm_logind.c b/src/lib/ecore_drm/ecore_drm_logind.c index 47cb92f..0797d02 100644 --- a/src/lib/ecore_drm/ecore_drm_logind.c +++ b/src/lib/ecore_drm/ecore_drm_logind.c @@ -27,77 +27,15 @@ _ecore_drm_logind_vt_get(Ecore_Drm_Device *dev) static Eina_Bool _ecore_drm_logind_vt_setup(Ecore_Drm_Device *dev) { - struct stat st; char buff[64]; - struct vt_mode vtmode = { 0, 0, SIGUSR1, SIGUSR2, 0 }; snprintf(buff, sizeof(buff), "/dev/tty%d", dev->vt); buff[sizeof(buff) - 1] = 0; - dev->tty.fd = open(buff, (O_RDWR | O_CLOEXEC | O_NONBLOCK)); - if (dev->tty.fd < 0) - { -ERR("Could not open VT %s %m", buff); -return EINA_FALSE; - } - - if ((fstat(dev->tty.fd, &st) == -1) || - (major(st.st_rdev) != TTY_MAJOR) || - (minor(st.st_rdev) <= 0) || (minor(st.st_rdev) >= 64)) - { -ERR("TTY %s is not a virtual terminal", buff); -goto stat_err; - } - - if (ioctl(dev->tty.fd, KDGKBMODE, &dev->tty.kbd_mode) < 0) - { -ERR("Could not read keyboard mode of %s: %m", buff); -dev->tty.kbd_mode = K_UNICODE; - } - else if (dev->tty.kbd_mode == K_OFF) - dev->tty.kbd_mode = K_UNICODE; - - if ((ioctl(dev->tty.fd, KDSKBMUTE, 1) < 0) && - (ioctl(dev->tty.fd, KDSKBMODE, K_OFF) < 0)) - { -ERR("Could not set K_OFF keyboard mode on %s: %m", buff); -goto stat_err; - } - - if (ioctl(dev->tty.fd, KDSETMODE, KD_GRAPHICS) < 0) - { -ERR("Could not set KD_GRAPHICS mode on %s: %m", buff); -goto kbdmode_err; - } - - vtmode.mode = VT_PROCESS; - vtmode.waitv = 0; - vtmode.relsig = SIGUSR1; - vtmode.acqsig = SIGUSR2; - - if (ioctl(dev->tty.fd, VT_SETMODE, &vtmode) < 0) - { -ERR("Could not take over virtual terminal: %m"); -goto mode_err; - } + if (!ecore_drm_tty_open(dev, buff)) + return EINA_FALSE; return EINA_TRUE; - -mode_err: - ioctl(dev->tty.fd, KDSETMODE, KD_TEXT); -kbdmode_err: - ioctl(dev->tty.fd, KDSKBMUTE, 0); - ioctl(dev->tty.fd, KDSKBMODE, dev->tty.kbd_mode); -stat_err: - close(dev->tty.fd); - return EINA_FALSE; -} - -static void -_ecore_drm_logind_vt_destroy(Ecore_Drm_Device *dev) -{ - _ecore_drm_logind_restore(dev); - close(dev->tty.fd); } static Eina_Bool @@ -252,7 +190,7 @@ _ecore_drm_logind_disconnect(Ecore_Drm_Device *dev) if (active_hdlr) ecore_event_handler_del(active_hdlr); active_hdlr = NULL; - _ecore_drm_logind_vt_destroy(dev); + ecore_drm_tty_close(dev); _ecore_drm_dbus_session_release(); _ecore_drm_dbus_shutdown(); } @@ -260,15 +198,7 @@ _ecore_drm_logind_disconnect(Ecore_Drm_Device *dev) void _ecore_drm_logind_restore(Ecore_Drm_Device *dev) { - struct vt_mode vtmode = { 0, 0, SIGUSR1, SIGUSR2, 0 }; - - if ((!dev) || (dev->tty.fd < 0)) return; - - ioctl(dev->tty.fd, KDSETMODE, KD_TEXT); - ioctl(dev->tty.fd, KDSKBMUTE, 0); - ioctl(dev->tty.fd, KDSKBMODE, dev->tty.kbd_mode); - vtmode.mode = VT_AUTO; - ioctl(dev->tty.fd, VT_SETMODE, &vtmode); + _ecore_drm_tty_restore(dev); } Eina_Bool --
[EGIT] [core/efl] master 02/04: ecore-drm: Destroy any existing eeze watch when we free the device
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4ba349be4f6706d6049d54e1f60f2716c41edec5 commit 4ba349be4f6706d6049d54e1f60f2716c41edec5 Author: Chris Michael Date: Thu Jan 21 11:32:53 2016 -0500 ecore-drm: Destroy any existing eeze watch when we free the device If a user frees a device without closing it we could end up with a dangling eeze watch. This small patch just makes sure to delete the watch if it exists @fix Signed-off-by: Chris Michael --- src/lib/ecore_drm/ecore_drm_device.c | 4 1 file changed, 4 insertions(+) diff --git a/src/lib/ecore_drm/ecore_drm_device.c b/src/lib/ecore_drm/ecore_drm_device.c index a406d5e..cca3332 100644 --- a/src/lib/ecore_drm/ecore_drm_device.c +++ b/src/lib/ecore_drm/ecore_drm_device.c @@ -277,6 +277,8 @@ ecore_drm_device_free(Ecore_Drm_Device *dev) dev->dumb[i] = NULL; } + if (dev->watch) eeze_udev_watch_del(dev->watch); + /* free crtcs */ if (dev->crtcs) free(dev->crtcs); @@ -394,9 +396,11 @@ ecore_drm_device_close(Ecore_Drm_Device *dev) /* delete udev watch */ if (dev->watch) eeze_udev_watch_del(dev->watch); + dev->watch = NULL; /* close xkb context */ if (dev->xkb_ctx) xkb_context_unref(dev->xkb_ctx); + dev->xkb_ctx = NULL; _ecore_drm_launcher_device_close(dev->drm.name, dev->drm.fd); --
[EGIT] [core/elementary] master 01/01: elementary: Add missing EINA_UNUSED in combobox function
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=3f0bf22d6218e7bbd50dbcdb62cc64ec850581dc commit 3f0bf22d6218e7bbd50dbcdb62cc64ec850581dc Author: Chris Michael Date: Mon Jan 25 07:43:03 2016 -0500 elementary: Add missing EINA_UNUSED in combobox function _elm_combobox_elm_genlist_filter_set function does not use the Eo *obj parameter so mark it as EINA_UNUSED to remove compiler warning Signed-off-by: Chris Michael --- src/lib/elc_combobox.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/elc_combobox.c b/src/lib/elc_combobox.c index bac259d..c00c772 100644 --- a/src/lib/elc_combobox.c +++ b/src/lib/elc_combobox.c @@ -502,7 +502,7 @@ _elm_combobox_elm_interface_atspi_widget_action_elm_actions_get(Eo *obj EINA_UNU } EOLIAN void -_elm_combobox_elm_genlist_filter_set(Eo *obj, Elm_Combobox_Data *pd, void *key) +_elm_combobox_elm_genlist_filter_set(Eo *obj EINA_UNUSED, Elm_Combobox_Data *pd, void *key) { pd->first_filter = EINA_FALSE; --
[EGIT] [core/efl] master 01/01: edje: Fix potential NULL pointer dereference
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3d9a6e238af3837e273248c71da4d96daef10352 commit 3d9a6e238af3837e273248c71da4d96daef10352 Author: Chris Michael Date: Mon Jan 25 07:47:03 2016 -0500 edje: Fix potential NULL pointer dereference It is possible that evas_object_data_get here does not return an Edje, so check the return value. This fixes a coverity reported issue. @fix CID1349866 Signed-off-by: Chris Michael --- src/lib/edje/edje_util.c | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/lib/edje/edje_util.c b/src/lib/edje/edje_util.c index 221bd1d..4bb0e9c 100644 --- a/src/lib/edje/edje_util.c +++ b/src/lib/edje/edje_util.c @@ -3505,8 +3505,11 @@ _edje_object_part_swallow(Eo *obj EINA_UNUSED, Edje *ed, const char *part, Evas_ /* the object is already swallowed in the requested part */ if (rpcur == rp) return EINA_TRUE; sed = evas_object_data_get(obj_swallow, ".edje"); -/* The object is already swallowed somewhere, unswallow it first */ -edje_object_part_unswallow(sed->obj, obj_swallow); +if (sed) + { + /* The object is already swallowed somewhere, unswallow it first */ + edje_object_part_unswallow(sed->obj, obj_swallow); + } } if (!rp) --
[EGIT] [core/enlightenment] master 01/01: add missing EINA_UNUSED for _xkb_changed_state function
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=c692381f2e5f3294af8e771439f0fb7596c45a6a commit c692381f2e5f3294af8e771439f0fb7596c45a6a Author: Chris Michael Date: Mon Jan 25 14:02:48 2016 -0500 add missing EINA_UNUSED for _xkb_changed_state function This function does not use the event parameter, so mark it as unused Signed-off-by: Chris Michael --- src/modules/xkbswitch/e_mod_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/xkbswitch/e_mod_main.c b/src/modules/xkbswitch/e_mod_main.c index 8f7f754..14d5747 100644 --- a/src/modules/xkbswitch/e_mod_main.c +++ b/src/modules/xkbswitch/e_mod_main.c @@ -279,7 +279,7 @@ _gc_icon(const E_Gadcon_Client_Class *client_class EINA_UNUSED, Evas *evas) } static Eina_Bool -_xkb_changed_state(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) +_xkb_changed_state(void *data EINA_UNUSED, int type EINA_UNUSED, void *event EINA_UNUSED) { _xkb_update_icon(e_config->xkb.cur_group); return ECORE_CALLBACK_PASS_ON; --
[EGIT] [core/efl] master 01/01: evas: Fix segfault when trying to determine overlay usage
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=64aff0a7f02de2d249e3cf908fc572f008576c99 commit 64aff0a7f02de2d249e3cf908fc572f008576c99 Author: Chris Michael Date: Mon Jan 25 16:10:25 2016 -0500 evas: Fix segfault when trying to determine overlay usage Previously, _evas_render_can_use_overlay would segfault here when trying to make use of an Evas_Video_Surface. This is because eo_tmp variable was never reassigned to be the smart parent before we tried to get eo data from it. @fix NB: Thanks Frenchie !! ;) Signed-off-by: Chris Michael --- src/lib/evas/canvas/evas_render.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index 1952d60..b3497ee 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c @@ -964,8 +964,8 @@ _evas_render_can_use_overlay(Evas_Public_Data *e, Evas_Object *eo_obj) tmp = eo_data_scope_get(eo_tmp, EVAS_OBJECT_CLASS); while (tmp && !(_evas_render_has_map(tmp) && !_evas_render_can_map(tmp))) { -tmp = eo_data_scope_get(eo_tmp, EVAS_OBJECT_CLASS); eo_tmp = tmp->smart.parent; +tmp = eo_data_scope_get(eo_tmp, EVAS_OBJECT_CLASS); } if (tmp && _evas_render_has_map(tmp) && !_evas_render_can_map(tmp)) --
[EGIT] [core/efl] master 01/01: evas: Fix explicit NULL dereference
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=cbf2aa2bf99d54cdcc3cf68966b6630c9094a547 commit cbf2aa2bf99d54cdcc3cf68966b6630c9094a547 Author: Chris Michael Date: Wed Jan 27 12:05:59 2016 -0500 evas: Fix explicit NULL dereference This patch fixes an Coverity issue that if 'dst' gets set to NULL (as can happen above) then this eo_do call may segfault as it is directly accessing 'dst->buffer'. @fix CID1347415 Signed-off-by: Chris Michael --- src/lib/evas/filters/evas_filter_utils.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/evas/filters/evas_filter_utils.c b/src/lib/evas/filters/evas_filter_utils.c index 802f09a..ec84301 100644 --- a/src/lib/evas/filters/evas_filter_utils.c +++ b/src/lib/evas/filters/evas_filter_utils.c @@ -63,7 +63,8 @@ evas_filter_buffer_scaled_get(Evas_Filter_Context *ctx, end: if (src_map) eo_do(src->buffer, ector_buffer_unmap(src_map, src_len)); - if (dst_map) eo_do(dst->buffer, ector_buffer_unmap(dst_map, dst_len)); + if ((dst) && (dst_map)) + eo_do(dst->buffer, ector_buffer_unmap(dst_map, dst_len)); DEBUG_TIME_END(); return dst; } --
[EGIT] [core/efl] master 01/01: eeze: Fix eeze_udev_find_by_subsystem_sysname function
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=684d5180c3bcd6054fc9a3bb9dae24f389fbac76 commit 684d5180c3bcd6054fc9a3bb9dae24f389fbac76 Author: Chris Michael Date: Fri Jan 29 13:46:30 2016 -0500 eeze: Fix eeze_udev_find_by_subsystem_sysname function This function was severly broken when used for finding devices of a particular subsystem. Previously, this function would return every device in the system, regardless if subsystem or sysname was passed in. This patch fixes the issue by adding udev_enumerate matches before we scan for devices. This way, when we enumerate the scan results, we now get only devices that match the subsystem (if supplied). @fix Signed-off-by: Chris Michael --- src/lib/eeze/eeze_udev_find.c | 9 + 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/lib/eeze/eeze_udev_find.c b/src/lib/eeze/eeze_udev_find.c index 06bbb4c..3df74cd 100644 --- a/src/lib/eeze/eeze_udev_find.c +++ b/src/lib/eeze/eeze_udev_find.c @@ -392,18 +392,19 @@ eeze_udev_find_by_subsystem_sysname(const char *subsystem, const char *sysname) const char *devname; Eina_List *ret = NULL; - if (!sysname) return NULL; - en = udev_enumerate_new(udev); if (!en) return NULL; + if (subsystem) udev_enumerate_add_match_subsystem(en, subsystem); + if (sysname) udev_enumerate_add_match_sysname(en, sysname); + udev_enumerate_scan_devices(en); devs = udev_enumerate_get_list_entry(en); udev_list_entry_foreach(cur, devs) { devname = udev_list_entry_get_name(cur); -device = - udev_device_new_from_subsystem_sysname(udev, subsystem, sysname); +device = udev_device_new_from_syspath(udev, devname); +if (!device) continue; ret = eina_list_append(ret, eina_stringshare_add(devname)); udev_device_unref(device); } --
[EGIT] [core/enlightenment] master 01/01: update mailmap addresses
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=0aa683b97ce29f154e6657223cb90f0f2553978b commit 0aa683b97ce29f154e6657223cb90f0f2553978b Author: Chris Michael Date: Tue Feb 2 14:03:07 2016 -0500 update mailmap addresses Signed-off-by: Chris Michael --- .mailmap | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.mailmap b/.mailmap index d9d6852..d055df3 100644 --- a/.mailmap +++ b/.mailmap @@ -17,10 +17,11 @@ Vincent Torri Vincent Torri Tom Hacohen Tom 'TAsn' Hacohen Tom Hacohen Tom Gustavo Sverzut Barbieri Gustavo Sverzut Barbieri -Christopher Michael Christopher Michael +Christopher Michael Christopher Michael Christopher Michael Christopher Michael -Christopher Michael Chris Michael -Christopher Michael Chris Michael +Christopher Michael Christopher Michael +Christopher Michael Christopher Michael +Christopher Michael Christopher Michael Sebastian Dransfeld Sebastian Dransfeld Sebastian Dransfeld sebastid Mike Blumenkrantz Mike Blumenkrantz --
[EGIT] [core/enlightenment] enlightenment-0.20 08/59: Don't leak eina_iterator in shot module
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=58c7122aafbf77736da2ec8c30477f10785bb99d commit 58c7122aafbf77736da2ec8c30477f10785bb99d Author: Chris Michael Date: Mon Oct 26 10:03:33 2015 -0400 Don't leak eina_iterator in shot module Signed-off-by: Chris Michael --- src/modules/shot/e_mod_main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/modules/shot/e_mod_main.c b/src/modules/shot/e_mod_main.c index 60919b0..85d61f7 100644 --- a/src/modules/shot/e_mod_main.c +++ b/src/modules/shot/e_mod_main.c @@ -1300,6 +1300,7 @@ _wl_init() } } } + eina_iterator_free(itr); return ECORE_CALLBACK_RENEW; } --
[EGIT] [core/enlightenment] enlightenment-0.20 13/59: Try to init (and error check the init) of ecore_wl2 library before we create a compositor
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=be2221ed9542ac54bc27bee90a3d0ed051c2aca7 commit be2221ed9542ac54bc27bee90a3d0ed051c2aca7 Author: Chris Michael Date: Mon Dec 7 09:25:49 2015 -0500 Try to init (and error check the init) of ecore_wl2 library before we create a compositor ref T2919 Signed-off-by: Chris Michael --- src/bin/e_comp_wl.c | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index de5eb6e..4fee9dc 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -2735,6 +2735,13 @@ _e_comp_wl_gl_init(void *d EINA_UNUSED) E_API Eina_Bool e_comp_wl_init(void) { + /* try to init ecore_wayland */ + if (!ecore_wl2_init()) + { +e_error_message_show(_("Enlightenment cannot initialize Ecore_Wl2!\n")); +return EINA_FALSE; + } + /* set gl available if we have ecore_evas support */ if (ecore_evas_engine_type_supported_get(ECORE_EVAS_ENGINE_WAYLAND_EGL) || ecore_evas_engine_type_supported_get(ECORE_EVAS_ENGINE_OPENGL_DRM)) @@ -2747,13 +2754,6 @@ e_comp_wl_init(void) return EINA_FALSE; } - /* try to init ecore_wayland */ - if (!ecore_wl2_init()) - { -e_error_message_show(_("Enlightenment cannot initialize Ecore_Wl2!\n")); -return EINA_FALSE; - } - /* create hash to store clients */ /* clients_win_hash = eina_hash_int64_new(NULL); */ --
[EGIT] [core/enlightenment] enlightenment-0.20 03/59: remove unused event loop and add external Ecore_Wl2_Display variable
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=5ff896f4bd025fdb73b39b58d06249ad23a42d26 commit 5ff896f4bd025fdb73b39b58d06249ad23a42d26 Author: Chris Michael Date: Thu Oct 22 11:54:59 2015 -0400 remove unused event loop and add external Ecore_Wl2_Display variable Signed-off-by: Chris Michael --- src/bin/e_comp_wl.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/bin/e_comp_wl.h b/src/bin/e_comp_wl.h index fd43b18..1493d14 100644 --- a/src/bin/e_comp_wl.h +++ b/src/bin/e_comp_wl.h @@ -103,7 +103,7 @@ struct _E_Comp_Wl_Data { struct wl_display *disp; struct wl_registry *registry; // only used for nested wl compositors -struct wl_event_loop *loop; +/* struct wl_event_loop *loop; */ Eina_Inlist *globals; // only used for nested wl compositors struct wl_shm *shm; // only used for nested wl compositors Evas_GL *gl; @@ -341,6 +341,8 @@ E_API Eina_Bool e_comp_wl_evas_handle_mouse_button(E_Client *ec, uint32_t timest E_API extern int E_EVENT_WAYLAND_GLOBAL_ADD; +E_API extern Ecore_Wl2_Display *ewd; + # ifndef HAVE_WAYLAND_ONLY EINTERN void e_comp_wl_xwayland_client_queue(E_Client *ec); static inline E_Comp_X_Client_Data * --
[EGIT] [core/enlightenment] enlightenment-0.20 11/59: Fix formatting
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=c648775b9571d327b082c7f80b83084ee8e1f35a commit c648775b9571d327b082c7f80b83084ee8e1f35a Author: Chris Michael Date: Mon Oct 26 10:24:28 2015 -0400 Fix formatting Signed-off-by: Chris Michael --- src/bin/e_comp_wl_input.c | 60 +++ 1 file changed, 29 insertions(+), 31 deletions(-) diff --git a/src/bin/e_comp_wl_input.c b/src/bin/e_comp_wl_input.c index 7e8f2e9..ec9d2e1 100644 --- a/src/bin/e_comp_wl_input.c +++ b/src/bin/e_comp_wl_input.c @@ -20,7 +20,7 @@ _e_comp_wl_input_update_seat_caps(void) caps |= WL_SEAT_CAPABILITY_TOUCH; EINA_LIST_FOREACH(e_comp_wl->seat.resources, l, res) -wl_seat_send_capabilities(res, caps); + wl_seat_send_capabilities(res, caps); } static void @@ -126,9 +126,13 @@ _e_comp_wl_input_cb_keyboard_unbind(struct wl_resource *resource) e_comp_wl->kbd.resources = eina_list_remove(e_comp_wl->kbd.resources, resource); EINA_LIST_FOREACH_SAFE(e_comp_wl->kbd.focused, l, ll, res) - if (res == resource) - e_comp_wl->kbd.focused = - eina_list_remove_list(e_comp_wl->kbd.focused, l); + { +if (res == resource) + { + e_comp_wl->kbd.focused = + eina_list_remove_list(e_comp_wl->kbd.focused, l); + } + } } void @@ -169,8 +173,7 @@ _e_comp_wl_input_cb_keyboard_get(struct wl_client *client, struct wl_resource *r wl_resource_get_version(resource), id); if (!res) { -ERR("Could not create keyboard on seat %s: %m", -e_comp_wl->seat.name); +ERR("Could not create keyboard on seat %s: %m", e_comp_wl->seat.name); wl_client_post_no_memory(client); return; } @@ -187,8 +190,7 @@ _e_comp_wl_input_cb_keyboard_get(struct wl_client *client, struct wl_resource *r /* send current keymap */ wl_keyboard_send_keymap(res, WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1, - e_comp_wl->xkb.fd, - e_comp_wl->xkb.size); + e_comp_wl->xkb.fd, e_comp_wl->xkb.size); /* if the client owns the focused surface, we need to send an enter */ focused = e_client_focused_get(); @@ -210,23 +212,23 @@ _e_comp_wl_input_cb_touch_unbind(struct wl_resource *resource) static void _e_comp_wl_input_cb_touch_get(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, uint32_t id EINA_UNUSED) { -struct wl_resource *res; + struct wl_resource *res; /* try to create pointer resource */ -res = wl_resource_create(client, &wl_touch_interface, - wl_resource_get_version(resource), id); -if (!res) - { - ERR("Could not create touch on seat %s: %m", - e_comp_wl->seat.name); - wl_client_post_no_memory(client); - return; - } - -e_comp_wl->touch.resources = + res = wl_resource_create(client, &wl_touch_interface, +wl_resource_get_version(resource), id); + if (!res) + { +ERR("Could not create touch on seat %s: %m", +e_comp_wl->seat.name); +wl_client_post_no_memory(client); +return; + } + + e_comp_wl->touch.resources = eina_list_append(e_comp_wl->touch.resources, res); -wl_resource_set_implementation(res, &_e_touch_interface, - e_comp->wl_comp_data, + wl_resource_set_implementation(res, &_e_touch_interface, + e_comp->wl_comp_data, _e_comp_wl_input_cb_touch_unbind); } @@ -403,8 +405,7 @@ _e_comp_wl_input_keymap_update(struct xkb_keymap *keymap) /* send updated keymap */ EINA_LIST_FOREACH(e_comp_wl->kbd.resources, l, res) wl_keyboard_send_keymap(res, WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1, - e_comp_wl->xkb.fd, - e_comp_wl->xkb.size); + e_comp_wl->xkb.fd, e_comp_wl->xkb.size); /* update modifiers */ e_comp_wl_input_keyboard_modifiers_update(); @@ -501,23 +502,20 @@ e_comp_wl_input_keyboard_modifiers_serialize(void) xkb_mod_mask_t mod; xkb_layout_index_t grp; - mod = xkb_state_serialize_mods(e_comp_wl->xkb.state, - XKB_STATE_DEPRESSED); + mod = xkb_state_serialize_mods(e_comp_wl->xkb.state, XKB_STATE_DEPRESSED); changed |= mod != e_comp_wl->kbd.mod_depressed; e_comp_wl->kbd.mod_depressed = mod; - mod = xkb_state_serialize_mods(e_comp_wl->xkb.state, - XKB_STATE_MODS_LATCHED); + mod = xkb_state_serialize_mods(e_comp_wl->xkb.state, XKB_STATE_MODS_LAT
[EGIT] [core/enlightenment] enlightenment-0.20 38/59: check siginfo si_code to verify that SIGUSR2 comes from user
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=18d59156cc9dd4d8b469190e0162e533bdfb44c5 commit 18d59156cc9dd4d8b469190e0162e533bdfb44c5 Author: Chris Michael Date: Thu Jan 21 11:28:31 2016 -0500 check siginfo si_code to verify that SIGUSR2 comes from user When VT switching away and back, the kernel uses SIGUSR1 and SIGUSR2 to notify us of a vt switch event. That same signal was being trapped here to toggle display of the 'fps' window. If we check the signal's si_code, we can tell if this signal came from the kernel (as in vt switch) or from the user (as is sent in 'kill'). This fixes the issue of VT-switching back and forth under DRM would cause the compositor 'fps' display to appear. Signed-off-by: Chris Michael --- src/bin/e_comp.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index 9facdd0..4bce85d 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -817,6 +817,12 @@ _e_comp_key_down(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_Event_Key * static Eina_Bool _e_comp_signal_user(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_Event_Signal_User *ev) { + siginfo_t sig; + + sig = ev->data; + /* anything sent via 'kill' will set this code to SI_USER */ + if (sig.si_code != SI_USER) return ECORE_CALLBACK_PASS_ON; + if (ev->number == 1) { // e uses this to pop up config panel --