Usually you use the left mouse button to select a menue item, to click on a point or to define a selection rectangle by dragging. If you click on a menue item which represents a value, the left mouse button counts upwards and the right mouse button counts downwards.
If the menue item ''snap'' is active, the selected point in the drawing area is the nearest hot point of a drawing object or of the grid, if those are within a certain distance. If ''mp'' is active, the selected point is the middle point of the selected drawing object.
Often you want to draw horizontal or vertical lines, which do not follow grid lines. This is supported by the following mechanism. Suppose the point last selected is (xlast,ylast). Now you click on the point (x,y) and drag the mouse with button 1 pressed to the point (xe,ye). First the snap point (xsnap, ysnap) is calculated from (x,y). If |x-xe|>|y-ye| then the point used for further processing is (xlast,ysnap) otherwise (xsnap,ylast).