remove need to use meta-key

This commit is contained in:
2025-05-03 21:40:47 -04:00
parent 0468bab57f
commit cbeda42949

29
main.go
View File

@@ -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))