Elias Naur
3944ef4b2e
ui: merge package input
...
Event handling is as fundamental as operations, so move the input
package declarations to package ui.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-09-24 22:24:10 +02:00
Elias Naur
64add13d28
ui/app: (wayland) wait for xdg_shell configure event before drawing
...
According to the xdg_shell documentation, the xdg_surface must be
configured before use.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-09-24 17:28:04 +02:00
Elias Naur
736692a725
ui/app: (windows) process all events before redrawing
...
While here, make sure the DestroyEvent is sent after exiting the
event loop.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-09-23 20:49:51 +01:00
Elias Naur
5c9d35c186
ui/app,ui/app/internal/gl: work around golang.org/issue/34474
...
Apparently, the (*syscall.LazyProc).Call does not keep its arguments
alive across calls.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-09-23 20:26:52 +01:00
Elias Naur
5c87437542
ui/app: (windows) don't unregister window class
...
It silently fails because the Gio window is using it.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-09-23 19:17:14 +01:00
Elias Naur
8e41c8a0be
ui/app: (windows) don't cast syscall.Handle to unsafe.Pointer
...
The cast is not necessary and a syscall.Handle is not a pointer.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-09-23 10:25:11 +02:00
Elias Naur
816f0e901f
ui/app: scale touch events by surface scale
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-09-18 19:28:08 +02:00
Drew DeVault
dcddd9a84a
os_wayland: transform pointer events by scale
...
Fixes #37
2019-09-18 19:15:17 +02:00
Drew DeVault
c5a6ca2aba
ui/app/egl.go: on failure, try again without sRGB
...
Signed-off-by: Drew DeVault <sir@cmpwn.com >
2019-09-18 18:44:35 +02:00
Elias Naur
bae2e0ecf2
ui/app: (wayland) restore discrete scrolling behaviour
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-09-16 15:39:31 +02:00
Elias Naur
37d5b947eb
ui/app: (wayland) reset fling emulation on key press
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-09-13 21:13:02 +02:00
Elias Naur
2ea9fd9983
ui/app: (wayland) reset fling emulation of pointer motion
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-09-13 20:11:14 +02:00
Elias Naur
81f935f69b
ui/app: go fmt
...
Sigh.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-09-13 19:09:05 +02:00
Elias Naur
5bdb1d9e54
ui/app: (wayland) emulate fling behaviour for touchpads
...
Unlike macOS, Wayland leaves it up to the client to animate the
implied fling gesture when scrolling on a touchpad.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-09-13 18:35:38 +02:00
Elias Naur
5eef85f5cd
ui/app: note that Window.Invalidate is safe for concurrent use
...
Invalidate is intended to be called as a result of external events,
which might very well be from a different goroutine than the one
driving the window.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-09-09 14:51:55 +02:00
Elias Naur
b4433da21b
ui/app: (iOS) use UIView's safeAreaInsets for window insets if available
...
Unlike UIView's layoutMargins, safeAreaInsets only includes the space
actually taken up by system UI.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-09-06 13:09:59 +02:00
Elias Naur
7ad60e0878
ui/app: print sRGB flag for eglCreateWindowSurface failure
...
For gio#35
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-09-02 15:17:29 +02:00
Elias Naur
52dd762405
ui/app: (wayland) define WL_EGL_PLATFORM=1 to force EGL in Wayland mode
...
Including wayland-egl.h will also set WL_EGL_PLATFORM, but generic
egl code in egl_linux.go cannot do that.
For gio#35
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-09-02 15:13:36 +02:00
Elias Naur
dc62058bce
ui/app: (wayland) ensure DestroyEvent is the last event
...
A ToplevelClose event could end in the same batch of events as
another event, which will result in the other event being sent
after a DestroyEvent. Window assumes no event will arrive after
DestroyEvent, so ensure that property for the Wayland backend.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-09-01 14:33:33 +02:00
Elias Naur
110da804a0
ui/app: (wayland) expand comments for double server roundtrip
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-30 13:38:58 +02:00
Kenshi Kamata
ea2ee1abcc
ui/app: fix example code in document
...
Signed-off-by: Kenshi Kamata <kenshi.kamata@gmail.com >
2019-08-29 17:49:27 +02:00
Elias Naur
069bb0e7cd
ui/app: merge goString implementations and add test
...
Fixes gio#30
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-26 21:19:58 +01:00
Elias Naur
8700a8ffc3
ui/key,ui/pointer: rename HandlerOp to InputOp
...
"Input" is more specific and reads better than "handler".
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-26 18:07:48 +01:00
Elias Naur
a112a580a7
ui/app(internal/gpu: remove unused parameters
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-25 23:58:19 +01:00
Daniel Martí
2542c55e9d
all: fix some issues spotted by static analysis
...
First, vet was upset by two incorrect fmt verbs. One was an extra %x,
when there was just one argument, so remove it. Another was a %p with a
non-pointer. It's a struct, so for now simply use %#v.
Second, staticcheck found some unused or unnecessary bits of code;
remove the obvious ones.
Finally, staticcheck also complained about some error strings which were
capitalized or had periods. Adjust those, which also makes all error
messages more consistent.
Signed-off-by: Daniel Martí <mvdan@mvdan.cc >
2019-08-25 22:41:05 +01:00
Elias Naur
c3f30188a5
all: delete unused variables
...
Found by Daniel Martí.
Fixes gio#24
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-24 18:25:37 +01:00
Elias Naur
9520a9278f
ui/app/internal/gpu: set the default material to black
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-22 11:25:11 +02:00
Elias Naur
6a7e38eb32
ui/app: go fmt
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-21 14:59:35 +02:00
Elias Naur
bff8b64e5a
ui/app: replace WindowOptions with WindowOption
...
Thanks to Larry Clapp for noticing the opportunity for improvement.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-21 10:31:16 +02:00
Elias Naur
e140f2a1c0
ui/app: (iOS) check for first responder status before changing focus
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-20 17:30:19 +02:00
Elias Naur
ac6f0c3f18
ui/app: (iOS) move memory pressure callback to view controller
...
With multiple GioViewControllers we might invoke the garbage collector
more than once, but in return we simplify the GioAppDelegate which will
become the interface to native widgets.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-20 16:50:35 +02:00
Elias Naur
e6a68db4c0
ui/app: (iOS) resize window when the software keyboard is shown
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-20 16:48:00 +02:00
Elias Naur
46ecbb86d2
ui/app: remove unused method
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-20 12:57:35 +02:00
Elias Naur
9c9656e729
ui/app: fix indent
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-20 12:51:13 +02:00
Elias Naur
d2132fce3b
ui/app: remove debug line
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-20 11:14:48 +02:00
Elias Naur
4b3b8fa413
ui/app: (iOS) move UIWindow notifications to GioView
...
Simplifies GioAppDelegate and allows for proper deregistering of
listener.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-20 09:04:00 +02:00
Larry Clapp
56926a0449
ui/app: fix init() appending '' to os.Args
...
init() says
args := strings.Split(extraArgs, "|")
os.Args = append(os.Args, args...)
strings.Split says
If s does not contain sep and sep is not empty, Split returns a slice
of length 1 whose only element is s.
which means init() adds a blank arg to the end of os.Args when extraArgs
is empty. This fixes that.
Signed-off-by: Larry Clapp <larry@theclapp.org >
2019-08-14 10:35:08 +02:00
Elias Naur
7c197cc666
ui/app: support EGL versions >= 2.0
...
Versions with major > 1 don't exists, but let's handle the version
correctly in any case.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-12 00:29:18 +02:00
Elias Naur
5605919555
ui/app: (windows) don't fail eglChooseConfig just because no configs were found
...
The resulting eglGetError will return a confusing EGL_SUCCESS.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-12 00:05:57 +02:00
Elias Naur
842d29373f
ui: documentation tweaks
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-11 19:36:46 +02:00
Elias Naur
340fff9814
ui/key: rename ChordEvent to just Event
...
Event is like pointer.Event and we don't want the stuttering of
key.KeyEvent.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-11 12:50:40 +02:00
Elias Naur
2a0b0077da
ui/app: (wasm) add checks for required extensions
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-10 00:49:28 +02:00
Elias Naur
7bc18c0139
ui/app: more documentation
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-09 22:27:33 +02:00
Elias Naur
a8f42cd567
ui/app: expand package documentation
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-09 22:16:52 +02:00
Elias Naur
657c40e4bb
ui/app: support 0 for window width and height
...
The zero value means that the client don't care and a sensible
default is chosen.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-09 22:01:25 +02:00
Elias Naur
e5738481f8
ui/app: add package documentation and document Main
...
Split Main into the common Main function and platform specific
main functions.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-09 21:34:29 +02:00
Elias Naur
87f8fd4152
ui/app: update documentation
...
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-09 21:17:33 +02:00
Elias Naur
4e005f2bfa
ui/app: rename DrawEvent to UpdateEvent and Window.Draw to Window.Update
...
Window.Draw is not the right name for a method that does more than
just drawing. Rename to Update instead, and rename the DrawEvent
accordingly for symmetry.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-07 20:35:37 +02:00
Elias Naur
dd35a48a61
ui/paint: rename the draw package
...
The draw package name clashes with the standard library draw package.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-07 20:11:53 +02:00
Elias Naur
6e26c92c75
all: remove exported Decode methods on operations
...
Add decode functions to the packages that need them instead. For
TransformOp that is used in multiple packages, add the decode
function to the internal ops package.
Signed-off-by: Elias Naur <mail@eliasnaur.com >
2019-08-07 17:21:34 +02:00