From ac74679cc2e7e37218689d03ddd213b7f375ef74 Mon Sep 17 00:00:00 2001 From: David Capello Date: Wed, 20 Apr 2011 20:48:22 -0300 Subject: [PATCH] Add Editor::changePreferredSettings() to fix problems with mini editor changing the preferred document settings (scroll+zoom). --- src/modules/editors.cpp | 13 ++++++++++++- src/widgets/editor/editor.cpp | 2 +- src/widgets/editor/editor.h | 6 ++++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/modules/editors.cpp b/src/modules/editors.cpp index 7b044739e..ecbdaa68d 100644 --- a/src/modules/editors.cpp +++ b/src/modules/editors.cpp @@ -127,6 +127,17 @@ public: }; +class MiniEditor : public Editor +{ +public: + MiniEditor() { + } + + bool changePreferredSettings() OVERRIDE { + return false; + } +}; + int init_module_editors() { return 0; @@ -553,7 +564,7 @@ static void create_mini_editor_frame() View* newView = new EditorView(EditorView::AlwaysSelected); jwidget_expansive(newView, true); - mini_editor = new Editor(); + mini_editor = new MiniEditor(); editors.push_back(EditorItem(mini_editor, EditorItem::Mini)); newView->attachToView(mini_editor); diff --git a/src/widgets/editor/editor.cpp b/src/widgets/editor/editor.cpp index 302a12e80..c40b304e6 100644 --- a/src/widgets/editor/editor.cpp +++ b/src/widgets/editor/editor.cpp @@ -205,7 +205,7 @@ void Editor::setEditorScroll(int x, int y, int use_refresh_region) view->setViewScroll(Point(x, y)); Point newScroll = view->getViewScroll(); - if (m_document) { + if (m_document && changePreferredSettings()) { PreferredEditorSettings preferred; preferred.virgin = false; diff --git a/src/widgets/editor/editor.h b/src/widgets/editor/editor.h index 2a205419d..f81ddb707 100644 --- a/src/widgets/editor/editor.h +++ b/src/widgets/editor/editor.h @@ -156,6 +156,12 @@ protected: bool onProcessMessage(Message* msg) OVERRIDE; void onCurrentToolChange(); + // Returns true if this editor should change the preferred document + // settings. + virtual bool changePreferredSettings() { + return true; + } + private: void drawGrid(const gfx::Rect& gridBounds, const Color& color);