@@ -11,12 +11,36 @@ import (
1111)
1212
1313var (
14- isMobile = regexp .MustCompile ("Android|iPhone|iPad|iPod" ).
15- MatchString (js .Global ().Get ("navigator" ).Get ("userAgent" ).String ())
16- isMacOS = strings .Contains (js .Global ().Get ("window" ).Get ("navigator" ).Get ("platform" ).String (), "Mac" )
14+ isMobile bool
15+ isMacOS bool
16+
17+ setCursor func (name string )
18+
19+ blurDummyEntry func (... any ) js.Value
20+ focusDummyEntry func (... any ) js.Value
1721)
1822
19- var dummyEntry = js .Global ().Get ("document" ).Call ("getElementById" , "dummyEntry" )
23+ func init () {
24+ navigator := js .Global ().Get ("navigator" )
25+ isMobile = regexp .MustCompile ("Android|iPhone|iPad|iPod" ).
26+ MatchString (navigator .Get ("userAgent" ).String ())
27+ isMacOS = strings .Contains (navigator .Get ("platform" ).String (), "Mac" )
28+
29+ document := js .Global ().Get ("document" )
30+ style := document .Get ("body" ).Get ("style" )
31+ setStyleProperty := style .Get ("setProperty" ).Call ("bind" , style )
32+ setCursor = func (name string ) {
33+ setStyleProperty .Invoke ("cursor" , name )
34+ }
35+
36+ dummyEntry := document .Call ("getElementById" , "dummyEntry" )
37+ if dummyEntry .IsNull () {
38+ return
39+ }
40+
41+ blurDummyEntry = dummyEntry .Get ("blur" ).Call ("bind" , dummyEntry ).Invoke
42+ focusDummyEntry = dummyEntry .Get ("focus" ).Call ("bind" , dummyEntry ).Invoke
43+ }
2044
2145func (* glDevice ) IsMobile () bool {
2246 return isMobile
@@ -28,17 +52,17 @@ func (*glDevice) SystemScaleForWindow(w fyne.Window) float32 {
2852}
2953
3054func (* glDevice ) hideVirtualKeyboard () {
31- if dummyEntry . IsNull () {
55+ if blurDummyEntry == nil {
3256 return
3357 }
34- dummyEntry . Call ( "blur" )
58+ blurDummyEntry ( )
3559}
3660
3761func (* glDevice ) showVirtualKeyboard () {
38- if dummyEntry . IsNull () {
62+ if focusDummyEntry == nil {
3963 return
4064 }
41- dummyEntry . Call ( "focus" )
65+ focusDummyEntry ( )
4266}
4367
4468func connectKeyboard (c * glCanvas ) {
0 commit comments