Dominique Martinet
e0eafa0429
xwayland: listen to wlr_seat destroy signal
2017-12-29 19:00:08 +01:00
Dominique Martinet
58488ec5ce
wlr_seat: add destroy signal
2017-12-29 17:55:03 +01:00
Dominique Martinet
bb0d888f25
xwayland selection: further cleanup on Xwayland exit
...
This is necessary if our last primary/clipboard selection was on Xwayland,
and we try to paste to native wayland after Xwayland died
2017-12-29 16:30:59 +01:00
Drew DeVault
c23bd2ab7a
Further fixes to header install dir
2017-12-28 14:38:52 -05:00
Drew DeVault
9c163b7d38
Merge pull request #531 from acrisci/keyboard-num-keycodes
...
wlr-keyboard: keep track of number of keycodes pressed
2017-12-27 16:14:06 -08:00
Tony Crisci
e8b810ce3e
keep track of number of keycodes pressed
2017-12-27 18:58:43 -05:00
Björn Esser
71e42dae90
libwlroots: Add shared library versioning
2017-12-27 18:00:13 +01:00
Björn Esser
48ecbff691
include: Generate and install version-header
2017-12-27 17:13:58 +01:00
Björn Esser
892f7a5db0
include: Install headers in an isolated include-dir
2017-12-27 17:13:58 +01:00
Björn Esser
ff13849624
config: Avoid clash with other config-headers
2017-12-27 17:13:58 +01:00
Tony Crisci
815d71a3aa
validate grab serial for shell events
2017-12-27 08:04:01 -05:00
emersion
a79dc7df51
Merge pull request #524 from acrisci/role-committed
...
[wip] Role committed
2017-12-27 13:02:49 +01:00
Tony Crisci
5c5f0611c4
xwayland: role committed
2017-12-27 06:50:21 -05:00
Tony Crisci
e42d762a88
drag-icon: surface committed
2017-12-27 06:41:14 -05:00
Tony Crisci
68328700c7
wl-shell: role committed
2017-12-27 06:32:54 -05:00
Tony Crisci
e809250171
Merge pull request #519 from emersion/xwayland-primary-selection
...
Implement xwayland primary selection sync
2017-12-27 06:23:04 -05:00
Tony Crisci
d5ffa26564
xdg-shell: role-committed func
2017-12-27 06:15:25 -05:00
Tony Crisci
5a18f62fee
add role-committed hook
2017-12-27 06:06:29 -05:00
Tony Crisci
6c2242e66b
Merge pull request #522 from emersion/fix-drm-output-transform-cursor
...
Fix cursor on transformed output with DRM backend
2017-12-27 05:48:45 -05:00
emersion
43435d4915
Add output transform helpers docs
2017-12-27 11:17:25 +01:00
Björn Esser
57a09c8ca4
config: Put all defines into config.h
2017-12-26 18:51:27 +01:00
emersion
e737f65e38
Fix cursor on transformed output with DRM backend
2017-12-26 18:16:37 +01:00
emersion
4a11609b76
Fix use-after-free when destroying selection sources
2017-12-25 18:18:26 +01:00
emersion
6dffaa7bb7
Implement xwayland primary selection sync
2017-12-25 16:10:16 +01:00
emersion
4476f79850
Fix primary clipboard issues
2017-12-22 23:45:07 +01:00
emersion
a95d09d561
Add missing gtk-primary-selection interfaces
2017-12-22 22:22:29 +01:00
emersion
0a171d3ace
Add wlr_primary_selection_device_manager and wlr_primary_selection_source
2017-12-22 19:20:12 +01:00
Tony Crisci
ee39dff1e7
rootston: handle backend creation failed
2017-12-20 05:51:23 -05:00
Tony Crisci
58e69c9ce1
multibackend remove subbackend
2017-12-19 18:49:00 -05:00
Tony Crisci
a937016e38
remove session from multibackend
2017-12-19 18:25:46 -05:00
Tony Crisci
4e804ef40f
add backend destroy event
2017-12-19 18:14:47 -05:00
Dominique Martinet
fcd7062542
x11 backend: add wlr_input_device_is_x11
2017-12-19 20:40:36 +01:00
Dominique Martinet
169bc9fa10
wl backend: add wlr_input_device_is_wl
2017-12-19 20:20:32 +01:00
Dominique Martinet
d9eaca6c9f
headless backend: add wlr_output_is_headless
2017-12-19 20:17:47 +01:00
Dominique Martinet
995383b049
headless backend: add wlr_input_device_is_headless
2017-12-19 20:16:12 +01:00
Dominique Martinet
be95147385
drm backend: add wlr_output_is_drm
2017-12-19 20:13:49 +01:00
Dominique Martinet
dabfe159de
wl backend: add wlr_output_is_wl
2017-12-19 20:13:49 +01:00
Dominique Martinet
f83b16bc17
x11 backend: add wlr_output_is_x11
2017-12-19 20:13:49 +01:00
Dominique Martinet
3e228b0b2a
libinput backend: add wlr_input_device_is_libinput
2017-12-19 20:13:49 +01:00
emersion
4a36ba4bdd
Destroy multi backend on display destroy
2017-12-19 18:28:47 +01:00
Drew DeVault
f3769a4b1f
Merge pull request #496 from emersion/headless-backend
...
Headless backend
2017-12-17 20:48:01 -05:00
Drew DeVault
10c72f4bf6
Merge pull request #487 from emersion/xwm-selection
...
xwm clipboard sync, 2nd edition
2017-12-17 20:03:26 -05:00
emersion
b99d1f4fcc
Refactor wlr_egl_init to accept config_attribs
2017-12-17 23:51:04 +01:00
emersion
bc5bdb7793
Add headless input devices
2017-12-17 18:49:20 +01:00
emersion
0256de0002
Add full refresh rate support to custom modes
2017-12-17 18:02:55 +01:00
emersion
3970264ccf
Initialize headless backend
2017-12-17 12:56:42 +01:00
emersion
8af6fbd7a0
Support multiple resources per seat client for data_device
2017-12-16 14:22:59 +01:00
emersion
4f0443a344
Support multiple resources per seat client for pointer, keyboard, touch
2017-12-16 13:53:39 +01:00
emersion
51db087210
Introduce fractional scaling
2017-12-15 01:00:03 +01:00
emersion
6b42bfad18
Merge branch 'master' into xwm-selection
2017-12-14 23:59:04 +01:00
Drew DeVault
23fb663ea4
Merge pull request #453 from emersion/surface-transform
...
Add surface transforms support
2017-12-14 14:43:04 -05:00
emersion
466e86b7b2
Merge branch 'master' into surface-transform
2017-12-14 20:31:18 +01:00
emersion
75ef7860bb
Merge branch 'master' into display-destroy
2017-12-14 20:29:30 +01:00
emersion
6ef0219763
Merge branch 'master' into xwm-selection
2017-12-14 11:20:38 +01:00
Tony Crisci
ea4b871e16
xwm: user custom event handler
2017-12-13 17:54:19 -05:00
emersion
3b4b8953d9
Update output layout when scale or transform changes
2017-12-12 21:58:00 +01:00
emersion
c67a5824b8
Merge branch 'master' into display-destroy
2017-12-11 16:14:03 +01:00
emersion
529675b7b0
Add wlr_output_set_custom_mode
2017-12-11 12:14:23 +01:00
Drew DeVault
eb4e91f96d
Merge pull request #474 from emersion/customize-repeat-info
...
Make keyboard repeat info configurable
2017-12-08 15:47:11 -05:00
emersion
2c6e52c164
Add docs for wlr_keyboard_set_repeat_info
2017-12-08 17:06:31 +01:00
emersion
a3c0f97810
Make keyboard repeat info configurable
2017-12-08 17:03:05 +01:00
Tony Crisci
35188834db
Merge branch 'master' into feature/xwm-selection
2017-12-08 09:22:44 -05:00
emersion
c5fa415a03
Send wl_surface.{enter,leave} to cursor surfaces
2017-12-08 14:23:33 +01:00
Tony Crisci
4c60072be5
move get_resize_name to xcursor
2017-12-08 06:08:06 -05:00
Tony Crisci
d74ac69f7b
bring edges into wlr
2017-12-08 06:03:57 -05:00
emersion
6001235b04
Listen to display destroy in session
...
It's not the backend's responsibility to destroy the session anymore.
2017-12-08 11:17:56 +01:00
emersion
b06535718d
Do not destroy wl_client in wlr_xwayland_finish
2017-12-08 01:38:45 +01:00
emersion
18eb1eee3f
Listen to display destroy in xwayland, rename wlr_egl_free
2017-12-08 00:59:37 +01:00
emersion
bdb6e0b84c
Remove destroy event in screenshooter for now
2017-12-07 01:19:41 +01:00
emersion
0e066f0d76
Listen to display destroy in output
2017-12-07 01:12:04 +01:00
emersion
cbf5763c22
Listen to display destroy in xdg-shell-v6
2017-12-07 01:08:35 +01:00
emersion
9ddaea14a1
Listen to display destroy in wl-shell
2017-12-07 01:05:49 +01:00
emersion
983ea3033f
Listen to display destroy in seat
2017-12-07 01:02:07 +01:00
emersion
088ff9a614
Listen to display destroy in gamma control manager
2017-12-07 00:55:50 +01:00
emersion
c7900663bc
Add display destroy listener to data device
2017-12-07 00:50:55 +01:00
emersion
e6d2e72401
Remove display destroy listeners, add compositor listener
2017-12-07 00:44:45 +01:00
emersion
32591d66d6
Add display destroy listener in server decoration
2017-12-07 00:36:05 +01:00
emersion
dfe11a2b0e
Add display destroy listener in screenshooter, destroy display in rootston
2017-12-07 00:13:06 +01:00
emersion
bf2b58eb6d
Add wlr_output_set_scale
...
Fixes #465
2017-12-06 16:36:46 +01:00
Tony Crisci
86df909256
xwayland: remove xwayland param from xsurface methods
2017-12-03 17:30:57 -05:00
Drew DeVault
3f70043d00
Merge pull request #458 from acrisci/refactor/wlr-decoration-modes
...
wrap server decoration modes
2017-12-03 14:13:27 -05:00
Tony Crisci
344ca222db
wrap server decoration modes
2017-12-03 13:39:29 -05:00
Tony Crisci
41d7bad470
wl-shell: add commit event
2017-12-03 12:37:23 -05:00
emersion
6a69b4419f
Make wlr_output_transform_* functions public, refactoring
2017-12-01 09:15:33 +01:00
emersion
f4754ad1a2
Fix surface transforms
2017-11-30 23:58:12 +01:00
Tony Crisci
fc17c74516
xwayland: clean up seat setting
2017-11-22 08:23:23 -05:00
Tony Crisci
b0683874e9
xwm: send selection data
2017-11-22 08:10:06 -05:00
Tony Crisci
39e2ea8420
xwm: get selection targets
2017-11-21 18:09:25 -05:00
emersion
dcb168914e
Merge branch 'master' into fullscreen
2017-11-21 18:34:12 +01:00
Drew DeVault
1228d0da19
Merge pull request #387 from emersion/laggy-move-resize
...
Fix laggy move-resize
2017-11-21 11:13:18 -05:00
emersion
17d9e2ce35
Unify view events naming, remove client from event structs
2017-11-21 09:50:00 +01:00
emersion
151901123f
Merge branch 'master' into refactor-wlr-list
2017-11-20 21:15:58 +01:00
emersion
54f1135c05
Fix fullscreen in xdg-shell
2017-11-20 20:53:13 +01:00
emersion
b04a9a248d
Initial fullscreen support
2017-11-20 17:27:36 +01:00
emersion
7904b625f0
Merge branch 'master' into laggy-move-resize
2017-11-19 22:28:51 +01:00
Tony Crisci
af23192ede
wlr-seat: remove client bound and unbound signal
2017-11-19 11:13:59 -05:00
Tony Crisci
3b74db467b
data-device: wlr-drag-icon
2017-11-19 09:33:55 -05:00
emersion
016744ef4d
Refactor wlr_list inside wlroots
2017-11-19 00:17:40 +01:00
emersion
a3a8b7bfd8
Fixed a bug with move-resize, removed xdg-shell ack_configure event
...
Fixed move-resizing a view when only one coordinate changes.
2017-11-18 09:09:23 +01:00
emersion
e2843d87c8
Ensure to move the view when configured
2017-11-17 23:52:42 +01:00
Tony Crisci
f61986e8db
rename touch slot to touch id
2017-11-16 17:53:52 -05:00
Tony Crisci
fb18e345a6
wlr-seat: return serial from touch down interface
2017-11-16 17:44:10 -05:00
Tony Crisci
12758a00a2
rootston: touch to focus
2017-11-15 08:34:48 -05:00
Tony Crisci
ac4841ba37
put dnd icon in the right place
2017-11-15 08:34:48 -05:00
Tony Crisci
a337e95505
wlr-touch: make dnd work
2017-11-15 08:34:48 -05:00
Tony Crisci
4eab61f86f
wlr-seat: refactor touch grab interface
2017-11-15 08:34:48 -05:00
Tony Crisci
6a516f7c41
basic touch dnd
2017-11-15 08:34:48 -05:00
Tony Crisci
94e7dc8a3e
data-device: touch grab stubs
2017-11-15 08:34:48 -05:00
Tony Crisci
cbb6fd7352
wlr-seat: touch grab begin and end
2017-11-15 08:34:48 -05:00
Tony Crisci
469729d3af
wlr-seat: document seat touch functions
2017-11-15 08:34:48 -05:00
Tony Crisci
4240096b83
wlr-seat: default touch grab
2017-11-15 08:34:48 -05:00
Tony Crisci
e5a31ae870
wlr-seat: basic touch
2017-11-15 08:34:48 -05:00
emersion
3f6cf517b9
Add wlr_xdg_surface_v6_popup_get_position
2017-11-15 14:03:13 +01:00
emersion
f8b43940b1
Merge branch 'master' into cursor-scale
2017-11-12 22:12:50 +01:00
Drew DeVault
a317ecdab8
Run startup command after xwayland is ready
2017-11-12 16:01:48 -05:00
emersion
28fc813ca9
Merge branch 'master' into cursor-scale
2017-11-12 21:16:45 +01:00
Drew DeVault
1e0e73efaa
Spawn views on last active output
2017-11-12 09:55:28 -05:00
emersion
8605243459
Introduce wlr_xcursor_manager
2017-11-12 11:10:56 +01:00
emersion
09279b90a6
Add wlr_output.serial
2017-11-11 19:09:34 +01:00
emersion
ac1573b0e7
Add scale parameter to wlr_cursor_set_image
2017-11-11 17:27:44 +01:00
Tony Crisci
2a9dc60f28
Merge branch 'master' into feature/multiseat
2017-11-11 09:59:39 -05:00
Drew DeVault
5f3b27347c
Merge pull request #404 from emolitor/CPP-Compatibility
...
Remove VLA from session.h
2017-11-10 10:18:43 -05:00
Eric Molitor
5be11a5c95
Remove VLA from session.h
...
VLAs are optional C11 features and not supported by C++.
2017-11-10 15:12:00 +00:00
Drew DeVault
e6babc07a0
Merge pull request #390 from emersion/rootston-maximize
...
Maximize views in rootston
2017-11-10 08:26:20 -05:00
Drew DeVault
425713b837
Merge branch 'hidpi'
2017-11-10 08:21:50 -05:00
Timidger
80bf3cfff0
Fixes #399 Adds wlr_data_device_manager destructor
...
Fixed issues
2017-11-09 18:52:58 -08:00
Tony Crisci
739361aa70
wlr-keyboard: take out modifiers event struct (for now)
2017-11-09 17:29:28 -05:00
emersion
bf1b12a725
Fix maximize delay in xdg-shell
2017-11-09 21:41:11 +01:00
emersion
26dadacb71
Add wl_shell support for maximized views
2017-11-09 20:06:05 +01:00
Drew DeVault
66587eb430
Merge remote-tracking branch 'origin/master' into hidpi
2017-11-09 08:36:27 -05:00
Tony Crisci
79f5bd6ef8
Merge branch 'master' into feature/multiseat
2017-11-08 20:21:59 -05:00
emersion
882e620639
Always read state from wlr_keyboard in the seat
2017-11-08 19:02:56 +01:00
emersion
84d5e6bbb4
Send current keyboard state when entering a surface
2017-11-08 10:57:46 +01:00
Tony Crisci
09c6092423
multiseat: somewhat working
2017-11-07 15:56:11 -05:00
Tony Crisci
5354fe8729
move keyboard to seat
2017-11-04 09:23:57 -04:00
Drew DeVault
6d8e1abfc0
Improve input sensitivity
...
We now use doubles until the last minute, which makes it so we can move
the pointer more precisely. This also includes a fix for tablet tools,
which move absolutely and sometimes do not update the X or Y axis.
2017-11-04 01:35:12 -04:00
Drew DeVault
86b8729998
Merge remote-tracking branch 'origin/master' into hidpi
2017-11-02 23:34:02 -04:00
Drew DeVault
62734d0553
Merge pull request #380 from emersion/xwayland-root-cursor
...
Set xwayland root cursor
2017-11-02 12:28:31 -04:00
emersion
3f4ad47421
Use compositor theme for xwm cursor
2017-11-02 16:49:22 +01:00
emersion
d11973ed7d
Fix disabled cursors
2017-11-02 11:37:43 +01:00
emersion
e18460c981
Add wlr_output.needs_swap
2017-11-01 20:08:15 +01:00
emersion
0df7a3c22d
Add wlr_seat_pointer_request_set_cursor_event.serial
2017-11-01 18:15:37 +01:00
Drew DeVault
0d9d670dbd
Merge pull request #365 from emersion/wayland-backend-transform
...
Cursors ✕ Output Transformations fixes
2017-11-01 10:21:02 -04:00
emersion
60c018c017
Fix hidden software cursors, fix cursor transformations on DRM backend
2017-11-01 14:25:41 +01:00
Drew DeVault
a6930cd8ea
Handle output enter/leave correctly
2017-11-01 08:51:59 -04:00
Drew DeVault
a7446792a1
Consider scale factor when rendering views
2017-11-01 08:44:07 -04:00
Tony Crisci
1a756b3123
bugfix: dnd force cancel
2017-11-01 08:05:02 -04:00
emersion
0beae99188
Apply output transformation to pointer events in Wayland backend
2017-11-01 11:00:27 +01:00
emersion
4230a577cc
Remove wlr_cursor_set_xcursor for now
2017-10-31 12:30:56 +01:00
emersion
95566c6bdf
Transform cursor hotspot, fix wayland cursor hotspot
2017-10-31 12:30:56 +01:00
emersion
2e2d63a164
Manage wlr_output_cursor from wlr_cursor
2017-10-31 12:30:56 +01:00
emersion
1b6c729360
Add wlr_output_cursor
2017-10-31 12:30:03 +01:00
Drew DeVault
ebca06bfe4
Merge pull request #358 from acrisci/refactor/sec-to-msec
...
refactor input time_sec to time_msec
2017-10-30 15:50:31 -04:00
Tony Crisci
875a5b446f
remove time usec
2017-10-30 15:43:06 -04:00
Tony Crisci
74bca7251b
rename wlr_seat to seat on seat structs
2017-10-30 08:44:39 -04:00
Tony Crisci
fddef4d58e
rename seat handle to seat client
2017-10-30 08:37:54 -04:00
Tony Crisci
a224e74fad
refactor input time_sec to time_msec
2017-10-30 06:40:06 -04:00
Tony Crisci
c01248cf17
Merge branch 'master' into feature/xwm-rewrite
2017-10-29 10:43:10 -04:00
Drew DeVault
4281aefbf8
Merge pull request #324 from acrisci/feature/keyboard-redesign
...
wlr-seat: keyboard redesign
2017-10-28 10:56:41 -04:00
Tony Crisci
c555a66dda
Merge branch 'master' into feature/xwm-rewrite
2017-10-27 15:22:00 -04:00
Tony Crisci
325def3841
xwm: create colormap and visual depth detection
2017-10-27 15:20:50 -04:00
Tony Crisci
be297d9d14
xwm: net wm state
2017-10-27 13:17:34 -04:00
Tony Crisci
6a4290b86a
xwm: moveresize events
2017-10-27 10:48:09 -04:00
emersion
a43acae000
Send server-decoration ack event automatically
2017-10-27 00:02:30 +02:00
Tony Crisci
4a106648c4
xwm: remove incorrect implementation of net wm state
2017-10-26 15:58:18 -04:00
Tony Crisci
0d1dd84a48
xwm: improve activation and dont send focus twice
2017-10-25 08:39:28 -04:00
Tony Crisci
e5ee01254b
xwm: map and unmap notify
2017-10-24 21:07:46 -04:00
Tony Crisci
2ff94d0036
xwm: get rid of displayable surfaces list
2017-10-24 18:57:20 -04:00
emersion
e84d573b91
Complete server-decoration implementation
2017-10-24 23:22:27 +02:00
emersion
e521b0404b
Add server-decoration skeleton
2017-10-24 21:56:18 +02:00
Tony Crisci
79e14f65e0
xwm: fix lists
2017-10-24 14:37:18 -04:00
Tony Crisci
a3f2754668
xwm: add surface to rootston on surface commit
2017-10-24 12:00:43 -04:00
Tony Crisci
1dbe314937
Merge branch 'master' into feature/data-device-selection
2017-10-24 07:57:36 -04:00
Tony Crisci
d33a9f8eaa
wlr-seat: keyboard redesign
2017-10-24 07:18:11 -04:00
emersion
eea532911a
Send output current mode when changed
2017-10-23 21:03:00 +02:00
Tony Crisci
d1dd0a6970
refactor buffer detection
2017-10-22 21:07:32 -04:00
emersion
1cc8f21d8e
Cleanup wlr_gamma_control
2017-10-22 23:11:26 +02:00
emersion
e1d213fccd
Create globals only for enabled outputs in DRM backend
2017-10-22 22:21:23 +02:00
Drew DeVault
c5fff08f8a
Forgot to rename these
2017-10-22 10:56:40 -04:00
Drew DeVault
16f35ecbea
Merge branch 'master' into heghe/wl_list
2017-10-21 22:03:48 -04:00
Drew DeVault
169b68b17c
Rename remaining refs to wlr_list
2017-10-21 22:02:36 -04:00
Scott Anderson
822a9f65a4
Add pointer to backend inside wlr_output
2017-10-22 10:36:07 +13:00
Scott Anderson
9b984253e2
Move egl.h to render/egl.h
2017-10-22 10:36:07 +13:00
Tony Crisci
a87b60e31e
Merge branch 'master' into feature/data-device-selection
2017-10-21 09:37:58 -04:00
Heghedus Razvan
d3f0878d71
Replace list_t with wl_list in wlr_wl_backend
...
Now wlr_backend->outputs is a list of wlr_wl_backend_output instead of
wlr_output.
Signed-off-by: Heghedus Razvan <heghedus.razvan@gmail.com>
2017-10-20 19:44:59 +03:00
Tony Crisci
eaed6b6d29
wl-output: send layout position
2017-10-20 07:29:01 -04:00
Heghedus Razvan
e1f196a3e9
Replace list_t with wl_list for wlr_input_device
...
Signed-off-by: Heghedus Razvan <heghedus.razvan@gmail.com>
2017-10-20 11:50:43 +03:00
Heghedus Razvan
1d716241af
Replace list_t with wl_list in wlr_output
...
Signed-off-by: Heghedus Razvan <heghedus.razvan@gmail.com>
2017-10-20 11:46:09 +03:00
Tony Crisci
b7c622a319
Merge branch 'master' into feature/data-device-selection
2017-10-17 16:01:17 -04:00
Drew DeVault
62371a9974
Merge pull request #257 from emersion/fix-client-cursors
...
[WIP] Fix client cursors
2017-10-17 09:22:43 -04:00
Tony Crisci
19784360f1
bug: fix view centering
2017-10-16 14:35:16 -04:00
Tony Crisci
2d35e20691
data-device: keyboard grabs
2017-10-16 07:52:04 -04:00
Tony Crisci
3f3110452c
wlr-seat: pointer state button info
2017-10-16 06:31:53 -04:00
Tony Crisci
34f27ff691
wlr-seat: selection signal
2017-10-16 05:07:09 -04:00
Tony Crisci
02f4acc69f
data-device: refactor set selections for xwayland
2017-10-15 14:49:43 -04:00
Tony Crisci
df0a8d3abe
wlr-data-device: drag icons
2017-10-15 11:06:03 -04:00
Tony Crisci
a1bfa4a2f2
wlr-data-device: basic drag and drop
2017-10-15 05:59:52 -04:00
Tony Crisci
07259cf8ea
wlr-data-device: source actions
2017-10-15 05:59:52 -04:00
Tony Crisci
25831d287e
wlr-data-device: offer set actions
2017-10-15 05:59:52 -04:00
Tony Crisci
3892acecac
wlr-data-device: basic clipboard
2017-10-15 05:59:52 -04:00