Hello all,

So, we have the current implementation of Wayland framespace inside
Evas. It is done by setting/getting the current framespace area with:

 - evas_output_framespace_set (since 1.1)
 - evas_output_framespace_get (since 1.1)

and by setting some objects as being part of the frame:

 - evas_object_is_frame_object_set (since 1.2)
 - evas_object_is_frame_object_get (since 1.2)

Evas then adds the framespace offset manually to the objects marked as
being part of the frame during evas_object_move(), and remove them
when evas_object_geometry_get() is called. It also clips any object
which has no clipper to the main framespace clipper, in order to avoid
that objects are rendered over the frame area.

Although I don't see any implication of the clipper solution right
now, we were trying to solve this by adjusting the context clip when
rendering these objects. But then we also noticed that some objects
are children of smart objects which are part of the frame, so the code
for this starts being more full of exceptions.

There's also the problem that current solution makes the assumption
that smart objects which are part of the frame are moving their
children relatively to them as the default behavior, which may be
wrong if one implements the smart move method.

That's not to mention some changes that were done to the mouse events
code to take account of the object's position.

So, my point on this email is: last week Devilhorns explained about a
solution that would move all code handling the framespace to
Elementary, outside of Evas, that possibly fixes 90% of the current
problems that we have now when dealing with the framespace. Add to
that the simplification on evas render and objects code, which would
totally avoid the need of hacks inside Evas code to support the
framespace.

Some problems raised:

 - old applications that didn't use Elementary: they won't be working
nicely anyway with Wayland since there will be no frame rendered (no
code for rendering it);

 - applications that have been using this
evas_output_framespace_set/get API already for some time: did they
really work before some months ago, when Devilhorns fixed them? It
seems to me that the behavior of any application using them would have
changed a lot anyway.

So, what you guys thing about all of this? Would it be possible to
move these things to Elementary only and remove them from Evas? Maybe
making the API for framespace_set/get don't do anything related to
rendering stuff again, just store the values and return them on get?
(and even mark them as deprecated)

IMHO, the wayland backend is still under development, its behavior has
changed a lot between different versions of Evas since it was first
introduced, and that would allow us to change it more. So, any other
opinions on this?

Regards,
-- 
Rafael Antognolli
ProFUSION embedded systems
http://profusion.mobi

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to