57 lines
2.6 KiB
Diff
57 lines
2.6 KiB
Diff
|
--- a/gntwm.c
|
||
|
+++ b/gntwm.c
|
||
|
@@ -167,37 +167,37 @@ work_around_for_ncurses_bug(void)
|
||
|
cchar_t ch;
|
||
|
PANEL *below = panel;
|
||
|
|
||
|
- sx = getbegx(panel->win);
|
||
|
- ex = getmaxx(panel->win) + sx;
|
||
|
- sy = getbegy(panel->win);
|
||
|
- ey = getmaxy(panel->win) + sy;
|
||
|
+ sx = getbegx(panel_window(panel));
|
||
|
+ ex = getmaxx(panel_window(panel)) + sx;
|
||
|
+ sy = getbegy(panel_window(panel));
|
||
|
+ ey = getmaxy(panel_window(panel)) + sy;
|
||
|
|
||
|
while ((below = panel_below(below)) != NULL) {
|
||
|
- if (sy > getbegy(below->win) + getmaxy(below->win) ||
|
||
|
- ey < getbegy(below->win))
|
||
|
+ if (sy > getbegy(panel_window(below)) + getmaxy(panel_window(below)) ||
|
||
|
+ ey < getbegy(panel_window(below)))
|
||
|
continue;
|
||
|
- if (sx > getbegx(below->win) + getmaxx(below->win) ||
|
||
|
- ex < getbegx(below->win))
|
||
|
+ if (sx > getbegx(panel_window(below)) + getmaxx(panel_window(below)) ||
|
||
|
+ ex < getbegx(panel_window(below)))
|
||
|
continue;
|
||
|
- for (y = MAX(sy, getbegy(below->win)); y <= MIN(ey, getbegy(below->win) + getmaxy(below->win)); y++) {
|
||
|
- if (mvwin_wch(below->win, y - getbegy(below->win), sx - 1 - getbegx(below->win), &ch) != OK)
|
||
|
+ for (y = MAX(sy, getbegy(panel_window(below))); y <= MIN(ey, getbegy(panel_window(below)) + getmaxy(panel_window(below))); y++) {
|
||
|
+ if (mvwin_wch(panel_window(below), y - getbegy(panel_window(below)), sx - 1 - getbegx(panel_window(below)), &ch) != OK)
|
||
|
goto right;
|
||
|
w = widestringwidth(ch.chars);
|
||
|
if (w > 1 && (ch.attr & 1)) {
|
||
|
ch.chars[0] = ' ';
|
||
|
ch.attr &= ~ A_CHARTEXT;
|
||
|
- mvwadd_wch(below->win, y - getbegy(below->win), sx - 1 - getbegx(below->win), &ch);
|
||
|
- touchline(below->win, y - getbegy(below->win), 1);
|
||
|
+ mvwadd_wch(panel_window(below), y - getbegy(panel_window(below)), sx - 1 - getbegx(panel_window(below)), &ch);
|
||
|
+ touchline(panel_window(below), y - getbegy(panel_window(below)), 1);
|
||
|
}
|
||
|
right:
|
||
|
- if (mvwin_wch(below->win, y - getbegy(below->win), ex + 1 - getbegx(below->win), &ch) != OK)
|
||
|
+ if (mvwin_wch(panel_window(below), y - getbegy(panel_window(below)), ex + 1 - getbegx(panel_window(below)), &ch) != OK)
|
||
|
continue;
|
||
|
w = widestringwidth(ch.chars);
|
||
|
if (w > 1 && !(ch.attr & 1)) {
|
||
|
ch.chars[0] = ' ';
|
||
|
ch.attr &= ~ A_CHARTEXT;
|
||
|
- mvwadd_wch(below->win, y - getbegy(below->win), ex + 1 - getbegx(below->win), &ch);
|
||
|
- touchline(below->win, y - getbegy(below->win), 1);
|
||
|
+ mvwadd_wch(panel_window(below), y - getbegy(panel_window(below)), ex + 1 - getbegx(panel_window(below)), &ch);
|
||
|
+ touchline(panel_window(below), y - getbegy(panel_window(below)), 1);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
Только в b: gntwm.c.orig
|