summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--share/keys/default.xml19
-rw-r--r--share/keys/inkscape.xml19
-rw-r--r--src/desktop.cpp7
-rw-r--r--src/event-log.cpp13
4 files changed, 41 insertions, 17 deletions
diff --git a/share/keys/default.xml b/share/keys/default.xml
index f9a6f0d44..cb1273013 100644
--- a/share/keys/default.xml
+++ b/share/keys/default.xml
@@ -664,21 +664,24 @@ override) the bindings in the main default.xml.
<!-- Effects -->
- <bind action="EffectLast" />
- <bind action="EffectLastPref" />
+ <bind key="q" modifiers="Alt" action="EffectLast" display="true" />
+ <bind key="Q" modifiers="Alt" action="EffectLast" />
+ <bind key="q" modifiers="Shift,Alt" action="EffectLastPref" display="true" />
+ <bind key="Q" modifiers="Shift,Alt" action="EffectLastPref" />
+
<!-- You can also assign keys to individual effects. The action should be set to he
effect id from the .inx file, for example "org.ekips.filter.addnodes" for the Add
Nodes effect. -->
- <bind key="g" modifiers="Ctrl,Alt" action="org.inkscape.typography.newglyphlayer" display="true"/>
- <bind key="G" modifiers="Ctrl,Alt" action="org.inkscape.typography.newglyphlayer"/>
+ <bind key="g" modifiers="Ctrl,Alt" action="org.inkscape.typography.newglyphlayer" display="true"/>
+ <bind key="G" modifiers="Ctrl,Alt" action="org.inkscape.typography.newglyphlayer"/>
<!--
- <bind key="h" modifiers="Ctrl,Alt" action="org.inkscape.typography.previousglyphlayer" display="true"/>
- <bind key="H" modifiers="Ctrl,Alt" action="org.inkscape.typography.previousglyphlayer"/>
+ <bind key="h" modifiers="Ctrl,Alt" action="org.inkscape.typography.previousglyphlayer" display="true"/>
+ <bind key="H" modifiers="Ctrl,Alt" action="org.inkscape.typography.previousglyphlayer"/>
-->
- <bind key="j" modifiers="Ctrl,Alt" action="org.inkscape.typography.nextglyphlayer" display="true"/>
- <bind key="J" modifiers="Ctrl,Alt" action="org.inkscape.typography.nextglyphlayer"/>
+ <bind key="j" modifiers="Ctrl,Alt" action="org.inkscape.typography.nextglyphlayer" display="true"/>
+ <bind key="J" modifiers="Ctrl,Alt" action="org.inkscape.typography.nextglyphlayer"/>
</keys>
diff --git a/share/keys/inkscape.xml b/share/keys/inkscape.xml
index f9a6f0d44..cb1273013 100644
--- a/share/keys/inkscape.xml
+++ b/share/keys/inkscape.xml
@@ -664,21 +664,24 @@ override) the bindings in the main default.xml.
<!-- Effects -->
- <bind action="EffectLast" />
- <bind action="EffectLastPref" />
+ <bind key="q" modifiers="Alt" action="EffectLast" display="true" />
+ <bind key="Q" modifiers="Alt" action="EffectLast" />
+ <bind key="q" modifiers="Shift,Alt" action="EffectLastPref" display="true" />
+ <bind key="Q" modifiers="Shift,Alt" action="EffectLastPref" />
+
<!-- You can also assign keys to individual effects. The action should be set to he
effect id from the .inx file, for example "org.ekips.filter.addnodes" for the Add
Nodes effect. -->
- <bind key="g" modifiers="Ctrl,Alt" action="org.inkscape.typography.newglyphlayer" display="true"/>
- <bind key="G" modifiers="Ctrl,Alt" action="org.inkscape.typography.newglyphlayer"/>
+ <bind key="g" modifiers="Ctrl,Alt" action="org.inkscape.typography.newglyphlayer" display="true"/>
+ <bind key="G" modifiers="Ctrl,Alt" action="org.inkscape.typography.newglyphlayer"/>
<!--
- <bind key="h" modifiers="Ctrl,Alt" action="org.inkscape.typography.previousglyphlayer" display="true"/>
- <bind key="H" modifiers="Ctrl,Alt" action="org.inkscape.typography.previousglyphlayer"/>
+ <bind key="h" modifiers="Ctrl,Alt" action="org.inkscape.typography.previousglyphlayer" display="true"/>
+ <bind key="H" modifiers="Ctrl,Alt" action="org.inkscape.typography.previousglyphlayer"/>
-->
- <bind key="j" modifiers="Ctrl,Alt" action="org.inkscape.typography.nextglyphlayer" display="true"/>
- <bind key="J" modifiers="Ctrl,Alt" action="org.inkscape.typography.nextglyphlayer"/>
+ <bind key="j" modifiers="Ctrl,Alt" action="org.inkscape.typography.nextglyphlayer" display="true"/>
+ <bind key="J" modifiers="Ctrl,Alt" action="org.inkscape.typography.nextglyphlayer"/>
</keys>
diff --git a/src/desktop.cpp b/src/desktop.cpp
index c7a763ae1..d74e8fdad 100644
--- a/src/desktop.cpp
+++ b/src/desktop.cpp
@@ -1582,6 +1582,13 @@ SPDesktop::setDocument (SPDocument *doc)
_layer_hierarchy->connectChanged(sigc::bind(sigc::ptr_fun(_layer_hierarchy_changed), this));
_layer_hierarchy->setTop(doc->getRoot());
+ // remove old EventLog if it exists (see also: bug #1071082)
+ if (event_log) {
+ doc->removeUndoObserver(*event_log);
+ delete event_log;
+ event_log = 0;
+ }
+
/* setup EventLog */
event_log = new Inkscape::EventLog(doc);
doc->addUndoObserver(*event_log);
diff --git a/src/event-log.cpp b/src/event-log.cpp
index e2528ce0b..9304f68c5 100644
--- a/src/event-log.cpp
+++ b/src/event-log.cpp
@@ -38,7 +38,18 @@ EventLog::EventLog(SPDocument* document) :
curr_row[_columns.type] = SP_VERB_FILE_NEW;
}
-EventLog::~EventLog() { }
+EventLog::~EventLog() {
+ // avoid crash by clearing entries here (see bug #1071082)
+ if (_connected) {
+ (*_callback_connections)[CALLB_SELECTION_CHANGE].block();
+ (*_callback_connections)[CALLB_EXPAND].block();
+
+ _event_list_store->clear();
+
+ (*_callback_connections)[CALLB_EXPAND].block(false);
+ (*_callback_connections)[CALLB_SELECTION_CHANGE].block(false);
+ }
+}
void
EventLog::notifyUndoEvent(Event* log)