Re: [E-devel] compiling enightenment

2014-01-23 Thread Rafael Antognolli
If you are compiling Enlightenment from git, you should also compile
Elementary from git.

From the error, your Elementary version is clearly an older one
(1.8.0-alpha2 is old already).


On Thu, Jan 23, 2014 at 12:39 PM, Tony Peña emperor...@gmail.com wrote:
 Hi...
 I'm compiling Enlightfrom git. in the correct order. but now i'm stay
 receibing these errors.. any idea? or have to wait for some source package
 aren't still complete develop??

 configure: error: Package requirements (
   evas = 1.8.99
   ecore = 1.8.99
   ecore-x = 1.8.99
   ecore-evas = 1.8.99
   ecore-input = 1.8.99
   ecore-input-evas = 1.8.99
   ecore-con = 1.8.99
   ecore-ipc = 1.8.99
   ecore-file = 1.8.99
   eet = 1.8.99
   edje = 1.8.99
   efreet = 1.8.99
   efreet-mime = 1.8.99
   efreet-trash = 1.8.99
   eina = 1.8.99
   eldbus = 1.8.99
   eio = 1.8.99
   elementary = 1.8.99
   emotion = 1.8.99


   eeze
 ) were not met:

 Requested 'elementary = 1.8.99' but version of elementary is 1.8.0-alpha2


 --
 Antonio Peña
 Secure email with PGP 0x8B021001 available at http://pgp.mit.edu
 Fingerprint: 74E6 2974 B090 366D CE71  7BB2 6476 FA09 8B02 1001
 --
 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=119420431iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



-- 
Rafael Antognolli

--
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=119420431iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] elementary frame for wayland backend ?

2013-12-30 Thread Rafael Antognolli
On Mon, Dec 30, 2013 at 6:50 AM, Cedric BAIL cedric.b...@free.fr wrote:
 Hello,

 On Mon, Dec 30, 2013 at 5:06 PM, Juan Zhao juan.j.z...@linux.intel.com 
 wrote:
 In current elementary code, we can find that elementary will add an 
 frame for wayland backend. While this is not required for all conditions. 
 For example, in mobile environment, most of the windows will be 
 fullscreened, or frameless.

 Because other than the desktop environment, it's better to add a frame 
 on demand. I'm thinking of one way to remove this default setting, and 
 leverage the frame setting to the application itself, the reference code is 
 listed below, and what's your suggestions for this frame setting?

 diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c
 index 9d23d1a..ca39bdb 100644
 --- a/src/lib/elm_win.c
 +++ b/src/lib/elm_win.c
 @@ -3144,10 +3144,6 @@ _win_constructor(Eo *obj, void *_pd, va_list *list)
   {
  TRAP(sd, fullscreen_set, 1);
   }
 -   else if ((type != ELM_WIN_INLINED_IMAGE) 
 -(ENGINE_COMPARE(ELM_WAYLAND_SHM) ||
 - ENGINE_COMPARE(ELM_WAYLAND_EGL)))
 - _elm_win_frame_add(sd, default);

 cc tizen-dev maillist, because tizen mobile and ivi are using the 
 same code base.

 Don't we have a theme to solve that issue ? I don't think putting
 things like that in the application is a good idea at all. It lock
 them down to work only on one specific device and when you want to
 expand to other device/use case, you end up with a mess to maintain.

Yes, we do. Just removing the theme group responsible for the frame is
enough to make sure that no frame will be drawn.

-- 
Rafael Antognolli

--
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET,  PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: ecore_evas/wayland: Update withdrawn property, and inform state_changed.

2013-12-09 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit cb3fcca0e7f6af0dd095a0ea5ec0f2360ab4269d
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Wed Dec 4 18:50:19 2013 -0200

ecore_evas/wayland: Update withdrawn property, and inform state_changed.
---
 src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
index 8c02856..2d03700 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
@@ -1484,10 +1484,17 @@ _ecore_evas_wl_common_withdrawn_set(Ecore_Evas *ee, int 
val)
 {
LOGFN(__FILE__, __LINE__, __FUNCTION__);
 
+   val = !!val;
+
+   if (ee-prop.withdrawn == val)
+ return;
+
+   ee-prop.withdrawn = val;
if (val)
  ecore_evas_hide(ee);
else
  ecore_evas_show(ee);
+   _ecore_evas_wl_common_state_update(ee);
 }
 
 void

-- 




[EGIT] [core/efl] efl-1.8 01/01: ecore_evas/wayland: Update withdrawn property, and inform state_changed.

2013-12-09 Thread Rafael Antognolli
antognolli pushed a commit to branch efl-1.8.

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

commit f34a8c639c717d9c26d90ece58403dad27cb635a
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Wed Dec 4 18:50:19 2013 -0200

ecore_evas/wayland: Update withdrawn property, and inform state_changed.
---
 src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
index d6f2272..c5b04fb 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
@@ -1482,10 +1482,17 @@ _ecore_evas_wl_common_withdrawn_set(Ecore_Evas *ee, int 
val)
 {
LOGFN(__FILE__, __LINE__, __FUNCTION__);
 
+   val = !!val;
+
+   if (ee-prop.withdrawn == val)
+ return;
+
+   ee-prop.withdrawn = val;
if (val)
  ecore_evas_hide(ee);
else
  ecore_evas_show(ee);
+   _ecore_evas_wl_common_state_update(ee);
 }
 
 void

-- 




[EGIT] [core/efl] master 01/01: ecore_imf/wayland: Only call hide_input_panel on im_context_hide().

2013-12-09 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit 15b5497dfa674ada0ec98805f009b63e3a39f04d
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Mon Dec 9 14:21:29 2013 -0200

ecore_imf/wayland: Only call hide_input_panel on im_context_hide().

There's no need to call it on text_input_leave too, otherwise this would
be called twice, the one from text_input_leave possibly being called
after the focus was regain already by a text input, causing the bug
described in T237.

This fixes T237.
---
 src/modules/ecore_imf/wayland/wayland_imcontext.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/src/modules/ecore_imf/wayland/wayland_imcontext.c 
