View Issue Details

IDProjectCategoryView StatusLast Update
0034825LazarusIDEpublic2019-01-06 22:35
ReporterDenis GolovanAssigned ToMartin Friebe 
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product VersionProduct Build 
Target Version2.0Fixed in Version2.0 
Summary0034825: [Regression] Complex IDE shortcuts stopped working
DescriptionHi

Since upgrading to Lazarus 2.1.0 (rev. 59970), I noticed that my shortcuts like Ctrl+X followed Ctrl+S no longer work as before.
Lazarus configuration is ok, see screenshot.

So I assume something is broken.
TagsNo tags attached.
Fixed in Revision60019
LazTarget2.0
WidgetsetGTK 2
Attached Files

Activities

Denis Golovan

2019-01-06 14:33

reporter  

Shortcuts.png (100,957 bytes)
Shortcuts.png (100,957 bytes)

Martin Friebe

2019-01-06 15:06

manager   ~0113206

First of all:

                   Please make a backup of your config (this may be needed to reproduce the issue)


Copy the folder ./lazarus in your home folder. (or if you use a diff primary config path, then back that up)

Files of interest: editoroptions.xml, maybe environmentoptions.xml

-----------------------------
Have you seen all the conflicts?
Are the none working shortcuts part of any of those conflicts?

Then of course they would not work. To be exact only one of 2 conflicting shortcuts can work. Which one that is may have changed, but then it was never guaranteed which one would work.

-------------
Did you have the same conflicts in (I assume) 1.8.6 ?

As for your config, does it still work with 1.8.6?
Or has it been changed by the update, so it is now broken in both versions?

(If it is broken, the backup is not needed.... A restored config would be required.)


What about 2.0.rc3?

---------------
About the issue:

If you had the conflicts before, then this is NOT a bug.


If you did not have them, then we need to reproduce this. For that we need:
- A configuration file, that we can load in 1.8.6, and get a conflict free, and working keymap
- That we can then use in 2.1, and get the conflicts.


----
Some conflicts may be due to new shortcuts in 2.1. But seeing the amount of conflicts, that would only be a tiny subset.

For newly added shortcuts conflicts can happen. That is not optimal, but currently that is how it works (afaik, need to double check)

Denis Golovan

2019-01-06 15:33

reporter   ~0113207

editoroptions.xml hasn't changed since my last upgrade (11 version is still there).
I've made a backup of my .lazarus and removed all the conflicts.
Checked, Ctrl+X and Ctrl+S shortcut still does not work.

Then I've removed .lazarus folder altogether, started Lazarus, attached Ctrl+X and Ctrl+S => still no luck. See screenshot.

Denis Golovan

2019-01-06 15:33

reporter  

Shortcuts2.png (99,422 bytes)
Shortcuts2.png (99,422 bytes)

Martin Friebe

2019-01-06 17:05

manager   ~0113209

Can you attach your editoroptions.xml ?


(Unlikely,but) to make sure your OS is not "stealing" ctrl-x, what happens if you assign an action to only ctrl-x (and remove all other shortcuts that start with ctrl-x)

Denis Golovan

2019-01-06 17:53

reporter  

editoroptions.xml (12,017 bytes)

Denis Golovan

2019-01-06 17:57

reporter   ~0113213

Attached.
OS does not steal Ctrl+X as other applications work fine.
Single Ctrl+X works fine as well (no conflicting keys).

Martin Friebe

2019-01-06 19:57

manager   ~0113217

Is it only shortcuts starting with ctrl-x?
Or are there others? Do you have a list?

The strange think is that (for me) it works, *IF* there is text selected.
But if no text is selected then it does not work.

Denis Golovan

2019-01-06 20:08

reporter   ~0113218

Yes, the only one.
And yes, it works when selection exists.

Martin Friebe

2019-01-06 22:18

manager   ~0113222

Please test and close if ok.

revision 60019

-----
To patch it yourself for testing:
Open components\synedit\synpluginmulticaret.pp
Find TSynCustomPluginMultiCaret.TranslateKey (around line 1908)

At the very end of the function insert 2 new lines:

  Handled := (Command <> ecNone) or IsStartOfCombo; // <<<<<<<<< EXISTING LINE
  if IsStartOfCombo then
    ComboKeyStrokes := FKeyStrokes;
end; // <<<<<<<<< EXISTING LINE

recompile.

Denis Golovan

2019-01-06 22:35

reporter   ~0113223

Works as expected.
Thanks a lot.

Issue History

Date Modified Username Field Change
2019-01-06 14:33 Denis Golovan New Issue
2019-01-06 14:33 Denis Golovan File Added: Shortcuts.png
2019-01-06 15:06 Martin Friebe LazTarget => -
2019-01-06 15:06 Martin Friebe Note Added: 0113206
2019-01-06 15:06 Martin Friebe Status new => feedback
2019-01-06 15:33 Denis Golovan Note Added: 0113207
2019-01-06 15:33 Denis Golovan Status feedback => new
2019-01-06 15:33 Denis Golovan File Added: Shortcuts2.png
2019-01-06 17:05 Martin Friebe Note Added: 0113209
2019-01-06 17:53 Denis Golovan File Added: editoroptions.xml
2019-01-06 17:57 Denis Golovan Note Added: 0113213
2019-01-06 19:57 Martin Friebe Note Added: 0113217
2019-01-06 20:08 Denis Golovan Note Added: 0113218
2019-01-06 22:14 Martin Friebe Assigned To => Martin Friebe
2019-01-06 22:14 Martin Friebe Status new => assigned
2019-01-06 22:18 Martin Friebe Fixed in Revision => 60019
2019-01-06 22:18 Martin Friebe LazTarget - => 2.0
2019-01-06 22:18 Martin Friebe Note Added: 0113222
2019-01-06 22:18 Martin Friebe Status assigned => resolved
2019-01-06 22:18 Martin Friebe Fixed in Version => 2.0
2019-01-06 22:18 Martin Friebe Resolution open => fixed
2019-01-06 22:18 Martin Friebe Target Version => 2.0
2019-01-06 22:35 Denis Golovan Note Added: 0113223
2019-01-06 22:35 Denis Golovan Status resolved => closed