mirror of
https://github.com/labwc/labwc.git
synced 2025-11-02 09:01:47 -05:00
view: Tidy up view->output/view->fullscreen redundancy
A fullscreen view currently has its output specified twice by:
- struct output *output
- struct wlr_output *fullscreen
view->fullscreen may also become a dangling pointer if the output is
disconnected, because view_on_output_destroy() clears view->output but
not view->fullscreen.
To eliminate the redundancy and the dangling pointer, let's change
view->fullscreen to a Boolean and rely on view->output to specify the
output.
Along the way, change a few related usages of struct wlr_output to
struct output as well.
No functional change intended.
v2: Don't allow entering fullscreen on disabled output (makes
conditions for entering/leaving fullscreen symmetric)
v3: Use output_is_usable() helper
This commit is contained in:
parent
6efc6a9db4
commit
49c9466039
3 changed files with 44 additions and 47 deletions
|
|
@ -178,8 +178,9 @@ handle_request_fullscreen(struct wl_listener *listener, void *data)
|
|||
{
|
||||
struct view *view = wl_container_of(listener, view, request_fullscreen);
|
||||
struct wlr_xdg_toplevel *xdg_toplevel = xdg_toplevel_from_view(view);
|
||||
view_set_fullscreen(view, xdg_toplevel->requested.fullscreen,
|
||||
struct output *output = output_from_wlr_output(view->server,
|
||||
xdg_toplevel->requested.fullscreen_output);
|
||||
view_set_fullscreen(view, xdg_toplevel->requested.fullscreen, output);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -345,8 +346,9 @@ xdg_toplevel_view_map(struct view *view)
|
|||
}
|
||||
|
||||
if (!view->fullscreen && requested->fullscreen) {
|
||||
view_set_fullscreen(view, true,
|
||||
requested->fullscreen_output);
|
||||
struct output *output = output_from_wlr_output(
|
||||
view->server, requested->fullscreen_output);
|
||||
view_set_fullscreen(view, true, output);
|
||||
} else if (!view->maximized && requested->maximized) {
|
||||
view_maximize(view, true,
|
||||
/*store_natural_geometry*/ true);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue