Enlightenment CVS committal

Author  : ningerso
Project : e17
Module  : libs/ewl

Dir     : e17/libs/ewl/src/lib


Modified Files:
        ewl_misc.c 


Log Message:
Combine the embed lookup with the parent configure check traversal.

===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_misc.c,v
retrieving revision 1.87
retrieving revision 1.88
diff -u -3 -r1.87 -r1.88
--- ewl_misc.c  5 Mar 2007 14:12:58 -0000       1.87
+++ ewl_misc.c  12 Mar 2007 22:26:04 -0000      1.88
@@ -737,31 +737,38 @@
         * Widget scheduled for destruction, configuration, or is being called
         * within a configure callback.
         */
-       /*
-       if (ewl_object_queued_has(o, EWL_FLAG_QUEUED_DSCHEDULED) ||
-                       ewl_object_queued_has(o, EWL_FLAG_QUEUED_CSCHEDULED) ||
-                       ewl_object_queued_has(o, EWL_FLAG_QUEUED_CPROCESS))
-                       */
-       if (ewl_object_queued_has(o, EWL_FLAG_QUEUED_DSCHEDULED |
+       if (ewl_object_queued_has(o, (EWL_FLAG_QUEUED_DSCHEDULED |
                                EWL_FLAG_QUEUED_CSCHEDULED |
-                               EWL_FLAG_QUEUED_CPROCESS))
-               DRETURN(DLEVEL_STABLE);
-
-       emb = ewl_embed_widget_find(w);
-       if (!emb)
+                               EWL_FLAG_QUEUED_CPROCESS)))
                DRETURN(DLEVEL_STABLE);
 
        /*
-        * Check for any parent scheduled for configuration.
+        * Check for any parent scheduled for configuration, and look for the
+        * top level widget in this branch.
         */
        search = w;
-       while ((search = search->parent)) {
+       while (search->parent) {
+               search = search->parent;
                if (ewl_object_queued_has(EWL_OBJECT(search),
                                        EWL_FLAG_QUEUED_CSCHEDULED))
                        DRETURN(DLEVEL_TESTING);
        }
 
        /*
+        * Verify top level widget is not queued for configure.
+        */
+       if (ewl_object_queued_has(EWL_OBJECT(search),
+                               EWL_FLAG_QUEUED_CSCHEDULED))
+               DRETURN(DLEVEL_TESTING);
+
+       /*
+        * Stop processing if this widget doesn't have a valid embed parent.
+        */
+       if (!ewl_object_toplevel_get(EWL_OBJECT(search)))
+               DRETURN(DLEVEL_STABLE);
+       emb = EWL_EMBED(search);
+
+       /*
         * No parent of this widget is queued so add it to the queue. All
         * children widgets should have been removed by this point.
         */
@@ -806,8 +813,7 @@
 {
        DENTER_FUNCTION(DLEVEL_STABLE);
 
-       if (ewl_object_flags_get(EWL_OBJECT(w),
-                                EWL_FLAG_PROPERTY_TOPLEVEL)) {
+       if (ewl_object_toplevel_get(EWL_OBJECT(w))) {
                ewl_object_size_request(EWL_OBJECT(w),
                                ewl_object_current_w_get(EWL_OBJECT(w)),
                                ewl_object_current_h_get(EWL_OBJECT(w)));



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to