mirror of
https://github.com/embarklabs/neo-blessed.git
synced 2025-01-10 19:16:20 +00:00
add sendFocus option. see #149.
This commit is contained in:
parent
90367cd891
commit
77bd73b4c8
@ -332,6 +332,7 @@ The screen on which every other node renders.
|
|||||||
replaced by `'??'`, `'?'`, `''` respectively. (NOTE: iTerm2 cannot display
|
replaced by `'??'`, `'?'`, `''` respectively. (NOTE: iTerm2 cannot display
|
||||||
combining characters properly. Blessed simply removes them from an element's
|
combining characters properly. Blessed simply removes them from an element's
|
||||||
content if iTerm2 is detected).
|
content if iTerm2 is detected).
|
||||||
|
- __sendFocus__ - send focus events after mouse is enabled.
|
||||||
|
|
||||||
##### Properties:
|
##### Properties:
|
||||||
|
|
||||||
|
@ -3202,10 +3202,17 @@ Program.prototype.setMouse = function(opt, enable) {
|
|||||||
opt.vt200Hilite = opt.hiliteTracking;
|
opt.vt200Hilite = opt.hiliteTracking;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (enable) {
|
if (enable === true) {
|
||||||
|
if (this._currentMouse) {
|
||||||
|
this.setMouse(opt);
|
||||||
|
Object.keys(opt).forEach(function(key) {
|
||||||
|
this._currentMouse[key] = opt[key];
|
||||||
|
}, this);
|
||||||
|
return;
|
||||||
|
}
|
||||||
this._currentMouse = opt;
|
this._currentMouse = opt;
|
||||||
this.mouseEnabled = true;
|
this.mouseEnabled = true;
|
||||||
} else {
|
} else if (enable === false) {
|
||||||
delete this._currentMouse;
|
delete this._currentMouse;
|
||||||
this.mouseEnabled = false;
|
this.mouseEnabled = false;
|
||||||
}
|
}
|
||||||
|
@ -352,6 +352,9 @@ Screen.prototype._listenMouse = function(el) {
|
|||||||
this._listenedMouse = true;
|
this._listenedMouse = true;
|
||||||
|
|
||||||
this.program.enableMouse();
|
this.program.enableMouse();
|
||||||
|
if (this.options.sendFocus) {
|
||||||
|
this.program.setMouse({ sendFocus: true }, true);
|
||||||
|
}
|
||||||
|
|
||||||
this.on('render', function() {
|
this.on('render', function() {
|
||||||
self._needsClickableSort = true;
|
self._needsClickableSort = true;
|
||||||
@ -1648,7 +1651,12 @@ Screen.prototype.spawn = function(file, args, options) {
|
|||||||
|
|
||||||
program.alternateBuffer();
|
program.alternateBuffer();
|
||||||
// program.csr(0, program.rows - 1);
|
// program.csr(0, program.rows - 1);
|
||||||
if (mouse) program.enableMouse();
|
if (mouse) {
|
||||||
|
program.enableMouse();
|
||||||
|
if (self.options.sendFocus) {
|
||||||
|
self.program.setMouse({ sendFocus: true }, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
screen.alloc();
|
screen.alloc();
|
||||||
screen.render();
|
screen.render();
|
||||||
|
@ -18,6 +18,11 @@ program.alternateBuffer();
|
|||||||
program.enableMouse();
|
program.enableMouse();
|
||||||
program.hideCursor();
|
program.hideCursor();
|
||||||
|
|
||||||
|
program.setMouse({ sendFocus: true }, true);
|
||||||
|
//program._currentMouse.sendFocus = true;
|
||||||
|
//program.enableMouse(program._currentMouse);
|
||||||
|
//program.write('\x1b[?1004h');
|
||||||
|
|
||||||
program.on('mouse', function(data) {
|
program.on('mouse', function(data) {
|
||||||
program.cup(data.y, data.x);
|
program.cup(data.y, data.x);
|
||||||
program.write(' ', 'blue bg');
|
program.write(' ', 'blue bg');
|
||||||
@ -25,6 +30,33 @@ program.on('mouse', function(data) {
|
|||||||
program.write(util.inspect(data));
|
program.write(util.inspect(data));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
program.on('resize', function(data) {
|
||||||
|
setTimeout(function() {
|
||||||
|
program.clear();
|
||||||
|
program.cup(0, 0);
|
||||||
|
program.write(util.inspect({ cols: program.cols, rows: program.rows }));
|
||||||
|
}, 200);
|
||||||
|
});
|
||||||
|
|
||||||
|
process.on('SIGWINCH', function(data) {
|
||||||
|
setTimeout(function() {
|
||||||
|
program.cup(1, 0);
|
||||||
|
program.write(util.inspect({ winch: true, cols: program.cols, rows: program.rows }));
|
||||||
|
}, 200);
|
||||||
|
});
|
||||||
|
|
||||||
|
program.on('focus', function(data) {
|
||||||
|
program.clear();
|
||||||
|
program.cup(0, 0);
|
||||||
|
program.write('FOCUSIN');
|
||||||
|
});
|
||||||
|
|
||||||
|
program.on('blur', function(data) {
|
||||||
|
program.clear();
|
||||||
|
program.cup(0, 0);
|
||||||
|
program.write('FOCUSOUT');
|
||||||
|
});
|
||||||
|
|
||||||
program.key(['q', 'escape', 'C-c'], function() {
|
program.key(['q', 'escape', 'C-c'], function() {
|
||||||
program.showCursor();
|
program.showCursor();
|
||||||
program.disableMouse();
|
program.disableMouse();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user