aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmd-queue.c1
-rw-r--r--control-notify.c4
-rw-r--r--control.c1
-rw-r--r--tty-keys.c8
-rw-r--r--window.c9
5 files changed, 11 insertions, 12 deletions
diff --git a/cmd-queue.c b/cmd-queue.c
index 6ea6f468..c5f75f40 100644
--- a/cmd-queue.c
+++ b/cmd-queue.c
@@ -20,6 +20,7 @@
#include <ctype.h>
#include <stdlib.h>
+#include <time.h>
#include "tmux.h"
diff --git a/control-notify.c b/control-notify.c
index 0931c23a..a298cdc5 100644
--- a/control-notify.c
+++ b/control-notify.c
@@ -99,14 +99,12 @@ void
control_notify_window_unlinked(unused struct session *s, struct window *w)
{
struct client *c;
- struct session *cs;
u_int i;
for (i = 0; i < ARRAY_LENGTH(&clients); i++) {
c = ARRAY_ITEM(&clients, i);
if (!CONTROL_SHOULD_NOTIFY_CLIENT(c) || c->session == NULL)
continue;
- cs = c->session;
control_write(c, "%%window-close @%u", w->id);
}
@@ -136,14 +134,12 @@ void
control_notify_window_renamed(struct window *w)
{
struct client *c;
- struct session *s;
u_int i;
for (i = 0; i < ARRAY_LENGTH(&clients); i++) {
c = ARRAY_ITEM(&clients, i);
if (!CONTROL_SHOULD_NOTIFY_CLIENT(c) || c->session == NULL)
continue;
- s = c->session;
control_write(c, "%%window-renamed @%u %s", w->id, w->name);
}
diff --git a/control.c b/control.c
index c888877e..ba243fd3 100644
--- a/control.c
+++ b/control.c
@@ -22,6 +22,7 @@
#include <event.h>
#include <stdlib.h>
#include <string.h>
+#include <time.h>
#include "tmux.h"
diff --git a/tty-keys.c b/tty-keys.c
index d86d22cd..3055f399 100644
--- a/tty-keys.c
+++ b/tty-keys.c
@@ -448,7 +448,7 @@ tty_keys_next(struct tty *tty)
const char *buf;
size_t len, size;
cc_t bspace;
- int key, delay;
+ int key, delay, expired = 0;
/* Get key buffer. */
buf = EVBUFFER_DATA(tty->event->input);
@@ -508,7 +508,7 @@ first_key:
}
tk = tty_keys_find(tty, buf + 1, len - 1, &size);
- if (tk != NULL) {
+ if (tk != NULL && (!expired || tk->next == NULL)) {
size++; /* include escape */
if (tk->next != NULL)
goto partial_key;
@@ -540,8 +540,10 @@ partial_key:
/* If timer is going, check for expiration. */
if (tty->flags & TTY_TIMER) {
if (evtimer_initialized(&tty->key_timer) &&
- !evtimer_pending(&tty->key_timer, NULL))
+ !evtimer_pending(&tty->key_timer, NULL)) {
+ expired = 1;
goto first_key;
+ }
return (0);
}
diff --git a/window.c b/window.c
index e30fb7e4..7678adc6 100644
--- a/window.c
+++ b/window.c
@@ -493,19 +493,18 @@ window_zoom(struct window_pane *wp)
int
window_unzoom(struct window *w)
{
- struct window_pane *wp, *wp1;
+ struct window_pane *wp;
if (!(w->flags & WINDOW_ZOOMED))
return (-1);
- wp = w->active;
w->flags &= ~WINDOW_ZOOMED;
layout_free(w);
w->layout_root = w->saved_layout_root;
- TAILQ_FOREACH(wp1, &w->panes, entry) {
- wp1->layout_cell = wp1->saved_layout_cell;
- wp1->saved_layout_cell = NULL;
+ TAILQ_FOREACH(wp, &w->panes, entry) {
+ wp->layout_cell = wp->saved_layout_cell;
+ wp->saved_layout_cell = NULL;
}
layout_fix_panes(w, w->sx, w->sy);