no more crash in splitvertical. i think i changed the size of the middle gradient too. it's always 1px now unless the texture is very small, then it can be 0. if theres a discrepency, the bottom color gets the extra pixel.
This commit is contained in:
parent
e4c0504058
commit
0bfe6c1e52
1 changed files with 15 additions and 6 deletions
|
@ -431,15 +431,24 @@ static void gradient_splitvertical(RrAppearance *a, gint w, gint h)
|
|||
VARS(y2);
|
||||
VARS(y3);
|
||||
|
||||
|
||||
y1sz = MAX(h/2 - 1, 1);
|
||||
/* setup to get the colors _in between_ these other 2 */
|
||||
y2sz = (h < 3 ? 0 : (h % 2 ? 3 : 2));
|
||||
y3sz = MAX(h/2 - 1, 0);
|
||||
/* if h <= 5, then a 0 or 1px middle gradient.
|
||||
if h > 5, then always a 1px middle gradient.
|
||||
*/
|
||||
if (h <= 5) {
|
||||
y1sz = MAX(h/2, 0);
|
||||
y2sz = (h < 3 ? 0 : h % 2);
|
||||
y3sz = MAX(h/2, 1);
|
||||
}
|
||||
else {
|
||||
y1sz = h/2 - (1 - (h % 2));
|
||||
y2sz = 1;
|
||||
y3sz = h/2;
|
||||
}
|
||||
|
||||
SETUP(y1, sf->split_primary, sf->primary, y1sz);
|
||||
if (y2sz) {
|
||||
SETUP(y2, sf->primary, sf->secondary, y2sz);
|
||||
/* setup to get the colors _in between_ these other 2 */
|
||||
SETUP(y2, sf->primary, sf->secondary, y2sz + 2);
|
||||
NEXT(y2); /* skip the first one, its the same as the last of y1 */
|
||||
}
|
||||
SETUP(y3, sf->secondary, sf->split_secondary, y3sz);
|
||||
|
|
Loading…
Reference in a new issue