summaryrefslogtreecommitdiffstats
path: root/src/desktop.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/desktop.cpp')
-rw-r--r--src/desktop.cpp33
1 files changed, 19 insertions, 14 deletions
diff --git a/src/desktop.cpp b/src/desktop.cpp
index a8533ee3b..76d534f50 100644
--- a/src/desktop.cpp
+++ b/src/desktop.cpp
@@ -515,11 +515,17 @@ void SPDesktop::_setDisplayMode(Inkscape::RenderMode mode) {
canvas->_rendermode = mode;
_display_mode = mode;
if (_display_mode == Inkscape::RENDERMODE_OUTLINE) {
- _split_canvas = false;
+ if (_split_canvas) {
+ toggleSplitMode();
+ }
+ if (_xray) {
+ toggleXRay();
+ }
}
redrawDesktop();
_widget->setTitle( this->getDocument()->getDocumentName() );
}
+
void SPDesktop::_setDisplayColorMode(Inkscape::ColorMode mode) {
// reload grayscale matrix from prefs
if (mode == Inkscape::COLORMODE_GRAYSCALE) {
@@ -580,9 +586,6 @@ bool SPDesktop::displayModeToggle()
_menu_update.emit(verb->get_code(), setDisplayModeNormal());
}
}
- if (_display_mode == Inkscape::RENDERMODE_OUTLINE) {
- _split_canvas = false;
- }
return true;
}
bool SPDesktop::displayColorModeToggle()
@@ -1661,11 +1664,7 @@ void SPDesktop::toggleSplitMode()
if (this->getToplevel()) {
_split_canvas = !_split_canvas;
if (_split_canvas && _xray) {
- _xray = !_xray;
- Inkscape::Verb *verb = Inkscape::Verb::get(SP_VERB_VIEW_TOGGLE_XRAY);
- if (verb) {
- _menu_update.emit(verb->get_code(), xrayMode());
- }
+ toggleXRay();
}
SPCanvas *canvas = getCanvas();
canvas->requestFullRedraw();
@@ -1673,6 +1672,11 @@ void SPDesktop::toggleSplitMode()
if (verb) {
_menu_update.emit(verb->get_code(), splitMode());
}
+ if (_display_mode == Inkscape::RENDERMODE_OUTLINE) {
+ if (_split_canvas) {
+ toggleSplitMode();
+ }
+ }
}
}
@@ -1681,11 +1685,7 @@ void SPDesktop::toggleXRay()
if (this->getToplevel()) {
_xray = !_xray;
if (_split_canvas && _xray) {
- _split_canvas = !_split_canvas;
- Inkscape::Verb *verb = Inkscape::Verb::get(SP_VERB_VIEW_TOGGLE_SPLIT);
- if (verb) {
- _menu_update.emit(verb->get_code(), splitMode());
- }
+ toggleSplitMode();
}
SPCanvas *canvas = getCanvas();
canvas->requestFullRedraw();
@@ -1693,6 +1693,11 @@ void SPDesktop::toggleXRay()
if (verb) {
_menu_update.emit(verb->get_code(), xrayMode());
}
+ if (_display_mode == Inkscape::RENDERMODE_OUTLINE) {
+ if (_xray) {
+ toggleXRay();
+ }
+ }
}
}