Skip to content

Commit 2175d1f

Browse files
committed
1 parent e2c19d3 commit 2175d1f

File tree

3 files changed

+30
-4
lines changed

3 files changed

+30
-4
lines changed

litebrowser/HtmlViewWnd.cpp

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,12 +142,23 @@ void CHTMLViewWnd::OnPaint( simpledib::dib* dib, LPRECT rcDraw )
142142
{
143143
if(m_doc)
144144
{
145-
cairo_dev cr(dib);
145+
cairo_surface_t* surface = cairo_image_surface_create_for_data((unsigned char*) dib->bits(), CAIRO_FORMAT_ARGB32, dib->width(), dib->height(), dib->width() * 4);
146+
cairo_t* cr = cairo_create(surface);
147+
148+
POINT pt;
149+
GetWindowOrgEx(dib->hdc(), &pt);
150+
if(pt.x != 0 || pt.y != 0)
151+
{
152+
cairo_translate(cr, -pt.x, -pt.y);
153+
}
146154
cairo_set_source_rgb(cr, 1, 1, 1);
147155
cairo_paint(cr);
148156

149157
litehtml::position clip(rcDraw->left, rcDraw->top, rcDraw->right - rcDraw->left, rcDraw->bottom - rcDraw->top);
150-
m_doc->draw((litehtml::uint_ptr) dib, -m_left, -m_top, &clip);
158+
m_doc->draw((litehtml::uint_ptr) cr, -m_left, -m_top, &clip);
159+
160+
cairo_destroy(cr);
161+
cairo_surface_destroy(surface);
151162
}
152163
}
153164

litebrowser/ToolbarWnd.cpp

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,12 +125,23 @@ void CToolbarWnd::OnPaint( simpledib::dib* dib, LPRECT rcDraw )
125125
{
126126
if(m_doc)
127127
{
128-
cairo_dev cr(dib);
128+
cairo_surface_t* surface = cairo_image_surface_create_for_data((unsigned char*) dib->bits(), CAIRO_FORMAT_ARGB32, dib->width(), dib->height(), dib->width() * 4);
129+
cairo_t* cr = cairo_create(surface);
130+
131+
POINT pt;
132+
GetWindowOrgEx(dib->hdc(), &pt);
133+
if(pt.x != 0 || pt.y != 0)
134+
{
135+
cairo_translate(cr, -pt.x, -pt.y);
136+
}
129137
cairo_set_source_rgb(cr, 1, 1, 1);
130138
cairo_paint(cr);
131139

132140
litehtml::position clip(rcDraw->left, rcDraw->top, rcDraw->right - rcDraw->left, rcDraw->bottom - rcDraw->top);
133141
m_doc->draw((litehtml::uint_ptr) dib, 0, 0, &clip);
142+
143+
cairo_destroy(cr);
144+
cairo_surface_destroy(surface);
134145
}
135146
}
136147

litehtml/element.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,7 @@ void litehtml::element::parse_styles(bool is_reparse)
440440
int litehtml::element::render( int x, int y, int max_width )
441441
{
442442
/*
443-
if(is_body())
443+
if(m_tag == L"div")
444444
{
445445
int iii = 0;
446446
iii++;
@@ -2104,6 +2104,10 @@ int litehtml::element::place_element( element* el, int max_width )
21042104
}
21052105
add_float(el);
21062106
fix_line_width(max_width);
2107+
2108+
line_left = get_line_left(line_top);
2109+
line_right = get_line_right(line_top, max_width);
2110+
21072111
ret_width = line_left + (max_width - line_right);
21082112
} else
21092113
{

0 commit comments

Comments
 (0)