Title: [237482] trunk/Source/WebInspectorUI
Revision
237482
Author
[email protected]
Date
2018-10-26 14:03:47 -0700 (Fri, 26 Oct 2018)

Log Message

Web Inspector: simplify some editing code checks
https://bugs.webkit.org/show_bug.cgi?id=190970

Reviewed by Joseph Pecoraro.

* UserInterface/Base/Main.js:
(WI._focusChanged):

* UserInterface/Base/Utilities.js:

* UserInterface/Views/EditingSupport.js:
(WI.enclosingCodeMirror): Added.
(WI.isBeingEdited):
(WI.isEventTargetAnEditableField):

* UserInterface/Views/QuickConsole.js:
(WI.QuickConsole):

Modified Paths

Diff

Modified: trunk/Source/WebInspectorUI/ChangeLog (237481 => 237482)


--- trunk/Source/WebInspectorUI/ChangeLog	2018-10-26 20:43:04 UTC (rev 237481)
+++ trunk/Source/WebInspectorUI/ChangeLog	2018-10-26 21:03:47 UTC (rev 237482)
@@ -1,5 +1,25 @@
 2018-10-26  Devin Rousso  <[email protected]>
 
+        Web Inspector: simplify some editing code checks
+        https://bugs.webkit.org/show_bug.cgi?id=190970
+
+        Reviewed by Joseph Pecoraro.
+
+        * UserInterface/Base/Main.js:
+        (WI._focusChanged):
+
+        * UserInterface/Base/Utilities.js:
+
+        * UserInterface/Views/EditingSupport.js:
+        (WI.enclosingCodeMirror): Added.
+        (WI.isBeingEdited):
+        (WI.isEventTargetAnEditableField):
+
+        * UserInterface/Views/QuickConsole.js:
+        (WI.QuickConsole):
+
+2018-10-26  Devin Rousso  <[email protected]>
+
         Web Inspector: Uncaught Exception: undefined is not an object (evaluating 'this._classListContainer.children')
         https://bugs.webkit.org/show_bug.cgi?id=190966
 

Modified: trunk/Source/WebInspectorUI/UserInterface/Base/Main.js (237481 => 237482)


--- trunk/Source/WebInspectorUI/UserInterface/Base/Main.js	2018-10-26 20:43:04 UTC (rev 237481)
+++ trunk/Source/WebInspectorUI/UserInterface/Base/Main.js	2018-10-26 21:03:47 UTC (rev 237482)
@@ -1294,13 +1294,21 @@
 
     if (WI.isEventTargetAnEditableField(event)) {
         // Still update the currentFocusElement if inside of a CodeMirror editor or an input element.
-        let codeMirrorEditorElement = event.target.enclosingNodeOrSelfWithClass("CodeMirror");
-        if (codeMirrorEditorElement && codeMirrorEditorElement !== this.currentFocusElement) {
+        let newFocusElement = null;
+        if (event.target instanceof HTMLInputElement || event.target instanceof HTMLTextAreaElement)
+            newFocusElement = event.target;
+        else {
+            let codeMirror = WI.enclosingCodeMirror(event.target);
+            if (codeMirror) {
+                let codeMirrorElement = codeMirror.getWrapperElement();
+                if (codeMirrorElement && codeMirrorElement !== this.currentFocusElement)
+                    newFocusElement = codeMirrorElement;
+            }
+        }
+
+        if (newFocusElement) {
             this.previousFocusElement = this.currentFocusElement;
-            this.currentFocusElement = codeMirrorEditorElement;
-        } else if (event.target.tagName === "INPUT") {
-            this.previousFocusElement = this.currentFocusElement;
-            this.currentFocusElement = event.target;
+            this.currentFocusElement = newFocusElement;
         }
 
         // Due to the change in WI.isEventTargetAnEditableField (r196271), this return

Modified: trunk/Source/WebInspectorUI/UserInterface/Base/Utilities.js (237481 => 237482)


--- trunk/Source/WebInspectorUI/UserInterface/Base/Utilities.js	2018-10-26 20:43:04 UTC (rev 237481)
+++ trunk/Source/WebInspectorUI/UserInterface/Base/Utilities.js	2018-10-26 21:03:47 UTC (rev 237482)
@@ -379,16 +379,6 @@
     }
 });
 
-Object.defineProperty(Element.prototype, "removeMatchingStyleClasses",
-{
-    value(classNameRegex)
-    {
-        var regex = new RegExp("(^|\\s+)" + classNameRegex + "($|\\s+)");
-        if (regex.test(this.className))
-            this.className = this.className.replace(regex, " ");
-    }
-});
-
 Object.defineProperty(Element.prototype, "createChild",
 {
     value(elementName, className)

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/EditingSupport.js (237481 => 237482)


--- trunk/Source/WebInspectorUI/UserInterface/Views/EditingSupport.js	2018-10-26 20:43:04 UTC (rev 237481)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/EditingSupport.js	2018-10-26 21:03:47 UTC (rev 237482)
@@ -23,6 +23,16 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+WI.enclosingCodeMirror = function(element)
+{
+    while (element) {
+        if (element.CodeMirror)
+            return element.CodeMirror;
+        element = element.parentNode;
+    }
+    return null;
+};
+
 WI.isBeingEdited = function(element)
 {
     while (element) {
@@ -30,7 +40,6 @@
             return true;
         element = element.parentNode;
     }
-
     return false;
 };
 
@@ -57,26 +66,19 @@
 
 WI.isEventTargetAnEditableField = function(event)
 {
-    let textInputTypes = new Set(["text", "search", "number", "tel", "url", "email", "password"]);
-    if (event.target instanceof HTMLInputElement)
-        return textInputTypes.has(event.target.type);
-
-    let codeMirrorEditorElement = event.target.enclosingNodeOrSelfWithClass("CodeMirror");
-    if (codeMirrorEditorElement && codeMirrorEditorElement.CodeMirror)
-        return !codeMirrorEditorElement.CodeMirror.getOption("readOnly");
-
-    if (event.target instanceof HTMLTextAreaElement)
+    if (event.target instanceof HTMLInputElement || event.target instanceof HTMLTextAreaElement)
         return true;
 
     if (event.target.isContentEditable)
         return true;
 
-    if (event.target.enclosingNodeOrSelfWithClass("text-prompt"))
-        return true;
-
     if (WI.isBeingEdited(event.target))
         return true;
 
+    let codeMirror = WI.enclosingCodeMirror(event.target);
+    if (codeMirror)
+        return !codeMirror.getOption("readOnly");
+
     return false;
 };
 

Modified: trunk/Source/WebInspectorUI/UserInterface/Views/QuickConsole.js (237481 => 237482)


--- trunk/Source/WebInspectorUI/UserInterface/Views/QuickConsole.js	2018-10-26 20:43:04 UTC (rev 237481)
+++ trunk/Source/WebInspectorUI/UserInterface/Views/QuickConsole.js	2018-10-26 21:03:47 UTC (rev 237482)
@@ -44,7 +44,6 @@
         this.element.addEventListener("mousedown", this._handleMouseDown.bind(this));
 
         this.prompt = new WI.ConsolePrompt(null, "text/_javascript_");
-        this.prompt.element.classList.add("text-prompt");
         this.addSubview(this.prompt);
 
         // FIXME: CodeMirror 4 has a default "Esc" key handler that always prevents default.
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to