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
d738573e22
new function to notify keyboard enter
2022-08-27 16:34:29 -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
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
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
8870ba0bb8
implement urgency hints for xwayland clients
2022-05-17 14:38:18 -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
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
a48ce99e6a
use pointer math in xytonode()
2022-04-15 17:40:02 -05:00
Leonardo Hernández Hernández
c00697e643
abc
2022-04-05 23:04:04 -05:00
Leonardo Hernández Hernández
af741e586b
typedefs: abc
2022-04-05 22:15:46 -05:00
Leonardo Hernández Hernández
02ac9378c4
includes: abc
2022-04-05 22:07:59 -05:00
Devin J. Pohly
720f56161e
Remove vestigial monitor configuration info
...
The x/y fields in monitor rules are unused and were meant to be deleted.
Also removes the outdated comment in config.h.
2022-04-03 00:01:52 -05:00
Leonardo Hernández Hernández
4d3adea683
die on pipe failure
2022-03-31 15:32:30 -06:00
Raphael Robatsch
79b7e755b0
Layer shell: Prevent infinte configure/commit loop
...
Check the wlr_layer_surface_v1_state.committed bitmask to see if we need
to rearrange. This is also what sway does.
Without this check, every commit request (even if only the attached buffer
changed) will lead to another configure event, which will lead to another
commit, etc.
This loop results in swaybg consuming 100% CPU.
Co-authored-by: Owen Rafferty <owen@owenrafferty.com>
2022-03-31 15:27:13 -06:00
Leonardo Hernández Hernández
aab397c30b
new functions ecalloc() and die()
...
die() replaces EBARF and BARF
and allow us to add `-pedantic` to CFLAGS
2022-03-28 15:02:09 -06:00
Leonardo Hernández Hernández
cb4265ac8c
check m
in commitlayersurfacenotify()
2022-03-24 14:19:08 -06:00
Leonardo Hernández Hernández
a95338ca43
implement input-inhibitor protocol
2022-03-24 11:41:24 -06:00
Leonardo Hernández Hernández
ae614ee512
implement idle-inhibitor protocol
...
This allows clients to disable idle monitoring
2022-03-24 11:35:19 -06:00
Leonardo Hernández Hernández
feb972acd0
fix drag icon's surface returned by xytonode
2022-03-23 15:34:17 -06:00
Leonardo Hernández Hernández
bf8cc526de
set position of the drag icon in startdrag()
2022-03-23 15:30:35 -06:00
Leonardo Hernández Hernández
7a2e0eef74
Revert "clients now works as expected in drag motion"
...
This reverts commit 9aec6049ec
.
this problem is caused because xytonode() returns the surface of the
drag icon
2022-03-23 15:29:32 -06:00
Guido Cella
3bace9ce6b
inline the presentation variable
...
This variable can be removed since with scene-graph
wlr_presentation_surface_sampled_on_output no longer needs to be called.
2022-03-23 22:01:04 +01:00
Palanix
7d724dc7f3
Fix dwl freezing when resizing
2022-03-23 12:09:24 -06:00
Quentin Rameau
326eee1444
Add a configuration option for fullscreen locking
...
Some people are annoyed to have this new behaviour forced for some
application which use fake fullscreen.
2022-03-22 23:51:56 -06:00
Leonardo Hernández Hernández
9aec6049ec
clients now works as expected in drag motion
2022-03-22 15:02:02 -06:00
Guido Cella
330792b1fc
implement drag and drop
...
For brevity, only a single drag icon at a time is supported.
Co-authored-by: Leonardo Hernández Hernández <leohdz172@protonmail.com>
2022-03-22 01:10:08 -06:00
Leonardo Hernández Hernández
ee1a72211d
only skip frames if there are visible clients that have a resize
2022-03-21 21:41:38 -06:00
Leonardo Hernández Hernández
2bc01debdc
remove a useless resize in mapnotify()
...
applyrules() calls setmon() which calls resize()
2022-03-21 14:21:33 -06:00
Leonardo Hernández Hernández
0dea553428
destroy scene_output in cleanupmon()
2022-03-20 19:09:28 -06:00
Leonardo Hernández Hernández
dd463b25c7
remove independents list
2022-03-20 12:32:44 -06:00
Leonardo Hernández Hernández
19c14b058c
remove unneeded variables
2022-03-18 11:04:34 -06:00
Leonardo Hernández Hernández
e645ea8301
attach presentation to scene
2022-03-18 10:40:40 -06:00
Leonardo Hernández Hernández
d50bb97f56
Merge branch 'main' into scenegraph
2022-03-18 01:31:28 -06:00
Leonardo Hernández Hernández
475c134144
do not allow set client size less than its min size
2022-03-18 01:27:33 -06:00
Leonardo Hernández Hernández
467123dc99
make sure to destroy wlr_scene_node of unmanaged clients
2022-03-18 01:03:33 -06:00
Leonardo Hernández Hernández
254f799fde
do not create borders for unmanaged clients
2022-03-18 01:02:50 -06:00
Leonardo Hernández Hernández
0815626d4c
pointerfocus: only use provided surface
...
if a client is given focus it
2022-03-18 00:59:52 -06:00
Leonardo Hernández Hernández
1b22ef1616
use xdg_shell helper
...
for xwayland continue using wlr_scene_subsurface_create()
2022-03-18 00:52:21 -06:00
Leonardo Hernández Hernández
f1c92b05fb
get old client by surface's node
2022-03-18 00:49:47 -06:00
Leonardo Hernández Hernández
1dfd867d9c
fix crash of Firefox when opening a popup larger than its size
2022-03-17 21:28:07 -06:00
Leonardo Hernández Hernández
294fb324d8
constraint popups to its parent client
...
Closes : #146
Closes : #155
2022-03-16 23:08:17 -06:00
Leonardo Hernández Hernández
79f85bde99
Merge branch 'main' into scenegraph
2022-03-16 21:54:16 -06:00
Leonardo Hernández Hernández
2768af5a9b
make sure configure and activate listeners are removed from list
2022-03-16 21:42:45 -06:00
Leonardo Hernandez Hernandez
863eedd05e
set correct position for unmanaged clients
...
- don't allow to move/resize with them
- don't focus unmanaged clients on buttonpress()
2022-03-16 09:27:09 -06:00
Leonardo Hernandez Hernandez
b92c0ff57f
add support for layer_shell popups
2022-03-16 09:27:09 -06:00