b/src/modules/ecore_imf/wayland/wayland_imcontext.c
index 6e301c9..6e28cee 100644
--- a/src/modules/ecore_imf/wayland/wayland_imcontext.c
+++ b/src/modules/ecore_imf/wayland/wayland_imcontext.c
@@ -512,9 +512,6 @@ text_input_leave(void *data,
 {
WaylandIMContext *imcontext = (WaylandIMContext *)data;
 
-   if (text_input)
- wl_text_input_hide_input_panel(text_input);
-
/* clear preedit */
commit_preedit(imcontext);
clear_preedit(imcontext);

-- 




[EGIT] [core/efl] efl-1.8 01/01: ecore_imf/wayland: Only call hide_input_panel on im_context_hide().

2013-12-09 Thread Rafael Antognolli
antognolli pushed a commit to branch efl-1.8.

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

commit 1808adbe7a1693a642915c7760850607978a3709
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Mon Dec 9 14:21:29 2013 -0200

ecore_imf/wayland: Only call hide_input_panel on im_context_hide().

There's no need to call it on text_input_leave too, otherwise this would
be called twice, the one from text_input_leave possibly being called
after the focus was regain already by a text input, causing the bug
described in T237.

This fixes T237.
---
 src/modules/ecore_imf/wayland/wayland_imcontext.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/src/modules/ecore_imf/wayland/wayland_imcontext.c 
b/src/modules/ecore_imf/wayland/wayland_imcontext.c
index 6e301c9..6e28cee 100644
--- a/src/modules/ecore_imf/wayland/wayland_imcontext.c
+++ b/src/modules/ecore_imf/wayland/wayland_imcontext.c
@@ -512,9 +512,6 @@ text_input_leave(void *data,
 {
WaylandIMContext *imcontext = (WaylandIMContext *)data;
 
-   if (text_input)
- wl_text_input_hide_input_panel(text_input);
-
/* clear preedit */
commit_preedit(imcontext);
clear_preedit(imcontext);

-- 




Re: [E-devel] What is a withdrawn window?

2013-12-09 Thread Rafael Antognolli
On Mon, Dec 9, 2013 at 3:04 PM, Tom Hacohen tom.haco...@samsung.com wrote:
 On 09/12/13 16:53, Eoff, Ullysses A wrote:
 The ELM docs don't explain the concept... nor does a Google search AFAICT.  
 So what is it?

 Currently, setting a window as withdrawn appears to just hide it (i.e. 
 elm_win_withdrawn_set(..., EINA_TRUE))... so what's the point, why not use 
 evas_object_hide(...) instead?

 Next, if we call evas_object_show(...) on  a withdrawn window, should it be 
 unwithdrawn too?  This is how it works right now on X11 engine, but is that 
 correct?  Or should you be required to call elm_win_withdrawn_set(..., 
 EINA_FALSE)?

 Essentially, I'm asking because I want to make sure it's consistent (which 
 it's not) and correct across engines (e.g. X11 vs. Wayland), or should it 
 be?  As Tom basically stated on IRC, this probably shouldn't even be logic 
 that is specific to any engine, rather it's a general thing.

 Finally, the clear definition of a withdrawn window should be added to the 
 docs.

 As I said on IRC, if I remember correctly withdrawn is the super-hidden.
 That is hidden + it's safe to release some resources as it'll be hidden
 for a while/we need the resources.
 That's just from the top of my head, I guess raster might be able to
 remember.

OK, your answer seems aligned to Mike's one.

So, another question: when we iconify a window, it should still appear
in the toplevel list of windows, e.g. for ALT+Tab. Does the same
happen when we hide/withdrawn a window?

Would be good to have a clear difference between iconify, withdrawn and hide.

So far, withdrawn and hide are being treated exactly the same in
Wayland engines, while iconify will be different (it's a server-side
thing, the client won't free any resources at all).

 We also need to sort out (higher level, not in the engine) all of the
 withdrawn true/false settings on hide and show and decide what can and
 should be done in many cases. For example, if we switch to show, does
 the state automatically change? Can we have a withdrawn state even when
 shown, and then make it actually do something only when the window is
 hidden? I don't know, it's kind of weird.


--
Sponsored by Intel(R) XDK 
Develop, test and display web and hybrid apps with a single code base.
Download it for free now!
http://pubads.g.doubleclick.net/gampad/clk?id=111408631iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [Enlightenment-intl] EFL 1.8.1

2013-12-02 Thread Rafael Antognolli
On Mon, Dec 2, 2013 at 10:42 PM, Carsten Haitzler ras...@rasterman.com wrote:
 On Mon, 2 Dec 2013 22:32:00 -0200 Rafael Antognolli antogno...@gmail.com 
 said:

 On Mon, Dec 2, 2013 at 10:20 PM, Carsten Haitzler ras...@rasterman.com
 wrote:
  On Mon, 2 Dec 2013 21:43:38 +0100 Thanatermesis
  thanatermesis.e...@gmail.com said:
 
   BTW, if 1.8.1 is out, we need a proper v1.8.1 tag.
 
  with git tag -l i can see it listed, but this command is not reliable to
  get the last tagged value (version) on the branch, for that I use instead
  git describe --tag --abbrev=0, but it points to v1.8.0, is the tag
  wrongly set ?
 
  the tag will be on the 1.8 branch - so possibly you need to switch to it.

 That shouldn't be necessary, and actually doesn't show the tags to me.

 Is there anyone else who can't see the v1.8.1 tag, or is it just me?

 http://git.enlightenment.org/core/efl.git/

 cgit can see it.

Doug is right. The tagged commit is not in the efl-1.8 branch (not
even on master).

This is the 1.8.1 commit on efl-1.8 branch:
https://git.enlightenment.org/core/efl.git/commit/?h=efl-1.8id=2af23d998a3be6dc4ef6e9c48d0927821d808014

And this is the commit that was tagged as v1.8.1:
https://git.enlightenment.org/core/efl.git/commit/?id=dbc8e3cef9a414bf55dba3f3ddf4e08b85c48b1e

They are different commits.

And I don't know why, but it appears on cgit but doesn't on a local
branch unless you fetch with --tags. I tried to clone the repository
again, in a new location, and it still doesn't show the tag. Maybe
it's because it's not in any branch, so no reason to fetch the tag.

  2013/12/2 Daniel Juyung Seo seojuyu...@gmail.com
 
   As 1.8.1 is out, how about updating docs pages to search 1.8 not 1.7?
   http://web.enlightenment.org/p.php?p=docsl=en
  
   Thanks in advance.
  
   Daniel Juyung Seo (SeoZ)
  
  
   On Mon, Dec 2, 2013 at 12:53 PM, Carsten Haitzler ras...@rasterman.com
   wrote:
  
Due to a sneaky autofoo m4 macro issue, this resulted in library files
being
generated with -release names. this snuck past because i did full
   rebuilds
including apps depending on efl and they just re-linked to the new
releasename .so's.
   
efl 1.8.1 is up now with this fixed.
   
--
- Codito, ergo sum - I code, therefore I am
-- The Rasterman (Carsten Haitzler)
ras...@rasterman.com
   
   
   
   
   --
Rapidly troubleshoot problems before they affect your business. Most 
IT
organizations don't have a clear picture of how application 
performance
affects their revenue. With AppDynamics, you get 100% visibility into
   your
Java,.NET,  PHP application. Start your 15-day FREE TRIAL of
AppDynamics Pro!
   
   http://pubads.g.doubleclick.net/gampad/clk?id=84349351iu=/4140/ostg.clktrk
___
Enlightenment-intl mailing list
enlightenment-i...@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-intl
   
  
   --
   Rapidly troubleshoot problems before they affect your business. Most IT
   organizations don't have a clear picture of how application performance
   affects their revenue. With AppDynamics, you get 100% visibility into
   your Java,.NET,  PHP application. Start your 15-day FREE TRIAL of
   AppDynamics Pro!
   http://pubads.g.doubleclick.net/gampad/clk?id=84349351iu=/4140/ostg.clktrk
   ___
   enlightenment-devel mailing list
   enlightenment-devel@lists.sourceforge.net
   https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
  
  --
  Rapidly troubleshoot problems before they affect your business. Most IT
  organizations don't have a clear picture of how application performance
  affects their revenue. With AppDynamics, you get 100% visibility into your
  Java,.NET,  PHP application. Start your 15-day FREE TRIAL of AppDynamics
  Pro!
  http://pubads.g.doubleclick.net/gampad/clk?id=84349351iu=/4140/ostg.clktrk
  ___ enlightenment-devel
  mailing list enlightenment-devel@lists.sourceforge.net
  https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
 
 
 
  --
  - Codito, ergo sum - I code, therefore I am --
  The Rasterman (Carsten Haitzler)ras...@rasterman.com
 
 
  --
  Rapidly troubleshoot problems before they affect your business. Most IT
  organizations don't have a clear picture of how application performance
  affects their revenue. With AppDynamics, you get 100% visibility into your
  Java,.NET,  PHP application. Start your 15-day FREE TRIAL of AppDynamics
  Pro!
  http://pubads.g.doubleclick.net

[EGIT] [core/efl] master 02/04: ecore/wayland: Get the touch up event position from the down_info.

2013-11-29 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit 2c95c5ee1d470650480781fe72518ef67263010d
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Thu Nov 28 17:53:42 2013 -0200

ecore/wayland: Get the touch up event position from the down_info.

down_info is a struct that stores some information about the current
pressed touch events. It should be used for that specific touch point,
instead of the generic input info, when sending a mouse_up event.
---
 src/lib/ecore_wayland/ecore_wl_input.c | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/lib/ecore_wayland/ecore_wl_input.c 
b/src/lib/ecore_wayland/ecore_wl_input.c
index a9b7ac6..4661891 100644
--- a/src/lib/ecore_wayland/ecore_wl_input.c
+++ b/src/lib/ecore_wayland/ecore_wl_input.c
@@ -1357,8 +1357,6 @@ _ecore_wl_input_mouse_up_send(Ecore_Wl_Input *input, 
Ecore_Wl_Window *win, int d
  ev-buttons = button;
 
ev-timestamp = timestamp;
-   ev-x = input-sx;
-   ev-y = input-sy;
ev-root.x = input-sx;
ev-root.y = input-sy;
ev-modifiers = input-modifiers;
@@ -1372,11 +1370,15 @@ _ecore_wl_input_mouse_up_send(Ecore_Wl_Input *input, 
Ecore_Wl_Window *win, int d
   ev-double_click = 1;
 if (down_info-did_triple)
   ev-triple_click = 1;
+ev-x = down_info-sx;
+ev-y = down_info-sy;
 ev-multi.x = down_info-sx;
 ev-multi.y = down_info-sy;
  }
else
  {
+ev-x = input-sx;
+ev-y = input-sy;
 ev-multi.x = input-sx;
 ev-multi.y = input-sy;
  }

-- 




Re: [E-devel] [EGIT] [core/efl] master 01/01: Revert evas: allow fuzziness on the texture format returned by GL.

2013-11-27 Thread Rafael Antognolli
On Tue, Nov 26, 2013 at 10:08 PM, Carsten Haitzler ras...@rasterman.com wrote:
 On Tue, 26 Nov 2013 13:46:11 -0200 Rafael Antognolli antogno...@gmail.com
 said:

 On Tue, Nov 26, 2013 at 12:30 PM, Cedric BAIL cedric.b...@free.fr wrote:
  On Tue, Nov 26, 2013 at 2:51 PM, Rafael Antognolli antogno...@gmail.com
  wrote:
  antognolli pushed a commit to branch master.
 
  http://git.enlightenment.org/core/efl.git/commit/?id=87385b05c3117aa8d46fd4029bfdeadf3444a7b9
 
  commit 87385b05c3117aa8d46fd4029bfdeadf3444a7b9
  Author: Rafael Antognolli rafael.antogno...@intel.com
  Date:   Tue Nov 26 11:41:54 2013 -0200
 
  Revert evas: allow fuzziness on the texture format returned by GL.
 
  This reverts commit 2b5b3438e82a9a1bb4086864660942d3c1ddc113.
 
  Breaks gl engines when using GLES + EGL.
 
  In what scenario did it break things ? Can you give me the
  intfmt/intfmtret that trigger the issue ? This patch is necessary for
  other platform to actually work.

 It just doesn't build. I didn't try to debug and see if it's just a
 missing header or something, and sorry, I wasn't clear in the commit
 message.

 Anyway, build log attached.

 fyi (both of you( GL_RGBA8/4 etc. etc. don't normally exist in GLES... only
 desktop GL... that's why it breaks. we have to #ifndef + #define these if we
 want to use them (like many defines that are in gl but not gles). it's
 harmless to keep the code fuzz handling even on gles... but we need to add
 the defines if not already defined.

Sure, that would work great.

Just to make it clear: I'm not against this change at all, I just
reverted the change because the Wayland build was broken and I really
didn't have time to fix it yesterday. I'm totally fine with re-adding
that code with your suggested fixes. I can even do it later this week
if Cedric doesn't have enough time, but yesterday this wasn't an
option for me.

And actually, I think this should be the standard behavior: revert any
commit that breaks the build if the author is not around to fix it
quickly.

  ---
   ChangeLog  |  4 ---
   NEWS   |  1 -
   .../evas/engines/gl_common/evas_gl_texture.c   | 38
  +- 3 files changed, 1 insertion(+), 42 deletions(-)
 
  diff --git a/ChangeLog b/ChangeLog
  index 95ee2ab..ec1db15 100644
  --- a/ChangeLog
  +++ b/ChangeLog
  @@ -7,10 +7,6 @@
   * ecore anim: Fixed animator not working problem when source_set
  is changed back and forth very fast.
 
  -2013-11-26  Cedric Bail
  -
  -* Evas: Allow fuzziness on the texture format returned by GL.
  -
   2013-11-25  Tom Hacohen
 
   * Evas textblock: Fixed wrapping of lines ending with whites.
  diff --git a/NEWS b/NEWS
  index e5a8bbe..856e3f4 100644
  --- a/NEWS
  +++ b/NEWS
  @@ -228,7 +228,6 @@ Improvements:
- Use mmap/munmap for image data allocation on system that have 
  mmap.
- Add iterator for walking child of smart objects, table and a box.
- Use Eina_Spinlock for Evas_ScaleCache, Evas_Async_Events and
  Image_Entry.
  - - Allow fuzziness on the texture format returned by GL.
   * Ecore:
- Use Eina_Spinlock for Ecore_Thread.
   * Ecore_Con:
  diff --git a/src/modules/evas/engines/gl_common/evas_gl_texture.c
  b/src/modules/evas/engines/gl_common/evas_gl_texture.c index
  95cb3a4..1cacce3 100644
  --- a/src/modules/evas/engines/gl_common/evas_gl_texture.c
  +++ b/src/modules/evas/engines/gl_common/evas_gl_texture.c
  @@ -54,42 +54,6 @@ static const struct {
   #endif
   };
 
  -static const GLenum matching_rgba[] = { GL_RGBA4, GL_RGBA8, GL_RGBA12,
  GL_RGBA16, 0x0 }; -static const GLenum matching_alpha[] = { GL_ALPHA4,
  GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, 0x0 }; -static const GLenum
  matching_luminance[] = { GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12,
  GL_LUMINANCE16, 0x0 }; -static const GLenum matching_luminance_alpha[] =
  { GL_LUMINANCE4_ALPHA4, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA12,
  GL_LUMINANCE16_ALPHA16, 0x0 }; - -static const struct {
  -   GLenum master;
  -   const GLenum *matching;
  -} matching_fmt[] = {
  -  { GL_RGBA, matching_rgba },
  -  { GL_ALPHA, matching_alpha },
  -  { GL_LUMINANCE, matching_luminance },
  -  { GL_LUMINANCE_ALPHA, matching_luminance_alpha }
  -};
  -
  -static Eina_Bool
  -_evas_gl_texture_match(GLenum intfmt, GLenum intfmtret)
  -{
  -   unsigned int i;
  -
  -   if (intfmt == intfmtret) return EINA_TRUE;
  -
  -   for (i = 0; i  sizeof (matching_fmt) / sizeof (matching_fmt[0]); i++)
  - if (matching_fmt[i].master == intfmt)
  -   {
  -  unsigned int j;
  -
  -  for (j = 0; matching_fmt[i].matching[j] != 0x0; j++)
  -if (matching_fmt[i].matching[j] == intfmtret)
  -  return EINA_TRUE;
  -  return EINA_FALSE;
  -   }
  -
  -   return EINA_FALSE;
  -}
  -
   static int
   _evas_gl_texture_search_format(Eina_Bool alpha, Eina_Bool bgra

[EGIT] [core/efl] master 01/01: Revert evas: allow fuzziness on the texture format returned by GL.

2013-11-26 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit 87385b05c3117aa8d46fd4029bfdeadf3444a7b9
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Tue Nov 26 11:41:54 2013 -0200

Revert evas: allow fuzziness on the texture format returned by GL.

This reverts commit 2b5b3438e82a9a1bb4086864660942d3c1ddc113.

Breaks gl engines when using GLES + EGL.
---
 ChangeLog  |  4 ---
 NEWS   |  1 -
 .../evas/engines/gl_common/evas_gl_texture.c   | 38 +-
 3 files changed, 1 insertion(+), 42 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 95ee2ab..ec1db15 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -7,10 +7,6 @@
 * ecore anim: Fixed animator not working problem when source_set is
 changed back and forth very fast.
 
-2013-11-26  Cedric Bail
-
-* Evas: Allow fuzziness on the texture format returned by GL.
-
 2013-11-25  Tom Hacohen
 
 * Evas textblock: Fixed wrapping of lines ending with whites.
diff --git a/NEWS b/NEWS
index e5a8bbe..856e3f4 100644
--- a/NEWS
+++ b/NEWS
@@ -228,7 +228,6 @@ Improvements:
  - Use mmap/munmap for image data allocation on system that have mmap.
  - Add iterator for walking child of smart objects, table and a box.
  - Use Eina_Spinlock for Evas_ScaleCache, Evas_Async_Events and 
Image_Entry.
- - Allow fuzziness on the texture format returned by GL.
 * Ecore:
  - Use Eina_Spinlock for Ecore_Thread.
 * Ecore_Con:
diff --git a/src/modules/evas/engines/gl_common/evas_gl_texture.c 
b/src/modules/evas/engines/gl_common/evas_gl_texture.c
index 95cb3a4..1cacce3 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_texture.c
+++ b/src/modules/evas/engines/gl_common/evas_gl_texture.c
@@ -54,42 +54,6 @@ static const struct {
 #endif
 };
 
-static const GLenum matching_rgba[] = { GL_RGBA4, GL_RGBA8, GL_RGBA12, 
GL_RGBA16, 0x0 };
-static const GLenum matching_alpha[] = { GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, 
GL_ALPHA16, 0x0 };
-static const GLenum matching_luminance[] = { GL_LUMINANCE4, GL_LUMINANCE8, 
GL_LUMINANCE12, GL_LUMINANCE16, 0x0 };
-static const GLenum matching_luminance_alpha[] = { GL_LUMINANCE4_ALPHA4, 
GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, 0x0 };
-
-static const struct {
-   GLenum master;
-   const GLenum *matching;
-} matching_fmt[] = {
-  { GL_RGBA, matching_rgba },
-  { GL_ALPHA, matching_alpha },
-  { GL_LUMINANCE, matching_luminance },
-  { GL_LUMINANCE_ALPHA, matching_luminance_alpha }
-};
-
-static Eina_Bool
-_evas_gl_texture_match(GLenum intfmt, GLenum intfmtret)
-{
-   unsigned int i;
-
-   if (intfmt == intfmtret) return EINA_TRUE;
-
-   for (i = 0; i  sizeof (matching_fmt) / sizeof (matching_fmt[0]); i++)
- if (matching_fmt[i].master == intfmt)
-   {
-  unsigned int j;
-
-  for (j = 0; matching_fmt[i].matching[j] != 0x0; j++)
-if (matching_fmt[i].matching[j] == intfmtret)
-  return EINA_TRUE;
-  return EINA_FALSE;
-   }
-
-   return EINA_FALSE;
-}
-
 static int
 _evas_gl_texture_search_format(Eina_Bool alpha, Eina_Bool bgra)
 {
@@ -197,7 +161,7 @@ _tex_2d(Evas_Engine_GL_Context *gc, int intfmt, int w, int 
h, int fmt, int type)
 
 glGetTexLevelParameteriv(GL_TEXTURE_2D, 0,
  GL_TEXTURE_INTERNAL_FORMAT, intfmtret);
-if (!_evas_gl_texture_match(intfmt, intfmtret))
+if (intfmtret != intfmt)
   {
  ERR(Fail tex alloc %ix%i, w, h);
  //XXX send async err to evas

-- 




Re: [E-devel] [EGIT] [core/efl] master 01/01: Revert evas: allow fuzziness on the texture format returned by GL.

2013-11-26 Thread Rafael Antognolli
On Tue, Nov 26, 2013 at 12:30 PM, Cedric BAIL cedric.b...@free.fr wrote:
 On Tue, Nov 26, 2013 at 2:51 PM, Rafael Antognolli antogno...@gmail.com 
 wrote:
 antognolli pushed a commit to branch master.

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

 commit 87385b05c3117aa8d46fd4029bfdeadf3444a7b9
 Author: Rafael Antognolli rafael.antogno...@intel.com
 Date:   Tue Nov 26 11:41:54 2013 -0200

 Revert evas: allow fuzziness on the texture format returned by GL.

 This reverts commit 2b5b3438e82a9a1bb4086864660942d3c1ddc113.

 Breaks gl engines when using GLES + EGL.

 In what scenario did it break things ? Can you give me the
 intfmt/intfmtret that trigger the issue ? This patch is necessary for
 other platform to actually work.

It just doesn't build. I didn't try to debug and see if it's just a
missing header or something, and sorry, I wasn't clear in the commit
message.

Anyway, build log attached.

 ---
  ChangeLog  |  4 ---
  NEWS   |  1 -
  .../evas/engines/gl_common/evas_gl_texture.c   | 38 
 +-
  3 files changed, 1 insertion(+), 42 deletions(-)

 diff --git a/ChangeLog b/ChangeLog
 index 95ee2ab..ec1db15 100644
 --- a/ChangeLog
 +++ b/ChangeLog
 @@ -7,10 +7,6 @@
  * ecore anim: Fixed animator not working problem when source_set is
  changed back and forth very fast.

 -2013-11-26  Cedric Bail
 -
 -* Evas: Allow fuzziness on the texture format returned by GL.
 -
  2013-11-25  Tom Hacohen

  * Evas textblock: Fixed wrapping of lines ending with whites.
 diff --git a/NEWS b/NEWS
 index e5a8bbe..856e3f4 100644
 --- a/NEWS
 +++ b/NEWS
 @@ -228,7 +228,6 @@ Improvements:
   - Use mmap/munmap for image data allocation on system that have mmap.
   - Add iterator for walking child of smart objects, table and a box.
   - Use Eina_Spinlock for Evas_ScaleCache, Evas_Async_Events and 
 Image_Entry.
 - - Allow fuzziness on the texture format returned by GL.
  * Ecore:
   - Use Eina_Spinlock for Ecore_Thread.
  * Ecore_Con:
 diff --git a/src/modules/evas/engines/gl_common/evas_gl_texture.c 
 b/src/modules/evas/engines/gl_common/evas_gl_texture.c
 index 95cb3a4..1cacce3 100644
 --- a/src/modules/evas/engines/gl_common/evas_gl_texture.c
 +++ b/src/modules/evas/engines/gl_common/evas_gl_texture.c
 @@ -54,42 +54,6 @@ static const struct {
  #endif
  };

 -static const GLenum matching_rgba[] = { GL_RGBA4, GL_RGBA8, GL_RGBA12, 
 GL_RGBA16, 0x0 };
 -static const GLenum matching_alpha[] = { GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, 
 GL_ALPHA16, 0x0 };
 -static const GLenum matching_luminance[] = { GL_LUMINANCE4, GL_LUMINANCE8, 
 GL_LUMINANCE12, GL_LUMINANCE16, 0x0 };
 -static const GLenum matching_luminance_alpha[] = { GL_LUMINANCE4_ALPHA4, 
 GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, 0x0 };
 -
 -static const struct {
 -   GLenum master;
 -   const GLenum *matching;
 -} matching_fmt[] = {
 -  { GL_RGBA, matching_rgba },
 -  { GL_ALPHA, matching_alpha },
 -  { GL_LUMINANCE, matching_luminance },
 -  { GL_LUMINANCE_ALPHA, matching_luminance_alpha }
 -};
 -
 -static Eina_Bool
 -_evas_gl_texture_match(GLenum intfmt, GLenum intfmtret)
 -{
 -   unsigned int i;
 -
 -   if (intfmt == intfmtret) return EINA_TRUE;
 -
 -   for (i = 0; i  sizeof (matching_fmt) / sizeof (matching_fmt[0]); i++)
 - if (matching_fmt[i].master == intfmt)
 -   {
 -  unsigned int j;
 -
 -  for (j = 0; matching_fmt[i].matching[j] != 0x0; j++)
 -if (matching_fmt[i].matching[j] == intfmtret)
 -  return EINA_TRUE;
 -  return EINA_FALSE;
 -   }
 -
 -   return EINA_FALSE;
 -}
 -
  static int
  _evas_gl_texture_search_format(Eina_Bool alpha, Eina_Bool bgra)
  {
 @@ -197,7 +161,7 @@ _tex_2d(Evas_Engine_GL_Context *gc, int intfmt, int w, 
 int h, int fmt, int type)

  glGetTexLevelParameteriv(GL_TEXTURE_2D, 0,
   GL_TEXTURE_INTERNAL_FORMAT, intfmtret);
 -if (!_evas_gl_texture_match(intfmt, intfmtret))
 +if (intfmtret != intfmt)
{
   ERR(Fail tex alloc %ix%i, w, h);
   //XXX send async err to evas

 --






 --
 Cedric BAIL

 --
 Shape the Mobile Experience: Free Subscription
 Software experts and developers: Be at the forefront of tech innovation.
 Intel(R) Software Adrenaline delivers strategic insight and game-changing
 conversations that shape the rapidly evolving mobile landscape. Sign up now.
 http://pubads.g.doubleclick.net/gampad/clk?id=63431311iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



-- 
Rafael Antognolli
make

[EGIT] [core/efl] master 01/01: ecore_evas/wayland: Fix non-resize rotation.

2013-11-26 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit dbb9cf9765904a8b16022e9828414da3334e86f6
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Tue Nov 26 14:01:35 2013 -0200

ecore_evas/wayland: Fix non-resize rotation.

Fix phab T392.

Notice that it should reopen T359, as it wasn't really fixed, but a
rotation with resize was being used when a non-resized rotation was
requested. The cause of the protruding surfaces is likely the fact
that Elementary is setting the opaque regions manually, instead of
leaving it to Ecore_Evas. This must be fixed either inside Elementary
itself, or adding the surface extents (shadow/non-visible surface
parts) info to Ecore_Evas too.
---
 .../engines/wayland/ecore_evas_wayland_common.c| 18 --
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
index 53bc074..849b38e 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
@@ -276,6 +276,7 @@ _rotation_do(Ecore_Evas *ee, int rotation, int resize)
 if (!resize)
   {
  int fw, fh;
+ int ww, hh;
 
  /* grab framespace width  height */
  evas_output_framespace_get(ee-evas, NULL, NULL, fw, fh);
@@ -284,14 +285,8 @@ _rotation_do(Ecore_Evas *ee, int rotation, int resize)
  if (!ee-prop.fullscreen)
{
   /* resize the ecore_wayland window */
-  ecore_wl_window_resize(wdata-win, 
+  ecore_wl_window_resize(wdata-win,
  ee-req.h + fw, ee-req.w + fh, 0);
-
-  /* resize the canvas */
-  evas_output_size_set(ee-evas, ee-req.h + fw, 
-   ee-req.w + fh);
-  evas_output_viewport_set(ee-evas, 0, 0, 
-   ee-req.h + fw, ee-req.w + fh);
}
  else
{
@@ -320,14 +315,17 @@ _rotation_do(Ecore_Evas *ee, int rotation, int resize)
 }
}
 
- /* call the ecore_evas' resize function */
- if (ee-func.fn_resize) ee-func.fn_resize(ee);
-
  /* add canvas damage */
  if ((ee-rotation == 0) || (ee-rotation == 180))
evas_damage_rectangle_add(ee-evas, 0, 0, ee-req.w, ee-req.h);
  else
evas_damage_rectangle_add(ee-evas, 0, 0, ee-req.h, ee-req.w);
+ ww = ee-h;
+ hh = ee-w;
+ ee-w = ww;
+ ee-h = hh;
+ ee-req.w = ww;
+ ee-req.h = hh;
   }
 else
   {

-- 




[EGIT] [core/efl] master 01/01: ecore_evas/wayland: Update comments inside rotation code.

2013-11-26 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit 662d086837d681fa35100a3c0d9a9d0d608c1927
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Tue Nov 26 14:10:15 2013 -0200

ecore_evas/wayland: Update comments inside rotation code.
---
 .../ecore_evas/engines/wayland/ecore_evas_wayland_common.c   | 12 
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
index 849b38e..efdea83 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
@@ -367,8 +367,11 @@ _rotation_do(Ecore_Evas *ee, int rotation, int resize)
 ecore_evas_size_step_set(ee, steph, stepw);
 
 /* send a mouse_move process
- * 
- * NB: Is This Really Needed ?? */
+ *
+ * NB: Is This Really Needed ?
+ * Yes, it's required to update the mouse position, relatively to
+ * widgets. After a rotation change, e.g., the mouse might not be over
+ * a button anymore. */
 _ecore_evas_mouse_move_process(ee, ee-mouse.x, ee-mouse.y,
ecore_loop_time_get());
  }
@@ -381,8 +384,9 @@ _rotation_do(Ecore_Evas *ee, int rotation, int resize)
 ee-rotation = rotation;
 
 /* send a mouse_move process
- * 
- * NB: Is This Really Needed ?? */
+ *
+ * NB: Is This Really Needed ? Yes, it's required to update the mouse
+ * position, relatively to widgets. */
 _ecore_evas_mouse_move_process(ee, ee-mouse.x, ee-mouse.y,
ecore_loop_time_get());
 

-- 




[EGIT] [core/elementary] master 01/01: elm_win/wayland: Call frame update after rotation changed.

2013-11-26 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit c4a4208108cbbc0e5fd88ca0f21ab9648f5c1acb
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Tue Nov 26 14:56:14 2013 -0200

elm_win/wayland: Call frame update after rotation changed.

This will update the opaque region, that was set to a different
orientation.

Fix T359.
---
 src/lib/elm_win.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c
index 1b420aa..1513665 100644
--- a/src/lib/elm_win.c
+++ b/src/lib/elm_win.c
@@ -4480,6 +4480,7 @@ _win_rotate(Evas_Object *obj, Elm_Win_Smart_Data *sd, int 
rotation, Eina_Bool re
 #ifdef HAVE_ELEMENTARY_X
_elm_win_xwin_update(sd);
 #endif
+   _elm_win_frame_obj_update(sd);
elm_widget_orientation_set(obj, rotation);
evas_object_smart_callback_call(obj, SIG_ROTATION_CHANGED, NULL);
 }

-- 




Re: [E-devel] [EGIT] [core/enlightenment] enlightenment-0.17 02/02: 0.17.5 release

2013-11-05 Thread Rafael Antognolli
++, Fortran Developers
 Accelerate application performance with scalable programming models. Explore
 techniques for threading, error checking, porting, and tuning. Get the most
 from the latest Intel processors and coprocessors. See abstracts and register
 http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



-- 
Rafael Antognolli

--
November Webinars for C, C++, Fortran Developers
Accelerate application performance with scalable programming models. Explore
techniques for threading, error checking, porting, and tuning. Get the most 
from the latest Intel processors and coprocessors. See abstracts and register
http://pubads.g.doubleclick.net/gampad/clk?id=60136231iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: ecore/wayland: Move Ecore_Wl_Output to a private header.

2013-11-04 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit fdf6828b7e705ea058ca3ac6475d1d3ff53cd31f
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Mon Nov 4 11:06:49 2013 -0200

ecore/wayland: Move Ecore_Wl_Output to a private header.

This is just not being used outside of ecore_wayland library, so just
move it and nothing breaks.
---
 src/lib/ecore_wayland/Ecore_Wayland.h| 13 -
 src/lib/ecore_wayland/ecore_wl_private.h | 13 +
 2 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h 
b/src/lib/ecore_wayland/Ecore_Wayland.h
index d4efec9..bcb7141 100644
--- a/src/lib/ecore_wayland/Ecore_Wayland.h
+++ b/src/lib/ecore_wayland/Ecore_Wayland.h
@@ -96,19 +96,6 @@ struct _Ecore_Wl_Global
struct wl_list link;
 };
 
-struct _Ecore_Wl_Output
-{
-   Ecore_Wl_Display *display;
-   struct wl_output *output;
-   Eina_Rectangle allocation;
-   int mw, mh;
-   int transform;
-   struct wl_list link;
-
-   void (*destroy) (Ecore_Wl_Output *output, void *data);
-   void *data;
-};
-
 struct _Ecore_Wl_Event_Mouse_In
 {
int modifiers;
diff --git a/src/lib/ecore_wayland/ecore_wl_private.h 
b/src/lib/ecore_wayland/ecore_wl_private.h
index fa92e6d..69b2f95 100644
--- a/src/lib/ecore_wayland/ecore_wl_private.h
+++ b/src/lib/ecore_wayland/ecore_wl_private.h
@@ -202,6 +202,19 @@ struct _Ecore_Wl_Input
  } repeat;
 };
 
+struct _Ecore_Wl_Output
+{
+   Ecore_Wl_Display *display;
+   struct wl_output *output;
+   Eina_Rectangle allocation;
+   int mw, mh;
+   int transform;
+   struct wl_list link;
+
+   void (*destroy) (Ecore_Wl_Output *output, void *data);
+   void *data;
+};
+
 struct _Ecore_Wl_Dnd
 {
Ecore_Wl_Display *ewd;

-- 




Re: [E-devel] EFL 1.8 coming release

2013-11-04 Thread Rafael Antognolli
On Mon, Nov 4, 2013 at 1:29 PM, Eoff, Ullysses A
ullysses.a.e...@intel.com wrote:
 -Original Message-
 From: Rafael Antognolli [mailto:antogno...@gmail.com]
 Sent: Friday, November 01, 2013 11:15 AM
 To: Enlightenment developer list
 Subject: Re: [E-devel] EFL 1.8 coming release

 On Fri, Oct 25, 2013 at 6:35 AM, Cedric BAIL cedric.b...@free.fr wrote:
  Right now I am only aware of one major change that need to be done,
  fixing Ecore_Wayland.h exposing private structure. So if you have
  anything important, please share it here. I will go over phab and take
  of what I can.

 OK, most private structures are now inside ecore_wl_private.h, which
 is not installed, and not included in any other public header either.

 There are two public structures that I am not sure yet,
 Ecore_Wl_Global and Ecore_Wl_Output. The latter one I think that
 should be hidden too, definitely, but I can't do it right now (timeout
 for me) and won't be able to do anything on the weekend, but I can do
 it on Monday morning if you guys open a small exception for this
 specific case :D

 I really don't know about Ecore_Wl_Global yet, it might need to be
 exposed for things like the testings being done by uartie.


 I just need access to the available global interfaces for wayland-fits
 so I can bind to a custom interface... feel free to change the semantics
 as needed and we'll just adjust wayland-fits to follow.

Done. I also changed the outputs returned list from wl_list to eina_inlist.

 Anyway, in both cases they should be quite easy to be moved to
 ecore_wl_private.h, as they are way smaller and less used than the
 other ones already in there.

 Cheers,
 --
 Rafael Antognolli

 --
 Android is increasing in popularity, but the open development platform that
 developers love is also attractive to malware creators. Download this white
 paper to learn more about secure code signing practices that can help keep
 Android apps secure.
 http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

 --
 Android is increasing in popularity, but the open development platform that
 developers love is also attractive to malware creators. Download this white
 paper to learn more about secure code signing practices that can help keep
 Android apps secure.
 http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



-- 
Rafael Antognolli

--
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: ecore/wayland: Remove attributes that are not used anymore.

2013-11-01 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit 277a5915c1f5451f0e5ad740df9159f334af441d
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Fri Nov 1 10:28:14 2013 -0200

ecore/wayland: Remove attributes that are not used anymore.

Some attributes might have been useful in the past, but not anymore.
Just remove since they are not been used anywhere.
---
 src/lib/ecore_wayland/Ecore_Wayland.h  |  2 +-
 src/lib/ecore_wayland/ecore_wl_window.c|  5 -
 .../ecore_evas/engines/wayland/ecore_evas_wayland_common.c |  7 ---
 .../ecore_evas/engines/wayland/ecore_evas_wayland_egl.c| 10 +-
 .../ecore_evas/engines/wayland/ecore_evas_wayland_shm.c| 10 +-
 5 files changed, 3 insertions(+), 31 deletions(-)

diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h 
b/src/lib/ecore_wayland/Ecore_Wayland.h
index f9b70c7..424e3db 100644
--- a/src/lib/ecore_wayland/Ecore_Wayland.h
+++ b/src/lib/ecore_wayland/Ecore_Wayland.h
@@ -132,7 +132,7 @@ struct _Ecore_Wl_Window
struct 
  {
 int w, h;
- } saved, server;
+ } saved;
 
struct 
  {
diff --git a/src/lib/ecore_wayland/ecore_wl_window.c 
b/src/lib/ecore_wayland/ecore_wl_window.c
index 661e825..4c40a62 100644
--- a/src/lib/ecore_wayland/ecore_wl_window.c
+++ b/src/lib/ecore_wayland/ecore_wl_window.c
@@ -212,8 +212,6 @@ ecore_wl_window_buffer_attach(Ecore_Wl_Window *win, struct 
wl_buffer *buffer, in
switch (win-buffer_type)
  {
   case ECORE_WL_WINDOW_BUFFER_TYPE_EGL_WINDOW:
-win-server.w = win-allocation.w;
-win-server.h = win-allocation.h;
 break;
   case ECORE_WL_WINDOW_BUFFER_TYPE_EGL_IMAGE:
   case ECORE_WL_WINDOW_BUFFER_TYPE_SHM:
@@ -226,9 +224,6 @@ ecore_wl_window_buffer_attach(Ecore_Wl_Window *win, struct 
wl_buffer *buffer, in
  wl_surface_damage(win-surface, 0, 0, 
win-allocation.w, win-allocation.h);
  wl_surface_commit(win-surface);
-
- win-server.w = win-allocation.w;
- win-server.h = win-allocation.h;
   }
 break;
   default:
diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
index 2bb1aab..de87aff 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
@@ -277,14 +277,7 @@ _ecore_evas_wl_common_cb_window_configure(void *data 
EINA_UNUSED, int type EINA_
 
 if (wdata-win)
   {
- Ecore_Wl_Window *win;
-
- win = wdata-win;
-
  _ecore_evas_wayland_resize_edge_set(ee, ev-edges);
-
- win-server.w = win-allocation.w;
- win-server.h = win-allocation.h;
  ecore_wl_window_update_size(wdata-win, ev-w, ev-h);
   }
  }
diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
index 1709c50..e0bb743 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
@@ -325,15 +325,7 @@ _ecore_evas_wl_resize(Ecore_Evas *ee, int w, int h)
   evas_object_resize(wdata-frame, w, h);
 
 if (wdata-win)
-  {
- Ecore_Wl_Window *win;
-
- win = wdata-win;
-
- win-server.w = win-allocation.w;
- win-server.h = win-allocation.h;
- ecore_wl_window_update_size(wdata-win, w, h);
-  }
+  ecore_wl_window_update_size(wdata-win, w, h);
 
 if (ee-func.fn_resize) ee-func.fn_resize(ee);
  }
diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
index 05060a7..5542173 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
@@ -319,15 +319,7 @@ _ecore_evas_wl_resize(Ecore_Evas *ee, int w, int h)
   evas_object_resize(wdata-frame, w, h);
 
 if (wdata-win)
-  {
- Ecore_Wl_Window *win;
-
- win = wdata-win;
-
- win-server.w = win-allocation.w;
- win-server.h = win-allocation.h;
- ecore_wl_window_update_size(wdata-win, w, h);
-  }
+  ecore_wl_window_update_size(wdata-win, w, h);
 
 if (ee-func.fn_resize) ee-func.fn_resize(ee);
  }

-- 




[EGIT] [core/efl] master 04/07: ecore/wayland: Set win-moving from inside ecore_wayland.

2013-11-01 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit 6aa11cf89d305da10058edfade3e463cdaae9a2d
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Fri Nov 1 14:33:54 2013 -0200

ecore/wayland: Set win-moving from inside ecore_wayland.

We can set it from the ecore_wl_window_move() function, instead of
directly changing the attribute.
---
 src/lib/ecore_wayland/ecore_wl_window.c| 2 ++
 src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c | 5 +
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/src/lib/ecore_wayland/ecore_wl_window.c 
b/src/lib/ecore_wayland/ecore_wl_window.c
index 97508e2..fc71053 100644
--- a/src/lib/ecore_wayland/ecore_wl_window.c
+++ b/src/lib/ecore_wayland/ecore_wl_window.c
@@ -136,6 +136,8 @@ ecore_wl_window_move(Ecore_Wl_Window *win, int x, int y)
 
if (!win) return;
 
+   win-moving = EINA_TRUE;
+
ecore_wl_window_update_location(win, x, y);
 
if (win-shell_surface)
diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
index 4aa27df..172cafe 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
@@ -1391,10 +1391,7 @@ _ecore_evas_wayland_move(Ecore_Evas *ee, int x, int y)
  {
wdata = ee-engine.data;
 if (wdata-win)
-  {
- wdata-win-moving = EINA_TRUE;
- ecore_wl_window_move(wdata-win, x, y);
-  }
+  ecore_wl_window_move(wdata-win, x, y);
  }
 }
 

-- 




[EGIT] [core/efl] master 01/07: ecore_evas/wayland: Do not update opaque region to the same value.

2013-11-01 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit a63c69cac5e49a122cb1fa1bcf8187cff1198dcf
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Fri Nov 1 10:43:53 2013 -0200

ecore_evas/wayland: Do not update opaque region to the same value.

This should not be necessary, since it's setting exactly the same
current opaque region. Changing the opaque region might be needed, but
not here.
---
 src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c | 6 --
 1 file changed, 6 deletions(-)

diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
index de87aff..4a1628e 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
@@ -416,12 +416,6 @@ _rotation_do(Ecore_Evas *ee, int rotation, int resize)
 /* record the current rotation of the ecore_evas */
 ee-rotation = rotation;
 
-ecore_wl_window_opaque_region_set(wdata-win, 
-  wdata-win-opaque.x, 
-  wdata-win-opaque.y,
-  wdata-win-opaque.w,
-  wdata-win-opaque.h);
-
 /* send a mouse_move process
  * 
  * NB: Is This Really Needed ?? */

-- 




[EGIT] [core/efl] master 06/07: ecore/wayland: Add ecore_wl_window_keyboard_get().

2013-11-01 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit b77ac9b57ef6367adaa2812be874575559b54d72
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Fri Nov 1 15:51:38 2013 -0200

ecore/wayland: Add ecore_wl_window_keyboard_get().

Instead of use direct access to the Ecore_Wl_Window structure, just use
the getter, so we can hide the internals.
---
 src/lib/ecore_wayland/Ecore_Wayland.h |  2 ++
 src/lib/ecore_wayland/ecore_wl_window.c   | 11 +++
 src/modules/ecore_imf/wayland/wayland_imcontext.c |  2 +-
 3 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h 
b/src/lib/ecore_wayland/Ecore_Wayland.h
index d42bae7..fe37630 100644
--- a/src/lib/ecore_wayland/Ecore_Wayland.h
+++ b/src/lib/ecore_wayland/Ecore_Wayland.h
@@ -633,6 +633,8 @@ EAPI int ecore_wl_window_id_get(Ecore_Wl_Window *win);
 EAPI void ecore_wl_window_title_set(Ecore_Wl_Window *win, const char *title);
 EAPI void ecore_wl_window_class_name_set(Ecore_Wl_Window *win, const char 
*class_name);
 
+EAPI Ecore_Wl_Input *ecore_wl_window_keyboard_get(Ecore_Wl_Window *win);
+
 /**
  * Returns a wl_surface with no association to any wl_shell_surface.
  *
diff --git a/src/lib/ecore_wayland/ecore_wl_window.c 
b/src/lib/ecore_wayland/ecore_wl_window.c
index 99463da..9b732d1 100644
--- a/src/lib/ecore_wayland/ecore_wl_window.c
+++ b/src/lib/ecore_wayland/ecore_wl_window.c
@@ -714,6 +714,17 @@ ecore_wl_window_class_name_set(Ecore_Wl_Window *win, const 
char *class_name)
  wl_shell_surface_set_class(win-shell_surface, win-class_name);
 }
 
+/* @since 1.8 */
+/* Maybe we need an ecore_wl_window_pointer_get() too */
+EAPI Ecore_Wl_Input *
+ecore_wl_window_keyboard_get(Ecore_Wl_Window *win)
+{
+   LOGFN(__FILE__, __LINE__, __FUNCTION__);
+
+   if (!win) return 0;
+   return win-keyboard_device;
+}
+
 
 /* local functions */
 static void 
diff --git a/src/modules/ecore_imf/wayland/wayland_imcontext.c 
b/src/modules/ecore_imf/wayland/wayland_imcontext.c
index 84d0a50..7a418f3 100644
--- a/src/modules/ecore_imf/wayland/wayland_imcontext.c
+++ b/src/modules/ecore_imf/wayland/wayland_imcontext.c
@@ -625,7 +625,7 @@ wayland_im_context_focus_in(Ecore_IMF_Context *ctx)
 
if (!imcontext-window) return;
 
-   input = imcontext-window-keyboard_device;
+   input = ecore_wl_window_keyboard_get(imcontext-window);
if (!input)
  return;
 

-- 




[EGIT] [core/efl] master 05/07: ecore/wayland: Set win-resizing flag inside ecore_wl_resize().

2013-11-01 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit 8b852ad21eb106545100b122fa82d9923526b8af
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Fri Nov 1 15:51:14 2013 -0200

ecore/wayland: Set win-resizing flag inside ecore_wl_resize().
---
 src/lib/ecore_wayland/ecore_wl_window.c | 1 +
 src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c | 1 -
 src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c | 1 -
 3 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/lib/ecore_wayland/ecore_wl_window.c 
b/src/lib/ecore_wayland/ecore_wl_window.c
index fc71053..99463da 100644
--- a/src/lib/ecore_wayland/ecore_wl_window.c
+++ b/src/lib/ecore_wayland/ecore_wl_window.c
@@ -167,6 +167,7 @@ ecore_wl_window_resize(Ecore_Wl_Window *win, int w, int h, 
int location)
 
if (!win) return;
 
+   win-resizing = EINA_TRUE;
ecore_wl_window_update_size(win, w, h);
 
if (win-shell_surface)
diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
index 4e32009..442937d 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
@@ -524,7 +524,6 @@ _ecore_evas_wayland_egl_resize(Ecore_Evas *ee, int location)
  {
 int fw, fh;
 
-wdata-win-resizing = EINA_TRUE;
 evas_output_framespace_get(ee-evas, NULL, NULL, fw, fh);
 
 if ((ee-rotation == 0) || (ee-rotation == 180))
diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
index 2e3a352..cfdd33c 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
@@ -521,7 +521,6 @@ _ecore_evas_wayland_shm_resize(Ecore_Evas *ee, int location)
  {
 int fw, fh;
 
-wdata-win-resizing = EINA_TRUE;
 evas_output_framespace_get(ee-evas, NULL, NULL, fw, fh);
 
 if ((ee-rotation == 90) || (ee-rotation == 270))

-- 




[EGIT] [core/efl] master 03/07: ecore(_evas)/wayland: Move frame callback to engine data.

2013-11-01 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit 839a737a626d6840c37ce166cc8834b765595bc1
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Fri Nov 1 14:19:11 2013 -0200

ecore(_evas)/wayland: Move frame callback to engine data.

It's something specific to the ecore_evas engine/module, so there's no
need to keep this info in the Ecore_Wl_Window.
---
 src/lib/ecore_wayland/Ecore_Wayland.h  |  2 --
 src/lib/ecore_wayland/ecore_wl_window.c|  2 --
 .../engines/wayland/ecore_evas_wayland_common.c| 24 +-
 .../engines/wayland/ecore_evas_wayland_private.h   |  2 ++
 4 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h 
b/src/lib/ecore_wayland/Ecore_Wayland.h
index 387c9f2..d42bae7 100644
--- a/src/lib/ecore_wayland/Ecore_Wayland.h
+++ b/src/lib/ecore_wayland/Ecore_Wayland.h
@@ -157,8 +157,6 @@ struct _Ecore_Wl_Window
Ecore_Wl_Input *keyboard_device;
 
/* FIXME: Shouldn't these attributes be private to the Ecore_Wl_Window? */
-   Eina_Bool frame_pending : 1;
-   struct wl_callback *frame_callback;
 
Eina_Bool anim_pending : 1;
struct wl_callback *anim_callback;
diff --git a/src/lib/ecore_wayland/ecore_wl_window.c 
b/src/lib/ecore_wayland/ecore_wl_window.c
index 8059f44..97508e2 100644
--- a/src/lib/ecore_wayland/ecore_wl_window.c
+++ b/src/lib/ecore_wayland/ecore_wl_window.c
@@ -112,8 +112,6 @@ ecore_wl_window_free(Ecore_Wl_Window *win)
   input-keyboard_focus = NULL;
  }
 
-   if (win-frame_callback) wl_callback_destroy(win-frame_callback);
-   win-frame_callback = NULL;
if (win-anim_callback) wl_callback_destroy(win-anim_callback);
win-anim_callback = NULL;
 
diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
index 705d588..4aa27df 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
@@ -516,6 +516,8 @@ _ecore_evas_wl_common_free(Ecore_Evas *ee)
LOGFN(__FILE__, __LINE__, __FUNCTION__);
 
wdata = ee-engine.data;
+   if (wdata-frame_callback) wl_callback_destroy(wdata-frame_callback);
+   wdata-frame_callback = NULL;
if (wdata-win) ecore_wl_window_free(wdata-win);
wdata-win = NULL;
free(wdata);
@@ -1220,14 +1222,15 @@ _ecore_evas_wl_frame_complete(void *data, struct 
wl_callback *callback, uint32_t
wdata = ee-engine.data;
if (!(win = wdata-win)) return;
 
-   win-frame_callback = NULL;
-   win-frame_pending = EINA_FALSE;
+   wdata-frame_callback = NULL;
+   wdata-frame_pending = EINA_FALSE;
wl_callback_destroy(callback);
 
-   if (win-surface)
+   if (ecore_wl_window_surface_get(win))
  {
-win-frame_callback = wl_surface_frame(win-surface);
-wl_callback_add_listener(win-frame_callback, frame_listener, ee);
+wdata-frame_callback = wl_surface_frame
+   (ecore_wl_window_surface_get(win));
+wl_callback_add_listener(wdata-frame_callback, frame_listener, ee);
  }
 }
 
@@ -1264,14 +1267,15 @@ _ecore_evas_wl_common_render(Ecore_Evas *ee)
 
if (!ee-can_async_render)
  {
-if (!win-frame_pending)
+if (!wdata-frame_pending)
   {
  Eina_List *updates;
 
- if (!win-frame_callback)
+ if (!wdata-frame_callback)
{
-  win-frame_callback = wl_surface_frame(win-surface);
-  wl_callback_add_listener(win-frame_callback, 
+  wdata-frame_callback = wl_surface_frame
+ (ecore_wl_window_surface_get(win));
+  wl_callback_add_listener(wdata-frame_callback, 
frame_listener, ee);
}
 
@@ -1280,7 +1284,7 @@ _ecore_evas_wl_common_render(Ecore_Evas *ee)
  evas_render_updates_free(updates);
 
  if (rend) 
-   win-frame_pending = EINA_TRUE;
+   wdata-frame_pending = EINA_TRUE;
   }
  }
else if (evas_render_async(ee-evas))
diff --git 
a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_private.h 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_private.h
index c1fac29..8de0887 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_private.h
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_private.h
@@ -35,6 +35,8 @@ struct _Ecore_Evas_Engine_Wl_Data
 #ifdef BUILD_ECORE_EVAS_WAYLAND_EGL
struct wl_egl_window *egl_win;
 #endif
+   Eina_Bool frame_pending : 1;
+   struct wl_callback *frame_callback;
 };
 
 Ecore_Evas_Interface_Wayland *_ecore_evas_wl_interface_new(void);

-- 




[EGIT] [core/efl] master 02/07: ecore/wayland: Add title_set and class_name_set APIs.

2013-11-01 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit 1c33a1a57b964d9080909c3e9e93f109d11c674f
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Fri Nov 1 11:38:05 2013 -0200

ecore/wayland: Add title_set and class_name_set APIs.

These two APIs will save the title and class_name inside
Ecore_Wl_Window, so if they are called before the shell surface is
created, the stored names will be used later when the window is finally
shown (shell surface is created).

This way we are also hiding the shell surface from ecore_evas modules.
---
 src/lib/ecore_wayland/Ecore_Wayland.h  |  6 
 src/lib/ecore_wayland/ecore_wl_window.c| 34 ++
 .../engines/wayland/ecore_evas_wayland_common.c| 10 +++
 .../engines/wayland/ecore_evas_wayland_egl.c   |  7 -
 .../engines/wayland/ecore_evas_wayland_shm.c   |  7 -
 5 files changed, 44 insertions(+), 20 deletions(-)

diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h 
b/src/lib/ecore_wayland/Ecore_Wayland.h
index 424e3db..387c9f2 100644
--- a/src/lib/ecore_wayland/Ecore_Wayland.h
+++ b/src/lib/ecore_wayland/Ecore_Wayland.h
@@ -127,6 +127,9 @@ struct _Ecore_Wl_Window
int id, surface_id;
int rotation;
 
+   const char *title;
+   const char *class_name;
+
Eina_Rectangle allocation;
 
struct 
@@ -627,7 +630,10 @@ EAPI void 
ecore_wl_window_cursor_from_name_set(Ecore_Wl_Window *win, const char
 EAPI void ecore_wl_window_cursor_default_restore(Ecore_Wl_Window *win);
 EAPI void ecore_wl_window_parent_set(Ecore_Wl_Window *win, Ecore_Wl_Window 
*parent);
 
+
 EAPI int ecore_wl_window_id_get(Ecore_Wl_Window *win);
+EAPI void ecore_wl_window_title_set(Ecore_Wl_Window *win, const char *title);
+EAPI void ecore_wl_window_class_name_set(Ecore_Wl_Window *win, const char 
*class_name);
 
 /**
  * Returns a wl_surface with no association to any wl_shell_surface.
diff --git a/src/lib/ecore_wayland/ecore_wl_window.c 
b/src/lib/ecore_wayland/ecore_wl_window.c
index 4c40a62..8059f44 100644
--- a/src/lib/ecore_wayland/ecore_wl_window.c
+++ b/src/lib/ecore_wayland/ecore_wl_window.c
@@ -86,6 +86,9 @@ ecore_wl_window_new(Ecore_Wl_Window *parent, int x, int y, 
int w, int h, int buf
win-opaque.w = w;
win-opaque.h = h;
 
+   win-title = NULL;
+   win-class_name = NULL;
+
eina_hash_add(_windows, _ecore_wl_window_id_str_get(win-id), win);
return win;
 }
@@ -121,6 +124,9 @@ ecore_wl_window_free(Ecore_Wl_Window *win)
if (win-surface) wl_surface_destroy(win-surface);
win-surface = NULL;
 
+   if (win-title) eina_stringshare_del(win-title);
+   if (win-class_name) eina_stringshare_del(win-class_name);
+
/* HMMM, why was this disabled ? */
free(win);
 }
@@ -258,6 +264,8 @@ ecore_wl_window_show(Ecore_Wl_Window *win)
  win-shell_surface = 
wl_shell_get_shell_surface(_ecore_wl_disp-wl.shell, 
   win-surface);
+ wl_shell_surface_set_title(win-shell_surface, win-title);
+ wl_shell_surface_set_class(win-shell_surface, win-class_name);
   }
 
 if (win-shell_surface)
@@ -679,6 +687,32 @@ ecore_wl_window_id_get(Ecore_Wl_Window *win)
return win-id;
 }
 
+/* @since 1.8 */
+EAPI void
+ecore_wl_window_title_set(Ecore_Wl_Window *win, const char *title)
+{
+   LOGFN(__FILE__, __LINE__, __FUNCTION__);
+
+   if (!win) return;
+   eina_stringshare_replace(win-title, title);
+
+   if (win-shell_surface)
+ wl_shell_surface_set_title(win-shell_surface, win-title);
+}
+
+/* @since 1.8 */
+EAPI void
+ecore_wl_window_class_name_set(Ecore_Wl_Window *win, const char *class_name)
+{
+   LOGFN(__FILE__, __LINE__, __FUNCTION__);
+
+   if (!win) return;
+   eina_stringshare_replace(win-class_name, class_name);
+
+   if (win-shell_surface)
+ wl_shell_surface_set_class(win-shell_surface, win-class_name);
+}
+
 
 /* local functions */
 static void 
diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
index 4a1628e..705d588 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
@@ -920,9 +920,8 @@ _ecore_evas_wl_common_title_set(Ecore_Evas *ee, const char 
*title)
   evas_object_text_text_set(sd-text, ee-prop.title);
  }
 
-   if ((ee-prop.title)  (wdata-win-shell_surface))
- wl_shell_surface_set_title(wdata-win-shell_surface,
-ee-prop.title);
+   if (ee-prop.title)
+ ecore_wl_window_title_set(wdata-win, ee-prop.title);
 }
 
 void
@@ -941,9 +940,8 @@ _ecore_evas_wl_common_name_class_set(Ecore_Evas *ee, const 
char *n, const char *
if (n) ee-prop.name = strdup(n);
if (c) ee-prop.clas = strdup(c);
 
-   if ((ee-prop.clas)  (wdata

[EGIT] [core/efl] master 07/07: ecore/wayland: Finally move Ecore_Wayland internals to private header.

2013-11-01 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit fe8058cf77b6233917c3aaaf014473788e347888
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Fri Nov 1 15:55:39 2013 -0200

ecore/wayland: Finally move Ecore_Wayland internals to private header.
---
 src/lib/ecore_wayland/Ecore_Wayland.h| 60 
 src/lib/ecore_wayland/ecore_wl_private.h | 58 ++
 2 files changed, 58 insertions(+), 60 deletions(-)

diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h 
b/src/lib/ecore_wayland/Ecore_Wayland.h
index fe37630..f58d41f 100644
--- a/src/lib/ecore_wayland/Ecore_Wayland.h
+++ b/src/lib/ecore_wayland/Ecore_Wayland.h
@@ -109,66 +109,6 @@ struct _Ecore_Wl_Output
void *data;
 };
 
-struct _Ecore_Wl_Window
-{
-   Ecore_Wl_Display *display;
-   Ecore_Wl_Window *parent;
-
-   struct wl_surface *surface;
-   struct wl_shell_surface *shell_surface;
-
-   struct 
- {
-struct wl_surface *surface;
-int hot_x, hot_y;
-Eina_Bool set : 1;
- } pointer;
-
-   int id, surface_id;
-   int rotation;
-
-   const char *title;
-   const char *class_name;
-
-   Eina_Rectangle allocation;
-
-   struct 
- {
-int w, h;
- } saved;
-
-   struct 
- {
-int x, y, w, h;
- } opaque;
-
-   /* Eina_Bool redraw_scheduled : 1; */
-   /* Eina_Bool resize_scheduled : 1; */
-   Eina_Bool alpha : 1;
-   Eina_Bool transparent : 1;
-   Eina_Bool moving : 1;
-   Eina_Bool resizing : 1;
-   Eina_Bool has_buffer : 1;
-
-   Ecore_Wl_Window_Type type;
-   Ecore_Wl_Window_Buffer_Type buffer_type;
-
-   Ecore_Wl_Input *pointer_device;
-   Ecore_Wl_Input *keyboard_device;
-
-   /* FIXME: Shouldn't these attributes be private to the Ecore_Wl_Window? */
-
-   Eina_Bool anim_pending : 1;
-   struct wl_callback *anim_callback;
-
-   /* FIXME: Ideally we should record the cursor name for this window 
-* so we can compare and avoid unnecessary cursor set calls to wayland */
-
-   Ecore_Wl_Subsurf *subsurfs;
-
-   void *data;
-};
-
 struct _Ecore_Wl_Event_Mouse_In
 {
int modifiers;
diff --git a/src/lib/ecore_wayland/ecore_wl_private.h 
b/src/lib/ecore_wayland/ecore_wl_private.h
index 06be1a5..fa92e6d 100644
--- a/src/lib/ecore_wayland/ecore_wl_private.h
+++ b/src/lib/ecore_wayland/ecore_wl_private.h
@@ -92,6 +92,64 @@ struct _Ecore_Wl_Display
void *data;
 };
 
+struct _Ecore_Wl_Window
+{
+   Ecore_Wl_Display *display;
+   Ecore_Wl_Window *parent;
+
+   struct wl_surface *surface;
+   struct wl_shell_surface *shell_surface;
+
+   struct
+ {
+struct wl_surface *surface;
+int hot_x, hot_y;
+Eina_Bool set : 1;
+ } pointer;
+
+   int id, surface_id;
+   int rotation;
+
+   const char *title;
+   const char *class_name;
+
+   Eina_Rectangle allocation;
+
+   struct
+ {
+int w, h;
+ } saved;
+
+   struct
+ {
+int x, y, w, h;
+ } opaque;
+
+   /* Eina_Bool redraw_scheduled : 1; */
+   /* Eina_Bool resize_scheduled : 1; */
+   Eina_Bool alpha : 1;
+   Eina_Bool transparent : 1;
+   Eina_Bool moving : 1;
+   Eina_Bool resizing : 1;
+   Eina_Bool has_buffer : 1;
+
+   Ecore_Wl_Window_Type type;
+   Ecore_Wl_Window_Buffer_Type buffer_type;
+
+   Ecore_Wl_Input *pointer_device;
+   Ecore_Wl_Input *keyboard_device;
+
+   Eina_Bool anim_pending : 1;
+   struct wl_callback *anim_callback;
+
+   /* FIXME: Ideally we should record the cursor name for this window
+* so we can compare and avoid unnecessary cursor set calls to wayland */
+
+   Ecore_Wl_Subsurf *subsurfs;
+
+   void *data;
+};
+
 struct _Ecore_Wl_Input
 {
Ecore_Wl_Display *display;

-- 




Re: [E-devel] EFL 1.8 coming release

2013-11-01 Thread Rafael Antognolli
On Fri, Oct 25, 2013 at 6:35 AM, Cedric BAIL cedric.b...@free.fr wrote:
 Right now I am only aware of one major change that need to be done,
 fixing Ecore_Wayland.h exposing private structure. So if you have
 anything important, please share it here. I will go over phab and take
 of what I can.

OK, most private structures are now inside ecore_wl_private.h, which
is not installed, and not included in any other public header either.

There are two public structures that I am not sure yet,
Ecore_Wl_Global and Ecore_Wl_Output. The latter one I think that
should be hidden too, definitely, but I can't do it right now (timeout
for me) and won't be able to do anything on the weekend, but I can do
it on Monday morning if you guys open a small exception for this
specific case :D

I really don't know about Ecore_Wl_Global yet, it might need to be
exposed for things like the testings being done by uartie.

Anyway, in both cases they should be quite easy to be moved to
ecore_wl_private.h, as they are way smaller and less used than the
other ones already in there.

Cheers,
-- 
Rafael Antognolli

--
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Monitor/output parameter for fullscreen

2013-10-31 Thread Rafael Antognolli
On Thu, Oct 31, 2013 at 12:40 AM, Carsten Haitzler ras...@rasterman.com wrote:
 On Thu, 31 Oct 2013 10:18:31 +0900 Cedric BAIL cedric.b...@free.fr said:

 On Thu, Oct 31, 2013 at 9:24 AM, Gustavo Sverzut Barbieri
 barbi...@gmail.com wrote:
  On Wed, Oct 30, 2013 at 6:39 PM, Rafael Antognolli antogno...@gmail.com
  wrote:
  On Tue, Oct 29, 2013 at 8:17 PM, Gustavo Sverzut Barbieri
  barbi...@gmail.com wrote:
  On Tue, Oct 29, 2013 at 7:26 PM, Rafael Antognolli antogno...@gmail.com
  wrote:
  Hey everyone,
 
  Our current API for setting a window as fullscreen does not support
  specifying which output/display/monitor should be used as fullscreen.
  However, wayland does support it.
 
  Would it make sense to have such parameter in the fullscreen_set API?
  Or should it be a wayland-only API?
 
  I'd say a new function fullscreen_at_display_set(Display_ID *did) /*
  NULL = unset */
 
  the current version remains and sets on current display. Alternatively
  we could just move the window to another display before making that
  fullscreen, no idea if this is okay.
 
  Yeah, current version sets on current display (the one where the
  non-fullscreen window is already displayed), unless it's the first
  time that the window is going to be displayed. Otherwise it will use
  the first output. But that's up to the compositor to choose so far,
  unless we explicitly specify which output to use.
 
  For the latter case, how would we do that? Maybe exposing an API that
  allows to set the preferred output, and then when fullscreen_set is
  called, it just uses that one?
 
  I'd say we need to make this in one go, unless we want some kind of
  general assignment to one display (not just for FS mode).
 
  OK...
 
 
  There's also a need to specify how the output should be referred to.
  Using an (unsigned) int, where 0 is the first output, 1 is the second,
  etc? Or maybe allowing to specify something like always the biggest
  one in area, or the widest one, or whatever... any thoughts?
 
  We'd need a way to enumerate the displays (or whatever we call them,
  like zone, etc), they should return their properties such as size,
  position (?), capabilities (3d/stereo? color? what do we have here?)
  and some string to make it easy to debug.
 
  we have the handle to it, so it can be windowsystem agnostic
  (Display_ID *, which can be implemented differently for windows, x11,
  wayland...)
 
  So you are proposing that we change a good portion of our API to be
  aware of multiple displays?
 
 
  That reminds me that we still have another problem. APIs such
  ecore_wl_screen_size_get() return only the screen size of the first
  monitor, not both.
 
  same as above, this should be based on current window (if there is a
  window handle) or the first one (if there is not, alterntively we can
  state it will refer to screen the mouse is over, but I guess this is
  incorrect and makes everything less predictable).
 
  Well, that API has no argument, so it just assumes the current output.
  For a given window, one could use ecore_evas_screen_geometry_get, and
  that indeed will be attached to a given display, but only after the
  Ecore_Evas has been shown first (at least on Wayland, if I'm not
  wrong).
 
  What about a common API to select which output we are talking about,
  that must be called before any call that would refer to a specific
  output? The problem with this is that it would make code very
  wayland-specific :-/
 
  how so? just use the opaque handlers and abstract stuff in there.
 
  OK, so you suggestion is something like:
 
  Display {
ID;
size;
position; // might be some info from xrandr, like right-of another
  display, etc, if that is even possible
capabilities (3d/stereo? color?)
dpi (I'm not even sure if we can query different DPIs for different
  monitors, but I've seen discussion about future work on this on
  Wayland);
  }
 
  And then change/add some APIs to refer to a specific display when
  setting things?
 
  change is impossible at this time (abi/api stability) and cumbersome
  for most apps that don't care.

 Indeed.

  then we must add new apis for those apps that care (ie: a presentation
  tool might offer a way to choose in which display to have a fullscreen
  view of slides while the notes/timer may be fullscreen on another).

 Why not just a ecore_evas_screen_set/get/list() set of functions that
 will affect the screen attached to a window for all coming request on
 the pointed Ecore_Evas window ? That will limit the number of function
 we add and will not make the API to ugly in my point of view.

 i think this way is nicer. add a new api that sets a requested/hinted/desired
 screen on a window and THEN if u fullscreen it this requested screen is
 passed along with the fullscreen request to wayland. in x it can be another
 atom/hint on the window and the wm can decide what to do. a screen hint in wl
 and/or x11 could also be used AT the time a window is mapped (shown

Re: [E-devel] Monitor/output parameter for fullscreen

2013-10-31 Thread Rafael Antognolli
On Thu, Oct 31, 2013 at 12:50 PM, Carsten Haitzler ras...@rasterman.com wrote:
 On Thu, 31 Oct 2013 22:53:37 +0900 Cedric BAIL cedric.b...@free.fr said:

 On Thu, Oct 31, 2013 at 10:03 PM, Rafael Antognolli
 antogno...@gmail.com wrote:
  On Thu, Oct 31, 2013 at 12:40 AM, Carsten Haitzler ras...@rasterman.com
  wrote:
  On Thu, 31 Oct 2013 10:18:31 +0900 Cedric BAIL cedric.b...@free.fr said:
  On Thu, Oct 31, 2013 at 9:24 AM, Gustavo Sverzut Barbieri
  barbi...@gmail.com wrote:
   On Wed, Oct 30, 2013 at 6:39 PM, Rafael Antognolli
   antogno...@gmail.com wrote:
   On Tue, Oct 29, 2013 at 8:17 PM, Gustavo Sverzut Barbieri
   barbi...@gmail.com wrote:
   On Tue, Oct 29, 2013 at 7:26 PM, Rafael Antognolli
   antogno...@gmail.com wrote:
   Hey everyone,
  
   Our current API for setting a window as fullscreen does not support
   specifying which output/display/monitor should be used as 
   fullscreen.
   However, wayland does support it.
  
   Would it make sense to have such parameter in the fullscreen_set 
   API?
   Or should it be a wayland-only API?
  
   I'd say a new function fullscreen_at_display_set(Display_ID *did) /*
   NULL = unset */
  
   the current version remains and sets on current display. 
   Alternatively
   we could just move the window to another display before making that
   fullscreen, no idea if this is okay.
  
   Yeah, current version sets on current display (the one where the
   non-fullscreen window is already displayed), unless it's the first
   time that the window is going to be displayed. Otherwise it will use
   the first output. But that's up to the compositor to choose so far,
   unless we explicitly specify which output to use.
  
   For the latter case, how would we do that? Maybe exposing an API 
   that
   allows to set the preferred output, and then when fullscreen_set 
   is
   called, it just uses that one?
  
   I'd say we need to make this in one go, unless we want some kind of
   general assignment to one display (not just for FS mode).
  
   OK...
  
  
   There's also a need to specify how the output should be referred to.
   Using an (unsigned) int, where 0 is the first output, 1 is the
   second, etc? Or maybe allowing to specify something like always the
   biggest one in area, or the widest one, or whatever... any 
   thoughts?
  
   We'd need a way to enumerate the displays (or whatever we call them,
   like zone, etc), they should return their properties such as size,
   position (?), capabilities (3d/stereo? color? what do we have here?)
   and some string to make it easy to debug.
  
   we have the handle to it, so it can be windowsystem agnostic
   (Display_ID *, which can be implemented differently for windows, x11,
   wayland...)
  
   So you are proposing that we change a good portion of our API to be
   aware of multiple displays?
  
  
   That reminds me that we still have another problem. APIs such
   ecore_wl_screen_size_get() return only the screen size of the first
   monitor, not both.
  
   same as above, this should be based on current window (if there is a
   window handle) or the first one (if there is not, alterntively we can
   state it will refer to screen the mouse is over, but I guess this is
   incorrect and makes everything less predictable).
  
   Well, that API has no argument, so it just assumes the current output.
   For a given window, one could use ecore_evas_screen_geometry_get, and
   that indeed will be attached to a given display, but only after the
   Ecore_Evas has been shown first (at least on Wayland, if I'm not
   wrong).
  
   What about a common API to select which output we are talking about,
   that must be called before any call that would refer to a specific
   output? The problem with this is that it would make code very
   wayland-specific :-/
  
   how so? just use the opaque handlers and abstract stuff in there.
  
   OK, so you suggestion is something like:
  
   Display {
 ID;
 size;
 position; // might be some info from xrandr, like right-of another
   display, etc, if that is even possible
 capabilities (3d/stereo? color?)
 dpi (I'm not even sure if we can query different DPIs for different
   monitors, but I've seen discussion about future work on this on
   Wayland);
   }
  
   And then change/add some APIs to refer to a specific display when
   setting things?
  
   change is impossible at this time (abi/api stability) and cumbersome
   for most apps that don't care.
 
  Indeed.
 
   then we must add new apis for those apps that care (ie: a presentation
   tool might offer a way to choose in which display to have a fullscreen
   view of slides while the notes/timer may be fullscreen on another).
 
  Why not just a ecore_evas_screen_set/get/list() set of functions that
  will affect the screen attached to a window for all coming request on
  the pointed Ecore_Evas window ? That will limit the number of function
  we add and will not make the API to ugly in my point of view.
 
  i

Re: [E-devel] [EGIT] [core/efl] master 01/01: Ok, This actually fixes maximized state properly now :) Basically, we still need to account for frame height, but not frame width when we are maximizing.

2013-10-31 Thread Rafael Antognolli
On Thu, Oct 31, 2013 at 3:22 PM, Chris Michael cp.mich...@samsung.com wrote:
 devilhorns pushed a commit to branch master.

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

 commit 20f6676eb6ed0020c07272c9f59a20faf6ff651c
 Author: Chris Michael cp.mich...@samsung.com
 Date:   Thu Oct 31 17:21:33 2013 +

 Ok, This actually fixes maximized state properly now :) Basically, we
 still need to account for frame height, but not frame width when we
 are maximizing.

Wait, this is not true! It only makes sense with the current
elementary theme, but it shouldn't work with a theme where we do have
borders on left and right, not only top and bottom.

BTW, what are you trying to fix here? Yesterday I pushed commits to
both efl and elementary that are fixing maximize/unmaximize already.
Is there still any problem that I didn't notice? Without your commits
to efl and elementary, everything was working fine already for me...

 Signed-off-by: Chris Michael cp.mich...@samsung.com
 ---
  src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c | 7 
 ---
  1 file changed, 4 insertions(+), 3 deletions(-)

 diff --git 
 a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c 
 b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
 index 7d3d444..4b99563 100644
 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
 +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
 @@ -224,19 +224,20 @@ _ecore_evas_wl_common_cb_window_configure(void *data 
 EINA_UNUSED, int type EINA_

 nw = ev-w;
 nh = ev-h;
 -   if ((!ee-prop.maximized)  (!ee-prop.fullscreen))
 +
 +   if (!ee-prop.fullscreen)
   {
  int fw = 0, fh = 0;

  evas_output_framespace_get(ee-evas, NULL, NULL, fw, fh);
  if ((ee-rotation == 90) || (ee-rotation == 270))
{
 - nw = ev-w - fh;
 + if (!ee-prop.maximized) nw = ev-w - fh;
   nh = ev-h - fw;
}
  else
{
 - nw = ev-w - fw;
 + if (!ee-prop.maximized) nw = ev-w - fw;
   nh = ev-h - fh;
}
   }

 --





-- 
Rafael Antognolli

--
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/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: Fix elm client applications to support maximize properly (ie: removing border shadow and resizing properly).

2013-10-31 Thread Rafael Antognolli
On Thu, Oct 31, 2013 at 3:03 PM, Chris Michael cp.mich...@samsung.com wrote:
 devilhorns pushed a commit to branch master.

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

 commit 28763963bb9e26ea25ca182acc294c0a02f03ba2
 Author: Chris Michael cp.mich...@samsung.com
 Date:   Thu Oct 31 17:00:23 2013 +

 Fix elm client applications to support maximize properly (ie: removing
 border shadow and resizing properly).

Again, I fixed this on commit
ea3b9ea0f932f9d4446bb3d3a902908a12bcd3de, so these signals are already
being sent. There's no need for these extra callbacks, as I send the
signals on the only places where maximize is triggered.

 NB: Elm Theme needs fullscreen support old man !! :P

 Signed-off-by: Chris Michael cp.mich...@samsung.com
 ---
  src/lib/elm_win.c | 30 ++
  1 file changed, 30 insertions(+)

 diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c
 index 95f4812..12141c1 100644
 --- a/src/lib/elm_win.c
 +++ b/src/lib/elm_win.c
 @@ -2438,6 +2438,24 @@ _elm_win_frame_cb_close(void *data,
 evas_object_unref(win);
  }

 +static void
 +_elm_win_frame_obj_maximized(void *data, Evas_Object *obj, void *event)
 +{
 +   Elm_Win_Smart_Data *sd;
 +
 +   sd = data;
 +   edje_object_signal_emit(sd-frame_obj, elm,state,maximized, elm);
 +}
 +
 +static void
 +_elm_win_frame_obj_unmaximized(void *data, Evas_Object *obj, void *event)
 +{
 +   Elm_Win_Smart_Data *sd;
 +
 +   sd = data;
 +   edje_object_signal_emit(sd-frame_obj, elm,state,unmaximized, elm);
 +}
 +
  static void
  _elm_win_frame_add(Elm_Win_Smart_Data *sd,
 const char *style)
 @@ -2477,6 +2495,13 @@ _elm_win_frame_add(Elm_Win_Smart_Data *sd,
 evas_object_event_callback_add
   (sd-frame_obj, EVAS_CALLBACK_RESIZE, _elm_win_frame_obj_resize, sd);

 +   /* FIXME: Elm Theme needs support for fullscreen state
 +* (elm,state,fullscreen/unfullscreen) */
 +   evas_object_smart_callback_add(sd-obj, SIG_MAXIMIZED,
 +  _elm_win_frame_obj_maximized, sd);
 +   evas_object_smart_callback_add(sd-obj, SIG_UNMAXIMIZED,
 +  _elm_win_frame_obj_unmaximized, sd);
 +
 /* NB: Do NOT remove these calls !! Needed to calculate proper
  * framespace on inital show of the window */
 edje_object_size_min_calc(sd-frame_obj, mw, mh);
 @@ -2536,6 +2561,11 @@ _elm_win_frame_del(Elm_Win_Smart_Data *sd)
  evas_object_event_callback_del_full
(sd-frame_obj, EVAS_CALLBACK_RESIZE, _elm_win_frame_obj_resize, 
 sd);

 +evas_object_smart_callback_del(sd-obj, SIG_MAXIMIZED,
 +   _elm_win_frame_obj_maximized);
 +evas_object_smart_callback_del(sd-obj, SIG_UNMAXIMIZED,
 +   _elm_win_frame_obj_unmaximized);
 +
  edje_object_signal_callback_del
(sd-frame_obj, elm,action,move,start, elm,
_elm_win_frame_cb_move_start);

 --





-- 
Rafael Antognolli

--
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 03/04: ecore/wayland: Do not use win-id directly.

2013-10-31 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit dd18206d860fa9cd1cea4ce01657c21678318bca
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Thu Oct 31 20:02:40 2013 -0200

ecore/wayland: Do not use win-id directly.

Use a getter for it instead, so we don't need to expose the
Ecore_Wl_Window struct just because of it.
---
 src/lib/ecore_wayland/Ecore_Wayland.h |  2 ++
 src/lib/ecore_wayland/ecore_wl_window.c   | 11 +++
 .../ecore_evas/engines/wayland/ecore_evas_wayland_egl.c   |  2 +-
 .../ecore_evas/engines/wayland/ecore_evas_wayland_shm.c   |  2 +-
 src/modules/ecore_imf/wayland/wayland_imcontext.c |  4 ++--
 5 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h 
b/src/lib/ecore_wayland/Ecore_Wayland.h
index d190e0f..899f80e 100644
--- a/src/lib/ecore_wayland/Ecore_Wayland.h
+++ b/src/lib/ecore_wayland/Ecore_Wayland.h
@@ -626,6 +626,8 @@ EAPI void 
ecore_wl_window_cursor_from_name_set(Ecore_Wl_Window *win, const char
 EAPI void ecore_wl_window_cursor_default_restore(Ecore_Wl_Window *win);
 EAPI void ecore_wl_window_parent_set(Ecore_Wl_Window *win, Ecore_Wl_Window 
*parent);
 
+EAPI int ecore_wl_window_id_get(Ecore_Wl_Window *win);
+
 /**
  * Returns a wl_surface with no association to any wl_shell_surface.
  *
diff --git a/src/lib/ecore_wayland/ecore_wl_window.c 
b/src/lib/ecore_wayland/ecore_wl_window.c
index 0de39d9..8307f65 100644
--- a/src/lib/ecore_wayland/ecore_wl_window.c
+++ b/src/lib/ecore_wayland/ecore_wl_window.c
@@ -687,6 +687,17 @@ ecore_wl_window_rotation_get(Ecore_Wl_Window *win)
return win-rotation;
 }
 
+/* @since 1.8 */
+EAPI int
+ecore_wl_window_id_get(Ecore_Wl_Window *win)
+{
+   LOGFN(__FILE__, __LINE__, __FUNCTION__);
+
+   if (!win) return 0;
+   return win-id;
+}
+
+
 /* local functions */
 static void 
 _ecore_wl_window_cb_ping(void *data EINA_UNUSED, struct wl_shell_surface 
*shell_surface, unsigned int serial)
diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
index 369d7ca..6fd5627 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
@@ -182,7 +182,7 @@ ecore_evas_wayland_egl_new_internal(const char *disp_name, 
unsigned int parent,
wdata-win = 
  ecore_wl_window_new(p, x, y, w + fw, h + fh, 
  ECORE_WL_WINDOW_BUFFER_TYPE_EGL_WINDOW);
-   ee-prop.window = wdata-win-id;
+   ee-prop.window = ecore_wl_window_id_get(wdata-win);
 
ee-evas = evas_new();
evas_data_attach_set(ee-evas, ee);
diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c 
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
index 6cf845e..9e8fc4d 100644
--- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
+++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
@@ -179,7 +179,7 @@ ecore_evas_wayland_shm_new_internal(const char *disp_name, 
unsigned int parent,
wdata-win = 
  ecore_wl_window_new(p, x, y, w + fw, h + fh, 
  ECORE_WL_WINDOW_BUFFER_TYPE_SHM);
-   ee-prop.window = wdata-win-id;
+   ee-prop.window = ecore_wl_window_id_get(wdata-win);
 
ee-evas = evas_new();
evas_data_attach_set(ee-evas, ee);
diff --git a/src/modules/ecore_imf/wayland/wayland_imcontext.c 
b/src/modules/ecore_imf/wayland/wayland_imcontext.c
index 00a2dde..84d0a50 100644
--- a/src/modules/ecore_imf/wayland/wayland_imcontext.c
+++ b/src/modules/ecore_imf/wayland/wayland_imcontext.c
@@ -474,8 +474,8 @@ text_input_keysym(void *data,
strcpy((char *)e-key, key);
strcpy((char *)e-string, string);
 
-   e-window = imcontext-window-id;
-   e-event_window = imcontext-window-id;
+   e-window = ecore_wl_window_id_get(imcontext-window);
+   e-event_window = ecore_wl_window_id_get(imcontext-window);
e-timestamp = time;
 
e-modifiers = 0;

-- 




[EGIT] [core/efl] master 04/04: ecore/wayland: Do not store edges in Ecore_Wl_Window.

2013-10-31 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit 1deb107d56acd3e89a00d451b63920c0450e4668
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Thu Oct 31 20:15:36 2013 -0200

ecore/wayland: Do not store edges in Ecore_Wl_Window.

This is a configure event info, so put it in the right place. Some
places adding edges info were also removed, which means that they were
redundant.

Tested with Meta + middle click resize, and with window border resize,
on all the edges. Apparently, nothing breaks.
---
 src/lib/ecore_wayland/Ecore_Wayland.h  |  3 ++-
 src/lib/ecore_wayland/ecore_wl_window.c| 27 +-
 .../engines/wayland/ecore_evas_wayland_common.c|  2 +-
 .../engines/wayland/ecore_evas_wayland_egl.c   |  3 ---
 .../engines/wayland/ecore_evas_wayland_shm.c   |  3 ---
 5 files changed, 9 insertions(+), 29 deletions(-)

diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h 
b/src/lib/ecore_wayland/Ecore_Wayland.h
index 899f80e..f9b70c7 100644
--- a/src/lib/ecore_wayland/Ecore_Wayland.h
+++ b/src/lib/ecore_wayland/Ecore_Wayland.h
@@ -125,7 +125,7 @@ struct _Ecore_Wl_Window
  } pointer;
 
int id, surface_id;
-   int edges, rotation;
+   int rotation;
 
Eina_Rectangle allocation;
 
@@ -213,6 +213,7 @@ struct _Ecore_Wl_Event_Window_Configure
unsigned int win;
unsigned int event_win;
int x, y, w, h;
+   int edges;
 };
 
 struct _Ecore_Wl_Event_Dnd_Enter
diff --git a/src/lib/ecore_wayland/ecore_wl_window.c 
b/src/lib/ecore_wayland/ecore_wl_window.c
index 8307f65..661e825 100644
--- a/src/lib/ecore_wayland/ecore_wl_window.c
+++ b/src/lib/ecore_wayland/ecore_wl_window.c
@@ -10,7 +10,7 @@ static void _ecore_wl_window_cb_configure(void *data, struct 
wl_shell_surface *s
 static void _ecore_wl_window_cb_popup_done(void *data, struct wl_shell_surface 
*shell_surface EINA_UNUSED);
 static void _ecore_wl_window_cb_surface_enter(void *data, struct wl_surface 
*surface, struct wl_output *output EINA_UNUSED);
 static void _ecore_wl_window_cb_surface_leave(void *data, struct wl_surface 
*surface, struct wl_output *output EINA_UNUSED);
-static void _ecore_wl_window_configure_send(Ecore_Wl_Window *win, int w, int 
h);
+static void _ecore_wl_window_configure_send(Ecore_Wl_Window *win, int w, int 
h, int edges);
 static char *_ecore_wl_window_id_str_get(unsigned int win_id);
 
 /* local variables */
@@ -219,17 +219,6 @@ ecore_wl_window_buffer_attach(Ecore_Wl_Window *win, struct 
wl_buffer *buffer, in
   case ECORE_WL_WINDOW_BUFFER_TYPE_SHM:
 if (win-surface)
   {
- if (win-edges  4) //  resizing from the left
-   x = win-server.w - win-allocation.w;
- else
-   x = 0;
-
- if (win-edges  1) // resizing from the top
-   y = win-server.h - win-allocation.h;
- else
-   y = 0;
-
- win-edges = 0;
  win-has_buffer = (buffer != NULL);
 
  /* if (buffer) */
@@ -357,9 +346,8 @@ ecore_wl_window_maximized_set(Ecore_Wl_Window *win, 
Eina_Bool maximized)
 if (win-shell_surface) 
   wl_shell_surface_set_toplevel(win-shell_surface);
 win-type = ECORE_WL_WINDOW_TYPE_TOPLEVEL;
-_ecore_wl_window_configure_send(win, win-saved.w, win-saved.h);
+_ecore_wl_window_configure_send(win, win-saved.w, win-saved.h, 0);
  }
-   win-edges = 0;
 }
 
 EAPI Eina_Bool
@@ -397,9 +385,8 @@ ecore_wl_window_fullscreen_set(Ecore_Wl_Window *win, 
Eina_Bool fullscreen)
 if (win-shell_surface)
   wl_shell_surface_set_toplevel(win-shell_surface);
 win-type = ECORE_WL_WINDOW_TYPE_TOPLEVEL;
-_ecore_wl_window_configure_send(win, win-saved.w, win-saved.h);
+_ecore_wl_window_configure_send(win, win-saved.w, win-saved.h, 0);
  }
-   win-edges = 0;
 }
 
 EAPI Eina_Bool
@@ -719,10 +706,7 @@ _ecore_wl_window_cb_configure(void *data, struct 
wl_shell_surface *shell_surface
 
if ((win-allocation.w != w) || (win-allocation.h != h))
  {
-if (win-type == ECORE_WL_WINDOW_TYPE_TOPLEVEL)
-  win-edges = edges;
-
-_ecore_wl_window_configure_send(win, w, h);
+_ecore_wl_window_configure_send(win, w, h, edges);
  }
 }
 
@@ -761,7 +745,7 @@ _ecore_wl_window_cb_surface_leave(void *data, struct 
wl_surface *surface, struct
 }
 
 static void 
-_ecore_wl_window_configure_send(Ecore_Wl_Window *win, int w, int h)
+_ecore_wl_window_configure_send(Ecore_Wl_Window *win, int w, int h, int edges)
 {
Ecore_Wl_Event_Window_Configure *ev;
 
@@ -774,6 +758,7 @@ _ecore_wl_window_configure_send(Ecore_Wl_Window *win, int 
w, int h)
ev-y = win-allocation.y;
ev-w = w;
ev-h = h;
+   ev-edges = edges;
ecore_event_add(ECORE_WL_EVENT_WINDOW_CONFIGURE, ev, NULL, NULL);
 }
 
diff --git a/src/modules/ecore_evas/engines

[EGIT] [core/efl] master 02/04: ecore/wayland: Make Ecore_Wl_Input private.

2013-10-31 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit e56428f4ad7b015c73b1959cf1d6aac154ca4ac0
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Thu Oct 31 19:09:30 2013 -0200

ecore/wayland: Make Ecore_Wl_Input private.

It's mostly only used inside ecore_wayland library anyway.

The only bit needed outside of the library is the seat pointer, but a
new function was added to retrieve such pointer from Ecore_Wl_Input.
---
 src/lib/ecore_wayland/Ecore_Wayland.h | 53 +--
 src/lib/ecore_wayland/ecore_wl_input.c| 13 ++
 src/lib/ecore_wayland/ecore_wl_private.h  | 52 ++
 src/modules/ecore_imf/wayland/wayland_imcontext.c | 12 +++--
 4 files changed, 74 insertions(+), 56 deletions(-)

diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h 
b/src/lib/ecore_wayland/Ecore_Wayland.h
index d7b6c69..d190e0f 100644
--- a/src/lib/ecore_wayland/Ecore_Wayland.h
+++ b/src/lib/ecore_wayland/Ecore_Wayland.h
@@ -109,58 +109,6 @@ struct _Ecore_Wl_Output
void *data;
 };
 
-struct _Ecore_Wl_Input
-{
-   Ecore_Wl_Display *display;
-   struct wl_seat *seat;
-   struct wl_pointer *pointer;
-   struct wl_keyboard *keyboard;
-   struct wl_touch *touch;
-
-   const char *cursor_name;
-   struct wl_cursor *cursor;
-   struct wl_surface *cursor_surface;
-   struct wl_callback *cursor_frame_cb;
-   Ecore_Timer *cursor_timer;
-   unsigned int cursor_current_index;
-
-   struct wl_data_device *data_device;
-   struct wl_data_source *data_source;
-   struct wl_array data_types;
-
-   Ecore_Wl_Window *pointer_focus;
-   Ecore_Wl_Window *keyboard_focus;
-
-   unsigned int button;
-   unsigned int timestamp;
-   unsigned int modifiers;
-   unsigned int pointer_enter_serial;
-   int sx, sy;
-
-   struct wl_list link;
-
-   Ecore_Wl_Window *grab;
-   unsigned int grab_button;
-
-   Ecore_Wl_Dnd_Source *drag_source;
-   Ecore_Wl_Dnd_Source *selection_source;
-
-   struct
- {
-struct xkb_keymap *keymap;
-struct xkb_state *state;
-xkb_mod_mask_t control_mask;
-xkb_mod_mask_t alt_mask;
-xkb_mod_mask_t shift_mask;
- } xkb;
-
-   struct 
- {
-Ecore_Timer *tmr;
-unsigned int sym, key, time;
- } repeat;
-};
-
 struct _Ecore_Wl_Window
 {
Ecore_Wl_Display *display;
@@ -524,6 +472,7 @@ EAPI void ecore_wl_input_ungrab(Ecore_Wl_Input *input);
 EAPI void ecore_wl_input_pointer_set(Ecore_Wl_Input *input, struct wl_surface 
*surface, int hot_x, int hot_y);
 EAPI void ecore_wl_input_cursor_from_name_set(Ecore_Wl_Input *input, const 
char *cursor_name);
 EAPI void ecore_wl_input_cursor_default_restore(Ecore_Wl_Input *input);
+EAPI struct wl_seat *ecore_wl_input_seat_get(Ecore_Wl_Input *input);
 
 EAPI struct wl_list *ecore_wl_outputs_get(void);
 
diff --git a/src/lib/ecore_wayland/ecore_wl_input.c 
b/src/lib/ecore_wayland/ecore_wl_input.c
index 2cdc1ec..bd1e010 100644
--- a/src/lib/ecore_wayland/ecore_wl_input.c
+++ b/src/lib/ecore_wayland/ecore_wl_input.c
@@ -287,6 +287,19 @@ ecore_wl_input_get(void)
return _ecore_wl_disp-input;
 }
 
+/**
+ * @since 1.8
+ */
+EAPI struct wl_seat *
+ecore_wl_input_seat_get(Ecore_Wl_Input *input)
+{
+   LOGFN(__FILE__, __LINE__, __FUNCTION__);
+
+   if (!input) return NULL;
+
+   return input-seat;
+}
+
 /* local functions */
 void 
 _ecore_wl_input_add(Ecore_Wl_Display *ewd, unsigned int id)
diff --git a/src/lib/ecore_wayland/ecore_wl_private.h 
b/src/lib/ecore_wayland/ecore_wl_private.h
index fdbd3c9..06be1a5 100644
--- a/src/lib/ecore_wayland/ecore_wl_private.h
+++ b/src/lib/ecore_wayland/ecore_wl_private.h
@@ -92,6 +92,58 @@ struct _Ecore_Wl_Display
void *data;
 };
 
+struct _Ecore_Wl_Input
+{
+   Ecore_Wl_Display *display;
+   struct wl_seat *seat;
+   struct wl_pointer *pointer;
+   struct wl_keyboard *keyboard;
+   struct wl_touch *touch;
+
+   const char *cursor_name;
+   struct wl_cursor *cursor;
+   struct wl_surface *cursor_surface;
+   struct wl_callback *cursor_frame_cb;
+   Ecore_Timer *cursor_timer;
+   unsigned int cursor_current_index;
+
+   struct wl_data_device *data_device;
+   struct wl_data_source *data_source;
+   struct wl_array data_types;
+
+   Ecore_Wl_Window *pointer_focus;
+   Ecore_Wl_Window *keyboard_focus;
+
+   unsigned int button;
+   unsigned int timestamp;
+   unsigned int modifiers;
+   unsigned int pointer_enter_serial;
+   int sx, sy;
+
+   struct wl_list link;
+
+   Ecore_Wl_Window *grab;
+   unsigned int grab_button;
+
+   Ecore_Wl_Dnd_Source *drag_source;
+   Ecore_Wl_Dnd_Source *selection_source;
+
+   struct
+ {
+struct xkb_keymap *keymap;
+struct xkb_state *state;
+xkb_mod_mask_t control_mask;
+xkb_mod_mask_t alt_mask;
+xkb_mod_mask_t shift_mask;
+ } xkb;
+
+   struct
+ {
+Ecore_Timer *tmr;
+unsigned int sym, key, time;
+ } repeat

[EGIT] [core/efl] master 01/04: ecore/wayland: Hide Ecore_Wl_Display.

2013-10-31 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit 35d2f195de262d846c5e3f6dc5634921afe46606
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Thu Oct 31 18:02:04 2013 -0200

ecore/wayland: Hide Ecore_Wl_Display.

This struct is only used inside ecore_wayland itself, so there's no real
reason to expose it. Apparently, hiding it doesn't break anything,
except for the ecore_imf wayland module, which was easily fixed.

If anyone notices a breakage, please let me know.
---
 src/lib/ecore_wayland/Ecore_Wayland.h | 44 ++-
 src/lib/ecore_wayland/ecore_wl_private.h  | 42 ++
 src/modules/ecore_imf/wayland/wayland_imcontext.c |  9 +++--
 3 files changed, 51 insertions(+), 44 deletions(-)

diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h 
b/src/lib/ecore_wayland/Ecore_Wayland.h
index 7828281..d7b6c69 100644
--- a/src/lib/ecore_wayland/Ecore_Wayland.h
+++ b/src/lib/ecore_wayland/Ecore_Wayland.h
@@ -31,7 +31,8 @@
 extern C {
 #endif
 
-typedef struct _Ecore_Wl_Display Ecore_Wl_Display;
+typedef struct _Ecore_Wl_Display Ecore_Wl_Display; /** FIXME: move to private 
*/
+
 typedef struct _Ecore_Wl_Output Ecore_Wl_Output;
 typedef struct _Ecore_Wl_Input Ecore_Wl_Input;
 typedef struct _Ecore_Wl_Global Ecore_Wl_Global; /** @since 1.7.6 */
@@ -95,47 +96,6 @@ struct _Ecore_Wl_Global
struct wl_list link;
 };
 
-struct _Ecore_Wl_Display
-{
-   struct 
- {
-struct wl_display *display;
-struct wl_registry *registry;
-struct wl_compositor *compositor;
-struct wl_subcompositor *subcompositor;
-struct wl_shell *shell;
-struct wl_shell *desktop_shell;
-struct wl_shm *shm;
-struct wl_data_device_manager *data_device_manager;
- } wl;
-
-   int fd;
-   unsigned int mask;
-   unsigned int serial;
-   int sync_ref_count;
-   Ecore_Fd_Handler *fd_hdl;
-   Ecore_Idle_Enterer *idle_enterer;
-
-   struct wl_list inputs;
-   struct wl_list outputs;
-   struct wl_list globals; /** @since 1.7.6 */
-
-   Eina_Bool init_done;
-
-   struct
- {
-struct xkb_context *context;
- } xkb;
-
-   struct wl_cursor_theme *cursor_theme;
-
-   Ecore_Wl_Output *output;
-   Ecore_Wl_Input *input;
-
-   void (*output_configure)(Ecore_Wl_Output *output, void *data);
-   void *data;
-};
-
 struct _Ecore_Wl_Output
 {
Ecore_Wl_Display *display;
diff --git a/src/lib/ecore_wayland/ecore_wl_private.h 
b/src/lib/ecore_wayland/ecore_wl_private.h
index 581774b..fdbd3c9 100644
--- a/src/lib/ecore_wayland/ecore_wl_private.h
+++ b/src/lib/ecore_wayland/ecore_wl_private.h
@@ -50,6 +50,48 @@ extern Ecore_Wl_Display *_ecore_wl_disp;
 # endif
 # define CRIT(...) EINA_LOG_DOM_CRIT(_ecore_wl_log_dom, __VA_ARGS__)
 
+
+struct _Ecore_Wl_Display
+{
+   struct
+ {
+struct wl_display *display;
+struct wl_registry *registry;
+struct wl_compositor *compositor;
+struct wl_subcompositor *subcompositor;
+struct wl_shell *shell;
+struct wl_shell *desktop_shell;
+struct wl_shm *shm;
+struct wl_data_device_manager *data_device_manager;
+ } wl;
+
+   int fd;
+   unsigned int mask;
+   unsigned int serial;
+   int sync_ref_count;
+   Ecore_Fd_Handler *fd_hdl;
+   Ecore_Idle_Enterer *idle_enterer;
+
+   struct wl_list inputs;
+   struct wl_list outputs;
+   struct wl_list globals; /** @since 1.7.6 */
+
+   Eina_Bool init_done;
+
+   struct
+ {
+struct xkb_context *context;
+ } xkb;
+
+   struct wl_cursor_theme *cursor_theme;
+
+   Ecore_Wl_Output *output;
+   Ecore_Wl_Input *input;
+
+   void (*output_configure)(Ecore_Wl_Output *output, void *data);
+   void *data;
+};
+
 struct _Ecore_Wl_Dnd
 {
Ecore_Wl_Display *ewd;
diff --git a/src/modules/ecore_imf/wayland/wayland_imcontext.c 
b/src/modules/ecore_imf/wayland/wayland_imcontext.c
index a3e88d3..07072e4 100644
--- a/src/modules/ecore_imf/wayland/wayland_imcontext.c
+++ b/src/modules/ecore_imf/wayland/wayland_imcontext.c
@@ -39,6 +39,7 @@ struct _WaylandIMContext
struct wl_text_input *text_input;
 
Ecore_Wl_Window *window;
+   Ecore_Wl_Input  *input;
Evas*canvas;
 
char *preedit_text;
@@ -627,6 +628,8 @@ wayland_im_context_focus_in(Ecore_IMF_Context *ctx)
if (!input || !input-seat)
  return;
 
+   imcontext-input = input;
+
if (imcontext-text_input)
  {
 wl_text_input_show_input_panel(imcontext-text_input);
@@ -643,11 +646,13 @@ wayland_im_context_focus_out(Ecore_IMF_Context *ctx)
 
EINA_LOG_DOM_INFO(_ecore_imf_wayland_log_dom, focus-out);
 
-   if (!imcontext-window) return;
+   if (!imcontext-input) return;
 
if (imcontext-text_input)
  wl_text_input_deactivate(imcontext-text_input,
-  imcontext-window-display-input-seat);
+  imcontext-input-seat

Re: [E-devel] Monitor/output parameter for fullscreen

2013-10-30 Thread Rafael Antognolli
On Tue, Oct 29, 2013 at 8:17 PM, Gustavo Sverzut Barbieri
barbi...@gmail.com wrote:
 On Tue, Oct 29, 2013 at 7:26 PM, Rafael Antognolli antogno...@gmail.com 
 wrote:
 Hey everyone,

 Our current API for setting a window as fullscreen does not support
 specifying which output/display/monitor should be used as fullscreen.
 However, wayland does support it.

 Would it make sense to have such parameter in the fullscreen_set API?
 Or should it be a wayland-only API?

 I'd say a new function fullscreen_at_display_set(Display_ID *did) /*
 NULL = unset */

 the current version remains and sets on current display. Alternatively
 we could just move the window to another display before making that
 fullscreen, no idea if this is okay.

Yeah, current version sets on current display (the one where the
non-fullscreen window is already displayed), unless it's the first
time that the window is going to be displayed. Otherwise it will use
the first output. But that's up to the compositor to choose so far,
unless we explicitly specify which output to use.

 For the latter case, how would we do that? Maybe exposing an API that
 allows to set the preferred output, and then when fullscreen_set is
 called, it just uses that one?

 I'd say we need to make this in one go, unless we want some kind of
 general assignment to one display (not just for FS mode).

OK...


 There's also a need to specify how the output should be referred to.
 Using an (unsigned) int, where 0 is the first output, 1 is the second,
 etc? Or maybe allowing to specify something like always the biggest
 one in area, or the widest one, or whatever... any thoughts?

 We'd need a way to enumerate the displays (or whatever we call them,
 like zone, etc), they should return their properties such as size,
 position (?), capabilities (3d/stereo? color? what do we have here?)
 and some string to make it easy to debug.

 we have the handle to it, so it can be windowsystem agnostic
 (Display_ID *, which can be implemented differently for windows, x11,
 wayland...)

So you are proposing that we change a good portion of our API to be
aware of multiple displays?


 That reminds me that we still have another problem. APIs such
 ecore_wl_screen_size_get() return only the screen size of the first
 monitor, not both.

 same as above, this should be based on current window (if there is a
 window handle) or the first one (if there is not, alterntively we can
 state it will refer to screen the mouse is over, but I guess this is
 incorrect and makes everything less predictable).

Well, that API has no argument, so it just assumes the current output.
For a given window, one could use ecore_evas_screen_geometry_get, and
that indeed will be attached to a given display, but only after the
Ecore_Evas has been shown first (at least on Wayland, if I'm not
wrong).

 What about a common API to select which output we are talking about,
 that must be called before any call that would refer to a specific
 output? The problem with this is that it would make code very
 wayland-specific :-/

 how so? just use the opaque handlers and abstract stuff in there.

OK, so you suggestion is something like:

Display {
  ID;
  size;
  position; // might be some info from xrandr, like right-of another
display, etc, if that is even possible
  capabilities (3d/stereo? color?)
  dpi (I'm not even sure if we can query different DPIs for different
monitors, but I've seen discussion about future work on this on
Wayland);
}

And then change/add some APIs to refer to a specific display when
setting things?

 --
 Gustavo Sverzut Barbieri
 --
 Mobile: +55 (19) 9225-2202
 Contact: http://www.gustavobarbieri.com.br/contact

 --
 Android is increasing in popularity, but the open development platform that
 developers love is also attractive to malware creators. Download this white
 paper to learn more about secure code signing practices that can help keep
 Android apps secure.
 http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



-- 
Rafael Antognolli

--
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/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/02: elm/win: Put framespace set code in a common place.

2013-10-29 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit e1ebba54bd57819dd1c50347f0a2e5d562505d1a
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Tue Oct 29 08:42:41 2013 -0200

elm/win: Put framespace set code in a common place.

A little refactory that hopefully will prevent future mistakes when
changing this code.
---
 src/lib/elm_win.c | 45 +
 1 file changed, 17 insertions(+), 28 deletions(-)

diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c
index 5bfc452..fa41545 100644
--- a/src/lib/elm_win.c
+++ b/src/lib/elm_win.c
@@ -2199,25 +2199,18 @@ static struct _resize_info _border_corner[4] =
 #endif
 
 static void
-_elm_win_frame_obj_move(void *data,
-Evas *e __UNUSED__,
-Evas_Object *obj __UNUSED__,
-void *event_info __UNUSED__)
+_elm_win_frame_obj_update(Elm_Win_Smart_Data *sd)
 {
-   Elm_Win_Smart_Data *sd;
int fx, fy, fw, fh;
int ox, oy, ow, oh;
int sx, sy, sw, sh;
int x, y, w, h;
-
-   if (!(sd = data)) return;
-   if (!sd-client_obj) return;
-
evas_object_geometry_get(sd-frame_obj, fx, fy, fw, fh);
evas_object_geometry_get(sd-client_obj, ox, oy, ow, oh);
evas_object_geometry_get(sd-spacer_obj, sx, sy, sw, sh);
 
evas_output_framespace_get(sd-evas, x, y, w, h);
+
if ((x != (ox - fx)) || (y != (oy - fy)) ||
(w != (fw - ow)) || (h != (fh - oh)))
  {
@@ -2231,35 +2224,31 @@ _elm_win_frame_obj_move(void *data,
 }
 
 static void
+_elm_win_frame_obj_move(void *data,
+Evas *e __UNUSED__,
+Evas_Object *obj __UNUSED__,
+void *event_info __UNUSED__)
+{
+   Elm_Win_Smart_Data *sd;
+
+   if (!(sd = data)) return;
+   if (!sd-client_obj) return;
+
+   _elm_win_frame_obj_update(sd);
+}
+
+static void
 _elm_win_frame_obj_resize(void *data,
   Evas *e __UNUSED__,
   Evas_Object *obj __UNUSED__,
   void *event_info __UNUSED__)
 {
Elm_Win_Smart_Data *sd;
-   int fx, fy, fw, fh;
-   int ox, oy, ow, oh;
-   int sx, sy, sw, sh;
-   int x, y, w, h;
 
if (!(sd = data)) return;
if (!sd-client_obj) return;
 
-   evas_object_geometry_get(sd-frame_obj, fx, fy, fw, fh);
-   evas_object_geometry_get(sd-client_obj, ox, oy, ow, oh);
-   evas_object_geometry_get(sd-spacer_obj, sx, sy, sw, sh);
-
-   evas_output_framespace_get(sd-evas, x, y, w, h);
-   if ((x != (ox - fx)) || (y != (oy - fy)) ||
-   (w != (fw - ow)) || (h != (fh - oh)))
- {
-evas_output_framespace_set(sd-evas, (ox - fx), (oy - fy),
-   (fw - ow), (fh - oh));
- }
-
-#ifdef HAVE_ELEMENTARY_WAYLAND
-   ecore_wl_window_opaque_region_set(sd-wl.win, -fx, -(fy - sy), sw, sh);
-#endif
+   _elm_win_frame_obj_update(sd);
 }
 
 static void

-- 




[EGIT] [core/elementary] master 02/02: elm/win: Do not force maximized status.

2013-10-29 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit ea3b9ea0f932f9d4446bb3d3a902908a12bcd3de
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Tue Oct 29 08:39:40 2013 -0200

elm/win: Do not force maximized status.

When receiving a maximize event from the maximize button, do not force
sd-maximized. We must wait for a state change event, just like when a
window is maximized by the elm_win_maximized_set function. This will
ensure that a maximized smart event is sent.

Additionally, send a elm,state,maximized signal to the edje theme, so it
can update shadows and window decorations correctly.
---
 src/lib/elm_win.c | 29 +
 1 file changed, 25 insertions(+), 4 deletions(-)

diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c
index fa41545..19f9cbc 100644
--- a/src/lib/elm_win.c
+++ b/src/lib/elm_win.c
@@ -2368,17 +2368,38 @@ _elm_win_frame_cb_minimize(void *data,
 }
 
 static void
+_elm_win_frame_maximized_state_update(Elm_Win_Smart_Data *sd, Eina_Bool 
maximized)
+{
+   const char *emission;
+
+   if (maximized)
+ emission = elm,state,maximized;
+   else
+ emission = elm,state,unmaximized;
+
+   edje_object_signal_emit(sd-frame_obj, emission, elm);
+   edje_object_message_signal_process(sd-frame_obj);
+   evas_object_smart_calculate(sd-frame_obj);
+
+   _elm_win_frame_obj_update(sd);
+}
+
+static void
 _elm_win_frame_cb_maximize(void *data,
Evas_Object *obj __UNUSED__,
const char *sig __UNUSED__,
const char *source __UNUSED__)
 {
+   Eina_Bool value;
ELM_WIN_DATA_GET(data, sd);
 
if (!sd) return;
-   if (sd-maximized) sd-maximized = EINA_FALSE;
-   else sd-maximized = EINA_TRUE;
-   TRAP(sd, maximized_set, sd-maximized);
+   if (sd-maximized) value = EINA_FALSE;
+   else value = EINA_TRUE;
+
+   _elm_win_frame_maximized_state_update(sd, value);
+
+   TRAP(sd, maximized_set, value);
 }
 
 static void
@@ -3835,7 +3856,7 @@ _maximized_set(Eo *obj EINA_UNUSED, void *_pd, va_list 
*list)
Eina_Bool maximized = va_arg(*list, int);
Elm_Win_Smart_Data *sd = _pd;
 
-//   sd-maximized = maximized;
+   _elm_win_frame_maximized_state_update(sd, maximized);
// YYY: handle if sd-img_obj
TRAP(sd, maximized_set, maximized);
 #ifdef HAVE_ELEMENTARY_X

-- 




[E-devel] Monitor/output parameter for fullscreen

2013-10-29 Thread Rafael Antognolli
Hey everyone,

Our current API for setting a window as fullscreen does not support
specifying which output/display/monitor should be used as fullscreen.
However, wayland does support it.

Would it make sense to have such parameter in the fullscreen_set API?
Or should it be a wayland-only API?

For the latter case, how would we do that? Maybe exposing an API that
allows to set the preferred output, and then when fullscreen_set is
called, it just uses that one?

There's also a need to specify how the output should be referred to.
Using an (unsigned) int, where 0 is the first output, 1 is the second,
etc? Or maybe allowing to specify something like always the biggest
one in area, or the widest one, or whatever... any thoughts?

That reminds me that we still have another problem. APIs such
ecore_wl_screen_size_get() return only the screen size of the first
monitor, not both.

What about a common API to select which output we are talking about,
that must be called before any call that would refer to a specific
output? The problem with this is that it would make code very
wayland-specific :-/

I don't have many other ideas to fix this, other than having a generic
way to refer to an output, and add it all over the ecore_evas APIs.

-- 
Rafael Antognolli

--
Android is increasing in popularity, but the open development platform that
developers love is also attractive to malware creators. Download this white
paper to learn more about secure code signing practices that can help keep
Android apps secure.
http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/02: ecore/wayland: Add some getters.

2013-10-29 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit 06d6bf0dba9f0cc20075c84507bec2cbdb96aa6b
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Tue Oct 29 18:40:33 2013 -0200

ecore/wayland: Add some getters.

This centralizes the place where we have to wait for the init to have
finished before first using the compositor. It's also part of the later
step of hiding Ecore_Wl_* private structs.
---
 src/lib/ecore_wayland/Ecore_Wayland.h| 10 ++
 src/lib/ecore_wayland/ecore_wl.c | 22 ++
 src/lib/ecore_wayland/ecore_wl_private.h |  3 +++
 src/lib/ecore_wayland/ecore_wl_subsurf.c | 13 +++--
 src/lib/ecore_wayland/ecore_wl_window.c  |  6 +++---
 5 files changed, 45 insertions(+), 9 deletions(-)

diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h 
b/src/lib/ecore_wayland/Ecore_Wayland.h
index 9ba7636..7828281 100644
--- a/src/lib/ecore_wayland/Ecore_Wayland.h
+++ b/src/lib/ecore_wayland/Ecore_Wayland.h
@@ -496,6 +496,16 @@ EAPI struct wl_shm *ecore_wl_shm_get(void);
 EAPI struct wl_display *ecore_wl_display_get(void);
 
 /**
+ * Retrieves the Compositor interface.
+ *
+ * This interface is used by clients to request the creation of surfaces and
+ * regions.
+ *
+ * @return The current wayland compositor interface
+ * @since 1.8
+ */
+
+/**
  * Retrieves the size of the current screen.
  *
  * @param w where to return the width. May be NULL. Returns 0 on error.
diff --git a/src/lib/ecore_wayland/ecore_wl.c b/src/lib/ecore_wayland/ecore_wl.c
index 451aa79..f763675 100644
--- a/src/lib/ecore_wayland/ecore_wl.c
+++ b/src/lib/ecore_wayland/ecore_wl.c
@@ -272,6 +272,28 @@ ecore_wl_registry_get(void)
return _ecore_wl_disp-wl.registry;
 }
 
+struct wl_compositor *
+ecore_wl_compositor_get(void)
+{
+   if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display))
+ return NULL;
+
+   _ecore_wl_init_wait();
+
+   return _ecore_wl_disp-wl.compositor;
+}
+
+struct wl_subcompositor *
+ecore_wl_subcompositor_get(void)
+{
+   if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display))
+ return NULL;
+
+   _ecore_wl_init_wait();
+
+   return _ecore_wl_disp-wl.subcompositor;
+}
+
 EAPI void
 ecore_wl_screen_size_get(int *w, int *h)
 {
diff --git a/src/lib/ecore_wayland/ecore_wl_private.h 
b/src/lib/ecore_wayland/ecore_wl_private.h
index b83aae3..d615f0f 100644
--- a/src/lib/ecore_wayland/ecore_wl_private.h
+++ b/src/lib/ecore_wayland/ecore_wl_private.h
@@ -97,4 +97,7 @@ void _ecore_wl_events_shutdown(void);
 
 void _ecore_wl_subsurfs_del_all(Ecore_Wl_Window *win);
 
+struct wl_compositor *ecore_wl_compositor_get(void);
+struct wl_subcompositor *ecore_wl_subcompositor_get(void);
+
 #endif
diff --git a/src/lib/ecore_wayland/ecore_wl_subsurf.c 
b/src/lib/ecore_wayland/ecore_wl_subsurf.c
index 4e144fa..d59810d 100644
--- a/src/lib/ecore_wayland/ecore_wl_subsurf.c
+++ b/src/lib/ecore_wayland/ecore_wl_subsurf.c
@@ -23,19 +23,22 @@ ecore_wl_subsurf_create(Ecore_Wl_Window *win)
struct wl_subsurface *subsurface;
struct wl_surface *surface;
Ecore_Wl_Subsurf *ess;
+   struct wl_subcompositor *subcomp;
 
LOGFN(__FILE__, __LINE__, __FUNCTION__);
 
if (!win) return NULL;
if (!win-surface) return NULL;
-   if (!_ecore_wl_disp-wl.subcompositor) return NULL;
 
-   surface = wl_compositor_create_surface(_ecore_wl_disp-wl.compositor);
+   subcomp = ecore_wl_subcompositor_get();
+   if (!subcomp) return NULL;
+
+   surface = wl_compositor_create_surface(ecore_wl_compositor_get());
if (!surface)
  return NULL;
 
subsurface = wl_subcompositor_get_subsurface
-  (_ecore_wl_disp-wl.subcompositor, surface, win-surface);
+  (subcomp, surface, win-surface);
if (!subsurface)
  {
 wl_surface_destroy(surface);
@@ -171,7 +174,6 @@ ecore_wl_subsurf_sync_set(Ecore_Wl_Subsurf *ess, Eina_Bool 
val)
 EAPI void
 ecore_wl_subsurf_opaque_region_set(Ecore_Wl_Subsurf *ess, int x, int y, int w, 
int h)
 {
-   Ecore_Wl_Window *parent;
struct wl_region *region = NULL;
 
LOGFN(__FILE__, __LINE__, __FUNCTION__);
@@ -180,8 +182,7 @@ ecore_wl_subsurf_opaque_region_set(Ecore_Wl_Subsurf *ess, 
int x, int y, int w, i
 
if ((w  0)  (h  0))
  {
-parent = ess-parent_win;
-region = wl_compositor_create_region(parent-display-wl.compositor);
+region = wl_compositor_create_region(ecore_wl_compositor_get());
 wl_region_add(region, x, y, w, h);
 wl_surface_set_opaque_region(ess-surface, region);
 wl_region_destroy(region);
diff --git a/src/lib/ecore_wayland/ecore_wl_window.c 
b/src/lib/ecore_wayland/ecore_wl_window.c
index 4ec78c8..b924691 100644
--- a/src/lib/ecore_wayland/ecore_wl_window.c
+++ b/src/lib/ecore_wayland/ecore_wl_window.c
@@ -252,7 +252,7 @@ ecore_wl_window_surface_create(Ecore_Wl_Window *win)
 {
if (!win) return NULL;
if (win-surface) return win-surface;
-   win-surface

[EGIT] [core/efl] master 02/02: ecore/wayland: Oops, initialize member of malloc'ed struct.

2013-10-29 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit cb0f6171a88e3fe779ea27e22608adee3d62c4ee
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Tue Oct 29 19:14:59 2013 -0200

ecore/wayland: Oops, initialize member of malloc'ed struct.
---
 src/lib/ecore_wayland/ecore_wl.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/lib/ecore_wayland/ecore_wl.c b/src/lib/ecore_wayland/ecore_wl.c
index f763675..b3ec5df 100644
--- a/src/lib/ecore_wayland/ecore_wl.c
+++ b/src/lib/ecore_wayland/ecore_wl.c
@@ -204,6 +204,7 @@ ecore_wl_init(const char *name)
_ecore_wl_window_init();
_ecore_wl_events_init();
 
+   _ecore_wl_disp-init_done = EINA_FALSE;
callback = wl_display_sync(_ecore_wl_disp-wl.display);
wl_callback_add_listener(callback, _ecore_wl_init_sync_listener,
 _ecore_wl_disp);

-- 




[EGIT] [core/efl] master 01/01: ecore/wayland: Using underscore on private functions.

2013-10-29 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit 047e3bf113f1129ffdd829b6ae0fd370a5677963
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Tue Oct 29 19:32:00 2013 -0200

ecore/wayland: Using underscore on private functions.
---
 src/lib/ecore_wayland/ecore_wl.c | 4 ++--
 src/lib/ecore_wayland/ecore_wl_private.h | 4 ++--
 src/lib/ecore_wayland/ecore_wl_subsurf.c | 6 +++---
 src/lib/ecore_wayland/ecore_wl_window.c  | 6 +++---
 4 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/src/lib/ecore_wayland/ecore_wl.c b/src/lib/ecore_wayland/ecore_wl.c
index b3ec5df..bb0c5fe 100644
--- a/src/lib/ecore_wayland/ecore_wl.c
+++ b/src/lib/ecore_wayland/ecore_wl.c
@@ -274,7 +274,7 @@ ecore_wl_registry_get(void)
 }
 
 struct wl_compositor *
-ecore_wl_compositor_get(void)
+_ecore_wl_compositor_get(void)
 {
if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display))
  return NULL;
@@ -285,7 +285,7 @@ ecore_wl_compositor_get(void)
 }
 
 struct wl_subcompositor *
-ecore_wl_subcompositor_get(void)
+_ecore_wl_subcompositor_get(void)
 {
if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display))
  return NULL;
diff --git a/src/lib/ecore_wayland/ecore_wl_private.h 
b/src/lib/ecore_wayland/ecore_wl_private.h
index d615f0f..581774b 100644
--- a/src/lib/ecore_wayland/ecore_wl_private.h
+++ b/src/lib/ecore_wayland/ecore_wl_private.h
@@ -97,7 +97,7 @@ void _ecore_wl_events_shutdown(void);
 
 void _ecore_wl_subsurfs_del_all(Ecore_Wl_Window *win);
 
-struct wl_compositor *ecore_wl_compositor_get(void);
-struct wl_subcompositor *ecore_wl_subcompositor_get(void);
+struct wl_compositor *_ecore_wl_compositor_get(void);
+struct wl_subcompositor *_ecore_wl_subcompositor_get(void);
 
 #endif
diff --git a/src/lib/ecore_wayland/ecore_wl_subsurf.c 
b/src/lib/ecore_wayland/ecore_wl_subsurf.c
index d59810d..dd883ac 100644
--- a/src/lib/ecore_wayland/ecore_wl_subsurf.c
+++ b/src/lib/ecore_wayland/ecore_wl_subsurf.c
@@ -30,10 +30,10 @@ ecore_wl_subsurf_create(Ecore_Wl_Window *win)
if (!win) return NULL;
if (!win-surface) return NULL;
 
-   subcomp = ecore_wl_subcompositor_get();
+   subcomp = _ecore_wl_subcompositor_get();
if (!subcomp) return NULL;
 
-   surface = wl_compositor_create_surface(ecore_wl_compositor_get());
+   surface = wl_compositor_create_surface(_ecore_wl_compositor_get());
if (!surface)
  return NULL;
 
@@ -182,7 +182,7 @@ ecore_wl_subsurf_opaque_region_set(Ecore_Wl_Subsurf *ess, 
int x, int y, int w, i
 
if ((w  0)  (h  0))
  {
-region = wl_compositor_create_region(ecore_wl_compositor_get());
+region = wl_compositor_create_region(_ecore_wl_compositor_get());
 wl_region_add(region, x, y, w, h);
 wl_surface_set_opaque_region(ess-surface, region);
 wl_region_destroy(region);
diff --git a/src/lib/ecore_wayland/ecore_wl_window.c 
b/src/lib/ecore_wayland/ecore_wl_window.c
index b924691..0de39d9 100644
--- a/src/lib/ecore_wayland/ecore_wl_window.c
+++ b/src/lib/ecore_wayland/ecore_wl_window.c
@@ -252,7 +252,7 @@ ecore_wl_window_surface_create(Ecore_Wl_Window *win)
 {
if (!win) return NULL;
if (win-surface) return win-surface;
-   win-surface = wl_compositor_create_surface(ecore_wl_compositor_get());
+   win-surface = wl_compositor_create_surface(_ecore_wl_compositor_get());
win-surface_id = wl_proxy_get_id((struct wl_proxy *)win-surface);
return win-surface;
 }
@@ -610,7 +610,7 @@ ecore_wl_window_input_region_set(Ecore_Wl_Window *win, int 
x, int y, int w, int
  struct wl_region *region = NULL;
 
  region = 
-   wl_compositor_create_region(ecore_wl_compositor_get());
+   wl_compositor_create_region(_ecore_wl_compositor_get());
  wl_region_add(region, x, y, w, h);
  wl_surface_set_input_region(win-surface, region);
  wl_region_destroy(region);
@@ -640,7 +640,7 @@ ecore_wl_window_opaque_region_set(Ecore_Wl_Window *win, int 
x, int y, int w, int
 struct wl_region *region = NULL;
 
 region = 
-  wl_compositor_create_region(ecore_wl_compositor_get());
+  wl_compositor_create_region(_ecore_wl_compositor_get());
 
 switch (win-rotation)
   {

-- 




Re: [E-devel] [EGIT] [core/efl] master 01/02: ecore/wayland: Add some getters.

2013-10-29 Thread Rafael Antognolli
On Tue, Oct 29, 2013 at 7:25 PM, Chris Michael devilho...@comcast.net wrote:
 This is looking good antognolli :) Thank you for keeping to the existing
 formatting ;)

 There is one thing that I would prefer tho .. for internal/private
 functions (ie: Not exposed API functions), can we prefix with _ please ??

Done ;)

 ie:

 +struct wl_compositor *
 +ecore_wl_compositor_get(void)
 +{
 +   if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display))
 + return NULL;
 +
 +   _ecore_wl_init_wait();
 +
 +   return _ecore_wl_disp-wl.compositor;
 +}


 into

 +struct wl_compositor *
 +_ecore_wl_compositor_get(void)
 +{
 +   if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display))
 + return NULL;
 +
 +   _ecore_wl_init_wait();
 +
 +   return _ecore_wl_disp-wl.compositor;
 +}

 The underscore just makes it really easy  quick to determine that it's
 an internal function.

 That aside, Nice work !! :)

 Cheers,
 dh

 On 10/29/13 21:18, Rafael Antognolli wrote:
 antognolli pushed a commit to branch master.

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

 commit 06d6bf0dba9f0cc20075c84507bec2cbdb96aa6b
 Author: Rafael Antognolli rafael.antogno...@intel.com
 Date:   Tue Oct 29 18:40:33 2013 -0200

  ecore/wayland: Add some getters.

  This centralizes the place where we have to wait for the init to have
  finished before first using the compositor. It's also part of the later
  step of hiding Ecore_Wl_* private structs.
 ---
   src/lib/ecore_wayland/Ecore_Wayland.h| 10 ++
   src/lib/ecore_wayland/ecore_wl.c | 22 ++
   src/lib/ecore_wayland/ecore_wl_private.h |  3 +++
   src/lib/ecore_wayland/ecore_wl_subsurf.c | 13 +++--
   src/lib/ecore_wayland/ecore_wl_window.c  |  6 +++---
   5 files changed, 45 insertions(+), 9 deletions(-)

 diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h 
 b/src/lib/ecore_wayland/Ecore_Wayland.h
 index 9ba7636..7828281 100644
 --- a/src/lib/ecore_wayland/Ecore_Wayland.h
 +++ b/src/lib/ecore_wayland/Ecore_Wayland.h
 @@ -496,6 +496,16 @@ EAPI struct wl_shm *ecore_wl_shm_get(void);
   EAPI struct wl_display *ecore_wl_display_get(void);

   /**
 + * Retrieves the Compositor interface.
 + *
 + * This interface is used by clients to request the creation of surfaces and
 + * regions.
 + *
 + * @return The current wayland compositor interface
 + * @since 1.8
 + */
 +
 +/**
* Retrieves the size of the current screen.
*
* @param w where to return the width. May be NULL. Returns 0 on error.
 diff --git a/src/lib/ecore_wayland/ecore_wl.c 
 b/src/lib/ecore_wayland/ecore_wl.c
 index 451aa79..f763675 100644
 --- a/src/lib/ecore_wayland/ecore_wl.c
 +++ b/src/lib/ecore_wayland/ecore_wl.c
 @@ -272,6 +272,28 @@ ecore_wl_registry_get(void)
  return _ecore_wl_disp-wl.registry;
   }

 +struct wl_compositor *
 +ecore_wl_compositor_get(void)
 +{
 +   if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display))
 + return NULL;
 +
 +   _ecore_wl_init_wait();
 +
 +   return _ecore_wl_disp-wl.compositor;
 +}
 +
 +struct wl_subcompositor *
 +ecore_wl_subcompositor_get(void)
 +{
 +   if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display))
 + return NULL;
 +
 +   _ecore_wl_init_wait();
 +
 +   return _ecore_wl_disp-wl.subcompositor;
 +}
 +
   EAPI void
   ecore_wl_screen_size_get(int *w, int *h)
   {
 diff --git a/src/lib/ecore_wayland/ecore_wl_private.h 
 b/src/lib/ecore_wayland/ecore_wl_private.h
 index b83aae3..d615f0f 100644
 --- a/src/lib/ecore_wayland/ecore_wl_private.h
 +++ b/src/lib/ecore_wayland/ecore_wl_private.h
 @@ -97,4 +97,7 @@ void _ecore_wl_events_shutdown(void);

   void _ecore_wl_subsurfs_del_all(Ecore_Wl_Window *win);

 +struct wl_compositor *ecore_wl_compositor_get(void);
 +struct wl_subcompositor *ecore_wl_subcompositor_get(void);
 +
   #endif
 diff --git a/src/lib/ecore_wayland/ecore_wl_subsurf.c 
 b/src/lib/ecore_wayland/ecore_wl_subsurf.c
 index 4e144fa..d59810d 100644
 --- a/src/lib/ecore_wayland/ecore_wl_subsurf.c
 +++ b/src/lib/ecore_wayland/ecore_wl_subsurf.c
 @@ -23,19 +23,22 @@ ecore_wl_subsurf_create(Ecore_Wl_Window *win)
  struct wl_subsurface *subsurface;
  struct wl_surface *surface;
  Ecore_Wl_Subsurf *ess;
 +   struct wl_subcompositor *subcomp;

  LOGFN(__FILE__, __LINE__, __FUNCTION__);

  if (!win) return NULL;
  if (!win-surface) return NULL;
 -   if (!_ecore_wl_disp-wl.subcompositor) return NULL;

 -   surface = wl_compositor_create_surface(_ecore_wl_disp-wl.compositor);
 +   subcomp = ecore_wl_subcompositor_get();
 +   if (!subcomp) return NULL;
 +
 +   surface = wl_compositor_create_surface(ecore_wl_compositor_get());
  if (!surface)
return NULL;

  subsurface = wl_subcompositor_get_subsurface
 -  (_ecore_wl_disp-wl.subcompositor, surface, win-surface);
 +  (subcomp, surface, win-surface);
  if (!subsurface)
{
   wl_surface_destroy(surface);
 @@ -171,7 +174,6 @@ ecore_wl_subsurf_sync_set

Re: [E-devel] Evas cserve2

2013-10-28 Thread Rafael Antognolli
] I know (only) one bug right now, but sh, don't tell...

 --
 Jean-Philippe André
 (jpeg)

 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most
 from
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most
 from
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel




 --
 Jean-Philippe André
 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



-- 
Rafael Antognolli

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: change init done bindings.

2013-10-28 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit b87afd1b943b260c92f8493647b7d9cae327656e
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Mon Oct 28 14:07:25 2013 -0200

change init done bindings.
---
 src/lib/ecore_wayland/Ecore_Wayland.h  |  6 ++
 src/lib/ecore_wayland/ecore_wl.c   | 65 --
 .../engines/wayland/ecore_evas_wayland_egl.c   |  2 -
 .../engines/wayland/ecore_evas_wayland_shm.c   |  2 -
 4 files changed, 55 insertions(+), 20 deletions(-)

diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h 
b/src/lib/ecore_wayland/Ecore_Wayland.h
index 30545b7..15c5940 100644
--- a/src/lib/ecore_wayland/Ecore_Wayland.h
+++ b/src/lib/ecore_wayland/Ecore_Wayland.h
@@ -120,6 +120,8 @@ struct _Ecore_Wl_Display
struct wl_list outputs;
struct wl_list globals; /** @since 1.7.6 */
 
+   Eina_Bool init_done;
+
struct
  {
 struct xkb_context *context;
@@ -366,6 +368,10 @@ struct _Ecore_Wl_Event_Interfaces_Bound
Eina_Bool compositor : 1;
Eina_Bool shm : 1;
Eina_Bool shell : 1;
+   Eina_Bool output : 1;
+   Eina_Bool seat : 1;
+   Eina_Bool data_device_manager : 1;
+   Eina_Bool subcompositor : 1;
 };
 
 /**
diff --git a/src/lib/ecore_wayland/ecore_wl.c b/src/lib/ecore_wayland/ecore_wl.c
index ee614e0..8766834 100644
--- a/src/lib/ecore_wayland/ecore_wl.c
+++ b/src/lib/ecore_wayland/ecore_wl.c
@@ -22,6 +22,7 @@ static void _ecore_wl_animator_callback(void *data, struct 
wl_callback *callback
 static Eina_Bool _ecore_wl_animator_window_add(const Eina_Hash *hash 
EINA_UNUSED, const void *key EINA_UNUSED, void *data, void *fdata EINA_UNUSED);
 static void _ecore_wl_signal_exit(void);
 static void _ecore_wl_signal_exit_free(void *data EINA_UNUSED, void *event);
+static void _ecore_wl_init_callback(void *data, struct wl_callback *callback, 
uint32_t serial EINA_UNUSED);
 
 /* local variables */
 static int _ecore_wl_init_count = 0;
@@ -40,6 +41,11 @@ static const struct wl_callback_listener 
_ecore_wl_sync_listener =
_ecore_wl_sync_callback
 };
 
+static const struct wl_callback_listener _ecore_wl_init_sync_listener =
+{
+   _ecore_wl_init_callback
+};
+
 static const struct wl_callback_listener _ecore_wl_anim_listener = 
 {
_ecore_wl_animator_callback
@@ -66,9 +72,40 @@ EAPI int ECORE_WL_EVENT_SELECTION_DATA_READY = 0;
 EAPI int ECORE_WL_EVENT_DATA_SOURCE_CANCELLED = 0;
 EAPI int ECORE_WL_EVENT_INTERFACES_BOUND = 0;
 
+static void
+_ecore_wl_init_callback(void *data, struct wl_callback *callback, uint32_t 
serial EINA_UNUSED)
+{
+   Ecore_Wl_Display *ewd = data;
+   Ecore_Wl_Event_Interfaces_Bound *ev;
+
+   wl_callback_destroy(callback);
+   ewd-init_done = EINA_TRUE;
+
+   if (!(ev = calloc(1, sizeof(Ecore_Wl_Event_Interfaces_Bound
+ return;
+
+   ev-compositor = (ewd-wl.compositor != NULL);
+   ev-shm = (ewd-wl.shm != NULL);
+   ev-shell = (ewd-wl.shell != NULL);
+   ev-output = (ewd-output != NULL);
+   ev-seat = (ewd-input != NULL);
+   ev-data_device_manager = (ewd-wl.data_device_manager != NULL);
+   ev-subcompositor = (ewd-wl.subcompositor != NULL);
+
+   ecore_event_add(ECORE_WL_EVENT_INTERFACES_BOUND, ev, NULL, NULL);
+}
+
+static void
+_ecore_wl_init_wait(void)
+{
+   while (!_ecore_wl_disp-init_done)
+ wl_display_dispatch(_ecore_wl_disp-wl.display);
+}
+
 EAPI int
 ecore_wl_init(const char *name)
 {
+   struct wl_callback *callback;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
 
if (++_ecore_wl_init_count != 1) return _ecore_wl_init_count;
@@ -181,6 +218,10 @@ ecore_wl_init(const char *name)
_ecore_wl_window_init();
_ecore_wl_events_init();
 
+   callback = wl_display_sync(_ecore_wl_disp-wl.display);
+   wl_callback_add_listener(callback, _ecore_wl_init_sync_listener,
+_ecore_wl_disp);
+
return _ecore_wl_init_count;
 }
 
@@ -212,6 +253,9 @@ EAPI struct wl_shm *
 ecore_wl_shm_get(void)
 {
if (!_ecore_wl_disp) return NULL;
+
+   _ecore_wl_init_wait();
+
return _ecore_wl_disp-wl.shm;
 }
 
@@ -228,6 +272,9 @@ ecore_wl_globals_get(void)
 {
if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display)) 
  return NULL;
+
+   _ecore_wl_init_wait();
+
return (_ecore_wl_disp-globals);
 }
 
@@ -236,6 +283,7 @@ ecore_wl_registry_get(void)
 {
if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display)) 
  return NULL;
+
return _ecore_wl_disp-wl.registry;
 }
 
@@ -249,8 +297,7 @@ ecore_wl_screen_size_get(int *w, int *h)
 
if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display)) return;
 
-   if (!_ecore_wl_disp-output)
- ecore_wl_sync();
+   _ecore_wl_init_wait();
 
if (!_ecore_wl_disp-output) return;
 
@@ -545,20 +592,6 @@ _ecore_wl_cb_handle_global(void *data, struct wl_registry 
*registry, unsigned in
 ewd-wl.data_device_manager =
   wl_registry_bind(registry, id, wl_data_device_manager_interface, 1

[EGIT] [core/efl] master 01/01: Revert change init done bindings.

2013-10-28 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit ad731e8b213ff38fed95f069a3ba79aba339925a
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Mon Oct 28 14:46:40 2013 -0200

Revert change init done bindings.

This reverts commit b87afd1b943b260c92f8493647b7d9cae327656e.

Wrong branch, wrong commit.
---
 src/lib/ecore_wayland/Ecore_Wayland.h  |  6 --
 src/lib/ecore_wayland/ecore_wl.c   | 65 ++
 .../engines/wayland/ecore_evas_wayland_egl.c   |  2 +
 .../engines/wayland/ecore_evas_wayland_shm.c   |  2 +
 4 files changed, 20 insertions(+), 55 deletions(-)

diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h 
b/src/lib/ecore_wayland/Ecore_Wayland.h
index 15c5940..30545b7 100644
--- a/src/lib/ecore_wayland/Ecore_Wayland.h
+++ b/src/lib/ecore_wayland/Ecore_Wayland.h
@@ -120,8 +120,6 @@ struct _Ecore_Wl_Display
struct wl_list outputs;
struct wl_list globals; /** @since 1.7.6 */
 
-   Eina_Bool init_done;
-
struct
  {
 struct xkb_context *context;
@@ -368,10 +366,6 @@ struct _Ecore_Wl_Event_Interfaces_Bound
Eina_Bool compositor : 1;
Eina_Bool shm : 1;
Eina_Bool shell : 1;
-   Eina_Bool output : 1;
-   Eina_Bool seat : 1;
-   Eina_Bool data_device_manager : 1;
-   Eina_Bool subcompositor : 1;
 };
 
 /**
diff --git a/src/lib/ecore_wayland/ecore_wl.c b/src/lib/ecore_wayland/ecore_wl.c
index 8766834..ee614e0 100644
--- a/src/lib/ecore_wayland/ecore_wl.c
+++ b/src/lib/ecore_wayland/ecore_wl.c
@@ -22,7 +22,6 @@ static void _ecore_wl_animator_callback(void *data, struct 
wl_callback *callback
 static Eina_Bool _ecore_wl_animator_window_add(const Eina_Hash *hash 
EINA_UNUSED, const void *key EINA_UNUSED, void *data, void *fdata EINA_UNUSED);
 static void _ecore_wl_signal_exit(void);
 static void _ecore_wl_signal_exit_free(void *data EINA_UNUSED, void *event);
-static void _ecore_wl_init_callback(void *data, struct wl_callback *callback, 
uint32_t serial EINA_UNUSED);
 
 /* local variables */
 static int _ecore_wl_init_count = 0;
@@ -41,11 +40,6 @@ static const struct wl_callback_listener 
_ecore_wl_sync_listener =
_ecore_wl_sync_callback
 };
 
-static const struct wl_callback_listener _ecore_wl_init_sync_listener =
-{
-   _ecore_wl_init_callback
-};
-
 static const struct wl_callback_listener _ecore_wl_anim_listener = 
 {
_ecore_wl_animator_callback
@@ -72,40 +66,9 @@ EAPI int ECORE_WL_EVENT_SELECTION_DATA_READY = 0;
 EAPI int ECORE_WL_EVENT_DATA_SOURCE_CANCELLED = 0;
 EAPI int ECORE_WL_EVENT_INTERFACES_BOUND = 0;
 
-static void
-_ecore_wl_init_callback(void *data, struct wl_callback *callback, uint32_t 
serial EINA_UNUSED)
-{
-   Ecore_Wl_Display *ewd = data;
-   Ecore_Wl_Event_Interfaces_Bound *ev;
-
-   wl_callback_destroy(callback);
-   ewd-init_done = EINA_TRUE;
-
-   if (!(ev = calloc(1, sizeof(Ecore_Wl_Event_Interfaces_Bound
- return;
-
-   ev-compositor = (ewd-wl.compositor != NULL);
-   ev-shm = (ewd-wl.shm != NULL);
-   ev-shell = (ewd-wl.shell != NULL);
-   ev-output = (ewd-output != NULL);
-   ev-seat = (ewd-input != NULL);
-   ev-data_device_manager = (ewd-wl.data_device_manager != NULL);
-   ev-subcompositor = (ewd-wl.subcompositor != NULL);
-
-   ecore_event_add(ECORE_WL_EVENT_INTERFACES_BOUND, ev, NULL, NULL);
-}
-
-static void
-_ecore_wl_init_wait(void)
-{
-   while (!_ecore_wl_disp-init_done)
- wl_display_dispatch(_ecore_wl_disp-wl.display);
-}
-
 EAPI int
 ecore_wl_init(const char *name)
 {
-   struct wl_callback *callback;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
 
if (++_ecore_wl_init_count != 1) return _ecore_wl_init_count;
@@ -218,10 +181,6 @@ ecore_wl_init(const char *name)
_ecore_wl_window_init();
_ecore_wl_events_init();
 
-   callback = wl_display_sync(_ecore_wl_disp-wl.display);
-   wl_callback_add_listener(callback, _ecore_wl_init_sync_listener,
-_ecore_wl_disp);
-
return _ecore_wl_init_count;
 }
 
@@ -253,9 +212,6 @@ EAPI struct wl_shm *
 ecore_wl_shm_get(void)
 {
if (!_ecore_wl_disp) return NULL;
-
-   _ecore_wl_init_wait();
-
return _ecore_wl_disp-wl.shm;
 }
 
@@ -272,9 +228,6 @@ ecore_wl_globals_get(void)
 {
if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display)) 
  return NULL;
-
-   _ecore_wl_init_wait();
-
return (_ecore_wl_disp-globals);
 }
 
@@ -283,7 +236,6 @@ ecore_wl_registry_get(void)
 {
if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display)) 
  return NULL;
-
return _ecore_wl_disp-wl.registry;
 }
 
@@ -297,7 +249,8 @@ ecore_wl_screen_size_get(int *w, int *h)
 
if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display)) return;
 
-   _ecore_wl_init_wait();
+   if (!_ecore_wl_disp-output)
+ ecore_wl_sync();
 
if (!_ecore_wl_disp-output) return;
 
@@ -592,6 +545,20 @@ _ecore_wl_cb_handle_global(void *data, struct wl_registry 
*registry, unsigned in
 ewd

[EGIT] [core/efl] master 01/02: ecore/wayland: Add info about other bound interfaces.

2013-10-28 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit 3aca95bb22cac0f0ab86eede49a3118fbcc7c93e
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Mon Oct 28 14:12:27 2013 -0200

ecore/wayland: Add info about other bound interfaces.

Add output, seat, data_device_manager and subcompositor as possible
bound interfaces, on the ECORE_WL_EVENT_INTERFACES_BOUND event info.
---
 src/lib/ecore_wayland/Ecore_Wayland.h | 4 
 src/lib/ecore_wayland/ecore_wl.c  | 4 
 2 files changed, 8 insertions(+)

diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h 
b/src/lib/ecore_wayland/Ecore_Wayland.h
index 30545b7..4238c46 100644
--- a/src/lib/ecore_wayland/Ecore_Wayland.h
+++ b/src/lib/ecore_wayland/Ecore_Wayland.h
@@ -366,6 +366,10 @@ struct _Ecore_Wl_Event_Interfaces_Bound
Eina_Bool compositor : 1;
Eina_Bool shm : 1;
Eina_Bool shell : 1;
+   Eina_Bool output : 1;
+   Eina_Bool seat : 1;
+   Eina_Bool data_device_manager : 1;
+   Eina_Bool subcompositor : 1;
 };
 
 /**
diff --git a/src/lib/ecore_wayland/ecore_wl.c b/src/lib/ecore_wayland/ecore_wl.c
index ee614e0..9e8fa46 100644
--- a/src/lib/ecore_wayland/ecore_wl.c
+++ b/src/lib/ecore_wayland/ecore_wl.c
@@ -556,6 +556,10 @@ _ecore_wl_cb_handle_global(void *data, struct wl_registry 
*registry, unsigned in
 ev-compositor = (ewd-wl.compositor != NULL);
 ev-shm = (ewd-wl.shm != NULL);
 ev-shell = (ewd-wl.shell != NULL);
+ev-output = (ewd-output != NULL);
+ev-seat = (ewd-input != NULL);
+ev-data_device_manager = (ewd-wl.data_device_manager != NULL);
+ev-subcompositor = (ewd-wl.subcompositor != NULL);
 
 ecore_event_add(ECORE_WL_EVENT_INTERFACES_BOUND, ev, NULL, NULL);
  }

-- 




[EGIT] [core/efl] master 02/02: ecore/wayland: Use sync callback to report end of ecore_wl_init().

2013-10-28 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit ccdeae7ce498d21088e4b0849ceb2394148f9877
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Mon Oct 28 14:07:25 2013 -0200

ecore/wayland: Use sync callback to report end of ecore_wl_init().

At the end of the ecore_wl_init() function, send a sync request to the
server, and add a callback listener to the done event. When this event
is received, we are sure that all the registry bind requests done so
far were processed already, and that the registry and globals are
available and can be used.

Now, on the functions that request interfaces or registry, we call
_ecore_wl_init_wait(), which will check if the callback was received
already (that means that all requests inside the init were processed).
If it was not yet, then we wait until receiving that callback, before
returning the requested data.
---
 src/lib/ecore_wayland/Ecore_Wayland.h  | 11 +++
 src/lib/ecore_wayland/ecore_wl.c   | 36 --
 .../engines/wayland/ecore_evas_wayland_egl.c   |  2 --
 .../engines/wayland/ecore_evas_wayland_shm.c   |  2 --
 4 files changed, 45 insertions(+), 6 deletions(-)

diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h 
b/src/lib/ecore_wayland/Ecore_Wayland.h
index 4238c46..9ba7636 100644
--- a/src/lib/ecore_wayland/Ecore_Wayland.h
+++ b/src/lib/ecore_wayland/Ecore_Wayland.h
@@ -120,6 +120,8 @@ struct _Ecore_Wl_Display
struct wl_list outputs;
struct wl_list globals; /** @since 1.7.6 */
 
+   Eina_Bool init_done;
+
struct
  {
 struct xkb_context *context;
@@ -558,6 +560,15 @@ EAPI struct wl_list *ecore_wl_outputs_get(void);
 /**
  * Retrieves the Wayland Globals Interface list used for the current Wayland 
connection.
  *
+ * This call, if done after the ECORE_WL_EVENT_INTERFACES_BOUND event was
+ * received already, won't block the mainloop or trigger a dispatch. It will
+ * return the current globals immediately. However, if done before this event,
+ * it will probably block the mainloop waiting for the sync done event to be
+ * received (by using one or more wl_display_dispatch call), and then finally
+ * return the wl globals list.
+ *
+ * There's no need to call dispatch manually, since this call will do it if 
necessary.
+ *
  * @return The current wayland globals interface list
  *
  * @ingroup Ecore_Wl_Display_Group
diff --git a/src/lib/ecore_wayland/ecore_wl.c b/src/lib/ecore_wayland/ecore_wl.c
index 9e8fa46..451aa79 100644
--- a/src/lib/ecore_wayland/ecore_wl.c
+++ b/src/lib/ecore_wayland/ecore_wl.c
@@ -22,6 +22,7 @@ static void _ecore_wl_animator_callback(void *data, struct 
wl_callback *callback
 static Eina_Bool _ecore_wl_animator_window_add(const Eina_Hash *hash 
EINA_UNUSED, const void *key EINA_UNUSED, void *data, void *fdata EINA_UNUSED);
 static void _ecore_wl_signal_exit(void);
 static void _ecore_wl_signal_exit_free(void *data EINA_UNUSED, void *event);
+static void _ecore_wl_init_callback(void *data, struct wl_callback *callback, 
uint32_t serial EINA_UNUSED);
 
 /* local variables */
 static int _ecore_wl_init_count = 0;
@@ -40,6 +41,11 @@ static const struct wl_callback_listener 
_ecore_wl_sync_listener =
_ecore_wl_sync_callback
 };
 
+static const struct wl_callback_listener _ecore_wl_init_sync_listener =
+{
+   _ecore_wl_init_callback
+};
+
 static const struct wl_callback_listener _ecore_wl_anim_listener = 
 {
_ecore_wl_animator_callback
@@ -66,9 +72,26 @@ EAPI int ECORE_WL_EVENT_SELECTION_DATA_READY = 0;
 EAPI int ECORE_WL_EVENT_DATA_SOURCE_CANCELLED = 0;
 EAPI int ECORE_WL_EVENT_INTERFACES_BOUND = 0;
 
+static void
+_ecore_wl_init_callback(void *data, struct wl_callback *callback, uint32_t 
serial EINA_UNUSED)
+{
+   Ecore_Wl_Display *ewd = data;
+
+   wl_callback_destroy(callback);
+   ewd-init_done = EINA_TRUE;
+}
+
+static void
+_ecore_wl_init_wait(void)
+{
+   while (!_ecore_wl_disp-init_done)
+ wl_display_dispatch(_ecore_wl_disp-wl.display);
+}
+
 EAPI int
 ecore_wl_init(const char *name)
 {
+   struct wl_callback *callback;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
 
if (++_ecore_wl_init_count != 1) return _ecore_wl_init_count;
@@ -181,6 +204,10 @@ ecore_wl_init(const char *name)
_ecore_wl_window_init();
_ecore_wl_events_init();
 
+   callback = wl_display_sync(_ecore_wl_disp-wl.display);
+   wl_callback_add_listener(callback, _ecore_wl_init_sync_listener,
+_ecore_wl_disp);
+
return _ecore_wl_init_count;
 }
 
@@ -212,6 +239,9 @@ EAPI struct wl_shm *
 ecore_wl_shm_get(void)
 {
if (!_ecore_wl_disp) return NULL;
+
+   _ecore_wl_init_wait();
+
return _ecore_wl_disp-wl.shm;
 }
 
@@ -228,6 +258,9 @@ ecore_wl_globals_get(void)
 {
if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display)) 
  return NULL;
+
+   _ecore_wl_init_wait

Re: [E-devel] [EGIT] [core/efl] master 03/07: If the init count is = 1, then we want to iterate (ecore_imf wayland module adds an extra init).

2013-10-27 Thread Rafael Antognolli
On Oct 27, 2013 6:06 AM, Chris Michael devilho...@comcast.net wrote:

 On 10/26/13 19:27, Rafael Antognolli wrote:
  On Sat, Oct 26, 2013 at 3:13 PM, Rafael Antognolli antogno...@gmail.com
wrote:
  Hey dh,
 
  On Tue, Jul 23, 2013 at 3:15 AM, Chris Michael - Enlightenment Git
  no-re...@enlightenment.org wrote:
  devilhorns pushed a commit to branch master.
 
  commit cc596a358851e06f162dd3e8f75938c4b6395584
  Author: Chris Michael cp.mich...@samsung.com
  Date:   Thu Jul 18 11:07:05 2013 +0100
 
   If the init count is = 1, then we want to iterate (ecore_imf
wayland
   module adds an extra init).
  Why do we need to do that? If ecore_wl_init returns  1, it means that
  it was initialized already, and nothing will happen inside of that
  function.
 
  Plus if we call wl_display_dispatch() when there's nothing to be
  dispatched, it will block until something else occurs. And this is
  what is going on with elm tests, when we click on a test button and it
  blocks until the mouse is moved, or a key is pressed, or whatever.
 
  I'm trying to understand why ecore_imf wayland module needs this, but
  if that's the case, we could maybe add this dispatch inside the module
  itself, instead of here, no?
  nvm, I just noticed that it's because of ecore_wl_registry_get and
  ecore_wl_globals_get.
 Yes. Ecore_Imf wayland module needs those ... but really there is a
 larger problem that needs addressing in ecore_imf (but that's another
 story) ;)
  So, I think we need a better and more asynchronous way of init the wl
  backend. Maybe an Ecore event that, when emitted, we are sure that
  everything that depends dispatch things was done already?
And, in the
  case of someone calls those functions before the event being received,
  THEN we can block waiting for the dispatch being finished? That would
  be similar to what I did in ecore_wl_screen_size_get.
 Well, there is an event already there for this purpose. An interfaces
 bound event gets raised ... but currenly on does so when compositor,
 shell, and shm have been bound...easily changed tho.

great, I'll take a look at that one, thanks!

 dh

  I'll try to think about it carefully and see if I find a simple
  implementation. That would enable us to never block on init, and keep
  things that depend on the registry, global and display still working.
  And of course, remove this dispatch from the engine_new_internal code.
 
   Fix some formatting
 
   Signed-off-by: Chris Michael cp.mich...@samsung.com
  ---
src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c | 2
+-
src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c | 5
+++--
2 files changed, 4 insertions(+), 3 deletions(-)
 
  diff --git
a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
  index e8a4570..1d5ac49 100644
  --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
  +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
  @@ -112,7 +112,7 @@ ecore_evas_wayland_egl_new_internal(const char
*disp_name, unsigned int parent,
ERR(Failed to initialize Ecore_Wayland);
return NULL;
 }
  -   else if (count == 1)
  +   else if (count = 1)
 ecore_wl_display_iterate();
 
   if (!(ee = calloc(1, sizeof(Ecore_Evas
  diff --git
a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
  index fae0b4f..048d2c7 100644
  --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
  +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
  @@ -111,7 +111,7 @@ ecore_evas_wayland_shm_new_internal(const char
*disp_name, unsigned int parent,
ERR(Failed to initialize Ecore_Wayland);
return NULL;
 }
  -   else if (count == 1)
  +   else if (count = 1)
 ecore_wl_display_iterate();
 
   if (!(ee = calloc(1, sizeof(Ecore_Evas
  @@ -179,7 +179,8 @@ ecore_evas_wayland_shm_new_internal(const char
*disp_name, unsigned int parent,
 
   wdata-parent = p;
   wdata-win =
  - ecore_wl_window_new(p, x, y, w + fw, h + fh,
ECORE_WL_WINDOW_BUFFER_TYPE_SHM);
  + ecore_wl_window_new(p, x, y, w + fw, h + fh,
  + ECORE_WL_WINDOW_BUFFER_TYPE_SHM);
   ee-prop.window = wdata-win-id;
 
   ee-evas = evas_new();
 
  --
 
 
--
  See everything from the browser to the database with AppDynamics
  Get end-to-end visibility with application monitoring from AppDynamics
  Isolate bottlenecks and diagnose root cause in seconds.
  Start your free trial of AppDynamics Pro today!
 
http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk
 
 
  --
  Rafael Antognolli
 
 



--
 October Webinars

Re: [E-devel] EFL 1.8 coming release

2013-10-26 Thread Rafael Antognolli
On Fri, Oct 25, 2013 at 9:27 AM, Leif Middelschulte
leif.middelschu...@gmail.com wrote:
 Am 25.10.2013 um 10:35 schrieb Cedric BAIL cedric.b...@free.fr:

 Hello everyone,

 EFL and Elementary 1.8 have there todo list almost done by now. I
 think we are good to start the release process. So if nobody object by
 end of next week, on Sunday 3rd, we will enter on code freeze. As
 usual, only bug fixes, test code and limited API fix are allowed.

 Right now I am only aware of one major change that need to be done,
 fixing Ecore_Wayland.h exposing private structure. So if you have
 anything important, please share it here. I will go over phab and take
 of what I can.

 Time to finally roll 1.8 out !
 Great new!
 Just to let you know tough: I’m trying to package efl (with default 
 configuration) for Mac OS’ Homebrew package manager. So far no patches are 
 necessary for efl.

Yeah, amazing news, indeed!

I'm gonna work on the Ecore_Wayland.h private structure, starting from Monday!

 I’ll update the status, once I’ve done it successfully.

 --
 Leif

 --
 Cedric BAIL

 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



-- 
Rafael Antognolli

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Evas cserve2

2013-10-26 Thread Rafael Antognolli
Hey, amazing work in here!

Some comments follow:

On Wed, Oct 23, 2013 at 11:45 PM, Jean-Philippe André j...@videolan.org wrote:
 Dear EFL developers,


 TL;DR I'd like to merge my work on cserve2 into EFL master soon. This is a
 commit-flood warning mail.


 I hope the lucky of you folks who attended EFL dev day 2013 had fun there.
 Also I hope this was a productive event and you got the opportunity to
 discuss various EFL-related topics.

 Amongst those, I trust Cedric made an awesome presentation about cserve2,
 and introduced the work I've put on top of what had already been done :-)

 Now is about time to merge this work into the master branch, as it's
 reached a state where it is (almost?) fast  stable enough to be used to
 run E18.

 For those who forgot or could not attend, let me summarize what this is all
 about:

 Evas cserve2 is a caching mechanism for Evas images and font (glyphs) that
 is based on a client-server model. A program, evas_cserve2, runs as a
 server on the system, waits for commands on a UNIX socket, and loads image
 files, image data and font data in memory. The memory is then shared and
 exposed in virtual files in /dev/shm and all applications can access it.
 This means multiple apps will reuse the exact same resources in memory, and
 won't need to duplicate common elements such as font glyphs and theme image
 data.

 When I first started working on cserve2, it was in an experimentally
 working state. That is, it worked pretty well in some situations, but there
 were huge performance bottlenecks, that made it impractical to use in
 production.

 One of the main bottlenecks was the massive amount of IPC involved in just
 opening  loading an image. (Example: client A sends a message to cserve2
 to OPEN an image, then waits for cserve2 to answer. cserve2 sends a message
 to its slave to OPEN that image, receives a message from the slave when
 it's done, sends a message back to the client A, ... So far the data itself
 is still not even loaded, and client A will have to request the data in a
 second message to cserve2...) In particular, most scaling was done on the
 server and not on the client side, which means that lots of scaled images
 could be cached even when used only once.

 So, I worked on reducing unnecessary IPC and optimizing data loading, in
 two ways:
 - Reuse the scalecache logic for scaled images (cache only images that
 would otherwise hit the scalecache, scale on the fly all the rest)
 - Implement a shared indexing system, where cserve2 exposes its internal
 cache structure to all the clients. The clients can then scan the indexes
 (also stored in /dev/shm), bypass part of the heavy IPC and directly open
 the data. This works very well for images as they will not change at all
 after being fully loaded.

Nice idea, I saw Cedric talking about it on the presentation, really good.

BTW, do you keep reference for each client using a given image? How do
you know when to drop an image, even if a client is still using it?

And I assume you are not worried with security yet, as we were not yet
when we first did it, but will have to work on this at some point,
right?

 In terms of stability, I've also improved the following:
 - Support the GL engine (very basic support right now)
 - Support some exotic stuff (eg. animated Gif)
 - Allow cserve2 to crash without affecting clients (as long as the system
 restarts the server)

Great stuff!

 The overall objective of cserve2 is to reduce memory usage at the system
 level, as applications will share more resources. Also, we can integrate in
 the future with E, so that the required resources are loaded ASAP when an
 app starts (predict what an app needs before even it has requested them).
 So there is a potential performance increase as well, on slower devices at
 least.

 I've been actually using it for a couple days and it's surprisingly quite
 stable ^^.
 I will fix bugs as they come [1].


 The source code is available in my dev branch (rebased on top of master):
 https://git.enlightenment.org/core/efl.git/log/?h=devs/jpeg/cserve2

 It's a LOT of commits, so out of question that I push them without previous
 notice  discussion :-)
 As usual, if there's any bug left, blame Cedric.

Good work man, would be great if I could make a review on this, but I
am not sure that I'll be able to do it.

 Best regards,


 [1] I know (only) one bug right now, but sh, don't tell...


Regards,
Rafael Antognolli

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel

Re: [E-devel] Eolian meta-data parsing

2013-10-26 Thread Rafael Antognolli
json++

On Fri, Oct 25, 2013 at 5:01 AM, Cedric BAIL cedric.b...@free.fr wrote:
 Hello,

 On Tue, Oct 22, 2013 at 2:29 AM, daniel.za...@samsung.com
 daniel.za...@samsung.com wrote:
 I would like to discuss about a project that we are beginning just now.
 I presented it on EFL dev. day yesterday but I would like to share it
 here since it will imply all the EFL developers (yes, you) one day or
 another.

 It is called Eolian and was first aimed to facilitate addition of new Eo
 functions by auto-generating code. Then we noted that we can
 automatically generate language bindings too but it is not the goal of
 this discussion.

 The idea is that each Eo class is represented into a .eo file. These
 files are manually modified to add new functions, comments, callbacks...
 and parsed and the generation phase updates the C/H files.

 They contain descriptions of inherited classes, properties, methods,
 base classes implemented functions and callbacks.

 We thought about two formats:
 - a C-like format:

 [snip]

 - JSON format:

 [snip]

 So, until yesterday (the day I presented), I really thought we would go
 on the C (ok, C++) style but now that I saw some faces when I showed the
 C format and since I want to come back home safe, I prefer asking here.

 Thanks a lot for asking ! I am very pleased by the ongoing result and
 I am obviously going to vote for JSON also.
 --
 Cedric BAIL

 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



-- 
Rafael Antognolli

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/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 03/07: If the init count is = 1, then we want to iterate (ecore_imf wayland module adds an extra init).

2013-10-26 Thread Rafael Antognolli
Hey dh,

On Tue, Jul 23, 2013 at 3:15 AM, Chris Michael - Enlightenment Git
no-re...@enlightenment.org wrote:
 devilhorns pushed a commit to branch master.

 commit cc596a358851e06f162dd3e8f75938c4b6395584
 Author: Chris Michael cp.mich...@samsung.com
 Date:   Thu Jul 18 11:07:05 2013 +0100

 If the init count is = 1, then we want to iterate (ecore_imf wayland
 module adds an extra init).

Why do we need to do that? If ecore_wl_init returns  1, it means that
it was initialized already, and nothing will happen inside of that
function.

Plus if we call wl_display_dispatch() when there's nothing to be
dispatched, it will block until something else occurs. And this is
what is going on with elm tests, when we click on a test button and it
blocks until the mouse is moved, or a key is pressed, or whatever.

I'm trying to understand why ecore_imf wayland module needs this, but
if that's the case, we could maybe add this dispatch inside the module
itself, instead of here, no?

 Fix some formatting

 Signed-off-by: Chris Michael cp.mich...@samsung.com
 ---
  src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c | 2 +-
  src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c | 5 +++--
  2 files changed, 4 insertions(+), 3 deletions(-)

 diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c 
 b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
 index e8a4570..1d5ac49 100644
 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
 +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
 @@ -112,7 +112,7 @@ ecore_evas_wayland_egl_new_internal(const char 
 *disp_name, unsigned int parent,
  ERR(Failed to initialize Ecore_Wayland);
  return NULL;
   }
 -   else if (count == 1)
 +   else if (count = 1)
   ecore_wl_display_iterate();

 if (!(ee = calloc(1, sizeof(Ecore_Evas
 diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c 
 b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
 index fae0b4f..048d2c7 100644
 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
 +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
 @@ -111,7 +111,7 @@ ecore_evas_wayland_shm_new_internal(const char 
 *disp_name, unsigned int parent,
  ERR(Failed to initialize Ecore_Wayland);
  return NULL;
   }
 -   else if (count == 1)
 +   else if (count = 1)
   ecore_wl_display_iterate();

 if (!(ee = calloc(1, sizeof(Ecore_Evas
 @@ -179,7 +179,8 @@ ecore_evas_wayland_shm_new_internal(const char 
 *disp_name, unsigned int parent,

 wdata-parent = p;
 wdata-win =
 - ecore_wl_window_new(p, x, y, w + fw, h + fh, 
 ECORE_WL_WINDOW_BUFFER_TYPE_SHM);
 + ecore_wl_window_new(p, x, y, w + fw, h + fh,
 + ECORE_WL_WINDOW_BUFFER_TYPE_SHM);
 ee-prop.window = wdata-win-id;

 ee-evas = evas_new();

 --

 --
 See everything from the browser to the database with AppDynamics
 Get end-to-end visibility with application monitoring from AppDynamics
 Isolate bottlenecks and diagnose root cause in seconds.
 Start your free trial of AppDynamics Pro today!
 http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk



-- 
Rafael Antognolli

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/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 03/07: If the init count is = 1, then we want to iterate (ecore_imf wayland module adds an extra init).

2013-10-26 Thread Rafael Antognolli
On Sat, Oct 26, 2013 at 3:13 PM, Rafael Antognolli antogno...@gmail.com wrote:
 Hey dh,

 On Tue, Jul 23, 2013 at 3:15 AM, Chris Michael - Enlightenment Git
 no-re...@enlightenment.org wrote:
 devilhorns pushed a commit to branch master.

 commit cc596a358851e06f162dd3e8f75938c4b6395584
 Author: Chris Michael cp.mich...@samsung.com
 Date:   Thu Jul 18 11:07:05 2013 +0100

 If the init count is = 1, then we want to iterate (ecore_imf wayland
 module adds an extra init).

 Why do we need to do that? If ecore_wl_init returns  1, it means that
 it was initialized already, and nothing will happen inside of that
 function.

 Plus if we call wl_display_dispatch() when there's nothing to be
 dispatched, it will block until something else occurs. And this is
 what is going on with elm tests, when we click on a test button and it
 blocks until the mouse is moved, or a key is pressed, or whatever.

 I'm trying to understand why ecore_imf wayland module needs this, but
 if that's the case, we could maybe add this dispatch inside the module
 itself, instead of here, no?

nvm, I just noticed that it's because of ecore_wl_registry_get and
ecore_wl_globals_get.

So, I think we need a better and more asynchronous way of init the wl
backend. Maybe an Ecore event that, when emitted, we are sure that
everything that depends dispatch things was done already? And, in the
case of someone calls those functions before the event being received,
THEN we can block waiting for the dispatch being finished? That would
be similar to what I did in ecore_wl_screen_size_get.

I'll try to think about it carefully and see if I find a simple
implementation. That would enable us to never block on init, and keep
things that depend on the registry, global and display still working.
And of course, remove this dispatch from the engine_new_internal code.

 Fix some formatting

 Signed-off-by: Chris Michael cp.mich...@samsung.com
 ---
  src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c | 2 +-
  src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c | 5 +++--
  2 files changed, 4 insertions(+), 3 deletions(-)

 diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c 
 b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
 index e8a4570..1d5ac49 100644
 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
 +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c
 @@ -112,7 +112,7 @@ ecore_evas_wayland_egl_new_internal(const char 
 *disp_name, unsigned int parent,
  ERR(Failed to initialize Ecore_Wayland);
  return NULL;
   }
 -   else if (count == 1)
 +   else if (count = 1)
   ecore_wl_display_iterate();

 if (!(ee = calloc(1, sizeof(Ecore_Evas
 diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c 
 b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
 index fae0b4f..048d2c7 100644
 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
 +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_shm.c
 @@ -111,7 +111,7 @@ ecore_evas_wayland_shm_new_internal(const char 
 *disp_name, unsigned int parent,
  ERR(Failed to initialize Ecore_Wayland);
  return NULL;
   }
 -   else if (count == 1)
 +   else if (count = 1)
   ecore_wl_display_iterate();

 if (!(ee = calloc(1, sizeof(Ecore_Evas
 @@ -179,7 +179,8 @@ ecore_evas_wayland_shm_new_internal(const char 
 *disp_name, unsigned int parent,

 wdata-parent = p;
 wdata-win =
 - ecore_wl_window_new(p, x, y, w + fw, h + fh, 
 ECORE_WL_WINDOW_BUFFER_TYPE_SHM);
 + ecore_wl_window_new(p, x, y, w + fw, h + fh,
 + ECORE_WL_WINDOW_BUFFER_TYPE_SHM);
 ee-prop.window = wdata-win-id;

 ee-evas = evas_new();

 --

 --
 See everything from the browser to the database with AppDynamics
 Get end-to-end visibility with application monitoring from AppDynamics
 Isolate bottlenecks and diagnose root cause in seconds.
 Start your free trial of AppDynamics Pro today!
 http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk



 --
 Rafael Antognolli



-- 
Rafael Antognolli

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: ecore/wayland: Do not generate subsurface source files.

2013-10-11 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit c4f1e67686d05fa29215a173d40be6f973f91840
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Fri Oct 11 14:10:30 2013 -0300

ecore/wayland: Do not generate subsurface source files.

Add them to the tree, so they don't need to be generated again on each
build. Also remove the autofoo code used for generating them.
---
 configure.ac   |   1 -
 src/Makefile_Ecore_Wayland.am  |  18 +--
 src/lib/ecore_wayland/.gitignore   |   2 -
 src/lib/ecore_wayland/subsurface-client-protocol.h | 167 +
 src/lib/ecore_wayland/subsurface-protocol.c|  71 +
 5 files changed, 239 insertions(+), 20 deletions(-)

diff --git a/configure.ac b/configure.ac
index 8938381..7433177 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1008,7 +1008,6 @@ AC_ARG_ENABLE([wayland],
 
 if test ${want_wayland} = yes; then
EFL_PKG_CHECK_STRICT([wayland-client])
-   AC_PATH_PROG([wayland_scanner], [wayland-scanner], 
[AC_MSG_ERROR(wayland-scanner is needed to compile ecore_wayland protocol)])
 fi
 
 # Fb
diff --git a/src/Makefile_Ecore_Wayland.am b/src/Makefile_Ecore_Wayland.am
index b2c66a1..f11c3a5 100644
--- a/src/Makefile_Ecore_Wayland.am
+++ b/src/Makefile_Ecore_Wayland.am
@@ -15,29 +15,13 @@ lib/ecore_wayland/ecore_wl_input.c \
 lib/ecore_wayland/ecore_wl_output.c \
 lib/ecore_wayland/ecore_wl_window.c \
 lib/ecore_wayland/ecore_wl_subsurf.c \
-lib/ecore_wayland/ecore_wl_private.h
-
-lib_ecore_wayland_libecore_wayland_la_BUILT_SOURCES = \
+lib/ecore_wayland/ecore_wl_private.h \
 lib/ecore_wayland/subsurface-protocol.c \
 lib/ecore_wayland/subsurface-client-protocol.h
 
-CLEANFILES += $(lib_ecore_wayland_libecore_wayland_la_BUILT_SOURCES)
-
-lib_ecore_wayland_libecore_wayland_la_SOURCES += 
$(lib_ecore_wayland_libecore_wayland_la_BUILT_SOURCES)
-
-BUILT_SOURCES += $(lib_ecore_wayland_libecore_wayland_la_BUILT_SOURCES)
-
 lib_ecore_wayland_libecore_wayland_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl 
@ECORE_WAYLAND_CFLAGS@
 lib_ecore_wayland_libecore_wayland_la_LIBADD = @ECORE_WAYLAND_LIBS@
 lib_ecore_wayland_libecore_wayland_la_DEPENDENCIES = 
@ECORE_WAYLAND_INTERNAL_LIBS@
 lib_ecore_wayland_libecore_wayland_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@
 
-wayland_protocoldir = $(top_srcdir)/data/ecore/ecore_wayland/protocol
-
-lib/ecore_wayland/subsurface-protocol.c: $(wayland_protocoldir)/subsurface.xml
-   $(AM_V_GEN)$(wayland_scanner) code  $  $@
-
-lib/ecore_wayland/subsurface-client-protocol.h: 
$(wayland_protocoldir)/subsurface.xml
-   $(AM_V_GEN)$(wayland_scanner) client-header  $  $@
-
 endif
diff --git a/src/lib/ecore_wayland/.gitignore b/src/lib/ecore_wayland/.gitignore
deleted file mode 100644
index ce73bef..000
--- a/src/lib/ecore_wayland/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-subsurface-protocol.c
-subsurface-client-protocol.h
diff --git a/src/lib/ecore_wayland/subsurface-client-protocol.h 
b/src/lib/ecore_wayland/subsurface-client-protocol.h
new file mode 100644
index 000..5161589
--- /dev/null
+++ b/src/lib/ecore_wayland/subsurface-client-protocol.h
@@ -0,0 +1,167 @@
+/* 
+ * Copyright © 2012-2013 Collabora, Ltd.
+ * 
+ * Permission to use, copy, modify, distribute, and sell this
+ * software and its documentation for any purpose is hereby granted
+ * without fee, provided that the above copyright notice appear in
+ * all copies and that both that copyright notice and this permission
+ * notice appear in supporting documentation, and that the name of
+ * the copyright holders not be used in advertising or publicity
+ * pertaining to distribution of the software without specific,
+ * written prior permission.  The copyright holders make no
+ * representations about the suitability of this software for any
+ * purpose.  It is provided as is without express or implied
+ * warranty.
+ * 
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
+ * THIS SOFTWARE.
+ */
+
+#ifndef SUBSURFACE_CLIENT_PROTOCOL_H
+#define SUBSURFACE_CLIENT_PROTOCOL_H
+
+#ifdef  __cplusplus
+extern C {
+#endif
+
+#include stdint.h
+#include stddef.h
+#include wayland-client.h
+
+struct wl_client;
+struct wl_resource;
+
+struct wl_subcompositor;
+struct wl_subsurface;
+
+extern const struct wl_interface wl_subcompositor_interface;
+extern const struct wl_interface wl_subsurface_interface;
+
+#ifndef WL_SUBCOMPOSITOR_ERROR_ENUM
+#define

[EGIT] [core/efl] master 06/06: Merge branch 'subsurfaces'

2013-10-10 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit f7a43e9dbc276881f24ece012fe5c4ce4f9927db
Merge: 2c1c6b9 f2d1a21
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Thu Oct 10 15:21:06 2013 -0300

Merge branch 'subsurfaces'

 configure.ac |   1 +
 data/ecore/ecore_wayland/protocol/subsurface.xml | 244 +++
 src/Makefile_Ecore_Wayland.am|  20 ++
 src/lib/ecore_wayland/.gitignore |   2 +
 src/lib/ecore_wayland/Ecore_Wayland.h|  92 +
 src/lib/ecore_wayland/ecore_wl.c |   8 +
 src/lib/ecore_wayland/ecore_wl_private.h |   2 +
 src/lib/ecore_wayland/ecore_wl_subsurf.c | 191 ++
 src/lib/ecore_wayland/ecore_wl_window.c  |   2 +
 9 files changed, 562 insertions(+)

-- 




[EGIT] [core/efl] master 05/06: ecore/wayland: Add subsurface handling APIs.

2013-10-10 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit f2d1a211472e2779969ead8d6331fd3d13230946
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Thu Sep 5 18:10:50 2013 -0300

ecore/wayland: Add subsurface handling APIs.
---
 src/Makefile_Ecore_Wayland.am|   1 +
 src/lib/ecore_wayland/Ecore_Wayland.h|  92 ++-
 src/lib/ecore_wayland/ecore_wl.c |   3 +-
 src/lib/ecore_wayland/ecore_wl_private.h |   2 +
 src/lib/ecore_wayland/ecore_wl_subsurf.c | 191 +++
 src/lib/ecore_wayland/ecore_wl_window.c  |   2 +
 6 files changed, 289 insertions(+), 2 deletions(-)

diff --git a/src/Makefile_Ecore_Wayland.am b/src/Makefile_Ecore_Wayland.am
index 607d26e..b2c66a1 100644
--- a/src/Makefile_Ecore_Wayland.am
+++ b/src/Makefile_Ecore_Wayland.am
@@ -14,6 +14,7 @@ lib/ecore_wayland/ecore_wl_dnd.c \
 lib/ecore_wayland/ecore_wl_input.c \
 lib/ecore_wayland/ecore_wl_output.c \
 lib/ecore_wayland/ecore_wl_window.c \
+lib/ecore_wayland/ecore_wl_subsurf.c \
 lib/ecore_wayland/ecore_wl_private.h
 
 lib_ecore_wayland_libecore_wayland_la_BUILT_SOURCES = \
diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h 
b/src/lib/ecore_wayland/Ecore_Wayland.h
index c9b3e1f..30545b7 100644
--- a/src/lib/ecore_wayland/Ecore_Wayland.h
+++ b/src/lib/ecore_wayland/Ecore_Wayland.h
@@ -12,7 +12,6 @@
 # include wayland-client.h
 # include wayland-cursor.h
 # include xkbcommon/xkbcommon.h
-# include subsurface-client-protocol.h
 
 # ifdef EAPI
 #  undef EAPI
@@ -36,6 +35,7 @@ typedef struct _Ecore_Wl_Display Ecore_Wl_Display;
 typedef struct _Ecore_Wl_Output Ecore_Wl_Output;
 typedef struct _Ecore_Wl_Input Ecore_Wl_Input;
 typedef struct _Ecore_Wl_Global Ecore_Wl_Global; /** @since 1.7.6 */
+typedef struct _Ecore_Wl_Subsurf Ecore_Wl_Subsurf; /** @since 1.8 */
 
 # ifndef _ECORE_WAYLAND_WINDOW_PREDEF
 typedef struct _Ecore_Wl_Window Ecore_Wl_Window;
@@ -253,6 +253,8 @@ struct _Ecore_Wl_Window
/* FIXME: Ideally we should record the cursor name for this window 
 * so we can compare and avoid unnecessary cursor set calls to wayland */
 
+   Ecore_Wl_Subsurf *subsurfs;
+
void *data;
 };
 
@@ -383,6 +385,7 @@ struct _Ecore_Wl_Event_Interfaces_Bound
  * @li @ref Ecore_Wl_Window_Group
  * @li @ref Ecore_Wl_Input_Group
  * @li @ref Ecore_Wl_Dnd_Group
+ * @li @ref Ecore_Wl_Subsurf
  */
 
 EAPI extern int ECORE_WL_EVENT_MOUSE_IN;
@@ -866,6 +869,93 @@ EAPI struct wl_array 
*ecore_wl_dnd_drag_types_get(Ecore_Wl_Input *input);
 
 EAPI void ecore_wl_server_mode_set(Eina_Bool on);
 
+/**
+ * @defgroup Ecore_Wl_Subsurf Functions to manipulate subsurfaces.
+ * @ingroup Ecore_Wl_Group
+ *
+ * Functions to manipulate wayland subsurfaces, using Ecore_Wl_Subsurf.
+ *
+ * This API is intended to expose Wayland subsurface functionality, although it
+ * should not be necessary for most applications to use it, as soon as we have
+ * means to make Evas automatically switch Evas images to use subsurfaces.
+ *
+ * It can/should be used, for instance, when subsurfaces are needed to be not
+ * in sync with the main window surface.
+ */
+
+/**
+ * Create and return a new subsurface.
+ *
+ * Create a new surface (and subsurface interface), with the parent surface
+ * being the one associated with the given @param win.
+ *
+ * The @param win must be visible, otherwise there will be no surface created
+ * for it yet.
+ *
+ * @ingroup Ecore_Wl_Subsurf
+ * @since 1.8
+ */
+EAPI Ecore_Wl_Subsurf *ecore_wl_subsurf_create(Ecore_Wl_Window *win);
+
+/**
+ * Destroy the given subsurface, as well as the surface associated with it.
+ *
+ * @ingroup Ecore_Wl_Subsurf
+ * @since 1.8
+ */
+EAPI void ecore_wl_subsurf_del(Ecore_Wl_Subsurf *ess);
+
+/**
+ * Return the wl_surface associated with this subsurface.
+ *
+ * @ingroup Ecore_Wl_Subsurf
+ * @since 1.8
+ */
+EAPI struct wl_surface *ecore_wl_subsurf_surface_get(Ecore_Wl_Subsurf *ess);
+
+/**
+ * Set the position of this subsurface, relative to its parent surface.
+ *
+ * @ingroup Ecore_Wl_Subsurf
+ * @since 1.8
+ */
+EAPI void ecore_wl_subsurf_position_set(Ecore_Wl_Subsurf *ess, int x, int y);
+
+/**
+ * Get the position of this subsurface, relative to its parent surface.
+ *
+ * @ingroup Ecore_Wl_Subsurf
+ * @since 1.8
+ */
+EAPI void ecore_wl_subsurf_position_get(Ecore_Wl_Subsurf *ess, int *x, int *y);
+
+/**
+ * @ingroup Ecore_Wl_Subsurf
+ * @since 1.8
+ */
+EAPI void ecore_wl_subsurf_place_above(Ecore_Wl_Subsurf *ess, struct 
wl_surface *surface);
+
+/**
+ * @ingroup Ecore_Wl_Subsurf
+ * @since 1.8
+ */
+EAPI void ecore_wl_subsurf_place_below(Ecore_Wl_Subsurf *ess, struct 
wl_surface *surface);
+
+/**
+ * @ingroup Ecore_Wl_Subsurf
+ * @since 1.8
+ */
+EAPI void ecore_wl_subsurf_sync_set(Ecore_Wl_Subsurf *ess, Eina_Bool val);
+
+/**
+ * Set an opaque region for the given subsurface.
+ *
+ * Use a 0x0 region size to unset the opaque region.
+ *
+ * @ingroup

[EGIT] [core/efl] master 04/06: ecore/wayland: Add and initialize subcompositor inside Ecore_Wayland.

2013-10-10 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit 1cef77bfd784772539a395363b3aecbd3c2655d5
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Sat Aug 31 15:20:22 2013 -0300

ecore/wayland: Add and initialize subcompositor inside Ecore_Wayland.
---
 src/lib/ecore_wayland/Ecore_Wayland.h | 2 ++
 src/lib/ecore_wayland/ecore_wl.c  | 7 +++
 2 files changed, 9 insertions(+)

diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h 
b/src/lib/ecore_wayland/Ecore_Wayland.h
index 05ceb00..c9b3e1f 100644
--- a/src/lib/ecore_wayland/Ecore_Wayland.h
+++ b/src/lib/ecore_wayland/Ecore_Wayland.h
@@ -12,6 +12,7 @@
 # include wayland-client.h
 # include wayland-cursor.h
 # include xkbcommon/xkbcommon.h
+# include subsurface-client-protocol.h
 
 # ifdef EAPI
 #  undef EAPI
@@ -101,6 +102,7 @@ struct _Ecore_Wl_Display
 struct wl_display *display;
 struct wl_registry *registry;
 struct wl_compositor *compositor;
+struct wl_subcompositor *subcompositor;
 struct wl_shell *shell;
 struct wl_shell *desktop_shell;
 struct wl_shm *shm;
diff --git a/src/lib/ecore_wayland/ecore_wl.c b/src/lib/ecore_wayland/ecore_wl.c
index acce728..acc5988 100644
--- a/src/lib/ecore_wayland/ecore_wl.c
+++ b/src/lib/ecore_wayland/ecore_wl.c
@@ -397,6 +397,8 @@ _ecore_wl_shutdown(Eina_Bool close)
   
wl_data_device_manager_destroy(_ecore_wl_disp-wl.data_device_manager);
 if (_ecore_wl_disp-wl.compositor)
   wl_compositor_destroy(_ecore_wl_disp-wl.compositor);
+if (_ecore_wl_disp-wl.subcompositor)
+  wl_compositor_destroy(_ecore_wl_disp-wl.subcompositor);
 if (_ecore_wl_disp-wl.display)
   {
  wl_registry_destroy(_ecore_wl_disp-wl.registry);
@@ -515,6 +517,11 @@ _ecore_wl_cb_handle_global(void *data, struct wl_registry 
*registry, unsigned in
 ewd-wl.compositor =
   wl_registry_bind(registry, id, wl_compositor_interface, 3);
  }
+   else if (!strcmp(interface, wl_subcompositor))
+ {
+ewd-wl.subcompositor =
+   wl_registry_bind(registry, id, wl_subcompositor_interface, 1);
+ }
else if (!strcmp(interface, wl_output))
  _ecore_wl_output_add(ewd, id);
else if (!strcmp(interface, wl_seat))

-- 




[EGIT] [core/efl] master 01/06: adding wayland subsurfaces protocol file.

2013-10-10 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit f26f2da5ea55ccdb028065f1ff803cbac08c8863
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Wed Aug 7 18:05:55 2013 -0300

adding wayland subsurfaces protocol file.
---
 configure.ac |   1 +
 data/ecore/ecore_wayland/protocol/subsurface.xml | 244 +++
 src/Makefile_Ecore_Wayland.am|  17 ++
 src/lib/ecore_wayland/.gitignore |   2 +
 4 files changed, 264 insertions(+)

diff --git a/configure.ac b/configure.ac
index d5a359e..44b14c1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1007,6 +1007,7 @@ AC_ARG_ENABLE([wayland],
 
 if test ${want_wayland} = yes; then
EFL_PKG_CHECK_STRICT([wayland-client])
+   WAYLAND_SCANNER_RULES(['$(top_srcdir)/data/ecore/ecore_wayland/protocol'])
 fi
 
 # Fb
diff --git a/data/ecore/ecore_wayland/protocol/subsurface.xml 
b/data/ecore/ecore_wayland/protocol/subsurface.xml
new file mode 100644
index 000..9e4a658
--- /dev/null
+++ b/data/ecore/ecore_wayland/protocol/subsurface.xml
@@ -0,0 +1,244 @@
+?xml version=1.0 encoding=UTF-8?
+protocol name=subsurface
+
+  copyright
+Copyright © 2012-2013 Collabora, Ltd.
+
+Permission to use, copy, modify, distribute, and sell this
+software and its documentation for any purpose is hereby granted
+without fee, provided that the above copyright notice appear in
+all copies and that both that copyright notice and this permission
+notice appear in supporting documentation, and that the name of
+the copyright holders not be used in advertising or publicity
+pertaining to distribution of the software without specific,
+written prior permission.  The copyright holders make no
+representations about the suitability of this software for any
+purpose.  It is provided as is without express or implied
+warranty.
+
+THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
+THIS SOFTWARE.
+  /copyright
+
+  interface name=wl_subcompositor version=1
+description summary=sub-surface compositing
+  The global interface exposing sub-surface compositing capabilities.
+  A wl_surface, that has sub-surfaces associated, is called the
+  parent surface. Sub-surfaces can be arbitrarily nested and create
+  a tree of sub-surfaces.
+
+  The root surface in a tree of sub-surfaces is the main
+  surface. The main surface cannot be a sub-surface, because
+  sub-surfaces must always have a parent.
+
+  A main surface with its sub-surfaces forms a (compound) window.
+  For window management purposes, this set of wl_surface objects is
+  to be considered as a single window, and it should also behave as
+  such.
+
+  The aim of sub-surfaces is to offload some of the compositing work
+  within a window from clients to the compositor. A prime example is
+  a video player with decorations and video in separate wl_surface
+  objects. This should allow the compositor to pass YUV video buffer
+  processing to dedicated overlay hardware when possible.
+/description
+
+request name=destroy type=destructor
+  description summary=unbind from the subcompositor interface
+   Informs the server that the client will not be using this
+   protocol object anymore. This does not affect any other
+   objects, wl_subsurface objects included.
+  /description
+/request
+
+enum name=error
+  entry name=bad_surface value=0
+ summary=the to-be sub-surface is invalid/
+/enum
+
+request name=get_subsurface
+  description summary=give a surface the role sub-surface
+   Create a sub-surface interface for the given surface, and
+   associate it with the given parent surface. This turns a
+   plain wl_surface into a sub-surface.
+
+   The to-be sub-surface must not already have a dedicated
+   purpose, like any shell surface type, cursor image, drag icon,
+   or sub-surface. Otherwise a protocol error is raised.
+  /description
+
+  arg name=id type=new_id interface=wl_subsurface
+   summary=the new subsurface object id/
+  arg name=surface type=object interface=wl_surface
+   summary=the surface to be turned into a sub-surface/
+  arg name=parent type=object interface=wl_surface
+   summary=the parent surface/
+/request
+  /interface
+
+  interface name=wl_subsurface version=1

Re: [E-devel] [EGIT] [core/efl] master 04/06: ecore/wayland: Add and initialize subcompositor inside Ecore_Wayland.

2013-10-10 Thread Rafael Antognolli
On Thu, Oct 10, 2013 at 3:32 PM, Rafael Antognolli
rafael.antogno...@intel.com wrote:
 antognolli pushed a commit to branch master.

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

 commit 1cef77bfd784772539a395363b3aecbd3c2655d5
 Author: Rafael Antognolli rafael.antogno...@intel.com
 Date:   Sat Aug 31 15:20:22 2013 -0300

 ecore/wayland: Add and initialize subcompositor inside Ecore_Wayland.
 ---
  src/lib/ecore_wayland/Ecore_Wayland.h | 2 ++
  src/lib/ecore_wayland/ecore_wl.c  | 7 +++
  2 files changed, 9 insertions(+)

 diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h 
 b/src/lib/ecore_wayland/Ecore_Wayland.h
 index 05ceb00..c9b3e1f 100644
 --- a/src/lib/ecore_wayland/Ecore_Wayland.h
 +++ b/src/lib/ecore_wayland/Ecore_Wayland.h
 @@ -12,6 +12,7 @@
  # include wayland-client.h
  # include wayland-cursor.h
  # include xkbcommon/xkbcommon.h
 +# include subsurface-client-protocol.h

OK, just noticed that this will probably break again, since this
header is not installed. Not sure why it didn't yet, when building
Elementary.

So, Devilhorns, what about putting all these internal pointers and
structs hidden inside ecore_wl_private.h, or something like that? I
don't think they should be exposed at all...

  # ifdef EAPI
  #  undef EAPI
 @@ -101,6 +102,7 @@ struct _Ecore_Wl_Display
  struct wl_display *display;
  struct wl_registry *registry;
  struct wl_compositor *compositor;
 +struct wl_subcompositor *subcompositor;
  struct wl_shell *shell;
  struct wl_shell *desktop_shell;
  struct wl_shm *shm;
 diff --git a/src/lib/ecore_wayland/ecore_wl.c 
 b/src/lib/ecore_wayland/ecore_wl.c
 index acce728..acc5988 100644
 --- a/src/lib/ecore_wayland/ecore_wl.c
 +++ b/src/lib/ecore_wayland/ecore_wl.c
 @@ -397,6 +397,8 @@ _ecore_wl_shutdown(Eina_Bool close)

 wl_data_device_manager_destroy(_ecore_wl_disp-wl.data_device_manager);
  if (_ecore_wl_disp-wl.compositor)
wl_compositor_destroy(_ecore_wl_disp-wl.compositor);
 +if (_ecore_wl_disp-wl.subcompositor)
 +  wl_compositor_destroy(_ecore_wl_disp-wl.subcompositor);
  if (_ecore_wl_disp-wl.display)
{
   wl_registry_destroy(_ecore_wl_disp-wl.registry);
 @@ -515,6 +517,11 @@ _ecore_wl_cb_handle_global(void *data, struct 
 wl_registry *registry, unsigned in
  ewd-wl.compositor =
wl_registry_bind(registry, id, wl_compositor_interface, 3);
   }
 +   else if (!strcmp(interface, wl_subcompositor))
 + {
 +ewd-wl.subcompositor =
 +   wl_registry_bind(registry, id, wl_subcompositor_interface, 1);
 + }
 else if (!strcmp(interface, wl_output))
   _ecore_wl_output_add(ewd, id);
 else if (!strcmp(interface, wl_seat))

 --





-- 
Rafael Antognolli

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134071iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Wayland and subsurfaces

2013-10-06 Thread Rafael Antognolli
On Sun, Oct 6, 2013 at 2:11 AM, Cedric BAIL cedric.b...@free.fr wrote:
 On Sat, Oct 5, 2013 at 12:05 AM, Rafael Antognolli antogno...@gmail.com 
 wrote:
 Example usage of what I have just committed (fixes and improvements
 for Evas_Video_Surface, and added Ecore_Wl_Subsurf) here:

 https://github.com/antognolli/buffer_object

 This is a helper, or a skeleton, for creating and setting up the image
 object that would be used with the buffers. It can be made more
 generic if necessary, thus allowing to use both Wayland buffers or X
 stuff. The code itself is inside buffer_object.c. Sample usage is
 inside main.c.

 That's exactly the direction where I wanted to get that code. Really
 nice patch, thanks. The next improvement I was looking for was to use
 somehow the pixels buffer directly when using OpenGL (zero copy
 scheme), by looking at your code I do think than in compositing mode
 we are still doing a copy. Am i right ?

Cool, thanks.

And well, I am not sure, but I think there was an optimization that
would allow to use the pixels directly when doing an image_data_set,
which is basically what I am doing. By compositing mode you mean
with or without the subsurface?

 Anyway, this can be added somewhere in EFL, I just don't know exactly
 where would be the best place... ideas?

 That is indeed a good question. I guess the first place to use this is
 somewhere in Emotion's gstreamer backend. I would even prefer to see
 that feature working with VLC backend, but I don't think there is a
 way to make vlc output the pixels in a wayland surface. Also the
 gstreamer backend is easier to integrate as it doesn't require to
 communicate with another process to get the pixels (Not really a win
 in my opinion, but in this case will make life easier).

 Also I have been starting to think that maybe we should have a simpler
 layer than Emotion that does all this buffer management and his used
 by Emotion. That's just a though right now.


-- 
Rafael Antognolli

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Wayland and subsurfaces

2013-10-06 Thread Rafael Antognolli
On Sun, Oct 6, 2013 at 9:04 AM, Chris Michael devilho...@comcast.net wrote:
 On 10/06/13 06:11, Cedric BAIL wrote:
 On Sat, Oct 5, 2013 at 12:05 AM, Rafael Antognolli antogno...@gmail.com 
 wrote:
 Example usage of what I have just committed (fixes and improvements
 for Evas_Video_Surface, and added Ecore_Wl_Subsurf) here:

 https://github.com/antognolli/buffer_object

 This is a helper, or a skeleton, for creating and setting up the image
 object that would be used with the buffers. It can be made more
 generic if necessary, thus allowing to use both Wayland buffers or X
 stuff. The code itself is inside buffer_object.c. Sample usage is
 inside main.c.
 That's exactly the direction where I wanted to get that code. Really
 nice patch, thanks. The next improvement I was looking for was to use
 somehow the pixels buffer directly when using OpenGL (zero copy
 scheme), by looking at your code I do think than in compositing mode
 we are still doing a copy. Am i right ?

 Anyway, this can be added somewhere in EFL, I just don't know exactly
 where would be the best place... ideas?
 That is indeed a good question. I guess the first place to use this is
 somewhere in Emotion's gstreamer backend. I would even prefer to see
 that feature working with VLC backend, but I don't think there is a
 way to make vlc output the pixels in a wayland surface.
 Not currently :( And I would not count on one anytime soon :(

 https://trac.videolan.org/vlc/ticket/7936

 Although, if we had the pixels (I don't know the VLC code too well) then
 we should be able to slap those into a surface...

Well, in the generic backend, we create the pixel buffer where VLC is
going to decode the video, right? So it's basically the same, we could
create a wl_buffer and let VLC write on it, and then we display that
as a subsurface if possible.

I was also thinking that if we add YUV as a buffer format for
wl_buffer (it's missing that so far), then VLC can write the pixels in
YUV format, and we let the composition of the subsurface + main
surface to the compositor, and that would speed up things, wouldn't
it?

   Also the
 gstreamer backend is easier to integrate as it doesn't require to
 communicate with another process to get the pixels (Not really a win
 in my opinion, but in this case will make life easier).

wl_buffer can be (maybe *must* be) a shm buffer, so that should be
easy to handle even in vlc, I think.

 Also I have been starting to think that maybe we should have a simpler
 layer than Emotion that does all this buffer management and his used
 by Emotion. That's just a though right now.


 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

-- 
Rafael Antognolli

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 04/06: evas/image: Take framespace into account when moving video surface.

2013-10-04 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit 22f9a6e8f004ab3e4aaf214229e4556482040f29
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Mon Sep 23 17:44:08 2013 -0300

evas/image: Take framespace into account when moving video surface.
---
 src/lib/evas/canvas/evas_object_image.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/lib/evas/canvas/evas_object_image.c 
b/src/lib/evas/canvas/evas_object_image.c
index 509b109..8020466 100644
--- a/src/lib/evas/canvas/evas_object_image.c
+++ b/src/lib/evas/canvas/evas_object_image.c
@@ -5213,11 +5213,14 @@ _evas_object_image_video_overlay_show(Evas_Object 
*eo_obj)
 {
Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJ_CLASS);
Evas_Object_Image *o = eo_data_scope_get(eo_obj, MY_CLASS);
+   Evas_Public_Data *e = obj-layer-evas;
 
if (obj-cur-cache.clip.x != obj-prev-cache.clip.x ||
obj-cur-cache.clip.y != obj-prev-cache.clip.y ||
o-created || !o-video_visible)
- o-pixels-video.move(o-pixels-video.data, eo_obj, o-pixels-video, 
obj-cur-cache.clip.x, obj-cur-cache.clip.y);
+ o-pixels-video.move(o-pixels-video.data, eo_obj, o-pixels-video,
+   obj-cur-cache.clip.x + e-framespace.x,
+   obj-cur-cache.clip.y + e-framespace.y);
if (obj-cur-cache.clip.w != obj-prev-cache.clip.w ||
obj-cur-cache.clip.h != obj-prev-cache.clip.h ||
o-created || !o-video_visible)

-- 




[EGIT] [core/efl] master 05/06: evas/image: Delay some video overlay operations.

2013-10-04 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit d1c6266c45b6bfbfbba4a3b61ee6e9e5cec99cc9
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Tue Oct 1 15:35:09 2013 -0300

evas/image: Delay some video overlay operations.

If we are running on async render, some operations must be delayed, so
they will happen at the same time that the canvas rendering result gets
updated on the window/surface.
---
 src/lib/evas/canvas/evas_object_image.c | 53 -
 src/lib/evas/canvas/evas_render.c   | 10 +++
 src/lib/evas/include/evas_private.h |  1 +
 3 files changed, 57 insertions(+), 7 deletions(-)

diff --git a/src/lib/evas/canvas/evas_object_image.c 
b/src/lib/evas/canvas/evas_object_image.c
index 8020466..af76f53 100644
--- a/src/lib/evas/canvas/evas_object_image.c
+++ b/src/lib/evas/canvas/evas_object_image.c
@@ -126,6 +126,13 @@ struct _Evas_Object_Image
Eina_Bool proxy_src_clip : 1;
Eina_Bool written : 1;
Eina_Bool direct_render : 1;
+   struct
+   {
+  Eina_Bool  video_move : 1;
+  Eina_Bool  video_resize : 1;
+  Eina_Bool  video_show : 1;
+  Eina_Bool  video_hide : 1;
+   } delayed;
 };
 
 /* private methods for image objects */
@@ -5213,21 +5220,21 @@ _evas_object_image_video_overlay_show(Evas_Object 
*eo_obj)
 {
Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJ_CLASS);
Evas_Object_Image *o = eo_data_scope_get(eo_obj, MY_CLASS);
-   Evas_Public_Data *e = obj-layer-evas;
 
if (obj-cur-cache.clip.x != obj-prev-cache.clip.x ||
obj-cur-cache.clip.y != obj-prev-cache.clip.y ||
o-created || !o-video_visible)
- o-pixels-video.move(o-pixels-video.data, eo_obj, o-pixels-video,
-   obj-cur-cache.clip.x + e-framespace.x,
-   obj-cur-cache.clip.y + e-framespace.y);
+ o-delayed.video_move = EINA_TRUE;
+
if (obj-cur-cache.clip.w != obj-prev-cache.clip.w ||
obj-cur-cache.clip.h != obj-prev-cache.clip.h ||
o-created || !o-video_visible)
- o-pixels-video.resize(o-pixels-video.data, eo_obj, o-pixels-video, 
obj-cur-cache.clip.w, obj-cur-cache.clip.h);
+ o-delayed.video_resize = EINA_TRUE;
+
if (!o-video_visible || o-created)
  {
-o-pixels-video.show(o-pixels-video.data, eo_obj, 
o-pixels-video);
+o-delayed.video_show = EINA_TRUE;
+o-delayed.video_hide = EINA_FALSE;
  }
else
  {
@@ -5254,13 +5261,45 @@ _evas_object_image_video_overlay_hide(Evas_Object 
*eo_obj)
Evas_Object_Image *o = eo_data_scope_get(eo_obj, MY_CLASS);
 
if (o-video_visible || o-created)
- o-pixels-video.hide(o-pixels-video.data, eo_obj, o-pixels-video);
+ {
+o-delayed.video_hide = EINA_TRUE;
+o-delayed.video_show = EINA_FALSE;
+ }
if (evas_object_is_visible(eo_obj, obj))
  o-pixels-video.update_pixels(o-pixels-video.data, eo_obj, 
o-pixels-video);
o-video_visible = EINA_FALSE;
o-created = EINA_FALSE;
 }
 
+void
+_evas_object_image_video_overlay_do(Evas_Object *eo_obj)
+{
+   Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJ_CLASS);
+   Evas_Object_Image *o = eo_data_scope_get(eo_obj, MY_CLASS);
+   Evas_Public_Data *e = obj-layer-evas;
+
+   if (o-delayed.video_move)
+ o-pixels-video.move(o-pixels-video.data, eo_obj, o-pixels-video,
+   obj-cur-cache.clip.x + e-framespace.x,
+   obj-cur-cache.clip.y + e-framespace.y);
+
+   if (o-delayed.video_resize)
+ o-pixels-video.resize(o-pixels-video.data, eo_obj,
+ o-pixels-video,
+ obj-cur-cache.clip.w,
+ obj-cur-cache.clip.h);
+
+   if (o-delayed.video_show)
+ o-pixels-video.show(o-pixels-video.data, eo_obj, o-pixels-video);
+   else if (o-delayed.video_hide)
+ o-pixels-video.hide(o-pixels-video.data, eo_obj, o-pixels-video);
+
+   o-delayed.video_move = EINA_FALSE;
+   o-delayed.video_resize = EINA_FALSE;
+   o-delayed.video_show = EINA_FALSE;
+   o-delayed.video_hide = EINA_FALSE;
+}
+
 static void
 _class_constructor(Eo_Class *klass)
 {
diff --git a/src/lib/evas/canvas/evas_render.c 
b/src/lib/evas/canvas/evas_render.c
index 670c146..49fbefe 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -1896,6 +1896,10 @@ evas_render_updates_internal(Evas *eo_e,
   }
 else if (haveup)
   {
+ EINA_LIST_FOREACH(e-video_objects, ll, eo_obj)
+   {
+  _evas_object_image_video_overlay_do(eo_obj);
+   }
  evas_event_callback_call(eo_e, EVAS_CALLBACK_RENDER_FLUSH_PRE, 
NULL);
  e-engine.func-output_flush(e-engine.data.output

[EGIT] [core/efl] master 02/06: ecore/wayland: Add and initialize subcompositor inside Ecore_Wayland.

2013-10-04 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit 7994b62c6be0368a2b4dcd038de5f25556cb6842
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Sat Aug 31 15:20:22 2013 -0300

ecore/wayland: Add and initialize subcompositor inside Ecore_Wayland.
---
 src/lib/ecore_wayland/Ecore_Wayland.h | 2 ++
 src/lib/ecore_wayland/ecore_wl.c  | 7 +++
 2 files changed, 9 insertions(+)

diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h 
b/src/lib/ecore_wayland/Ecore_Wayland.h
index 05ceb00..c9b3e1f 100644
--- a/src/lib/ecore_wayland/Ecore_Wayland.h
+++ b/src/lib/ecore_wayland/Ecore_Wayland.h
@@ -12,6 +12,7 @@
 # include wayland-client.h
 # include wayland-cursor.h
 # include xkbcommon/xkbcommon.h
+# include subsurface-client-protocol.h
 
 # ifdef EAPI
 #  undef EAPI
@@ -101,6 +102,7 @@ struct _Ecore_Wl_Display
 struct wl_display *display;
 struct wl_registry *registry;
 struct wl_compositor *compositor;
+struct wl_subcompositor *subcompositor;
 struct wl_shell *shell;
 struct wl_shell *desktop_shell;
 struct wl_shm *shm;
diff --git a/src/lib/ecore_wayland/ecore_wl.c b/src/lib/ecore_wayland/ecore_wl.c
index acce728..acc5988 100644
--- a/src/lib/ecore_wayland/ecore_wl.c
+++ b/src/lib/ecore_wayland/ecore_wl.c
@@ -397,6 +397,8 @@ _ecore_wl_shutdown(Eina_Bool close)
   
wl_data_device_manager_destroy(_ecore_wl_disp-wl.data_device_manager);
 if (_ecore_wl_disp-wl.compositor)
   wl_compositor_destroy(_ecore_wl_disp-wl.compositor);
+if (_ecore_wl_disp-wl.subcompositor)
+  wl_compositor_destroy(_ecore_wl_disp-wl.subcompositor);
 if (_ecore_wl_disp-wl.display)
   {
  wl_registry_destroy(_ecore_wl_disp-wl.registry);
@@ -515,6 +517,11 @@ _ecore_wl_cb_handle_global(void *data, struct wl_registry 
*registry, unsigned in
 ewd-wl.compositor =
   wl_registry_bind(registry, id, wl_compositor_interface, 3);
  }
+   else if (!strcmp(interface, wl_subcompositor))
+ {
+ewd-wl.subcompositor =
+   wl_registry_bind(registry, id, wl_subcompositor_interface, 1);
+ }
else if (!strcmp(interface, wl_output))
  _ecore_wl_output_add(ewd, id);
else if (!strcmp(interface, wl_seat))

-- 




[EGIT] [core/efl] master 01/06: adding wayland subsurfaces protocol file.

2013-10-04 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit ad27efcb397f3dc8da670180784991f876841e01
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Wed Aug 7 18:05:55 2013 -0300

adding wayland subsurfaces protocol file.
---
 configure.ac |   1 +
 data/ecore/ecore_wayland/protocol/subsurface.xml | 244 +++
 src/Makefile_Ecore_Wayland.am|  17 ++
 src/lib/ecore_wayland/.gitignore |   2 +
 4 files changed, 264 insertions(+)

diff --git a/configure.ac b/configure.ac
index 77972b8..21a4d94 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1007,6 +1007,7 @@ AC_ARG_ENABLE([wayland],
 
 if test ${want_wayland} = yes; then
EFL_PKG_CHECK_STRICT([wayland-client])
+   WAYLAND_SCANNER_RULES(['$(top_srcdir)/data/ecore/ecore_wayland/protocol'])
 fi
 
 # Fb
diff --git a/data/ecore/ecore_wayland/protocol/subsurface.xml 
b/data/ecore/ecore_wayland/protocol/subsurface.xml
new file mode 100644
index 000..9e4a658
--- /dev/null
+++ b/data/ecore/ecore_wayland/protocol/subsurface.xml
@@ -0,0 +1,244 @@
+?xml version=1.0 encoding=UTF-8?
+protocol name=subsurface
+
+  copyright
+Copyright © 2012-2013 Collabora, Ltd.
+
+Permission to use, copy, modify, distribute, and sell this
+software and its documentation for any purpose is hereby granted
+without fee, provided that the above copyright notice appear in
+all copies and that both that copyright notice and this permission
+notice appear in supporting documentation, and that the name of
+the copyright holders not be used in advertising or publicity
+pertaining to distribution of the software without specific,
+written prior permission.  The copyright holders make no
+representations about the suitability of this software for any
+purpose.  It is provided as is without express or implied
+warranty.
+
+THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
+THIS SOFTWARE.
+  /copyright
+
+  interface name=wl_subcompositor version=1
+description summary=sub-surface compositing
+  The global interface exposing sub-surface compositing capabilities.
+  A wl_surface, that has sub-surfaces associated, is called the
+  parent surface. Sub-surfaces can be arbitrarily nested and create
+  a tree of sub-surfaces.
+
+  The root surface in a tree of sub-surfaces is the main
+  surface. The main surface cannot be a sub-surface, because
+  sub-surfaces must always have a parent.
+
+  A main surface with its sub-surfaces forms a (compound) window.
+  For window management purposes, this set of wl_surface objects is
+  to be considered as a single window, and it should also behave as
+  such.
+
+  The aim of sub-surfaces is to offload some of the compositing work
+  within a window from clients to the compositor. A prime example is
+  a video player with decorations and video in separate wl_surface
+  objects. This should allow the compositor to pass YUV video buffer
+  processing to dedicated overlay hardware when possible.
+/description
+
+request name=destroy type=destructor
+  description summary=unbind from the subcompositor interface
+   Informs the server that the client will not be using this
+   protocol object anymore. This does not affect any other
+   objects, wl_subsurface objects included.
+  /description
+/request
+
+enum name=error
+  entry name=bad_surface value=0
+ summary=the to-be sub-surface is invalid/
+/enum
+
+request name=get_subsurface
+  description summary=give a surface the role sub-surface
+   Create a sub-surface interface for the given surface, and
+   associate it with the given parent surface. This turns a
+   plain wl_surface into a sub-surface.
+
+   The to-be sub-surface must not already have a dedicated
+   purpose, like any shell surface type, cursor image, drag icon,
+   or sub-surface. Otherwise a protocol error is raised.
+  /description
+
+  arg name=id type=new_id interface=wl_subsurface
+   summary=the new subsurface object id/
+  arg name=surface type=object interface=wl_surface
+   summary=the surface to be turned into a sub-surface/
+  arg name=parent type=object interface=wl_surface
+   summary=the parent surface/
+/request
+  /interface
+
+  interface name=wl_subsurface version=1

[EGIT] [core/efl] master 03/06: ecore/wayland: Add subsurface handling APIs.

2013-10-04 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit 65b960f4a60442edcd66082ccc1828b80a49885c
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Thu Sep 5 18:10:50 2013 -0300

ecore/wayland: Add subsurface handling APIs.
---
 src/Makefile_Ecore_Wayland.am|   1 +
 src/lib/ecore_wayland/Ecore_Wayland.h|  92 ++-
 src/lib/ecore_wayland/ecore_wl.c |   3 +-
 src/lib/ecore_wayland/ecore_wl_private.h |   2 +
 src/lib/ecore_wayland/ecore_wl_subsurf.c | 191 +++
 src/lib/ecore_wayland/ecore_wl_window.c  |   2 +
 6 files changed, 289 insertions(+), 2 deletions(-)

diff --git a/src/Makefile_Ecore_Wayland.am b/src/Makefile_Ecore_Wayland.am
index 0709d6b..2e71df1 100644
--- a/src/Makefile_Ecore_Wayland.am
+++ b/src/Makefile_Ecore_Wayland.am
@@ -14,6 +14,7 @@ lib/ecore_wayland/ecore_wl_dnd.c \
 lib/ecore_wayland/ecore_wl_input.c \
 lib/ecore_wayland/ecore_wl_output.c \
 lib/ecore_wayland/ecore_wl_window.c \
+lib/ecore_wayland/ecore_wl_subsurf.c \
 lib/ecore_wayland/ecore_wl_private.h
 
 lib_ecore_wayland_libecore_wayland_la_BUILT_SOURCES = \
diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h 
b/src/lib/ecore_wayland/Ecore_Wayland.h
index c9b3e1f..30545b7 100644
--- a/src/lib/ecore_wayland/Ecore_Wayland.h
+++ b/src/lib/ecore_wayland/Ecore_Wayland.h
@@ -12,7 +12,6 @@
 # include wayland-client.h
 # include wayland-cursor.h
 # include xkbcommon/xkbcommon.h
-# include subsurface-client-protocol.h
 
 # ifdef EAPI
 #  undef EAPI
@@ -36,6 +35,7 @@ typedef struct _Ecore_Wl_Display Ecore_Wl_Display;
 typedef struct _Ecore_Wl_Output Ecore_Wl_Output;
 typedef struct _Ecore_Wl_Input Ecore_Wl_Input;
 typedef struct _Ecore_Wl_Global Ecore_Wl_Global; /** @since 1.7.6 */
+typedef struct _Ecore_Wl_Subsurf Ecore_Wl_Subsurf; /** @since 1.8 */
 
 # ifndef _ECORE_WAYLAND_WINDOW_PREDEF
 typedef struct _Ecore_Wl_Window Ecore_Wl_Window;
@@ -253,6 +253,8 @@ struct _Ecore_Wl_Window
/* FIXME: Ideally we should record the cursor name for this window 
 * so we can compare and avoid unnecessary cursor set calls to wayland */
 
+   Ecore_Wl_Subsurf *subsurfs;
+
void *data;
 };
 
@@ -383,6 +385,7 @@ struct _Ecore_Wl_Event_Interfaces_Bound
  * @li @ref Ecore_Wl_Window_Group
  * @li @ref Ecore_Wl_Input_Group
  * @li @ref Ecore_Wl_Dnd_Group
+ * @li @ref Ecore_Wl_Subsurf
  */
 
 EAPI extern int ECORE_WL_EVENT_MOUSE_IN;
@@ -866,6 +869,93 @@ EAPI struct wl_array 
*ecore_wl_dnd_drag_types_get(Ecore_Wl_Input *input);
 
 EAPI void ecore_wl_server_mode_set(Eina_Bool on);
 
+/**
+ * @defgroup Ecore_Wl_Subsurf Functions to manipulate subsurfaces.
+ * @ingroup Ecore_Wl_Group
+ *
+ * Functions to manipulate wayland subsurfaces, using Ecore_Wl_Subsurf.
+ *
+ * This API is intended to expose Wayland subsurface functionality, although it
+ * should not be necessary for most applications to use it, as soon as we have
+ * means to make Evas automatically switch Evas images to use subsurfaces.
+ *
+ * It can/should be used, for instance, when subsurfaces are needed to be not
+ * in sync with the main window surface.
+ */
+
+/**
+ * Create and return a new subsurface.
+ *
+ * Create a new surface (and subsurface interface), with the parent surface
+ * being the one associated with the given @param win.
+ *
+ * The @param win must be visible, otherwise there will be no surface created
+ * for it yet.
+ *
+ * @ingroup Ecore_Wl_Subsurf
+ * @since 1.8
+ */
+EAPI Ecore_Wl_Subsurf *ecore_wl_subsurf_create(Ecore_Wl_Window *win);
+
+/**
+ * Destroy the given subsurface, as well as the surface associated with it.
+ *
+ * @ingroup Ecore_Wl_Subsurf
+ * @since 1.8
+ */
+EAPI void ecore_wl_subsurf_del(Ecore_Wl_Subsurf *ess);
+
+/**
+ * Return the wl_surface associated with this subsurface.
+ *
+ * @ingroup Ecore_Wl_Subsurf
+ * @since 1.8
+ */
+EAPI struct wl_surface *ecore_wl_subsurf_surface_get(Ecore_Wl_Subsurf *ess);
+
+/**
+ * Set the position of this subsurface, relative to its parent surface.
+ *
+ * @ingroup Ecore_Wl_Subsurf
+ * @since 1.8
+ */
+EAPI void ecore_wl_subsurf_position_set(Ecore_Wl_Subsurf *ess, int x, int y);
+
+/**
+ * Get the position of this subsurface, relative to its parent surface.
+ *
+ * @ingroup Ecore_Wl_Subsurf
+ * @since 1.8
+ */
+EAPI void ecore_wl_subsurf_position_get(Ecore_Wl_Subsurf *ess, int *x, int *y);
+
+/**
+ * @ingroup Ecore_Wl_Subsurf
+ * @since 1.8
+ */
+EAPI void ecore_wl_subsurf_place_above(Ecore_Wl_Subsurf *ess, struct 
wl_surface *surface);
+
+/**
+ * @ingroup Ecore_Wl_Subsurf
+ * @since 1.8
+ */
+EAPI void ecore_wl_subsurf_place_below(Ecore_Wl_Subsurf *ess, struct 
wl_surface *surface);
+
+/**
+ * @ingroup Ecore_Wl_Subsurf
+ * @since 1.8
+ */
+EAPI void ecore_wl_subsurf_sync_set(Ecore_Wl_Subsurf *ess, Eina_Bool val);
+
+/**
+ * Set an opaque region for the given subsurface.
+ *
+ * Use a 0x0 region size to unset the opaque region.
+ *
+ * @ingroup

[EGIT] [core/efl] master 06/06: evas/image: Add video surface caps.

2013-10-04 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

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

commit 9506fd5db783f013dcb5f042f15f4f0feb4a191f
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Thu Sep 26 13:49:18 2013 -0300

evas/image: Add video surface caps.

Wayland subsurfaces can be used as video surfaces too, similarly to
Ecore_X windows. However, they support a different set of features. Some
of them, like subsurface clipping and scaling, might be added in the
future, but so far we must work with what we have.

This commit allows to set an enum bitfield to the Video_Surface, with
the default value being one that will keep the same behavior as before,
for Ecore_X window. Thus, backward compatibility should not be broken.

It's possible to inform Evas that the surface in question is not able to
resize or scale, or that it's above or below the original canvas
surface. This allows Evas to show the surface itself, or use a buffer of
pixels instead, when the capabilities are not available.
---
 src/lib/evas/Evas_Common.h  | 10 +
 src/lib/evas/Evas_Eo.h  | 26 +
 src/lib/evas/Evas_Legacy.h  |  3 ++
 src/lib/evas/canvas/evas_object_image.c | 53 -
 src/lib/evas/canvas/evas_render.c   | 68 -
 5 files changed, 158 insertions(+), 2 deletions(-)

diff --git a/src/lib/evas/Evas_Common.h b/src/lib/evas/Evas_Common.h
index 0c2d9b3..007c0ac 100644
--- a/src/lib/evas/Evas_Common.h
+++ b/src/lib/evas/Evas_Common.h
@@ -486,6 +486,16 @@ struct _Evas_Video_Surface
void   *data;
 };
 
+typedef enum _Evas_Video_Surface_Caps
+{
+   EVAS_VIDEO_SURFACE_MOVE = 1,
+   EVAS_VIDEO_SURFACE_RESIZE = 2,
+   EVAS_VIDEO_SURFACE_CLIP = 4,
+   EVAS_VIDEO_SURFACE_BELOW = 8,
+   EVAS_VIDEO_SURFACE_STACKING_CHECK = 16,
+   EVAS_VIDEO_SURFACE_IGNORE_WINDOW = 32,
+} Evas_Video_Surface_Caps;
+
 #define EVAS_LAYER_MIN   -32768 /** bottom-most layer number 
*/
 #define EVAS_LAYER_MAX   32767 /** top-most layer number */
 
diff --git a/src/lib/evas/Evas_Eo.h b/src/lib/evas/Evas_Eo.h
index 2324831..63783c5 100644
--- a/src/lib/evas/Evas_Eo.h
+++ b/src/lib/evas/Evas_Eo.h
@@ -5592,6 +5592,8 @@ enum
EVAS_OBJ_IMAGE_SUB_ID_COLORSPACE_GET,
EVAS_OBJ_IMAGE_SUB_ID_VIDEO_SURFACE_SET,
EVAS_OBJ_IMAGE_SUB_ID_VIDEO_SURFACE_GET,
+   EVAS_OBJ_IMAGE_SUB_ID_VIDEO_SURFACE_CAPS_SET,
+   EVAS_OBJ_IMAGE_SUB_ID_VIDEO_SURFACE_CAPS_GET,
EVAS_OBJ_IMAGE_SUB_ID_NATIVE_SURFACE_SET,
EVAS_OBJ_IMAGE_SUB_ID_NATIVE_SURFACE_GET,
EVAS_OBJ_IMAGE_SUB_ID_SCALE_HINT_SET,
@@ -6380,6 +6382,30 @@ enum
 #define evas_obj_image_video_surface_get(surf) 
EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_VIDEO_SURFACE_GET), EO_TYPECHECK(const 
Evas_Video_Surface **, surf)
 
 /**
+ * @def evas_obj_image_video_surface_caps_set
+ * @since 1.8
+ *
+ * Set the video surface capabilities to a given image of the canvas
+ *
+ * @param[in] caps in
+ *
+ * @see evas_object_image_video_surface_caps_set
+ */
+#define evas_obj_image_video_surface_caps_set(caps) 
EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_VIDEO_SURFACE_CAPS_SET), 
EO_TYPECHECK(unsigned int, caps)
+
+/**
+ * @def evas_obj_image_video_surface_caps_get
+ * @since 1.8
+ *
+ * Get the video surface capabilities to a given image of the canvas
+ *
+ * @param[out] caps out
+ *
+ * @see evas_object_image_video_surface_caps_get
+ */
+#define evas_obj_image_video_surface_caps_get(caps) 
EVAS_OBJ_IMAGE_ID(EVAS_OBJ_IMAGE_SUB_ID_VIDEO_SURFACE_CAPS_GET), 
EO_TYPECHECK(unsigned int *, caps)
+
+/**
  * @def evas_obj_image_native_surface_set
  * @since 1.8
  *
diff --git a/src/lib/evas/Evas_Legacy.h b/src/lib/evas/Evas_Legacy.h
index 5294ce7..ffb3bb8 100644
--- a/src/lib/evas/Evas_Legacy.h
+++ b/src/lib/evas/Evas_Legacy.h
@@ -4738,6 +4738,9 @@ EAPI void  
evas_object_image_video_surface_set(Evas_Obje
  */
 EAPI const Evas_Video_Surface *evas_object_image_video_surface_get(const 
Evas_Object *obj) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1);
 
+EAPI void evas_object_image_video_surface_caps_set(Evas_Object *obj, unsigned 
int caps) EINA_ARG_NONNULL(1);
+EAPI unsigned int evas_object_image_video_surface_caps_get(const Evas_Object 
*obj) EINA_ARG_NONNULL(1);
+
 /**
  * Set the scale hint of a given image of the canvas.
  *
diff --git a/src/lib/evas/canvas/evas_object_image.c 
b/src/lib/evas/canvas/evas_object_image.c
index af76f53..00c1cf6 100644
--- a/src/lib/evas/canvas/evas_object_image.c
+++ b/src/lib/evas/canvas/evas_object_image.c
@@ -64,6 +64,7 @@ struct _Evas_Object_Image_Pixels
} func;
 
Evas_Video_Surface video;
+   unsigned int video_caps;
 };
 
 struct _Evas_Object_Image_State
@@ -216,7 +217,7 @@ static const Evas_Object_Image_Load_Opts default_load_opts 
= {
 };
 
 static const Evas_Object_Image_Pixels default_pixels

Re: [E-devel] Wayland and subsurfaces

2013-10-04 Thread Rafael Antognolli
Example usage of what I have just committed (fixes and improvements
for Evas_Video_Surface, and added Ecore_Wl_Subsurf) here:

https://github.com/antognolli/buffer_object

This is a helper, or a skeleton, for creating and setting up the image
object that would be used with the buffers. It can be made more
generic if necessary, thus allowing to use both Wayland buffers or X
stuff. The code itself is inside buffer_object.c. Sample usage is
inside main.c.

Anyway, this can be added somewhere in EFL, I just don't know exactly
where would be the best place... ideas?

On Mon, Sep 23, 2013 at 7:35 PM, Rafael Antognolli antogno...@gmail.com wrote:
 Hey Raster,

 I added some code to do what you proposed, but it ended up kind of
 hackish IMHO. That was using the native surface API.

 The problem is that subsurfaces are handled the same way as surfaces,
 thus their handling code should belong to ecore_wl (similarly to X
 windows code belonging to ecore_x). In order to do what you said, I
 had to pass the compositor structure (and subcompositor structure),
 which lived inside Ecore_Wl, to Evas engine, and create the
 subsurfaces from there.

 I pushed the partial code for this, there are several things that must
 be done yet, but you can figure out what I've been doing if you want:

 http://git.enlightenment.org/core/efl.git/commit/?h=devs/antognolli/subsurfaces2

 On the other hand, I noticed that the Evas_Video_Surface struct and
 code, so far used only in Emotion gstreamer backend, seems to fit this
 task way better. It does make some assumptions that must be
 changed/fixed/improved, like assuming that it's possible to clip or
 resize the image, or that it is always in a layer below the current
 canvas, but I think I can handle this. Other than that, the code to
 hanlde subsurfaces with that API seems way more clean to me. Don't you
 think it would be better to do this code using Video Surfaces instead
 of the Native Surfaces API?

 Thanks

 On Wed, Aug 7, 2013 at 8:08 PM, Carsten Haitzler ras...@rasterman.com wrote:
 On Wed, 7 Aug 2013 16:32:53 -0300 Rafael Antognolli antogno...@gmail.com 
 said:

 Hey guys,

 I'm trying to add Wayland's subsurfaces support to EFL, but not sure
 about how to expose it.

 Actually, I'm not even sure if we should expose it or not. The only
 similar thing that I saw so far was the video overlay stuff, which I
 don't know exactly if it's the same thing.

 If not, what would it be? A sub-canvas of the main canvas? Or should I
 just expose something in the ecore_wayland_* namespace?

 Any thoughts?


 i already talked with devilhorns about this... and subsurfaces should 
 probably
 not be exposed at all. they should be silently handled inside the wayland
 engines for evas. they are basically useful for 2 things:

 1. popup menus and the like...
 2. breaking out objects that can live in their own buffer

 a #1 is a subset of #2 anyway.

 evas should be making the decisions as to what objects get broken out into
 subsurfaces frame-by-frame. it should create, destroy, reconfigure and
 re-render them as needed every time evas_render is called. of course the evas
 engine keeps track of current subsurfaces there from the previous frame.

 the criteria for being selected to become a subsurface depend on the 
 following:

 1. does the object have a buffer? can evas generate one (map/proxy) and
 pre-render it?
 2. if we have a buffer already, or can generate it, does the compositor 
 support
 the buffer format (yuv, rgb etc.)
 3. does the object geometry match transforms and clipping etc. the 
 compositor
 supports (last status i knew is that scaling still had to go in, and there 
 was
 no ability to clip these subsurfaces explicitly eg to a rectangle). so match 
 up
 clipping, color multiply, masking (not in evas atm, but maybe in future),
 scaling and map/transforms.
 4. after the first 3 checks, we will have a candidate list. sort this list
 based on criteria - eg objects that may be marked to be popups that exceed
 canvas bounds first (no such feature right now, but in future...), then yuv
 objects, then rgba buffer ones that change content less often, BUT change
 position (eg scroll), where we may benefit from avoiding re-rendering these 
 and
 sort these ones by estimated render cost.
 5. we need to either assume the compositor has a limit to how many 
 subsurfaces
 it can manage to deal with before this gets silly or just has no benefit. 
 popup
 subsurfaces that go outside window bounds are a necessity, so those always
 happen. evas must generate buffers for these no matter what (if they don't 
 have
 them already). then it's a matter of how many yuv and rgb subsurfaces to
 expose. for now a fixed configurable number (let's say an environment var) 
 will
 do, BUT this is something i think wayland needs to extend protocol-wise. the
 compositor should send over wayland events to clients indicating how many
 subsurfaces might be optimal and which formats might benefit from 
 acceleration

Re: [E-devel] Pen support in EFL?

2013-10-03 Thread Rafael Antognolli
On Thu, Oct 3, 2013 at 7:58 AM, Carsten Haitzler ras...@rasterman.com wrote:
 On Wed, 2 Oct 2013 22:28:54 -0700 Jason Gerecke killert...@gmail.com said:

 On Wed, Oct 2, 2013 at 8:21 PM, Carsten Haitzler ras...@rasterman.com 
 wrote:
  On Wed, 2 Oct 2013 13:59:47 -0700 Jason Gerecke killert...@gmail.com 
  said:
 
  3 things here.
 
  1. for general device queries (get name, description, device classes etc.)
  there is already an evas_device api. right now though nothng populates the
  evas device information from lower levels (xi/xi2, etc. etc.), so it's
  unused. but it's there.
 Would clients be expected to call this just once prior to receiving
 input, or is there some way to notify them that a change has occured?

 the query of the devices and building of their nodes and tree should be in
 ecore-evas. EVAS_CALLBACK_DEVICE_CHANGED is already there for this - u can set
 a callback on the evas itself to listen for this. the idea is that if you get
 this callback - re-query the device tree and see. :)

 I ask because the type information (e.g. pen tip vs. eraser or
 airbrush vs. inking pen) is likely to change fairly regularly. We
 would want to be sure that clients can get their hands on that,
 whether it means notifying that they need to refresh their
 understanding or sending the type information in each event.

 well the device add/del is really more about plug and unplug. here i'd expect
 there to be a single device representing the pen and pen vs eraser vs brush 
 i'd
 expect as a mode field on the pen (like i mention below about eraser)

  2. i've talked with some people about this and the general take was that we
  need to add new pen events (ala multi) because they need to handle more 
  than
  multi: e.g.:
 
* button number on pen pressed/released SEPARATELY from pen touching.
* pen touch vs eraser touch (ie indicate which end of N ends a pen
  presses down).
* some pens support a hover ability - so that means motion events without
  down/up begin/end points like multi, BUT we would ned/want to report
  distance as a value during this hover
* possibly other custom inputs on the pens themselves that are not
  accounted for.
 
  we COULD extend multi events and add fields, but i think you are mistaking
  habitual over-engineering in efl for intent for these to be pen events. a
  lot of stuff gets extended beyond its initial scope in case. eg in case
  out touch surface can report size, pressure and angle of your finger... :)
  also it'd cause issues with existing multi event usage.
 
 As I said, the multi event is interesting for its extra fields, but
 might not be a good semantic match. A pen isn't anything more than
 fancy mouse: it has motion without a touch event and a set of buttons
 to worry about. The only thing that makes it special are all those
 extra axes, and most of those could be imagined on a
 sufficiently-advanced mouse. Wacom actually makes such a mouse for
 their Intuos tablets which reports things like height above the pad,
 rotation about the z-axis, and absolute position of a spring-loaded
 fingerwheel.

 The way most APIs handle pen input is to just pass the data alongside
 the X/Y position you'd expect for a mouse. Throw in an enum or
 function to let clients distinguish pen tip from eraser and you're
 set.

 i'm thinking similarly - have down/up and move events, with a bunch of extra
 fields. only q is.. what set of fileds pretty much covers every aspect of a
 possible pen :)

  3. if you want to tal about the extra buttons and what not that you find on
  pen tablets (i have a bamboo sitting on my desk at home - i know cheapo
  little pen tablet, but its indicative at a small scale of a lot of them), i
  believe these should just be keys like any keyboard. i don't think these
  belong in any specialized event system. as with #1 we CAN attach a special
  device handle to them though so you can differentiate where the key comes
  from... :)
 
 Most implementations send these as buttons rather than keys. In
 the case of evdev, the Intuos and Cintiq tablets will send the
 meaningless BTN_{0,1,2,3,...} buttons. For a Bamboo though, you'll
 find the mouse buttons BTN_{LEFT,RIGHT,FORWARD,BACK} instead. In the X
 driver these are all mapped to mouse buttons that clients can easily
 understand. The first few mouse buttons usually have attached
 semantics (e.g. button 1 = left click = primary action) which makes
 them non-ideal, but keys don't fare much better since you'd need
 clients to properly understand a non-standard keyboard layout. These
 buttons are always a tricky issue.

 sure, but i see keys as better as they have keysyms at least that have
 enumerations... if the intent is to emulate a mouse - then buttons sounds
 right... anyway... if buttons  then its kind of weirs to expose a button pres
 from the tablet base as this press event carries x/y info but actually has
 nothing to do with location... :)

  adding  new event type isn't too hard in evas - 

[EGIT] [tools/clouseau] master 01/01: Make systemd config files installation optional.

2013-10-03 Thread Rafael Antognolli
antognolli pushed a commit to branch master.

http://git.enlightenment.org/tools/clouseau.git/commit/?id=d95ff67dd64efd1ff8574a8a0d8c92dfb6e3c4ad

commit d95ff67dd64efd1ff8574a8a0d8c92dfb6e3c4ad
Author: Rafael Antognolli rafael.antogno...@intel.com
Date:   Thu Oct 3 15:52:00 2013 -0300

Make systemd config files installation optional.
---
 configure.ac | 21 +
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/configure.ac b/configure.ac
index 676f464..491b931 100644
--- a/configure.ac
+++ b/configure.ac
@@ -62,13 +62,26 @@ PKG_CHECK_MODULES([EFL],
]
  )
 
+want_systemd=yes
 EFL_ENABLE_BETA_API_SUPPORT
+AC_ARG_ENABLE([systemd],
+   [AC_HELP_STRING([--disable-systemd],
+   [disable systemd integration. @:@default=enabled@:@])],
+   [
+if test x${enableval} = xyes ; then
+   want_systemd=yes
+else
+   want_systemd=no
+fi
+   ])
 
-# Detect systemd user session directory properly
-EFL_PKG_CHECK_VAR([USER_SESSION_DIR], [systemd], [systemduserunitdir],
-[have_systemd_user_session=yes], [have_systemd_user_session=no])
+if test x${want_systemd} = xyes; then
+# Detect systemd user session directory properly
+EFL_PKG_CHECK_VAR([USER_SESSION_DIR], [systemd], [systemduserunitdir],
+[have_systemd_user_session=yes], 
[have_systemd_user_session=no])
+AC_SUBST([USER_SESSION_DIR])
+fi
 AM_CONDITIONAL([HAVE_SYSTEMD_USER_SESSION], [test 
x${have_systemd_user_session} = xyes])
-AC_SUBST([USER_SESSION_DIR])
 
 ### Checks for linker characteristics
 lt_enable_auto_import=

-- 




Re: [E-devel] E19 Development Cycle

2013-10-02 Thread Rafael Antognolli
On Wed, Oct 2, 2013 at 6:59 AM, Tom Hacohen tom.haco...@samsung.com wrote:
 On 02/10/13 09:16, Michael Blumenkrantz wrote:
 Since I've been contacted by a number of people recently who are wanting to
 do work on E19, here's some general rules that I'd like people to follow to
 avoid conflicts:


 * Do NOT merge commits into my branch. Ever. If you have some patches that
 you'd like merged, send me a mail about it. All other branches should be
 rebased to my branch, which will eventually be merged to master after the
 E18 release.


 * Use correct prefixing in commit messages. This IS different from efl
 prefixing! In E19, we will be doing away with all news/changelog idiocy;
 the new system is based on the first word in a commit message and works
 like this:
 - feature - use this when adding a new feature
 - bugfix - use this when you are fixing a bug

 I may add other prefixes to this in time, but for now this is how it works.
 Patches not conforming to this system will not be merged, and no other form
 of prefixing is necessary.

 Awesome.

I look forward the day that we will do the same for EFL (wrt news/changelog).



 * I WILL be squashing and rewriting commits as much as possible in order to
 keep the overall patchset small; it's already approaching 50 patches, and I
 don't want this to be a commit tsunami. If you fix a bug in an existing E19
 commit, do NOT prefix the commit with bugfix. Instead, use squash
 commit hash. I will merge this with the specified commit and add your
 attribution/signoffs to that commit.

 Less awesome. There are better way of doing things. But I guess that's
 the first step. The problem with signoffs is that they are not proper
 attributions. That is, tools that check for authors using git will not
 spot them (among other things).




 I realize that this is a hassle, but the E18 release cycle is turning out
 to be about twice as long as I expected, which has caused the E19 branch to
 grow much larger than I imagined.


 You could just branch out e18, and make master e19. I see no problem
 with that. Alternatively, you could just work on your branch as if it
 was master (without any hassles).

 --
 Tom.


 --
 October Webinars: Code for Performance
 Free Intel webinars can help you accelerate application performance.
 Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
 the latest Intel processors and coprocessors. See abstracts and register 
 http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



-- 
Rafael Antognolli

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Pen support in EFL?

2013-10-02 Thread Rafael Antognolli
Hi Jason,

On Wed, Oct 2, 2013 at 5:59 PM, Jason Gerecke killert...@gmail.com wrote:
 Hello,

 I'm a developer for the linuxwacom project. For the past few weeks
 I've been reading up on Tizen, which is a new Linux-based OS for
 mobile devices. Since its quite similar to other Linux distributions,
 I've been trying to figure out how to get pen data up to apps. Tizen
 apps are written in HTML5, which is being extended to support pen
 events[1]. With Webkit shaping up to provide apps access to this
 API[2], the only remaining layer I'm not sure about is the EFL glue
 that binds X and Webkit together.

 I'm wondering what it would take to get e.g. pen pressure flowing up
 through EFL to appplications. I've taken a quick look through the API
 and underlying code, and while there doesn't appear to be explicit pen
 support there appears to be some foundation that could be built on
 (e.g. multi events look very interesting, though appear to be
 semantically intended for multitouch not pen).

Indeed, multi events seem to already provide the needed pen data. Do
you need any data that is not already provided from the multi events?
Can you be more specific?

I know that some data, although there are attributes available from
the events structure, might have not been implemented, like pressure,
angle and radius. But the infra is there.

 Is there any interest in providing EFL applications with pen data?
 More importantly, is there anyone willing to help a newbie to the
 project like myself?

If you are providing something new, I think it's a good idea. But
would be nice to look carefully if we don't provide the means to work
with the said pen data already. Send your proposals to the list and
people will give it thoughts.

BTW, take a look at the multi-touch example, it might be helpful and
you could improve it if you want:
https://git.enlightenment.org/core/efl.git/tree/src/examples/evas/evas-multi-touch.c

Regards,
Rafael

--
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register 
http://pubads.g.doubleclick.net/gampad/clk?id=60134791iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Wayland and subsurfaces

2013-09-23 Thread Rafael Antognolli
Hey Raster,

I added some code to do what you proposed, but it ended up kind of
hackish IMHO. That was using the native surface API.

The problem is that subsurfaces are handled the same way as surfaces,
thus their handling code should belong to ecore_wl (similarly to X
windows code belonging to ecore_x). In order to do what you said, I
had to pass the compositor structure (and subcompositor structure),
which lived inside Ecore_Wl, to Evas engine, and create the
subsurfaces from there.

I pushed the partial code for this, there are several things that must
be done yet, but you can figure out what I've been doing if you want:

http://git.enlightenment.org/core/efl.git/commit/?h=devs/antognolli/subsurfaces2

On the other hand, I noticed that the Evas_Video_Surface struct and
code, so far used only in Emotion gstreamer backend, seems to fit this
task way better. It does make some assumptions that must be
changed/fixed/improved, like assuming that it's possible to clip or
resize the image, or that it is always in a layer below the current
canvas, but I think I can handle this. Other than that, the code to
hanlde subsurfaces with that API seems way more clean to me. Don't you
think it would be better to do this code using Video Surfaces instead
of the Native Surfaces API?

Thanks

On Wed, Aug 7, 2013 at 8:08 PM, Carsten Haitzler ras...@rasterman.com wrote:
 On Wed, 7 Aug 2013 16:32:53 -0300 Rafael Antognolli antogno...@gmail.com 
 said:

 Hey guys,

 I'm trying to add Wayland's subsurfaces support to EFL, but not sure
 about how to expose it.

 Actually, I'm not even sure if we should expose it or not. The only
 similar thing that I saw so far was the video overlay stuff, which I
 don't know exactly if it's the same thing.

 If not, what would it be? A sub-canvas of the main canvas? Or should I
 just expose something in the ecore_wayland_* namespace?

 Any thoughts?


 i already talked with devilhorns about this... and subsurfaces should probably
 not be exposed at all. they should be silently handled inside the wayland
 engines for evas. they are basically useful for 2 things:

 1. popup menus and the like...
 2. breaking out objects that can live in their own buffer

 a #1 is a subset of #2 anyway.

 evas should be making the decisions as to what objects get broken out into
 subsurfaces frame-by-frame. it should create, destroy, reconfigure and
 re-render them as needed every time evas_render is called. of course the evas
 engine keeps track of current subsurfaces there from the previous frame.

 the criteria for being selected to become a subsurface depend on the 
 following:

 1. does the object have a buffer? can evas generate one (map/proxy) and
 pre-render it?
 2. if we have a buffer already, or can generate it, does the compositor 
 support
 the buffer format (yuv, rgb etc.)
 3. does the object geometry match transforms and clipping etc. the 
 compositor
 supports (last status i knew is that scaling still had to go in, and there was
 no ability to clip these subsurfaces explicitly eg to a rectangle). so match 
 up
 clipping, color multiply, masking (not in evas atm, but maybe in future),
 scaling and map/transforms.
 4. after the first 3 checks, we will have a candidate list. sort this list
 based on criteria - eg objects that may be marked to be popups that exceed
 canvas bounds first (no such feature right now, but in future...), then yuv
 objects, then rgba buffer ones that change content less often, BUT change
 position (eg scroll), where we may benefit from avoiding re-rendering these 
 and
 sort these ones by estimated render cost.
 5. we need to either assume the compositor has a limit to how many subsurfaces
 it can manage to deal with before this gets silly or just has no benefit. 
 popup
 subsurfaces that go outside window bounds are a necessity, so those always
 happen. evas must generate buffers for these no matter what (if they don't 
 have
 them already). then it's a matter of how many yuv and rgb subsurfaces to
 expose. for now a fixed configurable number (let's say an environment var) 
 will
 do, BUT this is something i think wayland needs to extend protocol-wise. the
 compositor should send over wayland events to clients indicating how many
 subsurfaces might be optimal and which formats might benefit from 
 acceleration.
 so for example. on your average desktop gpu setup you really only have 1 rgba
 layer, 1 yuv layer (and maybe a cursor) for the whole screen. that means that
 the best possible sensible # of layers to expose is 1, and just a yuv layer
 only. rgba layers wont benefit (thus only expose subsurfaces for popups that
 exceed window bounds - again a feature we don't have yet). but many arm soc's
 support 2, 3, or more layers (i have seen 5, 8 and even up to 12 layers). they
 often are highly flexible offering both yuv AND rgba and sometimes arbitrary
 mixes (a layer can be any format). if you have a mobile phone/tablet like ui,
 the app basically is fullscreen and thus can

Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary - introduces 3 apis elm_object_item_track/untrack/track_get().

2013-09-13 Thread Rafael Antognolli
 and
 document.
 Also, because you don't talk about them on IRC or the ML it feels like
 you are trying to sneak them under the radar.

 For many APIs there can be many use cases, even for APIs that do nothing
 whatsoever, but that doesn't justify them. Especially since there might
 be better solutions.

 I believe Gustavo was trying to get more information, in order to try
 and think of an alternative solutions or means of achieving what you are
 trying to achieve.

 I'm not trying to belittle your work, and I haven't read the patch
 myself. I skimmed over it when I first saw it, and decided to keep quite
 because arguing against the previous API lead to nothing. Everyone was
 against, and it's still there.

 --
 Tom.


 --
 How ServiceNow helps IT people transform IT departments:
 1. Consolidate legacy IT systems to a single system of record for IT
 2. Standardize and globalize service processes across IT
 3. Implement zero-touch automation to replace manual, redundant tasks
 http://pubads.g.doubleclick.net/gampad/clk?id=5127iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



-- 
Rafael Antognolli

--
How ServiceNow helps IT people transform IT departments:
1. Consolidate legacy IT systems to a single system of record for IT
2. Standardize and globalize service processes across IT
3. Implement zero-touch automation to replace manual, redundant tasks
http://pubads.g.doubleclick.net/gampad/clk?id=5127iu=/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/02: Readd the master clip for rendering of wayland engines.

2013-09-11 Thread Rafael Antognolli
.

/me thinks about a new object flag/list for clipping objects to a
special clipper, not a normal evas object clipper... any thoughts on
that?

Regards,
-- 
Rafael Antognolli

--
How ServiceNow helps IT people transform IT departments:
1. Consolidate legacy IT systems to a single system of record for IT
2. Standardize and globalize service processes across IT
3. Implement zero-touch automation to replace manual, redundant tasks
http://pubads.g.doubleclick.net/gampad/clk?id=5127iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [Enlightenment-release] Releases pending

2013-09-11 Thread Rafael Antognolli
Hi,

On Wed, Sep 11, 2013 at 6:11 PM, Bertrand Jacquin be...@meleeweb.net wrote:
 On 2013-09-11 17:03, Eduardo Lima (Etrunko) wrote:
 2013/9/11 Bertrand Jacquin be...@meleeweb.net:
 Hi,

 On 2013-09-11 00:36, Eduardo Lima (Etrunko) wrote:
 We now have tarballs up for testing in under the new pre-releases
 directory:

 http://download.enlightenment.org/pre-releases/efl-1.7.9/
 http://download.enlightenment.org/pre-releases/enlightenment-0.17.5/

 IMHO, it's bad to name tarball 'e_dbus-1.7.9.tar.bz2' (here for e_dbus
 exemple). Think about google bot and other crawlers that will put in
 the
 first result 'e_dbus-1.7.9.tar.bz2' corresponding to the pre-release
 directory, and this even when release will happenning, people will not
 see pre-releases subdirectory at first.

 Also, it may lead to misunderstood from people that will already have
 a
 file named e_dbus-1.7.9.tar.bz2 in their directory.

 Naming them e_dbus-1.7.9_pre1.Tar.bz2 in preferable or anything else
 that is not the final tarball name.

 It is already enough work to update configure.ac, ChangeLogs and NEWS
 for all 17 packages we ship, and I for myself am not doing it all over
 again only to remove a 'pre' tag. The idea is to move the tarballs to
 the release directory and remove the pre-release one whenever the
 packages are tested and good to go.

 This should not need any manual changes. You could for example add a
 v1.7.9_pre1 tag on a commit, and then run a 'make dist' that does all
 needed things for you. As almost all projects does.

I also think that it would be cool if we had that.

But unfortunately I have to agree with Etrunko that it's a pain in the
ass, at least the way that it is now, where EFL 1.7 is split across
several packages. It's not just make dist, but make dist on every
package, at least twice (one for pre-release and another for the real
release), adding/changing/removing the preN tag.

And if we do that, would be even better to do it all correctly: update
dependencies accordingly, NEWS, ChangeLog, etc, as Etrunko said. I
don't think it's worth the effort for 1.7 yet, maybe we can do it
after 1.8 release where it will be a lot easier (single tree for core
efl, elementary and enlightenment).

Just my 2 cents.

-- 
Rafael Antognolli

--
How ServiceNow helps IT people transform IT departments:
1. Consolidate legacy IT systems to a single system of record for IT
2. Standardize and globalize service processes across IT
3. Implement zero-touch automation to replace manual, redundant tasks
http://pubads.g.doubleclick.net/gampad/clk?id=5127iu=/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: Add a rectangle to trac frame spacer so we can set opaque_region properly.

2013-09-04 Thread Rafael Antognolli
Hi dh,

Is this done because of the black spacer that you mention in Ecore's
commit? If so, that's fixed there already, do we still need this fix
in elementary too?

BTW, look at the comment below...

On Wed, Sep 4, 2013 at 10:38 AM, Chris Michael - Enlightenment Git
no-re...@enlightenment.org wrote:
 devilhorns pushed a commit to branch master.

 commit 2644ba383e1ac4196f62af7ad9c6bb288fe3b587
 Author: Chris Michael cp.mich...@samsung.com
 Date:   Wed Sep 4 14:22:44 2013 +0100

 Add a rectangle to trac frame spacer so we can set opaque_region
 properly.

 Signed-off-by: Chris Michael cp.mich...@samsung.com
 ---
  src/lib/elm_win.c | 19 +++
  1 file changed, 19 insertions(+)

 diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c
 index c601b2f..1a91f05 100644
 --- a/src/lib/elm_win.c
 +++ b/src/lib/elm_win.c
 @@ -64,6 +64,7 @@ struct _Elm_Win_Smart_Data
 Evas_Object  *parent; /* parent *window* object*/
 Evas_Object  *img_obj, *frame_obj;
 Evas_Object  *client_obj; /* rect representing the client */
 +   Evas_Object  *spacer_obj;
 Eo   *layout;
 Eo   *box;
 Evas_Object  *obj; /* The object itself */
 @@ -2209,6 +2210,7 @@ _elm_win_frame_obj_move(void *data,
 Elm_Win_Smart_Data *sd;
 int fx, fy, fw, fh;
 int ox, oy, ow, oh;
 +   int sx, sy, sw, sh;
 int x, y, w, h;

 if (!(sd = data)) return;
 @@ -2216,6 +2218,7 @@ _elm_win_frame_obj_move(void *data,

 evas_object_geometry_get(sd-frame_obj, fx, fy, fw, fh);
 evas_object_geometry_get(sd-client_obj, ox, oy, ow, oh);
 +   evas_object_geometry_get(sd-spacer_obj, sx, sy, sw, sh);

 evas_output_framespace_get(sd-evas, x, y, w, h);
 if ((x != (ox - fx)) || (y != (oy - fy)) ||
 @@ -2224,6 +2227,10 @@ _elm_win_frame_obj_move(void *data,
  evas_output_framespace_set(sd-evas, (ox - fx), (oy - fy),
 (fw - ow), (fh - oh));
   }
 +
 +#ifdef HAVE_ELEMENTARY_WAYLAND
 +   ecore_wl_window_opaque_region_set(sd-wl.win, -fx, -sy, sw, sh);
 +#endif

I think there's a mistake on the lines above, you are using -fx, -sy.
Shouldn't it be -sx, -sy?

  static void
 @@ -2235,6 +2242,7 @@ _elm_win_frame_obj_resize(void *data,
 Elm_Win_Smart_Data *sd;
 int fx, fy, fw, fh;
 int ox, oy, ow, oh;
 +   int sx, sy, sw, sh;
 int x, y, w, h;

 if (!(sd = data)) return;
 @@ -2242,6 +2250,7 @@ _elm_win_frame_obj_resize(void *data,

 evas_object_geometry_get(sd-frame_obj, fx, fy, fw, fh);
 evas_object_geometry_get(sd-client_obj, ox, oy, ow, oh);
 +   evas_object_geometry_get(sd-spacer_obj, sx, sy, sw, sh);

 evas_output_framespace_get(sd-evas, x, y, w, h);
 if ((x != (ox - fx)) || (y != (oy - fy)) ||
 @@ -2250,6 +2259,10 @@ _elm_win_frame_obj_resize(void *data,
  evas_output_framespace_set(sd-evas, (ox - fx), (oy - fy),
 (fw - ow), (fh - oh));
   }
 +
 +#ifdef HAVE_ELEMENTARY_WAYLAND
 +   ecore_wl_window_opaque_region_set(sd-wl.win, -fx, -sy, sw, sh);

Same problem here.

 +#endif
  }

  static void
 @@ -2437,6 +2450,12 @@ _elm_win_frame_add(Elm_Win_Smart_Data *sd,
  return;
   }

 +   sd-spacer_obj = evas_object_rectangle_add(sd-evas);
 +   evas_object_color_set(sd-spacer_obj, 0, 0, 0, 0);
 +   evas_object_repeat_events_set(sd-spacer_obj, EINA_TRUE);
 +   edje_object_part_swallow(sd-frame_obj, elm.swallow.frame_spacer,
 +sd-spacer_obj);
 +
 sd-client_obj = evas_object_rectangle_add(sd-evas);
 evas_object_color_set(sd-client_obj, 0, 0, 0, 0);
 /* NB: Tried pass_events here, but that fails to send events */

 --

 --
 Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
 Discover the easy way to master current and previous Microsoft technologies
 and advance your career. Get an incredible 1,500+ hours of step-by-step
 tutorial videos with LearnDevNow. Subscribe today and save!
 http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk


-- 
Rafael Antognolli

--
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/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: elementary/widget - introduce elm_object_item_object_get().

2013-09-02 Thread Rafael Antognolli
 itself that an item belongs to.
 - * @note Every elm_object_item supports this API
 - * @deprecated Use elm_object_item_widget_get() instead
 - * @ingroup General
 - */
 -EINA_DEPRECATED EAPI Evas_Object
 *elm_object_item_object_get(const Elm_Object_Item *it);
 -
 -/**
* Set the text to show in the anchorblock
*
* Sets the text of the anchorblock to @p text. This text can include
 markup
 @@ -3303,7 +3290,7 @@ EINA_DEPRECATED EAPI void
   elm_slideshow_show(Elm_Object_Item *i
*
* This returns the toolbar object itself that an item belongs to.
*
 - * @deprecated use elm_object_item_object_get() instead.
 + * @deprecated use elm_object_item_widget_get() instead.
*/
   EINA_DEPRECATED EAPI Evas_Object *elm_toolbar_item_toolbar_get(const
 Elm_Object_Item *it);

 diff --git a/src/lib/elm_widget.c b/src/lib/elm_widget.c
 index 5f1aae8..9bcec72 100644
 --- a/src/lib/elm_widget.c
 +++ b/src/lib/elm_widget.c
 @@ -5771,6 +5771,13 @@ _elm_widget_item_translate(Elm_Widget_Item *item)
   #endif
   }

 +EAPI const Evas_Object *
 +_elm_widget_item_object_get(const Elm_Widget_Item *item)
 +{
 +   ELM_WIDGET_ITEM_CHECK_OR_RETURN(item, NULL);
 +   return item-view;
 +}
 +
   /* happy debug functions */
   #ifdef ELM_DEBUG
   static void
 diff --git a/src/lib/elm_widget.h b/src/lib/elm_widget.h
 index 945ef9d..ef41e15 100644
 --- a/src/lib/elm_widget.h
 +++ b/src/lib/elm_widget.h
 @@ -772,6 +772,7 @@ EAPI void
 _elm_widget_item_domain_translatable_part_text_set(Elm_Wid
   EAPI const char * _elm_widget_item_translatable_part_text_get(const
 Elm_Widget_Item *item, const char *part);
   EAPI void _elm_widget_item_translate(Elm_Widget_Item *item);
   EAPI void
 _elm_widget_item_domain_part_text_translatable_set(Elm_Widget_Item *item,
 const char *part, const char *domain, Eina_Bool translatable);
 +EAPI const Evas_Object *_elm_widget_item_object_get(const Elm_Widget_Item
 *item);

   /**
* Function to operate on a given widget's scrollabe children when
 necessary.

 --


 --
 Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
 Discover the easy way to master current and previous Microsoft technologies
 and advance your career. Get an incredible 1,500+ hours of step-by-step
 tutorial videos with LearnDevNow. Subscribe today and save!
 http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk

 --
 Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
 Discover the easy way to master current and previous Microsoft technologies
 and advance your career. Get an incredible 1,500+ hours of step-by-step
 tutorial videos with LearnDevNow. Subscribe today and save!
 http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

 --
 Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
 Discover the easy way to master current and previous Microsoft technologies
 and advance your career. Get an incredible 1,500+ hours of step-by-step
 tutorial videos with LearnDevNow. Subscribe today and save!
 http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel




 --
 Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
 Discover the easy way to master current and previous Microsoft technologies
 and advance your career. Get an incredible 1,500+ hours of step-by-step
 tutorial videos with LearnDevNow. Subscribe today and save!
 http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



-- 
Rafael Antognolli

--
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo

Re: [E-devel] [EGIT] [core/elementary] elementary-1.7 01/01: Added clouseau integration.

2013-08-30 Thread Rafael Antognolli
!
 http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



-- 
Rafael Antognolli

--
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/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] elementary-1.7 01/01: Added clouseau integration.

2013-08-30 Thread Rafael Antognolli
Nah, it was a joke.

+1 from me

On Fri, Aug 30, 2013 at 6:11 PM, Tom Hacohen t...@stosb.com wrote:
 I'm fine with removing it if you really think that.
 I only added it because it's a code path that doesn't run unless you
 activate it, and that it's not a feature per se.

 I know it's problematic, and I guess, that if I had seen someone else's
 code that does something similar I might have objected.

 So let's see what other people think as well.

 --
 Tom.


 On Fri, Aug 30, 2013 at 6:03 PM, Rafael Antognolli 
 antogno...@gmail.comwrote:

 I think it will create a precedence!

 On Fri, Aug 30, 2013 at 12:48 PM, Tom Hacohen tom.haco...@samsung.com
 wrote:
  I think it's fine for 1.7, but let me know if you think it's too much of
  a feature and that can hurt stability. It's only activated if the
  environment variable is set, so I don't see much harm.
 
  --
  Tom.
 
  On 30/08/13 16:41, Tom 'TAsn' Hacohen - Enlightenment Git wrote:
  tasn pushed a commit to branch elementary-1.7.
 
  commit 49a3f7ee22b6ddf0869a6ba82660308c3f4d0bbd
  Author: Tom 'TAsn' Hacohen t...@stosb.com
  Date:   Fri Aug 30 16:39:51 2013 +0100
 
   Added clouseau integration.
 
   You need to make sure the clouseau daemon is running (clouseaud),
 and then
   you can just run applications by setting the env var ELM_CLOUSEAU
 to 1.
   This is very useful for platforms that do not have LD_PRELOAD, or
 block
   them for any reason.
   Most people should just stick to using clouseau_start or clouseau.
  ---
ChangeLog  |  5 
NEWS   |  3 +++
src/lib/elm_main.c | 72
 ++
3 files changed, 80 insertions(+)
 
  diff --git a/ChangeLog b/ChangeLog
  index bdfa90e..29ce358 100644
  --- a/ChangeLog
  +++ b/ChangeLog
  @@ -840,3 +840,8 @@
2013-08-02  Eduardo Lima (Etrunko)
 
* 1.7.8 release
  +
  +2013-08-30  Tom Hacohen (TAsn)
  +
  + * Clouseau: Added clouseau integration.
  +
  diff --git a/NEWS b/NEWS
  index 21c2a59..6866407 100644
  --- a/NEWS
  +++ b/NEWS
  @@ -3,6 +3,9 @@ Elementary 1.7.8
Changes since Elementary 1.7.7:
-
 
  +Improvements:
  +   * Clouseau: Added clouseau integration.
  +
Fixes:
 
   * Fix potential free'ed memory dereference in naviframe.
  diff --git a/src/lib/elm_main.c b/src/lib/elm_main.c
  index 1a09663..81e6103 100644
  --- a/src/lib/elm_main.c
  +++ b/src/lib/elm_main.c
  @@ -23,6 +23,12 @@
 
#define SEMI_BROKEN_QUICKLAUNCH 1
 
  +#ifdef __CYGWIN__
  +# define LIBEXT .dll
  +#else
  +# define LIBEXT .so
  +#endif
  +
static Elm_Version _version = { VMAJ, VMIN, VMIC, VREV };
EAPI Elm_Version *elm_version = _version;
 
  @@ -198,6 +204,55 @@ _prefix_shutdown(void)
   app_pfx = NULL;
}
 
  +static struct {
  + Eina_Module *handle;
  + void (*init)(void);
  + void (*shutdown)(void);
  + Eina_Bool (*app_connect)(const char *appname);
  +} _clouseau_info;
  +
  +#define _CLOUSEAU_LOAD_SYMBOL(cls_struct, sym) \
  +   do \
  + { \
  +(cls_struct).sym = eina_module_symbol_get((cls_struct).handle,
 clouseau_ #sym); \
  +if (!(cls_struct).sym) \
  +  { \
  + WRN(Failed loading symbol '%s' from the clouseau
 library., clouseau_ #sym); \
  + eina_module_free((cls_struct).handle); \
  + (cls_struct).handle = NULL; \
  + return EINA_FALSE; \
  +  } \
  + } \
  +   while (0)
  +
  +static Eina_Bool
  +_clouseau_module_load()
  +{
  +   const char *elm_clouseau_env = getenv(ELM_CLOUSEAU);
  +   Eina_Bool want_cls = EINA_FALSE;
  +   if (elm_clouseau_env)
  +  want_cls = atoi(elm_clouseau_env);
  +
  +   if (!want_cls)
  +  return EINA_FALSE;
  +
  +   _clouseau_info.handle = eina_module_new(
  + PACKAGE_LIB_DIR /clouseau/libclouseau LIBEXT);
  +   if (!eina_module_load(_clouseau_info.handle))
  + {
  +WRN(Failed loading the clouseau library.);
  +eina_module_free(_clouseau_info.handle);
  +_clouseau_info.handle = NULL;
  +return EINA_FALSE;
  + }
  +
  +   _CLOUSEAU_LOAD_SYMBOL(_clouseau_info, init);
  +   _CLOUSEAU_LOAD_SYMBOL(_clouseau_info, shutdown);
  +   _CLOUSEAU_LOAD_SYMBOL(_clouseau_info, app_connect);
  +
  +   return EINA_TRUE;
  +}
  +
EAPI int
elm_init(intargc,
 char **argv)
  @@ -206,6 +261,16 @@ elm_init(intargc,
   if (_elm_init_count  1) return _elm_init_count;
   elm_quicklaunch_sub_init(argc, argv);
   _prefix_shutdown();
  +
  +   if (_clouseau_module_load())
  + {
  +_clouseau_info.init();
  +if(!_clouseau_info.app_connect(argv[0]))
  +  {
  + ERR(Failed connecting to the clouseau server.);
  +  }
  + }
  +
   return _elm_init_count;
}
 
  @@ -221,6 +286,13 @@ elm_shutdown(void)
   if (_elm_init_count  0) return _elm_init_count;
   _elm_win_shutdown

Re: [E-devel] [EGIT] [core/efl] master 01/01: Revert Remove Call to _ecore_evas_wayland_resize on a configure event.

2013-08-20 Thread Rafael Antognolli
I'm sorry, not sure how to fix it without this, but if we remove this
line, the resize to left/top with win_key + middle click is
broken.

If you have any idea for a better solution, I'm all up for it, but so
far if this is removed, we have broken behavior.

I can take a look at it later (another day), but resize is a very
complex code, whatever you change you also need to check lots of
things. For instance, resize with middle click, dragging the edje of
the window, both engines, check when the window is rotated, etc.

On Tue, Aug 20, 2013 at 12:57 PM, Rafael Antognolli - Enlightenment
Git no-re...@enlightenment.org wrote:
 antognolli pushed a commit to branch master.

 commit ffa9d69180bd6db11aa3cdd06977f291d411734b
 Author: Rafael Antognolli rafael.antogno...@intel.com
 Date:   Wed Aug 21 12:55:14 2013 -0300

 Revert Remove Call to _ecore_evas_wayland_resize on a configure event.

 This reverts commit 5eeb820b0fd7fdaef0c29dc6a53870e5ee436fbf.
 ---
  src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c | 2 ++
  1 file changed, 2 insertions(+)

 diff --git 
 a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c 
 b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
 index a87bc85..1a94b83 100644
 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
 +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c
 @@ -272,6 +272,8 @@ _ecore_evas_wl_common_cb_window_configure(void *data 
 EINA_UNUSED, int type EINA_

   win-server_allocation = win-allocation;
   ecore_wl_window_update_size(wdata-win, ev-w, ev-h);
 +
 + _ecore_evas_wayland_resize(ee, win-edges);
}

  if (wdata-frame)

 --

 --
 Introducing Performance Central, a new site from SourceForge and
 AppDynamics. Performance Central is your source for news, insights,
 analysis and resources for efficient Application Performance Management.
 Visit us today!
 http://pubads.g.doubleclick.net/gampad/clk?id=48897511iu=/4140/ostg.clktrk



-- 
Rafael Antognolli

--
Introducing Performance Central, a new site from SourceForge and 
AppDynamics. Performance Central is your source for news, insights, 
analysis and resources for efficient Application Performance Management. 
Visit us today!
http://pubads.g.doubleclick.net/gampad/clk?id=48897511iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Nominating Artie U. Eoff as a committer

2013-08-09 Thread Rafael Antognolli
Done.

On Thu, Aug 8, 2013 at 7:38 AM, Christopher Michael
cp.mich...@samsung.com wrote:
 On 08/08/13 11:16, Kai Huuhko wrote:
 Relax, he said C++ and Python so everything's fine.

 Oh Crap, I missed that in the text :( Quick, Revoke Access Immediately
 ... we don't want that crud infecting efl ;)

 dh


 2013/8/8 Tom Hacohen tom.haco...@samsung.com

 On 07/08/13 19:31, Eoff, Ullysses A wrote:
 Hello all,

 I've been leading a team at Intel responsible for testing Wayland and
 various toolkits such as EFL.  I've been testing Wayland for about 1.5
 years now.  I architected an automated test suite called wayland-fits (
 https://github.com/01org/wayland-fits) which has ~300 test cases for
 EFL-Wayland (amongst others).  We build and test EFL-wayland daily (stable
 and master).  I've also had a few patches accepted into EFL-Wayland in the
 past.

 My primary programming strengths are C++ and Python, but know C and
 others as well.

 Prior to Wayland I worked on a project called CellSim (http://cdres.com)
 for ~7 years.  This was an intense project where I was a primary
 test-driven developer for the GUI Client (using OpenGL;
 http://cdres.com/images/Screenshot-Endogenics.png,
 http://cdres.com/images/home_photos), Biological Cell Simulator Engine
 (Server), and it's automated testing framework.

 I currently live in Portland, Oregon USA and enjoy family, the outdoors,
 craft beer, bbq'ing, and fishing ;-)

 Some of you may remember being slapped by me on IRC with a large, slimy
 trout in the recent past ;-)

 More about me at http://www.linkedin.com/in/uartie.

 I don't expect to have a lot of time to create patches for EFL other
 than fixing trivial bugs and build failures as they arise in EFL-Wayland.
   I'll be more of an auxiliary contributor to devilhorns, antognolli, and
 etrunko when needed.

 P.S. I am not french... ;-)



 A, we can't give a C++ guy commit access!

 I think we need more information about the crafting beer part, but other
 than that, I think it's alright.

 --
 Tom.





 --
 Get 100% visibility into Java/.NET code with AppDynamics Lite!
 It's a free troubleshooting tool designed for production.
 Get down to code-level detail for bottlenecks, with 2% overhead.
 Download for free and get started troubleshooting in minutes.
 http://pubads.g.doubleclick.net/gampad/clk?id=48897031iu=/4140/ostg.clktrk
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



-- 
Rafael Antognolli

--
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with 2% overhead. 
Download for free and get started troubleshooting in minutes. 
http://pubads.g.doubleclick.net/gampad/clk?id=48897031iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] Nominating Artie U. Eoff as a committer

2013-08-07 Thread Rafael Antognolli
Hi everyone,

I would like to propose to give Artie commit rights.

Artie has been helping us find bugs and proposing fixes for EFL since
quite some time now. Giving him commit rights would enable us to have
quicker fixes whenever EFL build is broken, specially the Wayland
build.

And he can introduce himself better if he wants.

Those in favor or against it, raise your hands.

Regards,
-- 
Rafael Antognolli

--
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with 2% overhead. 
Download for free and get started troubleshooting in minutes. 
http://pubads.g.doubleclick.net/gampad/clk?id=48897031iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] Wayland and subsurfaces

2013-08-07 Thread Rafael Antognolli
Hey guys,

I'm trying to add Wayland's subsurfaces support to EFL, but not sure
about how to expose it.

Actually, I'm not even sure if we should expose it or not. The only
similar thing that I saw so far was the video overlay stuff, which I
don't know exactly if it's the same thing.

If not, what would it be? A sub-canvas of the main canvas? Or should I
just expose something in the ecore_wayland_* namespace?

Any thoughts?

Thanks,
-- 
Rafael Antognolli

--
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with 2% overhead. 
Download for free and get started troubleshooting in minutes. 
http://pubads.g.doubleclick.net/gampad/clk?id=48897031iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Wayland and subsurfaces

2013-08-07 Thread Rafael Antognolli
BTW, more info here, where it's well explained:

http://lists.freedesktop.org/archives/wayland-devel/2012-December/006623.html

On Wed, Aug 7, 2013 at 4:32 PM, Rafael Antognolli antogno...@gmail.com wrote:
 Hey guys,

 I'm trying to add Wayland's subsurfaces support to EFL, but not sure
 about how to expose it.

 Actually, I'm not even sure if we should expose it or not. The only
 similar thing that I saw so far was the video overlay stuff, which I
 don't know exactly if it's the same thing.

 If not, what would it be? A sub-canvas of the main canvas? Or should I
 just expose something in the ecore_wayland_* namespace?

 Any thoughts?

 Thanks,
 --
 Rafael Antognolli



-- 
Rafael Antognolli

--
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with 2% overhead. 
Download for free and get started troubleshooting in minutes. 
http://pubads.g.doubleclick.net/gampad/clk?id=48897031iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [EGIT] [legacy/ecore] ecore-1.7 01/01: Backport 1210067fbeb21bdce34ec710e66749de981a1617.

2013-08-06 Thread Rafael Antognolli
On Sat, Aug 3, 2013 at 12:50 AM, Carsten Haitzler ras...@rasterman.com wrote:
 On Fri, 02 Aug 2013 13:52:46 -0700 Rafael Antognolli - Enlightenment Git
 no-re...@enlightenment.org said:

 let me get this right. if we have rendered and sent a frame off to the
 compositor, we will drop/skip all renders UNTIL the compositor sends back a
 i'm done - frame presented now. right?

Yeah, otherwise calling eglSwapBuffers will block until the compositor
is done with that frame.

It was discussed here: http://trac.enlightenment.org/e/ticket/1280

 antognolli pushed a commit to branch ecore-1.7.

 commit 6a53facca7028a4d8404c83b8ba5630393c5a615
 Author: Rafael Antognolli rafael.antogno...@intel.com
 Date:   Sat Aug 3 16:52:00 2013 -0300

 Backport 1210067fbeb21bdce34ec710e66749de981a1617.

 ecore_evas/wayland_egl: Only render if last frame has been presented.

 This avoids blocking in eglSwapBuffers and has the side effect of
 avoiding doing unnecessary work - painting where a frame won't be
 presented.

 We do this by using the event that the wayland compositor will send us
 to tell us that the frame has been presented. Due to the fact that
 evas_render_updates() could do no work and not cause a eglSwapBuffers we
 must always have a frame callback listener setup.

 Original patch by: Rob Bradford r...@linux.intel.com

 (I just adjusted the patch to the single efl tree)
 ---
  src/lib/ecore_evas/ecore_evas_wayland_egl.c | 66 ++
 +-- 1 file changed, 53 insertions(+), 13 deletions(-)

 diff --git a/src/lib/ecore_evas/ecore_evas_wayland_egl.c
 b/src/lib/ecore_evas/ecore_evas_wayland_egl.c index 504b5e2..36695d5 100644
 --- a/src/lib/ecore_evas/ecore_evas_wayland_egl.c
 +++ b/src/lib/ecore_evas/ecore_evas_wayland_egl.c
 @@ -176,7 +176,7 @@ static Ecore_Evas_Engine_Func _ecore_wl_engine_func =
 NULL,
 NULL,
 NULL,
 -   _ecore_evas_wl_render,
 +   _ecore_evas_wl_render,
 _ecore_evas_wl_screen_geometry_get,
 _ecore_evas_wl_screen_dpi_get
  };
 @@ -828,6 +828,30 @@ _ecore_evas_wl_transparent_set(Ecore_Evas *ee, int
 transparent) }
  }

 +static void
 +_ecore_evas_wl_frame_complete(void *data, struct wl_callback *callback,
 uint32_t time __UNUSED__); +
 +static const struct wl_callback_listener frame_listener = {
 +   _ecore_evas_wl_frame_complete,
 +};
 +
 +static void
 +_ecore_evas_wl_frame_complete(void *data, struct wl_callback *callback,
 uint32_t time __UNUSED__) +{
 +   Ecore_Evas *ee = data;
 +   Ecore_Wl_Window *win = ee-engine.wl.win;
 +
 +   win-frame_callback = NULL;
 +   win-frame_pending = EINA_FALSE;
 +   wl_callback_destroy(callback);
 +
 +   win-frame_callback =
 +  wl_surface_frame(win-surface);
 +
 +   wl_callback_add_listener(win-frame_callback,
 +frame_listener, ee);
 +}
 +
  static int
  _ecore_evas_wl_render(Ecore_Evas *ee)
  {
 @@ -840,6 +864,7 @@ _ecore_evas_wl_render(Ecore_Evas *ee)
   {
  Eina_List *ll = NULL, *updates = NULL;
  Ecore_Evas *ee2 = NULL;
 +Ecore_Wl_Window *win = NULL;

  if (ee-func.fn_pre_render) ee-func.fn_pre_render(ee);

 @@ -851,25 +876,40 @@ _ecore_evas_wl_render(Ecore_Evas *ee)
   if (ee2-func.fn_post_render) ee2-func.fn_post_render(ee2);
}

 -if ((updates = evas_render_updates(ee-evas)))
 +win = ee-engine.wl.win;
 +
 +if (!win-frame_pending)
{
 - Eina_List *l = NULL;
 - Eina_Rectangle *r;
 + if (!win-frame_callback)
 +   {
 +  win-frame_callback = wl_surface_frame(win-surface);
 +  wl_callback_add_listener(win-frame_callback,
 +   frame_listener, ee);
 +   }
 +
 + if ((updates = evas_render_updates(ee-evas)))
 +   {
 +  Eina_List *l = NULL;
 +  Eina_Rectangle *r;
 +
 +  LOGFN(__FILE__, __LINE__, __FUNCTION__);

 - LOGFN(__FILE__, __LINE__, __FUNCTION__);
 +  EINA_LIST_FOREACH(updates, l, r)
 + ecore_wl_window_damage(win,
 +r-x, r-y, r-w, r-h);

 - EINA_LIST_FOREACH(updates, l, r)
 -   ecore_wl_window_damage(ee-engine.wl.win,
 -  r-x, r-y, r-w, r-h);
 +  ecore_wl_flush();

 - ecore_wl_flush();
 +  evas_render_updates_free(updates);
 +  _ecore_evas_idle_timeout_update(ee);
 +  rend = 1;
 +
 +  win-frame_pending = EINA_TRUE;
 +   }

 - evas_render_updates_free(updates);
 - _ecore_evas_idle_timeout_update(ee);
 - rend = 1;
 + if (ee-func.fn_post_render) ee-func.fn_post_render(ee);
}

 -if (ee-func.fn_post_render) ee-func.fn_post_render(ee

Re: [E-devel] [EGIT] [legacy/ecore] ecore-1.7 01/01: Backport 1210067fbeb21bdce34ec710e66749de981a1617.

2013-08-06 Thread Rafael Antognolli
Is it OK if we leave it as it's now for 1.7 branch? I added this
mostly to fix the current issues caused by blocking the mainloop. I
think there are some race conditions triggered by not waiting for the
frame callback, that are making the wayland event queue to starve
waiting for events when we don't wait for the frame callback. One
example is the elementary glview example, I don't know why but it does
not work correctly without this.

Now, for the correct fix on 1.8, see below.

On Tue, Aug 6, 2013 at 9:26 PM, Carsten Haitzler ras...@rasterman.com wrote:
 On Tue, 6 Aug 2013 11:47:37 -0300 Rafael Antognolli antogno...@gmail.com 
 said:

 On Sat, Aug 3, 2013 at 12:50 AM, Carsten Haitzler ras...@rasterman.com
 wrote:
  On Fri, 02 Aug 2013 13:52:46 -0700 Rafael Antognolli - Enlightenment Git
  no-re...@enlightenment.org said:
 
  let me get this right. if we have rendered and sent a frame off to the
  compositor, we will drop/skip all renders UNTIL the compositor sends back a
  i'm done - frame presented now. right?

 Yeah, otherwise calling eglSwapBuffers will block until the compositor
 is done with that frame.

 It was discussed here: http://trac.enlightenment.org/e/ticket/1280

 this is bad when using manual rendering. a manual render may be skipped. if 
 you
 do ecore_evas_manual_render() then this has to block until compositor ok's it.

 this is also why i think with wl we should take charge of buffer swapping and
 actually explicitly do triple buffering so the client can render a frame ahead
 without skipping (and sleeping) or blocking. important for performance
 especially if your gpu is weak, or you are pushing the limits and now 
 inserting
 sleep times dropping performance even more.

I totally agree about the triple buffering and that we should be able
to render as much as we can without blocking because the compositor is
not ready yet. However, what do you mean by we should take charge of
buffer swapping? Aren't we doing this already?

Also, would the triple buffering solution fix the manual render problem too?

 if you have plenty of rendering grunt to spare, it makes no real big
 difference... but not if you are pushing the boundaries.

 also manual control of buffers means we can literally free all buffers (except
 current displayed front-buffer) when evas goes idle for long enough (we have 
 an
 idle flush engine call already).

That would be good, indeed. I'm not sure what we have regarding this,
but I think it can be done.

Devilhorns, any thoughts?


  antognolli pushed a commit to branch ecore-1.7.
 
  commit 6a53facca7028a4d8404c83b8ba5630393c5a615
  Author: Rafael Antognolli rafael.antogno...@intel.com
  Date:   Sat Aug 3 16:52:00 2013 -0300
 
  Backport 1210067fbeb21bdce34ec710e66749de981a1617.
 
  ecore_evas/wayland_egl: Only render if last frame has been presented.
 
  This avoids blocking in eglSwapBuffers and has the side effect of
  avoiding doing unnecessary work - painting where a frame won't be
  presented.
 
  We do this by using the event that the wayland compositor will send us
  to tell us that the frame has been presented. Due to the fact that
  evas_render_updates() could do no work and not cause a eglSwapBuffers
  we must always have a frame callback listener setup.
 
  Original patch by: Rob Bradford r...@linux.intel.com
 
  (I just adjusted the patch to the single efl tree)
  ---
   src/lib/ecore_evas/ecore_evas_wayland_egl.c | 66 ++
  +-- 1 file changed, 53 insertions(+), 13 deletions(-)
 
  diff --git a/src/lib/ecore_evas/ecore_evas_wayland_egl.c
  b/src/lib/ecore_evas/ecore_evas_wayland_egl.c index 504b5e2..36695d5 
  100644
  --- a/src/lib/ecore_evas/ecore_evas_wayland_egl.c
  +++ b/src/lib/ecore_evas/ecore_evas_wayland_egl.c
  @@ -176,7 +176,7 @@ static Ecore_Evas_Engine_Func _ecore_wl_engine_func =
  NULL,
  NULL,
  NULL,
  -   _ecore_evas_wl_render,
  +   _ecore_evas_wl_render,
  _ecore_evas_wl_screen_geometry_get,
  _ecore_evas_wl_screen_dpi_get
   };
  @@ -828,6 +828,30 @@ _ecore_evas_wl_transparent_set(Ecore_Evas *ee, int
  transparent) }
   }
 
  +static void
  +_ecore_evas_wl_frame_complete(void *data, struct wl_callback *callback,
  uint32_t time __UNUSED__); +
  +static const struct wl_callback_listener frame_listener = {
  +   _ecore_evas_wl_frame_complete,
  +};
  +
  +static void
  +_ecore_evas_wl_frame_complete(void *data, struct wl_callback *callback,
  uint32_t time __UNUSED__) +{
  +   Ecore_Evas *ee = data;
  +   Ecore_Wl_Window *win = ee-engine.wl.win;
  +
  +   win-frame_callback = NULL;
  +   win-frame_pending = EINA_FALSE;
  +   wl_callback_destroy(callback);
  +
  +   win-frame_callback =
  +  wl_surface_frame(win-surface);
  +
  +   wl_callback_add_listener(win-frame_callback,
  +frame_listener, ee);
  +}
  +
   static int
   _ecore_evas_wl_render(Ecore_Evas *ee)
   {
  @@ -840,6 +864,7 @@ _ecore_evas_wl_render(Ecore_Evas *ee

[E-devel] Release tarballs for testing - EFL 1.7.8 and Enlightenment 0.17.4

2013-07-30 Thread Rafael Antognolli
Hi everyone,

Etrunko is planning to do a new release of stable EFL and
Enlightenment, and has prepared some tarballs for everyone to test it
before actually doing the release.

Following are the links to these tarballs, anyone who could test them
is very welcome.

 - Eina 1.7.8 -
[[http://download.enlightenment.org/releases/eina-1.7.8.tar.gz | GZ ]]
[[http://download.enlightenment.org/releases/eina-1.7.8.tar.bz2 | BZ2 ]]
 - Eet 1.7.8 -
[[http://download.enlightenment.org/releases/eet-1.7.8.tar.gz | GZ ]]
[[http://download.enlightenment.org/releases/eet-1.7.8.tar.bz2 | BZ2 ]]
 - Evas 1.7.8 -
[[http://download.enlightenment.org/releases/evas-1.7.8.tar.gz | GZ ]]
[[http://download.enlightenment.org/releases/evas-1.7.8.tar.bz2 | BZ2 ]]
 - Ecore 1.7.8 -
[[http://download.enlightenment.org/releases/ecore-1.7.8.tar.gz | GZ ]]
[[http://download.enlightenment.org/releases/ecore-1.7.8.tar.bz2 | BZ2 ]]
 - Embryo 1.7.8 -
[[http://download.enlightenment.org/releases/embryo-1.7.8.tar.gz | GZ ]]
[[http://download.enlightenment.org/releases/embryo-1.7.8.tar.bz2 | BZ2 ]]
 - Edje 1.7.8 -
[[http://download.enlightenment.org/releases/edje-1.7.8.tar.gz | GZ ]]
[[http://download.enlightenment.org/releases/edje-1.7.8.tar.bz2 | BZ2 ]]
 - Efreet 1.7.8 -
[[http://download.enlightenment.org/releases/efreet-1.7.8.tar.gz | GZ ]]
[[http://download.enlightenment.org/releases/efreet-1.7.8.tar.bz2 | BZ2 ]]
 - E_dbus 1.7.8 -
[[http://download.enlightenment.org/releases/e_dbus-1.7.8.tar.gz | GZ ]]
[[http://download.enlightenment.org/releases/e_dbus-1.7.8.tar.bz2 | BZ2 ]]
 - Eeze 1.7.8 -
[[http://download.enlightenment.org/releases/eeze-1.7.8.tar.gz | GZ ]]
[[http://download.enlightenment.org/releases/eeze-1.7.8.tar.bz2 | BZ2 ]]
 - Expedite 1.7.8 -
[[http://download.enlightenment.org/releases/expedite-1.7.8.tar.gz | GZ ]]
[[http://download.enlightenment.org/releases/expedite-1.7.8.tar.bz2 | BZ2 ]]
 - Evas Generic Loaders 1.7.8 -
[[http://download.enlightenment.org/releases/evas_generic_loaders-1.7.8.tar.gz
| GZ ]]
[[http://download.enlightenment.org/releases/evas_generic_loaders-1.7.8.tar.bz2
| BZ2 ]]
 - Eio 1.7.8 -
[[http://download.enlightenment.org/releases/eio-1.7.8.tar.gz | GZ ]]
[[http://download.enlightenment.org/releases/eio-1.7.8.tar.bz2 | BZ2 ]]
 - Emotion 1.7.8 -
[[http://download.enlightenment.org/releases/emotion-1.7.8.tar.gz | GZ ]]
[[http://download.enlightenment.org/releases/emotion-1.7.8.tar.bz2 | BZ2 ]]
 - Ethumb 1.7.8 -
[[http://download.enlightenment.org/releases/ethumb-1.7.8.tar.gz | GZ ]]
[[http://download.enlightenment.org/releases/ethumb-1.7.8.tar.bz2 | BZ2 ]]
 - Elementary 1.7.8 -
[[http://download.enlightenment.org/releases/elementary-1.7.8.tar.gz | GZ ]]
[[http://download.enlightenment.org/releases/elementary-1.7.8.tar.bz2 | BZ2 ]]
 - Evil 1.7.8 -
[[http://download.enlightenment.org/releases/evil-1.7.8.tar.gz | GZ ]]
[[http://download.enlightenment.org/releases/evil-1.7.8.tar.bz2 | BZ2 ]]

- Enlightenment 0.17.4 -
[[http://download.enlightenment.org/releases/enlightenment-0.17.4.tar.gz | GZ ]]
[[http://download.enlightenment.org/releases/enlightenment-0.17.4.tar.bz2
| BZ2 ]]


Regards,
-- 
Rafael Antognolli

--
Get your SQL database under version control now!
Version control is standard for application code, but databases havent 
caught up. So what steps can you take to put your SQL databases under 
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Wrong linespacing (I guess) on 1.7 branch

2013-07-15 Thread Rafael Antognolli
On Mon, Jul 15, 2013 at 9:37 AM, Tom Hacohen tom.haco...@samsung.com wrote:
 On 12/07/13 22:13, Rafael Antognolli wrote:

 Hi Tom,

 I think the following commit broke the calculation of linespace on 1.7
 branch:

 79bfa9cd10ee64f49008bf3638db77fd2c557552

 It has your name on it, so I think you can help here :P

 The error was first noticed on elementary client side window
 decorations in wayland backend, but you can can also see it just by
 comparing two versions of elementary test running (on X11 too) side by
 side, one on master and another on 1.7. Or take screenshots. You will
 notice that in elementary_test, the genlist row height is different
 between both versions.

 Let me know if you need more help to reproduce it, or if you want me
 to open a ticket on phab.


 Hey,

 Just tried to reproduce it, I can't. 1.7 and master look the same. I tried
 the genlist test. Well, there's one apparent reason, 1.7 doesn't have the
 shadows of overlapping genlist items. Am I missing something? Tried 1.7.7
 (latest on arch).

OK, will open a ticket, but that commit is on top of 1.7.7. That means
evas-1.7 branch, so it doesn't happen on the released version. But
will be there on a possible future release (1.7.8, if that happens).

--
Rafael Antognolli

--
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/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: examples: Add missing Ecore_Eo.h for some defines.

2013-07-12 Thread Rafael Antognolli
Hey Stefan,

Ecore.h already includes Ecore_Eo.h, so why do we need this extra include?

Regards,
Rafael

On Thu, Jul 11, 2013 at 5:44 AM, Stefan Schmidt - Enlightenment Git
no-re...@enlightenment.org wrote:
 stefan pushed a commit to branch master.

 commit d10be60e30f19bc355a99018c6b07b265702f04a
 Author: Stefan Schmidt s.schm...@samsung.com
 Date:   Thu Jul 11 09:41:05 2013 +0100

 examples: Add missing Ecore_Eo.h for some defines.

 If we are shuffling headers around testing if in-tree examples are
 still working fine might be a sensible thing to do. Everybody agrees
 on that?
 ---
  src/examples/ecore/ecore_idler_example.c  | 1 +
  src/examples/ecore/ecore_poller_example.c | 1 +
  2 files changed, 2 insertions(+)

 diff --git a/src/examples/ecore/ecore_idler_example.c 
 b/src/examples/ecore/ecore_idler_example.c
 index de69a44..faef3a5 100644
 --- a/src/examples/ecore/ecore_idler_example.c
 +++ b/src/examples/ecore/ecore_idler_example.c
 @@ -2,6 +2,7 @@
  // gcc -o ecore_idler_example ecore_idler_example.c `pkg-config --libs 
 --cflags ecore eo`

  #include Ecore.h
 +#include Ecore_Eo.h
  #include unistd.h

  struct context   // helper struct to give some context to the callbacks
 diff --git a/src/examples/ecore/ecore_poller_example.c 
 b/src/examples/ecore/ecore_poller_example.c
 index ef8592b..1f76465 100644
 --- a/src/examples/ecore/ecore_poller_example.c
 +++ b/src/examples/ecore/ecore_poller_example.c
 @@ -2,6 +2,7 @@
  // gcc -o ecore_poller_example ecore_poller_example.c `pkg-config --libs 
 --cflags ecore eo`

  #include Ecore.h
 +#include Ecore_Eo.h
  #include unistd.h

  static double _initial_time = 0;

 --

 --
 See everything from the browser to the database with AppDynamics
 Get end-to-end visibility with application monitoring from AppDynamics
 Isolate bottlenecks and diagnose root cause in seconds.
 Start your free trial of AppDynamics Pro today!
 http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk



-- 
Rafael Antognolli

--
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] Wrong linespacing (I guess) on 1.7 branch

2013-07-12 Thread Rafael Antognolli
Hi Tom,

I think the following commit broke the calculation of linespace on 1.7 branch:

79bfa9cd10ee64f49008bf3638db77fd2c557552

It has your name on it, so I think you can help here :P

The error was first noticed on elementary client side window
decorations in wayland backend, but you can can also see it just by
comparing two versions of elementary test running (on X11 too) side by
side, one on master and another on 1.7. Or take screenshots. You will
notice that in elementary_test, the genlist row height is different
between both versions.

Let me know if you need more help to reproduce it, or if you want me
to open a ticket on phab.

Regards,
--
Rafael Antognolli

--
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831iu=/4140/ostg.clktrk
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[E-devel] Elementary scroll bad behavior

2013-07-08 Thread Rafael Antognolli
Guys, anyone has noticed this?

At least with mobile profile on desktop, if I try to scroll the
genlist inside elementary_test, it goes to the end and I can't go back
to the beginning anymore. Just try it and it should be obvious that
there's something wrong.

Not sure if there's a ticket for this yet, but if there's no ticket
I'll just create a new one.

Regards,
--
Rafael Antognolli

--
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Elementary scroll bad behavior

2013-07-08 Thread Rafael Antognolli
On Mon, Jul 8, 2013 at 2:45 PM, Iván Briano sachi...@gmail.com wrote:
 On Mon, Jul 8, 2013 at 2:38 PM, Rafael Antognolli antogno...@gmail.com 
 wrote:
 Guys, anyone has noticed this?

 At least with mobile profile on desktop, if I try to scroll the
 genlist inside elementary_test, it goes to the end and I can't go back
 to the beginning anymore. Just try it and it should be obvious that
 there's something wrong.


 I saw that, opened elementary_config and chose the Mobile profile again
 (I was already using it, in theory), and it started working fine again.

Yep, just worked, thanks.

 Not sure if there's a ticket for this yet, but if there's no ticket
 I'll just create a new one.

 Regards,
 --
 Rafael Antognolli

 --
 This SF.net email is sponsored by Windows:

 Build for Windows Store.

 http://p.sf.net/sfu/windows-dev2dev
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

 --
 This SF.net email is sponsored by Windows:

 Build for Windows Store.

 http://p.sf.net/sfu/windows-dev2dev
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



--
Rafael Antognolli

--
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Question about getting content of item in Genlist

2013-07-05 Thread Rafael Antognolli
Actually, isn't possible to just access the genlist item group/class,
and get the data.item texts, and data.item contents?

The parts defined in these fields should be the ones which are called
by the item_content_get and item_label_get functions, aren't they?

Regards,

On Thu, Jul 4, 2013 at 9:50 PM, ChunEon Park her...@naver.com wrote:
 Currently, no.

 If the theme supports extra content/text parts,  those names should be 
 documented.

 Only wiith just part type/part name, we aren't sure what those parts are 
 designed for actually.

 If those parts were designed for only internal stage, then you should not 
 access them even if you can get the parts info.

 I think app or somewhere needs to register the valid parts names so as to 
 access the parts by you.


 
 -Regards, Hermet-

 -Original Message-
 From: Radosław Jabłońskiradoslaw.jablon...@comarch.com
 To: Enlightenment-develenlightenment-devel@lists.sourceforge.net;
 Cc:
 Sent: 2013-07-04 (목) 22:14:30
 Subject: [E-devel] Question about getting content of item in Genlist

 Hello all,

 I'm working on library that will integrate Gnome Accessibility Toolkit
 (ATK) with EFL libraries, so I'm interested in retrieving all kinds of
 data that is displayed by elementary widgets.

 Actually I'm stuck on retrieving widget contents from items that are
 stored in Genlist container.
 I know that getting Evas_Object from Elm_Object_Item is possible via
 'elm_object_item_part_content_get' function - it works great when I know
 value of swallow_part string. For default theme things are pretty easy
 - I know that content can be in parts elm.text, elm.swallow.icon and
 elm.swallow.end. But (AFAIK) problem is that content string names can
 have custom values - and I can't hardcode every possible content part
 string that could be used by EFL Tizen apps:)

 So, is there any method to dynamically get all possible content part
 names that are used by target item in Genlist?

 Thanks in advance for any help.
 BR,
 Radoslaw Jablonski

 --
 This SF.net email is sponsored by Windows:

 Build for Windows Store.

 http://p.sf.net/sfu/windows-dev2dev
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

 --
 This SF.net email is sponsored by Windows:

 Build for Windows Store.

 http://p.sf.net/sfu/windows-dev2dev
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



-- 
Rafael Antognolli

--
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [EGIT] [core/efl] master 02/02: configure: Link eina to librt. This is needed for shm_* calls

2013-06-26 Thread Rafael Antognolli
Check m4/efl_check_funcs.m4, we have _EFL_CHECK_FUNC_SHM_OPEN there.
Can't we use it?

On Wed, Jun 26, 2013 at 9:24 AM, Carsten Haitzler ras...@rasterman.com wrote:
 On Wed, 26 Jun 2013 03:10:48 -0700 Daniel Willmann - Enlightenment Git
 no-re...@enlightenment.org said:

 i am not sure this is portable. other platforms may not have a librt... it
 probably needs an explicit check?

 asdfuser pushed a commit to branch master.

 commit 6445fea318f29fd6b1de0bc6fbe1b66bcc5673ba
 Author: Daniel Willmann d.willm...@samsung.com
 Date:   Wed Jun 26 10:57:24 2013 +0100

 configure: Link eina to librt. This is needed for shm_* calls

 Recent clang breaks with linking errors:
 lib/eina/.libs/libeina.so: undefined reference to `shm_open'
 so fix.

 Signed-off-by: Daniel Willmann d.willm...@samsung.com
 ---
  configure.ac | 1 +
  1 file changed, 1 insertion(+)

 diff --git a/configure.ac b/configure.ac
 index 80d8ffd..1d61972 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -709,6 +709,7 @@ AC_DEFINE_IF([EINA_STRINGSHARE_USAGE],
  EFL_PLATFORM_DEPEND([EINA], [all])

  EFL_ADD_LIBS([EINA], [-lm])
 +EFL_ADD_LIBS([EINA], [-lrt])

  ## Options


 --

 --
 This SF.net email is sponsored by Windows:

 Build for Windows Store.

 http://p.sf.net/sfu/windows-dev2dev



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


 --
 This SF.net email is sponsored by Windows:

 Build for Windows Store.

 http://p.sf.net/sfu/windows-dev2dev
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



-- 
Rafael Antognolli

--
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
___
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: elm_web: Fix up various typos from URL conversion.

2013-06-13 Thread Rafael Antognolli
It's Ryuan's first break :)

On Thu, Jun 13, 2013 at 12:56 PM, Tom Hacohen tom.haco...@samsung.com wrote:
 Stefan doesn't break things. He just fixes them. This is a fix for
 something he didn't do.

 --
 Tom.

 On 13/06/13 16:43, Daniel Juyung Seo wrote:
 Yay the first break!
 It was a good start :)
 There is a long way to join the b0rker group.

 Daniel Juyung Seo (SeoZ)


 On Thu, Jun 13, 2013 at 11:45 PM, Stefan Schmidt - Enlightenment Git 
 no-re...@enlightenment.org wrote:

 stefan pushed a commit to branch master.

 commit 6e6b2a38e4074bbff7c2194c4d76b0bb0d6b7912
 Author: Stefan Schmidt s.schm...@samsung.com
 Date:   Thu Jun 13 15:43:48 2013 +0100

  elm_web: Fix up various typos from URL conversion.

  Ryuan please check if I adapted these correctly. And next time please
  do a compile before pushing it. Spank :)

  Thanks to Uartie for spotting it.
 ---
   src/examples/web_example_02.c | 6 +++---
   1 file changed, 3 insertions(+), 3 deletions(-)

 diff --git a/src/examples/web_example_02.c b/src/examples/web_example_02.c
 index f9f3f40..ec5f10c 100644
 --- a/src/examples/web_example_02.c
 +++ b/src/examples/web_example_02.c
 @@ -462,7 +462,7 @@ default_content_set(Evas_Object *web)
   EAPI_MAIN int
   elm_main(int argc, char *argv[])
   {
 -   Evas_Object *win, *bg, *box, *box2, *btn, *ic, *url_entry, *naviframe,
 *tabs, *web;
 +   Evas_Object *win, *bg, *box, *box2, *btn, *ic, *url_bar, *naviframe,
 *tabs, *web;
  Evas *e;
  Evas_Modifier_Mask ctrl_mask;
  App_Data *ad;
 @@ -507,7 +507,7 @@ elm_main(int argc, char *argv[])
  elm_box_pack_end(box, url_bar);
  evas_object_show(url_bar);

 -   evas_object_smart_callback_add(url_bar, activated,
 _url_bar_activated_cb, ad);
 +   evas_object_smart_callback_add(url_bar, activated,
 _url_entry_activated_cb, ad);

  box2 = elm_box_add(win);
  elm_box_horizontal_set(box2, EINA_TRUE);
 @@ -607,7 +607,7 @@ elm_main(int argc, char *argv[])
  ad-win = win;
  ad-main_box = box;
  ad-naviframe = naviframe;
 -   ad-url_bar = url_bar;
 +   ad-url_entry = url_bar;
  ad-default_web = web;
  ad-tabs = tabs;
  ad-close_tab = btn;

 --


 --
 This SF.net email is sponsored by Windows:

 Build for Windows Store.

 http://p.sf.net/sfu/windows-dev2dev

 --
 This SF.net email is sponsored by Windows:

 Build for Windows Store.

 http://p.sf.net/sfu/windows-dev2dev
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



 --
 This SF.net email is sponsored by Windows:

 Build for Windows Store.

 http://p.sf.net/sfu/windows-dev2dev
 ___
 enlightenment-devel mailing list
 enlightenment-devel@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



-- 
Rafael Antognolli

--
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] Terminology ctrl + key on wayland

2013-06-12 Thread Rafael Antognolli
On Fri, Jun 7, 2013 at 10:11 PM, Carsten Haitzler ras...@rasterman.com wrote:
 On Fri, 7 Jun 2013 10:29:04 -0300 Rafael Antognolli antogno...@gmail.com 
 said:

 On Thu, Jun 6, 2013 at 8:52 PM, Carsten Haitzler ras...@rasterman.com 
 wrote:
  On Thu, 6 Jun 2013 19:59:55 -0300 Rafael Antognolli antogno...@gmail.com
  said:
 
  Hey guys,
 
  Is there anything specially done to handle these keys inside terminology?
 
  I just checked the ecore input stuff and the keys seem to be emitted
  with the necessary modifiers, but still CTRL+w won't delete the last
  word. Other ctrl combinations also don't work.
 
  Do you know of something that is specially done in X which is not done
  in Wayland?
 
  input for terminology is display system agnostic. it doesn't drop down to x
  or even raw ecore events. it works the same regardless - unless ecore-imf 
  is
  stealing input in wl vs x11. fyi ctrl+w works in x11 AND in framebuffer for
  me (in terminology).

 Yeah, I may have to check ecore-imf. I tested it in x11 too, and it
 worked fine, but good to know that it also works correctly in
 framebuffer.

 hmm it COULD be some of the new input method stuff in wl integrated into
 ecore-imf... oddly? wrongly? or it's taking over specific behaviours and 
 wanting
 to expose them as high level cmds?

Just fixed this by adding the following commit:

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

Not sure if it's the best fix though, I just copy  pasted from XCB backend.

PS: I accidentally removed the ML from cc.

--
Rafael Antognolli

--
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] elm/evas callback sequence

2013-06-11 Thread Rafael Antognolli
Hi,

On Tue, Jun 11, 2013 at 9:54 AM, Daniel Juyung Seo seojuyu...@gmail.com wrote:
 On Tue, Jun 11, 2013 at 9:42 PM, Leif Middelschulte 
 leif.middelschu...@gmail.com wrote:

 Am Dienstag, 11. Juni 2013 schrieb Daniel Juyung Seo :

  Hello, this follows elementary policy.
 
  1. focused object A lose its focus when another object is going to get
  focus.
  2. an object is focused when it's clicked.
 
  so the sequence is
  1. click object B
  2. focused object A lose its focus
  3. object B gets focus
 
  So only one object is focused at any point.
 
  It's not possible to unfocus other object before any other object is
  clicked.
  Because clicked signal will trigger unfocus signal.

 So, as I already imagined, it's due to the current implementation.


 Not just an implementation. It's a policy.


 Can't we trigger unfocused callbacks, before we trigger clicked
 callbacks? I assume that it's the way it is, because Edje understands


 How come?
 I repeat.
 1. An object is focused when it's clicked.
 2. An object is unfocused when other object is going to be focused.

 It means mouse click - unfocused - focused.

If I understood correctly, Leif is saying that this is not what is
happening, and his test proves that (I didn't try it). He is saying
that the current order is:

mouse click - focused - unfocused

Regards,
--
Rafael Antognolli

--
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev
___
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/callbacks: Prevent post_event_callback_call recursion.

2013-06-06 Thread Rafael Antognolli
On Thu, Jun 6, 2013 at 6:53 PM, Rafael Antognolli - Enlightenment Git
no-re...@enlightenment.org wrote:
 antognolli pushed a commit to branch master.

 commit 4b5d52fca12b74871f14883566b29ef274eaf860
 Author: Rafael Antognolli rafael.antogno...@intel.com
 Date:   Thu Jun 6 18:35:12 2013 -0300

 evas/callbacks: Prevent post_event_callback_call recursion.

 If this function is called recursively, it will free the list of post
 callbacks before the list stops being used, which will cause a segfault.

 The only place where this seems to happen is on
 https://phab.enlightenment.org/T124, probably due to the extensive mouse
 events which are launched in an unexpected way.

 This bug started happening after commit
 164cc07237395f8fe6efa465e4f0c0c4863f78ed, where the
 _elm_scroll_page_x_get() started being called by a post_event callback,
 and forcing an edje recalc. This recalc triggered another post_event
 callback, thus causing the mentioned segfault.

 If there's a better way to prevent this from happening, please change
 the mentioned code.
 ---
  src/lib/evas/canvas/evas_callbacks.c | 6 +-
  1 file changed, 5 insertions(+), 1 deletion(-)

 diff --git a/src/lib/evas/canvas/evas_callbacks.c 
 b/src/lib/evas/canvas/evas_callbacks.c
 index 4d1c16d..b85cc39 100644
 --- a/src/lib/evas/canvas/evas_callbacks.c
 +++ b/src/lib/evas/canvas/evas_callbacks.c
 @@ -152,9 +152,12 @@ _evas_post_event_callback_call(Evas *eo_e, 
 Evas_Public_Data *e)
  {
 Evas_Post_Callback *pc;
 int skip = 0;
 +   static int first_run = 1; // FIXME: This is a workaround to prevent this
 + // function from being called recursively.

 -   if (e-delete_me) return;
 +   if (e-delete_me || (!first_run)) return;
 _evas_walk(e);
 +   first_run = 0;
 EINA_LIST_FREE(e-post_events, pc)
   {
  if ((!skip)  (!e-delete_me)  (!pc-delete_me))
 @@ -163,6 +166,7 @@ _evas_post_event_callback_call(Evas *eo_e, 
 Evas_Public_Data *e)
}
  EVAS_MEMPOOL_FREE(_mp_pc, pc);
   }
 +   first_run = 1;
 _evas_unwalk(e);
  }

Can someone else take a look at this fix, and see if there's a
better solution?

Regards,
--
Rafael Antognolli

--
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations
2. Dashboards that offer high-level views of enterprise services
3. A single system of record for all IT processes
http://p.sf.net/sfu/servicenow-d2d-j
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


  1   2   3   4   >