Plumb Widget ownership up higher.

This commit is contained in:
2025-04-18 14:15:09 -04:00
parent b6c7511997
commit 99515ff353
6 changed files with 14 additions and 13 deletions

View File

@ -960,10 +960,12 @@ void Html_tag_open_button(DilloHtml *html, const char *tag, int tagsize)
* but it caused 100% CPU usage.
*/
page = new Textblock (false, true);
std::unique_ptr< Widget > page_unique;
page_unique.reset( page );
page->setStyle (html->backgroundStyle ());
ResourceFactory *factory = HT2LT(html)->getResourceFactory();
Resource *resource = factory->createComplexButtonResource(page, true);
Resource *resource = factory->createComplexButtonResource(std::move( page_unique ), true);
embed = new Embed(resource);
// a_Dw_button_set_sensitive (DW_BUTTON (button), FALSE);
@ -2043,10 +2045,12 @@ static Embed *Html_input_image(DilloHtml *html, const char *tag, int tagsize)
// widget. Notice that the order of the casts matters, because
// of multiple inheritance.
dw::Image *dwi = (dw::Image*)(dw::core::ImgRenderer*)Image->img_rndr;
std::unique_ptr< dw::core::Widget > dwi_unique;
dwi_unique.reset( dwi );
dwi->setStyle (html->backgroundStyle ());
ResourceFactory *factory = HT2LT(html)->getResourceFactory();
ComplexButtonResource *complex_b_r =
factory->createComplexButtonResource(dwi, false);
factory->createComplexButtonResource(std::move( dwi_unique ), false);
button = new Embed(complex_b_r);
HT2TB(html)->addWidget (button, html->style ());
}