Sign in Join
Wiki copytemporary

IDE Window: EditorMouseOptionsAdvanced: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: IDE Window: EditorMouseOptionsAdvanced

OldNewLine
1+* This page is part of [[IDE Window: Editor Options]]
2+
3+ * You can get this dialog via:
4+
5+
6+
7+ Menu / Environment / Editor options / Mouse
8+ Source editor / popup menu / Editor properties ...
9+
10+
11+
12+## Contents
13+
14+ * 1 The Context Tree
15+ * 2 The Click Configuration
16+ * 2.1 The Button
17+ * 2.2 The Click Type
18+ * 2.3 The Click Direction
19+ * 2.4 Restricting the mouse-up action
20+ * 2.5 The Modifier Keys
21+ * 2.6 The Priority
22+ * 2.7 Opt(ion) field
23+ * 3 The Action / Behaviour
24+ * 3.1 No Action Command
25+ * 3.2 Selection Commands
26+ * 3.2.1 Block Selection Commands
27+ * 3.2.2 Item Selection Commands
28+ * 3.2.3 Drag Selection Command
29+ * 3.2.4 Quick copy Selection Command
30+ * 3.3 Context Popup Menu
31+ * 3.4 Fold Commands
32+ * 3.4.1 Fold Commands
33+ * 3.4.2 Unfold Commands
34+ * 3.4.3 Fold Popup Menu
35+ * 3.5 Source Link Command
36+ * 3.6 Breakpoint Command
37+ * 3.7 IDE-Command
38+ * 4 The "Other Actions using the same button" Table
39+ * 5 Current Limitations
40+ * 6 Pitfalls
41+ * 6.1 Mixing Down and Up Clicks
42+ * 6.2 Double to Quad Clicks
43+ * 7 Useful Examples
44+ * 7.1 Mouse "Move" versus "Click" on Gutter to select Lines / toggle action
45+ * 7.2 Line Numbers in Gutter to select Lines
46+ * 7.3 Fold by clicking on Keyword ("begin")
47+ * 7.4 Fold current block by clicking on vertical fold line
48+ * 7.5 Extend "Source Links" to jump Begin/End-pairs
49+ * 7.6 Change History Jumps for 3 button Mouse (follow back the "Source Link" trail)
50+ * 7.6.1 With a 3 Button Mouse
51+ * 7.7 Move to procedure body
52+
53+# The Context Tree
54+
55+The context tree is the Treeview just left to the Overview Grid. It currently has the entries:
56+
57+ * **Text**
58+ * **Selection**
59+ * **Gutter**
60+ * **Fold** **Tree**
61+ * **Collapsed** **[+]**
62+ * **Expanded** **[-]**
63+ * **Line** **Numbers**
64+
65+You can define the behaviour of the Mouse-Buttons, dependent on the Context. E.g. clicking "selected text" may have a different action, than clicking unselected text.
66+
67+If a click has no Entry in a specific context, it will use the content's parent(s) as fallback. E.g. If you click on "selected text", the configuration of the **Selection** node is searched first. If it has no action for your click, the parent node **Text** is searched. (By default this is used to assign "drag selected text" to the left button)
68+
69+The **Gutter** and **Text** node are top level nodes, that do not have fall-backs. But the other nodes do fall back on their parents.
70+
71+See also The Priority and Fall-Through in the The Action / Behaviour section.
72+
73+# The Click Configuration
74+
75+When you click a mouse button, the following items are checked to find the desired behaviour/action.
76+
77+## The Button
78+
79+There are individual settings for the **Left** , **Right** and **Middle** mouse Button
80+
81+ * Extra Mouse Buttons (Button 4 and 5) work only on Windows
82+
83+##
84+
85+The Click Type
86+
87+There are individual settings for **Single** , **Double** , **Triple** or **Quad** clicks.
88+
89+Please make sure you read the section on Double to Quad Clicks
90+
91+There also is a setting **Any** , which means the action is executed for any of the clicks. That would mean that a double click would execute the action twice. Or if the first part of the double-click changed the state of the object, the 2nd part would apply to the new state.
92+
93+ * Example:
94+
95+ The left button on the code fold part is configured as **Any**. Each click will toggle between folded and unfolded. Therefore a double click will revert the action of the first.
96+ Without the **Any** setting, if you accidentally folded the wrong node, you would have to wait before you could click again to unfold it. (Because a quick 2nd click would count as double click, which wouldn't be matched by **Single**)
97+
98+Notes:
99+
100+ * Not all of them are supported on all platforms
101+ * On Windows **Triple** and **Quad** only work for the left button.
102+
103+##
104+
105+The Click Direction
106+
107+A mouse click consists of a mouse-**down** and a mouse-**up**.
108+
109+Actions can be configured to happen on either of those 2 events.
110+
111+You can assign 2 different actions to the 2 events of the same click. They will be executed in the order of the events. However keep in mind that such a configuration may limit the action of the mouse-**down** event.
112+
113+Notes:
114+
115+ * Some events require the correct Click Direction to work properly:
116+ * Context-Menu: On some WidgetSets this will only work reliable on mouse-**up** events
117+ * Start Selection, Drag Selection: Only works on **down** events, since it relies on the following mouse-movement-while-button-down. (It has a build in "end" at mouse button up)
118+ * Selecting and Dragging (only if actually done by moving the mouse) capture the mouse-up event and prevent any other Action on the up event.
119+This can be used to select/drag if mouse is moved, otherwise fall back to an action configured on mouse up
120+
121+##
122+
123+Restricting the mouse-up action
124+
125+If an action is set to mouse-up, then it can be restricted to execute only, if the down click was on the same area.
126+
127+The following test can be performed:
128+
129+ * Match action pos of mouse down:
130+
131+ This does check if a click at the mouse-down location would trigger the same action.
132+ In cases like fold, where the [+] on different lines all return the fold-action, yet should be treated as different, this needs to be combined with the "action line". For a click on the current selection of text on the other hand, all lines might be treated the same.
133+
134+ * Match action line of mouse down:
135+
136+ The down click occurred on the same line of text
137+
138+ * Match action button of mouse down:
139+
140+ The down last click was the same button (no other button has been pressed in the meantime)
141+
142+ * Match action modifiers of mouse down:
143+
144+ The down click was done using the same modifier keys
145+
146+ * Search all action of mouse down:
147+
148+ If the click is on an element that overrides the actions for the below "context" #The_Context_Tree, check if the action would have been on any of the outer contexts.
149+
150+ * Continue with next mouse up action:
151+
152+ If the up click is not executed, search default actions and outer context for an alternative action to be executed. The default if this is not given, is to perform no action for this mouse-up.
153+
154+##
155+
156+The Modifier Keys
157+
158+Mouse behaviour can be modified by holding the **Shift** , **Alt** or **Ctrl** key (or combinations of them)
159+
160+At the time of the click-**down** or **up** the state of all three keys is checked. An action can be defined to:
161+
162+ * require one, some or all of the modifier keys pressed (Checkbox ticked)
163+ * require one, some or all of the modifier keys *not* pressed (Checkbox not ticked)
164+ * ignore the state of one, some or all of the modifier keys (Checkbox greyed)
165+
166+For a given combination of Button, Click-Type, Click-Direction there must not be any ambiguity for the modifier keys. Example
167+
168+Bad / Ambiguous
169+
170+
171+ * Left, Single, down Click with: Shift required pressed; Alt and Ctrl ignored
172+ * Left, Single, down Click with: Ctrl required pressed; Alt and Shift ignored
173+
174+ Now if you do this click, with both of Shift and Ctrl pressed, it would be unclear which of the 2 settings to use
175+Correct
176+
177+
178+ * Left, Single, down Click with: Shift required pressed; Ctrl required un-pressed; Alt ignored
179+ * Left, Single, down Click with: Ctrl required pressed; Shift required un-pressed; Alt ignored
180+
181+If you whish Shift to be preferred (the shift action should be taken, if both modifier keys are pressed) then you must at an extra setting:
182+
183+ * Left, Single, down Click with: Ctrl required pressed; Shift required pressed; Alt ignored
184+
185+
186+
187+Default Fallback
188+
189+
190+There is one exception from this rule. If all modifier keys are set to be ignored, the entry becomes the fall-back for the button, click-type, click-dir configuration. This is, if no configuration is found which has at least one modifier key required either pressed or un-pressed, then the fallback will be used.
191+
192+Note
193+
194+
195+The Modifier Combinations used to detect the action on mouse down (or up) has nothing to do with the modifier Key, that certain actions use during there mouse-move phase.
196+e.g. Dragging uses "ctrl" to copy the dragged text instead of moving it. However the use of "ctrl" for copy indication is during mouse move, so you can set start dragging to rely on any other Modifier key. It is however recommended to set **Ctrl** to greyed, so you can start dragging with the key pressed or un-pressed.
197+This is different to using "alt" (or others) for column mode selection: Here the decision is made only at the time of click. Later changes of the "alt" key during mouse-move do not change the selection mode.
198+
199+##
200+
201+The Priority
202+
203+It is possible to configure several equal (or overlapping / ambiguous) Clicks in the same Context. The Configuration with the highest Priority (lowest number (0 = top)) wins.
204+
205+This can be used for 2 purposes:
206+
207+Resolve Ambiguity
208+
209+
210+ 1. Left, Single, down Click, **priority** **0** with: Shift, Ctrl required pressed; Alt ignored
211+ 2. Left, Single, down Click, **priority** **1** with: Shift required pressed; Ctrl, Alt ignored
212+
213+Normally those two would conflict, because if you click with shift and ctrl then both will match. However due to the priority this can be resolved:
214+
215+ * Only Shift pressed: Only Config 2 (priority 1) does match. Config 2 is taken.
216+ * Shift and Ctrl pressed: Both Config do match. Config 1 has higher priority (0), Config 1 is taken
217+
218+
219+
220+Define Actions for Command Fall-through
221+
222+
223+Sometimes a Command can not be executed at the given location. If the Command notices this, it will pass the Click on. The Fall-Through first looks for further Commands in the same Context, but with lower priority. If none are found it will search parent context too.
224+
225+ * Not all Commands/Actions support Fall-through
226+ * "Default Fallback" (modifier Keys) will act like any other entry in the Priority. If A click is matched by a "specific configuration" at priority 2 (low) and a "default fallback" at priority 1 (higher), then it will first be given to the "default fallback", and only if this supports and trigger Fall-through the event may go to the "specific config"
227+ * See Useful Examples: Extend "Source Links" to jump Begin/End-pairs
228+
229+##
230+
231+Opt(ion) field
232+
233+This numeric option applies to certain settings only:
234+
235+Wheel scroll:
236+
237+ * speed lines => amount of lines
238+ * other speed => percent
239+
240+and possibly a few others.
241+
242+#
243+
244+The Action / Behaviour
245+
246+Each mouse button event as defined above, can trigger some action. The same action can be assigned to more than one event. (IF 2 events have the same behaviour, then there modifier keys are not checked for ambiguity)
247+
248+Move Caret checkbox
249+ With each action you can define, if you whish the caret to be moved. However this only additionally enforces the caret move. If an action implicitly moves the caret, then this will happen, even if you uncheck the this box. (e.g. Selecting a block always moves the caret)
250+
251+Command options
252+ Some commands take additional params to refine there behaviour
253+
254+Implicit mouse up action
255+ Some events that occur on mouse **down** events implicitly assign a mouse **up** action for the current click.
256+An implicit Mouse-Up event may or may not cancel the action/behaviour normally assigned to the mouse up.
257+E.g. dragging implicitly drops (inserts) the text when the button is released, it cancel whatever action may have been assigned to the mouse up event.
258+
259+Fall-Through
260+
261+
262+Some Commands can not always be executed. For Example "Source Link Command" can only be executed, if above a link-able identifier. In cases where a command can not be executed, it may trigger a Fall-Through. This means the Click will behave as if the configuration had not existed, and consequently a lower priority followed by the parent context will be searched.
263+Note: Not all commands support this, even if they are not executed.
264+
265+## No Action Command
266+
267+There are 2 uses for this:
268+
269+Move Caret
270+ With "Move Caret" it will set the caret to the mouse location. This will unset an existing selection. It also prevents a new selection from being marked by moving the mouse.
271+If it occurs on **down** then the caret will be set to the location the mouse was pressed, never mind where you release the button
272+Prevent fallback to parent node
273+ In Context-Subnodes this can prevent a click from executing the parent node(s) action.
274+E.g. this is assigned to the FoldTree. It catches clicks that are neither on a [+] or [-] node. Otherwise they fall through to the normal Gutter and toggle a breakpoint.
275+
276+
277+
278+Fall-Through
279+ Never
280+
281+## Selection Commands
282+
283+### Block Selection Commands
284+
285+There are 3 Selection commands, for the 3 selection modes supported by SynEdit: **Normal** , **Column** or **Full-Lines**.
286+
287+Note: All of them move the caret implicitly.
288+
289+Each of those can be configured in 2 different _Modes_ :
290+
291+Begin
292+ Starts a new selection . If an old selection exists, it will be disregarded. The new Selections starts at the current mouse location.
293+Continue
294+ If an old selection exists, then it will be extend.
295+If there was no selection, then a new selection is created, which will start at the position the caret had before the event occurred, and range to the click position.
296+
297+Those events should be assigned to mouse **down** events, in which case the selection will resize with any following mouse-movement until the mouse button is released. (**Implicit mouse up action**)
298+
299+"Begin-Mode" on mouse **up** does nothing, but setting the caret. (Except currently for line mode, which selects the line).
300+"Continue-Mode" on mouse **up** will extend the selection
301+
302+
303+
304+Fall-Through
305+ Never
306+
307+### Item Selection Commands
308+
309+Allow to select the Word, Line or Paragraph at the mouse position. Once selected the selection will not extend, if the mouse moves.
310+
311+"Line" supports 2 modes, either including leading/trailing spaces of the line or not.
312+
313+Note: All of them move the caret implicitly.
314+
315+
316+
317+Fall-Through
318+ Never
319+
320+### Drag Selection Command
321+
322+Drags (Copies or moves) the current selection to a new position, following mouse movement. It will be pasted there if the button is released. (**Implicit mouse up action**)
323+
324+Independent of the modifier keys pressed at the time of the event occurring (or the configured mod, keys), it will check for the **ctrl** key at the time the dragged text is inserted. If Ctrl is pressed the text will be copied, otherwise moved.
325+
326+Note: moves the caret implicitly.
327+
328+
329+
330+Fall-Through
331+ If no text is selected. Or if the selection can not be dragged (Column or Line mode selection)
332+
333+### Quick copy Selection Command
334+
335+Inserts a copy of the currently selected text at the mouse location. If no text is selected, inserts the content of the clipboard.
336+
337+Note: moves the caret implicitly.
338+
339+
340+
341+Fall-Through
342+ If no text is selected and the clipboard is empty
343+
344+## Context Popup Menu
345+
346+Note: GTK2: PopUp-Menu is recommended for use with ButtonUp only
347+
348+
349+
350+Fall-Through
351+ Never
352+
353+## Fold Commands
354+
355+Fold commands are commonly assigned to the fold-tree-nodes, but can also be assigned to other context, like the text area.
356+
357+The fold-tree has 3 context-nodes
358+
359+Fold Tree
360+ Any area of the fold-tree, this can be [+], [-], |, or empty
361+
362+Collapsed
363+ The [+] only. This means the line has at least one collapsed section. It may have a mix of collapsed/expanded sections
364+Expanded
365+ The [-] only. This means the line has at at only expanded sections (at least one)
366+
367+Note, that if you configure a specific click (e.g. shift-left-down) for either [+] or [-] or both, then most likely you should add the same click with "no action" (or other default) to the parent "Fold Tree" node. Otherwise such a click if not on the [+]/[-] node will fall through to the gutter, and may trigger an action there.
368+
369+### Fold Commands
370+
371+By default only acts on nodes starting on the line at the mouse location.
372+
373+The following modes are available:
374+
375+One
376+ Folds the "most inner" unfolded node starting on this line. This is the node that starts at the right most place in the line. Any node already folded is ignored, so if any unfolded node exists, one and exactly one node will be folded.
377+This is not necessarily the shortest fold-node (in amount of lines folded), as $region and begin folds can overlap.
378+All
379+ Folds all Nodes that start on this line
380+At Caret
381+ This only works if configured for the "Text" context. It folds the node which starts under the current mouse location. This allows you to click on a "begin" (or other keyword) to fold it. (Useful if more than one node starts at the line).
382+Current
383+ Folds the most inner node containing the current mouse location (the gutter is treated as "at the start of line"). It will search for the first fold-starting keyword (e.g "begin") in front of the current mouse location, whic has a block enclosing the mouse location (end is past mouse location). This may be above the current line.
384+If assigned to the gutter (or fold tree) this is always above the current line, unless the line starts with a keyword (no spaces before)
385+
386+
387+
388+Fall-Through
389+ (subject to change) Only in "At Caret" mode, if no fold starts under the mouse location
390+
391+### Unfold Commands
392+
393+Only acts on nodes starting on the line at the mouse location.
394+
395+The following modes are available:
396+
397+One
398+ Folds the "most outer" folded node starting on this line. This is the node that starts at the left most place in the line.
399+All
400+ Unfolds all nodes that start at the current line
401+
402+Fall-Through
403+ Never (subject to change)
404+
405+### Fold Popup Menu
406+
407+Note: GTK2: PopUp-Menu is recommended for use with ButtonUp only
408+
409+A pop up menu allowing you to see and change folds enclosing the current line
410+
411+
412+
413+Fall-Through
414+ Never
415+
416+## Source Link Command
417+
418+Trigger jump to implementation.
419+
420+The "underline" argument controls, if the curremt link under the mouse is highlighted (by an underline) while the modifier keys are pressed.
421+
422+If you assign this command to a click with no modifier keys needed, you would get constant highlights (because the expected modifiers (none) are pressed). In this case you cn switch it off.
423+
424+
425+
426+Fall-Through
427+ If no linkable identifier is below the mouse
428+
429+## Breakpoint Command
430+
431+Toggle breakpoint on this line
432+
433+
434+
435+Fall-Through
436+ Never
437+
438+## IDE-Command
439+
440+Select from the same commands that are available via the Keyboard Config.
441+
442+If the chosen Command depends on the current caret location, then it is recommended to tick "Move Caret".
443+
444+
445+
446+Fall-Through
447+ Never
448+
449+
450+
451+# The "Other Actions using the same button" Table
452+
453+This table can help you identifying other clicks, that may be executed together with the current click. It lists potential other clicks. The listed clicks are **not** necessarily executed together.
454+
455+The list includes clicks from the parent(s) contexts, but not any child contexts.
456+
457+The clicks are usually searched in the order indicated in the first column. You need to check:
458+
459+ * Clicks in the other direction (up/down)
460+ * if the Modifier Keys match or could match
461+ * A click could fall through
462+ * A click with lesser count (single, double, ...) exists
463+
464+Usually there are up to two Actions executed. The first matching one from the up and one the first matching one from the down clicks part of the list. Further Actions can happen due to fall through.
465+
466+So if your item (highlighted) is not first in the list, or there are actions in the other click-dir (up/down) check carefully, if this matches your intention.
467+
468+# Current Limitations
469+
470+ * On Windows **Triple** and **Quad** pressing work for the left button only.
471+ * Extra Mouse Buttons (Button 4 and 5) work on Windows and Linux only
472+ * GTK2: PopUp-Menu is recommended for use with Button-Up only
473+ * OS-Depended: Some clicks may be used by the Window-Manager, and do not reach the IDE at all
474+
475+# Pitfalls
476+
477+## Mixing Down and Up Clicks
478+
479+A mouse-down action does **not** prevent the mouse up action. This may lead to unexpected additional actions being executed
480+Consequential a click-up may be preceeded by unexpected click-down actions.
481+
482+ * The mouse-up / mouse-down can be in a parent context node
483+ * To avoid search in parent nodes, define a "no action" event in the current node
484+
485+## Double to Quad Clicks
486+
487+ * On Windows **Triple** and **Quad** only work for the left button.
488+
489+If you assign actions to double and triple click, you should aware that they always trigger the lesser clicks too.
490+
491+This is: Doing a Triple-Click will first do a Single-Click (down and up) with the same Modifier Keys (none, shift, alt, ...), then a double click, then the triple. (At the time of the first click, SynEdit does not know there will be more clicks)
492+
493+ * The single click can be in a parent context node
494+
495+
496+You should therefore take care of the actions assigned to those clicks.
497+
498+ * With the default (select, select word, select line, select paragraph) this is no problem. Selecting a Line (Triple) is not disturbed by selecting a Word (Double) first.
499+ * If However you would assign MouseLink to the Single (or Double), and select Word to the Double (or Tripple, one more than the other), this would not work. Because by the time you do your last click, SynEdit already followed the Link (and will not undo this). In fact, if SynEdit followed a Link to an other File, then a new SynEdit became active, and would see your last click as a single click.
500+ * This is not a bug. This is the correct behaviour
501+
502+# Useful Examples
503+
504+Some of the examples have become default, since they were listed here
505+
506+## Mouse "Move" versus "Click" on Gutter to select Lines / toggle action
507+
508+Left click followed by mouse move will do selection, while a Click without move will toggle breakpoints/fold-nodes.
509+
510+You can also choose to apply this only to the fold part of the gutter.
511+
512+
513+
514+Context Node
515+ Gutter
516+Configuration
517+ Left - Any - Down - All modifiers greyed
518+Action
519+ Selection - Mode: Begin
520+
521+
522+**Optional:**
523+
524+
525+
526+Context Node
527+ Gutter
528+Configuration
529+ Left - Any - Down - Shift required pressed; Ctrl, Alt required unpressed
530+Action
531+ Selection - Mode: Continue
532+
533+
534+
535+Context Node
536+ Gutter
537+Configuration
538+ Left - Any - **Up** \- All modifiers greyed
539+Action
540+ Toggle Breakpoint
541+
542+
543+
544+Context Node
545+ Gutter => Line Numbers
546+No Entries
547+
548+
549+
550+_Remove the Entry_
551+
552+Context Node
553+ ~~Gutter~~
554+Configuration
555+ ~~Left - Any - Down - All modifiers greyed~~
556+Action
557+ ~~No Action~~
558+
559+If you choose to apply this only to the fold part of the gutter, then instead of removing the above entry set it to "Action: Selection Mode Begin"
560+
561+
562+_Change_
563+
564+Context Node
565+ Gutter => Fold Tree => Collapsed
566+Fold Tree => Expanded
567+Configuration
568+ Change all to include the checkbox "Act on Mouse Up"
569+
570+
571+
572+## Line Numbers in Gutter to select Lines
573+
574+You can set the Line number part of the gutter to select text (full lines) instead of toggling a breakpoint. The Rest of the gutter (left to the line numbers) will still do breakpoints.
575+
576+Context Node
577+ Gutter => Line Numbers
578+Configuration
579+ Left - Any - Down - All modifiers greyed
580+Action
581+ Line Selection - Mode: Begin
582+
583+Setting Click to "Any" instead of "Single" means that double-clicks do not accidentally toggle breakpoints.
584+
585+## Fold by clicking on Keyword ("begin")
586+
587+Instead of folding a block by clicking on the [-] symbol in the gutter, you can fold a block by clicking on it's start keyword (e.g. "begin" or "$region"). this is useful if more than one block starts on the same line.
588+
589+Context Node
590+ Text
591+Configuration
592+ Middle or Right - Single - Down - Ctrl or Alt
593+Action
594+ Fold Code - Nodes: At Caret
595+
596+## Fold current block by clicking on vertical fold line
597+
598+You can set a click on the vertical line ("|" below the [-] sign in the fold tree) to fold the enclosing node. This may be useful if the [-] is outside the visible area.
599+
600+Context Node
601+ Gutter => Fold Tree
602+Configuration
603+ Left - Any - Down - All modifiers greyed
604+Action
605+ Fold Code - Nodes: Current Node
606+
607+This replaces the default "No Action" Entry. The default entry (as will the substitute) prevents Fold-Tree-Gutter clicks to toggle breakpoints.
608+
609+## Extend "Source Links" to jump Begin/End-pairs
610+
611+The Source-Link command is only useful for certain identifiers. But a very similar command exist "Find block other End" (IDE-Command). This can be set as a Fall-Through. In this case the same Click can trigger either of the 2 commands, depending on being above a link, or a begin end pair.
612+
613+Since IDE-Commands do not support Fall-Through to a further Action thye must be the last in the order of priorities. The "Source Link Command" does support Fall-Through, so it can be tried first.
614+
615+Keep the "Source Link Command" as per default:
616+
617+Context Node
618+ Text
619+Configuration
620+ Left - Single - Up - Ctrl required pressed; Shift, Alt required unpressed
621+Priority
622+ 0 (highest)
623+Action
624+ Source Link - Underline: yes
625+
626+Add a new entry
627+
628+Context Node
629+ Text
630+Configuration
631+ Left - Single - Up - Ctrl required pressed; Shift, Alt required unpressed
632+Priority
633+ 1 (lower)
634+Action
635+ IDE-Command - Find block other end
636+
637+Note: While links will be underlined, Begin/End pairs will not be underlined (but can be clicked)
638+
639+## Change History Jumps for 3 button Mouse (follow back the "Source Link" trail)
640+
641+This is usually assigned to ctrl-h. Source-Links and similar actions keep a history of points visited. You can navigate this history backward and forward.
642+
643+By default Lazarus uses the 2 extra Buttons of a 5 button mouse to navigate this jump history.
644+
645+(This works only if the mouse is over the text. If you want them to work just anywhere including the Gutter space, you need to add a copy in the Gutter context too. There is currently no context that catches Gutter and Text)
646+
647+Steps to change them for a 3 button mouse:
648+
649+ * select the "text" node from the context-tree (this includes selection, there is no need to add extra config for selection)
650+ * Find the 2 entries (look for "extra1", "Extra2" in the button column
651+ * Double-click each, to edit
652+ * ctrl-right (or ctrl-middle or alt-right) click the "capture" field. **Ensure you check "act on mouse up"**
653+ * save changes
654+
655+That's it
656+
657+
658+
659+### With a 3 Button Mouse
660+
661+You may assign this to something like ctrl-right mouse.
662+
663+**If you use the right button, then you must use it on button-up. Otherwise you will also get the context-menu**
664+
665+Context Node
666+ Text
667+Configuration
668+ Right - Single - up - Ctrl Required pressed, Others either greyed, or required un-pressed
669+Action
670+ Ide Command - Jump back
671+
672+## Move to procedure body
673+
674+See this [[post in the forum](<http://forum.lazarus.freepascal.org/index.php/topic,12672.msg108498.html#msg108498>)]
675+
676+---
677+*From the Free Pascal wiki, page "IDE Window: EditorMouseOptionsAdvanced", as the Internet Archive kept it on 2025-03-27. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history