git.cweiske.de
/
enigma2.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
d050962
)
dont clear when not needed
author
ghost
<andreas.monzner@multimedia-labs.de>
Tue, 9 Mar 2010 10:36:06 +0000
(11:36 +0100)
committer
ghost
<andreas.monzner@multimedia-labs.de>
Thu, 11 Mar 2010 12:36:19 +0000
(13:36 +0100)
this fixes bug #474
lib/gui/elistboxcontent.cpp
patch
|
blob
|
history
diff --git
a/lib/gui/elistboxcontent.cpp
b/lib/gui/elistboxcontent.cpp
index 4b4b58c1bc2c458d7e6d08dfd7ce06cf32b313ab..4465d84c1e28250c1e40061959f57ead8973afd9 100644
(file)
--- a/
lib/gui/elistboxcontent.cpp
+++ b/
lib/gui/elistboxcontent.cpp
@@
-514,7
+514,7
@@
void eListboxPythonMultiContent::setSelectionClip(eRect &rect, bool update)
m_listbox->entryChanged(m_cursor);
}
m_listbox->entryChanged(m_cursor);
}
-static void clearRegionHelper(gPainter &painter, eListboxStyle *local_style, const ePoint &offset, ePyObject &pbackColor, bool cursorValid)
+static void clearRegionHelper(gPainter &painter, eListboxStyle *local_style, const ePoint &offset, ePyObject &pbackColor, bool cursorValid
, bool clear=true
)
{
if (pbackColor)
{
{
if (pbackColor)
{
@@
-536,10
+536,11
@@
static void clearRegionHelper(gPainter &painter, eListboxStyle *local_style, con
else if (local_style->m_transparent_background)
return;
}
else if (local_style->m_transparent_background)
return;
}
- painter.clear();
+ if (clear)
+ painter.clear();
}
}
-static void clearRegionSelectedHelper(gPainter &painter, eListboxStyle *local_style, const ePoint &offset, ePyObject &pbackColorSelected, bool cursorValid)
+static void clearRegionSelectedHelper(gPainter &painter, eListboxStyle *local_style, const ePoint &offset, ePyObject &pbackColorSelected, bool cursorValid
, bool clear=true
)
{
if (pbackColorSelected)
{
{
if (pbackColorSelected)
{
@@
-559,10
+560,11
@@
static void clearRegionSelectedHelper(gPainter &painter, eListboxStyle *local_st
return;
}
}
return;
}
}
- painter.clear();
+ if (clear)
+ painter.clear();
}
}
-static void clearRegion(gPainter &painter, eWindowStyle &style, eListboxStyle *local_style, ePyObject pforeColor, ePyObject pforeColorSelected, ePyObject pbackColor, ePyObject pbackColorSelected, int selected, gRegion &rc, eRect &sel_clip, const ePoint &offset, bool cursorValid)
+static void clearRegion(gPainter &painter, eWindowStyle &style, eListboxStyle *local_style, ePyObject pforeColor, ePyObject pforeColorSelected, ePyObject pbackColor, ePyObject pbackColorSelected, int selected, gRegion &rc, eRect &sel_clip, const ePoint &offset, bool cursorValid
, bool clear=true
)
{
if (selected && sel_clip.valid())
{
{
if (selected && sel_clip.valid())
{
@@
-571,7
+573,7
@@
static void clearRegion(gPainter &painter, eWindowStyle &style, eListboxStyle *l
{
painter.clip(part);
style.setStyle(painter, eWindowStyle::styleListboxNormal);
{
painter.clip(part);
style.setStyle(painter, eWindowStyle::styleListboxNormal);
- clearRegionHelper(painter, local_style, offset, pbackColor, cursorValid);
+ clearRegionHelper(painter, local_style, offset, pbackColor, cursorValid
, clear
);
painter.clippop();
selected = 0;
}
painter.clippop();
selected = 0;
}
@@
-580,7
+582,7
@@
static void clearRegion(gPainter &painter, eWindowStyle &style, eListboxStyle *l
{
painter.clip(part);
style.setStyle(painter, eWindowStyle::styleListboxSelected);
{
painter.clip(part);
style.setStyle(painter, eWindowStyle::styleListboxSelected);
- clearRegionSelectedHelper(painter, local_style, offset, pbackColorSelected, cursorValid);
+ clearRegionSelectedHelper(painter, local_style, offset, pbackColorSelected, cursorValid
, clear
);
painter.clippop();
selected = 1;
}
painter.clippop();
selected = 1;
}
@@
-588,14
+590,14
@@
static void clearRegion(gPainter &painter, eWindowStyle &style, eListboxStyle *l
else if (selected)
{
style.setStyle(painter, eWindowStyle::styleListboxSelected);
else if (selected)
{
style.setStyle(painter, eWindowStyle::styleListboxSelected);
- clearRegionSelectedHelper(painter, local_style, offset, pbackColorSelected, cursorValid);
+ clearRegionSelectedHelper(painter, local_style, offset, pbackColorSelected, cursorValid
, clear
);
if (local_style && local_style->m_selection)
painter.blit(local_style->m_selection, offset, eRect(), gPainter::BT_ALPHATEST);
}
else
{
style.setStyle(painter, eWindowStyle::styleListboxNormal);
if (local_style && local_style->m_selection)
painter.blit(local_style->m_selection, offset, eRect(), gPainter::BT_ALPHATEST);
}
else
{
style.setStyle(painter, eWindowStyle::styleListboxNormal);
- clearRegionHelper(painter, local_style, offset, pbackColor, cursorValid);
+ clearRegionHelper(painter, local_style, offset, pbackColor, cursorValid
, clear
);
}
if (selected)
}
if (selected)
@@
-818,7
+820,8
@@
void eListboxPythonMultiContent::paint(gPainter &painter, eWindowStyle &style, c
{
gRegion rc(rect);
{
gRegion rc(rect);
- clearRegion(painter, style, local_style, pforeColor, pforeColorSelected, pbackColor, pbackColorSelected, selected, rc, sel_clip, offset, cursorValid);
+ bool mustClear = (selected && pbackColorSelected) || (!selected && pbackColor);
+ clearRegion(painter, style, local_style, pforeColor, pforeColorSelected, pbackColor, pbackColorSelected, selected, rc, sel_clip, offset, cursorValid, mustClear);
}
painter.setFont(m_font[fnt]);
}
painter.setFont(m_font[fnt]);
@@
-921,7
+924,8
@@
void eListboxPythonMultiContent::paint(gPainter &painter, eWindowStyle &style, c
{
gRegion rc(rect);
{
gRegion rc(rect);
- clearRegion(painter, style, local_style, pforeColor, pforeColorSelected, pbackColor, pbackColorSelected, selected, rc, sel_clip, offset, cursorValid);
+ bool mustClear = (selected && pbackColorSelected) || (!selected && pbackColor);
+ clearRegion(painter, style, local_style, pforeColor, pforeColorSelected, pbackColor, pbackColorSelected, selected, rc, sel_clip, offset, cursorValid, mustClear);
}
// border
}
// border
@@
-995,7
+999,8
@@
void eListboxPythonMultiContent::paint(gPainter &painter, eWindowStyle &style, c
{
gRegion rc(rect);
{
gRegion rc(rect);
- clearRegion(painter, style, local_style, ePyObject(), ePyObject(), pbackColor, pbackColorSelected, selected, rc, sel_clip, offset, cursorValid);
+ bool mustClear = (selected && pbackColorSelected) || (!selected && pbackColor);
+ clearRegion(painter, style, local_style, ePyObject(), ePyObject(), pbackColor, pbackColorSelected, selected, rc, sel_clip, offset, cursorValid, mustClear);
}
painter.blit(pixmap, rect.topLeft(), rect, (type == TYPE_PIXMAP_ALPHATEST) ? gPainter::BT_ALPHATEST : (type == TYPE_PIXMAP_ALPHABLEND) ? gPainter::BT_ALPHABLEND : 0);
}
painter.blit(pixmap, rect.topLeft(), rect, (type == TYPE_PIXMAP_ALPHATEST) ? gPainter::BT_ALPHATEST : (type == TYPE_PIXMAP_ALPHABLEND) ? gPainter::BT_ALPHABLEND : 0);