From: Omar Polo Subject: Re: fix cycle view in fullscreen regression To: Mark Jamsek Cc: gameoftrees@openbsd.org Date: Mon, 20 Jun 2022 17:03:26 +0200 Mark Jamsek wrote: > Actually, I think this is better. And like the other problem you > noticed, view_resize() now also honours fullscreen when resizing. two bugfixes with a commit! \o/ :D agreed, it's more self-contained and doesn't move the logic of maganing the child view all across all callers of view_resize. I also like how this fixes the issue with the resize during fullscreen! ok op@ there's still a small glitch, but i don't think it's introduced by your diff, that i found playing in ja.git. mentioning it here in case someone else stumble on it. sometimes the double-width characters in the log message are drawn over vborder. to reproduce: (in a wide enough terminal to have a split-screen) type enter to see the diff, then F, then tab two times, then F again to exit the fullscreen. We're probably missing a resize for the main view when exiting the fullscreen, i haven't tracked the issue (ENOTIME) ^^' > diff d8b5af438b16bcea5568b1d4bfc127567e35e2f6 /Users/mark/Library/Mobile Documents/com~apple~CloudDocs/src/got-current > blob - b8935d8f4d93a4f03c1d8727adb23a6137741acf > file + tog/tog.c > --- tog/tog.c > +++ tog/tog.c > @@ -748,6 +748,13 @@ view_is_parent_view(struct tog_view *view) > return view->parent == NULL; > } > > +static int > +view_is_splitscreen(struct tog_view *view) > +{ > + return view->begin_x > 0; > +} > + > + > static const struct got_error * > view_resize(struct tog_view *view) > { > @@ -763,7 +770,7 @@ view_resize(struct tog_view *view) > else > ncols = view->ncols + (COLS - view->cols); > > - if (view->child) { > + if (view->child && view_is_splitscreen(view->child)) { > view->child->begin_x = view_split_begin_x(view->begin_x); > if (view->child->begin_x == 0) { > ncols = COLS; > @@ -818,12 +825,6 @@ view_set_child(struct tog_view *view, struct tog_view > return view_resize(view); > } > > -static int > -view_is_splitscreen(struct tog_view *view) > -{ > - return view->begin_x > 0; > -} > - > static void > tog_resizeterm(void) > { > @@ -956,6 +957,8 @@ view_input(struct tog_view **new, int *done, struct to > view->focussed = 0; > view->parent->focussed = 1; > view->parent->focus_child = 0; > + if (!view_is_splitscreen(view)) > + err = view_fullscreen(view->parent); > } > break; > case 'q':