notification init() at first render, not notification creation. Hopefully a fix of issue #4647.

This commit is contained in:
David Kocik 2020-08-26 10:49:42 +02:00
parent a81afce1b8
commit 3984326ee3
2 changed files with 12 additions and 6 deletions

View File

@ -49,13 +49,17 @@ NotificationManager::PopNotification::PopNotification(const NotificationData &n,
, m_text2 (n.text2) , m_text2 (n.text2)
, m_evt_handler (evt_handler) , m_evt_handler (evt_handler)
{ {
init(); //init();
} }
NotificationManager::PopNotification::~PopNotification() NotificationManager::PopNotification::~PopNotification()
{ {
} }
NotificationManager::PopNotification::RenderResult NotificationManager::PopNotification::render(GLCanvas3D& canvas, const float& initial_y) NotificationManager::PopNotification::RenderResult NotificationManager::PopNotification::render(GLCanvas3D& canvas, const float& initial_y)
{ {
if (!m_initialized)
{
init();
}
if (m_finished) if (m_finished)
return RenderResult::Finished; return RenderResult::Finished;
if (m_close_pending) { if (m_close_pending) {
@ -228,6 +232,7 @@ void NotificationManager::PopNotification::init()
} }
m_lines_count++; m_lines_count++;
} }
m_initialized = true;
} }
void NotificationManager::PopNotification::set_next_window_size(ImGuiWrapper& imgui) void NotificationManager::PopNotification::set_next_window_size(ImGuiWrapper& imgui)
{ {

View File

@ -121,6 +121,7 @@ public:
const NotificationData m_data; const NotificationData m_data;
int m_id; int m_id;
bool m_initialized { false };
// Main text // Main text
std::string m_text1; std::string m_text1;
// Clickable text // Clickable text
@ -131,12 +132,12 @@ public:
long m_remaining_time; long m_remaining_time;
bool m_counting_down; bool m_counting_down;
long m_last_remaining_time; long m_last_remaining_time;
bool m_paused{ false }; bool m_paused { false };
int m_countdown_frame{ 0 }; int m_countdown_frame { 0 };
bool m_fading_out{ false }; bool m_fading_out { false };
// total time left when fading beggins // total time left when fading beggins
float m_fading_time{ 0.0f }; float m_fading_time { 0.0f };
float m_current_fade_opacity{ 1.f }; float m_current_fade_opacity { 1.f };
// If hidden the notif is alive but not visible to user // If hidden the notif is alive but not visible to user
bool m_hidden { false }; bool m_hidden { false };
// m_finished = true - does not render, marked to delete // m_finished = true - does not render, marked to delete