Bug 430745 - Select dropdown popups will anchor on a selected element for Mac r=jaws, mconley
Select dropdown popups now anchor on the currently selected element in a <select> dropdown for Mac instead of above/below the <select> dropdown.
MozReview-Commit-ID: JlgrZdArehq
--- a/toolkit/modules/SelectParentHelper.jsm
+++ b/toolkit/modules/SelectParentHelper.jsm
@@ -3,16 +3,19 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
this.EXPORTED_SYMBOLS = [
"SelectParentHelper"
];
+const {utils: Cu} = Components;
+const {AppConstants} = Cu.import("resource://gre/modules/AppConstants.jsm");
+
// Maximum number of rows to display in the select dropdown.
const MAX_ROWS = 20;
// Interval between autoscrolls
const AUTOSCROLL_INTERVAL = 25;
var currentBrowser = null;
var currentMenulist = null;
@@ -58,17 +61,17 @@ this.SelectParentHelper = {
menupopup.classList.toggle("isOpenedViaTouch", isOpenedViaTouch);
let constraintRect = browser.getBoundingClientRect();
constraintRect = new win.DOMRect(constraintRect.left + win.mozInnerScreenX,
constraintRect.top + win.mozInnerScreenY,
constraintRect.width, constraintRect.height);
menupopup.setConstraintRect(constraintRect);
- menupopup.openPopupAtScreenRect("after_start", rect.left, rect.top, rect.width, rect.height, false, false);
+ menupopup.openPopupAtScreenRect(AppConstants.platform == "macosx" ? "selection" : "after_start", rect.left, rect.top, rect.width, rect.height, false, false);
// Set up for dragging
menupopup.setCaptureAlways();
this.draggedOverPopup = false;
menupopup.addEventListener("mousemove", this);
},
hide: function(menulist, browser) {