aboutsummaryrefslogtreecommitdiff
path: root/src/ImageViewer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ImageViewer.cpp')
-rw-r--r--src/ImageViewer.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/ImageViewer.cpp b/src/ImageViewer.cpp
index a8e6041..fc7b758 100644
--- a/src/ImageViewer.cpp
+++ b/src/ImageViewer.cpp
@@ -35,11 +35,19 @@ namespace QuickMedia {
has_size_vertical_cursor = size_vertical_cursor.loadFromSystem(sf::Cursor::SizeVertical);
}
+ ImageViewer::~ImageViewer() {
+ // TODO: Remove
+ if(image_loader_thread.joinable())
+ image_loader_thread.join();
+ }
+
void ImageViewer::load_image_async(const Path &path, std::shared_ptr<ImageData> image_data) {
image_data->image_status = ImageStatus::LOADING;
image_data->texture.setSmooth(true);
assert(!loading_image);
loading_image = true;
+ if(image_loader_thread.joinable())
+ image_loader_thread.join();
image_loader_thread = std::thread([this, image_data, path]() mutable {
auto image = std::make_unique<sf::Image>();
if(image->loadFromFile(path.data)) {
@@ -50,7 +58,6 @@ namespace QuickMedia {
}
loading_image = false;
});
- image_loader_thread.detach();
}
bool ImageViewer::render_page(sf::RenderWindow &window, int page, double offset_y) {