Guido Cella
0bb25a73ec
extract function and comment it
2020-09-11 14:52:59 +02:00
Guido Cella
e4d58c39e0
remove braces
2020-09-11 13:15:31 +02:00
Guido Cella
fbd905155a
fix multi monitors even more
...
When a monitor is created or removed, the geometries of the old ones
must be updated. This is also more efficient than before since we
calculate the monitor geometries only when creating and destroying
monitors. arrangelayers() is needed to recalculate m->w. arrange() is so
clients don't move to the left monitor when plugging or unplugging
monitors (clients keep the same coordinates but the field below them
changes).
2020-09-11 13:09:18 +02:00
Guido Cella
8f0ce672d3
simplify
2020-09-10 06:01:18 +02:00
Guido Cella
143dce094c
fix multi monitors further
...
Fix layer surfaces without an exculsive area by using the right x and y
for the current monitor (by Stivvo).
2020-09-09 17:13:30 +02:00
Guido Cella
62250661cf
remove unneeded line
...
The bug was caused by usable_area's x and y not being set in
arrangelayers. For example if on a 2nd HD monitor, x should be 1920
while the first one ends at 1919. So I don't see why m->m should be
recalculated after creating the monitor.
2020-09-08 13:36:46 +02:00
Guido Cella
68412d8957
try to fix again
...
Calculate x and y of usable_area, not just width and heigth.
2020-09-08 12:49:05 +02:00
Guido Cella
69847872bb
fix multi monitors
...
If you don't recalculate the monitor's geometry before arranging,
clients get arranged in the first monitor. I don't understand why this
fixes the bug since tile() uses m->w rather than m->m, nor why it needs
to be recalculated after creating the monitor but sway does it too.
Although not necessary to fix the bug I also made arrangelayer() do like
sway again and recalculate usable_area instead of reusing m->m, since
m->m seems to be incorrect until it gets recalculated shortly after in
arrange(), so I suspect that leaving usable_area = m->m will cause
issues under certain circumstances.
Someone with a multi-monitor setup or better knowledge of Wayland may be
able to figure out the cause of the bug. For now, this makes layer shell
work.
2020-09-08 10:28:29 +02:00
Guido Cella
79f3bbaf38
remove variable
2020-09-06 19:59:58 +02:00
Guido Cella
52a4d3a1e5
use size_t for lengths
2020-09-05 18:29:39 +02:00
Guido Cella
9743778d09
rename variable and merge 2 lines
2020-09-05 14:15:03 +02:00
Guido Cella
6b25e7ef27
simplify
2020-09-05 06:58:54 +02:00
Guido Cella
8ee0200877
use unsigned int for loop indexes
2020-09-04 21:36:43 +02:00
Guido Cella
ae798c694a
Don't let overlays lose focus
...
if you open a new window while an overlay is mapped, the overlay should
stay focused
2020-09-04 21:35:48 +02:00
Guido Cella
8de18f9bb4
fix restoring pointer focus
...
I don't know why I thought it was working before. Maybe I should go do
something else.
2020-09-04 21:14:02 +02:00
Guido Cella
71572521e9
improve code style
2020-09-04 18:45:30 +02:00
Guido Cella
9308a90d11
remove comment
...
I don't know why it wasn't working before but now it does ¯\(ツ)/¯
(it wasn't caused by the just removed code either)
2020-09-04 18:04:20 +02:00
Guido Cella
8e81c90f31
remove mysterious code
...
Why would a surface that's not keyboard interactive get focused? Let's
remove this for now and see if issues arise.
2020-09-04 17:38:37 +02:00
Guido Cella
2d84c74657
focus the previous client in the similar code too
2020-09-04 17:38:04 +02:00
Guido Cella
068352e888
refocus old client
...
When a layer surface is destroyed focus should be returned to the last
client. Luckily if there are multiple overlays the previous overlay
still gets focused.
2020-09-04 17:21:48 +02:00
Guido Cella
4341deae8f
fix alhpabetical order
2020-09-04 17:01:34 +02:00
Guido Cella
5dc9460044
simplify focus leave condition
2020-09-04 16:42:14 +02:00
Guido Cella
35b93669f1
reuse motionnotify()
2020-09-04 15:35:04 +02:00
Guido Cella
d98ca07a64
enable pointer on layer surfaces
2020-09-04 07:42:51 +02:00
Guido Cella
b26ede4727
more TODOs
2020-09-03 18:59:27 +02:00
Guido Cella
4017a27b67
fix focus leave condition
...
needs refactoring and testing
2020-09-03 18:58:27 +02:00
Guido Cella
b4d9a8662f
send pressed keys to topmost layer surface
2020-09-03 18:34:41 +02:00
Guido Cella
5d4eadeb8e
remove blank line
2020-08-29 08:42:17 +02:00
Guido Cella
3203d1bafd
don't handle failed calloc
...
be consistent with the rest of the code
2020-08-29 08:41:51 +02:00
Guido Cella
ddd3c2ad7e
order variables more how like they are initialized
2020-08-29 07:42:47 +02:00
Guido Cella
2c08d0b421
Reuse render() and struct timespec *now
2020-08-28 09:00:03 +02:00
Guido Cella
03c020f058
reuse m->m
2020-08-27 06:45:26 +02:00
Guido Cella
1473d03293
remove comment
...
wlr_output_layout_get_box internally calls
wlr_output_effective_resolution
2020-08-27 06:04:57 +02:00
Guido Cella
c9f92bdd0e
set a monitor geometry only when creating it
...
Lets layers with an exclusive area shrink the usable area
2020-08-27 05:22:27 +02:00
Guido Cella
b8a6d3e86a
render in the same order as sway
2020-08-27 05:03:01 +02:00
Guido Cella
e13d193346
correct variable name
2020-08-26 19:52:03 +02:00
Guido Cella
ce7bc8125d
rename functions too
2020-08-26 19:51:08 +02:00
Guido Cella
e69c3d7336
remove extra space
2020-08-26 19:16:13 +02:00
Guido Cella
b35182f519
render layer surfaces
2020-08-26 19:04:30 +02:00
Guido Cella
1e2dde6674
improve naming
...
rename Layer to LayerSurface; layer should refer to overlay, top, bottom
or background
LayerSurface variables are always called layersurface
wlr_layer_surface_v1 variables are always called wlr_layer_surface
2020-08-26 17:33:17 +02:00
Guido Cella
05df9201b3
layer shell initial attempt
2020-08-24 07:04:34 +02:00
Devin J. Pohly
44ef698d6e
set up interfaces in same order as sway
...
This makes it easier to compare WAYLAND_DEBUG logs when troubleshooting.
2020-08-23 10:01:39 -05:00
Guido Cella
1c9a0d8822
enable gamma control
2020-08-22 18:09:38 +02:00
Devin J. Pohly
620da43933
cleanup function to match dwm
2020-08-19 00:32:57 -05:00
Devin J. Pohly
8eb6fe8e9e
fix usage to match
2020-08-19 00:32:32 -05:00
Devin J. Pohly
3b1992ca91
we're not really using the log
2020-08-19 00:30:00 -05:00
Devin J. Pohly
f79746c578
this is technically barf too I guess?
2020-08-19 00:24:57 -05:00
Devin J. Pohly
f13227ebae
only call updatewindowtype for x11 windows
2020-08-19 00:23:54 -05:00
Devin J. Pohly
ad9b3bc65d
handle NULL return from backend_autocreate
...
Fixes #44 .
2020-08-18 19:43:42 -05:00
Devin J. Pohly
83f60e89b0
add macro for fatal errors
...
dwm lets the OS do cleanup if the program errors out
2020-08-18 19:39:34 -05:00
Devin J. Pohly
d615d3836c
Use SIGCHLD handler from dwm
...
Fixes #46 .
2020-08-18 18:22:44 -05:00
Devin J. Pohly
c0b05eddb8
make this marginally less ugly
2020-08-16 11:36:38 -05:00
Devin J. Pohly
41c3f91b03
wlr_session_change_vt is NULL safe
2020-08-16 11:32:45 -05:00
Devin J. Pohly
c970d97f85
_net_wm not needed outside xwayland
2020-08-16 01:14:54 -05:00
Devin J. Pohly
108ade0bbc
Merge pull request #37 from alex-courtis/31-independents-mouse-focus
...
31 independents mouse focus
2020-08-16 00:57:18 -05:00
Guido Cella
c0608aa017
Declare commitnotify
2020-08-15 16:47:22 +02:00
Alexander Courtis
4788baee8d
Merge branch 'master' into 31-independents-mouse-focus
2020-08-11 11:42:02 +10:00
Devin J. Pohly
e3e9504fcd
make XWayland support optional
2020-08-10 12:50:56 -05:00
Alexander Courtis
5b464edf91
#31 independents retain focus while mouse is over them
2020-08-09 11:56:34 +10:00
Alexander Courtis
9551568252
#31 independents retain focus while mouse is over them
2020-08-09 11:34:19 +10:00
Alexander Courtis
9d138ac95a
#31 independents retain focus while mouse is over them
2020-08-06 15:41:04 +10:00
Alexander Courtis
c08ea88c1f
#31 independents retain focus while mouse is over them
2020-08-06 15:32:55 +10:00
Devin J. Pohly
5a2d87fa6c
add monocle layout
2020-08-03 12:44:47 -05:00
Devin J. Pohly
27bbf9c14f
condense getatom and add note about error return
2020-08-03 12:22:02 -05:00
Devin J. Pohly
c12261d3a9
Merge branch 'master' of github:djpohly/dwl into master
2020-08-03 12:14:36 -05:00
Devin J. Pohly
8c95418334
Merge pull request #25 from geistesk/error-maybe-uninitialized
...
getatom: fix potential uninitialized atom variable
2020-08-03 12:14:27 -05:00
Devin J. Pohly
d89cf6b720
add some more hands-off protocols
2020-08-03 11:20:12 -05:00
Devin J. Pohly
0ac2f6616a
fix an editing mistake
2020-08-02 18:49:23 -05:00
Devin J. Pohly
59cd8dec94
focusclient checks whether oldsel == sel
...
No need to do it outside the call.
2020-08-02 18:46:34 -05:00
Devin J. Pohly
ef7a37649c
refactor focusclient
2020-08-02 18:43:29 -05:00
Devin J. Pohly
7856cdc1bf
abc
2020-08-02 18:40:33 -05:00
Devin J. Pohly
da5deab083
convert lastfocused() to focustop(m)
2020-08-02 18:39:48 -05:00
Devin J. Pohly
8a584d406d
pass previous focus to focusclient
2020-08-02 18:33:42 -05:00
Devin J. Pohly
e7e01e06f6
remove surface from focusclient function
...
Honestly not sure why a specific surface is focused rather than the
client figuring that out. Seems to work in a quick test, but we can
remember this commit if something breaks for, I dunno, mouse people.
2020-08-02 18:26:58 -05:00
Devin J. Pohly
17e525cc6c
C99 doesn't support anonymous unions
...
I'm cool with ->surface.xdg instead of ->xdg_surface though.
2020-08-02 09:16:07 -05:00
Devin J. Pohly
62339e7ab0
make setmon a bit more straightforward
2020-08-02 00:35:26 -05:00
Devin J. Pohly
e41ed53384
remove unneeded variable
2020-08-01 09:45:33 -05:00
Devin J. Pohly
2dbe5c6063
simplify pointerfocus
...
Similar to focusclient
2020-07-31 14:00:00 -05:00
Devin J. Pohly
90d80c0de9
simplify focusclient
...
This arranges the function into some logical tasks: deactivate the old
client, update wlroots' keyboard focus, update our data structures, and
activate the new client. The last two only need to be done when
focusing something new, so an early return saves some horizontal space.
2020-07-31 13:53:33 -05:00
Devin J. Pohly
0a59f47c18
remove now-unused variables in focusclient
2020-07-31 13:24:10 -05:00
Devin J. Pohly
50aa44c59b
add tag bitset check from dwm
2020-07-31 09:57:59 -05:00
Alvar Penning
744f20790c
getatom: fix potential uninitialized atom variable
...
The getatom function returns the atom variable, which is only
initialized in case of a success. This results in a maybe-uninitialized
warning/error. After this commit, now a zero value is returned in case
of error.
2020-07-31 12:53:46 +02:00
Devin J. Pohly
4e57dbd922
attach_render and commit are all that's needed
...
attach_render tells the output that a "new" buffer has been prepared
(even if we haven't changed it). We need to call that and then commit
it to keep the render loop going.
Software cursors will freeze momentarily during layout updates, but I
suspect that this is not as easily fixed as it sounds. You can force
software cursors by running:
WLR_NO_HARDWARE_CURSORS=1 ./dwl
2020-07-30 22:52:53 -05:00
Devin J. Pohly
21437b62af
style fixes
2020-07-30 21:55:49 -05:00
Alexander Courtis
d6a18d69c0
do not render frames when any surface has uncommitted resizes
2020-07-30 21:52:09 -05:00
Alexander Courtis
7499044a2b
tidy activate notify resource
2020-07-29 15:05:24 +10:00
Devin J. Pohly
d5fdd999ac
make border color selection concise
2020-07-26 19:27:49 -04:00
Michael Cardell Widerkrantz
2fb3701c6e
Add support to change focused window's border color
2020-07-26 23:10:42 +02:00
Devin J. Pohly
e2887f2cfd
remove client.isx11 in favor of client.type
2020-07-25 12:03:08 -04:00
Devin J. Pohly
0e21cce803
ok, treat it like an enum
2020-07-25 11:57:47 -04:00
Devin J. Pohly
3e29ef1c7e
do managed/unmanaged check in map and unmap
2020-07-25 11:55:18 -04:00
Devin J. Pohly
f2d025d4e9
do managed check in activatex11
2020-07-25 11:48:47 -04:00
Devin J. Pohly
e5e170e420
add client.type field
...
Current options are XDGShell, X11Managed, and X11Unmanaged.
2020-07-25 11:46:12 -04:00
Devin J. Pohly
39f3b87f3a
rename activate to activatex11 for consistency
2020-07-25 11:46:12 -04:00
Devin J. Pohly
8b7cc8ada6
clarify createnotifyx11 function
2020-07-25 11:29:36 -04:00
Alexander Courtis
c4cf78aadb
xwayland: unmanaged (dropdown menu) support
2020-07-25 11:29:02 -04:00
Devin J. Pohly
4bc7f2d8e4
remove n counter from zoom(), add comments
2020-07-24 17:35:19 -04:00
Guido Cella
7b608da8c5
Add zoom
2020-07-24 17:30:45 +02:00
Devin J. Pohly
53798dfbff
fix WLR_SURFACE macro
2020-07-23 19:32:10 -04:00
Devin J. Pohly
5d66ea8a99
don't double-add new monitor to mons
...
this was a copy/paste error
2020-07-23 18:14:33 -04:00