A situation often occurs when updating the summary/sidebar/calendar/detail views in which you're responding to a user event, e.g. mouse or key event. Your event handler needs to change some data, e.g. move or delete an event then update the screen. After you've finished updating the screen we fall through to the idle loop where notifications are generated that tell you the data displayed in your view has changed. This causes another unnecessary complete redraw of your view -- which makes Chandler feel much slower than it really is.

To avoid this problem you should bracket your event handler/update code with calls to new routines on your block (stopNotificationDirt and startNotificationDirt) which will ignore notifications that dirty your block during the event handler. Make sure that after calling stopNotificationDirt you put all your update code in a try block which has a finally block containing the startNotificationDirt, so that it gets called even if an exception occurs.

I've already implemented this in Table, which is used in the Sidebar and Summary View and it made a big difference, so I suspect it could also make a big difference in the Calendar View.

John

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Open Source Applications Foundation "Dev" mailing list
http://lists.osafoundation.org/mailman/listinfo/dev

Reply via email to