[BACK]Return to popup.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / tmux

Diff for /src/usr.bin/tmux/popup.c between version 1.28 and 1.29

version 1.28, 2021/08/13 19:25:24 version 1.29, 2021/08/13 19:27:25
Line 77 
Line 77 
         { "", KEYC_NONE, NULL },          { "", KEYC_NONE, NULL },
         { "Fill Space", 'F', NULL },          { "Fill Space", 'F', NULL },
         { "Centre", 'C', NULL },          { "Centre", 'C', NULL },
           { "", KEYC_NONE, NULL },
           { "Make Pane (H)", 'h', NULL },
           { "Make Pane (V)", 'v', NULL },
   
         { NULL, KEYC_NONE, NULL }          { NULL, KEYC_NONE, NULL }
 };  };
   
   static const struct menu_item popup_internal_menu_items[] = {
           { "Close", 'q', NULL },
           { "", KEYC_NONE, NULL },
           { "Fill Space", 'F', NULL },
           { "Centre", 'C', NULL },
   
           { NULL, KEYC_NONE, NULL }
   };
   
 static void  static void
 popup_redraw_cb(const struct tty_ctx *ttyctx)  popup_redraw_cb(const struct tty_ctx *ttyctx)
 {  {
Line 279 
Line 291 
 }  }
   
 static void  static void
   popup_make_pane(struct popup_data *pd, enum layout_type type)
   {
           struct client           *c = pd->c;
           struct session          *s = c->session;
           struct window           *w = s->curw->window;
           struct layout_cell      *lc;
           struct window_pane      *wp = w->active, *new_wp;
           u_int                    hlimit;
   
           window_unzoom(w);
   
           lc = layout_split_pane(wp, type, -1, 0);
           hlimit = options_get_number(s->options, "history-limit");
           new_wp = window_add_pane(wp->window, NULL, hlimit, 0);
           layout_assign_pane(lc, new_wp, 0);
   
           new_wp->fd = job_transfer(pd->job);
           pd->job = NULL;
   
           screen_free(&new_wp->base);
           memcpy(&new_wp->base, &pd->s, sizeof wp->base);
           screen_resize(&new_wp->base, new_wp->sx, new_wp->sy, 1);
           screen_init(&pd->s, 1, 1, 0);
   
           window_pane_set_event(new_wp);
           window_set_active_pane(w, new_wp, 1);
   
           pd->close = 1;
   }
   
   static void
 popup_menu_done(__unused struct menu *menu, __unused u_int choice,  popup_menu_done(__unused struct menu *menu, __unused u_int choice,
     key_code key, void *data)      key_code key, void *data)
 {  {
Line 312 
Line 355 
                 pd->py = c->tty.sy / 2 - pd->sy / 2;                  pd->py = c->tty.sy / 2 - pd->sy / 2;
                 server_redraw_client(c);                  server_redraw_client(c);
                 break;                  break;
           case 'h':
                   popup_make_pane(pd, LAYOUT_LEFTRIGHT);
                   break;
           case 'v':
                   popup_make_pane(pd, LAYOUT_TOPBOTTOM);
                   break;
         case 'q':          case 'q':
                 pd->close = 1;                  pd->close = 1;
                 break;                  break;
Line 460 
Line 509 
   
 menu:  menu:
         pd->menu = menu_create("");          pd->menu = menu_create("");
         menu_add_items(pd->menu, popup_menu_items, NULL, NULL, NULL);          if (pd->flags & POPUP_INTERNAL) {
                   menu_add_items(pd->menu, popup_internal_menu_items, NULL, NULL,
                       NULL);
           } else
                   menu_add_items(pd->menu, popup_menu_items, NULL, NULL, NULL);
         if (m->x >= (pd->menu->width + 4) / 2)          if (m->x >= (pd->menu->width + 4) / 2)
                 x = m->x - (pd->menu->width + 4) / 2;                  x = m->x - (pd->menu->width + 4) / 2;
         else          else
Line 659 
Line 712 
         py = (c->tty.sy / 2) - (sy / 2);          py = (c->tty.sy / 2) - (sy / 2);
   
         xasprintf(&cmd, "%s %s", editor, path);          xasprintf(&cmd, "%s %s", editor, path);
         if (popup_display(POPUP_CLOSEEXIT, NULL, px, py, sx, sy, cmd, 0, NULL,          if (popup_display(POPUP_INTERNAL|POPUP_CLOSEEXIT, NULL, px, py, sx, sy,
             _PATH_TMP, c, NULL, popup_editor_close_cb, pe) != 0) {              cmd, 0, NULL, _PATH_TMP, c, NULL, popup_editor_close_cb, pe) != 0) {
                 popup_editor_free(pe);                  popup_editor_free(pe);
                 free(cmd);                  free(cmd);
                 return (-1);                  return (-1);

Legend:
Removed from v.1.28  
changed lines
  Added in v.1.29