discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=291c1f7cc593b4e9226d2fa076fbda646a525a8a
commit 291c1f7cc593b4e9226d2fa076fbda646a525a8a Author: Mike Blumenkrantz <[email protected]> Date: Mon Jul 28 08:31:58 2014 -0400 break out client border setting into separate function --- src/bin/e_client.c | 39 ++++++++++++++++++++++++++------------- src/bin/e_client.h | 1 + 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 745752d..25b6cd0 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -2112,7 +2112,6 @@ static void _e_client_frame_update(E_Client *ec) { const char *bordername; - Eina_Stringshare *pborder; if (ec->fullscreen || ec->borderless) bordername = "borderless"; @@ -2153,18 +2152,7 @@ _e_client_frame_update(E_Client *ec) bordername = e_config->theme_default_border_style; if (!bordername) bordername = "default"; - if (e_util_strcmp(ec->border.name, bordername)) - { - pborder = ec->border.name; - ec->border.name = eina_stringshare_add(bordername); - if (e_comp_object_frame_theme_set(ec->frame, bordername)) - eina_stringshare_del(pborder); - else - { - eina_stringshare_del(ec->border.name); - ec->border.name = pborder; - } - } + e_client_border_set(ec, bordername); } //////////////////////////////////////////////// @@ -3987,6 +3975,31 @@ e_client_pinned_set(E_Client *ec, Eina_Bool set) /////////////////////////////////////// +EAPI Eina_Bool +e_client_border_set(E_Client *ec, const char *name) +{ + Eina_Stringshare *pborder; + + E_OBJECT_CHECK_RETURN(ec, EINA_FALSE); + E_OBJECT_TYPE_CHECK_RETURN(ec, E_CLIENT_TYPE, EINA_FALSE); + if (ec->border.changed) + CRI("CALLING WHEN border.changed SET!"); + + if (!e_util_strcmp(ec->border.name, name)) return EINA_TRUE; + pborder = ec->border.name; + ec->border.name = eina_stringshare_add(name); + if (e_comp_object_frame_theme_set(ec->frame, name)) + { + eina_stringshare_del(pborder); + return EINA_TRUE; + } + eina_stringshare_del(ec->border.name); + ec->border.name = pborder; + return EINA_FALSE; +} + +/////////////////////////////////////// + EAPI void e_client_comp_hidden_set(E_Client *ec, Eina_Bool hidden) { diff --git a/src/bin/e_client.h b/src/bin/e_client.h index a19ccf7..0bbdd95 100644 --- a/src/bin/e_client.h +++ b/src/bin/e_client.h @@ -786,6 +786,7 @@ EAPI void e_client_stick(E_Client *ec); EAPI void e_client_unstick(E_Client *ec); EAPI void e_client_pinned_set(E_Client *ec, Eina_Bool set); EAPI void e_client_comp_hidden_set(E_Client *ec, Eina_Bool hidden); +EAPI Eina_Bool e_client_border_set(E_Client *ec, const char *name); EAPI void e_client_act_move_keyboard(E_Client *ec); EAPI void e_client_act_resize_keyboard(E_Client *ec); EAPI void e_client_act_move_begin(E_Client *ec, E_Binding_Event_Mouse_Button *ev); --
