Commit graph

846 commits

Author SHA1 Message Date
Drew DeVault
66d4d2928f Remove unnecessary wlr_backend_destroy 2018-01-13 20:29:54 -05:00
Heghedus Razvan
440cf7112d Include idle protocol in rootston
Signed-off-by: Heghedus Razvan <heghedus.razvan@gmail.com>
2018-01-10 14:33:00 +02:00
emersion
e56b82e896
rootston: add toggle_outputs command 2018-01-07 00:37:36 +01:00
emersion
77fc0505e6
rootston: do not attempt to render disabled outputs 2018-01-07 00:30:55 +01:00
Tony Crisci
b40a5f084a keyboard grab enter with modifiers 2018-01-06 11:06:09 -05:00
Tony Crisci
0ef2df21f2 compositor modifier hook 2018-01-05 07:00:50 -05:00
emersion
be3a7b0017
Disable outputs in rootston config 2018-01-04 15:48:28 +01:00
Drew DeVault
b23bd8ea28
Merge pull request #544 from emersion/fix-views-outside-output-layout
Fix views outside output layout
2018-01-01 11:45:08 -05:00
Calvin Lee
5a26ed645a Allow configurable verbosity 2017-12-31 14:50:19 -07:00
emersion
1fe1d64042
Fix views outside output layout 2017-12-31 12:49:06 +01:00
Dominique Martinet
a477e5d302 roots_seat_destroy: also destroy seat in public function
Rework the functions a bit so that the handler does the bulk of the work
except for destroying the seat itself, and the main public function
just explicitely calls the handler and destroys the seat
2017-12-29 20:32:01 +01:00
Dominique Martinet
689004ff21 rootston seat: implement part of roots_seat_destroy
... and have it listen to seat destroy notifier
2017-12-29 19:00:51 +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
Tony Crisci
069f120b70 rootston: remove input event ring buffer 2017-12-27 07:31:53 -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
68328700c7 wl-shell: role committed 2017-12-27 06:32:54 -05:00
Tony Crisci
d5ffa26564 xdg-shell: role-committed func 2017-12-27 06:15:25 -05:00
Tony Crisci
cbd76cb46f
Merge pull request #521 from acrisci/nop-command
add nop command
2017-12-27 05:49:34 -05:00
Björn Esser
57a09c8ca4
config: Put all defines into config.h 2017-12-26 18:51:27 +01:00
Tony Crisci
ebf27f2027 add nop command 2017-12-26 08:41:58 -05:00
Dominique Martinet
e85c2827c8 rootston: add arbitrary libinput config 'tap_enabled'
This ought to be enough to serve as an example for other compositors to
use.
2017-12-24 14:55:38 +01:00
Drew DeVault
eb410e0b6e
Merge pull request #508 from emersion/fix-rootston-seat-button-count
Fix rootston seat button count
2017-12-23 11:30:30 -08:00
emersion
a95d09d561
Add missing gtk-primary-selection interfaces 2017-12-22 22:22:29 +01:00
emersion
9e2d936b4a
Fix rootston seat button count 2017-12-22 15:06:12 +01:00
Tony Crisci
9871cde604 rootston: server backend check 2017-12-21 18:27:38 -05:00
Tony Crisci
ee39dff1e7 rootston: handle backend creation failed 2017-12-20 05:51:23 -05:00
emersion
4a36ba4bdd
Destroy multi backend on display destroy 2017-12-19 18:28:47 +01:00
Tony Crisci
c838679393 fix memory leaks 2017-12-18 14:53:24 -05:00
Drew DeVault
c91523c578
Merge pull request #499 from emersion/unknown-keymap
Do not segfault when loading an unknown keymap
2017-12-18 09:17:39 -05:00
emersion
2c31cac116
Do not segfault when loading an unknown keymap 2017-12-18 15:11:05 +01:00
emersion
db73c54f11
rootston: revert to auto backend 2017-12-18 10:10:23 +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
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
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
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
emersion
925497fbea
Set default cursor image in rootston 2017-12-11 10:36:22 +01:00
Tony Crisci
b275d44bc3 rootston xcursor fixes 2017-12-09 12:10:09 -05: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
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
91d72040e5
Configure outputs with make, model, serial in rootston
Added fallbacks in DRM backend in case EDID extension data for model and serial is missing.

