eventlist: use footer object as class member

Allows to handle paint interval only on changed button count and
avoids related possible flicker effects on unnecessary paint events.
This commit is contained in:
2022-02-15 13:05:00 +01:00
parent f33d95c197
commit 3e3052b4b9
2 changed files with 5 additions and 3 deletions

View File

@@ -121,6 +121,7 @@ CEventList::CEventList()
header = NULL;
pb = NULL;
navibar = NULL;
footer.enableShadow(CC_SHADOW_ON, -1, true);
}
CEventList::~CEventList()
@@ -703,6 +704,7 @@ int CEventList::exec(const t_channel_id channel_id, const std::string& channelna
void CEventList::hide()
{
ResetModules();
footer.kill();
frameBuffer->paintBackgroundBoxRel(x, y, full_width + OFFSET_SHADOW, height + OFFSET_SHADOW);
}
@@ -1068,8 +1070,7 @@ void CEventList::paintFoot(t_channel_id channel_id)
buttons[btn_cnt].locale = LOCALE_TIMERLIST_NAME;
btn_cnt++;
CComponentsFooter footer;
footer.enableShadow(CC_SHADOW_ON, -1, true);
if (!footer.isPainted() || btn_cnt != (int)footer.getButtonChainObject()->size())
footer.paintButtons(x, y + height - OFFSET_SHADOW - footer_height, full_width, footer_height, btn_cnt, buttons);
}

View File

@@ -79,6 +79,7 @@ class CEventList : public CListHelpers
CFrameBuffer *frameBuffer;
CChannelEventList evtlist;
CTimerd::TimerList timerlist;
CComponentsFooter footer;
void readEvents(const t_channel_id channel_id);
unsigned int selected;
unsigned int current_event;