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