src/gui/widget/menue.cpp try to fix widget segfault menu with keyboard and background restore

Origin commit data
------------------
Branch: ni/coolstream
Commit: a8ea7c60d5
Author: Jacek Jendrzej <overx300@gmail.com>
Date: 2016-11-24 (Thu, 24 Nov 2016)


------------------
No further description and justification available within origin commit message!

------------------
This commit was generated by Migit
This commit is contained in:
Jacek Jendrzej
2016-11-24 19:21:14 +01:00
parent 0455f9f697
commit 3019b1abdc
2 changed files with 11 additions and 4 deletions

View File

@@ -622,6 +622,8 @@ void CMenuWidget::Init(const std::string &Icon, const int mwidth, const mn_widge
fbutton_width = 0;
fbutton_height = 0;
nextShortcut = 1;
saveScreen_width = 0;
saveScreen_height = 0;
}
void CMenuWidget::move(int xoff, int yoff)
@@ -1391,17 +1393,18 @@ void CMenuWidget::saveScreen()
return;
delete[] background;
background = new fb_pixel_t [full_width * (full_height+fbutton_height)];
saveScreen_height = full_height+fbutton_height;
saveScreen_width = full_width;
background = new fb_pixel_t [saveScreen_height * saveScreen_width];
if(background)
frameBuffer->SaveScreen(x /*-ConnectLineBox_Width*/, y, full_width, full_height + fbutton_height, background);
frameBuffer->SaveScreen(x /*-ConnectLineBox_Width*/, y, full_width, saveScreen_height, background);
}
void CMenuWidget::restoreScreen()
{
if(background) {
if(savescreen)
frameBuffer->RestoreScreen(x /*-ConnectLineBox_Width*/, y, full_width, full_height + fbutton_height, background);
frameBuffer->RestoreScreen(x /*-ConnectLineBox_Width*/, y, saveScreen_width, saveScreen_height, background);
}
}
@@ -1411,6 +1414,8 @@ void CMenuWidget::enableSaveScreen(bool enable)
if (!enable && background) {
delete[] background;
background = NULL;
saveScreen_width = 0;
saveScreen_height = 0;
}
}