From 40163180295f33c41921a1c83964bb76fd030c96 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 26 Oct 2007 16:53:54 +0000 Subject: [PATCH] Make width % on table cells purely advisory --- src/libprs500/ebooks/lrf/html/table.py | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/src/libprs500/ebooks/lrf/html/table.py b/src/libprs500/ebooks/lrf/html/table.py index 52e937b11a..303aa1e592 100644 --- a/src/libprs500/ebooks/lrf/html/table.py +++ b/src/libprs500/ebooks/lrf/html/table.py @@ -327,28 +327,22 @@ class Table(object): except IndexError: continue widths[c] = max(cellwidths) - adjustable_columns, psum = [], 0. + min_widths = [self.minimum_width(i)+10 for i in xrange(cols)] for i in xrange(len(widths)): wp = self.width_percent(i) if wp >= 0.: - psum += wp - if psum > 100: - adjustable_columns.append(i) - else: - widths[i] = ceil((wp/100.) * (maxwidth - (cols-1)*self.colpad)) - if widths[i] < min_widths[i]: - widths[i] = min_widths[i] - else: - adjustable_columns.append(i) + widths[i] = max(min_widths[i], ceil((wp/100.) * (maxwidth - (cols-1)*self.colpad))) + itercount = 0 while sum(widths) > maxwidth-((len(widths)-1)*self.colpad) and itercount < 100: - for i in adjustable_columns: + for i in range(cols): widths[i] = ceil((95./100.)*widths[i]) if \ ceil((95./100.)*widths[i]) >= min_widths[i] else widths[i] itercount += 1 + return [i+self.colpad for i in widths] def blocks(self, maxwidth, maxheight):