[E-devel] Does 'efl-js binding' is progressing?

2017-04-20 Thread Jiwon Kim
Hi,

I'm interesting about javascript binding.
So, I tried to build efl with '--with-js' option.
But I couldn't success it.

I wonder it is my local issue or efl's issue.

First, --with-js=nodejs is failed from autoconf.
The 'nodejs-dev' package drop nodejs/src/node.h but autoconf's header
usability check is failed.
(because node.h refer to v8)
So, eina_js_node.hh hang to #error block. (every defines are disabled).

Second, --with-js=libv8 is also failed from eo_promise.

In file included from ../src/bindings/cxx/eo_cxx/Eo.hh:9:0,
 from bin/efl_js/launcher_main.cc:13:
../src/bindings/cxx/eo_cxx/eo_promise.hh:11:27: fatal error:
Ecore_Manual.hh: No such file or directory
compilation terminated.


I'm finding whether my environment problem or not.
Has anyone ever succeeded it in a recent?
(I'm trying on Ubuntu 16.04).

Jiwon Kim.
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 07/07: edje: remove invalid macro-check regarding coreaudio

2017-04-06 Thread Jiwon Kim
cedric pushed a commit to branch master.

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

commit 1bd7b576bd126e0f64aecfc8b051dd0efb1ef096
Author: Jiwon Kim 
Date:   Thu Apr 6 14:41:44 2017 -0700

edje: remove invalid macro-check regarding coreaudio

Summary:
By 403b0ecfa66530e9cd598bd013aeda76df7ee98c the coreaudio
support was dropped.
So 'HAVE_COREAUDIO' define is invalid.

Reviewers: jpeg

Subscribers: cedric, woohyun

Differential Revision: https://phab.enlightenment.org/D4732

Signed-off-by: Cedric BAIL 
---
 src/lib/edje/edje_multisense.c | 12 +++-
 1 file changed, 3 insertions(+), 9 deletions(-)

diff --git a/src/lib/edje/edje_multisense.c b/src/lib/edje/edje_multisense.c
index 06f030f..f8f5ae8 100644
--- a/src/lib/edje/edje_multisense.c
+++ b/src/lib/edje/edje_multisense.c
@@ -202,18 +202,14 @@ _edje_multisense_internal_sound_sample_play(Edje *ed, 
const char *sample_name, c
  in = efl_add(ECORE_AUDIO_IN_SNDFILE_CLASS, NULL, 
ecore_audio_obj_name_set(efl_added, snd_id_str), 
ecore_audio_obj_in_speed_set(efl_added, speed), 
ecore_audio_obj_vio_set(efl_added, &eet_data->vio, eet_data, _free), 
efl_event_callback_add(efl_added, ECORE_AUDIO_IN_EVENT_IN_STOPPED, 
_play_finished, NULL));
  if (!out)
{
-#if HAVE_COREAUDIO
-  out = efl_add(ECORE_AUDIO_OUT_CORE_AUDIO_CLASS, NULL);
-#elif HAVE_PULSE
+#if HAVE_PULSE
   out = efl_add(ECORE_AUDIO_OUT_PULSE_CLASS, NULL, 
efl_event_callback_add(efl_added, ECORE_AUDIO_OUT_PULSE_EVENT_CONTEXT_FAIL, 
_out_fail, NULL));
 #endif
   if (out) outs++;
}
  if (!out)
{
-#if HAVE_COREAUDIO
-  ERR("Could not create multisense audio out (CoreAudio)");
-#elif HAVE_PULSE
+#if HAVE_PULSE
   ERR("Could not create multisense audio out (pulse)");
 #endif
   efl_del(in);
@@ -274,9 +270,7 @@ _edje_multisense_internal_sound_tone_play(Edje *ed, const 
char *tone_name, const
 
  if (!out)
{
-#if HAVE_COREAUDIO
-  out = efl_add(ECORE_AUDIO_OUT_CORE_AUDIO_CLASS, NULL);
-#elif HAVE_PULSE
+#if HAVE_PULSE
   out = efl_add(ECORE_AUDIO_OUT_PULSE_CLASS, NULL, 
efl_event_callback_add(efl_added, ECORE_AUDIO_OUT_PULSE_EVENT_CONTEXT_FAIL, 
_out_fail, NULL));
 #endif
   if (out) outs++;

-- 




[EGIT] [core/efl] master 01/01: ecore audio: Fix loss of last stream

2017-03-23 Thread Jiwon Kim
raster pushed a commit to branch master.

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

commit 25fcdde3564824087fd23f0380c129f28bd08869
Author: Jiwon Kim 
Date:   Fri Mar 24 10:34:53 2017 +0900

ecore audio: Fix loss of last stream

Summary:
pa_stream's write callback requires to size of stream data
using 'len' parameter.
This size depend on pulse audio's internal status and not
consistent.

When a efl read audio's last stream, length of read('bread')
is less than write callback's 'len' parameter.
If the gap between 'len' and 'bread' is small,
last stream is played fortunately.
Otherwise, the last stream is discarded.
(It is doubtful about pa_stream's pre-buffering.)

To prevent it, push silent stream which is amount
of deficient length.

@fix T5281

Reviewers: raster

Reviewed By: raster

Subscribers: cedric, jpeg, woohyun

Maniphest Tasks: T5281

Differential Revision: https://phab.enlightenment.org/D4726
---
 src/lib/ecore_audio/ecore_audio_obj_out_pulse.c | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/lib/ecore_audio/ecore_audio_obj_out_pulse.c 
b/src/lib/ecore_audio/ecore_audio_obj_out_pulse.c
index 73f9c72..2916de4 100644
--- a/src/lib/ecore_audio/ecore_audio_obj_out_pulse.c
+++ b/src/lib/ecore_audio/ecore_audio_obj_out_pulse.c
@@ -82,11 +82,14 @@ static void _write_cb(pa_stream *stream, size_t len, void 
*data)
 
   bread = ecore_audio_obj_in_read(in, buf, wlen);
 
-  EPA_CALL(pa_stream_write)(stream, buf, bread, NULL, 0, PA_SEEK_RELATIVE);
-  if (bread < (int)len)
+  if ((bread < (int)len) && bread)
 {
+  memset((char *)buf + bread, 0, wlen - bread);
+  EPA_CALL(pa_stream_write)(stream, buf, wlen, NULL, 0, PA_SEEK_RELATIVE);
   EPA_CALL(pa_operation_unref)(EPA_CALL(pa_stream_trigger)(stream, NULL, 
NULL));
 }
+  else
+EPA_CALL(pa_stream_write)(stream, buf, bread, NULL, 0, PA_SEEK_RELATIVE);
 }
 
 static void _update_samplerate_cb(void *data EINA_UNUSED, const Efl_Event 
*event)

-- 




[EGIT] [core/efl] master 01/02: genlist: Remove weird behavior about item_show, bring_in

2017-03-02 Thread Jiwon Kim
jpeg pushed a commit to branch master.

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

commit e6a1e456cb3ca7587bd7c1c2dc822af035bf6f42
Author: Jiwon Kim 
Date:   Thu Mar 2 15:36:00 2017 +0900

genlist: Remove weird behavior about item_show, bring_in

Summary:
When if item_show / bring_in is proceeded as 'deferred_show'
sequence, Scrollto_Type does not be checked perfectly.
As a result,
ELM_GENLIST_ITEM_SCROLLTO_NONE and any other integer values
are worked such as ELM_GENLIST_ITEM_SCROLLTO_BRING_IN.

As doxygen of Elm_Genlist_Item_Scrollto_Type,
ELM_GENLIST_ITEM_SCROLLTO_NONE and other incorrect number
should not work.

Fixes T4854

@fix

Reviewers: SanghyeonLee, woohyun, jpeg

Reviewed By: jpeg

Subscribers: id213sin, conr2d, cedric

Maniphest Tasks: T4854

Differential Revision: https://phab.enlightenment.org/D4684
---
 src/lib/elementary/elm_genlist.c   | 11 +++
 src/lib/elementary/elm_genlist_item.eo |  4 ++--
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c
index 09a9c7a..7b3e284 100644
--- a/src/lib/elementary/elm_genlist.c
+++ b/src/lib/elementary/elm_genlist.c
@@ -7094,6 +7094,17 @@ _elm_genlist_item_coordinates_calc(Elm_Gen_Item *it,
 
Eina_Bool deferred_show = EINA_FALSE;
 
+   switch (type)
+ {
+  case ELM_GENLIST_ITEM_SCROLLTO_IN:
+  case ELM_GENLIST_ITEM_SCROLLTO_TOP:
+  case ELM_GENLIST_ITEM_SCROLLTO_MIDDLE:
+  case ELM_GENLIST_ITEM_SCROLLTO_BOTTOM:
+ break;
+  default: /* Filters unsupported type */
+ return EINA_FALSE;
+ }
+
//Can't goto the item right now. Reserve it instead.
if (sd->queue || !(sd->homogeneous && (sd->mode == ELM_LIST_COMPRESS)))
  {
diff --git a/src/lib/elementary/elm_genlist_item.eo 
b/src/lib/elementary/elm_genlist_item.eo
index a0830b8..0ecd147 100644
--- a/src/lib/elementary/elm_genlist_item.eo
+++ b/src/lib/elementary/elm_genlist_item.eo
@@ -29,7 +29,7 @@ enum Elm.Genlist.Item.Scrollto_Type
 {
[[Defines where to position the item in the genlist.]]
legacy: elm_genlist_item_scrollto;
-   none = 0,   [[No scrollto.]]
+   none = 0,   [[Nothing will happen, Don't use this value.]]
in = (1 << 0),   [[To the nearest viewport.]]
top = (1 << 1),   [[To the top of viewport.]]
middle = (1 << 2),   [[To the middle of viewport.]]
@@ -50,7 +50,7 @@ class Elm.Genlist.Item(Elm.Widget.Item)
 
This returns the item placed before the $item, on
the container genlist.
-   
+
If filter is set on genlist, this returns the filtered
item placed before $item in the list.
  ]]

-- 




[EGIT] [core/efl] master 05/06: eet: read sould be failed if cipher_key exist but file not ciphered

2017-02-07 Thread Jiwon Kim
cedric pushed a commit to branch master.

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

commit 9fa4a5fb6dc5b616e67a6b47042b62c9dfcab167
Author: Jiwon Kim 
Date:   Tue Feb 7 15:06:01 2017 -0800

eet: read sould be failed if cipher_key exist but file not ciphered

Summary:
Currentely, if eet_read_cipher()'s cipher_key param is exist but file
not ciphered, function always read and return successful result.
But, this behavior can not check data integrity.

e.g.
1. App create config file using eet with encryption key.
2. Attacker replace config to malicious config (not encryted).
3. App can not notice if eet_read_cipher() read that successfully.

@fix

Test Plan:
$eet -e test.cfg my_config test.src 1
$eet -d test.cfg my_config decode_res.txt my_encrytion_key

(Currentely decode success, but should be failed)

Reviewers: woohyun, raster

Subscribers: id213sin, akanad, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4563

Signed-off-by: Cedric BAIL 
---
 src/lib/eet/eet_lib.c | 4 
 1 file changed, 4 insertions(+)

diff --git a/src/lib/eet/eet_lib.c b/src/lib/eet/eet_lib.c
index d2c95c2..2930b0f 100644
--- a/src/lib/eet/eet_lib.c
+++ b/src/lib/eet/eet_lib.c
@@ -1928,6 +1928,10 @@ eet_read_cipher(Eet_File   *ef,
if (!efn)
  goto on_error;
 
+   /* Requested decryption but file not encrypted -> integrity violation */
+   if (!efn->ciphered && cipher_key)
+ goto on_error;
+
/* Get a binbuf attached to this efn */
in = read_binbuf_from_disk(ef, efn);
if (!in) goto on_error;

-- 




[EGIT] [core/efl] master 04/06: elementary: set mirrored mode in a group_add()

2017-02-07 Thread Jiwon Kim
cedric pushed a commit to branch master.

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

commit 4279fe84057adbedeb9c117132ae1c0c2102a122
Author: Jiwon Kim 
Date:   Tue Feb 7 15:04:57 2017 -0800

elementary: set mirrored mode in a group_add()

Summary:
When a scroller just added and theme not changed,
scrollable interface's 'mirrored' property is always default.

elm_config_mirrored_set(EINA_TRUE) -> elm_scroller_add(),
 : No mirrored mode
elm_scroller_add() -> elm_config_mirrored_set(EINA_TRUE),
 : Mirrored mode

@fix

Test Plan:
1-1. elementary_test scroller
1-2. Turn on UI-Mirroring

2-1. elementary_test
2-2. Turn on UI-Mirroring
2-3. Click 'scroller' button

(Check scroller test's 'prev page' and 'next page' buttons)

Reviewers: cedric, woohyun, akanad

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D4564

Signed-off-by: Cedric BAIL 
---
 src/lib/elementary/elm_scroller.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/lib/elementary/elm_scroller.c 
b/src/lib/elementary/elm_scroller.c
index bd30cb4..5f3a95c 100644
--- a/src/lib/elementary/elm_scroller.c
+++ b/src/lib/elementary/elm_scroller.c
@@ -926,6 +926,8 @@ _elm_scroller_efl_canvas_group_group_add(Eo *obj, 
Elm_Scroller_Data *priv)
(obj, "scroller", "base", elm_widget_style_get(obj)))
  CRI("Failed to set layout!");
 
+   _mirrored_set(obj, elm_widget_mirrored_get(obj));
+
priv->hit_rect = evas_object_rectangle_add(evas_object_evas_get(obj));
evas_object_smart_member_add(priv->hit_rect, obj);
elm_widget_sub_object_add(obj, priv->hit_rect);

-- 




[EGIT] [core/efl] master 04/06: evas: initalize orient property in file_set()

2017-01-01 Thread Jiwon Kim
jpeg pushed a commit to branch master.

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

commit 4a0a9d8ae1bf0e8b1d3489ca80c6d82de3f0e227
Author: Jiwon Kim 
Date:   Mon Jan 2 15:22:04 2017 +0900

evas: initalize orient property in file_set()

Summary:
Someone calls evas_object_image_file_set() and set orient,
and then re-set another file.
At that time, there is a mismatch between Evas_Image_Data's
cur->orient and engine's orient data.

So, "file_set(a) -> orient_set(90) -> file_set(b) -> orient_set(90)"
is not working now.

Therefore, when a file_set() is finished, initialization is needed.

@fix

Reviewers: jypark, jpeg

Reviewed By: jpeg

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D4515
---
 src/lib/evas/canvas/evas_object_image.c | 4 
 1 file changed, 4 insertions(+)

diff --git a/src/lib/evas/canvas/evas_object_image.c 
b/src/lib/evas/canvas/evas_object_image.c
index d81277f..fab1992 100644
--- a/src/lib/evas/canvas/evas_object_image.c
+++ b/src/lib/evas/canvas/evas_object_image.c
@@ -350,12 +350,14 @@ _evas_image_done_set(Eo *eo_obj, 
Evas_Object_Protected_Data *obj, Evas_Image_Dat
  {
 int w, h;
 int stride;
+Evas_Image_Orient orient;
 
 ENFN->image_size_get(ENDT, o->engine_data, &w, &h);
 if (ENFN->image_stride_get)
   ENFN->image_stride_get(ENDT, o->engine_data, &stride);
 else
   stride = w * 4;
+orient = ENFN->image_orient_get(ENDT, o->engine_data);
 
 EINA_COW_IMAGE_STATE_WRITE_BEGIN(o, state_write)
   {
@@ -368,6 +370,7 @@ _evas_image_done_set(Eo *eo_obj, Evas_Object_Protected_Data 
*obj, Evas_Image_Dat
  state_write->image.w = w;
  state_write->image.h = h;
  state_write->image.stride = stride;
+ state_write->orient = orient;
   }
 EINA_COW_IMAGE_STATE_WRITE_END(o, state_write);
  }
@@ -387,6 +390,7 @@ _evas_image_done_set(Eo *eo_obj, Evas_Object_Protected_Data 
*obj, Evas_Image_Dat
  state_write->image.w = 0;
  state_write->image.h = 0;
  state_write->image.stride = 0;
+ state_write->orient = EVAS_IMAGE_ORIENT_NONE;
   }
 EINA_COW_IMAGE_STATE_WRITE_END(o, state_write);
  }

-- 




[E-devel] Debugging edc at runtime is possible?

2016-09-20 Thread Jiwon Kim
Hi all.

I wonder about debugging edc script. (or maybe it's just idea :) )
Is it possible to debug at running time of application?
Likes gdb (or with gdb), attach to app,
 and set break point to 'program' syntex (edc's program blocks).

If we can check edc's (when/which) program running and signaling,
I think it's very convenient.

If it is impossible, how about log function for edc? (only for debug)

Does anyone has know-how regarding this?
Or, has anyone ever tried to similar attempt?

Regards.
Jiwon Kim.
--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: efl_net: check definition 'SO_REUSEPORT' for port reuse flag

2016-09-01 Thread Jiwon Kim
jayji pushed a commit to branch master.

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

commit b52725cef54d6e3238544daa64e99173420cd46b
Author: Jiwon Kim 
Date:   Thu Sep 1 19:08:11 2016 +0200

efl_net: check definition 'SO_REUSEPORT' for port reuse flag

Summary:
The port reuse feature and 'SO_REUSEPORT' flag are not supported by a few 
linux
In case of linux kernel, it supported from v 3.9
  (https://kernelnewbies.org/Linux_3.9)
On the lower version of kernel, compile is failed

Reviewers: barbieri, jayji

Reviewed By: jayji

Subscribers: akanad, id213sin, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4256
---
 src/lib/ecore_con/efl_net_server_fd.c | 10 +-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/lib/ecore_con/efl_net_server_fd.c 
b/src/lib/ecore_con/efl_net_server_fd.c
index 33448c6..0e33e8e 100644
--- a/src/lib/ecore_con/efl_net_server_fd.c
+++ b/src/lib/ecore_con/efl_net_server_fd.c
@@ -332,6 +332,7 @@ _efl_net_server_fd_reuse_port_set(Eo *o, 
Efl_Net_Server_Fd_Data *pd, Eina_Bool r
fd = efl_loop_fd_get(o);
if (fd < 0) return EINA_TRUE; /* postpone until fd_set() */
 
+#ifdef SO_REUSEPORT
value = reuse_port;
if (setsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &value, sizeof(value)) < 0)
  {
@@ -340,8 +341,11 @@ _efl_net_server_fd_reuse_port_set(Eo *o, 
Efl_Net_Server_Fd_Data *pd, Eina_Bool r
 pd->reuse_port = old;
 return EINA_FALSE;
  }
-
return EINA_TRUE;
+#else
+   pd->reuse_port = EINA_FALSE;
+   return EINA_FALSE;
+#endif
 }
 
 EOLIAN static Eina_Bool
@@ -356,6 +360,7 @@ _efl_net_server_fd_reuse_port_get(Eo *o, 
Efl_Net_Server_Fd_Data *pd)
/* if there is a fd, always query it directly as it may be modified
 * elsewhere by nasty users.
 */
+#ifdef SO_REUSEPORT
valuelen = sizeof(value);
if (getsockopt(fd, SOL_SOCKET, SO_REUSEPORT, &value, &valuelen) < 0)
  {
@@ -366,6 +371,9 @@ _efl_net_server_fd_reuse_port_get(Eo *o, 
Efl_Net_Server_Fd_Data *pd)
 
pd->reuse_port = !!value; /* sync */
return pd->reuse_port;
+#else
+   return EINA_FALSE;
+#endif
 }
 
 EOLIAN static void

-- 




[E-devel] Fixed Programming guide for image_blur example

2016-08-01 Thread Jiwon Kim
Hi All.

I found some doubtful example code on EFL Programming guide.
(https://www.enlightenment.org/program_guide/evas/image_objects)

We can notify that result(blur) image is too much spread only horizontally,
  when if set higher value to "blur_size".
Because, calculation about average color is used recursively.
(calc result is re-used for calc in 6th and 7th for loop)

So, I fixed the example code.
If I fixed by incorrect way, please fix again.

Regards.
Jiwon Kim.


void image_blur(Evas_Object *img)
{
   unsigned char *img_src = evas_object_image_data_get(img, EINA_TRUE);

   int w, h;
   evas_object_image_size_get(img, &w, &h);
   int blur_size = 4;
   int x, y, xx, yy;

   for (y = 0; y < h; y++)
   {
  for (x = 0; x < w; x++)
  {
 int avg_color[3] = {0, 0, 0};
 int blur_pixel_cnt = 0;

 for (xx = x; (xx < x + blur_size) && (xx < w); xx++)
 {
for (yy = y; (yy < y + blur_size) && (yy < h); yy++)
{
   int idx = (yy * w * 4) + (xx * 4);
   avg_color[0] += img_src[idx + 0];
   avg_color[1] += img_src[idx + 1];
   avg_color[2] += img_src[idx + 2];
   ++blur_pixel_cnt;
}
 }
 avg_color[0] /= blur_pixel_cnt;
 avg_color[1] /= blur_pixel_cnt;
 avg_color[2] /= blur_pixel_cnt;

* // Fixed newly*
 int idx = (y * w * 4) + (x * 4);
 img_src[idx + 0] = avg_color[0];
 img_src[idx + 1] = avg_color[1];
 img_src[idx + 2] = avg_color[2];

* // Removed*
* for (xx = x; (xx < x + blur_size) && (xx < w); xx++)*
* {*
*for (yy = y; (yy < y + blur_size) && (yy < h); yy++)*
*{*
*   int idx = (yy * w * 4) + (xx * 4);*
*   img_src[idx + 0] = avg_color[0];*
*   img_src[idx + 1] = avg_color[1];*
*   img_src[idx + 2] = avg_color[2];*
*}*
* }*
  }
   }
   evas_object_image_data_update_add(img, 0, 0, w, h);
}


--
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [website/www-content] master 01/01: Wiki page image_objects changed with summary [fixed bug code in image_blur example] by Jiwon Kim

2016-08-01 Thread Jiwon Kim
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=ae4f3921c2513d89755051b8a7f0baab14007cee

commit ae4f3921c2513d89755051b8a7f0baab14007cee
Author: Jiwon Kim 
Date:   Mon Aug 1 08:46:35 2016 -0700

Wiki page image_objects changed with summary [fixed bug code in image_blur 
example] by Jiwon Kim
---
 pages/program_guide/evas/image_objects.txt | 14 --
 1 file changed, 4 insertions(+), 10 deletions(-)

diff --git a/pages/program_guide/evas/image_objects.txt 
b/pages/program_guide/evas/image_objects.txt
index d4339a6..414df9f 100644
--- a/pages/program_guide/evas/image_objects.txt
+++ b/pages/program_guide/evas/image_objects.txt
@@ -363,16 +363,10 @@ void image_blur(Evas_Object *img)
  avg_color[1] /= blur_pixel_cnt;
  avg_color[2] /= blur_pixel_cnt;
 
- for (xx = x; (xx < x + blur_size) && (xx < w); xx++)
- {
-for (yy = y; (yy < y + blur_size) && (yy < h); yy++)
-{
-   int idx = (yy * w * 4) + (xx * 4);
-   img_src[idx + 0] = avg_color[0];
-   img_src[idx + 1] = avg_color[1];
-   img_src[idx + 2] = avg_color[2];
-}
- }
+ int idx = (y * w * 4) + (x * 4);
+ img_src[idx + 0] = avg_color[0];
+ img_src[idx + 1] = avg_color[1];
+ img_src[idx + 2] = avg_color[2];
   }
}
evas_object_image_data_update_add(img, 0, 0, w, h);

-- 




[EGIT] [core/efl] master 01/01: elm_calendar: provides way for configuration of weekend text color

2016-07-11 Thread Jiwon Kim
raster pushed a commit to branch master.

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

commit 5e2b1dde68bc6f61ec20fde47f5c849348c25636
Author: Jiwon Kim 
Date:   Mon Jul 11 16:10:34 2016 +0900

elm_calendar: provides way for configuration of weekend text color

Summary:
Suggest new mark_type for elm_calendar_mark_add().
The mark names are "weekend/day1", "weekend/day2".
It can be used for each country.
Some country can apply to "weekend/day2" to friday if day rest only a day 
for a week.
Until now, there is no way to separate holiday, saturday and sunday.

Test Plan:
1. saturday
```
struct tm t = { 0, 0, 12, 6, 0, 0, 6, 6, -1 };
elm_calendar_mark_add(obj, "weekend/day1", &t, ELM_CALENDAR_WEEKLY);
```
2. sunday
```
 struct tm t = { 0, 0, 12, 7, 0, 0, 0, 0, -1 };
 elm_calendar_mark_add(obj, "weekend/day2", &t, ELM_CALENDAR_WEEKLY);
```

Reviewers: CHAN, cedric, raster

Reviewed By: raster

Subscribers: raster, akanad, id213sin, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4148
---
 data/elementary/themes/colorclasses.edc | 10 ++
 data/elementary/themes/edc/elm/calendar.edc | 49 +
 src/lib/elementary/elm_removed.h|  4 +--
 3 files changed, 61 insertions(+), 2 deletions(-)

diff --git a/data/elementary/themes/colorclasses.edc 
b/data/elementary/themes/colorclasses.edc
index dbfc3f8..ab6dc07 100644
--- a/data/elementary/themes/colorclasses.edc
+++ b/data/elementary/themes/colorclasses.edc
@@ -170,6 +170,16 @@ color_classes {
   color3: 255 255 255 192;
   desc: "Disabled Day Text";
}
+   color_class { name: "calendar_day_text_weekend1";
+  color: 128 128 128 255;
+  color3: 0 0 0 128;
+  desc: "Weekend Day1 Text";
+   }
+   color_class { name: "calendar_day_text_weekend2";
+  color: 128 128 128 255;
+  color3: 0 0 0 128;
+  desc: "Weekend Day2 Text";
+   }
color_class { name: "check_text";
   color: FN_COL_DEFAULT;
   desc: "Text of a checkbox's label";
diff --git a/data/elementary/themes/edc/elm/calendar.edc 
b/data/elementary/themes/edc/elm/calendar.edc
index e5edcba..662bd51 100644
--- a/data/elementary/themes/edc/elm/calendar.edc
+++ b/data/elementary/themes/edc/elm/calendar.edc
@@ -11,6 +11,12 @@
   style { name: "calendar_date_disabled_style";\
  base: "font="FN" font_size=10 color=#151515 style=shadow,bottom 
shadow_color=#ffc0 align=center text_class=calendar_day_text_disabled 
text_class=calendar_day_text_disabled";\
   }\
+  style { name: "calendar_date_weekend1_style";\
+ base: "font="FN" font_size=10 color=#2020C0 style=shadow,bottom 
shadow_color=#ffc0 align=center text_class=calendar_day_text_weekend1 
color_class=calendar_day_text_weekend1";\
+  }\
+  style { name: "calendar_date_weekend2_style";\
+ base: "font="FN" font_size=10 color=#C02020 style=shadow,bottom 
shadow_color=#ffc0 align=center text_class=calendar_day_text_weekend2 
color_class=calendar_day_text_weekend2";\
+  }\
 
 #define CAL_SPIN(_sufix, _text, _relative)\
   part { name: "left_bt"#_sufix; type: SPACER;\
@@ -215,6 +221,14 @@
  inherit: "default" 0.0; \
  text.style: "calendar_date_disabled_style"; \
   } \
+  description { state: "weekend/day1" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "calendar_date_weekend1_style"; \
+  } \
+  description { state: "weekend/day2" 0.0; \
+ inherit: "default" 0.0; \
+ text.style: "calendar_date_weekend2_style"; \
+  } \
} \
part { name: "cit_"#_pos".check"; mouse_events: 0; \
   scale: 1; \
@@ -324,9 +338,20 @@
  source:  "elm"; \
  action:  STATE_SET "default" 0.0; \
  target:  "cit_"#_pos".check"; \
+ after:   "cit_"#_pos".weekends_clear"; \
  after:   "cit_"#_pos".holiday_clear"; \
   } \
   program { \
+ name:"cit_"#_pos".weekends_clear"; \
+ script { \
+new st[31]; \
+new Float:vl; \
+get_state(PART:"cit_"#_pos".text", st, 30, vl); \
+if (!strcmp(st, "weekend/day1") || !strcmp(st, "weekend/day2")) \
+  set_state(PART:"cit_"#_pos".text", "default", 0.0); \
+ } \
+  } \
+  program { \
  name:"cit_"#_pos".

[EGIT] [core/efl] master 01/05: elm_entry: remove unnecessary text clearing in text_set

2016-07-06 Thread Jiwon Kim
cedric pushed a commit to branch master.

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

commit 38db4b4c0397ce599d5c50859d8431fbbdff284c
Author: Jiwon Kim 
Date:   Wed Jul 6 12:48:56 2016 -0700

elm_entry: remove unnecessary text clearing in text_set

Summary:
When text_set is called for entry, it sets to empty text
before calling _entry_text_append().
but, _entry_text_append() has 'set' parameter.
Therefore text is set in that function, and clearing is not needed.

It can fix "changed" smart callback is invoked multipe times
when a short text is set to entry.

In addition, if text length is larger than ELM_ENTRY_CHUNK_SIZE,
set text directly as amount of chunk size and idler will append
about remain text.

@fix

Test Plan:
1. elementary_test -to "entry5"
2. click "set 1" button
2-1. changed message should be printed 1 time
3. click "set 10001" button
3-1. changed message should be printed 2 times

Reviewers: tasn, Hermet, id213sin, cedric

Reviewed By: cedric

Subscribers: woohyun, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4134

Signed-off-by: Cedric BAIL 
---
 src/bin/elementary/test_entry.c | 64 +
 src/lib/elementary/elm_entry.c  | 18 ++--
 2 files changed, 80 insertions(+), 2 deletions(-)

diff --git a/src/bin/elementary/test_entry.c b/src/bin/elementary/test_entry.c
index b94c525..4b1a020 100644
--- a/src/bin/elementary/test_entry.c
+++ b/src/bin/elementary/test_entry.c
@@ -1811,10 +1811,45 @@ test_entry4(void *data EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_in
evas_object_show(win);
 }
 
+static void
+_entry_changed_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
+void *event_info EINA_UNUSED)
+{
+   printf("entry is changed\n");
+}
+
+#define ELM_ENTRY_CHUNK_SIZE 1
+static void
+my_ent_set_chunk(void *data, Evas_Object *obj EINA_UNUSED, void *event_info 
EINA_UNUSED)
+{
+   Evas_Object *en = data;
+   char *buf = calloc((ELM_ENTRY_CHUNK_SIZE + 1), sizeof(char));
+   int i;
+   for (i = 0; i < ELM_ENTRY_CHUNK_SIZE; i++)
+ buf[i] = '1';
+
+   printf("set %d length of text\n", ELM_ENTRY_CHUNK_SIZE);
+   elm_entry_entry_set(en, buf);
+}
+
+static void
+my_ent_set_long(void *data, Evas_Object *obj EINA_UNUSED, void *event_info 
EINA_UNUSED)
+{
+   Evas_Object *en = data;
+   char *buf = calloc((ELM_ENTRY_CHUNK_SIZE + 2), sizeof(char));
+   int i;
+   for (i = 0; i < (ELM_ENTRY_CHUNK_SIZE + 1); i++)
+ buf[i] = '1';
+
+   printf("set %d length of text\n", ELM_ENTRY_CHUNK_SIZE + 1);
+   elm_entry_entry_set(en, buf);
+}
+
 void
 test_entry5(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void 
*event_info EINA_UNUSED)
 {
Evas_Object *win, *bx, *bx2, *bt, *en;
+   char buf[10];
 
win = elm_win_util_standard_add("entry5", "Entry 5");
elm_win_autodel_set(win, EINA_TRUE);
@@ -1840,6 +1875,7 @@ test_entry5(void *data EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_in
"good testing to see if entry widgets work as 
advertised."
   );
evas_object_smart_callback_add(en, "anchor,clicked", scrolled_anchor_test, 
en);
+   evas_object_smart_callback_add(en, "changed", _entry_changed_cb, NULL);
elm_box_pack_end(bx, en);
evas_object_show(en);
 
@@ -2073,6 +2109,34 @@ test_entry5(void *data EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_in
elm_box_pack_end(bx, bx2);
evas_object_show(bx2);
 
+   bx2 = elm_box_add(win);
+   elm_box_horizontal_set(bx2, EINA_TRUE);
+   evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0.0);
+   evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+   bt = elm_button_add(win);
+   snprintf(buf, 10, "set %d", ELM_ENTRY_CHUNK_SIZE);
+   elm_object_text_set(bt, buf);
+   evas_object_smart_callback_add(bt, "clicked", my_ent_set_chunk, en);
+   evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
+   elm_box_pack_end(bx2, bt);
+   elm_object_focus_allow_set(bt, EINA_FALSE);
+   evas_object_show(bt);
+
+   bt = elm_button_add(win);
+   snprintf(buf, 10, "set %d", ELM_ENTRY_CHUNK_SIZE + 1);
+   elm_object_text_set(bt, buf);
+   evas_object_smart_callback_add(bt, "clicked", my_ent_set_long, en);
+   evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
+   elm_box_pack_end(bx2, bt);
+   elm_object_focus_allow_set(bt, EINA_FALSE);
+   evas_object_show(bt);
+
+   elm_box_pack_end(bx, bx2);
+   evas_object_show(bx2);
+
   

[EGIT] [core/efl] master 02/05: elm_calendar: fix first week is not changed

2016-07-06 Thread Jiwon Kim
cedric pushed a commit to branch master.

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

commit 50b549faa2873f5de991dde54018efa1bf5f9613
Author: Jiwon Kim 
Date:   Wed Jul 6 12:49:43 2016 -0700

elm_calendar: fix first week is not changed

Summary: @fix

Test Plan:
1. elm_calendar_first_day_of_week_set(cal, ELM_DAY_MONDAY);
2. First week string should be changed to "Mon"

Reviewers: tasn, cedric

Reviewed By: cedric

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4135

Signed-off-by: Cedric BAIL 
---
 src/lib/elementary/elm_calendar.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/elementary/elm_calendar.c 
b/src/lib/elementary/elm_calendar.c
index 85a7f28..2782ec3 100644
--- a/src/lib/elementary/elm_calendar.c
+++ b/src/lib/elementary/elm_calendar.c
@@ -717,7 +717,7 @@ _set_headers(Evas_Object *obj)
 }
}
  part[3] = i + '0';
- elm_layout_text_set(obj, part, sd->weekdays[i]);
+ elm_layout_text_set(obj, part, sd->weekdays[(i + 
sd->first_week_day) % ELM_DAY_LAST]);
  weekday += 86400; /* Advance by a day */
   }
 }

-- 




[EGIT] [core/efl] master 01/01: elm_entry: restrict focus region to inside of entry object area

2016-06-26 Thread Jiwon Kim
raster pushed a commit to branch master.

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

commit 7a17f6fb47b38969a786475757f43c1853a934f0
Author: Jiwon Kim 
Date:   Mon Jun 27 15:04:20 2016 +0900

elm_entry: restrict focus region to inside of entry object area

Summary:
Focus region must be located in entry object.
Therefore if it get out of entry,
 it just returns last cursor position that can be shown.

@fix

Test Plan:
1. elementary_test "Entry on Page Scroll"
2. click 2nd btn and close popup
3. page should not be scrolled

Reviewers: raster, herdsman, id213sin, woohyun, tasn, cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D4072
---
 data/elementary/objects/test.edc | 10 
 src/bin/elementary/test_entry.c  | 51 +++-
 src/lib/elementary/elm_entry.c   | 34 +++
 3 files changed, 84 insertions(+), 11 deletions(-)

diff --git a/data/elementary/objects/test.edc b/data/elementary/objects/test.edc
index 3b665e1..fa7c835 100644
--- a/data/elementary/objects/test.edc
+++ b/data/elementary/objects/test.edc
@@ -800,6 +800,16 @@ group { name: "page_layout";
  description { state: "default" 0.0;
rel1.relative: 0.4 0.6;
rel1.to:"bg";
+   rel2.relative: 0.6 0.7;
+   rel2.to:"bg";
+ }
+  }
+  part { name: "element3";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+   rel1.relative: 0.4 0.7;
+   rel1.to:"bg";
rel2.relative: 0.6 0.8;
rel2.to:"bg";
  }
diff --git a/src/bin/elementary/test_entry.c b/src/bin/elementary/test_entry.c
index c56e093..04003a8 100644
--- a/src/bin/elementary/test_entry.c
+++ b/src/bin/elementary/test_entry.c
@@ -685,6 +685,44 @@ test_entry_scrolled(void *data EINA_UNUSED, Evas_Object 
*obj EINA_UNUSED, void *
 }
 
 static void
+my_pop_close_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info 
EINA_UNUSED)
+{
+  Evas_Object *btn, *pop, *en;
+  pop = data;
+  en = elm_object_parent_widget_get(pop);
+  elm_object_text_set(en, "This is very long text,"
+  " it is longer than width of this page."
+  " So if scroller is moved to next page,"
+  " that is bug when you click under button"
+  " and then click this entry text");
+  elm_entry_cursor_end_set(en);
+
+  evas_object_del(pop);
+}
+
+static void
+my_pop_bt_clr(void *data, Evas_Object *obj EINA_UNUSED, void *event_info 
EINA_UNUSED)
+{
+   Evas_Object *pop, *btn, *en;
+   en = data;
+   elm_object_text_set(en, "");
+   elm_entry_cursor_end_set(en);
+
+   pop = elm_popup_add(en);
+   elm_object_text_set(pop, "If you click confirm, "
+   "set long text to entry "
+   "and delete popup obj");
+
+   btn = elm_button_add(pop);
+   elm_object_text_set(btn, "Confirm");
+   evas_object_smart_callback_add(btn, "clicked", my_pop_close_cb, pop);
+   elm_object_part_content_set(pop, "button1", btn);
+
+   evas_object_show(btn);
+   evas_object_show(pop);
+}
+
+static void
 my_en_bt_clr(void *data, Evas_Object *obj EINA_UNUSED, void *event_info 
EINA_UNUSED)
 {
Evas_Object *en = data;
@@ -722,7 +760,11 @@ test_entry_on_page_scroll(void *data EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED,
 
en = elm_entry_add(ly);
elm_object_part_text_set(en, "guide", "Entry area");
-   elm_object_text_set(en, "This is very long text, it is longer than width of 
this page. So if scroller is moved to next page, that is bug when you click 
under button and then click this entry text");
+  elm_object_text_set(en, "This is very long text,"
+  " it is longer than width of this page."
+  " So if scroller is moved to next page,"
+  " that is bug when you click under button"
+  " and then click this entry text");
elm_object_part_content_set(ly, "element1", en);
elm_entry_scrollable_set(en, EINA_TRUE);
elm_entry_single_line_set(en, EINA_TRUE);
@@ -735,6 +777,13 @@ test_entry_on_page_scroll(void *data EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED,
evas_object_show(btn);
elm_object_focus_set(btn, EINA_TRUE);
 
+   btn = elm_button_add(ly);
+   elm_object_text_set(btn, "Click this and close popup");
+   elm_object_part_content_set(ly, "element3", btn);
+   evas_object_smart_callback_add(btn, "clicked", my_pop_bt_clr, en);
+   evas_object_show(btn);
+   elm_objec

[EGIT] [website/www-content] master 01/03: Wiki page about changed with summary [Samsung Galaxy Gear -> Samsung Gear] by Jiwon Kim

2016-06-22 Thread Jiwon Kim
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=ea6a6d32a21de80dd62283e04da6f4c371c9c721

commit ea6a6d32a21de80dd62283e04da6f4c371c9c721
Author: Jiwon Kim 
Date:   Mon Jun 13 19:39:17 2016 -0700

Wiki page about changed with summary [Samsung Galaxy Gear -> Samsung Gear] 
by Jiwon Kim
---
 pages/about.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pages/about.txt b/pages/about.txt
index ba6f5f0..a8a3667 100644
--- a/pages/about.txt
+++ b/pages/about.txt
@@ -86,7 +86,7 @@ sold thousands of devices with EFL and Enlightenment on them.
 [[http://www.yellowdoglinux.com/|Yellow Dog Linux]] for the Sony PS3
 ships with Enlightenment as the default. EFL has been used on printers,
 netbooks and more. It powers the
-[[http://www.samsung.com/us/mobile/wearable-tech|Samsung Galaxy Gear]]
+[[http://www.samsung.com/us/mobile/wearable-tech|Samsung Gear]]
 watches, is behind the
 
[[http://www.samsung.com/in/consumer/mobile-phone/mobile-phone/dual-sim-phone/SM-Z130HZKDINS|Samsung
 Z1 Phone]]
 and the

-- 




[EGIT] [core/efl] master 01/01: Elm entry: fix returning wrong focus region

2016-05-26 Thread Jiwon Kim
raster pushed a commit to branch master.

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

commit f20f4c6e50d1535a2cefe81bbe90d78f0fc5a9a3
Author: Jiwon Kim 
Date:   Thu May 26 17:19:34 2016 +0900

Elm entry: fix returning wrong focus region

Summary:
In on_focus_region function,
entry returns relative x,y position from edje object.
It should be calculated from elm object's position.

@fix

Test Plan:
1. $elementary_test "Entry on Page Scroll"
2. click under button
3. click upper text in entry
4. page should not be scrolled

Reviewers: tasn, cedric, woohyun, Hermet, herdsman, raster

Subscribers: Blackmole, id213sin, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D3923
---
 data/elementary/objects/test.edc | 21 ++-
 src/bin/elementary/test.c|  2 ++
 src/bin/elementary/test_entry.c  | 76 
 src/lib/elementary/elm_entry.c   |  9 +
 4 files changed, 107 insertions(+), 1 deletion(-)

diff --git a/data/elementary/objects/test.edc b/data/elementary/objects/test.edc
index 84407e5..3b665e1 100644
--- a/data/elementary/objects/test.edc
+++ b/data/elementary/objects/test.edc
@@ -784,6 +784,25 @@ group { name: "page_layout";
}
  }
   }
+  part { name: "element1";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+   rel1.relative: 0.4 0.2;
+   rel1.to:"bg";
+   rel2.relative: 0.6 0.4;
+   rel2.to:"bg";
+ }
+  }
+  part { name: "element2";
+ type: SWALLOW;
+ scale: 1;
+ description { state: "default" 0.0;
+   rel1.relative: 0.4 0.6;
+   rel1.to:"bg";
+   rel2.relative: 0.6 0.8;
+   rel2.to:"bg";
+ }
+  }
}
-
 }
diff --git a/src/bin/elementary/test.c b/src/bin/elementary/test.c
index de8e6d3..fff22fe 100644
--- a/src/bin/elementary/test.c
+++ b/src/bin/elementary/test.c
@@ -61,6 +61,7 @@ void test_entry(void *data, Evas_Object *obj, void 
*event_info);
 void test_entry_style_user(void *data, Evas_Object *obj, void *event_info);
 void test_entry_style_default(void *data, Evas_Object *obj, void *event_info);
 void test_entry_scrolled(void *data, Evas_Object *obj, void *event_info);
+void test_entry_on_page_scroll(void *data, Evas_Object *obj, void *event_info);
 void test_entry3(void *data, Evas_Object *obj, void *event_info);
 void test_entry4(void *data, Evas_Object *obj, void *event_info);
 void test_entry5(void *data, Evas_Object *obj, void *event_info);
@@ -603,6 +604,7 @@ add_tests:
ADD_TEST(NULL, "Entries", "Entry Style Default", test_entry_style_default);
ADD_TEST(NULL, "Entries", "Entry Style User", test_entry_style_user);
ADD_TEST(NULL, "Entries", "Entry Scrolled", test_entry_scrolled);
+   ADD_TEST(NULL, "Entries", "Entry on Page Scroll", 
test_entry_on_page_scroll);
ADD_TEST(NULL, "Entries", "Entry 3", test_entry3);
ADD_TEST(NULL, "Entries", "Entry 4", test_entry4);
ADD_TEST(NULL, "Entries", "Entry 5", test_entry5);
diff --git a/src/bin/elementary/test_entry.c b/src/bin/elementary/test_entry.c
index c295cc3..8ea2aa5 100644
--- a/src/bin/elementary/test_entry.c
+++ b/src/bin/elementary/test_entry.c
@@ -686,6 +686,82 @@ test_entry_scrolled(void *data EINA_UNUSED, Evas_Object 
*obj EINA_UNUSED, void *
 }
 
 static void
+my_en_bt_clr(void *data, Evas_Object *obj EINA_UNUSED, void *event_info 
EINA_UNUSED)
+{
+   Evas_Object *en = data;
+   elm_entry_cursor_end_set(en);
+}
+
+void
+test_entry_on_page_scroll(void *data EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_info EINA_UNUSED)
+{
+   Evas_Object *win, *sc, *bx, *ly, *rect, *en, *btn, *lb;
+   char buf[PATH_MAX];
+
+   win = elm_win_util_standard_add("entry-on-page-scroll", "Entry on Page 
Scroll");
+   elm_win_autodel_set(win, EINA_TRUE);
+
+   sc = elm_scroller_add(win);
+   evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   elm_scroller_page_relative_set(sc, 1.0, 0.0);
+   elm_scroller_policy_set(sc, ELM_SCROLLER_POLICY_OFF, 
ELM_SCROLLER_POLICY_OFF);
+   elm_scroller_page_scroll_limit_set(sc, 1, 0);
+   elm_win_resize_object_add(win, sc);
+   evas_object_show(sc);
+
+   bx = elm_box_add(sc);
+   elm_box_horizontal_set(bx, EINA_TRUE);
+   elm_object_content_set(sc, bx);
+   evas_object_show(bx);
+
+   ly = elm_layout_add(bx);
+   snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());
+   elm_layout_file_set(ly, buf, "page_layout");
+   rect = evas_object_rectangle_add(evas_object_evas_get(ly));
+   evas_object