Delay update of inspector window until it is visible (#5867)
This reduces CPU load if the inspector window is not used.
This commit is contained in:
parent
6c9c603ab8
commit
affa336680
@ -114,6 +114,10 @@ void Inspector::showWindow(bool scaled)
|
|||||||
window.fullscreen();
|
window.fullscreen();
|
||||||
window.set_visible(true);
|
window.set_visible(true);
|
||||||
pinned = false;
|
pinned = false;
|
||||||
|
|
||||||
|
// update content when becoming visible
|
||||||
|
switchImage(next_image_path);
|
||||||
|
mouseMove(next_image_pos, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Inspector::on_key_release(GdkEventKey *event)
|
bool Inspector::on_key_release(GdkEventKey *event)
|
||||||
@ -423,6 +427,12 @@ void Inspector::mouseMove (rtengine::Coord2D pos, int transform)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
next_image_pos = pos;
|
||||||
|
|
||||||
|
// skip actual update of content when not visible
|
||||||
|
if (!window.get_visible())
|
||||||
|
return;
|
||||||
|
|
||||||
if (currImage) {
|
if (currImage) {
|
||||||
center.set(int(rtengine::LIM01(pos.x)*double(currImage->imgBuffer.getWidth())), int(rtengine::LIM01(pos.y)*double(currImage->imgBuffer.getHeight())));
|
center.set(int(rtengine::LIM01(pos.x)*double(currImage->imgBuffer.getWidth())), int(rtengine::LIM01(pos.y)*double(currImage->imgBuffer.getHeight())));
|
||||||
} else {
|
} else {
|
||||||
@ -443,6 +453,11 @@ void Inspector::switchImage (const Glib::ustring &fullPath)
|
|||||||
}
|
}
|
||||||
|
|
||||||
next_image_path = fullPath;
|
next_image_path = fullPath;
|
||||||
|
|
||||||
|
// skip actual update of content when not visible
|
||||||
|
if (!window.get_visible())
|
||||||
|
return;
|
||||||
|
|
||||||
if (!options.inspectorDelay) {
|
if (!options.inspectorDelay) {
|
||||||
doSwitchImage();
|
doSwitchImage();
|
||||||
} else {
|
} else {
|
||||||
|
@ -57,6 +57,7 @@ private:
|
|||||||
|
|
||||||
sigc::connection delayconn;
|
sigc::connection delayconn;
|
||||||
Glib::ustring next_image_path;
|
Glib::ustring next_image_path;
|
||||||
|
rtengine::Coord2D next_image_pos;
|
||||||
|
|
||||||
Gtk::Window window;
|
Gtk::Window window;
|
||||||
bool on_key_release(GdkEventKey *event);
|
bool on_key_release(GdkEventKey *event);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user