Commit Graph

623 Commits

Author SHA1 Message Date
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