Some bug fixes

1. The "crash when exiting an application while moving it" bug. See https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3372
2. The crash when there's no previous view to focus. This wasn't a problem before the migration to the scene graph API due to a logic error on my part.
3. The crash if <margins> is missing from rc.xml.
4. I'm now reusing code from focus_view() in seat_focus_surface().
5. I'm now using the dimensions of the output layout box instead of the current view (which was clearly wrong) for unconstraining layer-shell popups.
6. I fixed setting the background color, so that it won't interfere with the layer_shell helper.
This commit is contained in:
Keith Bowes 2022-03-01 11:01:09 -05:00
parent 5a3ac6055d
commit 579a2d2084
8 changed files with 52 additions and 46 deletions

View file

@ -23,9 +23,8 @@ struct wb_output {
struct wlr_scene_node *shell_top;
} layers;
#if !WLR_CHECK_VERSION(0, 16, 0)
struct wlr_scene_rect *scene_rect;
#endif
struct wlr_scene_rect *background;
struct wlr_box geometry;
struct wl_listener destroy;
struct wl_listener frame;

View file

@ -30,6 +30,7 @@ struct wb_keyboard {
struct wb_server;
struct wb_seat *wb_seat_create(struct wb_server *server);
void seat_focus_surface(struct wb_seat *seat, struct wlr_surface *surface);
void seat_set_focus_layer(struct wb_seat *seat, struct wlr_layer_surface_v1 *layer);
void wb_seat_destroy(struct wb_seat *seat);
#endif