pidgin-ncurses-6.0-accessors.patch 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. Index: pidgin-2.10.11/finch/libgnt/gntwm.c
  2. ===================================================================
  3. --- pidgin-2.10.11.orig/finch/libgnt/gntwm.c
  4. +++ pidgin-2.10.11/finch/libgnt/gntwm.c
  5. @@ -174,37 +174,37 @@ work_around_for_ncurses_bug(void)
  6. cchar_t ch;
  7. PANEL *below = panel;
  8. - sx = panel->win->_begx;
  9. - ex = panel->win->_maxx + sx;
  10. - sy = panel->win->_begy;
  11. - ey = panel->win->_maxy + sy;
  12. + sx = getbegx(panel->win);
  13. + ex = getmaxx(panel->win) + sx;
  14. + sy = getbegy(panel->win);
  15. + ey = getmaxy(panel->win) + sy;
  16. while ((below = panel_below(below)) != NULL) {
  17. - if (sy > below->win->_begy + below->win->_maxy ||
  18. - ey < below->win->_begy)
  19. + if (sy > getbegy(below->win) + getmaxy(below->win) ||
  20. + ey < getbegy(below->win))
  21. continue;
  22. - if (sx > below->win->_begx + below->win->_maxx ||
  23. - ex < below->win->_begx)
  24. + if (sx > getbegx(below->win) + getmaxx(below->win) ||
  25. + ex < getbegx(below->win))
  26. continue;
  27. - for (y = MAX(sy, below->win->_begy); y <= MIN(ey, below->win->_begy + below->win->_maxy); y++) {
  28. - if (mvwin_wch(below->win, y - below->win->_begy, sx - 1 - below->win->_begx, &ch) != OK)
  29. + for (y = MAX(sy, getbegy(below->win)); y <= MIN(ey, getbegy(below->win) + getmaxy(below->win)); y++) {
  30. + if (mvwin_wch(below->win, y - getbegy(below->win), sx - 1 - getbegx(below->win), &ch) != OK)
  31. goto right;
  32. w = widestringwidth(ch.chars);
  33. if (w > 1 && (ch.attr & 1)) {
  34. ch.chars[0] = ' ';
  35. ch.attr &= ~ A_CHARTEXT;
  36. - mvwadd_wch(below->win, y - below->win->_begy, sx - 1 - below->win->_begx, &ch);
  37. - touchline(below->win, y - below->win->_begy, 1);
  38. + mvwadd_wch(below->win, y - getbegy(below->win), sx - 1 - getbegx(below->win), &ch);
  39. + touchline(below->win, y - getbegy(below->win), 1);
  40. }
  41. right:
  42. - if (mvwin_wch(below->win, y - below->win->_begy, ex + 1 - below->win->_begx, &ch) != OK)
  43. + if (mvwin_wch(below->win, y - getbegy(below->win), ex + 1 - getbegx(below->win), &ch) != OK)
  44. continue;
  45. w = widestringwidth(ch.chars);
  46. if (w > 1 && !(ch.attr & 1)) {
  47. ch.chars[0] = ' ';
  48. ch.attr &= ~ A_CHARTEXT;
  49. - mvwadd_wch(below->win, y - below->win->_begy, ex + 1 - below->win->_begx, &ch);
  50. - touchline(below->win, y - below->win->_begy, 1);
  51. + mvwadd_wch(below->win, y - getbegy(below->win), ex + 1 - getbegx(below->win), &ch);
  52. + touchline(below->win, y - getbegy(below->win), 1);
  53. }
  54. }
  55. }