Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
71ce3b5d75 | ||
|
|
b056b4c436 | ||
|
|
42b55d41df | ||
|
|
ec0ce767d9 | ||
|
|
ec3caa02d2 | ||
|
|
6b39eba14c | ||
|
|
631b651eed | ||
|
|
df644f4196 |
2
Makefile
2
Makefile
@@ -9,7 +9,7 @@ get:
|
||||
go get github.com/fsnotify/fsnotify
|
||||
|
||||
build:
|
||||
go build -o bin/nwg-drawer .
|
||||
go build -v -o bin/nwg-drawer .
|
||||
|
||||
install:
|
||||
-pkill -f nwg-drawer
|
||||
|
||||
2
go.mod
2
go.mod
@@ -6,7 +6,7 @@ require (
|
||||
github.com/allan-simon/go-singleinstance v0.0.0-20210120080615-d0997106ab37
|
||||
github.com/dlasky/gotk3-layershell v0.0.0-20230802002603-b0c42cd8474f
|
||||
github.com/fsnotify/fsnotify v1.7.0
|
||||
github.com/gotk3/gotk3 v0.6.2
|
||||
github.com/gotk3/gotk3 v0.6.3
|
||||
github.com/joshuarubin/go-sway v1.2.0
|
||||
github.com/sirupsen/logrus v1.9.3
|
||||
)
|
||||
|
||||
2
go.sum
2
go.sum
@@ -14,6 +14,8 @@ github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyT
|
||||
github.com/gotk3/gotk3 v0.6.1/go.mod h1:/hqFpkNa9T3JgNAE2fLvCdov7c5bw//FHNZrZ3Uv9/Q=
|
||||
github.com/gotk3/gotk3 v0.6.2 h1:sx/PjaKfKULJPTPq8p2kn2ZbcNFxpOJqi4VLzMbEOO8=
|
||||
github.com/gotk3/gotk3 v0.6.2/go.mod h1:/hqFpkNa9T3JgNAE2fLvCdov7c5bw//FHNZrZ3Uv9/Q=
|
||||
github.com/gotk3/gotk3 v0.6.3 h1:+Ke4WkM1TQUNOlM2TZH6szqknqo+zNbX3BZWVXjSHYw=
|
||||
github.com/gotk3/gotk3 v0.6.3/go.mod h1:/hqFpkNa9T3JgNAE2fLvCdov7c5bw//FHNZrZ3Uv9/Q=
|
||||
github.com/joshuarubin/go-sway v1.2.0 h1:t3eqW504//uj9PDwFf0+IVfkD+WoOGaDX5gYIe0BHyM=
|
||||
github.com/joshuarubin/go-sway v1.2.0/go.mod h1:qcDd6f25vJ0++wICwA1BainIcRC67p2Mb4lsrZ0k3/k=
|
||||
github.com/joshuarubin/lifecycle v1.0.0/go.mod h1:sRy++ATvR9Ee21tkRdFkQeywAWvDsue66V70K0Dnl54=
|
||||
|
||||
15
main.go
15
main.go
@@ -21,7 +21,7 @@ import (
|
||||
"github.com/gotk3/gotk3/gtk"
|
||||
)
|
||||
|
||||
const version = "0.4.4"
|
||||
const version = "0.4.6"
|
||||
|
||||
var (
|
||||
appDirs []string
|
||||
@@ -32,6 +32,7 @@ var (
|
||||
preferredApps map[string]interface{}
|
||||
exclusions []string
|
||||
hyprlandMonitors []monitor
|
||||
beenScrolled bool
|
||||
)
|
||||
|
||||
var categoryNames = [...]string{
|
||||
@@ -518,6 +519,18 @@ func main() {
|
||||
resultWindow.SetEvents(int(gdk.ALL_EVENTS_MASK))
|
||||
resultWindow.SetPolicy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
|
||||
|
||||
// On touch screen we don't want the button-release-event to launch the app if the user just wanted to scroll the
|
||||
// window. Let's forbid doing so if the content has been scrolled. We will reset the value on button-press-event.
|
||||
// Resolves https://github.com/nwg-piotr/nwg-drawer/issues/110
|
||||
vAdj := resultWindow.GetVAdjustment()
|
||||
vAdj.Connect("value-changed", func() {
|
||||
beenScrolled = true
|
||||
})
|
||||
hAdj := resultWindow.GetHAdjustment()
|
||||
hAdj.Connect("value-changed", func() {
|
||||
beenScrolled = true
|
||||
})
|
||||
|
||||
resultWindow.Connect("button-release-event", func(_ *gtk.ScrolledWindow, event *gdk.Event) bool {
|
||||
btnEvent := gdk.EventButtonNewFromEvent(event)
|
||||
if btnEvent.Button() == 3 {
|
||||
|
||||
@@ -264,11 +264,19 @@ func flowBoxButton(entry desktopEntry) *gtk.Button {
|
||||
r := substring(desc, 0, 117)
|
||||
desc = fmt.Sprintf("%s…", string(r))
|
||||
}
|
||||
|
||||
button.Connect("button-press-event", func() {
|
||||
// if not scrolled from now on, we will allow launching apps on button-release-event
|
||||
beenScrolled = false
|
||||
})
|
||||
|
||||
button.Connect("button-release-event", func(btn *gtk.Button, e *gdk.Event) bool {
|
||||
btnEvent := gdk.EventButtonNewFromEvent(e)
|
||||
if btnEvent.Button() == 1 {
|
||||
if !beenScrolled {
|
||||
launch(exec, terminal)
|
||||
return true
|
||||
}
|
||||
} else if btnEvent.Button() == 3 {
|
||||
pinItem(ID)
|
||||
return true
|
||||
|
||||
Reference in New Issue
Block a user