void eWidgetDesktop::addRootWidget(eWidget *root)
{
- assert(!root->m_desktop);
+ ASSERT(!root->m_desktop);
int invert_sense = 0;
/* buffered mode paints back-to-front, while immediate mode is front-to-back. */
createBufferForWidget(root, 0);
comp = root->m_comp_buffer[i]; /* it might have changed. */
+
+ if (!comp)
+ continue; /* WAIT, don't we need to invalidate,whatever */
/* CHECKME: don't we need to recalculate everything? after all, our buffer has changed and is likely to be cleared */
gRegion visible_before = root->m_visible_with_childs;
if (m_comp_mode == cmBuffered)
{
// redrawComposition(0);
+ } else
+ {
+ gPainter painter(m_screen.m_dc);
+ painter.flush();
}
}
{
if (m_mainloop)
{
- delete m_timer;
m_timer = 0;
m_mainloop = 0;
}
m_mainloop = &ml;
- m_timer = new eTimer(m_mainloop);
+ m_timer = eTimer::create(m_mainloop);
CONNECT(m_timer->timeout, eWidgetDesktop::paint);
if (m_require_redraw)
ePtr<gPixmap> target_pixmap;
m_screen.m_dc->getPixmap(target_pixmap);
- assert(target_pixmap);
+ ASSERT(target_pixmap);
if (target_pixmap->surface && target_pixmap->surface->bpp > 8)
return;
removeBufferForWidget(*i, l);
}
-eWidgetDesktop::eWidgetDesktop(eSize size): m_mainloop(0), m_timer(0)
+eWidgetDesktop::eWidgetDesktop(eSize size): m_mainloop(0)
{
m_screen.m_dirty_region = gRegion(eRect(ePoint(0, 0), size));
m_screen.m_screen_size = size;
if (m_comp_mode != cmBuffered)
return;
- assert(m_screen.m_dc);
+ ASSERT(m_screen.m_dc);
gPainter p(m_screen.m_dc);
p.resetClip(eRect(ePoint(0, 0), m_screen.m_screen_size));
for (ePtrList<eWidget>::iterator i(widget->m_childs.begin()); i != widget->m_childs.end(); ++i)
clearVisibility(*i);
}
+
+void eWidgetDesktop::resize(eSize size)
+{
+ m_screen.m_dirty_region = gRegion(eRect(ePoint(0, 0), size));
+ m_screen.m_screen_size = size;
+}