remove need to use meta-key
This commit is contained in:
29
main.go
29
main.go
@@ -27,7 +27,6 @@ var icon []byte
|
|||||||
|
|
||||||
//go:generate go run ./filetypes/cmd/gen.go
|
//go:generate go run ./filetypes/cmd/gen.go
|
||||||
var validFileTypes = filetypes.Valid
|
var validFileTypes = filetypes.Valid
|
||||||
var metaActive bool
|
|
||||||
var fileList *tk.ToplevelWidget
|
var fileList *tk.ToplevelWidget
|
||||||
var lb *tk.ListboxWidget
|
var lb *tk.ListboxWidget
|
||||||
|
|
||||||
@@ -146,7 +145,7 @@ func main() {
|
|||||||
|
|
||||||
menubar := tk.Menu()
|
menubar := tk.Menu()
|
||||||
fileMenu := menubar.Menu()
|
fileMenu := menubar.Menu()
|
||||||
fileMenu.AddCommand(tk.Lbl("Open File"), tk.Accelerator("Meta+O"), tk.Command(newFileInDirectory(img)))
|
fileMenu.AddCommand(tk.Lbl("Open File"), tk.Accelerator("O"), tk.Command(newFileInDirectory(img)))
|
||||||
fileMenu.AddCommand(tk.Lbl("Open Directory"), tk.Command(newDirectory(img)))
|
fileMenu.AddCommand(tk.Lbl("Open Directory"), tk.Command(newDirectory(img)))
|
||||||
fileMenu.AddSeparator()
|
fileMenu.AddSeparator()
|
||||||
checkbox := fileMenu.AddCheckbutton(tk.Lbl("Show Filelist"))
|
checkbox := fileMenu.AddCheckbutton(tk.Lbl("Show Filelist"))
|
||||||
@@ -193,27 +192,19 @@ func main() {
|
|||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
|
|
||||||
// TODO: if someone presses the Meta key again after the openfile dialog box closes,
|
|
||||||
// it triggers a _release_ event instead of a press event. The second time afterward, it works correctly.
|
|
||||||
tk.Bind(tk.App, "<KeyPress>", tk.Command(func(e *tk.Event) {
|
tk.Bind(tk.App, "<KeyPress>", tk.Command(func(e *tk.Event) {
|
||||||
curr := slices.Index(directoryState.images, directoryState.currentFile)
|
curr := slices.Index(directoryState.images, directoryState.currentFile)
|
||||||
switch e.Keysym {
|
switch e.Keysym {
|
||||||
case ".":
|
case ".":
|
||||||
log.Printf("state: %+v", directoryState)
|
log.Printf("state: %+v", directoryState)
|
||||||
case "Meta_L", "Meta_R":
|
|
||||||
metaActive = true
|
|
||||||
case "o":
|
case "o":
|
||||||
if metaActive {
|
newFileInDirectory(img)()
|
||||||
newFileInDirectory(img)()
|
|
||||||
}
|
|
||||||
case "a":
|
case "a":
|
||||||
if metaActive {
|
if fileList == nil {
|
||||||
if fileList == nil {
|
constructFileList()
|
||||||
constructFileList()
|
} else {
|
||||||
} else {
|
// list closed by 'a'
|
||||||
// list closed by Meta-a
|
destroyFileList(true)
|
||||||
destroyFileList(true)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
case "Up":
|
case "Up":
|
||||||
if curr > 0 {
|
if curr > 0 {
|
||||||
@@ -233,12 +224,6 @@ func main() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
tk.Bind(tk.App, "<KeyRelease>", tk.Command(func(e *tk.Event) {
|
|
||||||
switch e.Keysym {
|
|
||||||
case "Meta_L", "Meta_R":
|
|
||||||
metaActive = false
|
|
||||||
}
|
|
||||||
}))
|
|
||||||
// todo: resize image based on scroll events
|
// todo: resize image based on scroll events
|
||||||
// tk.Bind(tk.App, "<TouchpadScroll>", tk.Command(func(e *tk.Event) {
|
// tk.Bind(tk.App, "<TouchpadScroll>", tk.Command(func(e *tk.Event) {
|
||||||
// log.Printf("%v, %v", int16(e.Delta>>16), int16(e.Delta&0xFFFF))
|
// log.Printf("%v, %v", int16(e.Delta>>16), int16(e.Delta&0xFFFF))
|
||||||
|
Reference in New Issue
Block a user