diff --git a/mozilla/calendar/base/content/calendar-decorated-base.xml b/mozilla/calendar/base/content/calendar-decorated-base.xml index 86f00c82d13..83adab2d201 100644 --- a/mozilla/calendar/base/content/calendar-decorated-base.xml +++ b/mozilla/calendar/base/content/calendar-decorated-base.xml @@ -206,6 +206,12 @@ ]]> + + + + + + + + + + = 0 || + endDate.compare(this.queryEndDate) <= 0) { + occs = [item]; + } + + if (occs.length) { + if (!startDate.isDate && !endDate.isDate) { + lowMinute = Math.min(startDate.hour * 60 + startDate.minute, + lowMinute); + highMinute = Math.max(endDate.hour * 60 + endDate.minute, + highMinute); + } + } + } + + var displayDuration = highMinute - lowMinute; + if (this.mSelectedItems.length && + displayDuration >= 0 && + displayDuration <= this.mVisibleMinutes) { + var minute = lowMinute + (displayDuration - this.mVisibleMinutes) / 2 + this.setFirstVisibleMinute(minute); + } + ]]> + + return this.mPixPerMin this.setPixelsPerMin(val); return val; @@ -3380,6 +3416,32 @@ ]]> + + + = 0 && + endDate.compare(this.mEndDate) <= 0) { + for (var i = startDate.day; i <= endDate.day; i++) { + occMap[i] = true; + } + } + } + + return this.mDateColumns.filter(function(col) { + return (col.date.day in occMap); + }); + ]]> + diff --git a/mozilla/calendar/base/content/calendar-unifinder.js b/mozilla/calendar/base/content/calendar-unifinder.js index 48de64d00af..f218a7fc98c 100644 --- a/mozilla/calendar/base/content/calendar-unifinder.js +++ b/mozilla/calendar/base/content/calendar-unifinder.js @@ -356,6 +356,7 @@ function unifinderSelect(event) { // Set up the selected items in the view. Pass in true, so we don't end // up in a circular loop currentView().setSelectedItems(selectedItems.length, selectedItems, true); + currentView().centerSelectedItems(); calendarController.onSelectionChanged({detail: selectedItems}); } diff --git a/mozilla/calendar/base/public/calICalendarView.idl b/mozilla/calendar/base/public/calICalendarView.idl index 529de5aba92..91621d89c03 100644 --- a/mozilla/calendar/base/public/calICalendarView.idl +++ b/mozilla/calendar/base/public/calICalendarView.idl @@ -142,6 +142,11 @@ interface calICalendarView : nsISupports [array,size_is(aCount)] in calIItemBase aItems, in boolean aSuppressEvent); + /** + * Make as many of the selected items as possible are visible in the view. + */ + void centerSelectedItems(); + /** * Get or set the selected day. */