aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--content_scripts/mode_edit.coffee37
-rw-r--r--content_scripts/mode_visual.coffee26
-rw-r--r--content_scripts/mode_visual_edit.coffee (renamed from content_scripts/mode_movement.coffee)60
-rw-r--r--manifest.json4
4 files changed, 60 insertions, 67 deletions
diff --git a/content_scripts/mode_edit.coffee b/content_scripts/mode_edit.coffee
deleted file mode 100644
index 0b17044a..00000000
--- a/content_scripts/mode_edit.coffee
+++ /dev/null
@@ -1,37 +0,0 @@
-
-class EditMode extends Movement
- @activeElements = []
-
- constructor: (options = {}) ->
- defaults =
- name: "edit"
- exitOnEscape: true
- alterMethod: "move"
- keydown: (event) => if @isActive() then @handleKeydown event else @continueBubbling
- keypress: (event) => if @isActive() then @handleKeypress event else @continueBubbling
- keyup: (event) => if @isActive() then @handleKeyup event else @continueBubbling
-
- @element = document.activeElement
- if @element and DomUtils.isEditable @element
- super extend defaults, options
-
- handleKeydown: (event) ->
- @stopBubblingAndTrue
- handleKeypress: (event) ->
- @suppressEvent
- handleKeyup: (event) ->
- @stopBubblingAndTrue
-
- isActive: ->
- document.activeElement and DomUtils.isDOMDescendant @element, document.activeElement
-
- exit: (event, target) ->
- super()
- @element.blur() if target? and DomUtils.isDOMDescendant @element, target
- EditMode.activeElements = EditMode.activeElements.filter (element) => element != @element
-
- updateBadge: (badge) ->
- badge.badge = "E" if @isActive()
-
-root = exports ? window
-root.EditMode = EditMode
diff --git a/content_scripts/mode_visual.coffee b/content_scripts/mode_visual.coffee
deleted file mode 100644
index 64463a67..00000000
--- a/content_scripts/mode_visual.coffee
+++ /dev/null
@@ -1,26 +0,0 @@
-
-class VisualMode extends Movement
- constructor: (options = {}) ->
- defaults =
- name: "visual"
- badge: "V"
- exitOnEscape: true
- exitOnBlur: options.targetElement
- alterMethod: "extend"
-
- keypress: (event) =>
- @alwaysContinueBubbling =>
- unless event.metaKey or event.ctrlKey or event.altKey
- switch String.fromCharCode event.charCode
- when "y"
- chrome.runtime.sendMessage
- handler: "copyToClipboard"
- data: window.getSelection().toString()
- @exit()
- # TODO(smblott). Suppress next keyup.
-
- super extend defaults, options
- @debug = true
-
-root = exports ? window
-root.VisualMode = VisualMode
diff --git a/content_scripts/mode_movement.coffee b/content_scripts/mode_visual_edit.coffee
index 5f35449c..3a8f5839 100644
--- a/content_scripts/mode_movement.coffee
+++ b/content_scripts/mode_visual_edit.coffee
@@ -71,5 +71,63 @@ class Movement extends MaintainCount
else if "function" == typeof @movements[keyChar]
@movements[keyChar]()
+class VisualMode extends Movement
+ constructor: (options = {}) ->
+ defaults =
+ name: "visual"
+ badge: "V"
+ exitOnEscape: true
+ exitOnBlur: options.targetElement
+ alterMethod: "extend"
+
+ keypress: (event) =>
+ @alwaysContinueBubbling =>
+ unless event.metaKey or event.ctrlKey or event.altKey
+ switch String.fromCharCode event.charCode
+ when "y"
+ chrome.runtime.sendMessage
+ handler: "copyToClipboard"
+ data: window.getSelection().toString()
+ @exit()
+ # TODO(smblott). Suppress next keyup.
+
+ super extend defaults, options
+ @debug = true
+
+class EditMode extends Movement
+ @activeElements = []
+
+ constructor: (options = {}) ->
+ defaults =
+ name: "edit"
+ exitOnEscape: true
+ alterMethod: "move"
+ keydown: (event) => if @isActive() then @handleKeydown event else @continueBubbling
+ keypress: (event) => if @isActive() then @handleKeypress event else @continueBubbling
+ keyup: (event) => if @isActive() then @handleKeyup event else @continueBubbling
+
+ @element = document.activeElement
+ if @element and DomUtils.isEditable @element
+ super extend defaults, options
+
+ handleKeydown: (event) ->
+ @stopBubblingAndTrue
+ handleKeypress: (event) ->
+ @suppressEvent
+ handleKeyup: (event) ->
+ @stopBubblingAndTrue
+
+ isActive: ->
+ document.activeElement and DomUtils.isDOMDescendant @element, document.activeElement
+
+ exit: (event, target) ->
+ super()
+ @element.blur() if target? and DomUtils.isDOMDescendant @element, target
+ EditMode.activeElements = EditMode.activeElements.filter (element) => element != @element
+
+ updateBadge: (badge) ->
+ badge.badge = "E" if @isActive()
+
root = exports ? window
-root.Movement = Movement
+root.VisualMode = VisualMode
+root.EditMode = EditMode
diff --git a/manifest.json b/manifest.json
index 23c9c1e3..beb68530 100644
--- a/manifest.json
+++ b/manifest.json
@@ -47,9 +47,7 @@
"content_scripts/mode_insert.js",
"content_scripts/mode_passkeys.js",
"content_scripts/mode_find.js",
- "content_scripts/mode_movement.js",
- "content_scripts/mode_visual.js",
- "content_scripts/mode_edit.js",
+ "content_scripts/mode_visual_edit.js",
"content_scripts/vimium_frontend.js"
],
"css": ["content_scripts/vimium.css"],