Updates #403
2017-12-07 13:59:19 +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
20545b09fa rootston: use wl-shell surface commit 2017-12-03 13:02:02 -05:00
emersion
eb763439f7
optimize a bit rootston renderer if there's no surface transform 2017-12-01 16:20:09 +01:00
emersion
d1b29a54b9
Refactor: rename matrices in rootston 2017-12-01 16:13:24 +01:00
emersion
acc8f36894
Fix pointer input for transformed surfaces 2017-12-01 16:08:01 +01:00
emersion
f4754ad1a2
Fix surface transforms 2017-11-30 23:58:12 +01:00
Tony Crisci
5d7eb438d9
Merge pull request #437 from emersion/fullscreen
Fullscreen support
2017-11-30 03:25:05 -05:00
Tony Crisci
903ba1c9b3 rootston: maximize command 2017-11-22 15:33:17 -05: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
3262661e1e
Fix HiDPI support 2017-11-21 20:58:15 +01: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
9a6f799d8f
Add fullscreen command, fix view_at with fullscreen views 2017-11-21 10:37:53 +01:00
emersion
9e29621ec3
Always center fullscreen view on screen 2017-11-21 10:14:50 +01:00
emersion
17d9e2ce35
Unify view events naming, remove client from event structs 2017-11-21 09:50:00 +01:00
emersion
5a8bbc6203
Fix GCC build 2017-11-20 20:54:54 +01:00
emersion
54f1135c05
Fix fullscreen in xdg-shell 2017-11-20 20:53:13 +01:00
emersion
a7a221698e
Merge branch 'master' into fullscreen 2017-11-20 19:47:27 +01:00
emersion
abab2902f5
Check for subsurfaces and popups before using wlr_output_set_fullscreen_surface 2017-11-20 19:45:10 +01:00
emersion
6a06c3d907
Fix segfault when closing xwayland views 2017-11-20 18:05:24 +01:00
emersion
80998cdf57
Add support for fullscreen xwayland views 2017-11-20 17:58:26 +01:00
emersion
b04a9a248d
Initial fullscreen support 2017-11-20 17:27:36 +01:00
emersion
1d08d31709
Merge branch 'master' into laggy-move-resize 2017-11-20 14:35:31 +01:00
Tony Crisci
4d6b3618b8 rootston: remove unmapped surface from desktop 2017-11-20 07:40:22 -05:00
emersion
272e0858e4
Fix laggy move-resize for wl-shell views 2017-11-20 12:16:10 +01:00
emersion
0153a0ed8f
Fix laggy move-resize for xwayland views 2017-11-20 12:05:21 +01:00
emersion
ac6385689f
Set min view size to 1x1 2017-11-20 11:10:43 +01:00
emersion
c0e2dc6f78
Update view position for previous configure_ack too 2017-11-19 22:55:44 +01:00
emersion
7904b625f0
Merge branch 'master' into laggy-move-resize 2017-11-19 22:28:51 +01:00
emersion
0191f3f711
Improve roots_seat_cycle_focus 2017-11-19 21:54:11 +01:00
emersion
9687950de1
Raise the view on the desktop even if already focused in the seat 2017-11-19 19:30:48 +01:00
emersion
97ddd2d1df
Add roots_seat_cycle_focus 2017-11-19 19:21:18 +01:00
emersion
bf41e7a794
Make the close command use roots_seat_get_focus, rename a few symbols 2017-11-19 19:14:31 +01:00
emersion
a8b31da52c
Remove roots_seat_{add,remove}_view 2017-11-19 18:15:11 +01:00
emersion
76e8e1a6ad
Merge branch 'master' into seat-views 2017-11-19 17:56:26 +01:00
Tony Crisci
bd8cdf1e9f rootston: remove grab listeners 2017-11-19 10:20:32 -05:00
Tony Crisci
390b526450 Merge branch 'bug/xwayland-ready-listener' into refactor/wlr-drag-icon 2017-11-19 10:11:39 -05:00
Tony Crisci
90d2eca218 rootston: xwayland ready listener 2017-11-19 10:07:30 -05:00
Tony Crisci
3b74db467b data-device: wlr-drag-icon 2017-11-19 09:33:55 -05:00
emersion
72d877658a
Merge branch 'master' into seat-views 2017-11-18 22:18:25 +01:00
Tony Crisci
f17c3947ea rootston: seat/cursor 80col cleanup 2017-11-18 14:03:31 -05:00
Tony Crisci
f277f28eef Merge branch 'master' into feature/wlr-seat-touch 2017-11-18 13:43:25 -05:00
emersion
5b13f51dfc
Add per-seat cursor configuration 2017-11-18 17:34:24 +01:00
emersion
cd566ccd8e
Add cursor theme to rootston config 2017-11-18 09:47:53 +01:00
emersion
7375931686
Fix typo making GCC build fail 2017-11-18 09:15:48 +01:00
emersion
8693bbd6b1
Update view coords when no configure is required 2017-11-18 09:13:31 +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
emersion
27937add76
Merge branch 'master' into laggy-move-resize 2017-11-17 23:29:47 +01:00
emersion
632759a499
Fix segfault when xwayland is disabled 2017-11-17 15:28:22 +01:00
emersion
1523082d5d
Remove outdated comment 2017-11-17 12:47:30 +01:00
emersion
bb6d34e7a5
rootston: add per-seat views 2017-11-17 12:45:07 +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
584ff1df4c Merge branch 'master' into feature/wlr-seat-touch 2017-11-16 16:19:17 -05:00
emersion
a52ca9482a
Various keyboard fixes
* Ensure keysyms state is always updated
* Check if pressed keysyms are exactly the binding keysyms
* Do not include modifiers in list of keysyms, these are special cases
2017-11-16 18:58:33 +01:00
emersion
e674266b44
Fix example config file 2017-11-16 16:34:39 +01:00
emersion
53d4cb47ff
Refactor rootston keyboard 2017-11-16 16:13:23 +01:00
emersion
bb79ada49f
Fix a bunch of mistakes detected with scan-build 2017-11-16 10:30:54 +01: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
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
bb973ff27d
Remove remaining buffer_{width,height} usage 2017-11-14 21:18:34 +01:00
emersion
2f44140f4a
Don't use buffer size 2017-11-14 15:33:29 +01:00
emersion
94b20da3ce
Fix popups position for rotated views 2017-11-14 10:20:20 +01:00
emersion
f8b43940b1
Merge branch 'master' into cursor-scale 2017-11-12 22:12:50 +01:00
emersion
2e312a7e27
Fix hidden cursor when output is added before cursor 2017-11-12 22:11:17 +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
51ef12f128
Merge pull request #416 from acrisci/bug/set-keyboard-on-add
rootston: set keyboard for seat on keyboard add
2017-11-12 13:47:55 -05:00
Tony Crisci
a69381ef0c rootston: set keyboard on keyboard add 2017-11-12 12:15:39 -05:00
Drew DeVault
38e14de240
Merge pull request #414 from emersion/fix-hidpi-rotated-input
Fix rotated views on HiDPI outputs
2017-11-12 09:56:13 -05:00
Drew DeVault
1e0e73efaa Spawn views on last active output 2017-11-12 09:55:28 -05:00
emersion
5d986f1e87
Remove unnecessary include 2017-11-12 15:49:27 +01:00
emersion
454bea678b
Fix rendering of rotated views on HiDPI outputs 2017-11-12 12:54:45 +01:00
emersion
0b3f83d93a
Fix pointer input for rotated views on HiDPI outputs 2017-11-12 12:38:08 +01:00
emersion
8605243459
Introduce wlr_xcursor_manager 2017-11-12 11:10:56 +01:00
emersion
2dccb11741
rootston: keep one xcursor_theme per seat 2017-11-11 23:53:45 +01:00
emersion
09279b90a6
Add wlr_output.serial 2017-11-11 19:09:34 +01:00
emersion
aaf0691883
rootston: add roots_xcursor_theme
roots_xcursor_theme loads multiple wlr_xcursor_theme at different scales.
2017-11-11 18:42:14 +01:00
emersion
ac1573b0e7
Add scale parameter to wlr_cursor_set_image 2017-11-11 17:27:44 +01:00
Tony Crisci
7072ac87fd rootston: config.c 80 col 2017-11-11 10:59:50 -05:00
Tony Crisci
1db3b55128 rootston: prefix config structs and functions 2017-11-11 10:59:04 -05:00
Tony Crisci
4ccadf713b rootston: fix formatting for xwayland config 2017-11-11 10:40:56 -05:00
Tony Crisci
2a9dc60f28 Merge branch 'master' into feature/multiseat 2017-11-11 09:59:39 -05:00
emersion
eb89f1dcd2
Fix resize issues with some xdg-shell apps.
Also renames view_get_size to view_get_box to be more consistent with wlroots API and make it more obvious that x,y are set (while in roots_view.get_size this isn't the case).
Fixes #407
2017-11-11 15:39:15 +01:00
Tony Crisci
27a3a810ab rootston: fix multiseat focus 2017-11-10 08:27:45 -05: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
aafb00a15f Fix centering views on scaled outputs 2017-11-10 08:21:23 -05:00
Tony Crisci
1472dbda74 rootston: roots_keyboard null check 2017-11-09 18:32:54 -05:00
Tony Crisci
d6513cef5d rootston: add missing properties to kb config merge 2017-11-09 17:47:59 -05: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
0204f811b4
Remove xwayland view listeners on destroy 2017-11-09 20:08:43 +01:00
emersion
26dadacb71
Add wl_shell support for maximized views 2017-11-09 20:06:05 +01:00
Drew DeVault
75fd9b8426 Remove extraneous keyboard send_enter 2017-11-09 08:40:15 -05:00
Drew DeVault
66587eb430 Merge remote-tracking branch 'origin/master' into hidpi 2017-11-09 08:36:27 -05:00
emersion
758514fe5d
Fix xwayland _NET_WM_STATE handling 2017-11-09 11:21:55 +01:00
Tony Crisci
c680ace5e8 rootston: remove old cursor implementation 2017-11-08 20:25:02 -05:00
Tony Crisci
79f5bd6ef8 Merge branch 'master' into feature/multiseat 2017-11-08 20:21:59 -05:00
emersion
2118c691b1
Add maximize support for xwayland in rootston 2017-11-08 23:03:07 +01:00
emersion
4df8be1a8f
Better UX when moving/resizing/rotating maximized views 2017-11-08 22:25:06 +01:00
Tony Crisci
06642859f1 rootston: drag icons 2017-11-08 15:35:47 -05:00
Tony Crisci
428bf18ec7 rootston: request set cursor 2017-11-08 15:23:56 -05:00
Tony Crisci
992f931ae9 rootston: cleanup for multiseat 2017-11-08 14:53:08 -05:00
emersion
882e620639
Always read state from wlr_keyboard in the seat 2017-11-08 19:02:56 +01:00
Tony Crisci
a00b7f1e9b rootston: remove devices from seat 2017-11-08 09:04:33 -05:00
Tony Crisci
eb3c367c63 rootston: seat resize and rotate 2017-11-08 08:35:27 -05:00
Tony Crisci
fc09f90462 rootston: guess seat for xwayland moveresize 2017-11-08 08:19:23 -05:00
Tony Crisci
86b86f0714 rootston: multiple activated views 2017-11-07 16:42:04 -05:00
Tony Crisci
fc6c3310e8 rootston: log seat name 2017-11-07 16:32:14 -05:00
Tony Crisci
5ac05b0c47 rootston: input remove stubs 2017-11-07 16:24:21 -05:00
Tony Crisci
09c6092423 multiseat: somewhat working 2017-11-07 15:56:11 -05:00
Drew DeVault
f678775953
Merge pull request #394 from Ongy/xkb_fix
Fix #393
2017-11-07 11:34:28 -05:00
Markus Ongyerth
23991861a4 works in review comments 2017-11-07 16:50:34 +01:00
Markus Ongyerth
8ca76ff7f2 explains 2 way keybind trying. 2017-11-07 12:55:19 +01:00
Markus Ongyerth
c88990d2c2 fix the keybind handling in rootston.
As mentioned in https://github.com/swaywm/wlroots/issues/393 keybinds
did't trigger / were checked with "odd" keys and modifiers.

This commit sends the keycode through two paths, one to get the keycode
and modifiers *after* xkb handles them, a secondary path to get a "raw"
keysym without modifiers and then add the modifiers rootston knows
about.

This will result in the `[Alt]+[Shift]+2` combination I mention earlier
going through the keybind detection twice.
  1) `[Alt]+[at]`
  2) `[Alt]+[Shift]+2`

