diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch
index ca4b09019..8799abf08 100644
--- a/rtdata/languages/Deutsch
+++ b/rtdata/languages/Deutsch
@@ -542,6 +542,7 @@ NAVIGATOR_S_VALUE;S = %1
NAVIGATOR_V_NA;V = k.a.
NAVIGATOR_V_VALUE;V = %1
NAVIGATOR_XY_NA;x = k.a., y = k.a.
+NAVIGATOR_XY_FULL;Breite = %1, Höhe = %2
PARTIALPASTE_BASICGROUP;Gruppe Basiseinstellungen
PARTIALPASTE_CACORRECTION;Farbsaum entfernen
PARTIALPASTE_CHANNELMIXER;Kanal-Mixer
diff --git a/rtdata/languages/default b/rtdata/languages/default
index a14b525ae..c809d4686 100644
--- a/rtdata/languages/default
+++ b/rtdata/languages/default
@@ -546,6 +546,7 @@ NAVIGATOR_S_VALUE;S = %1
NAVIGATOR_V_NA;V = n/a
NAVIGATOR_V_VALUE;V = %1
NAVIGATOR_XY_NA;x = n/a, y = n/a
+NAVIGATOR_XY_FULL;Width = %1, Height = %2
OPTIONS_DEFIMG_MISSING;The default profile for non-raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\nDefault internal values will be used.
OPTIONS_DEFRAW_MISSING;The default profile for raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\nDefault internal values will be used.
PARTIALPASTE_BASICGROUP;Basic Settings
diff --git a/rtgui/crophandler.cc b/rtgui/crophandler.cc
index 6abb7e1ba..792262216 100644
--- a/rtgui/crophandler.cc
+++ b/rtgui/crophandler.cc
@@ -333,6 +333,15 @@ void CropHandler::getSize (int& w, int& h) {
h = cropH;
}
+void CropHandler::getFullImageSize (int& w, int& h) {
+ if (ipc) {
+ w = ipc->getFullWidth ();
+ h = ipc->getFullHeight ();
+ } else {
+ w=h=0;
+ }
+}
+
void CropHandler::compDim () {
cropX = cx;
diff --git a/rtgui/crophandler.h b/rtgui/crophandler.h
index af9565dd0..d9dd4dd7d 100644
--- a/rtgui/crophandler.h
+++ b/rtgui/crophandler.h
@@ -86,6 +86,7 @@ class CropHandler : public rtengine::DetailedCropListener, public rtengine::Size
void setPosition (int x, int y, bool update=true);
void getPosition (int& x, int& y);
void getSize (int& w, int& h);
+ void getFullImageSize (int& w, int& h);
void setEnabled (bool e);
bool getEnabled ();
diff --git a/rtgui/cropwindow.cc b/rtgui/cropwindow.cc
index d2717e72c..20dc4fd28 100644
--- a/rtgui/cropwindow.cc
+++ b/rtgui/cropwindow.cc
@@ -478,11 +478,9 @@ void CropWindow::pointerMoved (int x, int y) {
int mx, my;
translateCoord (x, y, mx, my);
if (!onArea (CropImage, x, y) || !cropHandler.cropPixbuf) {
- // pmlistener->pointerMoved (false, mx, my, -1, -1, -1);
+ cropHandler.getFullImageSize(mx,my);
pmlistener->pointerMoved (false, cropHandler.colorParams.working, mx, my, -1, -1, -1);
- if (pmhlistener) {
- pmhlistener->pointerMoved (false, cropHandler.colorParams.working, mx, my, -1, -1, -1);
- }
+ if (pmhlistener) pmhlistener->pointerMoved (false, cropHandler.colorParams.working, mx, my, -1, -1, -1);
}
else {
/*Glib::Mutex::Lock lock(cropHandler.cimg);
diff --git a/rtgui/navigator.cc b/rtgui/navigator.cc
index f1d180ca7..8252f959c 100644
--- a/rtgui/navigator.cc
+++ b/rtgui/navigator.cc
@@ -61,9 +61,12 @@ Navigator::Navigator () {
show_all ();
}
-void Navigator::setInvalid () {
-
+void Navigator::setInvalid (int fullWidth, int fullHeight) {
+ if (fullWidth>0 && fullHeight>0)
+ position->set_text (Glib::ustring::compose (M("NAVIGATOR_XY_FULL"),fullWidth,fullHeight));
+ else
position->set_text (M("NAVIGATOR_XY_NA"));
+
R->set_text (M("NAVIGATOR_R_NA"));
G->set_text (M("NAVIGATOR_G_NA"));
B->set_text (M("NAVIGATOR_B_NA"));
@@ -75,11 +78,11 @@ void Navigator::setInvalid () {
LAB_L->set_text (M("NAVIGATOR_LAB_L_NA"));
}
-
+// if !validPos then x/y contain the full image size
void Navigator::pointerMoved (bool validPos, Glib::ustring profile, int x, int y, int r, int g, int b) {
if (!validPos)
- setInvalid ();
+ setInvalid (x,y);
else {
position->set_text (Glib::ustring::compose ("x = %1, y = %2", x, y));
R->set_text (Glib::ustring::compose (M("NAVIGATOR_R_VALUE"), r));
diff --git a/rtgui/navigator.h b/rtgui/navigator.h
index 1e95085db..3d8a0c35c 100644
--- a/rtgui/navigator.h
+++ b/rtgui/navigator.h
@@ -38,7 +38,8 @@ class Navigator : public Gtk::Frame, public PointerMotionListener {
//void rgb2lab (int r, int g, int b, int &LAB_l, int &LAB_a, int &LAB_b);
void rgb2lab (Glib::ustring profile, int r, int g, int b, int &LAB_l, int &LAB_a, int &LAB_b);
- void setInvalid ();
+ void setInvalid (int fullWidth=-1, int fullHeight=-1);
+
public:
PreviewWindow* previewWindow;