speed things up a little more
authorCarsten Haitzler <raster@rasterman.com>
Thu, 26 May 2005 15:30:10 +0000 (15:30 +0000)
committerCarsten Haitzler <raster@rasterman.com>
Thu, 26 May 2005 15:30:10 +0000 (15:30 +0000)
SVN revision: 14961

src/bin/e_container.c
src/bin/e_container.h
src/bin/e_main.c
src/bin/e_menu.c
src/bin/e_test.c

index 10c9b1c..cc913e5 100644 (file)
@@ -810,6 +810,50 @@ e_container_border_list_free(E_Border_List *list)
    free(list);
 }
 
+void
+e_container_all_freeze(void)
+{
+   Evas_List *managers, *l;
+   
+   managers = e_manager_list();
+   for (l = managers; l; l = l->next)
+     {
+       Evas_List *ll;
+       E_Manager *man;
+       
+       man = l->data;
+       for (ll = man->containers; ll; ll = ll->next)
+         {
+            E_Container *con;
+            
+            con = ll->data;
+            evas_event_freeze(con->bg_evas);
+         }
+     }
+}
+
+void
+e_container_all_thaw(void)
+{
+   Evas_List *managers, *l;
+   
+   managers = e_manager_list();
+   for (l = managers; l; l = l->next)
+     {
+       Evas_List *ll;
+       E_Manager *man;
+       
+       man = l->data;
+       for (ll = man->containers; ll; ll = ll->next)
+         {
+            E_Container *con;
+            
+            con = ll->data;
+            evas_event_thaw(con->bg_evas);
+         }
+     }
+}
+
 /* local subsystem functions */
 static void
 _e_container_free(E_Container *con)
index 90133cb..ae4a84a 100644 (file)
@@ -133,6 +133,9 @@ EAPI void               e_container_border_lower(E_Border *bd);
 EAPI void               e_container_border_stack_above(E_Border *bd, E_Border *above);
 EAPI void               e_container_border_stack_below(E_Border *bd, E_Border *below);
 
+EAPI void               e_container_all_freeze(void);
+EAPI void               e_container_all_thaw(void);
+    
 extern EAPI int E_EVENT_CONTAINER_RESIZE;
 
 #endif
index 0d9592a..73c87c6 100644 (file)
@@ -352,6 +352,9 @@ main(int argc, char **argv)
                               "failed. Perhaps another window manager is running?\n"));
        _e_main_shutdown(-1);
      }
+   
+   e_container_all_freeze();
+   
    _e_main_shutdown_push(_e_main_screens_shutdown);
    /* init app system */
    if (!e_app_init())
@@ -441,6 +444,8 @@ main(int argc, char **argv)
        ecore_timer_add(16.0, _e_main_cb_startup_fake_end, NULL);
      }
    
+   e_container_all_thaw();
+   
    /* run any testing code now we are set up */
    e_test();
    
index 47b1de8..22ef6fd 100644 (file)
@@ -1136,6 +1136,7 @@ _e_menu_realize(E_Menu *m)
    
    ecore_evas_callback_resize_set(m->ecore_evas, _e_menu_cb_ecore_evas_resize);
    m->evas = ecore_evas_get(m->ecore_evas);
+   evas_event_freeze(m->evas);
    /* move cursor out to avoid event cycles during setup */
    evas_event_feed_mouse_in(m->evas, NULL);
    evas_event_feed_mouse_move(m->evas, -1000000, -1000000, NULL);
@@ -1190,6 +1191,7 @@ _e_menu_realize(E_Menu *m)
    _e_menu_items_layout_update(m);
    e_box_thaw(o);
    evas_object_resize(m->bg_object, m->cur.w, m->cur.h);
+   evas_event_thaw(m->evas);
 }
 
 static void
index 5d01719..56c8489 100644 (file)
@@ -170,7 +170,7 @@ _cb_change(void *data, E_Gadman_Client *gmc, E_Gadman_Change change)
        break;
      }
 }
-#elif 0
+#elif 1
 static int
 _e_test_timer(void *data)
 {