package action
import (
- "github.com/zyedidia/micro/internal/buffer"
- "github.com/zyedidia/micro/internal/config"
- "github.com/zyedidia/micro/internal/display"
- "github.com/zyedidia/micro/internal/screen"
- "github.com/zyedidia/micro/internal/views"
+ "github.com/zyedidia/micro/v2/internal/buffer"
+ "github.com/zyedidia/micro/v2/internal/config"
+ "github.com/zyedidia/micro/v2/internal/display"
+ "github.com/zyedidia/micro/v2/internal/screen"
+ "github.com/zyedidia/micro/v2/internal/views"
"github.com/zyedidia/tcell"
)
mx, my := e.Position()
switch e.Buttons() {
case tcell.Button1:
+ if my == t.Y && mx == 0 {
+ t.Scroll(-4)
+ return
+ } else if my == t.Y && mx == t.Width-1 {
+ t.Scroll(4)
+ return
+ }
if len(t.List) > 1 {
ind := t.LocFromVisual(buffer.Loc{mx, my})
if ind != -1 {
active int
resizing *views.Node // node currently being resized
+ // captures whether the mouse is released
+ release bool
}
// NewTabFromBuffer creates a new tab from the given buffer
mx, my := e.Position()
switch e.Buttons() {
case tcell.Button1:
+ wasReleased := t.release
+ t.release = false
if t.resizing != nil {
var size int
if t.resizing.Kind == views.STVert {
return
}
- resizeID := t.GetMouseSplitID(buffer.Loc{mx, my})
- if resizeID != 0 {
- t.resizing = t.GetNode(uint64(resizeID))
- return
- }
+ if wasReleased {
+ resizeID := t.GetMouseSplitID(buffer.Loc{mx, my})
+ if resizeID != 0 {
+ t.resizing = t.GetNode(uint64(resizeID))
+ return
+ }
- for i, p := range t.Panes {
- v := p.GetView()
- inpane := mx >= v.X && mx < v.X+v.Width && my >= v.Y && my < v.Y+v.Height
- if inpane {
- t.SetActive(i)
- break
+ for i, p := range t.Panes {
+ v := p.GetView()
+ inpane := mx >= v.X && mx < v.X+v.Width && my >= v.Y && my < v.Y+v.Height
+ if inpane {
+ t.SetActive(i)
+ break
+ }
}
}
case tcell.ButtonNone:
t.resizing = nil
+ t.release = true
default:
for _, p := range t.Panes {
v := p.GetView()