When either combination is found, the appropriate keybind is executed.
The xkb handled version will be prefered over the "raw" version.
2017-11-07 12:48:44 +01:00
emersion
03d3fdc158
Basic maximization implementation for xdg-shell 2017-11-05 16:29:43 +01:00
Tony Crisci
2280928bb2 rootston: roots_cursor 2017-11-05 09:20:11 -05:00
Tony Crisci
b74c4cf974 Merge branch 'master' into feature/multiseat 2017-11-05 08:09:45 -05:00
emersion
3e3209cba2
Fix laggy move-resize in xdg-shell 2017-11-05 10:22:42 +01:00
Tony Crisci
704f0f158a rootston: move device init to seat 2017-11-04 13:12:35 -04: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
emersion
cf713edc10
Fix moving views when resizing below min size 2017-11-03 14:49:15 +01:00
Tony Crisci
9bd0f47efd rootston: refactor keyboard 2017-11-03 06:21:24 -04:00
Tony Crisci
447c561d15 rootston: seat config by device 2017-11-03 06:08:37 -04:00
Drew DeVault
86b8729998 Merge remote-tracking branch 'origin/master' into hidpi 2017-11-02 23:34:02 -04:00
Drew DeVault
975b9dc365 Fix view centering on HiDPI outputs 2017-11-02 23:33:06 -04:00
Drew DeVault
ca8cf7d48d Rethink HiDPI output layouts, fixes everything
Except for subsurfaces not rendering at the right scale. But that part
is (somewhat) easy.
2017-11-02 23:17:39 -04:00
Tony Crisci
53021f8ed4 rootston: break up input.h 2017-11-02 20:31:19 -04:00
emersion
3f4ad47421
Use compositor theme for xwm cursor 2017-11-02 16:49:22 +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
ed74f473d6 Fix various rebase-related bugs 2017-11-01 08:57:30 -04:00
Drew DeVault
7f76f46318 Adjust rendering to compensate for disparate scale
Something about my math is off, but I'm not certain what. Would
appreciate a second opinion.
2017-11-01 08:51:59 -04:00
Drew DeVault
bafb970871 View view_at (and pointer events) for hidpi 2017-11-01 08:51:59 -04:00
Drew DeVault
a6930cd8ea Handle output enter/leave correctly 2017-11-01 08:51:59 -04:00
Drew DeVault
9861add146 Send surface enter output events to clients 2017-11-01 08:50:33 -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
Dominique Martinet
46c80fa51e rootston: fix startup with no config
Would choke on NULL name on strcmp later on:
 #0  0x00007ffff6e0ad4a in __strcmp_sse2_unaligned () at /usr/lib/libc.so.6
 #1  0x00005555555593d2 in config_get_keyboard (config=0x555555774f80, device=0x555555775768) at ../rootston/config.c:443
 #2  0x000055555555d7e3 in keyboard_add (device=0x555555775768, input=0x555555e96d70) at ../rootston/keyboard.c:206
 #3  0x000055555555ca39 in input_add_notify (listener=0x555555e96fa8, data=0x555555775768) at ../rootston/input.c:34
 #4  0x00007ffff7ba2b80 in wl_signal_emit (signal=0x5555557754f8, data=0x555555775768) at /usr/include/wayland-server-core.h:388
 #5  0x00007ffff7ba37e0 in wlr_x11_backend_start (backend=0x5555557754f0) at ../backend/x11/backend.c:286
 #6  0x00007ffff7b9372d in wlr_backend_start (backend=0x5555557754f0) at ../backend/backend.c:29
 #7  0x000055555555dcc0 in main (argc=1, argv=0x7fffffffe408) at ../rootston/main.c:39
