git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge remote branch 'origin/pootle-import'
[enigma2.git]
/
lib
/
gui
/
ewidgetdesktop.cpp
diff --git
a/lib/gui/ewidgetdesktop.cpp
b/lib/gui/ewidgetdesktop.cpp
index 9f40a3dbcf9c303fa9fe583753c7e175678dd790..08bd04740fcfc8c33d4d5ba49c6223a2311877c7 100644
(file)
--- a/
lib/gui/ewidgetdesktop.cpp
+++ b/
lib/gui/ewidgetdesktop.cpp
@@
-7,7
+7,7
@@
extern void dumpRegion(const gRegion ®ion);
void eWidgetDesktop::addRootWidget(eWidget *root)
{
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. */
int invert_sense = 0;
/* buffered mode paints back-to-front, while immediate mode is front-to-back. */
@@
-145,6
+145,9
@@
void eWidgetDesktop::recalcClipRegions(eWidget *root)
createBufferForWidget(root, 0);
comp = root->m_comp_buffer[i]; /* it might have changed. */
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;
/* 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;
@@
-329,6
+332,10
@@
void eWidgetDesktop::paint()
if (m_comp_mode == cmBuffered)
{
// redrawComposition(0);
if (m_comp_mode == cmBuffered)
{
// redrawComposition(0);
+ } else
+ {
+ gPainter painter(m_screen.m_dc);
+ painter.flush();
}
}
}
}
@@
-343,12
+350,11
@@
void eWidgetDesktop::setRedrawTask(eMainloop &ml)
{
if (m_mainloop)
{
{
if (m_mainloop)
{
- delete m_timer;
m_timer = 0;
m_mainloop = 0;
}
m_mainloop = &ml;
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)
CONNECT(m_timer->timeout, eWidgetDesktop::paint);
if (m_require_redraw)
@@
-375,7
+381,10
@@
void eWidgetDesktop::makeCompatiblePixmap(gPixmap &pm)
ePtr<gPixmap> target_pixmap;
m_screen.m_dc->getPixmap(target_pixmap);
ePtr<gPixmap> target_pixmap;
m_screen.m_dc->getPixmap(target_pixmap);
- assert(target_pixmap);
+ if (!target_pixmap) {
+ eDebug("no target pixmap! assuming bpp > 8 for accelerated graphics.");
+ return;
+ }
if (target_pixmap->surface && target_pixmap->surface->bpp > 8)
return;
if (target_pixmap->surface && target_pixmap->surface->bpp > 8)
return;
@@
-399,7
+408,7
@@
void eWidgetDesktop::setCompositionMode(int mode)
removeBufferForWidget(*i, l);
}
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;
{
m_screen.m_dirty_region = gRegion(eRect(ePoint(0, 0), size));
m_screen.m_screen_size = size;
@@
-463,7
+472,7
@@
void eWidgetDesktop::redrawComposition(int notified)
if (m_comp_mode != cmBuffered)
return;
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));
gPainter p(m_screen.m_dc);
p.resetClip(eRect(ePoint(0, 0), m_screen.m_screen_size));