Commit Graph

589 Commits

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