mirror of
https://github.com/gryf/pentadactyl-pm.git
synced 2025-12-20 04:27:59 +01:00
Fix some command line focus issues.
This commit is contained in:
@@ -329,6 +329,8 @@ var CommandMode = Class("CommandMode", {
|
||||
this.completions.complete(true, false);
|
||||
},
|
||||
|
||||
get holdFocus() this.widgets.active.command.inputField,
|
||||
|
||||
get mappingSelf() this,
|
||||
|
||||
get widgets() commandline.widgets,
|
||||
@@ -801,12 +803,8 @@ var CommandLine = Module("commandline", {
|
||||
}
|
||||
]).toObject(),
|
||||
{
|
||||
blur: function onBlur(event) {
|
||||
if (this.commandMode && event.originalTarget === this.widgets.active.command.inputField)
|
||||
dactyl.focus(this.widgets.active.command.inputField);
|
||||
},
|
||||
focus: function onFocus(event) {
|
||||
if (!this.commandMode
|
||||
if (!this.commandSession
|
||||
&& event.originalTarget === this.widgets.active.command.inputField) {
|
||||
event.target.blur();
|
||||
dactyl.beep();
|
||||
|
||||
@@ -966,7 +966,8 @@ var Events = Module("events", {
|
||||
|
||||
blur: function onBlur(event) {
|
||||
let elem = event.originalTarget;
|
||||
if (event.originalTarget instanceof Window && services.focus.activeWindow == null) {
|
||||
if (elem instanceof Window && services.focus.activeWindow == null
|
||||
&& document.commandDispatcher.focusedWindow !== window) {
|
||||
// Deals with circumstances where, after the main window
|
||||
// blurs while a collapsed frame has focus, re-activating
|
||||
// the main window does not restore focus and we lose key
|
||||
@@ -974,6 +975,12 @@ var Events = Module("events", {
|
||||
services.focus.clearFocus(window);
|
||||
document.commandDispatcher.focusedWindow = Editor.getEditor(content) ? window : content;
|
||||
}
|
||||
|
||||
let hold = modes.topOfStack.params.holdFocus;
|
||||
if (elem == hold) {
|
||||
dactyl.focus(hold);
|
||||
this.timeout(function () { dactyl.focus(hold); });
|
||||
}
|
||||
},
|
||||
|
||||
// TODO: Merge with onFocusChange
|
||||
|
||||
Reference in New Issue
Block a user