diff options
author | Johannes Hofmann <Johannes.Hofmann@gmx.de> | 2011-09-06 21:59:28 +0200 |
---|---|---|
committer | Johannes Hofmann <Johannes.Hofmann@gmx.de> | 2011-09-06 21:59:28 +0200 |
commit | 6e539b69c6663c3bb99396716bc5e8e3d67f42cb (patch) | |
tree | db5b5ad9088b5a7ade21aba3d5141cb7e8edc842 | |
parent | 4472e0fdac7e83bd7db6e891d27c7f5d9309d390 (diff) |
avoid redraw loops with ComplexComplexButtonResource
ComplexButtonResource was creating endless redraws.
Testcase:
<table>
<tr>
<td>
<div>
<button></button>
</div>
<div>
words words words words words words words words words words words
words words words words words words words words words words words
words words words words words words words words words words words
words words words words words words words words words words words
<span style="white-space:nowrap">And words in a span</span>
<button></button>
</div>
</td>
</table>
This also fixes redraw loops with <button> in combination with
limit_text_width=YES, so we no longer need to disable this option.
Reported and testcase by: corvid <corvid@lavabit.com>
-rw-r--r-- | ChangeLog | 1 | ||||
-rw-r--r-- | dillorc | 2 | ||||
-rw-r--r-- | dw/ui.cc | 4 | ||||
-rw-r--r-- | src/form.cc | 5 | ||||
-rw-r--r-- | src/prefsparser.cc | 7 |
5 files changed, 7 insertions, 12 deletions
@@ -36,6 +36,7 @@ dillo-3.0 [September ??, 2011] Patches: corvid +- Add support for CSS adjacent sibling selectors. - Collapse parent's and first child's top margin. + - Fix redraw loops and reenable limit_text_width dillorc option. Patch: Johannes Hofmann +- Default binding for left-tab changed to Shift-Ctrl-Tab. Patch: Jeremy Henty @@ -80,8 +80,6 @@ # Set this to YES if you want to limit the word wrap width to the viewport # width (may be useful for iPAQ) -# *** NOT HOOKED UP YET *** -# #limit_text_width=NO @@ -266,9 +266,9 @@ void ComplexButtonResource::LayoutReceiver::canvasSizeChanged (int width, int descent) { /** - * \todo The argument to queueResize is not always true. (But this works.) + * \todo Verify that this is correct. */ - resource->queueResize (true); + resource->queueResize (resource->childWidget->extremesChanged ()); } ComplexButtonResource::ComplexButtonResource () diff --git a/src/form.cc b/src/form.cc index 9b86fcb7..f70bea8c 100644 --- a/src/form.cc +++ b/src/form.cc @@ -851,7 +851,10 @@ void Html_tag_open_button(DilloHtml *html, const char *tag, int tagsize) Embed *embed; char *name, *value; - page = new Textblock (prefs.limit_text_width); + /* We used to have Textblock (prefs.limit_text_width) here, + * but it caused 100% CPU usage. + */ + page = new Textblock (false); page->setStyle (html->styleEngine->backgroundStyle ()); ResourceFactory *factory = HT2LT(html)->getResourceFactory(); diff --git a/src/prefsparser.cc b/src/prefsparser.cc index 3f8e4a97..4ebb39df 100644 --- a/src/prefsparser.cc +++ b/src/prefsparser.cc @@ -218,11 +218,4 @@ void PrefsParser::parse(FILE *fp) // restore the old numeric locale setlocale(LC_NUMERIC, oldLocale); dFree(oldLocale); - - - if (prefs.limit_text_width) { - /* BUG: causes 100% CPU usage with <button> or <input type="image"> */ - MSG_WARN("Disabling limit_text_width preference (currently broken).\n"); - prefs.limit_text_width = FALSE; - } } |