commit f6f7921e6704abe1a71c7098c207f0d1001a83de
parent d66f50100d7a5b12bf7f0557e33bb1d3fcfaa9aa
Author: phillbush <phillbush@cock.li>
Date: Wed, 15 Sep 2021 19:26:26 -0300
avoid calculating rows twice when rearranging them
Diffstat:
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/shod.c b/shod.c
@@ -2484,7 +2484,7 @@ tabdel(struct Tab *t)
/* detach row from column */
static void
-rowdetach(struct Row *row)
+rowdetach(struct Row *row, int recalc)
{
if (row->col->selrow == row)
row->col->selrow = (row->prev != NULL) ? row->prev : row->next;
@@ -2499,7 +2499,9 @@ rowdetach(struct Row *row)
row->col->maxrow = NULL;
row->next = NULL;
row->prev = NULL;
- colcalcrows(row->col, 0);
+ if (recalc) {
+ colcalcrows(row->col, 0);
+ }
}
/* delete row */
@@ -2508,7 +2510,7 @@ rowdel(struct Row *row)
{
while (row->tabs)
tabdel(row->tabs);
- rowdetach(row);
+ rowdetach(row, 1);
XDestroyWindow(dpy, row->frame);
XDestroyWindow(dpy, row->bar);
XDestroyWindow(dpy, row->bl);
@@ -4021,7 +4023,7 @@ done:
break;
}
if (prev != row && prev != NULL) {
- rowdetach(row);
+ rowdetach(row, 0);
coladdrow(newcol, row, prev);
}
if (row->prev != NULL) {