Leonardo Hernández Hernández
1fdc65ff93
make more permissive exclusive focus
...
now you can call focusstack() while a layer surface is focused and when it gets
unmapped the newly focused clients will be actually focused
2022-09-18 17:25:12 -05:00
Leonardo Hernández Hernández
fbaeb85363
now really fix clients not being focused after unmapping a layer surface
2022-09-18 17:23:07 -05:00
Leonardo Hernández Hernández
570e6e2c27
fix clients not being focused after destroy a layer surface
2022-09-18 16:52:54 -05:00
Leonardo Hernández Hernández
a1b33826cf
Revert "remove useless check of m
in arrangelayers()"
...
This partially reverts commit d14ee99661
.
Checking if the output is enabled is necessary to avoid a segfault later
2022-09-18 16:36:38 -05:00
Leonardo Hernández Hernández
d14ee99661
remove useless check of m
in arrangelayers()
...
it is supossed to avoid a crash when we pass m=NULL as argument
however it would crash anyway and also because we should not pass m=NULL
2022-09-18 15:35:54 -05:00
Leonardo Hernández Hernández
cd96f889b8
fix use of loop initial declaration
...
forbidden by the suckless style
2022-09-18 15:35:54 -05:00
Leonardo Hernández Hernández
bc72af6e24
fix unmanaged clients not being unlinked from the commit listener
2022-09-18 15:35:54 -05:00
Leonardo Hernández Hernández
bcc8ce7a40
fix segfault when unlocking swaylock on two monitor setup
...
wlr_*_surface_from_wlr_surface() can return NULL if the surface
is being destroyed
Fixes: https://github.com/djpohly/dwl/issues/305
2022-09-18 15:35:54 -05:00
Leonardo Hernández Hernández
ba7dcb2dea
don't try to move outputs when its x,y hasn't change
...
when using wlr_output_layout_move() wlroots internally
change the state of the output to manually configured and
when updating the layout these outputs aren't ignored by
wlroots, leaving us at our own
2022-09-10 23:54:57 -05:00
Leonardo Hernández Hernández
c8a9f63451
prior run the startup command start the backend
...
this allow use clients like wlr-randr in the startup command
2022-09-10 23:54:56 -05:00
Leonardo Hernández Hernández
fd67087a82
make sure the parent is mapped prior set monitor and tags
2022-09-10 23:45:14 -05:00
Leonardo Hernández Hernández
77ba8e5127
use wl_container_of() instead of data in some functions
2022-09-10 23:44:19 -05:00
Leonardo Hernández Hernández
c509046663
add some comments
2022-09-10 23:42:58 -05:00
Leonardo Hernández Hernández
93de6e82a2
inline input_device in virtualkeyboard()
2022-09-10 22:25:46 -05:00
Leonardo Hernández Hernández
f8f94c97f5
fix idle inhibitor check
...
previously we tried to get a client from the surface and then compare it with
the excluded surface, if we cannot get a client from the surface (e.g: a layer
surface) it just ignored all the next idle inhibitors no matter what
What I have should done is just checking if the excluded surface is equal to
the current idle inhibitor's surface and continue in case it is.
2022-09-10 22:11:06 -05:00
Leonardo Hernández Hernández
1bb9c4583a
fix exclusive zone of unmapped layer surfaces
...
Fixes: https://github.com/djpohly/dwl/issues/302
2022-09-10 18:54:35 -05:00
Leonardo Hernández Hernández
9bcef3d040
resize the fullscreen background when resize the client
2022-09-08 16:35:55 -05:00
Leonardo Hernández Hernández
871463c327
define _POSIX_C_SOURCE through CPPFLAGS
...
like dwm
2022-09-08 00:10:53 -05:00
Leonardo Hernández Hernández
d1496a2a9b
fix condition that always evaluate to false in commitlayersurfacenotify()
2022-09-07 23:54:57 -05:00
Leonardo Hernández Hernández
80084839a9
remove obsolete check of c->mon in fullscreennotify()
...
since 19a8a095eb
it's checked in setfullscreen()
2022-09-07 23:24:50 -05:00
Leonardo Hernández Hernández
1aacfada29
set c->prev
in setmon() and not in mapnotify()
2022-09-06 13:23:19 -05:00
Leonardo Hernández Hernández
dc59f7733d
enable adaptive sync if supported
...
but don't cause monitors to be ignored if it fails
2022-09-06 00:35:20 -05:00
Leonardo Hernández Hernández
14c010a0d6
only enable/disable clients from the specified monitor in arrange()
...
also fix a crash when m is null, this can only happen when selmon is NULL
2022-09-06 00:10:00 -05:00
Leonardo Hernández Hernández
14a1e3e2a2
set c->prev in mapnotify()
...
Closes : #300
2022-09-05 16:35:51 -05:00
Leonardo Hernández Hernández
68576799b9
don't arrange layers on disabled monitors
2022-09-02 18:49:20 -05:00
Leonardo Hernández Hernández
19a8a095eb
call setfullscreen() in setmon()
...
this will help when sending to another monitor a fullscreen client
and also will prevent a crash when a client request fullscreen when it has no monitor
2022-09-02 18:22:15 -05:00
Leonardo Hernández Hernández
1f59b76d77
prevent segfault when destroying monitors
...
also don't count unmapped surfaces for exclusive zone
and exclusive_focus is now of type `void *`
2022-09-02 18:17:53 -05:00
Leonardo Hernández Hernández
40b1c0b849
Revert "Revert "various improvements to layer surface""
...
This reverts commit c017916d35
.
2022-09-02 16:54:53 -05:00
Leonardo Hernández Hernández
c017916d35
Revert "various improvements to layer surface"
...
see https://github.com/djpohly/dwl/issues/289#issuecomment-1231287114
This reverts commit 2260519740
.
2022-08-31 16:05:19 -05:00
Leonardo Hernández Hernández
2260519740
various improvements to layer surface
...
- remove various useless assignments of layersurface->mon
- styles changes
- do not set wlr_layer_surface->output to NULL at destroy
2022-08-29 21:32:59 -05:00
Leonardo Hernández Hernández
0e993b5fb1
conform the idle inhibitor protocol
...
previously we disable idle tracking simply due to the fact that it exist
2022-08-28 22:40:11 -05:00
Leonardo Hernández Hernández
83e37820d7
add support for the single pixel buffer protocol
2022-08-28 22:15:57 -05:00
Leonardo Hernández Hernández
d738573e22
new function to notify keyboard enter
2022-08-27 16:34:29 -05:00
Leonardo Hernández Hernández
e0cc5b046c
Merge remote-tracking branch 'djpohly/main' into wlroots-next
2022-08-26 18:26:36 -05:00
Leonardo Hernández Hernández
406aebcbd2
prevent an infinite loop if try to use focusmon() with all monitors disabled
2022-08-25 00:20:21 -05:00
Leonardo Hernández Hernández
dfcd142ce4
don't try to set monitor for clients in createmon()
...
this is done in updatemons()
2022-08-23 13:29:12 -05:00
Leonardo Hernández Hernández
07bf1832bf
set monitor for clients that don't have one in updatemons()
...
only if selmon is enabled and the clients are mapped
2022-08-23 13:28:01 -05:00
Leonardo Hernández Hernández
174919ec53
set monitor for clients that don't have one on monitor creation
2022-08-18 16:55:13 -05:00
Leonardo Hernández Hernández
a7f77160d1
don't respect size hints for fullscreen clients
...
Fixes : #292
2022-08-16 21:39:42 -05:00
Leonardo Hernández Hernández
7a343b98cf
change type of c->bw: int -> unsigned int
2022-08-13 00:41:08 -05:00
Leonardo Hernández Hernández
8d2516e83c
reorder isfullscreen in Client definition
2022-08-13 00:38:08 -05:00
Leonardo Hernández Hernández
f173c56c32
initialize to zero the box used in commitnotify()
2022-08-13 00:12:46 -05:00
Leonardo Hernández Hernández
48396a1bf8
fix crash when setting a custom mode
2022-08-12 23:21:25 -05:00
Leonardo Hernández Hernández
b6e3fc1645
rework outputmgrapplyortest()
...
first disable requested monitors, then enable and/or change mode, x and y, etc.
This is mostly what sway does
2022-08-12 23:21:25 -05:00
Leonardo Hernández Hernández
662e06e68e
check client_from_wlr_surface() returning NULL in urgent()
...
fix #281
2022-07-30 14:44:17 -05:00
Dima Krasner
9d2eb8483b
fix segfault if parent->mon is unset
2022-07-25 01:19:36 -05:00
Leonardo Hernández Hernández
7eee0a8229
use the layer surface to create popups
2022-07-24 16:43:13 -05:00
Leonardo Hernández Hernández
b04c73be3d
make sure we do not create a double fullscreen_bg
...
and also make sure we do not destroy it if it does not exist
Fixes : #274
2022-07-23 13:28:15 -05:00
Leonardo Hernández Hernández
8cdb997126
conform the xdg-protocol with fullscreen translucent clients
...
see `setfullscreen()` for more info
2022-07-23 02:17:00 -05:00
Leonardo Hernández Hernández
90a12c90a0
always set the same monitor and tags for child clients of a client
...
fixes #272
2022-07-19 20:13:56 -05:00
Leonardo Hernández Hernández
e082292606
do not focus clients if a layer surface is focused
2022-07-19 12:24:24 -05:00
Dima Krasner
deb48ff48b
force line-buffered stdout if stdout is not a tty
2022-07-19 12:18:16 -05:00
Leonardo Hernández Hernández
c70db2d06a
Revert "only call wlr_seat_keyboard_notify_enter() if a keyboard is found"
...
This reverts commit 8e03bce621
.
fixes #270
2022-07-19 11:52:42 -05:00
Leonardo Hernández Hernández
8e03bce621
only call wlr_seat_keyboard_notify_enter() if a keyboard is found
2022-07-07 00:21:51 -05:00
Leonardo Hernández Hernández
87fc3a58ab
check pointer focus in arrange()
2022-07-06 23:48:53 -05:00
Leonardo Hernández Hernández
c6d97f1db7
arrange client's monitor if size has change since last commit
2022-07-06 22:20:21 -05:00
Leonardo Hernández Hernández
829dec6598
resize now takes struct wlr_box
as parameter
2022-07-06 22:18:46 -05:00
Leonardo Hernández Hernández
ff70337c16
check current and pending geometry to set c->resize to zero
...
Fixes #260
2022-07-06 22:16:00 -05:00
Ben Jargowsky
7cc6c640e2
Checks for overflows for client max width and height
2022-06-29 00:35:06 +02:00
Leonardo Hernández Hernández
72e0a560d9
respect size hints
2022-06-24 19:19:20 -05:00
Leonardo Hernández Hernández
2aa391361c
inline unmaplayersurface() into unmaplayersurfacenotify()
...
unmap signal is guaranted to be emitted before destroy signal
so is useless checking if it is mapped at destroy
2022-06-24 15:36:13 -05:00
Leonardo Hernández Hernández
549335ae54
avoid layer surface popups appearing below x{dg,wayland} clients
2022-06-24 14:46:08 -05:00
Leonardo Hernández Hernández
097b4a30f5
unconstrain layer shell popups from monitor size
...
unconstrain other popups from monitor usable area
2022-06-24 14:30:52 -05:00
Leonardo Hernández Hernández
461d02d3e0
chase wlroots input_device changes
2022-06-21 16:25:18 -05:00
Leonardo Hernández Hernández
c1578bc14d
use LayerSurface.mon when possible
2022-06-21 16:03:20 -05:00
Leonardo Hernández Hernández
9b84940e37
unconstrain layer shell popups
...
also unconstrain popups from monitor's usable area
2022-06-21 00:23:21 -05:00
Leonardo Hernández Hernández
79ad72413d
don't set c->isfullscreen
to zero
...
calloc initializes all fields to zero
2022-06-20 18:05:16 -05:00
Leonardo Hernández Hernández
4ae6d0f387
move ugglyness to client.h
2022-06-16 15:54:13 -05:00
Leonardo Hernández Hernández
2ef5abfb72
remove unneeded check in focusclient()
2022-06-16 15:36:27 -05:00
Leonardo Hernández Hernández
d26ddfc7fd
kill child process in cleanup()
2022-06-14 15:31:39 -05:00
Marco Siedentopf
8bce3b1583
add click method configuration option
...
Add the libinput configuration option to choose between Software Button Areas and Clickfinger
2022-06-10 12:27:40 -05:00
Leonardo Hernández Hernández
a32db11f16
set client bounds at resize
2022-06-09 12:45:42 -05:00
Leonardo Hernández Hernández
948fdcf709
use xdg-shell v4
2022-06-09 12:45:02 -05:00
Leonardo Hernández Hernández
4b890336e2
use xdg-shell v3
2022-06-07 00:55:41 -05:00
Leonardo Hernández Hernández
c7007b4811
chase wlroots scene-tree changes
2022-06-07 00:31:58 -05:00
Leonardo Hernández Hernández
4dfa45659a
fix compiler error with gcc complaining about parentheses
...
dwl.c: In function ‘unmaplayersurface’:
dwl.c:2253:9: error: suggest parentheses around assignment used as truth value [-Werror=parentheses]
2253 | layersurface->layer_surface->mapped = layersurface->mapped = 0;
| ^~~~~~~~~~~~
cc1: all warnings being treated as errors
make: *** [<builtin>: dwl.o] Error 1
clang not affected
2022-06-05 16:57:20 -05:00
Leonardo Hernández Hernández
b91017e713
disable scene node at unmaplayersurface()
2022-06-05 15:27:40 -05:00
Leonardo Hernández Hernández
2623a96ebf
call client_set-size() if client has a resize
2022-05-27 00:19:17 -05:00
Leonardo Hernández Hernández
52e0d00942
check client_surface() returning NULL
...
now client_surface()->data is a pointer to the wlr_scene_tree of clients
which allows us to not call wlr_scene_node_lower_to_bottom() for every clients
2022-05-25 17:12:44 -05:00
Leonardo Hernández Hernández
7018b9b65c
correct libinput function name for drag_lock
2022-05-25 15:01:38 -05:00
Leonardo Hernández Hernández
48ec914f43
destroy layersurface's scene node in destroylayersurfacenotify()
2022-05-25 14:49:32 -05:00
Leonardo Hernández Hernández
40449fa64f
add a new function to get a client from a wlr_surface
2022-05-23 10:55:28 -05:00
Ben Jargowsky
ecbc2c61db
Add configuration options for touchpads
2022-05-23 00:01:47 +02:00
Leonardo Hernández Hernández
283c043b5c
chase wlroots scene-surface refactor
2022-05-21 20:44:08 -05:00
Leonardo Hernández Hernández
88a8b784d0
Merge remote-tracking branch 'djpohly/main' into wlroots-next
...
chase wlroots X11 hints update
2022-05-17 15:31:31 -05:00
Leonardo Hernández Hernández
8870ba0bb8
implement urgency hints for xwayland clients
2022-05-17 14:38:18 -05:00
Leonardo Hernández Hernández
79a148224f
specify version in wlr_xdg_shell_create()
2022-05-15 17:17:58 -05:00
Leonardo Hernández Hernández
3c11ad9aa6
fix segfault when dragging chromium tabs
2022-05-14 00:29:35 -05:00
Ben Jargowsky
06d9230a96
Run focusclient when switching to monocle layout
2022-05-13 10:20:28 +02:00
Leonardo Hernández Hernández
dca68f9aa1
Merge remote-tracking branch 'djpohly/main' into wlroots-next
2022-05-10 20:08:41 -05:00
Leonardo Hernández Hernández
22bd75226b
remove trailing whitespaces
2022-05-10 11:42:40 -05:00
Leonardo Hernández Hernández
063736f898
add -v
flag to the manpage
...
Thanks @Humm42
2022-05-10 11:39:33 -05:00
Leonardo Hernández Hernández
5d8084daa7
add flag to print version and exit
2022-05-09 16:24:36 -05:00
Ben Jargowsky
e0d310fd84
Handle 'wlr_seat_get_keyboard' possibly returning null.
2022-05-09 14:00:21 +02:00
Leonardo Hernández Hernández
3a4b7d104f
restack xwayland surface on focusclient()
2022-04-29 17:45:02 -05:00
Ben Jargowsky
d071a899f3
Run printstatus() when a monitor is removed
2022-04-25 13:50:53 -07:00
Leonardo Hernández Hernández
dc7709a00e
schedule a configure on maximize request
...
see maximizenotify() for more info
2022-04-16 15:51:13 -05:00
Leonardo Hernández Hernández
a48ce99e6a
use pointer math in xytonode()
2022-04-15 17:40:02 -05:00
Leonardo Hernández Hernández
4a2e761914
replace deleted EBARF() with die()
2022-04-12 23:52:05 -05:00
Leonardo Hernández Hernández
29a2b647b2
Merge remote-tracking branch 'djpohly/main' into HEAD
2022-04-08 21:12:32 -05:00