mirror of
https://github.com/tmux/tmux.git
synced 2026-10-14 15:04:50 +00:00
Revert "Add formats and events for OSC 133 commmands, as well as a -T flag to"
This reverts commit f3c6b4f1a3.
This commit is contained in:
157
window.c
157
window.c
@@ -73,8 +73,8 @@ static struct window_pane *window_pane_create(struct window *, u_int, u_int,
|
||||
static void window_pane_destroy(struct window_pane *);
|
||||
static void window_pane_free(struct window_pane *);
|
||||
static void window_pane_scrollbar_timer(int, short, void *);
|
||||
static void window_pane_full_size_offset(struct window_pane *, int *, int *,
|
||||
u_int *, u_int *);
|
||||
static void window_pane_full_size_offset(struct window_pane *wp,
|
||||
int *xoff, int *yoff, u_int *sx, u_int *sy);
|
||||
|
||||
RB_GENERATE(windows, window, entry, window_cmp);
|
||||
RB_GENERATE(winlinks, winlink, entry, winlink_cmp);
|
||||
@@ -86,7 +86,6 @@ struct window_pane_prompt {
|
||||
status_prompt_input_cb inputcb;
|
||||
prompt_free_cb freecb;
|
||||
void *data;
|
||||
enum prompt_type type;
|
||||
};
|
||||
|
||||
int
|
||||
@@ -95,78 +94,6 @@ window_cmp(struct window *w1, struct window *w2)
|
||||
return (w1->id - w2->id);
|
||||
}
|
||||
|
||||
static void
|
||||
window_fire_renamed(struct window *w, const char *old_name)
|
||||
{
|
||||
struct event_payload *ep;
|
||||
struct cmd_find_state fs;
|
||||
|
||||
ep = event_payload_create();
|
||||
cmd_find_from_window(&fs, w, 0);
|
||||
event_payload_set_target(ep, &fs);
|
||||
event_payload_set_window(ep, "window", w);
|
||||
event_payload_set_string(ep, "old_name", "%s", old_name);
|
||||
event_payload_set_string(ep, "new_name", "%s", w->name);
|
||||
events_fire("window-renamed", ep);
|
||||
}
|
||||
|
||||
static void
|
||||
window_fire_pane_changed(struct window *w, struct window_pane *wp,
|
||||
struct window_pane *lastwp)
|
||||
{
|
||||
struct event_payload *ep;
|
||||
struct cmd_find_state fs;
|
||||
|
||||
ep = event_payload_create();
|
||||
cmd_find_from_pane(&fs, wp, 0);
|
||||
event_payload_set_target(ep, &fs);
|
||||
event_payload_set_window(ep, "window", w);
|
||||
event_payload_set_pane(ep, "pane", wp);
|
||||
event_payload_set_pane(ep, "new_pane", wp);
|
||||
if (lastwp != NULL)
|
||||
event_payload_set_pane(ep, "old_pane", lastwp);
|
||||
events_fire("window-pane-changed", ep);
|
||||
}
|
||||
|
||||
static void
|
||||
window_fire_pane_mode_changed(const char *name, struct window_pane *wp,
|
||||
const char *previous, const char *current, int entered)
|
||||
{
|
||||
struct event_payload *ep;
|
||||
struct cmd_find_state fs;
|
||||
|
||||
ep = event_payload_create();
|
||||
cmd_find_from_pane(&fs, wp, 0);
|
||||
event_payload_set_target(ep, &fs);
|
||||
event_payload_set_pane(ep, "pane", wp);
|
||||
event_payload_set_window(ep, "window", wp->window);
|
||||
|
||||
if (current != NULL)
|
||||
event_payload_set_string(ep, "current_mode", "%s", current);
|
||||
if (previous != NULL)
|
||||
event_payload_set_string(ep, "previous_mode", "%s", previous);
|
||||
event_payload_set_int(ep, "mode_entered", entered);
|
||||
|
||||
events_fire(name, ep);
|
||||
}
|
||||
|
||||
static void
|
||||
window_fire_pane_prompt(const char *name, struct window_pane *wp,
|
||||
enum prompt_type type)
|
||||
{
|
||||
struct event_payload *ep;
|
||||
struct cmd_find_state fs;
|
||||
const char *type_string = prompt_type_string(type);
|
||||
|
||||
ep = event_payload_create();
|
||||
cmd_find_from_pane(&fs, wp, 0);
|
||||
event_payload_set_target(ep, &fs);
|
||||
event_payload_set_pane(ep, "pane", wp);
|
||||
event_payload_set_window(ep, "window", wp->window);
|
||||
event_payload_set_string(ep, "prompt_type", "%s", type_string);
|
||||
events_fire(name, ep);
|
||||
}
|
||||
|
||||
int
|
||||
winlink_cmp(struct winlink *wl1, struct winlink *wl2)
|
||||
{
|
||||
@@ -517,15 +444,13 @@ window_pane_remove_ref(struct window_pane *wp, const char *from)
|
||||
void
|
||||
window_set_name(struct window *w, const char *new_name, int untrusted)
|
||||
{
|
||||
char *last, *name;
|
||||
char *name;
|
||||
|
||||
name = clean_name(new_name, untrusted);
|
||||
if (name != NULL) {
|
||||
last = xstrdup(w->name);
|
||||
free(w->name);
|
||||
w->name = name;
|
||||
window_fire_renamed(w, last);
|
||||
free(last);
|
||||
notify_window("window-renamed", w);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -635,13 +560,13 @@ window_pane_update_focus(struct window_pane *wp)
|
||||
log_debug("%s: %%%u focus out", __func__, wp->id);
|
||||
if (wp->base.mode & MODE_FOCUSON)
|
||||
bufferevent_write(wp->event, "\033[O", 3);
|
||||
events_fire_pane("pane-focus-out", wp);
|
||||
notify_pane("pane-focus-out", wp);
|
||||
wp->flags &= ~PANE_FOCUSED;
|
||||
} else if (focused && (~wp->flags & PANE_FOCUSED)) {
|
||||
log_debug("%s: %%%u focus in", __func__, wp->id);
|
||||
if (wp->base.mode & MODE_FOCUSON)
|
||||
bufferevent_write(wp->event, "\033[I", 3);
|
||||
events_fire_pane("pane-focus-in", wp);
|
||||
notify_pane("pane-focus-in", wp);
|
||||
wp->flags |= PANE_FOCUSED;
|
||||
} else
|
||||
log_debug("%s: %%%u focus unchanged", __func__, wp->id);
|
||||
@@ -677,7 +602,7 @@ window_set_active_pane(struct window *w, struct window_pane *wp, int notify)
|
||||
server_redraw_window(w);
|
||||
|
||||
if (notify)
|
||||
window_fire_pane_changed(w, w->active, lastwp);
|
||||
notify_window("window-pane-changed", w);
|
||||
return (1);
|
||||
}
|
||||
|
||||
@@ -867,8 +792,7 @@ window_zoom(struct window_pane *wp)
|
||||
w->saved_layout_root = w->layout_root;
|
||||
layout_init(w, wp);
|
||||
w->flags |= WINDOW_ZOOMED;
|
||||
events_fire_window("window-zoomed", w);
|
||||
events_fire_window("window-layout-changed", w);
|
||||
notify_window("window-layout-changed", w);
|
||||
|
||||
redraw_invalidate_scene(w);
|
||||
return (0);
|
||||
@@ -894,10 +818,8 @@ window_unzoom(struct window *w, int notify)
|
||||
}
|
||||
layout_fix_panes(w, NULL);
|
||||
|
||||
if (notify) {
|
||||
events_fire_window("window-unzoomed", w);
|
||||
events_fire_window("window-layout-changed", w);
|
||||
}
|
||||
if (notify)
|
||||
notify_window("window-layout-changed", w);
|
||||
|
||||
redraw_invalidate_scene(w);
|
||||
return (0);
|
||||
@@ -979,7 +901,7 @@ window_lost_pane(struct window *w, struct window_pane *wp)
|
||||
if (w->active != NULL) {
|
||||
window_pane_stack_remove(&w->last_panes, w->active);
|
||||
w->active->flags |= PANE_CHANGED;
|
||||
events_fire_window("window-pane-changed", w);
|
||||
notify_window("window-pane-changed", w);
|
||||
window_update_focus(w);
|
||||
}
|
||||
}
|
||||
@@ -1184,7 +1106,6 @@ window_pane_create(struct window *w, u_int sx, u_int sy, u_int hlimit)
|
||||
wp->window = w;
|
||||
wp->options = options_create(w->options);
|
||||
wp->flags = PANE_STYLECHANGED;
|
||||
wp->cmd_status = -1;
|
||||
|
||||
wp->id = next_window_pane_id++;
|
||||
RB_INSERT(window_pane_tree, &all_window_panes, wp);
|
||||
@@ -1309,9 +1230,9 @@ window_pane_destroy(struct window_pane *wp)
|
||||
window_pane_wait_finish(wp);
|
||||
spawn_editor_finish(wp);
|
||||
|
||||
window_pane_clear_prompt(wp);
|
||||
RB_REMOVE(window_pane_tree, &all_window_panes, wp);
|
||||
wp->flags |= PANE_DESTROYED;
|
||||
window_pane_clear_prompt(wp);
|
||||
|
||||
window_pane_free_modes(wp);
|
||||
screen_write_clear_dirty(wp);
|
||||
@@ -1442,8 +1363,6 @@ window_pane_resize(struct window_pane *wp, u_int sx, u_int sy)
|
||||
{
|
||||
struct window_mode_entry *wme;
|
||||
struct window_pane_resize *r;
|
||||
struct event_payload *ep;
|
||||
struct cmd_find_state fs;
|
||||
|
||||
if (sx == wp->sx && sy == wp->sy)
|
||||
return;
|
||||
@@ -1466,17 +1385,6 @@ window_pane_resize(struct window_pane *wp, u_int sx, u_int sy)
|
||||
wme = TAILQ_FIRST(&wp->modes);
|
||||
if (wme != NULL && wme->mode->resize != NULL)
|
||||
wme->mode->resize(wme, sx, sy);
|
||||
|
||||
ep = event_payload_create();
|
||||
cmd_find_from_pane(&fs, wp, 0);
|
||||
event_payload_set_target(ep, &fs);
|
||||
event_payload_set_pane(ep, "pane", wp);
|
||||
event_payload_set_window(ep, "window", wp->window);
|
||||
event_payload_set_uint(ep, "width", sx);
|
||||
event_payload_set_uint(ep, "height", sy);
|
||||
event_payload_set_uint(ep, "old_width", r->osx);
|
||||
event_payload_set_uint(ep, "old_height", r->osy);
|
||||
events_fire("pane-resized", ep);
|
||||
}
|
||||
|
||||
int
|
||||
@@ -1486,13 +1394,9 @@ window_pane_set_mode(struct window_pane *wp, struct window_pane *swp,
|
||||
{
|
||||
struct window_mode_entry *wme;
|
||||
struct window *w = wp->window;
|
||||
const char *name = mode->name, *p = NULL;
|
||||
|
||||
if (!TAILQ_EMPTY(&wp->modes)) {
|
||||
if (TAILQ_FIRST(&wp->modes)->mode == mode)
|
||||
return (1);
|
||||
p = TAILQ_FIRST(&wp->modes)->mode->name;
|
||||
}
|
||||
if (!TAILQ_EMPTY(&wp->modes) && TAILQ_FIRST(&wp->modes)->mode == mode)
|
||||
return (1);
|
||||
|
||||
TAILQ_FOREACH(wme, &wp->modes, entry) {
|
||||
if (wme->mode == mode)
|
||||
@@ -1518,9 +1422,7 @@ window_pane_set_mode(struct window_pane *wp, struct window_pane *swp,
|
||||
|
||||
server_redraw_window_borders(wp->window);
|
||||
server_status_window(wp->window);
|
||||
|
||||
window_fire_pane_mode_changed("pane-mode-entered", wp, p, name, 1);
|
||||
window_fire_pane_mode_changed("pane-mode-changed", wp, p, name, 1);
|
||||
notify_pane("pane-mode-changed", wp);
|
||||
|
||||
return (0);
|
||||
}
|
||||
@@ -1531,13 +1433,11 @@ window_pane_reset_mode(struct window_pane *wp)
|
||||
struct window_mode_entry *wme, *next;
|
||||
struct window *w = wp->window;
|
||||
int kill;
|
||||
const char *name, *p;
|
||||
|
||||
if (TAILQ_EMPTY(&wp->modes))
|
||||
return;
|
||||
|
||||
wme = TAILQ_FIRST(&wp->modes);
|
||||
p = wme->mode->name;
|
||||
kill = wme->kill;
|
||||
TAILQ_REMOVE(&wp->modes, wme, entry);
|
||||
wme->mode->free(wme);
|
||||
@@ -1554,16 +1454,13 @@ window_pane_reset_mode(struct window_pane *wp)
|
||||
if (next->mode->resize != NULL)
|
||||
next->mode->resize(next, wp->sx, wp->sy);
|
||||
}
|
||||
name = (next == NULL ? NULL : next->mode->name);
|
||||
|
||||
wp->flags |= (PANE_REDRAW|PANE_REDRAWSCROLLBAR|PANE_CHANGED);
|
||||
layout_fix_panes(w, NULL);
|
||||
|
||||
server_redraw_window_borders(wp->window);
|
||||
server_status_window(wp->window);
|
||||
|
||||
window_fire_pane_mode_changed("pane-mode-exited", wp, p, name, 0);
|
||||
window_fire_pane_mode_changed("pane-mode-changed", wp, p, name, 0);
|
||||
notify_pane("pane-mode-changed", wp);
|
||||
|
||||
if (kill)
|
||||
server_kill_pane(wp);
|
||||
@@ -1626,7 +1523,6 @@ window_pane_set_prompt(struct window_pane *wp, struct client *c,
|
||||
wpp->inputcb = inputcb;
|
||||
wpp->freecb = freecb;
|
||||
wpp->data = data;
|
||||
wpp->type = type;
|
||||
|
||||
memset(&pd, 0, sizeof pd);
|
||||
prompt_set_options(&pd, s);
|
||||
@@ -1644,28 +1540,19 @@ window_pane_set_prompt(struct window_pane *wp, struct client *c,
|
||||
wp->flags |= PANE_REDRAW;
|
||||
|
||||
prompt_incremental_start(wp->prompt);
|
||||
window_fire_pane_prompt("pane-prompt-opened", wp, type);
|
||||
}
|
||||
|
||||
/* Close a pane prompt. */
|
||||
void
|
||||
window_pane_clear_prompt(struct window_pane *wp)
|
||||
{
|
||||
struct prompt *prompt = wp->prompt;
|
||||
struct window_pane_prompt *wpp = wp->prompt_data;
|
||||
enum prompt_type type = PROMPT_TYPE_INVALID;
|
||||
struct prompt *prompt = wp->prompt;
|
||||
|
||||
if (prompt != NULL) {
|
||||
if (wpp != NULL)
|
||||
type = wpp->type;
|
||||
|
||||
wp->prompt = NULL;
|
||||
prompt_free(prompt);
|
||||
wp->flags |= PANE_REDRAW;
|
||||
|
||||
if (~wp->flags & PANE_DESTROYED)
|
||||
window_fire_pane_prompt("pane-prompt-closed", wp, type);
|
||||
}
|
||||
if (prompt == NULL)
|
||||
return;
|
||||
wp->prompt = NULL;
|
||||
prompt_free(prompt);
|
||||
wp->flags |= PANE_REDRAW;
|
||||
}
|
||||
|
||||
/* Does this pane have an open prompt? */
|
||||
|
||||
Reference in New Issue
Block a user