зеркало из https://github.com/mozilla/gecko-dev.git
Bug 988143 - Enable Gecko Touch in Fennec, Enable all in Mobile, r=margaret
This commit is contained in:
Родитель
b15dcbbc97
Коммит
33bcf62e76
|
@ -8,6 +8,10 @@
|
||||||
const PHONE_NUMBER_CONTAINERS = "td,div";
|
const PHONE_NUMBER_CONTAINERS = "td,div";
|
||||||
const DEFER_CLOSE_TRIGGER_MS = 125; // Grace period delay before deferred _closeSelection()
|
const DEFER_CLOSE_TRIGGER_MS = 125; // Grace period delay before deferred _closeSelection()
|
||||||
|
|
||||||
|
// Gecko TouchCaret/SelectionCaret pref names.
|
||||||
|
const PREF_GECKO_TOUCHCARET_ENABLED = "touchcaret.enabled";
|
||||||
|
const PREF_GECKO_SELECTIONCARETS_ENABLED = "selectioncaret.enabled";
|
||||||
|
|
||||||
var SelectionHandler = {
|
var SelectionHandler = {
|
||||||
|
|
||||||
// Successful startSelection() or attachCaret().
|
// Successful startSelection() or attachCaret().
|
||||||
|
@ -21,9 +25,11 @@ var SelectionHandler = {
|
||||||
START_ERROR_SELECT_ALL_PARAGRAPH_FAILED: "Select-All Paragraph failed.",
|
START_ERROR_SELECT_ALL_PARAGRAPH_FAILED: "Select-All Paragraph failed.",
|
||||||
START_ERROR_NO_SELECTION: "Selection performed, but nothing resulted.",
|
START_ERROR_NO_SELECTION: "Selection performed, but nothing resulted.",
|
||||||
START_ERROR_PROXIMITY: "Selection target and result seem unrelated.",
|
START_ERROR_PROXIMITY: "Selection target and result seem unrelated.",
|
||||||
|
START_ERROR_SELECTIONCARETS_ENABLED: "Native selectionCarets requested while Gecko enabled.",
|
||||||
|
|
||||||
// Error codes returned during attachCaret().
|
// Error codes returned during attachCaret().
|
||||||
ATTACH_ERROR_INCOMPATIBLE: "Element disabled, handled natively, or not editable.",
|
ATTACH_ERROR_INCOMPATIBLE: "Element disabled, handled natively, or not editable.",
|
||||||
|
ATTACH_ERROR_TOUCHCARET_ENABLED: "Native touchCaret requested while Gecko enabled.",
|
||||||
|
|
||||||
HANDLE_TYPE_ANCHOR: "ANCHOR",
|
HANDLE_TYPE_ANCHOR: "ANCHOR",
|
||||||
HANDLE_TYPE_CARET: "CARET",
|
HANDLE_TYPE_CARET: "CARET",
|
||||||
|
@ -36,6 +42,10 @@ var SelectionHandler = {
|
||||||
SELECT_ALL: 0,
|
SELECT_ALL: 0,
|
||||||
SELECT_AT_POINT: 1,
|
SELECT_AT_POINT: 1,
|
||||||
|
|
||||||
|
// Gecko TouchCaret/SelectionCaret pref values.
|
||||||
|
_touchCaretEnabledValue: null,
|
||||||
|
_selectionCaretEnabledValue: null,
|
||||||
|
|
||||||
// Keeps track of data about the dimensions of the selection. Coordinates
|
// Keeps track of data about the dimensions of the selection. Coordinates
|
||||||
// stored here are relative to the _contentWindow window.
|
// stored here are relative to the _contentWindow window.
|
||||||
_cache: { anchorPt: {}, focusPt: {} },
|
_cache: { anchorPt: {}, focusPt: {} },
|
||||||
|
@ -91,6 +101,30 @@ var SelectionHandler = {
|
||||||
getService(Ci.nsIUUIDGenerator);
|
getService(Ci.nsIUUIDGenerator);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// Are we supporting Gecko or Native touchCarets?
|
||||||
|
get _touchCaretEnabled() {
|
||||||
|
if (this._touchCaretEnabledValue == null) {
|
||||||
|
this._touchCaretEnabledValue = Services.prefs.getBoolPref(PREF_GECKO_TOUCHCARET_ENABLED);
|
||||||
|
Services.prefs.addObserver(PREF_GECKO_TOUCHCARET_ENABLED, function() {
|
||||||
|
SelectionHandler._touchCaretEnabledValue =
|
||||||
|
Services.prefs.getBoolPref(PREF_GECKO_TOUCHCARET_ENABLED);
|
||||||
|
}, false);
|
||||||
|
}
|
||||||
|
return this._touchCaretEnabledValue;
|
||||||
|
},
|
||||||
|
|
||||||
|
// Are we supporting Gecko or Native selectionCarets?
|
||||||
|
get _selectionCaretEnabled() {
|
||||||
|
if (this._selectionCaretEnabledValue == null) {
|
||||||
|
this._selectionCaretEnabledValue = Services.prefs.getBoolPref(PREF_GECKO_SELECTIONCARETS_ENABLED);
|
||||||
|
Services.prefs.addObserver(PREF_GECKO_SELECTIONCARETS_ENABLED, function() {
|
||||||
|
SelectionHandler._selectionCaretEnabledValue =
|
||||||
|
Services.prefs.getBoolPref(PREF_GECKO_SELECTIONCARETS_ENABLED);
|
||||||
|
}, false);
|
||||||
|
}
|
||||||
|
return this._selectionCaretEnabledValue;
|
||||||
|
},
|
||||||
|
|
||||||
_addObservers: function sh_addObservers() {
|
_addObservers: function sh_addObservers() {
|
||||||
Services.obs.addObserver(this, "Gesture:SingleTap", false);
|
Services.obs.addObserver(this, "Gesture:SingleTap", false);
|
||||||
Services.obs.addObserver(this, "Tab:Selected", false);
|
Services.obs.addObserver(this, "Tab:Selected", false);
|
||||||
|
@ -378,6 +412,11 @@ var SelectionHandler = {
|
||||||
* y - The y-coordinate for SELECT_AT_POINT.
|
* y - The y-coordinate for SELECT_AT_POINT.
|
||||||
*/
|
*/
|
||||||
startSelection: function sh_startSelection(aElement, aOptions = { mode: SelectionHandler.SELECT_ALL }) {
|
startSelection: function sh_startSelection(aElement, aOptions = { mode: SelectionHandler.SELECT_ALL }) {
|
||||||
|
// Disable Native touchCarets if Gecko enabled.
|
||||||
|
if (this._selectionCaretEnabled) {
|
||||||
|
return this.START_ERROR_SELECTIONCARETS_ENABLED;
|
||||||
|
}
|
||||||
|
|
||||||
// Clear out any existing active selection
|
// Clear out any existing active selection
|
||||||
this._closeSelection();
|
this._closeSelection();
|
||||||
|
|
||||||
|
@ -837,6 +876,11 @@ var SelectionHandler = {
|
||||||
* @param aX, aY tap location in client coordinates.
|
* @param aX, aY tap location in client coordinates.
|
||||||
*/
|
*/
|
||||||
attachCaret: function sh_attachCaret(aElement) {
|
attachCaret: function sh_attachCaret(aElement) {
|
||||||
|
// Disable Native attachCaret() if Gecko touchCarets are enabled.
|
||||||
|
if (this._touchCaretEnabled) {
|
||||||
|
return this.ATTACH_ERROR_TOUCHCARET_ENABLED;
|
||||||
|
}
|
||||||
|
|
||||||
// Clear out any existing active selection
|
// Clear out any existing active selection
|
||||||
this._closeSelection();
|
this._closeSelection();
|
||||||
|
|
||||||
|
|
|
@ -154,6 +154,12 @@ let lazilyLoadedObserverScripts = [
|
||||||
["EmbedRT", ["GeckoView:ImportScript"], "chrome://browser/content/EmbedRT.js"],
|
["EmbedRT", ["GeckoView:ImportScript"], "chrome://browser/content/EmbedRT.js"],
|
||||||
["Reader", ["Reader:FetchContent", "Reader:Added", "Reader:Removed"], "chrome://browser/content/Reader.js"],
|
["Reader", ["Reader:FetchContent", "Reader:Added", "Reader:Removed"], "chrome://browser/content/Reader.js"],
|
||||||
];
|
];
|
||||||
|
if (AppConstants.NIGHTLY_BUILD) {
|
||||||
|
lazilyLoadedObserverScripts.push(
|
||||||
|
["ActionBarHandler", ["ActionBar:OpenNew", "ActionBar:Close", "TextSelection:Get"],
|
||||||
|
"chrome://browser/content/ActionBarHandler.js"]
|
||||||
|
);
|
||||||
|
}
|
||||||
if (AppConstants.MOZ_WEBRTC) {
|
if (AppConstants.MOZ_WEBRTC) {
|
||||||
lazilyLoadedObserverScripts.push(
|
lazilyLoadedObserverScripts.push(
|
||||||
["WebrtcUI", ["getUserMedia:request", "recording-device-events"], "chrome://browser/content/WebrtcUI.js"])
|
["WebrtcUI", ["getUserMedia:request", "recording-device-events"], "chrome://browser/content/WebrtcUI.js"])
|
||||||
|
|
|
@ -35,6 +35,7 @@ chrome.jar:
|
||||||
content/netError.xhtml (content/netError.xhtml)
|
content/netError.xhtml (content/netError.xhtml)
|
||||||
content/SelectHelper.js (content/SelectHelper.js)
|
content/SelectHelper.js (content/SelectHelper.js)
|
||||||
content/SelectionHandler.js (content/SelectionHandler.js)
|
content/SelectionHandler.js (content/SelectionHandler.js)
|
||||||
|
content/ActionBarHandler.js (content/ActionBarHandler.js)
|
||||||
content/WebappRT.js (content/WebappRT.js)
|
content/WebappRT.js (content/WebappRT.js)
|
||||||
content/EmbedRT.js (content/EmbedRT.js)
|
content/EmbedRT.js (content/EmbedRT.js)
|
||||||
content/InputWidgetHelper.js (content/InputWidgetHelper.js)
|
content/InputWidgetHelper.js (content/InputWidgetHelper.js)
|
||||||
|
|
|
@ -546,6 +546,20 @@
|
||||||
@BINPATH@/res/html/*
|
@BINPATH@/res/html/*
|
||||||
@BINPATH@/res/language.properties
|
@BINPATH@/res/language.properties
|
||||||
@BINPATH@/res/entityTables/*
|
@BINPATH@/res/entityTables/*
|
||||||
|
#ifdef NIGHTLY_BUILD
|
||||||
|
@BINPATH@/res/text_caret.png
|
||||||
|
@BINPATH@/res/text_caret@1.5x.png
|
||||||
|
@BINPATH@/res/text_caret@2.25x.png
|
||||||
|
@BINPATH@/res/text_caret@2x.png
|
||||||
|
@BINPATH@/res/text_caret_tilt_left.png
|
||||||
|
@BINPATH@/res/text_caret_tilt_left@1.5x.png
|
||||||
|
@BINPATH@/res/text_caret_tilt_left@2.25x.png
|
||||||
|
@BINPATH@/res/text_caret_tilt_left@2x.png
|
||||||
|
@BINPATH@/res/text_caret_tilt_right.png
|
||||||
|
@BINPATH@/res/text_caret_tilt_right@1.5x.png
|
||||||
|
@BINPATH@/res/text_caret_tilt_right@2.25x.png
|
||||||
|
@BINPATH@/res/text_caret_tilt_right@2x.png
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef MOZ_ANDROID_EXCLUDE_FONTS
|
#ifndef MOZ_ANDROID_EXCLUDE_FONTS
|
||||||
@BINPATH@/res/fonts/*
|
@BINPATH@/res/fonts/*
|
||||||
|
|
Загрузка…
Ссылка в новой задаче