On Thu, 23 Dec 2010 23:04:59 +0900 ChunEon Park <chuneon.p...@samsung.com> said:

hmm i checked the code... the code is in fact correct. it shouldnt process a
message twice. its written in a safe way (seems i thought about this case
already when implementing it).

see _edje_message_queue_process() and edje_object_message_signal_process().
there is a small issue of ordering of signals between processing those of a
signal object and a global message queue - but that exists anyway if you
process 1 object vs all anyway - within an obj it will have consistent ordering
but not between objects. but .. it wont process twice.

> Hello, This is Hermet. 
> 
> I have one problem because of the message event order.
> Let me describe the situation. 
> 
> I added two clicked callback functions to one elm_button. 
> Let's call the callback functions A and B 
> 
> It should be called sequentially definitely. 
> 
> I'm not sure why user should add separate callbacks but they may use this
> case.
> Because multiple callback functions for one widget are available. 
> 
> However, in some cases, the system is so much slow and user clicked the
> button continually in a hurry.
> 
> So, the clicked message will be queued to the edje message queue (msgq) 
> 
> Now, it's time to process the signal callbacks. 
> 
> It will call  _edje_message_queue_process to process the queued message
> events. 
> Since user touched the buttons continually and the system could not process
> the events yet, 
> the clicked event messages will be queued in order. 
> 
> Let's suppose the count of clicked events as 4. 
> 
> Now It begins to process one. 
> 
> Because user added two callback functions, A will be called first. 
> But in this A function, it creates an elementary widget which calls
> "edje_object_message_signal_process" internally. 
> 
> It means, it will process the queued events(tmp_msgq) again plus additional
> new queued events for its own widget. 
> 
> But next queued event is also button clicked event.
> Thus, the A function will be called again even B function does not called
> yet. 
> 
> Users might don't know about this but problem can be occurred. 
> 
> In this case, the callback function will be called like this order. A -> A
> -> A -> A -> B -> B -> B -> B actually.  
> However, it should be called like this A -> B -> A -> B -> A -> B -> A -> B.
> 
> 
> The real scenario is like this. 
> In a button callback A, user create a genlist then apply one style by using
> elm_object_style_set. 
> 
> 
> 
> Could someone give me an advice?
> Or Must be fixed the edje_message_queue?
> 
> Once, I attached the patch file for the edje_message_queue,
> please consider and reply me. 
> 
> Thanks. 
> 


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


------------------------------------------------------------------------------
Gaining the trust of online customers is vital for the success of any company
that requires sensitive data to be transmitted over the Web.   Learn how to 
best implement a security strategy that keeps consumers' information secure 
and instills the confidence they need to proceed with transactions.
http://p.sf.net/sfu/oracle-sfdevnl 
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to