[EGIT] [core/efl] master 01/01: Evas: Fix proxy rendering for animated objects

2014-01-22 Thread Jean-Philippe Andre
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=981bdc16f6dbb2948b33b5979825a6a2f6f168f2

commit 981bdc16f6dbb2948b33b5979825a6a2f6f168f2
Author: Jean-Philippe Andre 
Date:   Wed Jan 22 16:40:50 2014 +0900

Evas: Fix proxy rendering for animated objects

An invalid optimization was implemented in proxy rendering.
We can't assume a proxy is a smart object.

Refer to 5cefa00d0ad0f54.

Fixes T832.

Proxy rendering is still broken when using cserve2... :(
---
 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 2c3c336..e1b4049 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -367,7 +367,7 @@ _evas_render_phase1_direct(Evas_Public_Data *e,
_evas_render_prev_cur_clip_cache_add(e, obj);
  if (obj->proxy->proxies)
{
-  if (obj->smart.smart && 
evas_object_smart_changed_get(eo_obj))
+  if (!obj->smart.smart || 
evas_object_smart_changed_get(eo_obj))
 {
EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, obj->proxy,
 Evas_Object_Proxy_Data, 
proxy_write)

-- 




[EGIT] [core/enlightenment] master 01/01: fix connman check by not failing al the time on owner check

2014-01-22 Thread Carsten Haitzler
raster pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=6a39d27a517c0927d2e910694e0264195faa30bb

commit 6a39d27a517c0927d2e910694e0264195faa30bb
Author: Carsten Haitzler (Rasterman) 
Date:   Wed Jan 22 17:50:19 2014 +0900

fix connman check by not failing al the time on owner check

fixes T804
---
 src/modules/wizard/page_110.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/modules/wizard/page_110.c b/src/modules/wizard/page_110.c
index e8ff69e..3904b1d 100644
--- a/src/modules/wizard/page_110.c
+++ b/src/modules/wizard/page_110.c
@@ -100,7 +100,8 @@ _check_connman_owner(void *data, const Eldbus_Message *msg,
 
e_wizard_button_next_enable_set(1);
ecore_idler_add(_page_next_call, NULL);
-
+   return;
+   
 fail:
_connman_fail(data);
 }

-- 




[EGIT] [core/enlightenment] master 01/01: efm - emit signal to icon when rename starts/ends

2014-01-22 Thread Carsten Haitzler
raster pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=15abb86bea9a325e8cc0fc3d74fd6d11bbe792a8

commit 15abb86bea9a325e8cc0fc3d74fd6d11bbe792a8
Author: Carsten Haitzler (Rasterman) 
Date:   Wed Jan 22 18:31:49 2014 +0900

efm - emit signal to icon when rename starts/ends

this, along with theme updates in elm should fix T799
---
 src/bin/e_fm.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c
index 0f49301..42bcc9a 100644
--- a/src/bin/e_fm.c
+++ b/src/bin/e_fm.c
@@ -10294,6 +10294,7 @@ _e_fm2_icon_entry_widget_add(E_Fm2_Icon *ic)
  e_comp_grab_input(c, 0, 1);
edje_object_part_swallow(ic->obj, "e.swallow.entry", ic->entry_widget);
evas_object_show(ic->entry_widget);
+   edje_object_signal_emit(ic->obj, "e,state,rename,on", "e");
e_widget_entry_text_set(ic->entry_widget, ic->info.file);
e_widget_focus_set(ic->entry_widget, 0);
e_widget_entry_select_all(ic->entry_widget);
@@ -10316,6 +10317,7 @@ _e_fm2_icon_entry_widget_del(E_Fm2_Icon *ic)
  e_grabinput_release(0, ic->keygrab);
ic->keygrab = 0;
_e_fm2_icon_select(ic);
+   edje_object_signal_emit(ic->obj, "e,state,rename,off", "e");
 }
 
 static void

-- 




[EGIT] [core/elementary] master 01/01: theme update to handle rename on/off in efm

2014-01-22 Thread Carsten Haitzler
raster pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=acf7154c627ec3c51a27bc0aad64023d3ded75a3

commit acf7154c627ec3c51a27bc0aad64023d3ded75a3
Author: Carsten Haitzler (Rasterman) 
Date:   Wed Jan 22 18:32:24 2014 +0900

theme update to handle rename on/off in efm

shoudl fix T799
---
 data/themes/edc/fileman.edc | 26 +-
 1 file changed, 25 insertions(+), 1 deletion(-)

diff --git a/data/themes/edc/fileman.edc b/data/themes/edc/fileman.edc
index 8a48a3a..cea767a 100644
--- a/data/themes/edc/fileman.edc
+++ b/data/themes/edc/fileman.edc
@@ -148,7 +148,7 @@ group { name: "e/fileman/default/list/variable";
  }
  description { state: "disabled" 0.0;
 inherit: "default" 0.0;
- visible: 0;
+visible: 0;
  }
   }
 //
@@ -526,6 +526,7 @@ group { name: "e/fileman/default/icon/fixed";
 //  
   part { name: "label0"; type: SPACER;
  scale: 1;
+ clip_to: "textmaster";
  description { state: "default" 0.0;
 align: 0.5 1.0;
 rel1.offset: 4 -5;
@@ -538,6 +539,7 @@ group { name: "e/fileman/default/icon/fixed";
   }
   part { name: "e.text.label"; type: TEXTBLOCK; mouse_events: 0;
  scale: 1;
+ clip_to: "textmaster";
  description { state: "default" 0.0;
 align: 0.5 0.0;
 rel1.to: "label0";
@@ -558,6 +560,7 @@ group { name: "e/fileman/default/icon/fixed";
   }
   part { name: "label2"; type: TEXTBLOCK; mouse_events: 0;
  scale: 1;
+ clip_to: "textmaster";
  description { state: "default" 0.0;
 align: 0.5 0.0;
 rel1.to: "e.text.label";
@@ -577,6 +580,16 @@ group { name: "e/fileman/default/icon/fixed";
 visible: 1;
  }
   }
+  part { name: "textmaster"; type: RECT;
+ description { state: "default" 0.0;
+rel1.offset: -20 -20;
+rel2.offset: 19 19;
+ }
+ description { state: "hidden" 0.0;
+inherit: "default" 0.0;
+visible: 0;
+ }
+  }
 //
   part { name: "icon0"; type: SPACER;
  description { state: "default" 0.0;
@@ -731,6 +744,16 @@ group { name: "e/fileman/default/icon/fixed";
   }
}
programs {
+  program { name: "rename-on";
+ signal: "e,state,rename,on"; source: "e";
+ action: STATE_SET "hidden" 0.0;
+ target: "textmaster";
+  }
+  program { name: "rename-off";
+ signal: "e,state,rename,off"; source: "e";
+ action: STATE_SET "default" 0.0;
+ target: "textmaster";
+  }
   program {
  signal: "e,state,selected"; source: "e";
  action: STATE_SET "selected" 0.0;
@@ -883,6 +906,7 @@ group { name: "e/fileman/desktop/icon/fixed";
   }
   part { name: "bevel"; mouse_events: 0;
  insert_before: "e.text.label";
+ clip_to: "textmaster";
  description { state: "default" 0.0;
 rel1.offset: -8 -7;
 rel1.to: "e.text.label";

-- 




[EGIT] [core/elementary] master 01/01: popup: Replace focus_direction_go with focus_cycle.

2014-01-22 Thread WooHyun Jung
woohyun pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=14c8899c5d1ffaa12347fb71fd74d9ac2512cfcf

commit 14c8899c5d1ffaa12347fb71fd74d9ac2512cfcf
Author: WooHyun Jung 
Date:   Wed Jan 22 18:36:13 2014 +0900

popup: Replace focus_direction_go with focus_cycle.
---
 src/lib/elc_popup.c | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/lib/elc_popup.c b/src/lib/elc_popup.c
index 640134c..f1f4da3 100644
--- a/src/lib/elc_popup.c
+++ b/src/lib/elc_popup.c
@@ -1474,25 +1474,25 @@ _elm_popup_smart_event(Eo *obj, void *_pd EINA_UNUSED, 
va_list *list)
else if ((!strcmp(ev->key, "Left")) ||
 ((!strcmp(ev->key, "KP_Left")) && (!ev->string)))
  {
-elm_widget_focus_direction_go(obj, 270.0);
+elm_widget_focus_cycle(obj, ELM_FOCUS_LEFT);
 goto success;
  }
else if ((!strcmp(ev->key, "Right")) ||
 ((!strcmp(ev->key, "KP_Right")) && (!ev->string)))
  {
-elm_widget_focus_direction_go(obj, 90.0);
+elm_widget_focus_cycle(obj, ELM_FOCUS_RIGHT);
 goto success;
  }
else if ((!strcmp(ev->key, "Up")) ||
 ((!strcmp(ev->key, "KP_Up")) && (!ev->string)))
  {
-elm_widget_focus_direction_go(obj, 0.0);
+elm_widget_focus_cycle(obj, ELM_FOCUS_UP);
 goto success;
  }
else if ((!strcmp(ev->key, "Down")) ||
 ((!strcmp(ev->key, "KP_Down")) && (!ev->string)))
  {
-elm_widget_focus_direction_go(obj, 180.0);
+elm_widget_focus_cycle(obj, ELM_FOCUS_DOWN);
 goto success;
  }
 

-- 




[EGIT] [core/elementary] master 02/02: fileselector: Make fileselector focusable. Ok on Enter key and Cancel on Escape key.

2014-01-22 Thread Daniel Juyung Seo
seoz pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=c7885e7dd49e3f6dc237cdd2352d1ff92e549126

commit c7885e7dd49e3f6dc237cdd2352d1ff92e549126
Author: Daniel Juyung Seo 
Date:   Wed Jan 22 15:53:49 2014 +0900

fileselector: Make fileselector focusable.  Ok on Enter key and Cancel on 
Escape key.

Now fileselector accepts the key event on Enter and Escape.
---
 src/lib/elc_fileselector.c   | 35 ++-
 src/lib/elc_fileselector.h   |  2 ++
 src/lib/elc_fileselector_entry.c |  2 +-
 3 files changed, 37 insertions(+), 2 deletions(-)

diff --git a/src/lib/elc_fileselector.c b/src/lib/elc_fileselector.c
index dcd9ad7..835afef 100644
--- a/src/lib/elc_fileselector.c
+++ b/src/lib/elc_fileselector.c
@@ -38,10 +38,15 @@ 
ELM_PRIV_FILESELECTOR_SIGNALS(ELM_PRIV_STATIC_VARIABLE_DECLARE);
 
 static const Evas_Smart_Cb_Description _smart_callbacks[] = {
ELM_PRIV_FILESELECTOR_SIGNALS(ELM_PRIV_SMART_CALLBACKS_DESC)
+   {"focused", ""}, /**< handled by elm_widget */
+   {"unfocused", ""}, /**< handled by elm_widget */
{NULL, NULL}
 };
 #undef ELM_PRIV_FILESELECTOR_SIGNALS
 
+static void _ok(void *data, Evas_Object *obj, void *event_info);
+static void _canc(void *data, Evas_Object *obj, void *event_info);
+
 /* final routine on deletion */
 static void
 _elm_fileselector_smart_del_do(Elm_Fileselector_Smart_Data *sd)
@@ -137,6 +142,33 @@ _elm_fileselector_smart_theme(Eo *obj, void *_pd, va_list 
*list)
if (ret) *ret = EINA_TRUE;
 }
 
+static void
+_elm_fileselector_smart_event(Eo *obj, void *_pd EINA_UNUSED, va_list *list)
+{
+   Evas_Object *src = va_arg(*list, Evas_Object *);
+   Evas_Callback_Type type = va_arg(*list, Evas_Callback_Type);
+   Evas_Event_Key_Down *ev = va_arg(*list, void *);
+   Eina_Bool *ret = va_arg(*list, Eina_Bool *);
+
+   if (ret) *ret = EINA_FALSE;
+   (void) src;
+
+   if (elm_widget_disabled_get(obj)) return;
+   if (type != EVAS_CALLBACK_KEY_DOWN) return;
+   if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return;
+
+   if ((!strcmp(ev->key, "Return")) ||
+   (!strcmp(ev->key, "KP_Enter")))
+ _ok(obj, NULL, NULL);
+   else if (!strcmp(ev->key, "Escape"))
+ _canc(obj, NULL, NULL);
+   else
+ return;
+
+   ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
+   if (ret) *ret = EINA_TRUE;
+}
+
 /***  GENLIST/GENGRID "MODEL"  ***/
 static char *
 _itc_text_get(void *data,
@@ -1306,7 +1338,7 @@ _elm_fileselector_smart_add(Eo *obj, void *_pd, va_list 
*list EINA_UNUSED)
 
eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
elm_widget_sub_object_parent_add(obj);
-   elm_widget_can_focus_set(obj, EINA_FALSE);
+   elm_widget_can_focus_set(obj, EINA_TRUE);
 
priv->expand = !!_elm_config->fileselector_expand_enable;
priv->double_tap_navigation = 
!!_elm_config->fileselector_double_tap_navigation_enable;
@@ -2280,6 +2312,7 @@ _class_constructor(Eo_Class *klass)
 EO_OP_FUNC(EVAS_OBJ_SMART_ID(EVAS_OBJ_SMART_SUB_ID_DEL), 
_elm_fileselector_smart_del),
 
 EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_THEME_APPLY), 
_elm_fileselector_smart_theme),
+EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_EVENT), 
_elm_fileselector_smart_event),
 EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_FOCUS_NEXT_MANAGER_IS), 
_elm_fileselector_smart_focus_next_manager_is),
 
EO_OP_FUNC(ELM_WIDGET_ID(ELM_WIDGET_SUB_ID_FOCUS_DIRECTION_MANAGER_IS), 
_elm_fileselector_smart_focus_direction_manager_is),
 
diff --git a/src/lib/elc_fileselector.h b/src/lib/elc_fileselector.h
index 053e8de..4da2aec 100644
--- a/src/lib/elc_fileselector.h
+++ b/src/lib/elc_fileselector.h
@@ -52,6 +52,8 @@
  * - @c "done" - the user has clicked on the "ok" or "cancel"
  *  buttons (@c event_info is a pointer to the selection's
  *  path, a @b stringshared string)
+ * - @c "focused" - When the fileselector has received focus. (since 1.9)
+ * - @c "unfocused" - When the fileselector has lost focus. (since 1.9)
  *
  * For text, elm_layout_text_set() will work here on:
  * @li @c "ok" - OK button label if the ok button is set. @since 1.8
diff --git a/src/lib/elc_fileselector_entry.c b/src/lib/elc_fileselector_entry.c
index 0431189..4de0a17 100644
--- a/src/lib/elc_fileselector_entry.c
+++ b/src/lib/elc_fileselector_entry.c
@@ -387,7 +387,7 @@ _elm_fileselector_entry_smart_add(Eo *obj, void *_pd, 
va_list *list EINA_UNUSED)
 elm_layout_content_set(obj, "elm.swallow.entry", priv->entry);
  }
 
-   elm_widget_can_focus_set(obj, EINA_FALSE);
+   elm_widget_can_focus_set(obj, EINA_TRUE);
 
elm_layout_sizing_eval(obj);
 }

-- 




[EGIT] [core/elementary] master 01/02: fileselector_button: Added missing description about focus signals.

2014-01-22 Thread Daniel Juyung Seo
seoz pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=d7b396cfa863d03f75ec87af070b75176ceaa05f

commit d7b396cfa863d03f75ec87af070b75176ceaa05f
Author: Daniel Juyung Seo 
Date:   Wed Jan 22 18:25:55 2014 +0900

fileselector_button: Added missing description about focus signals.
---
 src/lib/elc_fileselector_button.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/lib/elc_fileselector_button.h 
b/src/lib/elc_fileselector_button.h
index 3f43c5b..d7d485f 100644
--- a/src/lib/elc_fileselector_button.h
+++ b/src/lib/elc_fileselector_button.h
@@ -37,6 +37,8 @@
  *   pointer comes as the @c event_info data (a stringshared
  *   string)
  * - @c "language,changed" - the program's language changed
+ * - @c "focused" - When the fileselector button has received focus. (since 
1.8)
+ * - @c "unfocused" - When the fileselector button has lost focus. (since 1.8)
  *
  * Default text parts of the fileselector_button widget that you can use for
  * are:

-- 




[E-devel] bug triage

2014-01-22 Thread The Rasterman
please look here:

https://phab.enlightenment.org/maniphest/query/F0gsESIdnqkQ/

there are a lot of bugs there which have no one assigned to them and/or not
project. they will get lost in the the ether if they are not properly
categorized and assigned to someone. i have just run through most of the
incoming queue and closed/assigned etc. all but 4. but there are bugs if other
priority levels that have no project and/or no person assigned. it's be really
nice if people went through this and ensured the bugs are assigned properly so
we don't miss them.

PLEASE add some custom queries to your tasks page (edit queries) and add some
like mine above - list ALL open bugs, and then some per project etc. that you
track so you can know what exists or not easily. we really need to work on
crushing our bug list down again.

-- 
- Codito, ergo sum - "I code, therefore I am" --
The Rasterman (Carsten Haitzler)ras...@rasterman.com


--
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [EGIT] [core/efl] master 01/01: Evas: Fix proxy rendering for animated objects

2014-01-22 Thread ChunEon Park
good catch!

thank you!


-Regards, Hermet-

-Original Message-
From: "Jean-Philippe Andre" 
To: ; 
Cc: 
Sent: 2014-01-22 (수) 17:02:53
Subject: [EGIT] [core/efl] master 01/01: Evas: Fix proxy rendering for animated 
objects

jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=981bdc16f6dbb2948b33b5979825a6a2f6f168f2

commit 981bdc16f6dbb2948b33b5979825a6a2f6f168f2
Author: Jean-Philippe Andre @samsung.com>
Date:   Wed Jan 22 16:40:50 2014 +0900

Evas: Fix proxy rendering for animated objects

An invalid optimization was implemented in proxy rendering.
We can't assume a proxy is a smart object.

Refer to 5cefa00d0ad0f54.

Fixes T832.

Proxy rendering is still broken when using cserve2... :(
---
 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 2c3c336..e1b4049 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -367,7 +367,7 @@ _evas_render_phase1_direct(Evas_Public_Data *e,
_evas_render_prev_cur_clip_cache_add(e, obj);
  if (obj->proxy->proxies)
{
-  if (obj->smart.smart && 
evas_object_smart_changed_get(eo_obj))
+  if (!obj->smart.smart  evas_object_smart_changed_get(eo_obj))
 {
EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, obj->proxy,
 Evas_Object_Proxy_Data, 
proxy_write)

-- 



--
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [apps/terminology] master 01/01: set EMOTION_ENGINE to tyls (and ethumb etc.) can use it inside shell

2014-01-22 Thread Carsten Haitzler
raster pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=870d592139b5e4d962154799183bbb46931e5924

commit 870d592139b5e4d962154799183bbb46931e5924
Author: Carsten Haitzler (Rasterman) 
Date:   Wed Jan 22 20:31:37 2014 +0900

set EMOTION_ENGINE to tyls (and ethumb etc.) can use it inside shell

this should fix T291
---
 src/bin/termio.c  | 19 ---
 src/bin/termpty.c |  8 +++-
 src/bin/termpty.h |  2 +-
 3 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/src/bin/termio.c b/src/bin/termio.c
index dbd686e..44b697c 100644
--- a/src/bin/termio.c
+++ b/src/bin/termio.c
@@ -4430,7 +4430,16 @@ termio_add(Evas_Object *parent, Config *config, const 
char *cmd, Eina_Bool login
Evas *e;
Evas_Object *obj, *g;
Termio *sd;
-
+   char *modules[] =
+ {
+NULL,
+"gstreamer",
+"xine",
+"vlc",
+"gstreamer1"
+ };
+   char *mod = NULL;
+   
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
e = evas_object_evas_get(parent);
if (!e) return NULL;
@@ -4440,6 +4449,10 @@ termio_add(Evas_Object *parent, Config *config, const 
char *cmd, Eina_Bool login
sd = evas_object_smart_data_get(obj);
EINA_SAFETY_ON_NULL_RETURN_VAL(sd, obj);
 
+   if ((config->vidmod >= 0) &&
+   (config->vidmod < (int)EINA_C_ARRAY_LENGTH(modules)))
+ mod = modules[config->vidmod];
+
termio_config_set(obj, config);
 
sd->glayer = g = elm_gesture_layer_add(parent);
@@ -4470,9 +4483,9 @@ termio_add(Evas_Object *parent, Config *config, const 
char *cmd, Eina_Bool login
_smart_cb_drag_pos, obj,
_smart_cb_drop, obj);
 #endif
-   
+
sd->pty = termpty_new(cmd, login_shell, cd, w, h, config->scrollback,
- config->xterm_256color, config->erase_is_del);
+ config->xterm_256color, config->erase_is_del, mod);
if (!sd->pty)
  {
 ERR("Cannot allocate termpty");
diff --git a/src/bin/termpty.c b/src/bin/termpty.c
index 5b6b394..d7899eb 100644
--- a/src/bin/termpty.c
+++ b/src/bin/termpty.c
@@ -272,7 +272,7 @@ _limit_coord(Termpty *ty, Termstate *state)
 Termpty *
 termpty_new(const char *cmd, Eina_Bool login_shell, const char *cd,
 int w, int h, int backscroll, Eina_Bool xterm_256color,
-Eina_Bool erase_is_del)
+Eina_Bool erase_is_del, const char *emotion_mod)
 {
Termpty *ty;
const char *pty;
@@ -369,6 +369,7 @@ termpty_new(const char *cmd, Eina_Bool login_shell, const 
char *cd,
 const char *args[4] = {NULL, NULL, NULL, NULL};
 Eina_Bool needs_shell;
 int i;
+char buf[256];
 
 if (cd)
   {
@@ -443,6 +444,11 @@ termpty_new(const char *cmd, Eina_Bool login_shell, const 
char *cd,
  putenv("TERM=xterm");
   }
 putenv("XTERM_256_COLORS=1");
+if (emotion_mod)
+  {
+ snprintf(buf, sizeof(buf), "EMOTION_ENGINE=%s", emotion_mod);
+ putenv(buf);
+  }
 if (!login_shell)
   execvp(args[0], (char *const *)args);
 else
diff --git a/src/bin/termpty.h b/src/bin/termpty.h
index e818186..31fa456 100644
--- a/src/bin/termpty.h
+++ b/src/bin/termpty.h
@@ -208,7 +208,7 @@ void   termpty_shutdown(void);
 
 Termpty   *termpty_new(const char *cmd, Eina_Bool login_shell, const char *cd,
   int w, int h, int backscroll, Eina_Bool xterm_256color,
-  Eina_Bool erase_is_del);
+  Eina_Bool erase_is_del, const char *emotion_mod);
 void   termpty_free(Termpty *ty);
 void   termpty_cellcomp_freeze(Termpty *ty);
 void   termpty_cellcomp_thaw(Termpty *ty);

-- 




[EGIT] [core/elementary] master 01/01: [naviframe] Fix to hide the previous view by emitting signal

2014-01-22 Thread Jaehyun Cho
hermet pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=e3784b68e01849a99e06f31e02192ffb19d1275c

commit e3784b68e01849a99e06f31e02192ffb19d1275c
Author: Jaehyun Cho 
Date:   Wed Jan 22 22:07:30 2014 +0900

[naviframe] Fix to hide the previous view by emitting signal

Summary:
Previously, previous view was hidden by evas_object_hide.
 However, this method is no longer correct because size calculation 
of naviframe causes evas_object_show.
 Now, previous view is hidden by emitting signal to naviframe theme 
and clipper hides the previous view.

Reviewers: Hermet

Reviewed By: Hermet

CC: seoz

Differential Revision: https://phab.enlightenment.org/D484
---
 data/themes/edc/elm/naviframe.edc |  6 +-
 src/lib/elc_naviframe.c   | 17 ++---
 2 files changed, 11 insertions(+), 12 deletions(-)

diff --git a/data/themes/edc/elm/naviframe.edc 
b/data/themes/edc/elm/naviframe.edc
index 943294b..2697ad4 100644
--- a/data/themes/edc/elm/naviframe.edc
+++ b/data/themes/edc/elm/naviframe.edc
@@ -551,7 +551,11 @@ group { name: "elm/naviframe/item/basic/default";
  target: "elm.swallow.content";
  target: "elements_clip";
   }
-  
+  program {
+ signal: "elm,state,invisible"; source: "elm";
+ action: STATE_SET "hidden" 0.0;
+ target: "elements_clip";
+  }
   /* current page is being pushed: [previous]<[current] */
   program {
  signal: "elm,state,cur,pushed"; source: "elm";
diff --git a/src/lib/elc_naviframe.c b/src/lib/elc_naviframe.c
index 7441a02..c29a0b3 100644
--- a/src/lib/elc_naviframe.c
+++ b/src/lib/elc_naviframe.c
@@ -529,7 +529,6 @@ _item_del_pre_hook(Elm_Object_Item *it)
 if (sd->freeze_events)
   evas_object_freeze_events_set(VIEW(prev_it), EINA_FALSE);
 _resize_object_reset(WIDGET(prev_it), prev_it);
-evas_object_show(VIEW(prev_it));
 
 _prev_page_focus_recover(prev_it);
 
@@ -1071,8 +1070,7 @@ _on_item_push_finished(void *data,
 
ELM_NAVIFRAME_DATA_GET(WIDGET(it), sd);
 
-   evas_object_hide(VIEW(it));
-
+   elm_object_signal_emit(VIEW(it), "elm,state,invisible", "elm");
elm_widget_tree_unfocusable_set(VIEW(it), it->unfocusable);
 
if (sd->freeze_events)
@@ -1522,8 +1520,6 @@ _item_push(Eo *obj, void *_pd, va_list *list)
   title_label, prev_btn, next_btn, content, item_style);
if (!it) return;
 
-   evas_object_show(VIEW(it));
-
if (prev_it) elm_widget_focused_object_clear(VIEW(prev_it));
_resize_object_reset(obj, it);
if (prev_it)
@@ -1604,6 +1600,8 @@ _item_insert_before(Eo *obj, void *_pd, va_list *list)
(sd->stack, EINA_INLIST_GET(it),
EINA_INLIST_GET(((Elm_Naviframe_Item *)before)));
 
+   elm_object_signal_emit(VIEW(it), "elm,state,invisible", "elm");
+
elm_layout_sizing_eval(obj);
 
*ret = (Elm_Object_Item *)it;
@@ -1656,12 +1654,13 @@ _item_insert_after(Eo *obj, void *_pd, va_list *list)
  {
 elm_widget_focused_object_clear(VIEW(after));
 _resize_object_reset(obj, it);
-evas_object_show(VIEW(it));
-evas_object_hide(VIEW(after));
+
 if (elm_object_focus_allow_get(VIEW(it)))
   elm_object_focus_set(VIEW(it), EINA_TRUE);
 else
   elm_object_focus_set(WIDGET(it), EINA_TRUE);
+elm_object_signal_emit(VIEW(it), "elm,state,visible", "elm");
+elm_object_signal_emit(VIEW(after), "elm,state,invisible", "elm");
  }
 
elm_layout_sizing_eval(obj);
@@ -1732,7 +1731,6 @@ _item_pop(Eo *obj, void *_pd, va_list *list)
 
 /* these 2 signals MUST take place simultaneously */
 elm_object_signal_emit(VIEW(it), "elm,state,cur,popped", "elm");
-evas_object_show(VIEW(prev_it));
 elm_object_signal_emit(VIEW(prev_it), "elm,state,prev,popped", "elm");
 
 edje_object_message_signal_process(elm_layout_edje_get(VIEW(it)));
@@ -1817,9 +1815,6 @@ elm_naviframe_item_promote(Elm_Object_Item *it)
  }
 
elm_object_signal_emit(VIEW(prev_it), "elm,state,cur,pushed", "elm");
-
-   evas_object_show(VIEW(nit));
-
elm_object_signal_emit(VIEW(nit), "elm,state,new,pushed", "elm");
 
edje_object_message_signal_process(elm_layout_edje_get(VIEW(prev_it)));

-- 




[EGIT] [core/elementary] master 01/01: [naviframe] do not size evaluate during deletion

2014-01-22 Thread Jaehyun Cho
hermet pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=502a62e19e9012e03475e537c4cb3f865522747f

commit 502a62e19e9012e03475e537c4cb3f865522747f
Author: Jaehyun Cho 
Date:   Wed Jan 22 22:09:16 2014 +0900

[naviframe] do not size evaluate during deletion

Summary: Author: Shinwoo Kim   2012-12-11 20:13:39

Reviewers: Hermet

CC: seoz

Differential Revision: https://phab.enlightenment.org/D485
---
 src/lib/elc_naviframe.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/elc_naviframe.c b/src/lib/elc_naviframe.c
index c29a0b3..a2a1f85 100644
--- a/src/lib/elc_naviframe.c
+++ b/src/lib/elc_naviframe.c
@@ -874,6 +874,7 @@ _elm_naviframe_smart_sizing_eval(Eo *obj, void *_pd, 
va_list *list EINA_UNUSED)
 
Elm_Naviframe_Smart_Data *sd = _pd;
 
+   if (sd->on_deletion) return;
if (!sd->stack) return;
 
top = (EINA_INLIST_CONTAINER_GET(sd->stack->last, Elm_Naviframe_Item));
@@ -1399,7 +1400,6 @@ _elm_naviframe_smart_del(Eo *obj, void *_pd, va_list 
*list EINA_UNUSED)
 elm_widget_item_del(it);
  }
 
-   sd->on_deletion = EINA_FALSE;
evas_object_del(sd->dummy_edje);
 
eo_do_super(obj, MY_CLASS, evas_obj_smart_del());

-- 




[EGIT] [core/elementary] master 01/01: [naviframe] Fix to enable item deletion in pop_cb

2014-01-22 Thread Jaehyun Cho
hermet pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=bb39f8616f682af873ccf407086f8ce092369a11

commit bb39f8616f682af873ccf407086f8ce092369a11
Author: Jaehyun Cho 
Date:   Wed Jan 22 22:13:51 2014 +0900

[naviframe] Fix to enable item deletion in pop_cb

Summary: Fix to enable item deletion in the registered pop_cb function

Reviewers: Hermet

Reviewed By: Hermet

CC: seoz

Differential Revision: https://phab.enlightenment.org/D487
---
 src/lib/elc_naviframe.c| 15 +++
 src/lib/elm_widget_naviframe.h |  2 ++
 2 files changed, 17 insertions(+)

diff --git a/src/lib/elc_naviframe.c b/src/lib/elc_naviframe.c
index a2a1f85..c89fd0a 100644
--- a/src/lib/elc_naviframe.c
+++ b/src/lib/elc_naviframe.c
@@ -504,6 +504,9 @@ _item_del_pre_hook(Elm_Object_Item *it)
nit = (Elm_Naviframe_Item *)it;
ELM_NAVIFRAME_DATA_GET(WIDGET(nit), sd);
 
+   nit->delete_me = EINA_TRUE;
+   if (nit->ref > 0) return EINA_FALSE;
+
ecore_animator_del(nit->animator);
 
top = (it == elm_naviframe_top_item_get(WIDGET(nit)));
@@ -1696,14 +1699,26 @@ _item_pop(Eo *obj, void *_pd, va_list *list)
if (it->popping) return;
it->popping = EINA_TRUE;
 
+   evas_object_ref(obj);
if (it->pop_cb)
  {
+it->ref++;
 if (!it->pop_cb(it->pop_data, (Elm_Object_Item *)it))
   {
+ it->ref--;
+ if (it->delete_me)
+   {
+  _item_del_pre_hook(it);
+  _elm_widget_item_free(it);
+   }
  it->popping = EINA_FALSE;
+ evas_object_unref(obj);
+
  return;
   }
+it->ref--;
  }
+   evas_object_unref(obj);
 
if (sd->preserve)
  content = it->content;
diff --git a/src/lib/elm_widget_naviframe.h b/src/lib/elm_widget_naviframe.h
index 83809f9..1b4d3fc 100644
--- a/src/lib/elm_widget_naviframe.h
+++ b/src/lib/elm_widget_naviframe.h
@@ -57,6 +57,8 @@ struct _Elm_Naviframe_Item
Eina_Booltitle_enabled : 1;
Eina_Boolunfocusable : 1;
Eina_Boolpopping : 1;
+   Eina_Booldelete_me : 1;
+   int  ref;
 };
 
 typedef struct _Elm_Naviframe_Content_Item_Pair 
Elm_Naviframe_Content_Item_Pair;

-- 




Re: [E-devel] [EGIT] [core/elementary] master 01/01: [naviframe] Fix to enable item deletion in pop_cb

2014-01-22 Thread Gustavo Lima Chaves
* Jaehyun Cho  [2014-01-22 05:14:53 -0800]:

> hermet pushed a commit to branch master.
> 
> http://git.enlightenment.org/core/elementary.git/commit/?id=bb39f8616f682af873ccf407086f8ce092369a11
> 
> commit bb39f8616f682af873ccf407086f8ce092369a11
> Author: Jaehyun Cho 
> Date:   Wed Jan 22 22:13:51 2014 +0900
> 
> [naviframe] Fix to enable item deletion in pop_cb
> 
> Summary: Fix to enable item deletion in the registered pop_cb function
> 
> Reviewers: Hermet
> 
> Reviewed By: Hermet
> 
> CC: seoz
> 
> Differential Revision: https://phab.enlightenment.org/D487
> ---
>  src/lib/elc_naviframe.c| 15 +++
>  src/lib/elm_widget_naviframe.h |  2 ++
>  2 files changed, 17 insertions(+)
> 
> diff --git a/src/lib/elc_naviframe.c b/src/lib/elc_naviframe.c
> index a2a1f85..c89fd0a 100644
> --- a/src/lib/elc_naviframe.c
> +++ b/src/lib/elc_naviframe.c
> @@ -504,6 +504,9 @@ _item_del_pre_hook(Elm_Object_Item *it)
> nit = (Elm_Naviframe_Item *)it;
> ELM_NAVIFRAME_DATA_GET(WIDGET(nit), sd);
>  
> +   nit->delete_me = EINA_TRUE;
> +   if (nit->ref > 0) return EINA_FALSE;
> +
> ecore_animator_del(nit->animator);
>  
> top = (it == elm_naviframe_top_item_get(WIDGET(nit)));
> @@ -1696,14 +1699,26 @@ _item_pop(Eo *obj, void *_pd, va_list *list)
> if (it->popping) return;
> it->popping = EINA_TRUE;
>  
> +   evas_object_ref(obj);
> if (it->pop_cb)
>   {
> +it->ref++;
>  if (!it->pop_cb(it->pop_data, (Elm_Object_Item *)it))
>{
> + it->ref--;
> + if (it->delete_me)
> +   {
> +  _item_del_pre_hook(it);
> +  _elm_widget_item_free(it);

Would you please exchange all calls to this couple of functions by the
equally working elm_widget_item_del()?

> +   }
>   it->popping = EINA_FALSE;
> + evas_object_unref(obj);
> +
>   return;
>}
> +it->ref--;
>   }
> +   evas_object_unref(obj);
>  
> if (sd->preserve)
>   content = it->content;
> diff --git a/src/lib/elm_widget_naviframe.h b/src/lib/elm_widget_naviframe.h
> index 83809f9..1b4d3fc 100644
> --- a/src/lib/elm_widget_naviframe.h
> +++ b/src/lib/elm_widget_naviframe.h
> @@ -57,6 +57,8 @@ struct _Elm_Naviframe_Item
> Eina_Booltitle_enabled : 1;
> Eina_Boolunfocusable : 1;
> Eina_Boolpopping : 1;
> +   Eina_Booldelete_me : 1;
> +   int  ref;
>  };
>  
>  typedef struct _Elm_Naviframe_Content_Item_Pair 
> Elm_Naviframe_Content_Item_Pair;
> 
> -- 
> 
> 

-- 
Gustavo Lima Chaves
Senior Developer @ Intel - Open Source Technology Center

--
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [EGIT] [core/efl] master 01/01: okay, bring back xrandr < 1.4 compat for ecore_x_randr_output_name_get

2014-01-22 Thread Sebastian Dransfeld
On 01/21/2014 10:09 PM, Mike Blumenkrantz wrote:
> discomfitor pushed a commit to branch master.
>
> http://git.enlightenment.org/core/efl.git/commit/?id=052fc85cd34aec41d50e5d8333bac6ee9ba9c7d6
>
> commit 052fc85cd34aec41d50e5d8333bac6ee9ba9c7d6
> Author: Mike Blumenkrantz 
> Date:   Tue Jan 21 16:07:38 2014 -0500
>
>  okay, bring back xrandr < 1.4 compat for ecore_x_randr_output_name_get
>  
>  apparently I read the commit order wrong and this fix went in for 1.4.0, 
> not 1.3.2, which means anyone who has 1.3.2 has been having lots of fun 
> crashes for the past 24 hours
> ---
>   configure.ac |  4 +---
>   src/lib/ecore_x/xlib/ecore_x_randr.c | 15 +++
>   2 files changed, 12 insertions(+), 7 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index 2d2e377..373ea6d 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -2875,9 +2875,7 @@ if test "x${want_x11_xlib}" = "xyes" ; then
>  ECORE_CHECK_X_EXTENSION([Xtest], [XTest.h], [Xtst], [XTestFakeKeyEvent])
>  ECORE_CHECK_X_EXTENSION([Xss], [scrnsaver.h], [Xss], 
> [XScreenSaverSelectInput])
>   
> -   if test echo "$ECORE_X_LIBS" | grep -q Xrandr ; then
> -  PKG_CHECK_EXISTS([xrandr > 1.3.1], [], [AC_MSG_ERROR([Xrandr >= 1.3.1 
> required])])
> -   fi
> +   PKG_CHECK_EXISTS([xrandr > 1.3.2], [AC_DEFINE([XRANDR_GOOD], [1], [good 
> xrandr])], [])

Shouldn't the test be >= 1.4.0 then?

S.


--
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [EGIT] [core/efl] master 01/01: okay, bring back xrandr < 1.4 compat for ecore_x_randr_output_name_get

2014-01-22 Thread Sebastian Dransfeld
I got a 1920x1200 monitor and a 1600x900 laptop, works like a charm. But 
as I said, I don't have time to fix this atm, so if it sucks to much, 
revert.

S.

On 01/21/2014 10:35 PM, Chris Michael wrote:
> Welcome to the wonderful world of XRandr version vs driver version vs E
> version vs .. the world ;)
>
> Lots of fun waiting for you and Seb here ;)
>
> BTW, YOU BROKE MY RANDR STUFF !!!
>
> Configuring monitors in the dialog is totally borked now :( 2 monitors
> (1600x9000) and (1920x1080) in a side-by-side config does not work
> anymore !!!
>
> The 1600 is fine. The 1920 ends up w/ half a screen !!
>
> FIX IT !!! You broke it, you bought it ;)
>
> dh
>
>
>
> On 21/01/14 21:09, Mike Blumenkrantz wrote:
>> discomfitor pushed a commit to branch master.
>>
>> http://git.enlightenment.org/core/efl.git/commit/?id=052fc85cd34aec41d50e5d8333bac6ee9ba9c7d6
>>
>> commit 052fc85cd34aec41d50e5d8333bac6ee9ba9c7d6
>> Author: Mike Blumenkrantz 
>> Date:   Tue Jan 21 16:07:38 2014 -0500
>>
>>   okay, bring back xrandr < 1.4 compat for ecore_x_randr_output_name_get
>>
>>   apparently I read the commit order wrong and this fix went in for 
>> 1.4.0, not 1.3.2, which means anyone who has 1.3.2 has been having lots of 
>> fun crashes for the past 24 hours
>> ---
>>configure.ac |  4 +---
>>src/lib/ecore_x/xlib/ecore_x_randr.c | 15 +++
>>2 files changed, 12 insertions(+), 7 deletions(-)
>>
>> diff --git a/configure.ac b/configure.ac
>> index 2d2e377..373ea6d 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -2875,9 +2875,7 @@ if test "x${want_x11_xlib}" = "xyes" ; then
>>   ECORE_CHECK_X_EXTENSION([Xtest], [XTest.h], [Xtst], 
>> [XTestFakeKeyEvent])
>>   ECORE_CHECK_X_EXTENSION([Xss], [scrnsaver.h], [Xss], 
>> [XScreenSaverSelectInput])
>>
>> -   if test echo "$ECORE_X_LIBS" | grep -q Xrandr ; then
>> -  PKG_CHECK_EXISTS([xrandr > 1.3.1], [], [AC_MSG_ERROR([Xrandr >= 1.3.1 
>> required])])
>> -   fi
>> +   PKG_CHECK_EXISTS([xrandr > 1.3.2], [AC_DEFINE([XRANDR_GOOD], [1], [good 
>> xrandr])], [])
>>
>>   if test "${want_xpresent}" = "yes"; then
>>  ECORE_CHECK_X_EXTENSION([Xpresent], [Xpresent.h], [Xpresent], 
>> [XPresentQueryExtension])
>> diff --git a/src/lib/ecore_x/xlib/ecore_x_randr.c 
>> b/src/lib/ecore_x/xlib/ecore_x_randr.c
>> index b47..db1f109 100644
>> --- a/src/lib/ecore_x/xlib/ecore_x_randr.c
>> +++ b/src/lib/ecore_x/xlib/ecore_x_randr.c
>> @@ -2206,10 +2206,17 @@ ecore_x_randr_output_name_get(Ecore_X_Window root, 
>> Ecore_X_Randr_Output output,
>>  {
>> if (info->name)
>>   {
>> -  ret = malloc(info->nameLen + 1);
>> -  memcpy(ret, info->name, info->nameLen);
>> -  ret[info->nameLen] = 0;
>> -  if (len) *len = info->nameLen;
>> +  size_t s;
>> +#ifdef XRANDR_GOOD
>> +  s = info->nameLen;
>> +#else
>> +  /* pre 1.4.0 does not fill in info->nameLen */
>> +  s = strlen(info->name);
>> +#endif
>> +  ret = malloc(s + 1);
>> +  memcpy(ret, info->name, s);
>> +  ret[s] = 0;
>> +  if (len) *len = s;
>>   }
>>
>> /* free the output info */
>>
>
> --
> CenturyLink Cloud: The Leader in Enterprise Cloud Services.
> Learn Why More Businesses Are Choosing CenturyLink Cloud For
> Critical Workloads, Development Environments & Everything In Between.
> Get a Quote or Start a Free Trial Today.
> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


--
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [EGIT] [core/elementary] master 01/01: [naviframe] Fix to enable item deletion in pop_cb

2014-01-22 Thread Daniel Juyung Seo
On Wed, Jan 22, 2014 at 10:17 PM, Gustavo Lima Chaves
wrote:

> * Jaehyun Cho  [2014-01-22 05:14:53 -0800]:
>
> > hermet pushed a commit to branch master.
> >
> >
> http://git.enlightenment.org/core/elementary.git/commit/?id=bb39f8616f682af873ccf407086f8ce092369a11
> >
> > commit bb39f8616f682af873ccf407086f8ce092369a11
> > Author: Jaehyun Cho 
> > Date:   Wed Jan 22 22:13:51 2014 +0900
> >
> > [naviframe] Fix to enable item deletion in pop_cb
> >
> > Summary: Fix to enable item deletion in the registered pop_cb
> function
> >
> > Reviewers: Hermet
> >
> > Reviewed By: Hermet
> >
> > CC: seoz
> >
> > Differential Revision: https://phab.enlightenment.org/D487
> > ---
> >  src/lib/elc_naviframe.c| 15 +++
> >  src/lib/elm_widget_naviframe.h |  2 ++
> >  2 files changed, 17 insertions(+)
> >
> > diff --git a/src/lib/elc_naviframe.c b/src/lib/elc_naviframe.c
> > index a2a1f85..c89fd0a 100644
> > --- a/src/lib/elc_naviframe.c
> > +++ b/src/lib/elc_naviframe.c
> > @@ -504,6 +504,9 @@ _item_del_pre_hook(Elm_Object_Item *it)
> > nit = (Elm_Naviframe_Item *)it;
> > ELM_NAVIFRAME_DATA_GET(WIDGET(nit), sd);
> >
> > +   nit->delete_me = EINA_TRUE;
> > +   if (nit->ref > 0) return EINA_FALSE;
> > +
> > ecore_animator_del(nit->animator);
> >
> > top = (it == elm_naviframe_top_item_get(WIDGET(nit)));
> > @@ -1696,14 +1699,26 @@ _item_pop(Eo *obj, void *_pd, va_list *list)
> > if (it->popping) return;
> > it->popping = EINA_TRUE;
> >
> > +   evas_object_ref(obj);
> > if (it->pop_cb)
> >   {
> > +it->ref++;
> >  if (!it->pop_cb(it->pop_data, (Elm_Object_Item *)it))
> >{
> > + it->ref--;
> > + if (it->delete_me)
> > +   {
> > +  _item_del_pre_hook(it);
> > +  _elm_widget_item_free(it);
>
> Would you please exchange all calls to this couple of functions by the
> equally working elm_widget_item_del()?
>
>
I just fixed it.
Jaehyun, please refer
https://git.enlightenment.org/core/elementary.git/commit/?id=c38ba2ee7c4bf30395fb3f67ea9cc8d3f06c1d45

Thanks.

Daniel Juyung Seo (SeoZ)



> > +   }
> >   it->popping = EINA_FALSE;
> > + evas_object_unref(obj);
> > +
> >   return;
> >}
> > +it->ref--;
> >   }
> > +   evas_object_unref(obj);
> >
> > if (sd->preserve)
> >   content = it->content;
> > diff --git a/src/lib/elm_widget_naviframe.h
> b/src/lib/elm_widget_naviframe.h
> > index 83809f9..1b4d3fc 100644
> > --- a/src/lib/elm_widget_naviframe.h
> > +++ b/src/lib/elm_widget_naviframe.h
> > @@ -57,6 +57,8 @@ struct _Elm_Naviframe_Item
> > Eina_Booltitle_enabled : 1;
> > Eina_Boolunfocusable : 1;
> > Eina_Boolpopping : 1;
> > +   Eina_Booldelete_me : 1;
> > +   int  ref;
> >  };
> >
> >  typedef struct _Elm_Naviframe_Content_Item_Pair
> Elm_Naviframe_Content_Item_Pair;
> >
> > --
> >
> >
>
> --
> Gustavo Lima Chaves
> Senior Developer @ Intel - Open Source Technology Center
>
>
> --
> CenturyLink Cloud: The Leader in Enterprise Cloud Services.
> Learn Why More Businesses Are Choosing CenturyLink Cloud For
> Critical Workloads, Development Environments & Everything In Between.
> Get a Quote or Start a Free Trial Today.
>
> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>
--
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/elementary] master 01/01: naviframe: Use elm_widget_item_del() when you want to delete the item data.

2014-01-22 Thread Daniel Juyung Seo
seoz pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=c38ba2ee7c4bf30395fb3f67ea9cc8d3f06c1d45

commit c38ba2ee7c4bf30395fb3f67ea9cc8d3f06c1d45
Author: Daniel Juyung Seo 
Date:   Wed Jan 22 23:33:16 2014 +0900

naviframe: Use elm_widget_item_del() when you want to delete the item
data.

It will call del_pre_func and free the item data.
Special thanks to glima for the report.
---
 src/lib/elc_naviframe.c | 5 +
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/src/lib/elc_naviframe.c b/src/lib/elc_naviframe.c
index c89fd0a..53095c8 100644
--- a/src/lib/elc_naviframe.c
+++ b/src/lib/elc_naviframe.c
@@ -1707,10 +1707,7 @@ _item_pop(Eo *obj, void *_pd, va_list *list)
   {
  it->ref--;
  if (it->delete_me)
-   {
-  _item_del_pre_hook(it);
-  _elm_widget_item_free(it);
-   }
+   elm_widget_item_del(it);
  it->popping = EINA_FALSE;
  evas_object_unref(obj);
 

-- 




Re: [E-devel] [EGIT] [core/efl] master 01/01: okay, bring back xrandr < 1.4 compat for ecore_x_randr_output_name_get

2014-01-22 Thread Sebastian Dransfeld
Using HDMI on laptop here.

S.

On 01/22/2014 03:32 PM, Christopher Michael wrote:
> Well, the issue does not happen on my work machines using both VGA and 
> a DVI connectionHowever it does happen at home on the laptop using 
> an HDMI connection. Have not had time to dig into it myself yet either
>
> dh
>
> On 01/22/2014 02:01 PM, Sebastian Dransfeld wrote:
>> I got a 1920x1200 monitor and a 1600x900 laptop, works like a charm. But
>> as I said, I don't have time to fix this atm, so if it sucks to much,
>> revert.
>>
>> S.
>>
>> On 01/21/2014 10:35 PM, Chris Michael wrote:
>>> Welcome to the wonderful world of XRandr version vs driver version vs E
>>> version vs .. the world ;)
>>>
>>> Lots of fun waiting for you and Seb here ;)
>>>
>>> BTW, YOU BROKE MY RANDR STUFF !!!
>>>
>>> Configuring monitors in the dialog is totally borked now :( 2 monitors
>>> (1600x9000) and (1920x1080) in a side-by-side config does not work
>>> anymore !!!
>>>
>>> The 1600 is fine. The 1920 ends up w/ half a screen !!
>>>
>>> FIX IT !!! You broke it, you bought it ;)
>>>
>>> dh
>>>
>>>
>>>
>>> On 21/01/14 21:09, Mike Blumenkrantz wrote:
 discomfitor pushed a commit to branch master.

 http://git.enlightenment.org/core/efl.git/commit/?id=052fc85cd34aec41d50e5d8333bac6ee9ba9c7d6
  


 commit 052fc85cd34aec41d50e5d8333bac6ee9ba9c7d6
 Author: Mike Blumenkrantz 
 Date:   Tue Jan 21 16:07:38 2014 -0500

okay, bring back xrandr < 1.4 compat for 
 ecore_x_randr_output_name_get

apparently I read the commit order wrong and this fix went 
 in for 1.4.0, not 1.3.2, which means anyone who has 1.3.2 has been 
 having lots of fun crashes for the past 24 hours
 ---
 configure.ac |  4 +---
 src/lib/ecore_x/xlib/ecore_x_randr.c | 15 +++
 2 files changed, 12 insertions(+), 7 deletions(-)

 diff --git a/configure.ac b/configure.ac
 index 2d2e377..373ea6d 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -2875,9 +2875,7 @@ if test "x${want_x11_xlib}" = "xyes" ; then
ECORE_CHECK_X_EXTENSION([Xtest], [XTest.h], [Xtst], 
 [XTestFakeKeyEvent])
ECORE_CHECK_X_EXTENSION([Xss], [scrnsaver.h], [Xss], 
 [XScreenSaverSelectInput])

 -   if test echo "$ECORE_X_LIBS" | grep -q Xrandr ; then
 -  PKG_CHECK_EXISTS([xrandr > 1.3.1], [], [AC_MSG_ERROR([Xrandr 
 >= 1.3.1 required])])
 -   fi
 +   PKG_CHECK_EXISTS([xrandr > 1.3.2], [AC_DEFINE([XRANDR_GOOD], 
 [1], [good xrandr])], [])

if test "${want_xpresent}" = "yes"; then
   ECORE_CHECK_X_EXTENSION([Xpresent], [Xpresent.h], 
 [Xpresent], [XPresentQueryExtension])
 diff --git a/src/lib/ecore_x/xlib/ecore_x_randr.c 
 b/src/lib/ecore_x/xlib/ecore_x_randr.c
 index b47..db1f109 100644
 --- a/src/lib/ecore_x/xlib/ecore_x_randr.c
 +++ b/src/lib/ecore_x/xlib/ecore_x_randr.c
 @@ -2206,10 +2206,17 @@ 
 ecore_x_randr_output_name_get(Ecore_X_Window root, 
 Ecore_X_Randr_Output output,
   {
  if (info->name)
{
 -  ret = malloc(info->nameLen + 1);
 -  memcpy(ret, info->name, info->nameLen);
 -  ret[info->nameLen] = 0;
 -  if (len) *len = info->nameLen;
 +  size_t s;
 +#ifdef XRANDR_GOOD
 +  s = info->nameLen;
 +#else
 +  /* pre 1.4.0 does not fill in info->nameLen */
 +  s = strlen(info->name);
 +#endif
 +  ret = malloc(s + 1);
 +  memcpy(ret, info->name, s);
 +  ret[s] = 0;
 +  if (len) *len = s;
}

  /* free the output info */

>>>
>
>


--
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [EGIT] [core/efl] master 01/01: okay, bring back xrandr < 1.4 compat for ecore_x_randr_output_name_get

2014-01-22 Thread Christopher Michael
Well, the issue does not happen on my work machines using both VGA and a 
DVI connectionHowever it does happen at home on the laptop using an 
HDMI connection. Have not had time to dig into it myself yet either

dh

On 01/22/2014 02:01 PM, Sebastian Dransfeld wrote:
> I got a 1920x1200 monitor and a 1600x900 laptop, works like a charm. But
> as I said, I don't have time to fix this atm, so if it sucks to much,
> revert.
>
> S.
>
> On 01/21/2014 10:35 PM, Chris Michael wrote:
>> Welcome to the wonderful world of XRandr version vs driver version vs E
>> version vs .. the world ;)
>>
>> Lots of fun waiting for you and Seb here ;)
>>
>> BTW, YOU BROKE MY RANDR STUFF !!!
>>
>> Configuring monitors in the dialog is totally borked now :( 2 monitors
>> (1600x9000) and (1920x1080) in a side-by-side config does not work
>> anymore !!!
>>
>> The 1600 is fine. The 1920 ends up w/ half a screen !!
>>
>> FIX IT !!! You broke it, you bought it ;)
>>
>> dh
>>
>>
>>
>> On 21/01/14 21:09, Mike Blumenkrantz wrote:
>>> discomfitor pushed a commit to branch master.
>>>
>>> http://git.enlightenment.org/core/efl.git/commit/?id=052fc85cd34aec41d50e5d8333bac6ee9ba9c7d6
>>>
>>> commit 052fc85cd34aec41d50e5d8333bac6ee9ba9c7d6
>>> Author: Mike Blumenkrantz 
>>> Date:   Tue Jan 21 16:07:38 2014 -0500
>>>
>>>okay, bring back xrandr < 1.4 compat for 
>>> ecore_x_randr_output_name_get
>>>
>>>apparently I read the commit order wrong and this fix went in for 
>>> 1.4.0, not 1.3.2, which means anyone who has 1.3.2 has been having lots of 
>>> fun crashes for the past 24 hours
>>> ---
>>> configure.ac |  4 +---
>>> src/lib/ecore_x/xlib/ecore_x_randr.c | 15 +++
>>> 2 files changed, 12 insertions(+), 7 deletions(-)
>>>
>>> diff --git a/configure.ac b/configure.ac
>>> index 2d2e377..373ea6d 100644
>>> --- a/configure.ac
>>> +++ b/configure.ac
>>> @@ -2875,9 +2875,7 @@ if test "x${want_x11_xlib}" = "xyes" ; then
>>>ECORE_CHECK_X_EXTENSION([Xtest], [XTest.h], [Xtst], 
>>> [XTestFakeKeyEvent])
>>>ECORE_CHECK_X_EXTENSION([Xss], [scrnsaver.h], [Xss], 
>>> [XScreenSaverSelectInput])
>>>
>>> -   if test echo "$ECORE_X_LIBS" | grep -q Xrandr ; then
>>> -  PKG_CHECK_EXISTS([xrandr > 1.3.1], [], [AC_MSG_ERROR([Xrandr >= 
>>> 1.3.1 required])])
>>> -   fi
>>> +   PKG_CHECK_EXISTS([xrandr > 1.3.2], [AC_DEFINE([XRANDR_GOOD], [1], [good 
>>> xrandr])], [])
>>>
>>>if test "${want_xpresent}" = "yes"; then
>>>   ECORE_CHECK_X_EXTENSION([Xpresent], [Xpresent.h], [Xpresent], 
>>> [XPresentQueryExtension])
>>> diff --git a/src/lib/ecore_x/xlib/ecore_x_randr.c 
>>> b/src/lib/ecore_x/xlib/ecore_x_randr.c
>>> index b47..db1f109 100644
>>> --- a/src/lib/ecore_x/xlib/ecore_x_randr.c
>>> +++ b/src/lib/ecore_x/xlib/ecore_x_randr.c
>>> @@ -2206,10 +2206,17 @@ ecore_x_randr_output_name_get(Ecore_X_Window root, 
>>> Ecore_X_Randr_Output output,
>>>   {
>>>  if (info->name)
>>>{
>>> -  ret = malloc(info->nameLen + 1);
>>> -  memcpy(ret, info->name, info->nameLen);
>>> -  ret[info->nameLen] = 0;
>>> -  if (len) *len = info->nameLen;
>>> +  size_t s;
>>> +#ifdef XRANDR_GOOD
>>> +  s = info->nameLen;
>>> +#else
>>> +  /* pre 1.4.0 does not fill in info->nameLen */
>>> +  s = strlen(info->name);
>>> +#endif
>>> +  ret = malloc(s + 1);
>>> +  memcpy(ret, info->name, s);
>>> +  ret[s] = 0;
>>> +  if (len) *len = s;
>>>}
>>>
>>>  /* free the output info */
>>>
>>



--
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/elementary] master 01/01: theme - win shadow - stack under all so pulsing icon is not BELOW the shadow.

2014-01-22 Thread Carsten Haitzler
raster pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=1241390d2f833928bede7dd8f4034d17933ebb83

commit 1241390d2f833928bede7dd8f4034d17933ebb83
Author: Carsten Haitzler (Rasterman) 
Date:   Thu Jan 23 00:28:13 2014 +0900

theme - win shadow - stack under all so pulsing icon is not BELOW the 
shadow.
---
 data/themes/edc/border.edc | 50 +++---
 1 file changed, 25 insertions(+), 25 deletions(-)

diff --git a/data/themes/edc/border.edc b/data/themes/edc/border.edc
index 5cf70df..fedba2e 100644
--- a/data/themes/edc/border.edc
+++ b/data/themes/edc/border.edc
@@ -23,6 +23,31 @@ group { name: "e/widgets/border/default/border";
images.image: "win_shadow.png" COMP;
data.item: "shadow" "1";
parts {
+  part { name: "shadow_clip"; type: RECT; mouse_events: 0;
+ description { state: "default";
+rel1.to: "shadow";
+rel2.to: "shadow";
+ }
+ description { state: "hidden";
+visible: 0;
+ }
+  }
+  part { name: "shadow"; mouse_events: 0; clip_to: "shadow_clip";
+ description { state: "default" 0.0;
+image.normal: "win_shadow.png";
+image.border: 14 14 14 14;
+image.middle: 0;
+rel1.to: "top";
+rel1.offset: -7 -3;
+rel2.to: "bottom";
+rel2.offset: 6 11;
+fill.smooth: 0;
+ }
+ description { state: "shaded";
+inherit: "default";
+rel2.to: "top";
+ }
+  }
   part { name: "client_clip"; type: RECT; mouse_events: 0;
  description { state: "default" 0.0;
 rel1.to_y: "e.swallow.client";
@@ -431,31 +456,6 @@ group { name: "e/widgets/border/default/border";
 visible: 0;
  }
   }
-  part { name: "shadow_clip"; type: RECT; mouse_events: 0;
- description { state: "default";
-rel1.to: "shadow";
-rel2.to: "shadow";
- }
- description { state: "hidden";
-visible: 0;
- }
-  }
-  part { name: "shadow"; mouse_events: 0; clip_to: "shadow_clip";
- description { state: "default" 0.0;
-image.normal: "win_shadow.png";
-image.border: 14 14 14 14;
-image.middle: 0;
-rel1.to: "top";
-rel1.offset: -7 -3;
-rel2.to: "bottom";
-rel2.offset: 6 11;
-fill.smooth: 0;
- }
- description { state: "shaded";
-inherit: "default";
-rel2.to: "top";
- }
-  }
   part { name: "e.event.resize.bl"; type: RECT;
  description { state: "default" 0.0;
 rel1.relative: 0.0 1.0;

-- 




Re: [E-devel] [EGIT] [core/efl] master 01/01: okay, bring back xrandr < 1.4 compat for ecore_x_randr_output_name_get

2014-01-22 Thread Michael Blumenkrantz
I have some connectors in the mail which will allow me to spend time working on 
this. I think at least some of the changes made were worthwhile given that we 
now have people who were previously unable to use randr able to use it, so it 
shouldn't be too hard to fix the remaining issues. If you want to point out or 
manually revert the sections that you know are wrong/unnecessary, that would 
speed up my work.

On Wed, 22 Jan 2014 14:32:51 +
Christopher Michael  wrote:

> Well, the issue does not happen on my work machines using both VGA and a 
> DVI connectionHowever it does happen at home on the laptop using an 
> HDMI connection. Have not had time to dig into it myself yet either
> 
> dh
> 
> On 01/22/2014 02:01 PM, Sebastian Dransfeld wrote:
> > I got a 1920x1200 monitor and a 1600x900 laptop, works like a charm. But
> > as I said, I don't have time to fix this atm, so if it sucks to much,
> > revert.
> >
> > S.
> >
> > On 01/21/2014 10:35 PM, Chris Michael wrote:
> >> Welcome to the wonderful world of XRandr version vs driver version vs E
> >> version vs .. the world ;)
> >>
> >> Lots of fun waiting for you and Seb here ;)
> >>
> >> BTW, YOU BROKE MY RANDR STUFF !!!
> >>
> >> Configuring monitors in the dialog is totally borked now :( 2 monitors
> >> (1600x9000) and (1920x1080) in a side-by-side config does not work
> >> anymore !!!
> >>
> >> The 1600 is fine. The 1920 ends up w/ half a screen !!
> >>
> >> FIX IT !!! You broke it, you bought it ;)
> >>
> >> dh
> >>
> >>
> >>
> >> On 21/01/14 21:09, Mike Blumenkrantz wrote:
> >>> discomfitor pushed a commit to branch master.
> >>>
> >>> http://git.enlightenment.org/core/efl.git/commit/?id=052fc85cd34aec41d50e5d8333bac6ee9ba9c7d6
> >>>
> >>> commit 052fc85cd34aec41d50e5d8333bac6ee9ba9c7d6
> >>> Author: Mike Blumenkrantz 
> >>> Date:   Tue Jan 21 16:07:38 2014 -0500
> >>>
> >>>okay, bring back xrandr < 1.4 compat for 
> >>> ecore_x_randr_output_name_get
> >>>
> >>>apparently I read the commit order wrong and this fix went in for 
> >>> 1.4.0, not 1.3.2, which means anyone who has 1.3.2 has been having lots 
> >>> of fun crashes for the past 24 hours
> >>> ---
> >>> configure.ac |  4 +---
> >>> src/lib/ecore_x/xlib/ecore_x_randr.c | 15 +++
> >>> 2 files changed, 12 insertions(+), 7 deletions(-)
> >>>
> >>> diff --git a/configure.ac b/configure.ac
> >>> index 2d2e377..373ea6d 100644
> >>> --- a/configure.ac
> >>> +++ b/configure.ac
> >>> @@ -2875,9 +2875,7 @@ if test "x${want_x11_xlib}" = "xyes" ; then
> >>>ECORE_CHECK_X_EXTENSION([Xtest], [XTest.h], [Xtst], 
> >>> [XTestFakeKeyEvent])
> >>>ECORE_CHECK_X_EXTENSION([Xss], [scrnsaver.h], [Xss], 
> >>> [XScreenSaverSelectInput])
> >>>
> >>> -   if test echo "$ECORE_X_LIBS" | grep -q Xrandr ; then
> >>> -  PKG_CHECK_EXISTS([xrandr > 1.3.1], [], [AC_MSG_ERROR([Xrandr >= 
> >>> 1.3.1 required])])
> >>> -   fi
> >>> +   PKG_CHECK_EXISTS([xrandr > 1.3.2], [AC_DEFINE([XRANDR_GOOD], [1], 
> >>> [good xrandr])], [])
> >>>
> >>>if test "${want_xpresent}" = "yes"; then
> >>>   ECORE_CHECK_X_EXTENSION([Xpresent], [Xpresent.h], [Xpresent], 
> >>> [XPresentQueryExtension])
> >>> diff --git a/src/lib/ecore_x/xlib/ecore_x_randr.c 
> >>> b/src/lib/ecore_x/xlib/ecore_x_randr.c
> >>> index b47..db1f109 100644
> >>> --- a/src/lib/ecore_x/xlib/ecore_x_randr.c
> >>> +++ b/src/lib/ecore_x/xlib/ecore_x_randr.c
> >>> @@ -2206,10 +2206,17 @@ ecore_x_randr_output_name_get(Ecore_X_Window 
> >>> root, Ecore_X_Randr_Output output,
> >>>   {
> >>>  if (info->name)
> >>>{
> >>> -  ret = malloc(info->nameLen + 1);
> >>> -  memcpy(ret, info->name, info->nameLen);
> >>> -  ret[info->nameLen] = 0;
> >>> -  if (len) *len = info->nameLen;
> >>> +  size_t s;
> >>> +#ifdef XRANDR_GOOD
> >>> +  s = info->nameLen;
> >>> +#else
> >>> +  /* pre 1.4.0 does not fill in info->nameLen */
> >>> +  s = strlen(info->name);
> >>> +#endif
> >>> +  ret = malloc(s + 1);
> >>> +  memcpy(ret, info->name, s);
> >>> +  ret[s] = 0;
> >>> +  if (len) *len = s;
> >>>}
> >>>
> >>>  /* free the output info */
> >>>
> >>
> 

--
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Re: [E-devel] [EGIT] [core/efl] master 01/01: okay, bring back xrandr < 1.4 compat for ecore_x_randr_output_name_get

2014-01-22 Thread Christopher Michael
Interesting ...

I even tried nuking the e_randr.cfg files too, but no luck. Oh well, not 
that important ... xrandr cli to the rescue ;)

dh

On 01/22/2014 02:51 PM, Sebastian Dransfeld wrote:
> Using HDMI on laptop here.
>
> S.
>
> On 01/22/2014 03:32 PM, Christopher Michael wrote:
>> Well, the issue does not happen on my work machines using both VGA and
>> a DVI connectionHowever it does happen at home on the laptop using
>> an HDMI connection. Have not had time to dig into it myself yet either
>>
>> dh
>>
>> On 01/22/2014 02:01 PM, Sebastian Dransfeld wrote:
>>> I got a 1920x1200 monitor and a 1600x900 laptop, works like a charm. But
>>> as I said, I don't have time to fix this atm, so if it sucks to much,
>>> revert.
>>>
>>> S.
>>>
>>> On 01/21/2014 10:35 PM, Chris Michael wrote:
 Welcome to the wonderful world of XRandr version vs driver version vs E
 version vs .. the world ;)

 Lots of fun waiting for you and Seb here ;)

 BTW, YOU BROKE MY RANDR STUFF !!!

 Configuring monitors in the dialog is totally borked now :( 2 monitors
 (1600x9000) and (1920x1080) in a side-by-side config does not work
 anymore !!!

 The 1600 is fine. The 1920 ends up w/ half a screen !!

 FIX IT !!! You broke it, you bought it ;)

 dh



 On 21/01/14 21:09, Mike Blumenkrantz wrote:
> discomfitor pushed a commit to branch master.
>
> http://git.enlightenment.org/core/efl.git/commit/?id=052fc85cd34aec41d50e5d8333bac6ee9ba9c7d6
>
>
> commit 052fc85cd34aec41d50e5d8333bac6ee9ba9c7d6
> Author: Mike Blumenkrantz 
> Date:   Tue Jan 21 16:07:38 2014 -0500
>
> okay, bring back xrandr < 1.4 compat for
> ecore_x_randr_output_name_get
>
> apparently I read the commit order wrong and this fix went
> in for 1.4.0, not 1.3.2, which means anyone who has 1.3.2 has been
> having lots of fun crashes for the past 24 hours
> ---
>  configure.ac |  4 +---
>  src/lib/ecore_x/xlib/ecore_x_randr.c | 15 +++
>  2 files changed, 12 insertions(+), 7 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index 2d2e377..373ea6d 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -2875,9 +2875,7 @@ if test "x${want_x11_xlib}" = "xyes" ; then
> ECORE_CHECK_X_EXTENSION([Xtest], [XTest.h], [Xtst],
> [XTestFakeKeyEvent])
> ECORE_CHECK_X_EXTENSION([Xss], [scrnsaver.h], [Xss],
> [XScreenSaverSelectInput])
>
> -   if test echo "$ECORE_X_LIBS" | grep -q Xrandr ; then
> -  PKG_CHECK_EXISTS([xrandr > 1.3.1], [], [AC_MSG_ERROR([Xrandr
>> = 1.3.1 required])])
> -   fi
> +   PKG_CHECK_EXISTS([xrandr > 1.3.2], [AC_DEFINE([XRANDR_GOOD],
> [1], [good xrandr])], [])
>
> if test "${want_xpresent}" = "yes"; then
>ECORE_CHECK_X_EXTENSION([Xpresent], [Xpresent.h],
> [Xpresent], [XPresentQueryExtension])
> diff --git a/src/lib/ecore_x/xlib/ecore_x_randr.c
> b/src/lib/ecore_x/xlib/ecore_x_randr.c
> index b47..db1f109 100644
> --- a/src/lib/ecore_x/xlib/ecore_x_randr.c
> +++ b/src/lib/ecore_x/xlib/ecore_x_randr.c
> @@ -2206,10 +2206,17 @@
> ecore_x_randr_output_name_get(Ecore_X_Window root,
> Ecore_X_Randr_Output output,
>{
>   if (info->name)
> {
> -  ret = malloc(info->nameLen + 1);
> -  memcpy(ret, info->name, info->nameLen);
> -  ret[info->nameLen] = 0;
> -  if (len) *len = info->nameLen;
> +  size_t s;
> +#ifdef XRANDR_GOOD
> +  s = info->nameLen;
> +#else
> +  /* pre 1.4.0 does not fill in info->nameLen */
> +  s = strlen(info->name);
> +#endif
> +  ret = malloc(s + 1);
> +  memcpy(ret, info->name, s);
> +  ret[s] = 0;
> +  if (len) *len = s;
> }
>
>   /* free the output info */
>

>>
>>
>


--
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/elementary] master 02/02: spinner: Uncomment ctype.h inclusion because isspace is used.

2014-01-22 Thread Daniel Juyung Seo
seoz pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=54865bd7aa826018dcd051930c335b22fe48793e

commit 54865bd7aa826018dcd051930c335b22fe48793e
Author: Daniel Juyung Seo 
Date:   Thu Jan 23 01:24:42 2014 +0900

spinner: Uncomment ctype.h inclusion because isspace is used.

It looks like ctype.h is included in some other headers by luck but it
is recommended to explicitly include the necessary header.
Confirmed by glima as he commented this out.
---
 src/lib/elm_spinner.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/elm_spinner.c b/src/lib/elm_spinner.c
index d8c59e7..c8b237e 100644
--- a/src/lib/elm_spinner.c
+++ b/src/lib/elm_spinner.c
@@ -3,7 +3,7 @@
 #endif
 
 #include 
-//#include 
+#include 
 
 #include "elm_priv.h"
 #include "elm_widget_spinner.h"

-- 




[EGIT] [core/elementary] master 01/01: test_hoversel: Change the hoversel button text when an hoversel item is selected.

2014-01-22 Thread Daniel Juyung Seo
seoz pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=dcbf67bfe9da921184485b1c5e21c9f7c33e2c33

commit dcbf67bfe9da921184485b1c5e21c9f7c33e2c33
Author: Daniel Juyung Seo 
Date:   Thu Jan 23 01:51:04 2014 +0900

test_hoversel: Change the hoversel button text when an hoversel item is
selected.

This reveals hoversel bug on mobile profile that changes the size of
text parts on continuous item change.
---
 src/bin/test_hoversel.c | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/bin/test_hoversel.c b/src/bin/test_hoversel.c
index 153ae50..b7a9c11 100644
--- a/src/bin/test_hoversel.c
+++ b/src/bin/test_hoversel.c
@@ -104,8 +104,10 @@ static void
 _hoversel_selected_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
   void *event_info)
 {
-   printf("'selected' callback is called. (selected item : %s)\n",
-  elm_object_item_text_get(event_info));
+   const char *txt = elm_object_item_text_get(event_info);
+
+   printf("'selected' callback is called. (selected item : %s)\n", txt);
+   elm_object_text_set(obj, txt);
 }
 
 static void

-- 




[EGIT] [core/elementary] master 01/02: spinner: Internal code clean up for spinner.

2014-01-22 Thread Daniel Juyung Seo
seoz pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=d968878321305c3c535f8075b24864084b9d8b8c

commit d968878321305c3c535f8075b24864084b9d8b8c
Author: Daniel Juyung Seo 
Date:   Thu Jan 23 00:11:48 2014 +0900

spinner: Internal code clean up for spinner.

- Used macro for constant.
- Changed timer name to be more descriptive.
- Added descriptions about timers.
---
 src/lib/elm_spinner.c| 20 
 src/lib/elm_widget_spinner.h |  9 +
 2 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/src/lib/elm_spinner.c b/src/lib/elm_spinner.c
index 50cde23..d8c59e7 100644
--- a/src/lib/elm_spinner.c
+++ b/src/lib/elm_spinner.c
@@ -17,6 +17,8 @@ EAPI Eo_Op ELM_OBJ_SPINNER_BASE_ID = EO_NOOP;
 #define MY_CLASS_NAME "Elm_Spinner"
 #define MY_CLASS_NAME_LEGACY "elm_spinner"
 
+#define ELM_SPINNER_DELAY_CHANGE_TIME 0.2
+
 static const char SIG_CHANGED[] = "changed";
 static const char SIG_DRAG_START[] = "spinner,drag,start";
 static const char SIG_DRAG_STOP[] = "spinner,drag,stop";
@@ -114,11 +116,11 @@ apply:
 }
 
 static Eina_Bool
-_delay_change(void *data)
+_delay_change_timer_cb(void *data)
 {
ELM_SPINNER_DATA_GET(data, sd);
 
-   sd->delay_timer = NULL;
+   sd->delay_change_timer = NULL;
evas_object_smart_callback_call(data, SIG_DELAY_CHANGED, NULL);
 
return ECORE_CALLBACK_CANCEL;
@@ -153,8 +155,9 @@ _value_set(Evas_Object *obj,
sd->val = new_val;
 
evas_object_smart_callback_call(obj, SIG_CHANGED, NULL);
-   ecore_timer_del(sd->delay_timer);
-   sd->delay_timer = ecore_timer_add(0.2, _delay_change, obj);
+   ecore_timer_del(sd->delay_change_timer);
+   sd->delay_change_timer = ecore_timer_add(ELM_SPINNER_DELAY_CHANGE_TIME,
+_delay_change_timer_cb, obj);
 
return EINA_TRUE;
 }
@@ -266,8 +269,9 @@ _entry_activated_cb(void *data,
 
_entry_value_apply(data);
evas_object_smart_callback_call(data, SIG_CHANGED, NULL);
-   ecore_timer_del(sd->delay_timer);
-   sd->delay_timer = ecore_timer_add(0.2, _delay_change, data);
+   ecore_timer_del(sd->delay_change_timer);
+   sd->delay_change_timer = ecore_timer_add(ELM_SPINNER_DELAY_CHANGE_TIME,
+_delay_change_timer_cb, data);
 }
 
 static void
@@ -547,7 +551,7 @@ _elm_spinner_smart_on_focus(Eo *obj, void *_pd EINA_UNUSED, 
va_list *list)
 
if (!elm_widget_focus_get(obj))
  {
-ELM_SAFE_FREE(sd->delay_timer, ecore_timer_del);
+ELM_SAFE_FREE(sd->delay_change_timer, ecore_timer_del);
 ELM_SAFE_FREE(sd->spin_timer, ecore_timer_del);
 
 _entry_value_apply(obj);
@@ -740,7 +744,7 @@ _elm_spinner_smart_del(Eo *obj, void *_pd, va_list *list 
EINA_UNUSED)
Elm_Spinner_Smart_Data *sd = _pd;
 
eina_stringshare_del(sd->label);
-   ecore_timer_del(sd->delay_timer);
+   ecore_timer_del(sd->delay_change_timer);
ecore_timer_del(sd->spin_timer);
 
if (sd->special_values)
diff --git a/src/lib/elm_widget_spinner.h b/src/lib/elm_widget_spinner.h
index 6d13d0f..b4225c2 100644
--- a/src/lib/elm_widget_spinner.h
+++ b/src/lib/elm_widget_spinner.h
@@ -25,12 +25,13 @@ struct _Elm_Spinner_Smart_Data
Evas_Object  *ent;
const char   *label;
doubleval, val_min, val_max, val_base;
-   doublestep; // step for the value change. 1 by default.
-   doubledrag_start_val; // spinner value on drag start.
- // this is reset to 0 when drag stops.
+   doublestep; /*<< step for the value change. 1 by default. */
+   doubledrag_start_val; /*<< spinner value on drag start.
+ this is reset to 0 when drag stops. */
doublespin_speed, interval, first_interval;
int   round;
-   Ecore_Timer  *delay_timer, *spin_timer;
+   Ecore_Timer  *delay_change_timer; /*<< a timer for a delay,changed 
smart callback */
+   Ecore_Timer  *spin_timer; /*<< a timer for a repeated spinner value 
change on mouse down */
Eina_List*special_values;
 
Eina_Bool entry_visible : 1;

-- 




[EGIT] [apps/terminology] master 03/05: avoid double free

2014-01-22 Thread Boris Faure
billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=5f482aff7b3efe219b46fac5bca960286e2f060f

commit 5f482aff7b3efe219b46fac5bca960286e2f060f
Author: Boris Faure 
Date:   Wed Jan 22 22:50:05 2014 +0100

avoid double free
---
 src/bin/main.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/bin/main.c b/src/bin/main.c
index caa761e..3d6c94d 100644
--- a/src/bin/main.c
+++ b/src/bin/main.c
@@ -2988,6 +2988,7 @@ remote:
if (!wn)
  {
 config_del(config);
+config = NULL;
 retval = EXIT_FAILURE;
 goto end;
  }

-- 




[EGIT] [apps/terminology] master 02/05: fix CID 1162823: Dereference before null check

2014-01-22 Thread Boris Faure
billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=dc764b68b9ab7986926c1aa59e85a09711464921

commit dc764b68b9ab7986926c1aa59e85a09711464921
Author: Boris Faure 
Date:   Wed Jan 22 22:21:05 2014 +0100

fix CID 1162823:  Dereference before null check
---
 src/bin/options_wallpaper.c | 13 +++--
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/bin/options_wallpaper.c b/src/bin/options_wallpaper.c
index d393d1a..109b7d3 100644
--- a/src/bin/options_wallpaper.c
+++ b/src/bin/options_wallpaper.c
@@ -163,22 +163,23 @@ _item_selected(void *data, Evas_Object *obj EINA_UNUSED, 
void *event EINA_UNUSED
  }
 }
 
-static void 
+static void
 _insert_gengrid_item(Insert_Gen_Grid_Item_Notify *msg_data)
 {
Insert_Gen_Grid_Item_Notify *insert_msg = msg_data;
-   Background_Item *item = insert_msg->item;
-   Elm_Gengrid_Item_Class *item_class = insert_msg->class;
Config *config = termio_config_get(_term);
 
-   if (insert_msg && item && item_class && config)
+   if (insert_msg && insert_msg->item && insert_msg->class && config)
  {
+Background_Item *item = insert_msg->item;
+Elm_Gengrid_Item_Class *item_class = insert_msg->class;
+
 item->item = elm_gengrid_item_append(_bg_grid, item_class, item,
 _item_selected, item);
 if ((!item->path) && (!config->background))
   {
  elm_gengrid_item_selected_set(item->item, EINA_TRUE);
- elm_gengrid_item_bring_in(item->item, 
+ elm_gengrid_item_bring_in(item->item,
ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
   }
 else if ((item->path) && (config->background))
@@ -186,7 +187,7 @@ _insert_gengrid_item(Insert_Gen_Grid_Item_Notify *msg_data)
  if (strcmp(item->path, config->background) == 0)
{
   elm_gengrid_item_selected_set(item->item, EINA_TRUE);
-  elm_gengrid_item_bring_in(item->item, 
+  elm_gengrid_item_bring_in(item->item,
 ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
}
   }

-- 




[EGIT] [apps/terminology] master 05/05: fix typo: CID 1100646

2014-01-22 Thread Boris Faure
billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=4602641ac0f799e8676618f25426b1bea6f75407

commit 4602641ac0f799e8676618f25426b1bea6f75407
Author: Boris Faure 
Date:   Wed Jan 22 22:53:48 2014 +0100

fix typo: CID 1100646
---
 src/bin/termptyesc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/termptyesc.c b/src/bin/termptyesc.c
index ec5a33c..84e6dca 100644
--- a/src/bin/termptyesc.c
+++ b/src/bin/termptyesc.c
@@ -1041,7 +1041,7 @@ _handle_esc_xterm(Termpty *ty, const Eina_Unicode *c, 
Eina_Unicode *ce)
  ty->prop.icon = NULL;
   }
 if (ty->cb.set_title.func) 
ty->cb.set_title.func(ty->cb.set_title.data);
-if (ty->cb.set_icon.func) ty->cb.set_title.func(ty->cb.set_icon.data);
+if (ty->cb.set_icon.func) ty->cb.set_icon.func(ty->cb.set_icon.data);
 break;
   case '1':
 // XXX: icon name - callback

-- 




[EGIT] [apps/terminology] master 04/05: remove dead code: CID 1100658

2014-01-22 Thread Boris Faure
billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=defca7b58b691bd7eb7064e63e4720baa7458a89

commit defca7b58b691bd7eb7064e63e4720baa7458a89
Author: Boris Faure 
Date:   Wed Jan 22 22:52:27 2014 +0100

remove dead code: CID 1100658
---
 src/bin/termptyesc.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/bin/termptyesc.c b/src/bin/termptyesc.c
index 9f7de34..ec5a33c 100644
--- a/src/bin/termptyesc.c
+++ b/src/bin/termptyesc.c
@@ -427,7 +427,6 @@ _handle_esc_csi(Termpty *ty, const Eina_Unicode *c, 
Eina_Unicode *ce)
  arg = _csi_arg_get(&b);
  if (arg < 1) arg = 1;
  arg--;
- if (arg < 0) arg = 0;
  else if (arg >= ty->h) arg = ty->h - 1;
  if (b)
{

-- 




[EGIT] [apps/terminology] master 01/05: fix pasting for real… Closes T706

2014-01-22 Thread Boris Faure
billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=fd43c274c19fc69a015ca7e51d92ed6fa4e5a3e2

commit fd43c274c19fc69a015ca7e51d92ed6fa4e5a3e2
Author: Boris Faure 
Date:   Wed Jan 22 22:12:01 2014 +0100

fix pasting for real… Closes T706
---
 src/bin/termio.c | 45 +++--
 1 file changed, 23 insertions(+), 22 deletions(-)

diff --git a/src/bin/termio.c b/src/bin/termio.c
index 44b697c..ddc1050 100644
--- a/src/bin/termio.c
+++ b/src/bin/termio.c
@@ -1831,36 +1831,37 @@ _getsel_cb(void *data, Evas_Object *obj EINA_UNUSED, 
Elm_Selection_Data *ev)
 
if (ev->format == ELM_SEL_FORMAT_TEXT)
  {
-if (ev->len > 0)
+char *tmp;
+
+if (ev->len <= 0) return EINA_TRUE;
+
+tmp = malloc(ev->len);
+if (tmp)
   {
- char *tmp;
+ char *s = ev->data;
+ size_t i;
 
  // apparently we have to convert \n into \r in terminal land.
- tmp = malloc(ev->len + 1);
- if (tmp)
+ for (i = 0; i < ev->len && s[i]; i++)
+   {
+  tmp[i] = s[i];
+  if (tmp[i] == '\n') tmp[i] = '\r';
+   }
+ if (i)
{
-  char *s = ev->data;
-  size_t i;
-
-  tmp[ev->len] = '\0';
-  for (i = 0; i < ev->len; i++)
-{
-   tmp[i] = s[i];
-   if (tmp[i] == '\n') tmp[i] = '\r';
-}
-
-  if (sd->pty->state.bracketed_paste)
-  termpty_write(sd->pty, "\x1b[200~",
-sizeof("\x1b[200~") - 1);
 
-  termpty_write(sd->pty, tmp, ev->len);
+if (sd->pty->state.bracketed_paste)
+  termpty_write(sd->pty, "\x1b[200~",
+sizeof("\x1b[200~") - 1);
 
-  if (sd->pty->state.bracketed_paste)
-  termpty_write(sd->pty, "\x1b[201~",
-sizeof("\x1b[201~") - 1);
+termpty_write(sd->pty, tmp, i);
 
-  free(tmp);
+if (sd->pty->state.bracketed_paste)
+  termpty_write(sd->pty, "\x1b[201~",
+sizeof("\x1b[201~") - 1);
}
+
+ free(tmp);
   }
  }
else

-- 




[EGIT] [apps/terminology] master 01/01: oops

2014-01-22 Thread Boris Faure
billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=ab9243b94f2baafa1dfa9a6c18f16f6355d9113d

commit ab9243b94f2baafa1dfa9a6c18f16f6355d9113d
Author: Boris Faure 
Date:   Wed Jan 22 23:19:11 2014 +0100

oops
---
 src/bin/termptyesc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/termptyesc.c b/src/bin/termptyesc.c
index 84e6dca..a80e162 100644
--- a/src/bin/termptyesc.c
+++ b/src/bin/termptyesc.c
@@ -427,7 +427,7 @@ _handle_esc_csi(Termpty *ty, const Eina_Unicode *c, 
Eina_Unicode *ce)
  arg = _csi_arg_get(&b);
  if (arg < 1) arg = 1;
  arg--;
- else if (arg >= ty->h) arg = ty->h - 1;
+ if (arg >= ty->h) arg = ty->h - 1;
  if (b)
{
   ty->state.cy = arg;

-- 




[EGIT] [apps/terminology] master 01/01: fix wrong cast. thanks to OnlyHuman

2014-01-22 Thread Boris Faure
billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=7cc50d4e055a29c28aab3e614eae4848ce70ac33

commit 7cc50d4e055a29c28aab3e614eae4848ce70ac33
Author: Boris Faure 
Date:   Wed Jan 22 23:22:42 2014 +0100

fix wrong cast. thanks to OnlyHuman
---
 src/bin/termpty.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/termpty.c b/src/bin/termpty.c
index d7899eb..0fcd6f5 100644
--- a/src/bin/termpty.c
+++ b/src/bin/termpty.c
@@ -56,7 +56,7 @@ _handle_buf(Termpty *ty, const Eina_Unicode *codepoints, int 
len)
Eina_Unicode *c, *ce, *b;
int n, bytes;
 
-   c = (int *)codepoints;
+   c = (Eina_Unicode *)codepoints;
ce = &(c[len]);
 
if (ty->buf)

-- 




[EGIT] [core/efl] master 01/01: embryo_cc - remove trainling / from path for windows stat so it works

2014-01-22 Thread Carsten Haitzler
raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=1c2da046dccd68f606504bc2029e3e6425293390

commit 1c2da046dccd68f606504bc2029e3e6425293390
Author: Carsten Haitzler (Rasterman) 
Date:   Thu Jan 23 08:45:44 2014 +0900

embryo_cc - remove trainling / from path for windows stat so it works
---
 src/bin/embryo/embryo_cc_sc1.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/embryo/embryo_cc_sc1.c b/src/bin/embryo/embryo_cc_sc1.c
index 391cf98..f296c00 100644
--- a/src/bin/embryo/embryo_cc_sc1.c
+++ b/src/bin/embryo/embryo_cc_sc1.c
@@ -574,7 +574,7 @@ parseoptions(int argc, char **argv, char *iname, char 
*oname,
if (getenv("EFL_RUN_IN_TREE"))
  {
 struct stat st;
-snprintf(str, sizeof(str), "%s/data/embryo/", PACKAGE_SRC_DIR);
+snprintf(str, sizeof(str), "%s/data/embryo", PACKAGE_SRC_DIR);
 if (stat(str, &st) != 0)
   str[0] = '\0';
  }

-- 




[EGIT] [core/efl] master 01/01: Add ecore_imf_context_selection_get API to allow Input Method to get the selected text.

2014-01-22 Thread Jihoon Kim
jihoon pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=fa165f09022d2d002ed0ccdf05cc7ee00735c4a3

commit fa165f09022d2d002ed0ccdf05cc7ee00735c4a3
Author: Jihoon Kim 
Date:   Thu Jan 23 10:44:00 2014 +0900

Add ecore_imf_context_selection_get API to allow Input Method to get the 
selected text.
---
 src/lib/ecore_imf/Ecore_IMF.h | 36 ++
 src/lib/ecore_imf/ecore_imf_context.c | 37 +++
 src/lib/ecore_imf/ecore_imf_private.h |  2 ++
 3 files changed, 75 insertions(+)

diff --git a/src/lib/ecore_imf/Ecore_IMF.h b/src/lib/ecore_imf/Ecore_IMF.h
index ee1c249..2d96a22 100644
--- a/src/lib/ecore_imf/Ecore_IMF.h
+++ b/src/lib/ecore_imf/Ecore_IMF.h
@@ -908,6 +908,20 @@ EAPI void  
ecore_imf_context_use_preedit_set(Ecore_IMF_C
 EAPI void  
ecore_imf_context_retrieve_surrounding_callback_set(Ecore_IMF_Context *ctx, 
Eina_Bool (*func)(void *data, Ecore_IMF_Context *ctx, char **text, int 
*cursor_pos), const void *data);
 
 /**
+ * Set the callback to be used on selection_get request.
+ *
+ * This callback will be called when the Input Method Context
+ * module requests the selection context.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param func The callback to be called.
+ * @param data The data pointer to be passed to @p func
+ * @ingroup Ecore_IMF_Context_Group
+ * @since 1.9.0
+ */
+EAPI void  
ecore_imf_context_retrieve_selection_callback_set(Ecore_IMF_Context *ctx, 
Eina_Bool (*func)(void *data, Ecore_IMF_Context *ctx, char **text), const void 
*data);
+
+/**
  * Set the input mode used by the Ecore Input Context.
  *
  * The input mode can be one of the input modes defined in
@@ -1044,6 +1058,28 @@ EAPI void 
*ecore_imf_context_data_get(Ecore_IMF_Context
 EAPI Eina_Bool 
ecore_imf_context_surrounding_get(Ecore_IMF_Context *ctx, char **text, int 
*cursor_pos);
 
 /**
+ * Retrieve the selected text.
+ *
+ * This function is implemented by calling the
+ * Ecore_IMF_Context::retrieve_selection_func (
+ * set using #ecore_imf_context_retrieve_selection_callback_set).
+ *
+ * There is no obligation for a widget to respond to the
+ * retrieve_surrounding_func, so input methods must be prepared
+ * to function without context.
+ *
+ * @param ctx An #Ecore_IMF_Context.
+ * @param text Location to store a UTF-8 encoded string of the selected text.
+ * If the function returns @c EINA_TRUE, then you must free
+ * the result stored in this location with free().
+ * @return @c EINA_TRUE if selected text was provided; otherwise
+ * @c EINA_FALSE.
+ * @ingroup Ecore_IMF_Context_Module_Group
+ * @since 1.9.0
+ */
+EAPI Eina_Bool 
ecore_imf_context_selection_get(Ecore_IMF_Context *ctx, char **text);
+
+/**
  * Adds ECORE_IMF_EVENT_PREEDIT_START to the event queue.
  *
  * ECORE_IMF_EVENT_PREEDIT_START should be added when a new preedit sequence 
starts.
diff --git a/src/lib/ecore_imf/ecore_imf_context.c 
b/src/lib/ecore_imf/ecore_imf_context.c
index 63c41c8..7b554e6 100644
--- a/src/lib/ecore_imf/ecore_imf_context.c
+++ b/src/lib/ecore_imf/ecore_imf_context.c
@@ -462,6 +462,20 @@ 
ecore_imf_context_retrieve_surrounding_callback_set(Ecore_IMF_Context *ctx, Eina
 }
 
 EAPI void
+ecore_imf_context_retrieve_selection_callback_set(Ecore_IMF_Context *ctx, 
Eina_Bool (*func)(void *data, Ecore_IMF_Context *ctx, char **text), const void 
*data)
+{
+   if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_retrieve_selection_callback_set");
+return;
+ }
+
+   ctx->retrieve_selection_func = func;
+   ctx->retrieve_selection_data = (void *) data;
+}
+
+EAPI void
 ecore_imf_context_input_mode_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input_Mode 
input_mode)
 {
if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
@@ -563,6 +577,29 @@ ecore_imf_context_surrounding_get(Ecore_IMF_Context *ctx, 
char **text, int *curs
return result;
 }
 
+EAPI Eina_Bool
+ecore_imf_context_selection_get(Ecore_IMF_Context *ctx, char **text)
+{
+   Eina_Bool result = EINA_FALSE;
+
+   if (!ECORE_MAGIC_CHECK(ctx, ECORE_MAGIC_CONTEXT))
+ {
+ECORE_MAGIC_FAIL(ctx, ECORE_MAGIC_CONTEXT,
+ "ecore_imf_context_selection_get");
+return EINA_FALSE;
+ }
+
+   if (ctx->retrieve_selection_func)
+ {
+result = ctx->retrieve_selection_func(ctx->retrieve_selection_data, 
ctx, text);
+if (!result)
+  {
+ if (text) *text = NULL;
+  }
+ }
+   return result;
+}
+
 static void
 _ecore_imf_event_free_preedit(void *data EINA_UNUSED, void *event)
 {
diff --git a/src/lib/ecore_imf/ecore_imf_private.h 
b/src/lib/ecore_imf/ecore_imf_private.h
index 81d71c9..d6bf257 100644
--- a/src/lib/ecore_imf/ecore_imf_private.h

[EGIT] [core/efl] master 01/01: ecore_imf: Add selection_set callback type to allow Input Method to select a region of text

2014-01-22 Thread Jihoon Kim
jihoon pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=7b30c414432019a602c6c0ea4c76e4ad14ad19d7

commit 7b30c414432019a602c6c0ea4c76e4ad14ad19d7
Author: Jihoon Kim 
Date:   Thu Jan 23 11:02:51 2014 +0900

ecore_imf: Add selection_set callback type to allow Input Method to select 
a region of text
---
 src/lib/ecore_imf/Ecore_IMF.h | 11 ++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/lib/ecore_imf/Ecore_IMF.h b/src/lib/ecore_imf/Ecore_IMF.h
index 2d96a22..f4521fb 100644
--- a/src/lib/ecore_imf/Ecore_IMF.h
+++ b/src/lib/ecore_imf/Ecore_IMF.h
@@ -107,6 +107,7 @@ typedef struct _Ecore_IMF_Event_Preedit_End
Ecore_IMF_Event_Preedit_End;
 typedef struct _Ecore_IMF_Event_Preedit_Changed
Ecore_IMF_Event_Preedit_Changed;
 typedef struct _Ecore_IMF_Event_Commit Ecore_IMF_Event_Commit;
 typedef struct _Ecore_IMF_Event_Delete_Surrounding 
Ecore_IMF_Event_Delete_Surrounding;
+typedef struct _Ecore_IMF_Event_Selection  Ecore_IMF_Event_Selection;
 
 /* Events to filter */
 typedef struct _Ecore_IMF_Event_Mouse_Down Ecore_IMF_Event_Mouse_Down;
@@ -147,7 +148,8 @@ typedef enum
ECORE_IMF_CALLBACK_PREEDIT_END,/**< "PREEDIT_END" is called when a 
preediting sequence has been completed or canceled. @since 1.2 */
ECORE_IMF_CALLBACK_PREEDIT_CHANGED,/**< "PREEDIT_CHANGED" is called 
whenever the preedit sequence currently being entered has changed. @since 1.2 */
ECORE_IMF_CALLBACK_COMMIT, /**< "COMMIT" is called when a 
complete input sequence has been entered by the user @since 1.2 */
-   ECORE_IMF_CALLBACK_DELETE_SURROUNDING  /**< "DELETE_SURROUNDING" is called 
when the input method needs to delete all or part of the context surrounding 
the cursor @since 1.2 */
+   ECORE_IMF_CALLBACK_DELETE_SURROUNDING, /**< "DELETE_SURROUNDING" is called 
when the input method needs to delete all or part of the context surrounding 
the cursor @since 1.2 */
+   ECORE_IMF_CALLBACK_SELECTION_SET   /**< "SELECTION_SET" is called when 
the input method needs to set the selection @since 1.9 */
 } Ecore_IMF_Callback_Type;
 
 /**
@@ -344,6 +346,13 @@ struct _Ecore_IMF_Event_Delete_Surrounding
intn_chars;
 };
 
+struct _Ecore_IMF_Event_Selection
+{
+   Ecore_IMF_Context *ctx;
+   intstart;
+   intend;
+};
+
 struct _Ecore_IMF_Event_Mouse_Down
 {
int button; /**< The button which has been 
pressed */

-- 




[EGIT] [core/efl] master 01/01: ecore_imf: fix to call function of immodule when the input method property is changed

2014-01-22 Thread Jihoon Kim
jihoon pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=4fb04c3cd0f4c8f678666d8b92368d66798aed5d

commit 4fb04c3cd0f4c8f678666d8b92368d66798aed5d
Author: Jihoon Kim 
Date:   Thu Jan 23 11:19:54 2014 +0900

ecore_imf: fix to call function of immodule when the input method property 
is changed
---
 src/lib/ecore_imf/ecore_imf_context.c | 43 +--
 1 file changed, 31 insertions(+), 12 deletions(-)

diff --git a/src/lib/ecore_imf/ecore_imf_context.c 
b/src/lib/ecore_imf/ecore_imf_context.c
index 7b554e6..3dbe527 100644
--- a/src/lib/ecore_imf/ecore_imf_context.c
+++ b/src/lib/ecore_imf/ecore_imf_context.c
@@ -858,10 +858,13 @@ 
ecore_imf_context_input_panel_layout_set(Ecore_IMF_Context *ctx, Ecore_IMF_Input
 return;
  }
 
-   if (ctx->klass->input_panel_layout_set)
- ctx->klass->input_panel_layout_set(ctx, layout);
+   if (ctx->input_panel_layout != layout)
+ {
+if (ctx->klass->input_panel_layout_set)
+  ctx->klass->input_panel_layout_set(ctx, layout);
 
-   ctx->input_panel_layout = layout;
+ctx->input_panel_layout = layout;
+ }
 }
 
 EAPI Ecore_IMF_Input_Panel_Layout
@@ -916,8 +919,13 @@ 
ecore_imf_context_input_panel_language_set(Ecore_IMF_Context *ctx, Ecore_IMF_Inp
 return;
  }
 
-   if (ctx->klass->input_panel_language_set) 
ctx->klass->input_panel_language_set(ctx, lang);
-   ctx->input_panel_lang = lang;
+   if (ctx->input_panel_lang != lang)
+ {
+if (ctx->klass->input_panel_language_set)
+  ctx->klass->input_panel_language_set(ctx, lang);
+
+ctx->input_panel_lang = lang;
+ }
 }
 
 EAPI Ecore_IMF_Input_Panel_Lang
@@ -1002,8 +1010,12 @@ 
ecore_imf_context_input_panel_return_key_type_set(Ecore_IMF_Context *ctx, Ecore_
 return;
  }
 
-   ctx->input_panel_return_key_type = return_key_type;
-   if (ctx->klass->input_panel_return_key_type_set) 
ctx->klass->input_panel_return_key_type_set(ctx, return_key_type);
+   if (ctx->input_panel_return_key_type != return_key_type)
+ {
+ctx->input_panel_return_key_type = return_key_type;
+if (ctx->klass->input_panel_return_key_type_set)
+  ctx->klass->input_panel_return_key_type_set(ctx, return_key_type);
+ }
 }
 
 EAPI Ecore_IMF_Input_Panel_Return_Key_Type
@@ -1029,8 +1041,12 @@ 
ecore_imf_context_input_panel_return_key_disabled_set(Ecore_IMF_Context *ctx, Ei
 return;
  }
 
-   ctx->input_panel_return_key_disabled = disabled;
-   if (ctx->klass->input_panel_return_key_disabled_set) 
ctx->klass->input_panel_return_key_disabled_set(ctx, disabled);
+   if (ctx->input_panel_return_key_disabled != disabled)
+ {
+ctx->input_panel_return_key_disabled = disabled;
+if (ctx->klass->input_panel_return_key_disabled_set)
+  ctx->klass->input_panel_return_key_disabled_set(ctx, disabled);
+ }
 }
 
 EAPI Eina_Bool
@@ -1056,10 +1072,13 @@ 
ecore_imf_context_input_panel_caps_lock_mode_set(Ecore_IMF_Context *ctx, Eina_Bo
 return;
  }
 
-   if (ctx->klass->input_panel_caps_lock_mode_set)
- ctx->klass->input_panel_caps_lock_mode_set(ctx, mode);
+   if (ctx->input_panel_caps_lock_mode != mode)
+ {
+if (ctx->klass->input_panel_caps_lock_mode_set)
+  ctx->klass->input_panel_caps_lock_mode_set(ctx, mode);
 
-   ctx->input_panel_caps_lock_mode = mode;
+ctx->input_panel_caps_lock_mode = mode;
+ }
 }
 
 EAPI Eina_Bool

-- 




[EGIT] [core/efl] master 01/01: edje: Support to set or retrieve selection of ecore_imf

2014-01-22 Thread Jihoon Kim
jihoon pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=1d7d554348f76645734772b48d83ae63d8ca6de8

commit 1d7d554348f76645734772b48d83ae63d8ca6de8
Author: Jihoon Kim 
Date:   Thu Jan 23 11:26:52 2014 +0900

edje: Support to set or retrieve selection of ecore_imf
---
 src/lib/edje/edje_entry.c | 57 +++
 1 file changed, 57 insertions(+)

diff --git a/src/lib/edje/edje_entry.c b/src/lib/edje/edje_entry.c
index 53494a3..8a7b741 100644
--- a/src/lib/edje/edje_entry.c
+++ b/src/lib/edje/edje_entry.c
@@ -5,6 +5,8 @@ static Eina_Bool _edje_entry_imf_retrieve_surrounding_cb(void 
*data, Ecore_IMF_C
 static void  _edje_entry_imf_event_commit_cb(void *data, Ecore_IMF_Context 
*ctx, void *event_info);
 static void  _edje_entry_imf_event_preedit_changed_cb(void *data, 
Ecore_IMF_Context *ctx, void *event_info);
 static void  _edje_entry_imf_event_delete_surrounding_cb(void *data, 
Ecore_IMF_Context *ctx, void *event);
+static void  _edje_entry_imf_event_selection_set_cb(void *data, 
Ecore_IMF_Context *ctx, void *event_info);
+static Eina_Bool _edje_entry_imf_retrieve_selection_cb(void *data, 
Ecore_IMF_Context *ctx, char **text);
 #endif
 
 typedef struct _Entry Entry;
@@ -2495,9 +2497,11 @@ _edje_entry_real_part_init(Edje *ed, Edje_Real_Part *rp)
 
 ecore_imf_context_retrieve_surrounding_callback_set(en->imf_context,
 
_edje_entry_imf_retrieve_surrounding_cb, ed);
+ecore_imf_context_retrieve_selection_callback_set(en->imf_context, 
_edje_entry_imf_retrieve_selection_cb, ed);
 ecore_imf_context_event_callback_add(en->imf_context, 
ECORE_IMF_CALLBACK_COMMIT, _edje_entry_imf_event_commit_cb, ed);
 ecore_imf_context_event_callback_add(en->imf_context, 
ECORE_IMF_CALLBACK_DELETE_SURROUNDING, 
_edje_entry_imf_event_delete_surrounding_cb, ed);
 ecore_imf_context_event_callback_add(en->imf_context, 
ECORE_IMF_CALLBACK_PREEDIT_CHANGED, _edje_entry_imf_event_preedit_changed_cb, 
ed);
+ecore_imf_context_event_callback_add(en->imf_context, 
ECORE_IMF_CALLBACK_SELECTION_SET, _edje_entry_imf_event_selection_set_cb, ed);
 ecore_imf_context_input_mode_set(en->imf_context,
  rp->part->entry_mode == 
EDJE_ENTRY_EDIT_MODE_PASSWORD ?
  ECORE_IMF_INPUT_MODE_INVISIBLE : 
ECORE_IMF_INPUT_MODE_FULL);
@@ -2545,6 +2549,7 @@ _edje_entry_real_part_shutdown(Edje *ed, Edje_Real_Part 
*rp)
  ecore_imf_context_event_callback_del(en->imf_context, 
ECORE_IMF_CALLBACK_COMMIT, _edje_entry_imf_event_commit_cb);
  ecore_imf_context_event_callback_del(en->imf_context, 
ECORE_IMF_CALLBACK_DELETE_SURROUNDING, 
_edje_entry_imf_event_delete_surrounding_cb);
  ecore_imf_context_event_callback_del(en->imf_context, 
ECORE_IMF_CALLBACK_PREEDIT_CHANGED, _edje_entry_imf_event_preedit_changed_cb);
+ ecore_imf_context_event_callback_del(en->imf_context, 
ECORE_IMF_CALLBACK_SELECTION_SET, _edje_entry_imf_event_selection_set_cb);
 
  ecore_imf_context_del(en->imf_context);
  en->imf_context = NULL;
@@ -4189,6 +4194,58 @@ end:
evas_textblock_cursor_free(del_start);
evas_textblock_cursor_free(del_end);
 }
+
+static void
+_edje_entry_imf_event_selection_set_cb(void *data, Ecore_IMF_Context *ctx 
EINA_UNUSED, void *event_info)
+{
+   Edje *ed = data;
+   Edje_Real_Part *rp = ed->focused_part;
+   Entry *en = NULL;
+   Ecore_IMF_Event_Selection *ev = event_info;
+
+   if ((!rp) || (!ev)) return;
+   if ((rp->type != EDJE_RP_TYPE_TEXT) ||
+   (!rp->typedata.text)) return;
+   else
+ en = rp->typedata.text->entry_data;
+   if ((!en) || (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK) ||
+   (rp->part->entry_mode < EDJE_ENTRY_EDIT_MODE_SELECTABLE))
+ return;
+
+   evas_textblock_cursor_pos_set(en->cursor, ev->start);
+
+   _sel_start(en->cursor, rp->object, en);
+
+   evas_textblock_cursor_pos_set(en->cursor, ev->end);
+
+   _sel_extend(ed, en->cursor, rp->object, en);
+}
+
+static Eina_Bool
+_edje_entry_imf_retrieve_selection_cb(void *data, Ecore_IMF_Context *ctx 
EINA_UNUSED, char **text)
+{
+   Edje *ed = data;
+   Edje_Real_Part *rp = ed->focused_part;
+   Entry *en = NULL;
+
+   if (!rp) return EINA_FALSE;
+   if ((rp->type != EDJE_RP_TYPE_TEXT) ||
+   (!rp->typedata.text)) return EINA_FALSE;
+   else
+ en = rp->typedata.text->entry_data;
+   if ((!en) || (rp->part->type != EDJE_PART_TYPE_TEXTBLOCK) ||
+   (rp->part->entry_mode < EDJE_ENTRY_EDIT_MODE_SELECTABLE))
+ return EINA_FALSE;
+
+   if (en->have_selection)
+ {
+if (text)
+  *text = strdup(_edje_entry_selection_get(rp));
+return EINA_TRUE;
+ }
+   else
+ return EINA_FALSE;
+}
 #endif
 
 /* vim:set ts=8 sw=3 sts=3 expandtab cino=>5n-2f0^-2{2(0W1st0 :*/

-- 




[EGIT] [apps/terminology] master 01/01: fix copy/paste error: CID 1163307

2014-01-22 Thread Boris Faure
billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=878f4561601f33f6049104061e75d86e2d0800ff

commit 878f4561601f33f6049104061e75d86e2d0800ff
Author: Boris Faure 
Date:   Thu Jan 23 03:44:07 2014 +0100

fix copy/paste error: CID 1163307
---
 src/bin/termptyesc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/termptyesc.c b/src/bin/termptyesc.c
index a80e162..7e9a979 100644
--- a/src/bin/termptyesc.c
+++ b/src/bin/termptyesc.c
@@ -1056,7 +1056,7 @@ _handle_esc_xterm(Termpty *ty, const Eina_Unicode *c, 
Eina_Unicode *ce)
   {
  ty->prop.icon = NULL;
   }
-if (ty->cb.set_icon.func) ty->cb.set_title.func(ty->cb.set_icon.data);
+if (ty->cb.set_icon.func) ty->cb.set_icon.func(ty->cb.set_icon.data);
 break;
   case '2':
 // XXX: title - callback

-- 




[EGIT] [core/elementary] master 01/01: naviframe - don't access item after del

2014-01-22 Thread Carsten Haitzler
raster pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=afc2dbf5eb3ce3b71f24f0f3629d0d3cd6a6441c

commit afc2dbf5eb3ce3b71f24f0f3629d0d3cd6a6441c
Author: Carsten Haitzler (Rasterman) 
Date:   Thu Jan 23 11:59:07 2014 +0900

naviframe - don't access item after del
---
 src/lib/elc_naviframe.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/lib/elc_naviframe.c b/src/lib/elc_naviframe.c
index 53095c8..16b320e 100644
--- a/src/lib/elc_naviframe.c
+++ b/src/lib/elc_naviframe.c
@@ -1708,9 +1708,9 @@ _item_pop(Eo *obj, void *_pd, va_list *list)
  it->ref--;
  if (it->delete_me)
elm_widget_item_del(it);
- it->popping = EINA_FALSE;
+ else
+   it->popping = EINA_FALSE;
  evas_object_unref(obj);
-
  return;
   }
 it->ref--;

-- 




[EGIT] [core/enlightenment] master 13/21: resize pending update tiler during size update

2014-01-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=9201ac12d497ca97a036a30b8a0ca2749c70a85d

commit 9201ac12d497ca97a036a30b8a0ca2749c70a85d
Author: Mike Blumenkrantz 
Date:   Wed Jan 22 21:37:49 2014 -0500

resize pending update tiler during size update

another tiler gets merged a few lines down and clipping is bad
---
 src/bin/e_comp_object.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 522d7f9..efda2e1 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -3000,6 +3000,8 @@ e_comp_object_dirty(Evas_Object *obj)
  evas_object_image_data_set(cw->obj, NULL);
evas_object_image_size_set(cw->obj, w, h);
//INF("SIZE [%p]: %dx%d", cw->ec, w, h);
+   if (cw->pending_updates)
+ eina_tiler_area_size_set(cw->pending_updates, w, h);
EINA_LIST_FOREACH(cw->obj_mirror, l, o)
  {
 evas_object_image_pixels_dirty_set(o, dirty);

-- 




[EGIT] [core/enlightenment] master 20/21: add autoclose callback for syscon to null pointer

2014-01-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=fccfb20972366a38c40c88617f74ac65e41ae883

commit fccfb20972366a38c40c88617f74ac65e41ae883
Author: Mike Blumenkrantz 
Date:   Wed Jan 22 22:11:03 2014 -0500

add autoclose callback for syscon to null pointer

previously, repeated uses of syscon would cause a crash
---
 src/modules/syscon/e_syscon.c | 9 -
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/modules/syscon/e_syscon.c b/src/modules/syscon/e_syscon.c
index a64cd2a..3cadee1 100644
--- a/src/modules/syscon/e_syscon.c
+++ b/src/modules/syscon/e_syscon.c
@@ -24,6 +24,13 @@ static Ecore_Timer *deftimer = NULL;
 static double show_time = 0.0;
 static int act_count = 0;
 
+static void
+_cb_del(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED)
+{
+   evas_object_hide(popup);
+   E_FREE_FUNC(popup, evas_object_del);
+}
+
 /* externally accessible functions */
 int
 e_syscon_init(void)
@@ -91,7 +98,7 @@ e_syscon_show(E_Zone *zone, const char *defact)
popup = e_comp_object_util_add(o_bg, E_COMP_OBJECT_TYPE_POPUP);
evas_object_data_set(popup, "zone", zone);
evas_object_layer_set(popup, E_LAYER_POPUP);
-   e_comp_object_util_autoclose(popup, NULL, _cb_key_down, NULL);
+   e_comp_object_util_autoclose(popup, _cb_del, _cb_key_down, NULL);
act_count = 0;
show_time = t;
 

-- 




[EGIT] [core/enlightenment] master 14/21: more commented out debug lines for comp object

2014-01-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=d5ce4e0517acb7e177569a3139ec2a56f338fbbf

commit d5ce4e0517acb7e177569a3139ec2a56f338fbbf
Author: Mike Blumenkrantz 
Date:   Wed Jan 22 21:39:42 2014 -0500

more commented out debug lines for comp object
---
 src/bin/e_comp_object.c | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index efda2e1..42cea7d 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -2838,6 +2838,8 @@ e_comp_object_shape_apply(Evas_Object *obj)
evas_object_image_size_get(cw->obj, &w, &h);
if ((w < 1) || (h < 1)) return;
 
+   //INF("SHAPE RENDER %p", cw->ec);
+
if (cw->ec->shape_rects) evas_object_image_native_surface_set(cw->obj, 
NULL);
evas_object_image_alpha_set(cw->obj, !!cw->ec->shape_rects);
EINA_LIST_FOREACH(cw->obj_mirror, l, o)
@@ -3018,7 +3020,7 @@ e_comp_object_dirty(Evas_Object *obj)
it = eina_tiler_iterator_new(cw->updates);
EINA_ITERATOR_FOREACH(it, r)
  {
-//INF("UPDATE [%p]: %d %d %dx%d", cw->ec, r->x, r->y, r->w, r->h);
+//INF("UPDATE ADD [%p]: %d %d %dx%d", cw->ec, r->x, r->y, r->w, r->h);
 evas_object_image_data_update_add(cw->obj, r->x, r->y, r->w, r->h);
 EINA_LIST_FOREACH(cw->obj_mirror, l, o)
   evas_object_image_data_update_add(o, r->x, r->y, r->w, r->h);
@@ -3066,7 +3068,7 @@ e_comp_object_render(Evas_Object *obj)
 return EINA_FALSE;
  }
 
-
+   //INF("RENDER SIZE: %dx%d", pw, ph);
it = eina_tiler_iterator_new(cw->pending_updates);
if (e_pixmap_image_is_argb(cw->ec->pixmap))
  {

-- 




[EGIT] [core/enlightenment] master 11/21: disable shadows for override clients with alpha

2014-01-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=199882ea2537c2dc7974a010f457cea03bbc175a

commit 199882ea2537c2dc7974a010f457cea03bbc175a
Author: Mike Blumenkrantz 
Date:   Wed Jan 22 21:35:49 2014 -0500

disable shadows for override clients with alpha
---
 src/bin/e_comp_object.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index bd96a11..967dae6 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -469,7 +469,7 @@ _e_comp_object_shadow_setup(E_Comp_Object *cw)
  }
if (cw->ec->override)
  {
-if ((!cw->ec->shaped) && (!no_shadow))
+if ((!cw->ec->shaped) && (!no_shadow) && (!cw->ec->argb))
   e_comp_object_signal_emit(cw->smart_obj, "e,state,shadow,on", "e");
 else
   e_comp_object_signal_emit(cw->smart_obj, "e,state,shadow,off", "e");

-- 




[EGIT] [core/enlightenment] master 15/21: select shape events for override clients

2014-01-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=2d296615414d0723ef7a3e7adff60b8dd5c77a25

commit 2d296615414d0723ef7a3e7adff60b8dd5c77a25
Author: Mike Blumenkrantz 
Date:   Wed Jan 22 21:40:47 2014 -0500

select shape events for override clients
---
 src/bin/e_comp_x.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index a5000ff..2a8b83c 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -204,6 +204,8 @@ _e_comp_x_client_new_helper(E_Client *ec)

 
e_pixmap_visual_cmap_set(ec->pixmap, 
ec->comp_data->initial_attributes.visual, 
ec->comp_data->initial_attributes.colormap);
+   if (ec->override && (!ec->internal))
+ ecore_x_window_shape_events_select(win, 1);
if (ec->override && (!ec->input_only))
  ecore_x_present_select_events(win, 
ECORE_X_PRESENT_EVENT_MASK_CONFIGURE_NOTIFY);
if (ec->override && (!(ec->comp_data->initial_attributes.event_mask.mine & 
ECORE_X_EVENT_MASK_WINDOW_PROPERTY)))

-- 




[EGIT] [core/enlightenment] master 12/21: only set shape merge/export flags for non-override clients on resize

2014-01-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=2943d880427fdca13eb91d9765c9221e9ebe

commit 2943d880427fdca13eb91d9765c9221e9ebe
Author: Mike Blumenkrantz 
Date:   Wed Jan 22 21:36:47 2014 -0500

only set shape merge/export flags for non-override clients on resize
---
 src/bin/e_comp_object.c | 11 +++
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 967dae6..522d7f9 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -772,10 +772,13 @@ _e_comp_intercept_resize(void *data, Evas_Object *obj, 
int w, int h)
 //INF("INTERCEPT %dx%d", w, h);
 evas_object_resize(obj, w, h);
  }
-   cw->ec->need_shape_merge |= cw->ec->shaped || cw->ec->shaped_input;
-   cw->ec->need_shape_export |= cw->ec->shaped;
-   if (cw->ec->shaped || cw->ec->shaped_input)
- EC_CHANGED(cw->ec);
+   if (!cw->ec->override)
+ {
+cw->ec->need_shape_merge |= cw->ec->shaped || cw->ec->shaped_input;
+cw->ec->need_shape_export |= cw->ec->shaped;
+if (cw->ec->shaped || cw->ec->shaped_input)
+  EC_CHANGED(cw->ec);
+ }
 
/* this fixes positioning jiggles when using a resize mode
 * which also changes the client's position

-- 




[EGIT] [core/enlightenment] master 05/21: bugfix: remove drop handlers from responsive hash on deletion

2014-01-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=fdc3d298998d2979249c31a9b487d3a36a147578

commit fdc3d298998d2979249c31a9b487d3a36a147578
Author: Mike Blumenkrantz 
Date:   Wed Jan 22 16:04:58 2014 -0500

bugfix: remove drop handlers from responsive hash on deletion
---
 src/bin/e_dnd.c | 9 +
 1 file changed, 9 insertions(+)

diff --git a/src/bin/e_dnd.c b/src/bin/e_dnd.c
index fc34277..3dbc8d9 100644
--- a/src/bin/e_dnd.c
+++ b/src/bin/e_dnd.c
@@ -473,10 +473,19 @@ EAPI void
 e_drop_handler_del(E_Drop_Handler *handler)
 {
unsigned int i;
+   Eina_List *l;
+   Ecore_X_Window hwin;
 
if (!handler)
  return;
 
+   hwin = _e_drag_win_get(handler, 1);
+   if (hwin)
+ {
+l = eina_hash_find(_drop_handlers_responsives, &hwin);
+if (l)
+  eina_hash_set(_drop_handlers_responsives, &hwin, eina_list_remove(l, 
handler));
+ }
_drop_handlers = eina_list_remove(_drop_handlers, handler);
if (handler->active)
  _active_handlers = eina_list_remove(_active_handlers, handler);

-- 




[EGIT] [core/enlightenment] master 10/21: clean up comp object autoclosing when overwriting existing autoclose object

2014-01-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=6b246c7c8a3fcaff08aa24d4d29c40c77cb1b441

commit 6b246c7c8a3fcaff08aa24d4d29c40c77cb1b441
Author: Mike Blumenkrantz 
Date:   Wed Jan 22 17:16:10 2014 -0500

clean up comp object autoclosing when overwriting existing autoclose object
---
 src/bin/e_comp_object.c | 32 +++-
 1 file changed, 19 insertions(+), 13 deletions(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 74d5cc4..bd96a11 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -3289,15 +3289,14 @@ e_comp_object_effect_stop(Evas_Object *obj, 
Edje_Signal_Cb end_cb EINA_UNUSED)
 
 
 static void
-_e_comp_object_autoclose_cleanup(E_Comp *c)
+_e_comp_object_autoclose_cleanup(E_Comp *c, Eina_Bool already_del)
 {
if (c->autoclose.obj)
  {
-c = e_comp_util_evas_object_comp_get(c->autoclose.obj);
 e_comp_ungrab_input(c, 0, 1);
 if (c->autoclose.del_cb)
   c->autoclose.del_cb(c->autoclose.data, c->autoclose.obj);
-else
+else if (!already_del)
   {
  evas_object_hide(c->autoclose.obj);
  E_FREE_FUNC(c->autoclose.obj, evas_object_del);
@@ -3321,14 +3320,14 @@ _e_comp_object_autoclose_key_down_cb(void *data, int 
type EINA_UNUSED, void *eve
 
if (c->autoclose.key_cb)
  del = !c->autoclose.key_cb(c->autoclose.data, ev);
-   if (del) _e_comp_object_autoclose_cleanup(data);
+   if (del) _e_comp_object_autoclose_cleanup(data, 0);
return ECORE_CALLBACK_RENEW;
 }
 
 static void
 _e_comp_object_autoclose_mouse_up_cb(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
 {
-   _e_comp_object_autoclose_cleanup(data);
+   _e_comp_object_autoclose_cleanup(data, 0);
 }
 
 static void
@@ -3339,17 +3338,18 @@ _e_comp_object_autoclose_setup(Evas_Object *obj)
if (!c->autoclose.rect)
  {
 c->autoclose.rect = evas_object_rectangle_add(c->evas);
+evas_object_move(c->autoclose.rect, 0, 0);
+evas_object_resize(c->autoclose.rect, c->man->w, c->man->h);
+evas_object_show(c->autoclose.rect);
 evas_object_name_set(c->autoclose.rect, "c->autoclose.rect");
 evas_object_color_set(c->autoclose.rect, 0, 0, 0, 0);
 evas_object_event_callback_add(c->autoclose.rect, 
EVAS_CALLBACK_MOUSE_UP, _e_comp_object_autoclose_mouse_up_cb, c);
+e_comp_grab_input(c, 0, 1);
  }
-   evas_object_move(c->autoclose.rect, 0, 0);
-   evas_object_resize(c->autoclose.rect, c->man->w, c->man->h);
evas_object_layer_set(c->autoclose.rect, evas_object_layer_get(obj) - 1);
-   evas_object_show(c->autoclose.rect);
e_comp_shape_queue(c);
-   c->autoclose.key_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, 
_e_comp_object_autoclose_key_down_cb, c);
-   e_comp_grab_input(c, 0, 1);
+   if (!c->autoclose.key_handler)
+ c->autoclose.key_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, 
_e_comp_object_autoclose_key_down_cb, c);
 }
 
 static void
@@ -3363,7 +3363,7 @@ static void
 _e_comp_object_autoclose_del(void *data, Evas *e EINA_UNUSED, Evas_Object 
*obj, void *event_info EINA_UNUSED)
 {
evas_object_event_callback_del(obj, EVAS_CALLBACK_SHOW, 
_e_comp_object_autoclose_show);
-   _e_comp_object_autoclose_cleanup(data);
+   _e_comp_object_autoclose_cleanup(data, 1);
 }
 
 EAPI void
@@ -3377,11 +3377,17 @@ e_comp_object_util_autoclose(Evas_Object *obj, 
E_Comp_Object_Autoclose_Cb del_cb
EINA_SAFETY_ON_NULL_RETURN(c);
if (c->autoclose.obj)
  {
-/* block overwrite of current autoclose object */
-if (c->autoclose.obj != obj) return;
+if (c->autoclose.obj == obj) return;
+evas_object_event_callback_del_full(c->autoclose.obj, 
EVAS_CALLBACK_DEL, _e_comp_object_autoclose_del, c);
+c->autoclose.obj = obj;
 c->autoclose.del_cb = del_cb;
 c->autoclose.key_cb = cb;
 c->autoclose.data = (void*)data;
+if (evas_object_visible_get(obj))
+  _e_comp_object_autoclose_setup(obj);
+else
+  evas_object_event_callback_add(obj, EVAS_CALLBACK_SHOW, 
_e_comp_object_autoclose_show, c);
+evas_object_event_callback_add(obj, EVAS_CALLBACK_DEL, 
_e_comp_object_autoclose_del, c);
 return;
  }
c->autoclose.obj = obj;

-- 




[EGIT] [core/enlightenment] enlightenment-0.18 03/03: bugfix: remove drop handlers from responsive hash on deletion

2014-01-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.18.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=030ade5ad36b20c93b15a1bb15e4a50b268ff49c

commit 030ade5ad36b20c93b15a1bb15e4a50b268ff49c
Author: Mike Blumenkrantz 
Date:   Wed Jan 22 16:04:58 2014 -0500

bugfix: remove drop handlers from responsive hash on deletion
---
 src/bin/e_dnd.c | 9 +
 1 file changed, 9 insertions(+)

diff --git a/src/bin/e_dnd.c b/src/bin/e_dnd.c
index 0e85a3e..c62f41a 100644
--- a/src/bin/e_dnd.c
+++ b/src/bin/e_dnd.c
@@ -457,10 +457,19 @@ EAPI void
 e_drop_handler_del(E_Drop_Handler *handler)
 {
unsigned int i;
+   Eina_List *l;
+   Ecore_X_Window hwin;
 
if (!handler)
  return;
 
+   hwin = _e_drag_win_get(handler, 1);
+   if (hwin)
+ {
+l = eina_hash_find(_drop_handlers_responsives, &hwin);
+if (l)
+  eina_hash_set(_drop_handlers_responsives, &hwin, eina_list_remove(l, 
handler));
+ }
_drop_handlers = eina_list_remove(_drop_handlers, handler);
if (handler->active)
  _active_handlers = eina_list_remove(_active_handlers, handler);

-- 




[EGIT] [core/enlightenment] enlightenment-0.18 02/03: bugfix: efm dnd to external windows

2014-01-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.18.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=cce603ea0288ade507138137bea1871b4ba34900

commit cce603ea0288ade507138137bea1871b4ba34900
Author: Mike Blumenkrantz 
Date:   Wed Jan 22 15:59:30 2014 -0500

bugfix: efm dnd to external windows

deleting the drag at this point deletes the window which owns the current 
selection, guaranteeing that the operation will fail
---
 src/bin/e_dnd.c | 7 ++-
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/src/bin/e_dnd.c b/src/bin/e_dnd.c
index 06f7914..0e85a3e 100644
--- a/src/bin/e_dnd.c
+++ b/src/bin/e_dnd.c
@@ -961,9 +961,6 @@ _e_drag_end(int x, int y)
   _drag_current->cb.finished(_drag_current, dropped);
 _drag_current->cb.finished = NULL;
 
-if (_drag_current && (!_xdnd))
-  e_object_del(E_OBJECT(_drag_current));
-//e_grabinput_release(_drag_win, _drag_win);
 return;
  }
 
@@ -1344,8 +1341,8 @@ _e_dnd_cb_event_dnd_finished(void *data __UNUSED__, int 
type __UNUSED__, void *e
if (!ev->completed) return ECORE_CALLBACK_PASS_ON;
  */
 
-   if (_drag_win) ecore_x_window_free(_drag_win);
-   _drag_win = 0;
+   if (_drag_current && (!_xdnd))
+ e_object_del(E_OBJECT(_drag_current));
return ECORE_CALLBACK_PASS_ON;
 }
 

-- 




[EGIT] [core/enlightenment] master 18/21: break out X shape rect check loop into helper function

2014-01-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=c24d3c60aaa01079c9fa3e6bb3343ce50c1c

commit c24d3c60aaa01079c9fa3e6bb3343ce50c1c
Author: Mike Blumenkrantz 
Date:   Wed Jan 22 21:43:25 2014 -0500

break out X shape rect check loop into helper function
---
 src/bin/e_comp_x.c | 78 +-
 1 file changed, 42 insertions(+), 36 deletions(-)

diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index 57bc6d9..eb38dae 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -2536,6 +2536,46 @@ _e_comp_x_hook_client_eval_end(void *d EINA_UNUSED, 
E_Client *ec)
  }
 }
 
+static Eina_Bool
+_e_comp_x_client_shape_rects_check(E_Client *ec, Ecore_X_Rectangle *rects, int 
num)
+{
+   Eina_Bool changed = 1;
+   Ecore_X_Rectangle *orects;
+
+   if (((unsigned int)num == ec->shape_rects_num) && (ec->shape_rects))
+ {
+int i;
+
+orects = (Ecore_X_Rectangle*)ec->shape_rects;
+changed = 0;
+for (i = 0; i < num; i++)
+  {
+ E_RECTS_CLIP_TO_RECT(rects[i].x, rects[i].y,
+   rects[i].width, rects[i].height, 0, 0, ec->client.w, 
ec->client.h);
+
+ if ((orects[i].x != rects[i].x) ||
+ (orects[i].y != rects[i].y) ||
+ (orects[i].width != rects[i].width) ||
+ (orects[i].height != rects[i].height))
+   {
+  changed = 1;
+  break;
+   }
+  }
+ }
+   if (changed)
+ {
+E_FREE(ec->shape_rects);
+ec->shape_rects = (Eina_Rectangle*)rects;
+ec->shape_rects_num = num;
+ec->shape_changed = 1;
+e_comp_shape_queue(ec->comp);
+ }
+   else
+ free(rects);
+   return changed;
+}
+
 static void
 _e_comp_x_hook_client_post_new_client(void *d EINA_UNUSED, E_Client *ec)
 {
@@ -2585,46 +2625,12 @@ _e_comp_x_hook_client_post_new_client(void *d 
EINA_UNUSED, E_Client *ec)
 
if (ec->need_shape_export)
  {
-Ecore_X_Rectangle *rects, *orects;
+Ecore_X_Rectangle *rects;
 int num;
 
 rects = ecore_x_window_shape_rectangles_get(e_client_util_win_get(ec), 
&num);
 if (rects)
-  {
- int changed = 1;
-
- if (((unsigned int)num == ec->shape_rects_num) && 
(ec->shape_rects))
-   {
-  int i;
-
-  orects = (Ecore_X_Rectangle*)ec->shape_rects;
-  changed = 0;
-  for (i = 0; i < num; i++)
-{
-   E_RECTS_CLIP_TO_RECT(rects[i].x, rects[i].y,
- rects[i].width, rects[i].height, 0, 0, ec->client.w, 
ec->client.h);
-
-   if ((orects[i].x != rects[i].x) ||
-   (orects[i].y != rects[i].y) ||
-   (orects[i].width != rects[i].width) ||
-   (orects[i].height != rects[i].height))
- {
-changed = 1;
-break;
- }
-}
-   }
- if (changed)
-   {
-  E_FREE(ec->shape_rects);
-  ec->shape_rects = (Eina_Rectangle*)rects;
-  ec->shape_rects_num = num;
-  ec->shape_changed = 1;
-  e_comp_shape_queue(ec->comp);
-   }
- else
-   free(rects);
-  }
+  _e_comp_x_client_shape_rects_check(ec, rects, num);
 else
   {
  E_FREE(ec->shape_rects);

-- 




[EGIT] [core/enlightenment] master 07/21: fix compositor grab tracking

2014-01-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=aad88716a4bd42b1466426fe6f9c229163cc3236

commit aad88716a4bd42b1466426fe6f9c229163cc3236
Author: Mike Blumenkrantz 
Date:   Wed Jan 22 16:45:53 2014 -0500

fix compositor grab tracking

it's possible to have multiple/recursive grabs, so the number of grabs 
active needs to be tracked

T820
---
 src/bin/e_comp.c | 33 +++--
 src/bin/e_comp.h |  2 ++
 2 files changed, 33 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c
index d626e8f..278eaa6 100644
--- a/src/bin/e_comp.c
+++ b/src/bin/e_comp.c
@@ -1711,13 +1711,42 @@ e_comp_e_object_layer_get(const E_Object *obj)
 EAPI Eina_Bool
 e_comp_grab_input(E_Comp *c, Eina_Bool mouse, Eina_Bool kbd)
 {
-   return e_grabinput_get((!!mouse) * c->ee_win, 0, (!!kbd) * c->ee_win);
+   Eina_Bool ret = EINA_FALSE;
+   Ecore_Window mwin = 0, kwin = 0;
+
+   mouse = !!mouse;
+   kbd = !!kbd;
+   if (mouse || c->input_mouse_grabs)
+ mwin = c->ee_win;
+   if (kbd || c->input_mouse_grabs)
+ kwin = c->ee_win;
+   if ((c->input_mouse_grabs && c->input_key_grabs) ||
+   e_grabinput_get(mwin, 0, kwin))
+ {
+ret = EINA_TRUE;
+c->input_mouse_grabs += mouse;
+c->input_key_grabs += kbd;
+ }
+   return ret;
 }
 
 EAPI void
 e_comp_ungrab_input(E_Comp *c, Eina_Bool mouse, Eina_Bool kbd)
 {
-   e_grabinput_release((!!mouse) * c->ee_win, (!!kbd) * c->ee_win);
+   Ecore_Window mwin = 0, kwin = 0;
+
+   mouse = !!mouse;
+   kbd = !!kbd;
+   if (mouse && (c->input_mouse_grabs == 1))
+ mwin = c->ee_win;
+   if (kbd && (c->input_key_grabs == 1))
+ kwin = c->ee_win;
+   if (c->input_mouse_grabs)
+ c->input_mouse_grabs -= mouse;
+   if (c->input_key_grabs)
+ c->input_key_grabs -= kbd;
+   if ((!mwin) || (!kwin)) return;
+   e_grabinput_release(mwin, kwin);
evas_event_feed_mouse_out(c->evas, 0, NULL);
evas_event_feed_mouse_in(c->evas, 0, NULL);
 }
diff --git a/src/bin/e_comp.h b/src/bin/e_comp.h
index dd86913..1ee47a5 100644
--- a/src/bin/e_comp.h
+++ b/src/bin/e_comp.h
@@ -101,6 +101,8 @@ struct _E_Comp
Ecore_Window  cm_selection; //FIXME: move to comp_x ?
 
int depth;
+   unsigned intinput_key_grabs;
+   unsigned intinput_mouse_grabs;
 
Ecore_Cbgrab_cb;
Ecore_Cbbindings_grab_cb;

-- 




[EGIT] [core/enlightenment] master 09/21: set syscon popup layer before autoclose

2014-01-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=e23019825e8a3f318de1468e94daa1002aeffb93

commit e23019825e8a3f318de1468e94daa1002aeffb93
Author: Mike Blumenkrantz 
Date:   Wed Jan 22 17:14:21 2014 -0500

set syscon popup layer before autoclose
---
 src/modules/syscon/e_syscon.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/modules/syscon/e_syscon.c b/src/modules/syscon/e_syscon.c
index 8658685..a64cd2a 100644
--- a/src/modules/syscon/e_syscon.c
+++ b/src/modules/syscon/e_syscon.c
@@ -90,8 +90,8 @@ e_syscon_show(E_Zone *zone, const char *defact)
 
popup = e_comp_object_util_add(o_bg, E_COMP_OBJECT_TYPE_POPUP);
evas_object_data_set(popup, "zone", zone);
-   e_comp_object_util_autoclose(popup, NULL, _cb_key_down, NULL);
evas_object_layer_set(popup, E_LAYER_POPUP);
+   e_comp_object_util_autoclose(popup, NULL, _cb_key_down, NULL);
act_count = 0;
show_time = t;
 

-- 




[EGIT] [core/enlightenment] master 21/21: reset focus to last focused client upon closing an autoclose object

2014-01-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=e115cbc906af34def94b3fd72130cfd6aa97a8ee

commit e115cbc906af34def94b3fd72130cfd6aa97a8ee
Author: Mike Blumenkrantz 
Date:   Wed Jan 22 22:11:47 2014 -0500

reset focus to last focused client upon closing an autoclose object
---
 src/bin/e_comp_object.c | 10 ++
 1 file changed, 10 insertions(+)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 42cea7d..b2d76e7 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -3369,8 +3369,18 @@ _e_comp_object_autoclose_show(void *data EINA_UNUSED, 
Evas *e EINA_UNUSED, Evas_
 static void
 _e_comp_object_autoclose_del(void *data, Evas *e EINA_UNUSED, Evas_Object 
*obj, void *event_info EINA_UNUSED)
 {
+   E_Client *ec;
+   Eina_List *l;
+
evas_object_event_callback_del(obj, EVAS_CALLBACK_SHOW, 
_e_comp_object_autoclose_show);
_e_comp_object_autoclose_cleanup(data, 1);
+   if (e_client_focused_get()) return;
+   EINA_LIST_FOREACH(e_client_focus_stack_get(), l, ec)
+ if (ec->desk && ec->desk->visible)
+   {
+  evas_object_focus_set(ec->frame, 1);
+  break;
+   }
 }
 
 EAPI void

-- 




[EGIT] [core/enlightenment] master 19/21: handle shaped overrides more accurately for theme and rendering

2014-01-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=5549c1b5302bebba3bcd494797e214357022adb5

commit 5549c1b5302bebba3bcd494797e214357022adb5
Author: Mike Blumenkrantz 
Date:   Wed Jan 22 21:44:25 2014 -0500

handle shaped overrides more accurately for theme and rendering

overrides don't get to do shape exports for rendering, so this needs to be 
done during the initial shape check
---
 src/bin/e_comp_x.c | 10 +-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index eb38dae..88a7ade 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -3594,12 +3594,20 @@ _e_comp_x_hook_client_fetch(void *d EINA_UNUSED, 
E_Client *ec)
 EC_CHANGED(ec);
  }
 }
+  else
+{
+   if (_e_comp_x_client_shape_rects_check(ec, rects, num))
+ e_comp_object_damage(ec->frame, 0, 0, ec->w, ec->h);
+}
   ec->shaped = 1;
   ec->changes.shape_input = 0;
   E_FREE(ec->shape_input_rects);
   ec->shape_input_rects_num = 0;
}
- free(rects);
+ if (ec->comp_data->reparented || (!ec->shaped))
+   free(rects);
+ if (ec->shape_changed)
+   e_comp_object_frame_theme_set(ec->frame, 
E_COMP_OBJECT_FRAME_RESHADOW);
   }
 else
   {

-- 




[EGIT] [core/enlightenment] enlightenment-0.18 01/03: bugfix: multiple drop handlers using same window no longer overwrite each other

2014-01-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.18.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=a581f5566f0cd6d3a45918d4ea7abbdaa605f3e2

commit a581f5566f0cd6d3a45918d4ea7abbdaa605f3e2
Author: Mike Blumenkrantz 
Date:   Wed Jan 22 13:40:24 2014 -0500

bugfix: multiple drop handlers using same window no longer overwrite each 
other
---
 src/bin/e_dnd.c | 12 +++-
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/bin/e_dnd.c b/src/bin/e_dnd.c
index 52a3b7c..06f7914 100644
--- a/src/bin/e_dnd.c
+++ b/src/bin/e_dnd.c
@@ -111,7 +111,7 @@ e_dnd_init(void)
_text_atom = ecore_x_atom_get("text/plain");
 
_drop_win_hash = eina_hash_string_superfast_new(NULL);
-   _drop_handlers_responsives = eina_hash_string_superfast_new(NULL);
+   _drop_handlers_responsives = eina_hash_int32_new(NULL);
 
E_LIST_HANDLER_APPEND(_event_handlers, ECORE_EVENT_MOUSE_BUTTON_UP, 
_e_dnd_cb_mouse_up, NULL);
E_LIST_HANDLER_APPEND(_event_handlers, ECORE_EVENT_MOUSE_MOVE, 
_e_dnd_cb_mouse_move, NULL);
@@ -496,18 +496,20 @@ EAPI void
 e_drop_handler_responsive_set(E_Drop_Handler *handler)
 {
Ecore_X_Window hwin = _e_drag_win_get(handler, 1);
-   const char *wid = e_util_winid_str_get(hwin);
+   Eina_List *l;
 
-   eina_hash_add(_drop_handlers_responsives, wid, (void *)handler);
+   l = eina_hash_find(_drop_handlers_responsives, &hwin);
+   eina_hash_set(_drop_handlers_responsives, &hwin, eina_list_append(l, 
handler));
 }
 
 EAPI int
 e_drop_handler_responsive_get(const E_Drop_Handler *handler)
 {
Ecore_X_Window hwin = _e_drag_win_get(handler, 1);
-   const char *wid = e_util_winid_str_get(hwin);
+   Eina_List *l;
 
-   return eina_hash_find(_drop_handlers_responsives, wid) == (void *)handler;
+   l = eina_hash_find(_drop_handlers_responsives, &hwin);
+   return l && eina_list_data_find(l, handler);
 }
 
 EAPI void

-- 




[EGIT] [core/enlightenment] master 04/21: bugfix: efm dnd to external windows

2014-01-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=3e0cbdc4416f910342347dacdc980008dcc4bcf0

commit 3e0cbdc4416f910342347dacdc980008dcc4bcf0
Author: Mike Blumenkrantz 
Date:   Wed Jan 22 15:59:30 2014 -0500

bugfix: efm dnd to external windows

deleting the drag at this point deletes the window which owns the current 
selection, guaranteeing that the operation will fail

T797
---
 src/bin/e_dnd.c | 7 ++-
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/src/bin/e_dnd.c b/src/bin/e_dnd.c
index c6c2627..fc34277 100644
--- a/src/bin/e_dnd.c
+++ b/src/bin/e_dnd.c
@@ -954,9 +954,6 @@ _e_drag_end(int x, int y)
   _drag_current->cb.finished(_drag_current, dropped);
 _drag_current->cb.finished = NULL;
 
-if (_drag_current && (!_xdnd))
-  e_object_del(E_OBJECT(_drag_current));
-//e_grabinput_release(_drag_win, _drag_win);
 return;
  }
 
@@ -1332,8 +1329,8 @@ _e_dnd_cb_event_dnd_finished(void *data __UNUSED__, int 
type __UNUSED__, void *e
if (!ev->completed) return ECORE_CALLBACK_PASS_ON;
  */
 
-   if (_drag_win) ecore_x_window_free(_drag_win);
-   _drag_win = 0;
+   if (_drag_current && (!_xdnd))
+ e_object_del(E_OBJECT(_drag_current));
return ECORE_CALLBACK_PASS_ON;
 }
 

-- 




[EGIT] [core/enlightenment] master 16/21: allow toggling composite window events for override windows

2014-01-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=14207e9770a61f1fee5b10519a86e4532f5fd82a

commit 14207e9770a61f1fee5b10519a86e4532f5fd82a
Author: Mike Blumenkrantz 
Date:   Wed Jan 22 21:41:32 2014 -0500

allow toggling composite window events for override windows
---
 src/bin/e_comp_x.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index 2a8b83c..b650a2d 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -683,7 +683,7 @@ _e_comp_x_client_pri_norm(E_Client *ec)
 static void
 _e_comp_x_client_shape_input_rectangle_set(E_Client *ec)
 {
-   Ecore_X_Window win = e_client_util_pwin_get(ec);
+   Ecore_X_Window win = _e_comp_x_client_window_get(ec);
 
if (!ec->comp_data->reparented) return;
 

-- 




[EGIT] [core/enlightenment] master 08/21: use regular comp grabs for menu

2014-01-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=9a3ea2d1bbeae504400148f60bf8b951aa88f110

commit 9a3ea2d1bbeae504400148f60bf8b951aa88f110
Author: Mike Blumenkrantz 
Date:   Wed Jan 22 17:06:26 2014 -0500

use regular comp grabs for menu
---
 src/bin/e_menu.c | 9 ++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/bin/e_menu.c b/src/bin/e_menu.c
index 98eb0af..1456ee6 100644
--- a/src/bin/e_menu.c
+++ b/src/bin/e_menu.c
@@ -1207,8 +1207,11 @@ e_menu_idler_before(void)
  {
 if (_e_menu_win)
   {
- e_grabinput_release(_e_menu_win, _e_menu_win);
- _mouse_up_feed(e_comp_find_by_window(_e_menu_win)->evas, 0);
+ E_Comp *c;
+
+ c = e_comp_find_by_window(_e_menu_win);
+ if (!c) c = e_comp_get(NULL);
+ e_comp_ungrab_input(c, 1, 1);
  _e_menu_win = 0;
   }
  }
@@ -1991,7 +1994,7 @@ _e_menu_activate_internal(E_Menu *m, E_Zone *zone)
if (!_e_menu_win)
  {
 _e_menu_win = zone->comp->ee_win;
-if (!e_grabinput_get(_e_menu_win, 0, _e_menu_win))
+if (!e_comp_grab_input(zone->comp, 1, 1))
   {
  _e_menu_win = 0;
  return;

-- 




[EGIT] [core/enlightenment] master 01/21: force prerendering for internal clients

2014-01-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=db7a1f6df30fb80572e449bc3d2d75567f7d

commit db7a1f6df30fb80572e449bc3d2d75567f7d
Author: Mike Blumenkrantz 
Date:   Tue Jan 21 18:50:00 2014 -0500

force prerendering for internal clients

we can assume that these are always going to be ready for drawing 
immediately, and sometimes X fucks up the damages so it's best to go with the 
full frame from the beginning
---
 src/bin/e_comp_object.c | 6 +-
 src/bin/e_comp_x.c  | 1 +
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 24bf67b..1ab2b38 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -1228,7 +1228,11 @@ _e_comp_intercept_show_helper(E_Comp_Object *cw)
  }
 
if (!cw->real_hid)
- evas_object_show(cw->smart_obj);
+ {
+if (cw->ec->internal)
+  e_comp_object_damage(cw->smart_obj, 0, 0, cw->w, cw->h);
+evas_object_show(cw->smart_obj);
+ }
 }
 
 static void
diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index bd2fa42..a5000ff 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -4005,6 +4005,7 @@ _e_comp_x_hook_client_new(void *d EINA_UNUSED, E_Client 
*ec)
ec->ignored = e_comp_ignore_win_find(win);
 
ec->comp_data = E_NEW(E_Comp_Client_Data, 1);
+   ec->comp_data->first_damage = ec->internal;
ec->comp_data->set_win_type = ec->comp_data->fetch_exe = 1;
 
/* FIXME: ewww - round trip */

-- 




[EGIT] [core/enlightenment] master 03/21: bugfix: multiple drop handlers using same window no longer overwrite each other

2014-01-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=d86051ff82e60ed56841e857dfff6521337ab1a8

commit d86051ff82e60ed56841e857dfff6521337ab1a8
Author: Mike Blumenkrantz 
Date:   Wed Jan 22 13:40:24 2014 -0500

bugfix: multiple drop handlers using same window no longer overwrite each 
other
---
 src/bin/e_dnd.c | 12 +++-
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/bin/e_dnd.c b/src/bin/e_dnd.c
index e5a4697..c6c2627 100644
--- a/src/bin/e_dnd.c
+++ b/src/bin/e_dnd.c
@@ -111,7 +111,7 @@ e_dnd_init(void)
_text_atom = ecore_x_atom_get("text/plain");
 
_drop_win_hash = eina_hash_int32_new(NULL);
-   _drop_handlers_responsives = eina_hash_string_superfast_new(NULL);
+   _drop_handlers_responsives = eina_hash_int32_new(NULL);
 
E_LIST_HANDLER_APPEND(_event_handlers, ECORE_EVENT_MOUSE_BUTTON_UP, 
_e_dnd_cb_mouse_up, NULL);
E_LIST_HANDLER_APPEND(_event_handlers, ECORE_EVENT_MOUSE_MOVE, 
_e_dnd_cb_mouse_move, NULL);
@@ -509,18 +509,20 @@ EAPI void
 e_drop_handler_responsive_set(E_Drop_Handler *handler)
 {
Ecore_X_Window hwin = _e_drag_win_get(handler, 1);
-   const char *wid = e_util_winid_str_get(hwin);
+   Eina_List *l;
 
-   eina_hash_add(_drop_handlers_responsives, wid, (void *)handler);
+   l = eina_hash_find(_drop_handlers_responsives, &hwin);
+   eina_hash_set(_drop_handlers_responsives, &hwin, eina_list_append(l, 
handler));
 }
 
 EAPI int
 e_drop_handler_responsive_get(const E_Drop_Handler *handler)
 {
Ecore_X_Window hwin = _e_drag_win_get(handler, 1);
-   const char *wid = e_util_winid_str_get(hwin);
+   Eina_List *l;
 
-   return eina_hash_find(_drop_handlers_responsives, wid) == (void *)handler;
+   l = eina_hash_find(_drop_handlers_responsives, &hwin);
+   return l && eina_list_data_find(l, handler);
 }
 
 EAPI void

-- 




[EGIT] [core/enlightenment] master 17/21: only set shape export flag during shape update event for non-overrides

2014-01-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=ae4e98b856d6d35a80075fae52854de6425b9a8a

commit ae4e98b856d6d35a80075fae52854de6425b9a8a
Author: Mike Blumenkrantz 
Date:   Wed Jan 22 21:42:38 2014 -0500

only set shape export flag during shape update event for non-overrides
---
 src/bin/e_comp_x.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index b650a2d..57bc6d9 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -2429,7 +2429,7 @@ _e_comp_x_shape(void *data EINA_UNUSED, int type 
EINA_UNUSED, Ecore_X_Event_Wind
{
   /* bounding box changed, need export for rendering */
   EINA_RECTANGLE_SET(&ec->comp_data->shape, ev->x, ev->y, 
ev->w, ev->h);
-  ec->need_shape_export = 1;
+  ec->need_shape_export = !ec->override;
}
  ec->changes.shape = 1;
   }

-- 




[EGIT] [core/enlightenment] master 02/21: shadow checks for overrides only need to check for shaped and comp match

2014-01-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=2dac967604d1a59c61145e3d4ad99cb37c62345a

commit 2dac967604d1a59c61145e3d4ad99cb37c62345a
Author: Mike Blumenkrantz 
Date:   Wed Jan 22 11:11:07 2014 -0500

shadow checks for overrides only need to check for shaped and comp match

T833
---
 src/bin/e_comp_object.c | 17 +
 1 file changed, 1 insertion(+), 16 deletions(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 1ab2b38..d864b84 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -132,21 +132,6 @@ _e_comp_shaped_check(int w, int h, const Eina_Rectangle 
*rects, int num)
 
 /
 
-static Eina_Bool
-_e_comp_object_do_shadow(E_Comp_Object *cw)
-{
-   if (cw->ec)
- {
-if (cw->ec->shaped) return 0;
-if (cw->frame_object) return 0;
-if (e_client_util_borderless(cw->ec))
-  return 0;
- }
-   return 1;
-}
-
-/
-
 static void
 _e_comp_object_layers_add(E_Comp_Object *cw, E_Comp_Object *above, 
E_Comp_Object *below, Eina_Bool prepend)
 {
@@ -486,7 +471,7 @@ _e_comp_object_shadow_setup(E_Comp_Object *cw)
  }
if (cw->ec->override)
  {
-if (_e_comp_object_do_shadow(cw) && (!no_shadow))
+if ((!cw->ec->shaped) && (!no_shadow))
   e_comp_object_signal_emit(cw->smart_obj, "e,state,shadow,on", "e");
 else
   e_comp_object_signal_emit(cw->smart_obj, "e,state,shadow,off", "e");

-- 




[EGIT] [core/enlightenment] master 06/21: use client fullscreen flag to determine current fullscreen state

2014-01-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=b363dc802dae0cfb6cb7b4179966f3650615e592

commit b363dc802dae0cfb6cb7b4179966f3650615e592
Author: Mike Blumenkrantz 
Date:   Wed Jan 22 16:28:14 2014 -0500

use client fullscreen flag to determine current fullscreen state

T834
---
 src/bin/e_comp_object.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index d864b84..74d5cc4 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -343,10 +343,8 @@ _e_comp_object_shadow_client_match(const E_Client *ec, 
E_Comp_Match *m)
 }
   if (m->fullscreen != 0)
 {
-   int fullscreen = 0;
+   int fullscreen = ec->fullscreen;
 
-   if (ec->netwm.state.fullscreen)
- fullscreen = 1;
if (!(((m->fullscreen == -1) && (!fullscreen)) ||
  ((m->fullscreen == 1) && (fullscreen
  return EINA_FALSE;

-- 




[EGIT] [core/enlightenment] master 01/03: unset shape event selection on systray xembed base

2014-01-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=146f1662d9d6c1d96c4c2b9d81012eeaaa1a08c3

commit 146f1662d9d6c1d96c4c2b9d81012eeaaa1a08c3
Author: Mike Blumenkrantz 
Date:   Wed Jan 22 22:32:53 2014 -0500

unset shape event selection on systray xembed base
---
 src/modules/systray/e_mod_xembed.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/modules/systray/e_mod_xembed.c 
b/src/modules/systray/e_mod_xembed.c
index ca7cf0c..83680e2 100644
--- a/src/modules/systray/e_mod_xembed.c
+++ b/src/modules/systray/e_mod_xembed.c
@@ -852,6 +852,7 @@ _systray_xembed_client_add(Instance_Xembed *xembed, int t 
EINA_UNUSED, E_Event_C
 xembed->ec = ev->ec;
 ev->ec->internal_no_remember = ev->ec->borderless = ev->ec->visible = 
ev->ec->internal = 1;
 ev->ec->border.changed = 1;
+ecore_x_window_shape_events_select(e_client_util_win_get(ev->ec), 0);
 _xembed_win_resize(xembed);
 ev->ec->icccm.take_focus = ev->ec->icccm.accepts_focus = 0;
 EC_CHANGED(ev->ec);

-- 




[EGIT] [core/enlightenment] master 02/03: don't select shape events for input_only clients, do set for internal clients

2014-01-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=7f72d160af69348209deaf696a4e32eb4ef2dd13

commit 7f72d160af69348209deaf696a4e32eb4ef2dd13
Author: Mike Blumenkrantz 
Date:   Wed Jan 22 22:34:01 2014 -0500

don't select shape events for input_only clients, do set for internal 
clients
---
 src/bin/e_comp_x.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index 88a7ade..ea4b5fb 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -204,7 +204,7 @@ _e_comp_x_client_new_helper(E_Client *ec)

 
e_pixmap_visual_cmap_set(ec->pixmap, 
ec->comp_data->initial_attributes.visual, 
ec->comp_data->initial_attributes.colormap);
-   if (ec->override && (!ec->internal))
+   if (ec->override && (!ec->input_only))
  ecore_x_window_shape_events_select(win, 1);
if (ec->override && (!ec->input_only))
  ecore_x_present_select_events(win, 
ECORE_X_PRESENT_EVENT_MASK_CONFIGURE_NOTIFY);

-- 




[EGIT] [core/enlightenment] master 03/03: ignore only non-override non-reparented clients when disabling composite events

2014-01-22 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=0f3e3ae5da7fb43d2b4af88f5d6eaca24dff385f

commit 0f3e3ae5da7fb43d2b4af88f5d6eaca24dff385f
Author: Mike Blumenkrantz 
Date:   Wed Jan 22 22:34:55 2014 -0500

ignore only non-override non-reparented clients when disabling composite 
events
---
 src/bin/e_comp_x.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index ea4b5fb..9f059bf 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -685,7 +685,7 @@ _e_comp_x_client_shape_input_rectangle_set(E_Client *ec)
 {
Ecore_X_Window win = _e_comp_x_client_window_get(ec);
 
-   if (!ec->comp_data->reparented) return;
+   if ((!ec->override) && (!ec->comp_data->reparented)) return;
 
if (ec->shaped_input)
  ecore_x_composite_window_events_disable(win);

-- 




Re: [E-devel] [EGIT] [core/elementary] master 01/01: [naviframe] Fix to enable item deletion in pop_cb

2014-01-22 Thread ChunEon Park
uh im late. Seoz fixed. it.
thanks for report.

-Regards, Hermet-

-Original Message-
From: "Gustavo Lima Chaves" 
To: "Enlightenment developer list"; 
Cc: 
Sent: 2014-01-22 (수) 22:17:44
Subject: Re: [E-devel] [EGIT] [core/elementary] master 01/01: [naviframe] Fix 
to enable item deletion in pop_cb

* Jaehyun Cho @samsung.com> [2014-01-22 05:14:53 -0800]:

> hermet pushed a commit to branch master.
> 
> http://git.enlightenment.org/core/elementary.git/commit/?id=bb39f8616f682af873ccf407086f8ce092369a11
> 
> commit bb39f8616f682af873ccf407086f8ce092369a11
> Author: Jaehyun Cho @samsung.com>
> Date:   Wed Jan 22 22:13:51 2014 +0900
> 
> [naviframe] Fix to enable item deletion in pop_cb
> 
> Summary: Fix to enable item deletion in the registered pop_cb function
> 
> Reviewers: Hermet
> 
> Reviewed By: Hermet
> 
> CC: seoz
> 
> Differential Revision: https://phab.enlightenment.org/D487
> ---
>  src/lib/elc_naviframe.c 15 +++
>  src/lib/elm_widget_naviframe.h   2 ++
>  2 files changed, 17 insertions(+)
> 
> diff --git a/src/lib/elc_naviframe.c b/src/lib/elc_naviframe.c
> index a2a1f85..c89fd0a 100644
> --- a/src/lib/elc_naviframe.c
> +++ b/src/lib/elc_naviframe.c
> @@ -504,6 +504,9 @@ _item_del_pre_hook(Elm_Object_Item *it)
> nit = (Elm_Naviframe_Item *)it;
> ELM_NAVIFRAME_DATA_GET(WIDGET(nit), sd);
>  
> +   nit->delete_me = EINA_TRUE;
> +   if (nit->ref > 0) return EINA_FALSE;
> +
> ecore_animator_del(nit->animator);
>  
> top = (it == elm_naviframe_top_item_get(WIDGET(nit)));
> @@ -1696,14 +1699,26 @@ _item_pop(Eo *obj, void *_pd, va_list *list)
> if (it->popping) return;
> it->popping = EINA_TRUE;
>  
> +   evas_object_ref(obj);
> if (it->pop_cb)
>   {
> +it->ref++;
>  if (!it->pop_cb(it->pop_data, (Elm_Object_Item *)it))
>{
> + it->ref--;
> + if (it->delete_me)
> +   {
> +  _item_del_pre_hook(it);
> +  _elm_widget_item_free(it);

Would you please exchange all calls to this couple of functions by the
equally working elm_widget_item_del()?

> +   }
>   it->popping = EINA_FALSE;
> + evas_object_unref(obj);
> +
>   return;
>}
> +it->ref--;
>   }
> +   evas_object_unref(obj);
>  
> if (sd->preserve)
>   content = it->content;
> diff --git a/src/lib/elm_widget_naviframe.h b/src/lib/elm_widget_naviframe.h
> index 83809f9..1b4d3fc 100644
> --- a/src/lib/elm_widget_naviframe.h
> +++ b/src/lib/elm_widget_naviframe.h
> @@ -57,6 +57,8 @@ struct _Elm_Naviframe_Item
> Eina_Booltitle_enabled : 1;
> Eina_Boolunfocusable : 1;
> Eina_Boolpopping : 1;
> +   Eina_Booldelete_me : 1;
> +   int  ref;
>  };
>  
>  typedef struct _Elm_Naviframe_Content_Item_Pair 
> Elm_Naviframe_Content_Item_Pair;
> 
> -- 
> 
> 

-- 
Gustavo Lima Chaves
Senior Developer @ Intel - Open Source Technology Center

--
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

--
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/elementary] master 01/01: focus: Fixed focus issue that the highlight was not visible on first click.

2014-01-22 Thread Amitesh Singh
seoz pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=dda785611d86af2daa5be44cd3089c73aef58652

commit dda785611d86af2daa5be44cd3089c73aef58652
Author: Amitesh Singh 
Date:   Thu Jan 23 14:12:46 2014 +0900

focus: Fixed focus issue that the highlight was not visible on first
click.

Summary:
Focus highlight was not visible on first click on a widget with 
focus_highlight enabled on the window.
This happens because on first click, the "elm,action,focus,show" signal was 
emitted before setting focus highlight edje object as theme object of elm 
window.
In this patch, moved the  _elm_win_focus_highlight_visible_set() call after 
focus highlight edje object set as theme object of window.
This fixes T774.

Test Plan:
elementary_test->focus then click any widget. Focus won't appear for the 
first time.

Reviewers: seoz, raster, woohyun

Maniphest Tasks: T774

Differential Revision: https://phab.enlightenment.org/D462
---
 src/lib/elm_win.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c
index 3ef1dac..7e111c9 100644
--- a/src/lib/elm_win.c
+++ b/src/lib/elm_win.c
@@ -763,7 +763,6 @@ _elm_win_focus_highlight_reconfigure(Elm_Win_Smart_Data *sd)
else
  common_visible = sd->focus_highlight.cur.visible;
 
-   _elm_win_focus_highlight_visible_set(sd, common_visible);
if (sig)
  elm_widget_signal_emit(target, sig, "elm");
 
@@ -798,6 +797,7 @@ _elm_win_focus_highlight_reconfigure(Elm_Win_Smart_Data *sd)
evas_object_raise(fobj);
 
 the_end:
+   _elm_win_focus_highlight_visible_set(sd, common_visible);
sd->focus_highlight.geometry_changed = EINA_FALSE;
sd->focus_highlight.prev = sd->focus_highlight.cur;
 }

-- 




[EGIT] [core/elementary] master 01/01: test_focus3: Correct wrong data for smart callback.

2014-01-22 Thread WooHyun Jung
woohyun pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=0dcf2fb49ae316d25d0359bef8bb8a4cc04140a7

commit 0dcf2fb49ae316d25d0359bef8bb8a4cc04140a7
Author: WooHyun Jung 
Date:   Thu Jan 23 15:07:33 2014 +0900

test_focus3: Correct wrong data for smart callback.
---
 src/bin/test_focus3.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/test_focus3.c b/src/bin/test_focus3.c
index de951fe..9edb1c7 100644
--- a/src/bin/test_focus3.c
+++ b/src/bin/test_focus3.c
@@ -336,7 +336,7 @@ test_focus4(void *data EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_in
evas_object_size_hint_weight_set(tg, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(tg, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_check_state_set(tg, EINA_TRUE);
-   evas_object_smart_callback_add(tg, "changed", custom_chain_unset_cb, bx);
+   evas_object_smart_callback_add(tg, "changed", custom_chain_unset_cb, bx2);
elm_box_pack_end(bx, tg);
evas_object_show(tg);
 

-- 




[EGIT] [core/efl] master 01/01: eina_tls: add eina_tls_cb_new(Eina_TLS *key, Eina_TLS_Delete_Cb delete_cb)

2014-01-22 Thread Jérémy Zurcher
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=316dc52d2f758bba2263cd25b940d1e4457910fd

commit 316dc52d2f758bba2263cd25b940d1e4457910fd
Author: Jérémy Zurcher 
Date:   Thu Jan 23 14:50:08 2014 +0900

eina_tls: add eina_tls_cb_new(Eina_TLS *key, Eina_TLS_Delete_Cb delete_cb)

Summary:
   delete_cb is called at thread exit for each Eina_TLS keys used by the 
thread

Details:
   posix:
  pthread_key_create(key, delete_cb); does it
   win32/wince:
  eina_tls_free/new un/registers key&&cb into a static eina_list.
  eina_tls_set add the key to an eina_list in Eina_Thread_Win3.
  this list is cleared and callbacks are called in _eina_thread_join()

Test Plan: win32/wince has to be tested, I have no setup to do it.

Reviewers: cedric

CC: cedric

Differential Revision: https://phab.enlightenment.org/D489
---
 src/lib/eina/eina_inline_lock_posix.x | 12 +++--
 src/lib/eina/eina_inline_lock_win32.x | 21 -
 src/lib/eina/eina_inline_lock_wince.x | 25 +--
 src/lib/eina/eina_lock.h  |  4 ++
 src/lib/eina/eina_thread.c| 85 +++
 src/tests/eina/eina_test_lock.c   | 40 +
 6 files changed, 172 insertions(+), 15 deletions(-)

diff --git a/src/lib/eina/eina_inline_lock_posix.x 
b/src/lib/eina/eina_inline_lock_posix.x
index 5270f46..b9136fc 100644
--- a/src/lib/eina/eina_inline_lock_posix.x
+++ b/src/lib/eina/eina_inline_lock_posix.x
@@ -495,14 +495,20 @@ eina_rwlock_release(Eina_RWLock *mutex)
return EINA_LOCK_SUCCEED;
 }
 
-static inline Eina_Bool 
-eina_tls_new(Eina_TLS *key)
+static inline Eina_Bool
+eina_tls_cb_new(Eina_TLS *key, Eina_TLS_Delete_Cb delete_cb)
 {
-   if (pthread_key_create(key, NULL) != 0)
+   if (pthread_key_create(key, delete_cb) != 0)
   return EINA_FALSE;
return EINA_TRUE;
 }
 
+static inline Eina_Bool
+eina_tls_new(Eina_TLS *key)
+{
+   return eina_tls_cb_new(key, NULL);
+}
+
 static inline void 
 eina_tls_free(Eina_TLS key)
 {
diff --git a/src/lib/eina/eina_inline_lock_win32.x 
b/src/lib/eina/eina_inline_lock_win32.x
index 6feb60d..3123ad6 100644
--- a/src/lib/eina/eina_inline_lock_win32.x
+++ b/src/lib/eina/eina_inline_lock_win32.x
@@ -71,6 +71,9 @@ struct _Eina_RWLock
 
 
 EAPI extern Eina_Bool _eina_threads_activated;
+EAPI extern Eina_Bool _eina_thread_tls_cb_register(Eina_TLS key, 
Eina_TLS_Delete_Cb cb);
+EAPI extern Eina_Bool _eina_thread_tls_cb_unregister(Eina_TLS key);
+EAPI extern Eina_Bool _eina_thread_tls_key_add(Eina_TLS key);
 
 
 static inline Eina_Bool
@@ -481,16 +484,31 @@ eina_rwlock_release(Eina_RWLock *mutex)
 }
 
 static inline Eina_Bool
-eina_tls_new(Eina_TLS *key)
+eina_tls_cb_new(Eina_TLS *key, Eina_TLS_Delete_Cb delete_cb)
 {
if ((*key = TlsAlloc()) == TLS_OUT_OF_INDEXES)
   return EINA_FALSE;
+   if (delete_cb)
+ {
+if (!_eina_thread_tls_cb_register(*key, delete_cb))
+  {
+ TlsFree(key);
+ return EINA_FALSE;
+  }
+ }
return EINA_TRUE;
 }
 
+static inline Eina_Bool
+eina_tls_new(Eina_TLS *key)
+{
+   return eina_tls_cb_new(key, NULL);
+}
+
 static inline void
 eina_tls_free(Eina_TLS key)
 {
+   _eina_thread_tls_cb_unregister(key);
TlsFree(key);
 }
 
@@ -505,6 +523,7 @@ eina_tls_set(Eina_TLS key, const void *data)
 {
if (TlsSetValue(key, (LPVOID)data) == 0)
   return EINA_FALSE;
+   _eina_thread_tls_key_add(key);
return EINA_TRUE;
 }
 
diff --git a/src/lib/eina/eina_inline_lock_wince.x 
b/src/lib/eina/eina_inline_lock_wince.x
index 3b73256..3d96a84 100644
--- a/src/lib/eina/eina_inline_lock_wince.x
+++ b/src/lib/eina/eina_inline_lock_wince.x
@@ -26,6 +26,9 @@
 #undef WIN32_LEAN_AND_MEAN
 
 EAPI extern Eina_Bool _threads_activated;
+EAPI extern Eina_Bool _eina_thread_tls_cb_register(Eina_TLS key, 
Eina_TLS_Delete_Cb cb);
+EAPI extern Eina_Bool _eina_thread_tls_cb_unregister(Eina_TLS key);
+EAPI extern Eina_Bool _eina_thread_tls_key_add(Eina_TLS key);
 
 typedef HANDLEEina_Lock;
 typedef Eina_Lock Eina_Spinlock;
@@ -151,17 +154,32 @@ eina_rwlock_release(Eina_RWLock *mutex)
return eina_lock_release(mutex);
 }
 
-static inline Eina_Bool 
-eina_tls_new(Eina_TLS *key)
+static inline Eina_Bool
+eina_tls_cb_new(Eina_TLS *key, Eina_TLS_Delete_Cb delete_cb)
 {
-   if (TlsAlloc() == TLS_OUT_OF_INDEXES)
+   if ((*key = TlsAlloc()) == TLS_OUT_OF_INDEXES)
   return EINA_FALSE;
+   if (delete_cb)
+ {
+if (!_eina_thread_tls_cb_register(*key, delete_cb))
+  {
+ TlsFree(key);
+ return EINA_FALSE;
+  }
+ }
return EINA_TRUE;
 }
 
+static inline Eina_Bool
+eina_tls_new(Eina_TLS *key)
+{
+   return eina_tls_cb_new(key, NULL);
+}
+
 static inline void 
 eina_tls_free(Eina_TLS key)
 {
+   _eina_thread_tls_cb_unregister(key);
TlsFree(key);
 }
 
@@ -176,6 +194,7 @@ eina_tls_set(Eina_TLS key, const void 

[EGIT] [core/efl] master 01/01: Registers a fallback handler for a given subsection of the object hierarchy.

2014-01-22 Thread Carsten Haitzler
raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=86d9b4ed7153e91c9028af9a577c2d3a0dd32b52

commit 86d9b4ed7153e91c9028af9a577c2d3a0dd32b52
Author: Carsten Haitzler (Rasterman) 
Date:   Thu Jan 23 15:45:22 2014 +0900

Registers a fallback handler for a given subsection of the object hierarchy.

Summary:
Goal of this patch is cover in Eldbus library function 
dbus_connection_register_fallback.

http://dbus.freedesktop.org/doc/api/html/group__DBusConnection.html#gac4473b37bfa74ccf7459959d27e7bc59

Reviewers: stanluk, raster

Reviewed By: raster

Differential Revision: https://phab.enlightenment.org/D479
---
 src/lib/eldbus/eldbus_private_types.h |  2 ++
 src/lib/eldbus/eldbus_service.c   | 40 +--
 src/lib/eldbus/eldbus_service.h   | 15 +
 3 files changed, 51 insertions(+), 6 deletions(-)

diff --git a/src/lib/eldbus/eldbus_private_types.h 
b/src/lib/eldbus/eldbus_private_types.h
index bc4765d..8ebe682 100644
--- a/src/lib/eldbus/eldbus_private_types.h
+++ b/src/lib/eldbus/eldbus_private_types.h
@@ -146,6 +146,8 @@ struct _Eldbus_Service_Object
Eldbus_Service_Object *parent;
Eina_Inlist *children;
 
+   Eina_Bool fallback :1; /* Fallback mechanism flag */
+
//ObjectManager data
Eldbus_Service_Interface *objmanager;
Eina_List *iface_added;
diff --git a/src/lib/eldbus/eldbus_service.c b/src/lib/eldbus/eldbus_service.c
index bb300c0..3149a58 100644
--- a/src/lib/eldbus/eldbus_service.c
+++ b/src/lib/eldbus/eldbus_service.c
@@ -647,7 +647,7 @@ _eldbus_service_object_parent_find(Eldbus_Service_Object 
*obj)
 }
 
 static Eldbus_Service_Object *
-_eldbus_service_object_add(Eldbus_Connection *conn, const char *path)
+_eldbus_service_object_add(Eldbus_Connection *conn, const char *path, 
Eina_Bool fallback)
 {
Eldbus_Service_Object *obj, *rootobj;
Eina_Inlist *safe;
@@ -656,8 +656,9 @@ _eldbus_service_object_add(Eldbus_Connection *conn, const 
char *path)
obj = calloc(1, sizeof(Eldbus_Service_Object));
EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
 
-   if (!dbus_connection_register_object_path(conn->dbus_conn, path, &vtable,
- obj))
+   obj->fallback = fallback;
+   if ((fallback && !dbus_connection_register_fallback(conn->dbus_conn, path, 
&vtable, obj)) ||
+  (!fallback && !dbus_connection_register_object_path(conn->dbus_conn, 
path, &vtable, obj)))
  {
 free(obj);
 return NULL;
@@ -668,6 +669,8 @@ _eldbus_service_object_add(Eldbus_Connection *conn, const 
char *path)
obj->interfaces = eina_hash_string_superfast_new(NULL);
eldbus_connection_free_cb_add(conn, _on_connection_free, obj);
 
+   if (obj->fallback) return obj;
+
eina_hash_add(obj->interfaces, introspectable->name, introspectable);
eina_hash_add(obj->interfaces, properties_iface->name, properties_iface);
 
@@ -924,8 +927,8 @@ fail_signature:
return NULL;
 }
 
-EAPI Eldbus_Service_Interface *
-eldbus_service_interface_register(Eldbus_Connection *conn, const char *path, 
const Eldbus_Service_Interface_Desc *desc)
+static Eldbus_Service_Interface *
+_eldbus_service_interface_register(Eldbus_Connection *conn, const char *path, 
const Eldbus_Service_Interface_Desc *desc, Eina_Bool fallback)
 {
Eldbus_Service_Object *obj;
Eldbus_Service_Interface *iface;
@@ -950,7 +953,7 @@ eldbus_service_interface_register(Eldbus_Connection *conn, 
const char *path, con
  return NULL;
 
if (!obj)
- obj = _eldbus_service_object_add(conn, path);
+ obj = _eldbus_service_object_add(conn, path, fallback);
else
  obj->introspection_dirty = EINA_TRUE;
EINA_SAFETY_ON_NULL_GOTO(obj, fail);
@@ -982,6 +985,18 @@ fail:
return NULL;
 }
 
+EAPI Eldbus_Service_Interface *
+eldbus_service_interface_register(Eldbus_Connection *conn, const char *path, 
const Eldbus_Service_Interface_Desc *desc)
+{
+   return _eldbus_service_interface_register(conn, path, desc, EINA_FALSE);
+}
+
+EAPI Eldbus_Service_Interface *
+eldbus_service_interface_fallback_register(Eldbus_Connection *conn, const char 
*path, const Eldbus_Service_Interface_Desc *desc)
+{
+   return _eldbus_service_interface_register(conn, path, desc, EINA_TRUE);
+}
+
 static Eina_Bool
 _idler_propschanged(void *data)
 {
@@ -1275,11 +1290,18 @@ _object_handler(DBusConnection *dbus_conn EINA_UNUSED, 
DBusMessage *msg, void *u
const Eldbus_Method *method;
Eldbus_Message *eldbus_msg, *reply;
Eldbus_Connection *conn;
+   const char* fallback_path = NULL;
 
obj = user_data;
if (!obj) return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
conn = obj->conn;
 
+   if (obj->fallback)
+ {
+   fallback_path = eina_stringshare_add(obj->path);
+   eina_stringshare_replace(&obj->path, dbus_message_get_path(msg));
+ }
+
DBG("Connection@%p Got message:\n"
   "  Type: %s\n"
   "  Path: %s\n"
@@ -1331,6 +1353,12 @@

Re: [E-devel] [EGIT] [core/efl] master 01/01: okay, bring back xrandr < 1.4 compat for ecore_x_randr_output_name_get

2014-01-22 Thread Sebastian Dransfeld
You can't revert parts of it. The reason I changed it was that it was hard for 
me to read the previous code. I tried the best I could to recreate the features 
of the previous code, with some minor additions to make dock/undock my laptop 
work, and added code to check whether the laptop lid is closed or not.

Some of the issues might be because the config is used as the users config, but 
also to reflect the current system state. When I added the acpi stuff, it seems 
that this isn't a wise solution. So I would start with splitting this, so that 
runtime changes does not change how the user wants its system to be at login.

S.

> Den Jan 22, 2014 kl. 16:33 skrev Michael Blumenkrantz 
> :
> 
> I have some connectors in the mail which will allow me to spend time working 
> on this. I think at least some of the changes made were worthwhile given that 
> we now have people who were previously unable to use randr able to use it, so 
> it shouldn't be too hard to fix the remaining issues. If you want to point 
> out or manually revert the sections that you know are wrong/unnecessary, that 
> would speed up my work.
> 
> On Wed, 22 Jan 2014 14:32:51 +
> Christopher Michael  wrote:
> 
>> Well, the issue does not happen on my work machines using both VGA and a 
>> DVI connectionHowever it does happen at home on the laptop using an 
>> HDMI connection. Have not had time to dig into it myself yet either
>> 
>> dh
>> 
>>> On 01/22/2014 02:01 PM, Sebastian Dransfeld wrote:
>>> I got a 1920x1200 monitor and a 1600x900 laptop, works like a charm. But
>>> as I said, I don't have time to fix this atm, so if it sucks to much,
>>> revert.
>>> 
>>> S.
>>> 
 On 01/21/2014 10:35 PM, Chris Michael wrote:
 Welcome to the wonderful world of XRandr version vs driver version vs E
 version vs .. the world ;)
 
 Lots of fun waiting for you and Seb here ;)
 
 BTW, YOU BROKE MY RANDR STUFF !!!
 
 Configuring monitors in the dialog is totally borked now :( 2 monitors
 (1600x9000) and (1920x1080) in a side-by-side config does not work
 anymore !!!
 
 The 1600 is fine. The 1920 ends up w/ half a screen !!
 
 FIX IT !!! You broke it, you bought it ;)
 
 dh
 
 
 
> On 21/01/14 21:09, Mike Blumenkrantz wrote:
> discomfitor pushed a commit to branch master.
> 
> http://git.enlightenment.org/core/efl.git/commit/?id=052fc85cd34aec41d50e5d8333bac6ee9ba9c7d6
> 
> commit 052fc85cd34aec41d50e5d8333bac6ee9ba9c7d6
> Author: Mike Blumenkrantz 
> Date:   Tue Jan 21 16:07:38 2014 -0500
> 
>   okay, bring back xrandr < 1.4 compat for 
> ecore_x_randr_output_name_get
> 
>   apparently I read the commit order wrong and this fix went in for 
> 1.4.0, not 1.3.2, which means anyone who has 1.3.2 has been having lots 
> of fun crashes for the past 24 hours
> ---
>configure.ac |  4 +---
>src/lib/ecore_x/xlib/ecore_x_randr.c | 15 +++
>2 files changed, 12 insertions(+), 7 deletions(-)
> 
> diff --git a/configure.ac b/configure.ac
> index 2d2e377..373ea6d 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -2875,9 +2875,7 @@ if test "x${want_x11_xlib}" = "xyes" ; then
>   ECORE_CHECK_X_EXTENSION([Xtest], [XTest.h], [Xtst], 
> [XTestFakeKeyEvent])
>   ECORE_CHECK_X_EXTENSION([Xss], [scrnsaver.h], [Xss], 
> [XScreenSaverSelectInput])
> 
> -   if test echo "$ECORE_X_LIBS" | grep -q Xrandr ; then
> -  PKG_CHECK_EXISTS([xrandr > 1.3.1], [], [AC_MSG_ERROR([Xrandr >= 
> 1.3.1 required])])
> -   fi
> +   PKG_CHECK_EXISTS([xrandr > 1.3.2], [AC_DEFINE([XRANDR_GOOD], [1], 
> [good xrandr])], [])
> 
>   if test "${want_xpresent}" = "yes"; then
>  ECORE_CHECK_X_EXTENSION([Xpresent], [Xpresent.h], [Xpresent], 
> [XPresentQueryExtension])
> diff --git a/src/lib/ecore_x/xlib/ecore_x_randr.c 
> b/src/lib/ecore_x/xlib/ecore_x_randr.c
> index b47..db1f109 100644
> --- a/src/lib/ecore_x/xlib/ecore_x_randr.c
> +++ b/src/lib/ecore_x/xlib/ecore_x_randr.c
> @@ -2206,10 +2206,17 @@ ecore_x_randr_output_name_get(Ecore_X_Window 
> root, Ecore_X_Randr_Output output,
>  {
> if (info->name)
>   {
> -  ret = malloc(info->nameLen + 1);
> -  memcpy(ret, info->name, info->nameLen);
> -  ret[info->nameLen] = 0;
> -  if (len) *len = info->nameLen;
> +  size_t s;
> +#ifdef XRANDR_GOOD
> +  s = info->nameLen;
> +#else
> +  /* pre 1.4.0 does not fill in info->nameLen */
> +  s = strlen(info->name);
> +#endif
> +  ret = malloc(s + 1);
> +  memcpy(ret, info->name, s);
> +