… | |
… | |
1649 | /* ------------------------------------------------------------------------- * |
1649 | /* ------------------------------------------------------------------------- * |
1650 | * MAJOR SCREEN MANIPULATION * |
1650 | * MAJOR SCREEN MANIPULATION * |
1651 | * ------------------------------------------------------------------------- */ |
1651 | * ------------------------------------------------------------------------- */ |
1652 | |
1652 | |
1653 | /* |
1653 | /* |
|
|
1654 | * refresh matching text. |
|
|
1655 | */ |
|
|
1656 | bool |
|
|
1657 | rxvt_term::scr_refresh_rend (rend_t mask, rend_t value) |
|
|
1658 | { |
|
|
1659 | bool found = false; |
|
|
1660 | |
|
|
1661 | for (int i = 0; i < TermWin.nrow; i++) |
|
|
1662 | { |
|
|
1663 | int col = 0; |
|
|
1664 | rend_t *drp = drawn_rend [i]; |
|
|
1665 | |
|
|
1666 | for (; col < TermWin.ncol; col++, drp++) |
|
|
1667 | if ((*drp & mask) == value) |
|
|
1668 | { |
|
|
1669 | found = true; |
|
|
1670 | *drp = ~value; |
|
|
1671 | } |
|
|
1672 | } |
|
|
1673 | |
|
|
1674 | return found; |
|
|
1675 | } |
|
|
1676 | |
|
|
1677 | /* |
1654 | * Refresh an area |
1678 | * Refresh an area |
1655 | */ |
1679 | */ |
1656 | enum { |
1680 | enum { |
1657 | PART_BEG = 0, |
1681 | PART_BEG = 0, |
1658 | PART_END, |
1682 | PART_END, |
… | |
… | |
2133 | int back = GET_BGCOLOR (rend); // desired background |
2157 | int back = GET_BGCOLOR (rend); // desired background |
2134 | |
2158 | |
2135 | rend = GET_ATTR (rend); |
2159 | rend = GET_ATTR (rend); |
2136 | |
2160 | |
2137 | rvid = !!(rend & RS_RVid); |
2161 | rvid = !!(rend & RS_RVid); |
|
|
2162 | #ifdef TEXT_BLINK |
|
|
2163 | if (rend & RS_Blink) |
|
|
2164 | { |
|
|
2165 | if (!text_blink_ev.active) |
|
|
2166 | { |
|
|
2167 | text_blink_ev.start (NOW + TEXT_BLINK_INTERVAL); |
|
|
2168 | hidden_text = 0; |
|
|
2169 | } |
|
|
2170 | else if (hidden_text) |
|
|
2171 | fore = back; |
|
|
2172 | } |
2138 | #ifdef OPTION_HC |
2173 | #elif OPTION_HC |
2139 | if (!rvid && (rend & RS_Blink)) |
2174 | if (!rvid && (rend & RS_Blink)) |
2140 | { |
2175 | { |
2141 | if (Xdepth > 2 && ISSET_PIXCOLOR (this, Color_HC)) |
2176 | if (Xdepth > 2 && ISSET_PIXCOLOR (this, Color_HC)) |
2142 | back = Color_HC; |
2177 | back = Color_HC; |
2143 | else |
2178 | else |
… | |
… | |
2158 | #endif |
2193 | #endif |
2159 | } |
2194 | } |
2160 | #ifndef NO_BOLD_UNDERLINE_REVERSE |
2195 | #ifndef NO_BOLD_UNDERLINE_REVERSE |
2161 | else if (rend & RS_Bold) |
2196 | else if (rend & RS_Bold) |
2162 | { |
2197 | { |
|
|
2198 | if (Xdepth > 2) |
2163 | if (Xdepth > 2 && ISSET_PIXCOLOR (this, Color_BD)) |
2199 | if (ISSET_PIXCOLOR (this, Color_BD)) |
2164 | fore = Color_BD; |
2200 | fore = Color_BD; |
|
|
2201 | else |
|
|
2202 | fore = Color_White; |
2165 | } |
2203 | } |
2166 | else if (rend & RS_Uline) |
2204 | else if (rend & RS_Uline) |
2167 | { |
2205 | { |
2168 | if (Xdepth > 2 && ISSET_PIXCOLOR (this, Color_UL)) |
2206 | if (Xdepth > 2 && ISSET_PIXCOLOR (this, Color_UL)) |
2169 | fore = Color_UL; |
2207 | fore = Color_UL; |