Merge pull request #680 from Ongy/roots_unfullscreen

unset fullscreen when surface is brought to front
This commit is contained in:
Drew DeVault 2018-03-26 23:39:29 -04:00 committed by GitHub
commit d1d983a303
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -723,6 +723,33 @@ void roots_seat_set_focus(struct roots_seat *seat, struct roots_view *view) {
wl_list_insert(&seat->input->server->desktop->views, &view->link); wl_list_insert(&seat->input->server->desktop->views, &view->link);
} }
bool unfullscreen = true;
#ifdef WLR_HAS_XWAYLAND
if (view && view->type == ROOTS_XWAYLAND_VIEW &&
view->xwayland_surface->override_redirect) {
unfullscreen = false;
}
#endif
if (unfullscreen) {
struct roots_desktop *desktop = view->desktop;
struct roots_output *output;
struct wlr_box box;
view_get_box(view, &box);
wl_list_for_each(output, &desktop->outputs, link) {
if (output->fullscreen_view &&
output->fullscreen_view != view &&
wlr_output_layout_intersects(
desktop->layout,
output->wlr_output, &box)) {
view_set_fullscreen(output->fullscreen_view,
false, NULL);
}
}
}
struct roots_view *prev_focus = roots_seat_get_focus(seat); struct roots_view *prev_focus = roots_seat_get_focus(seat);
if (view == prev_focus) { if (view == prev_focus) {
return; return;