2017-11-01 11:45:02 +01:00
Tony Crisci
c7c0d34e92
Merge pull request #352 from emersion/output-cursor
Add wlr_output_cursor
2017-10-31 17:58:28 -04:00
Tony Crisci
e5b49158b4 rootston: end grab on escape 2017-10-31 08:38:21 -04:00
emersion
ae9a46fc9b
Remove outdated TODOs, use wlr_surface_has_buffer 2017-10-31 12:30:57 +01:00
emersion
044173d1df
Add multi-pointer example 2017-10-31 12:30:57 +01:00
emersion
c3b09f73da
Fix cursor hotspot with rotated outputs on DRM backend 2017-10-31 12:30:57 +01:00
emersion
4230a577cc
Remove wlr_cursor_set_xcursor for now 2017-10-31 12:30:56 +01:00
emersion
c45f2eef0e
Fix rootston 2017-10-31 12:30:06 +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
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
Valentin Hăloiu
34dcb083ca
Fix resize bounds check in rootson 2017-10-30 00:12:17 +01:00
Tony Crisci
c01248cf17 Merge branch 'master' into feature/xwm-rewrite 2017-10-29 10:43:10 -04:00
Drew DeVault
50e86a0efa Allow configuring output mode in rootston
Fixes #336
2017-10-28 15:32:08 -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
emersion
fb0c9a356e
Enforce resize bounds in rootston 2017-10-28 11:58:34 +02:00
Tony Crisci
c555a66dda Merge branch 'master' into feature/xwm-rewrite 2017-10-27 15:22:00 -04:00
emersion
2718b57180
Force resize for all edges in rootston 2017-10-27 20:36:25 +02:00
Drew DeVault
9f1ed70b81
Merge pull request #344 from emersion/compositor-action-cursors
Set compositor cursor for move, resize and rotate
2017-10-27 13:42:53 -04:00
emersion
315c01ba0f
Remove input.last_active_view 2017-10-27 19:21:26 +02:00
emersion
ec5beeb8b8
Move xcursor stuff into its own file 2017-10-27 19:09:38 +02:00
emersion
ad27cc3bff
Set compositor cursor for move, resize and rotate 2017-10-27 18:41:31 +02:00
Tony Crisci
6a4290b86a xwm: moveresize events 2017-10-27 10:48:09 -04:00
Drew DeVault
4bee96bd30 Merge pull request #333 from emersion/server-decoration
Add server-decoration protocol
2017-10-27 09:28:25 -04:00
emersion
a43acae000
Send server-decoration ack event automatically 2017-10-27 00:02:30 +02:00
emersion
882bda0664
Rename default keyboard section 2017-10-26 23:02:24 +02:00
emersion
c0c4816b13
Fix fallback when there are two config blocks for a keyboard 2017-10-26 22:38:03 +02:00
emersion
4e5d23daa9
Per-keyboard configuration 2017-10-26 19:59:32 +02:00
Tony Crisci
7914f4bda9 xwm: dont focus override redirect windows 2017-10-25 20:40:55 -04:00
emersion
7c85709de1
Focus last view on close in rootston 2017-10-25 20:34:40 +02: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
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
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
Alexander Taylor
844f4387c7 Fixed default keybinding in config.c 2017-10-21 23:17:39 +01:00
Drew DeVault
1367ecc309 Merge pull request #309 from inclement/fix_rootston_default_config
Changed broken example rootston keybinding
2017-10-21 18:12:52 -04:00
Alexander Taylor
b5ed6dd6fc Changed broken default rootston keybinding 2017-10-21 23:05:55 +01:00
Tony Crisci
6fcac087fe rootston: remove mostly unused mapped icon param 2017-10-21 09:59:35 -04:00
Tony Crisci
3c7ef3aae6 Merge branch 'master' into feature/data-device-selection 2017-10-21 09:43:24 -04:00
Drew DeVault
ce2f945441 Merge pull request #303 from emersion/wl-signal-no-list-init
Remove wl_list_init when using wl_signal_add
2017-10-21 09:40:18 -04:00
Tony Crisci
a87b60e31e Merge branch 'master' into feature/data-device-selection 2017-10-21 09:37:58 -04:00
Alexander Taylor
613c792901 Moved comments in rootston keybinding example config
The comment strings are not stripped so the commands are not currently
recognised.
2017-10-21 14:31:54 +01:00
emersion
f2c4b80620
Remove calls to assert to check runtime errors in rootston 2017-10-21 13:25:39 +02:00
emersion
c8570d0e42
Remove wl_list_init when using wl_signal_add 2017-10-21 12:35:51 +02:00
Drew DeVault
1782d5e7b7 Implement simple touch support for rootston 2017-10-20 23:19:41 -04:00
D.B
8c759d7abe Add startup command option to rootston
Allows specifying a command to run at startup.
2017-10-20 17:49:04 +02: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
169bc216ed rootston: view set position 2017-10-19 12:33:02 -04:00
emersion
f874c3d585
Add a default meta key 2017-10-18 22:46:52 +02:00
Tony Crisci
c00a94ca76 data-device: fix drag icon position 2017-10-17 17:21:11 -04: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
b8de0a29b4 rootston: handle icon already being in the list 2017-10-16 08:00:01 -04:00
Tony Crisci
df0a8d3abe wlr-data-device: drag icons 2017-10-15 11:06:03 -04:00
Tony Crisci
6a7560fae0 wlr-data-device interface 2017-10-15 05:59:52 -04:00
emersion
8fd4ae5de8
Fix cursor role name, fix segfault when surface->resource is NULL 2017-10-14 12:21:36 +02:00
Versus Void
96079ff897 Move binding parsing to separate function 2017-10-12 22:21:43 +00:00
Versus Void
db3368ba43 New binding to switch windows 2017-10-12 22:21:35 +00:00
emersion
29abf93bb6
Check pointer focused surface instead of view at cursor 2017-10-12 14:28:37 +02:00
Drew DeVault
bf5299a3a5 Merge pull request #252 from myfreeweb/freebsd-compat
Add FreeBSD compatibility
2017-10-11 08:54:28 -04:00
Greg V
a5fe9aa736 Add FreeBSD compatibility 2017-10-11 00:07:21 +03:00
Tony Crisci
f7e7f6271d wl-shell: cleanup 2017-10-10 11:13:11 -04:00
Tony Crisci
fe3c6c929b wl-shell: popup input handling 2017-10-10 10:00:09 -04:00
Tony Crisci
d4c065e59b wl_shell: map transient surfaces closer to parent 2017-10-10 08:39:08 -04:00
Tony Crisci
cd1204f71f wl-shell: render popups in the right place 2017-10-10 08:39:08 -04:00
Versus Void
a6db47196c Upload texture on surface commit 2017-10-10 11:18:38 +03:00
Drew DeVault
c39bfe7f84 Merge pull request #206 from emersion/client-cursor
Client provided cursors
2017-10-09 17:56:05 -04:00
Tony Crisci
654e2ccd6b move surface finder functions to wlroots 2017-10-09 16:51:55 -04:00
Drew DeVault
d0d6413772 Merge pull request #220 from versusvoid/optional-xwayland
Make Xwayland optional
2017-10-09 08:09:03 -04:00
emersion
8492174088
Switch back to compositor cursor when switching from one view to another 2017-10-09 13:12:38 +02:00
emersion
f44c44502d
Check client is focused before setting client cursor 2017-10-09 13:06:53 +02:00
emersion
4d157fe5de
Switch back to compositor cursor when leaving view 2017-10-09 12:51:28 +02:00
emersion
8a77d1b6a2
Listen to cursor surface commit & destroy events 2017-10-08 23:11:59 +02:00
emersion
9b83caa658
Add wlr_output_set_cursor_surface 2017-10-08 21:21:06 +02:00
emersion
65d57920e5
rootston: handle request_set_cursor 2017-10-08 20:37:47 +02:00
emersion
7b6d785f52
Rename wlr_surface->signals to events 2017-10-08 19:12:28 +02:00
Drew DeVault
74d31983b5 Center views on focused output 2017-10-08 13:02:08 -04:00
Drew DeVault
82a6598ca7 Merge pull request #243 from acrisci/feature/input-bounds
Use wl_surface input bounds for input handling
2017-10-08 12:52:53 -04:00
Drew DeVault
8dcf3bfdf7 Merge pull request #239 from emersion/center-views
Center views in rootston
2017-10-08 12:51:42 -04:00
Tony Crisci
db15ab77b4 use input bounds for pointer events 2017-10-08 12:33:39 -04:00
emersion
b72da6cc44
Only center toplevel xdg shell views 2017-10-08 18:21:39 +02:00
emersion
518ef46ef2
Activate new views 2017-10-08 18:19:05 +02:00
emersion
e66e18f4de
Only center toplevel wl_shell views 2017-10-08 18:02:11 +02:00
emersion
3774d6c2c0
Center wl shell views 2017-10-08 17:59:38 +02:00
emersion
3c6f2f29bf
Do not remove the commit listener 2017-10-08 17:28:19 +02:00
Drew DeVault
9e1ff2dce9 Merge pull request #140 from emersion/screenshooter
Add screenshooter
2017-10-08 10:06:41 -04:00
emersion
d09d01236b
Center xdg shell views 2017-10-08 12:17:25 +02:00
emersion
0ce3135304
Move read_pixels from output to renderer 2017-10-08 02:11:56 +02:00
Drew DeVault
543601e86c Merge pull request #183 from acrisci/feature/xdg-popup
xdg-popup
2017-10-07 17:40:46 -04:00
Tony Crisci
117586c872 bug: fix a subsurface location calculation 2017-10-07 16:53:10 -04:00
Tony Crisci
4f848000af Merge branch 'master' into feature/xdg-popup 2017-10-07 13:04:04 -04:00
Tony Crisci
4680943e74 xdg-seat: keyboard grabs 2017-10-07 12:52:02 -04:00
emersion
05096ab458
rootston: create screenshooter interface 2017-10-07 16:22:03 +02:00
Versus Void
9cab66f0f9 Make xwayland compile-time optional 2017-10-06 21:50:25 +00:00
Versus Void
decd87043f Add config option to disable Xwayland 2017-10-06 21:48:50 +00:00
emersion
f402598ee1
Match default keybindings with sway's 2017-10-06 17:10:24 +02:00
emersion
fbca280949
Unset input->active_view when view is destroyed 2017-10-06 16:51:16 +02:00
emersion
b21f783c34
Disconnect wl_shell clients when closing 2017-10-06 16:44:55 +02:00
emersion
ecc0f712af
Update rootston.ini.example 2017-10-06 16:09:43 +02:00
emersion
69aff9b35e
Implement wlr_xdg_toplevel_v6_send_close 2017-10-06 16:03:35 +02:00
emersion
972e9dbd1b
Add close command, add close for xwayland 2017-10-06 16:03:35 +02:00
emersion
8ff548cdba
Require exec prefix to execute shell commands 2017-10-06 16:02:40 +02:00
Drew DeVault
6aafc2f61a Merge pull request #223 from versusvoid/xwayland-activate
Activate only active xwayland views
2017-10-06 09:34:48 -04:00
Drew DeVault
528f000a7a Deactivate xwayland when focus leaves there 2017-10-06 09:34:22 -04:00
Tony Crisci
48ae4fc588 rootston: handle grab end 2017-10-06 07:32:59 -04:00
Tony Crisci
4657f10dd2 Merge branch 'master' into feature/xdg-popup 2017-10-06 07:04:27 -04:00
Versus Void
4d7ff3cb48 Activate only active xwayland views
Fix #217
2017-10-06 13:57:25 +03:00
Versus Void
641d08ce7e Transform hotspot with cursor
Fix #188
2017-10-06 09:07:08 +03:00
Drew DeVault
7d57c1463d Fix #210 2017-10-05 14:55:55 -04:00
Versus Void
1b1346462e Fix focusing null view 2017-10-05 21:32:49 +00:00
Tony Crisci
9bf03e1a71 bug: use milisecond granularity for time events 2017-10-05 14:25:56 -04:00
Tony Crisci
17b134e178 wlr-seat: pointer grab interface 2017-10-05 13:30:46 -04:00
Drew DeVault
d74a6d254f Merge pull request #198 from emersion/rootston-move-resize-rotate
rootston: force move, resize and rotate
2017-10-05 13:12:29 -04:00
Versus Void
c5df6ca900 Fix memory leaks 2017-10-05 20:01:56 +00:00
emersion
1a775adbde
rootston: fix rotated subsurfaces 2017-10-04 23:05:57 +02:00
emersion
3b226ba81a
rootston: rotation by steps 2017-10-04 22:01:54 +02:00
emersion
09a6d863cf
rootston: fix cursor coordinates for rotated subsurfaces 2017-10-04 21:17:16 +02:00
emersion
dd07618727
rootston: rotate cursor coordinates 2017-10-04 21:05:00 +02:00
Tony Crisci
30eabf38b8 Merge branch 'master' into feature/xdg-popup 2017-10-03 18:58:38 -04:00
emersion
f9dbc1841d
rootston: add meta-key to config file 2017-10-03 22:14:25 +02:00
Tony Crisci
4c9807d3a6 rootston-desktop: popup input handling 2017-10-03 15:57:43 -04:00
Tony Crisci
f9379f9a46 rootston-desktop: use window geometry for input bounds 2017-10-03 15:57:22 -04:00
emersion
9b88f25208
rootston: rotate views! 2017-10-03 21:06:32 +02:00
emersion
a40d38798c
rootston: force move and resize 2017-10-03 19:14:36 +02:00
Drew DeVault
eadda29e84 Set WAYLAND_DISPLAY in rootston environment
Duh
2017-10-03 10:35:54 -04:00
emersion
d71344bcdd
Fix modifiers support with backend != wayland 2017-10-03 09:15:48 +02:00
emersion
d3d9aca40c
Add modifiers support in wayland backend, parse modifiers in rootston config 2017-10-03 08:46:11 +02:00
emersion
eb0b315c6c
exec command if it's not exit 2017-10-03 08:46:10 +02:00
emersion
c686699817
Free config->bindings 2017-10-03 08:46:10 +02:00
emersion
517a709cdd
Bind logo+q when no config file is specified 2017-10-03 08:46:10 +02:00
emersion
238ded1578
Use a command string rather than an action enum 2017-10-03 08:46:10 +02:00
emersion
97d0fe8976
Parse bindings in config, execute bindings 2017-10-03 08:46:10 +02:00
emersion
d32018f1ac
Use keysyms instead of keycodes 2017-10-03 08:46:10 +02:00
emersion
ab6c1f88e6
Add keyboard state to rootston 2017-10-03 08:46:09 +02:00
Tony Crisci
e003296c23 xdg-popup: render popups in the right place 2017-10-02 19:10:36 -04:00
Versus Void
e88f3887ca Move wlr-example.ini.example to rootston.ini.example and reference it from examples' config parser 2017-10-02 16:17:34 +00:00
Drew DeVault
aa8a4f12b7 Fix keyboard handling in examples 2017-10-01 11:35:22 -04:00
Drew DeVault
6241ac41d5 Forgot that file :/ 2017-10-01 11:24:11 -04:00
Drew DeVault
f2ea691b93 Add basic drawing tablet support to rootston 2017-10-01 11:21:55 -04:00
Drew DeVault
a471ed3ed0 Reverse loop in view_at
Looks for the top-most view now.
2017-09-30 14:43:24 -04:00
Drew DeVault
bfb6914cdf Merge pull request #160 from acrisci/feature/subcompositor
Subcompositor
2017-09-30 14:31:57 -04:00
Drew DeVault
e3438233f1 Merge pull request #179 from emersion/wl-shell-resize
rootston: add resize support for wl_shell
2017-09-30 13:45:42 -04:00
emersion
ce7d1faf36
Fix segfault in handle_request_resize 2017-09-30 19:38:31 +02:00
Tony Crisci
8f41c497a7 Merge branch 'master' into feature/subcompositor 2017-09-30 13:29:31 -04:00
Tony Crisci
4c1bd9bde8 input events for subsurfaces 2017-09-30 12:59:45 -04:00
emersion
ce270fd73e
Add resize support for wl_shell 2017-09-30 16:43:48 +02:00
emersion
7f5d0624d6
Add x, y, width, height arguments to wlr_xwayland_surface_configure 2017-09-30 16:33:04 +02:00
Tony Crisci
8c2e1ed3e6 rootston: render subsurfaces 2017-09-30 10:09:16 -04:00
emersion
e19b39b66b
Add view->resize for xwayland 2017-09-30 16:05:18 +02:00
Drew DeVault
40303b7a09 Merge pull request #175 from emersion/xdg-shell-resize
rootston: add xdg shell resize support
2017-09-30 09:12:20 -04:00
Tony Crisci
2e8543cac0 update rootston for surface changes 2017-09-30 08:55:40 -04:00
Tony Crisci
23e7411442 rootston: create desktop before input 2017-09-30 08:46:18 -04:00
emersion
74f2d0cd63
Completely fix resize offset 2017-09-30 14:02:09 +02:00
emersion
77d28183b5
Partially fix resize offset 2017-09-30 13:54:51 +02:00
emersion
28d4b475dc
Add edges support, remove get_input_bounds 2017-09-30 13:22:42 +02:00
emersion
33a97576ca
Add view_resize 2017-09-30 11:57:39 +02:00
emersion
97679b8e12
React to xdg shell resize requests 2017-09-30 10:39:06 +02:00
emersion
97346e7a1b
xwayland: add state support 2017-09-29 22:26:03 +02:00
emersion
98707c16ad
Code style 2017-09-29 20:44:00 +02:00
emersion
d8c86431e0
xwayland: add signals for configure, set_{class,title} 2017-09-29 18:28:38 +02:00
Drew DeVault
ada7fde6fb DRY up focus and implement z ordering 2017-09-28 19:48:55 -04:00
Drew DeVault
10240af6ea Handle input device removal 2017-09-28 19:05:38 -04:00
emersion
b7927078e9
x11 -> xwayland, window -> surface, fix some calloc sizes and wrong types 2017-09-28 23:26:31 +02:00
Drew DeVault
c92199a953 Merge pull request #163 from emersion/wl_shell-fixes
wl_shell fixes
2017-09-28 13:29:49 -04:00
Drew DeVault
220a6e9bf6 Add xwayland activate and fix EGL bug 2017-09-28 09:11:16 -04:00
Drew DeVault
906a816abf Fix rootston keyboard, add Xwayland 2017-09-28 08:54:57 -04:00
emersion
55d2462180
Remove ping_timer when destroying wlr_wl_shell_surface 2017-09-28 13:34:22 +02:00
emersion
d41a4a0bae
wl_shell: gluten-free cosmetic variable renaming 2017-09-28 01:02:30 +02:00
emersion
dd9c15c69e
rootston: no need to implement get_input_bounds and activate for wl_shell views 2017-09-28 00:58:41 +02:00
emersion
63f277f3b9
rootston: handle request_move 2017-09-28 00:29:37 +02:00
emersion
d6c6b7c506
class_ -> class, free more stuff in destroy_shell_surface 2017-09-27 23:47:39 +02:00
emersion
663bfe4cd8
wlr_wl_shell: implement all requests except set_popup 2017-09-27 21:15:31 +02:00
emersion
e001e40022
Set view->surface 2017-09-27 15:03:35 +02:00
emersion
acf58e04de
Fix segfault, add wl_shell view 2017-09-27 14:48:53 +02:00
emersion
ed9a43c213
Add first try to add wl_shell to rootston 2017-09-26 23:59:25 +02:00
Drew DeVault
b84d59403f Initial keyboard support in rootston 2017-09-23 18:32:03 -04:00
Drew DeVault
0ca7932c3f Implement xdg surface request_move 2017-09-23 18:18:19 -04:00
Drew DeVault
96b401c05d Implement tool tip -> click simulation 2017-09-23 17:52:21 -04:00
Drew DeVault
eaf6c0ccf4 Implement pointer motion and buttons 2017-09-23 17:48:13 -04:00
Drew DeVault
5b92d4fecf Fix rootston executable name 2017-09-23 14:56:09 -04:00
Drew DeVault
57c50c78f0 Implement wlr_cursor in rootston 2017-09-23 14:53:15 -04:00
Drew DeVault
e81e99d16d Render XDG shell surfaces 2017-09-23 11:13:18 -04:00
Drew DeVault
7523de7c61 Wire up pointer, start on cursor 2017-09-23 10:36:32 -04:00
Drew DeVault
0699aa62d8 Initial pass on roots_input 2017-09-23 10:13:05 -04:00
Drew DeVault
b6d7c3ed8e Initialize display, backend; add frame handling 2017-09-23 00:30:39 -04:00
Drew DeVault
550748681d Establish rootston headers & main 2017-09-22 23:30:40 -04:00