Hi, the following patch fixes the problem here: diff -r 4a9e0384d5ca dw/fltkviewbase.cc --- a/dw/fltkviewbase.cc Sat Feb 02 18:35:17 2008 +0100 +++ b/dw/fltkviewbase.cc Sun Feb 03 17:59:04 2008 +0100 @@ -64,7 +64,12 @@ void FltkViewBase::draw () translateCanvasYToViewY (rect->y), rect->width, rect->height); - viewRect.intersect(view); + viewRect.intersect (view); + + rect->x = translateViewXToCanvasX (viewRect.x ()); + rect->y = translateViewYToCanvasY (viewRect.y ()); + rect->width = viewRect.w (); + rect->height = viewRect.h (); if (!viewRect.empty ()) { push_clip (viewRect); It uses the rectangle that has been intersected with the current view area for expose(). But the real bug seems to be hidden somewhere in the table draw code. Without the patch, expose was called with a very high area (height was 106497!). This seems to cause problems. Perhaps some overflowing values? With the patch (which is a good optimization anyway), the height of the area that is passed to expose is limited by the current view size. Regards, Johannes On Sat, Feb 02, 2008 at 05:37:51PM -0300, Jorge Arellano Cid wrote:
On Sat, Feb 02, 2008 at 07:59:53PM +0000, place wrote:
Jorge wrote:
BTW, Why when in the bookmarks' modify page, checking a section gives a white mark while checking a URL gives a black one?
I prefer the black one. It offers higher contrast.
The
int32_t c = bg->colors[FltkColor::SHADING_NORMAL]; int r = (c >> 24) & 0xff, g = (c >> 16) & 0xff, b = (c >> 8) & 0xff; bool light = r + g + b > 0x230;
in FltkResource::setWidgetStyle() needs tweaking.
I see.
Let's see... On my display, a test something like bool light = (r + g >= 0x150) || (r + g + b >= 0x180) might be about right. That's probably not the most mathematically concise way to describe that, but anyway...
/* I'm too rusty at scripting languages, so: */
#include <stdio.h> int main(int argc, char **argv) { int red, green, blue; printf("<table>\n\n"); for (red = 0; red < 0x100; red += 0x10) { for (green = 0; green < 0x100; green += 0x10) { for (blue = 0; blue < 0x100; blue += 0x10) { printf("<tr bgcolor=#%02x%02x%02x> <td>\n", red, green, blue); printf("<form>\n"); printf("<input type=\"text\" value=\"%02x%02x%02x 0x%x\">\n", red,green,blue, red+green+blue); printf("</form>\n"); } } } printf("</table>\n"); return 0; }
Funny how with that page I get serious problems with redrawing widgets. If I load the page and left click the non-widget area, the widgets dissapear under the bgcolor. If I click on the widgets, partial redraws are got.
I'm not yet testing with the latest drawing patch.
Johannes: would you mind checking this?
-- Cheers Jorge.-
_______________________________________________ Dillo-dev mailing list Dillo-dev@dillo.org http://lists.auriga.wearlab.de/cgi-bin/mailman/listinfo/dillo-dev