Download raw body.
tog: key map to switch split mode
Omar Polo <op@omarpolo.com> wrote: > Mark Jamsek <mark@jamsek.com> wrote: > > On 22-07-03 04:11pm, Omar Polo wrote: > > > Mark Jamsek <mark@jamsek.com> wrote: > > > > This introduces the 'S' global key map to switch the current splitscreen > > > > mode. > > > > > > > > If in a vsplit, it will switch to a hsplit. > > > > If in a hsplit, it will switch to a vsplit IFF COLUMNS > 119 else the > > > > view will remain unchanged (to honour existing vsplit behaviour). > > > > > > it works fine for me, and I really like the idea. > > > > > > ok op > > > > > > two small nit inline, feel free to discard it however. > > > > rebased and revised diff with op's suggestions > > still ok for me :) no wait, there's an error in view_get_split now. the first time the child view is opened in a split, but from the second onward is goes fullscreen. to reproduce: open tog, RET to see the child view in a split, q, RET again and it's fullscreen. > > static void > > view_get_split(struct tog_view *view, int *y, int *x) > > { > > - char *mode; > > - > > *x = 0; > > *y = 0; > > > > - mode = getenv("TOG_VIEW_SPLIT_MODE"); > > - > > - if (!mode || mode[0] != 'h') { > > - view->mode = TOG_VIEW_SPLIT_VERT; > > + if (view->mode == TOG_VIEW_SPLIT_VERT) > > *x = view_split_begin_x(view->begin_x); > > - } else if (mode && mode[0] == 'h') { > > - view->mode = TOG_VIEW_SPLIT_HRZN; > > + else if (view->mode == TOG_VIEW_SPLIT_HRZN) > > *y = view_split_begin_y(view->lines); > > - } the issue is here. The second time view->mode is TOG_VIEW_SPLIT_NONE so none of the branches are taken and both x and y are set to zero.
tog: key map to switch split mode