Compare commits
No commits in common. "430968e5d5fdf627ce7e1563bbee22bf2f9256b2" and "ee76186bef6f40da41f8cfa89a9c54ae9c9540f4" have entirely different histories.
430968e5d5
...
ee76186bef
14
xC-proto
14
xC-proto
@ -9,28 +9,24 @@ struct CommandMessage {
|
|||||||
union CommandData switch (enum Command {
|
union CommandData switch (enum Command {
|
||||||
HELLO,
|
HELLO,
|
||||||
ACTIVE,
|
ACTIVE,
|
||||||
BUFFER_ACTIVATE,
|
|
||||||
BUFFER_INPUT,
|
BUFFER_INPUT,
|
||||||
BUFFER_TOGGLE_UNIMPORTANT,
|
BUFFER_ACTIVATE,
|
||||||
PING_RESPONSE,
|
PING_RESPONSE,
|
||||||
PING,
|
PING,
|
||||||
BUFFER_COMPLETE,
|
BUFFER_COMPLETE,
|
||||||
BUFFER_LOG,
|
BUFFER_LOG,
|
||||||
} command) {
|
} command) {
|
||||||
// If the version check succeeds, the client will receive
|
|
||||||
// an initial stream of SERVER_UPDATE, BUFFER_UPDATE, BUFFER_STATS,
|
|
||||||
// BUFFER_LINE, and finally a BUFFER_ACTIVATE message.
|
|
||||||
case HELLO:
|
case HELLO:
|
||||||
u32 version;
|
u32 version;
|
||||||
|
// If the version check succeeds, the client will receive
|
||||||
|
// an initial stream of SERVER_UPDATE, BUFFER_UPDATE, BUFFER_STATS,
|
||||||
|
// BUFFER_LINE, and finally a BUFFER_ACTIVATE message.
|
||||||
case ACTIVE:
|
case ACTIVE:
|
||||||
void;
|
void;
|
||||||
case BUFFER_ACTIVATE:
|
|
||||||
string buffer_name;
|
|
||||||
case BUFFER_INPUT:
|
case BUFFER_INPUT:
|
||||||
string buffer_name;
|
string buffer_name;
|
||||||
string text;
|
string text;
|
||||||
// XXX: Perhaps this should rather be handled through a /buffer command.
|
case BUFFER_ACTIVATE:
|
||||||
case BUFFER_TOGGLE_UNIMPORTANT:
|
|
||||||
string buffer_name;
|
string buffer_name;
|
||||||
case PING_RESPONSE:
|
case PING_RESPONSE:
|
||||||
u32 event_seq;
|
u32 event_seq;
|
||||||
|
32
xC.c
32
xC.c
@ -5235,18 +5235,6 @@ buffer_clear (struct app_context *ctx, struct buffer *buffer)
|
|||||||
buffer->lines_count = 0;
|
buffer->lines_count = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
buffer_toggle_unimportant (struct app_context *ctx, struct buffer *buffer)
|
|
||||||
{
|
|
||||||
buffer->hide_unimportant ^= true;
|
|
||||||
|
|
||||||
relay_prepare_buffer_update (ctx, buffer);
|
|
||||||
relay_broadcast (ctx);
|
|
||||||
|
|
||||||
if (buffer == ctx->current_buffer)
|
|
||||||
buffer_print_backlog (ctx, buffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct buffer *
|
static struct buffer *
|
||||||
buffer_at_index (struct app_context *ctx, int n)
|
buffer_at_index (struct app_context *ctx, int n)
|
||||||
{
|
{
|
||||||
@ -14384,7 +14372,12 @@ on_toggle_unimportant (int count, int key, void *user_data)
|
|||||||
(void) count;
|
(void) count;
|
||||||
(void) key;
|
(void) key;
|
||||||
struct app_context *ctx = user_data;
|
struct app_context *ctx = user_data;
|
||||||
buffer_toggle_unimportant (ctx, ctx->current_buffer);
|
ctx->current_buffer->hide_unimportant ^= true;
|
||||||
|
|
||||||
|
relay_prepare_buffer_update (ctx, ctx->current_buffer);
|
||||||
|
relay_broadcast (ctx);
|
||||||
|
|
||||||
|
buffer_print_backlog (ctx, ctx->current_buffer);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -15451,12 +15444,10 @@ client_message_buffer_name (const struct relay_command_message *m)
|
|||||||
{
|
{
|
||||||
case RELAY_COMMAND_BUFFER_COMPLETE:
|
case RELAY_COMMAND_BUFFER_COMPLETE:
|
||||||
return m->data.buffer_input.buffer_name.str;
|
return m->data.buffer_input.buffer_name.str;
|
||||||
case RELAY_COMMAND_BUFFER_ACTIVATE:
|
|
||||||
return m->data.buffer_activate.buffer_name.str;
|
|
||||||
case RELAY_COMMAND_BUFFER_INPUT:
|
case RELAY_COMMAND_BUFFER_INPUT:
|
||||||
return m->data.buffer_input.buffer_name.str;
|
return m->data.buffer_input.buffer_name.str;
|
||||||
case RELAY_COMMAND_BUFFER_TOGGLE_UNIMPORTANT:
|
case RELAY_COMMAND_BUFFER_ACTIVATE:
|
||||||
return m->data.buffer_toggle_unimportant.buffer_name.str;
|
return m->data.buffer_activate.buffer_name.str;
|
||||||
case RELAY_COMMAND_BUFFER_LOG:
|
case RELAY_COMMAND_BUFFER_LOG:
|
||||||
return m->data.buffer_log.buffer_name.str;
|
return m->data.buffer_log.buffer_name.str;
|
||||||
default:
|
default:
|
||||||
@ -15582,14 +15573,11 @@ client_process_message (struct client *c,
|
|||||||
client_process_buffer_complete (c, m->command_seq, buffer,
|
client_process_buffer_complete (c, m->command_seq, buffer,
|
||||||
&m->data.buffer_complete);
|
&m->data.buffer_complete);
|
||||||
break;
|
break;
|
||||||
case RELAY_COMMAND_BUFFER_ACTIVATE:
|
|
||||||
buffer_activate (c->ctx, buffer);
|
|
||||||
break;
|
|
||||||
case RELAY_COMMAND_BUFFER_INPUT:
|
case RELAY_COMMAND_BUFFER_INPUT:
|
||||||
process_input (c->ctx, buffer, m->data.buffer_input.text.str);
|
process_input (c->ctx, buffer, m->data.buffer_input.text.str);
|
||||||
break;
|
break;
|
||||||
case RELAY_COMMAND_BUFFER_TOGGLE_UNIMPORTANT:
|
case RELAY_COMMAND_BUFFER_ACTIVATE:
|
||||||
buffer_toggle_unimportant (c->ctx, buffer);
|
buffer_activate (c->ctx, buffer);
|
||||||
break;
|
break;
|
||||||
case RELAY_COMMAND_BUFFER_LOG:
|
case RELAY_COMMAND_BUFFER_LOG:
|
||||||
client_process_buffer_log (c, m->command_seq, buffer);
|
client_process_buffer_log (c, m->command_seq, buffer);
|
||||||
|
@ -13,16 +13,6 @@ body {
|
|||||||
height: 100dvh;
|
height: 100dvh;
|
||||||
}
|
}
|
||||||
|
|
||||||
.overlay {
|
|
||||||
padding: .6em .9em;
|
|
||||||
background: #eee;
|
|
||||||
border: 1px outset #eee;
|
|
||||||
position: absolute;
|
|
||||||
left: 50%;
|
|
||||||
top: 50%;
|
|
||||||
transform: translate(-50%, -50%);
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
.title, .status {
|
.title, .status {
|
||||||
padding: .05em .3em;
|
padding: .05em .3em;
|
||||||
background: #eee;
|
background: #eee;
|
||||||
|
@ -41,7 +41,7 @@ class RelayRpc extends EventTarget {
|
|||||||
}
|
}
|
||||||
this.ws.onclose = event => {
|
this.ws.onclose = event => {
|
||||||
let message = "Connection closed: " +
|
let message = "Connection closed: " +
|
||||||
event.reason + " (" + event.code + ")"
|
event.code + " (" + event.reason + ")"
|
||||||
for (const seq in this.promised)
|
for (const seq in this.promised)
|
||||||
this.promised[seq].reject(message)
|
this.promised[seq].reject(message)
|
||||||
|
|
||||||
@ -194,10 +194,6 @@ function bufferActivate(name) {
|
|||||||
rpc.send({command: 'BufferActivate', bufferName: name})
|
rpc.send({command: 'BufferActivate', bufferName: name})
|
||||||
}
|
}
|
||||||
|
|
||||||
function bufferToggleUnimportant(name) {
|
|
||||||
rpc.send({command: 'BufferToggleUnimportant', bufferName: name})
|
|
||||||
}
|
|
||||||
|
|
||||||
function bufferToggleLog() {
|
function bufferToggleLog() {
|
||||||
if (bufferLog) {
|
if (bufferLog) {
|
||||||
setTimeout(() =>
|
setTimeout(() =>
|
||||||
@ -811,18 +807,14 @@ let Input = {
|
|||||||
|
|
||||||
let Main = {
|
let Main = {
|
||||||
view: vnode => {
|
view: vnode => {
|
||||||
let overlay = undefined
|
let state = "Connected"
|
||||||
if (connecting)
|
if (connecting)
|
||||||
overlay = m('.overlay', {}, "Connecting...")
|
state = "Connecting..."
|
||||||
else if (rpc.ws === undefined)
|
else if (rpc.ws === undefined)
|
||||||
overlay = m('.overlay', {}, [
|
state = "Disconnected"
|
||||||
m('', {}, "Disconnected"),
|
|
||||||
m('', {}, m('small', {}, "Reload page to reconnect.")),
|
|
||||||
])
|
|
||||||
|
|
||||||
return m('.xP', {}, [
|
return m('.xP', {}, [
|
||||||
overlay,
|
m('.title', {}, [`xP (${state})`, m(Toolbar)]),
|
||||||
m('.title', {}, [`xP`, m(Toolbar)]),
|
|
||||||
m('.middle', {}, [m(BufferList), m(BufferContainer)]),
|
m('.middle', {}, [m(BufferList), m(BufferContainer)]),
|
||||||
m(Status),
|
m(Status),
|
||||||
m(Input),
|
m(Input),
|
||||||
@ -868,10 +860,6 @@ document.addEventListener('keydown', event => {
|
|||||||
case 'h':
|
case 'h':
|
||||||
bufferToggleLog()
|
bufferToggleLog()
|
||||||
break
|
break
|
||||||
case 'H':
|
|
||||||
if (bufferCurrent !== undefined)
|
|
||||||
bufferToggleUnimportant(bufferCurrent)
|
|
||||||
break
|
|
||||||
case 'a':
|
case 'a':
|
||||||
for (const name of names.slice(1))
|
for (const name of names.slice(1))
|
||||||
if (buffers.get(name).newMessages) {
|
if (buffers.get(name).newMessages) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user