diff --git a/rtgui/editorpanel.cc b/rtgui/editorpanel.cc index c758a1797..170f2ad84 100644 --- a/rtgui/editorpanel.cc +++ b/rtgui/editorpanel.cc @@ -1249,6 +1249,7 @@ void EditorPanel::beforeAfterToggled () { if (beforeIpc) beforeIpc->stopProcessing (); iarea->setBeforeAfterViews (NULL, iarea); + iarea->imageArea->iLinkedImageArea = NULL; delete beforeIarea; beforeIarea = NULL; if (beforeIpc) @@ -1307,6 +1308,10 @@ void EditorPanel::beforeAfterToggled () { beforeIarea->imageArea->setPreviewHandler (beforePreviewHandler); beforeIarea->imageArea->setImProcCoordinator (beforeIpc); + beforeIarea->imageArea->setPreviewModePanel(iarea->imageArea->previewModePanel); + beforeIarea->imageArea->setIndicateClippedPanel(iarea->imageArea->indClippedPanel); + iarea->imageArea->iLinkedImageArea = beforeIarea->imageArea; + iarea->setBeforeAfterViews (beforeIarea, iarea); beforeIarea->setBeforeAfterViews (beforeIarea, iarea); diff --git a/rtgui/imagearea.cc b/rtgui/imagearea.cc index 477084fd6..913ab54da 100644 --- a/rtgui/imagearea.cc +++ b/rtgui/imagearea.cc @@ -49,6 +49,7 @@ ImageArea::ImageArea (ImageAreaPanel* p) : parent(p) { dirty = false; ipc = NULL; + iLinkedImageArea = NULL; } ImageArea::~ImageArea () { diff --git a/rtgui/imagearea.h b/rtgui/imagearea.h index 45f975e6b..f8cf6f704 100644 --- a/rtgui/imagearea.h +++ b/rtgui/imagearea.h @@ -66,11 +66,14 @@ class ImageArea : public Gtk::DrawingArea, public CropWindowListener { ZoomPanel* zoomPanel; IndicateClippedPanel* indClippedPanel; PreviewModePanel* previewModePanel; + ImageArea* iLinkedImageArea; // used to set a reference to the Before image area, which is set when before/after view is enabled ImageArea (ImageAreaPanel* p); ~ImageArea (); void setImProcCoordinator (rtengine::StagedImageProcessor* ipc_); + void setPreviewModePanel(PreviewModePanel* previewModePanel_){previewModePanel = previewModePanel_;}; + void setIndicateClippedPanel(IndicateClippedPanel* indClippedPanel_){indClippedPanel = indClippedPanel_;}; void getScrollImageSize (int& w, int& h); void getScrollPosition (int& x, int& y); diff --git a/rtgui/indclippedpanel.cc b/rtgui/indclippedpanel.cc index 5865e60fb..a1da0c9b7 100644 --- a/rtgui/indclippedpanel.cc +++ b/rtgui/indclippedpanel.cc @@ -61,4 +61,9 @@ void IndicateClippedPanel::toggleClipped (bool highlights) { void IndicateClippedPanel::buttonToggled () { imageArea->queue_draw (); + + // this will redraw the linked Before image area + // which is set when before/after view is enabled + if (imageArea->iLinkedImageArea!=NULL) + imageArea->iLinkedImageArea->queue_draw (); } diff --git a/rtgui/previewmodepanel.cc b/rtgui/previewmodepanel.cc index 9e52632f5..3707ba385 100644 --- a/rtgui/previewmodepanel.cc +++ b/rtgui/previewmodepanel.cc @@ -140,4 +140,9 @@ void PreviewModePanel::buttonToggled (Gtk::ToggleButton* tbpreview) { connFocusMask.block(false); imageArea->queue_draw (); + + // this will redraw the linked Before image area + // which is set when before/after view is enabled + if (imageArea->iLinkedImageArea!=NULL) + imageArea->iLinkedImageArea->queue_draw (); }