@@ -74,6 +74,14 @@ class LsdjKeyMap {
7474 VirtualKey vk = (VirtualKey)key.VK ;
7575 ButtonType b = _gbKeyMap->getControllerButton (vk);
7676
77+ if (down && key.C ) {
78+ switch (vk) {
79+ case VirtualKeys::X: cut (); return true ;
80+ case VirtualKeys::C: copy (); return true ;
81+ case VirtualKeys::V: paste (); return true ;
82+ }
83+ }
84+
7785 switch (b) {
7886 case ButtonTypes::Left:
7987 case ButtonTypes::Right:
@@ -96,13 +104,7 @@ class LsdjKeyMap {
96104 return true ;
97105 case ButtonTypes::MAX:
98106 // Key press does not relate to a button but may still be used
99- if (down && key.C ) {
100- switch (vk) {
101- case VirtualKeys::X: cut (); return true ;
102- case VirtualKeys::C: copy (); return true ;
103- case VirtualKeys::V: paste (); return true ;
104- }
105- } else if (down) {
107+ if (down) {
106108 auto found = _actionMap.find (vk);
107109 if (found != _actionMap.end ()) {
108110 if (_state == State::None) {
@@ -126,17 +128,15 @@ class LsdjKeyMap {
126128
127129 return false ;
128130 default :
129- // In selection mode, all button presses are ignored unless
130- // they are directional
131131 if (_state == State::None) {
132132 if (down) {
133133 _presses.hold (b);
134134 } else {
135135 _presses.release (b);
136136 }
137-
138- return true ;
139137 }
138+
139+ return true ;
140140 }
141141
142142 return false ;
@@ -159,22 +159,26 @@ class LsdjKeyMap {
159159
160160 ButtonQueue& copy () {
161161 consoleLogLine (" copy" );
162+ int delay = 0 ;
162163 if (_state != State::Selecting) {
163164 beginSelect ();
165+ delay = 150 ;
164166 }
165167
166168 _state = State::None;
167- return _presses.press (ButtonTypes::B);
169+ return _presses.press (ButtonTypes::B, delay );
168170 }
169171
170172 ButtonQueue& cut () {
171173 consoleLogLine (" cut" );
174+ int delay = 0 ;
172175 if (_state != State::Selecting) {
173176 beginSelect ();
177+ delay = 150 ;
174178 }
175179
176180 _state = State::None;
177- return _presses.pressModified (ButtonTypes::A, ButtonTypes::Select);
181+ return _presses.pressModified (ButtonTypes::A, ButtonTypes::Select, delay );
178182 }
179183
180184 ButtonQueue& paste () {
0 commit comments