diff --git a/mozilla/calendar/base/content/agenda-listbox.js b/mozilla/calendar/base/content/agenda-listbox.js
index 3c270b88c49..86572680c05 100644
--- a/mozilla/calendar/base/content/agenda-listbox.js
+++ b/mozilla/calendar/base/content/agenda-listbox.js
@@ -550,6 +550,18 @@ function moveSelection() {
}
}
+agendaListbox.getSelectedItems =
+function getSelectedItems() {
+ var selindex = this.agendaListboxControl.selectedIndex;
+ var items = [];
+ if (this.isEventListItem(this.agendaListboxControl.selectedItem)) {
+ // If at some point we support selecting multiple items, this array can
+ // be expanded.
+ items = [this.agendaListboxControl.selectedItem.getItem()];
+ }
+ return items;
+}
+
agendaListbox.isEventListItem =
function isEventListItem(aListItem) {
var isEventListItem = (aListItem != null);
diff --git a/mozilla/calendar/base/content/calendar-common-sets.js b/mozilla/calendar/base/content/calendar-common-sets.js
index 091821d1347..9c6d14beeff 100644
--- a/mozilla/calendar/base/content/calendar-common-sets.js
+++ b/mozilla/calendar/base/content/calendar-common-sets.js
@@ -495,3 +495,17 @@ function injectCalendarCommandController() {
function removeCalendarCommandController() {
top.controllers.removeController(calendarController);
}
+
+function setupContextItemType(event, items) {
+ if (items.some(isEvent) && items.some(isToDo)) {
+ event.target.setAttribute("type", "mixed");
+ } else if (items.length && isEvent(items[0])) {
+ event.target.setAttribute("type", "event");
+ } else if (items.length && isToDo(items[0])) {
+ event.target.setAttribute("type", "todo");
+ } else {
+ event.target.removeAttribute("type");
+ }
+
+ return true;
+}
diff --git a/mozilla/calendar/base/content/calendar-common-sets.xul b/mozilla/calendar/base/content/calendar-common-sets.xul
index 36319f151d5..0f01f0db51b 100755
--- a/mozilla/calendar/base/content/calendar-common-sets.xul
+++ b/mozilla/calendar/base/content/calendar-common-sets.xul
@@ -37,10 +37,9 @@
- ***** END LICENSE BLOCK ***** -->
-
- %calendarDTD;
- %eventDialogDTD;
+ %calendarDTD;
+ %eventDialogDTD;
+ %menuOverlayDTD;
]>
+
+
+
+
+
+
+
+
+
-
-
diff --git a/mozilla/calendar/base/content/calendar-unifinder.xul b/mozilla/calendar/base/content/calendar-unifinder.xul
index f300a76498d..a4d845bb93b 100644
--- a/mozilla/calendar/base/content/calendar-unifinder.xul
+++ b/mozilla/calendar/base/content/calendar-unifinder.xul
@@ -144,6 +144,7 @@
+ - Philipp Kewisch
-
- Alternatively, the contents of this file may be used under the terms of
- either the GNU General Public License Version 2 or later (the "GPL"), or
@@ -145,7 +146,7 @@
tooltiptext="&calendar.newevent.button.tooltip;"
oncommand="agendaListbox.createNewEvent(event)"/>
-
+
diff --git a/mozilla/calendar/base/themes/pinstripe/calendar-views.css b/mozilla/calendar/base/themes/pinstripe/calendar-views.css
index 82399e97348..4d143fb3fb0 100644
--- a/mozilla/calendar/base/themes/pinstripe/calendar-views.css
+++ b/mozilla/calendar/base/themes/pinstripe/calendar-views.css
@@ -567,3 +567,14 @@ description.tooltipBody {
white-space: -moz-pre-wrap;
margin: 0pt;
}
+
+#calendar-view-context-menu[type="event"] .todo-only,
+#calendar-view-context-menu[type="todo"] .event-only,
+#calendar-view-context-menu[type="mixed"] .event-only,
+#calendar-view-context-menu[type="mixed"] .todo-only,
+#calendar-item-context-menu[type="event"] .todo-only,
+#calendar-item-context-menu[type="todo"] .event-only,
+#calendar-item-context-menu[type="mixed"] .event-only,
+#calendar-item-context-menu[type="mixed"] .todo-only {
+ display: none;
+}
diff --git a/mozilla/calendar/base/themes/winstripe/calendar-views.css b/mozilla/calendar/base/themes/winstripe/calendar-views.css
index 3cef10762a0..ab7d6f49ba8 100644
--- a/mozilla/calendar/base/themes/winstripe/calendar-views.css
+++ b/mozilla/calendar/base/themes/winstripe/calendar-views.css
@@ -567,3 +567,14 @@ description.tooltipBody {
white-space: -moz-pre-wrap;
margin: 0pt;
}
+
+#calendar-view-context-menu[type="event"] .todo-only,
+#calendar-view-context-menu[type="todo"] .event-only,
+#calendar-view-context-menu[type="mixed"] .event-only,
+#calendar-view-context-menu[type="mixed"] .todo-only,
+#calendar-item-context-menu[type="event"] .todo-only,
+#calendar-item-context-menu[type="todo"] .event-only,
+#calendar-item-context-menu[type="mixed"] .event-only,
+#calendar-item-context-menu[type="mixed"] .todo-only {
+ display: none;
+}
diff --git a/mozilla/calendar/lightning/content/messenger-overlay-sidebar.js b/mozilla/calendar/lightning/content/messenger-overlay-sidebar.js
index 5b9ada611a7..7dce748bd6c 100644
--- a/mozilla/calendar/lightning/content/messenger-overlay-sidebar.js
+++ b/mozilla/calendar/lightning/content/messenger-overlay-sidebar.js
@@ -324,12 +324,6 @@ function ltnSelectCalendarView(type) {
// Sunbird/Lightning Common view switching code
switchToView(type);
- // Set the labels for the context-menu
- var nextCommand = document.getElementById("context_next");
- nextCommand.setAttribute("label", nextCommand.getAttribute("label-"+type));
- var previousCommand = document.getElementById("context_previous")
- previousCommand.setAttribute("label", previousCommand.getAttribute("label-"+type));
-
}
function toggleControlDisplay(aCommandId, aControlId) {
diff --git a/mozilla/calendar/lightning/content/messenger-overlay-sidebar.xul b/mozilla/calendar/lightning/content/messenger-overlay-sidebar.xul
index 1ba27c8e474..05dd06ffa4a 100644
--- a/mozilla/calendar/lightning/content/messenger-overlay-sidebar.xul
+++ b/mozilla/calendar/lightning/content/messenger-overlay-sidebar.xul
@@ -125,13 +125,13 @@