diff --git a/app/widget/viewer/viewerdisplay.cpp b/app/widget/viewer/viewerdisplay.cpp index 6fcc8e0e2..1a88027d1 100644 --- a/app/widget/viewer/viewerdisplay.cpp +++ b/app/widget/viewer/viewerdisplay.cpp @@ -97,16 +97,20 @@ const ViewerSafeMarginInfo &ViewerDisplayWidget::GetSafeMargin() const void ViewerDisplayWidget::SetSafeMargins(const ViewerSafeMarginInfo &safe_margin) { - safe_margin_ = safe_margin; + if (safe_margin_ != safe_margin) { + safe_margin_ = safe_margin; - update(); + update(); + } } void ViewerDisplayWidget::SetGizmos(Node *node) { - gizmos_ = node; + if (gizmos_ != node) { + gizmos_ = node; - update(); + update(); + } } void ViewerDisplayWidget::SetVideoParams(const VideoRenderingParams ¶ms) diff --git a/app/widget/viewer/viewersafemargininfo.h b/app/widget/viewer/viewersafemargininfo.h index 4e1e216d0..b208cfb12 100644 --- a/app/widget/viewer/viewersafemargininfo.h +++ b/app/widget/viewer/viewersafemargininfo.h @@ -21,6 +21,8 @@ #ifndef VIEWERSAFEMARGININFO_H #define VIEWERSAFEMARGININFO_H +#include + #include "common/define.h" OLIVE_NAMESPACE_ENTER @@ -53,6 +55,14 @@ public: return ratio_; } + bool operator==(const ViewerSafeMarginInfo& rhs) const { + return (enabled_ == rhs.enabled_ && qFuzzyCompare(ratio_, rhs.ratio_)); + } + + bool operator!=(const ViewerSafeMarginInfo& rhs) const { + return (enabled_ != rhs.enabled_ || !qFuzzyCompare(ratio_, rhs.ratio_)); + } + private: bool enabled_;