mirror of
https://github.com/labwc/labwc.git
synced 2025-11-30 06:59:52 -05:00
output: factor out output_set_has_fullscreen_view()
This commit is contained in:
parent
6de18b9afd
commit
87da3f6588
4 changed files with 25 additions and 23 deletions
|
|
@ -69,4 +69,13 @@ void handle_output_power_manager_set_mode(struct wl_listener *listener,
|
||||||
void *data);
|
void *data);
|
||||||
void output_enable_adaptive_sync(struct output *output, bool enabled);
|
void output_enable_adaptive_sync(struct output *output, bool enabled);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Notifies whether a fullscreen view is displayed on the given output.
|
||||||
|
* Depending on user config, this may enable/disable adaptive sync.
|
||||||
|
*
|
||||||
|
* Does nothing if output is NULL or disabled.
|
||||||
|
*/
|
||||||
|
void output_set_has_fullscreen_view(struct output *output,
|
||||||
|
bool has_fullscreen_view);
|
||||||
|
|
||||||
#endif // LABWC_OUTPUT_H
|
#endif // LABWC_OUTPUT_H
|
||||||
|
|
|
||||||
12
src/output.c
12
src/output.c
|
|
@ -1144,3 +1144,15 @@ output_enable_adaptive_sync(struct output *output, bool enabled)
|
||||||
enabled ? "en" : "dis", output->wlr_output->name);
|
enabled ? "en" : "dis", output->wlr_output->name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
output_set_has_fullscreen_view(struct output *output, bool has_fullscreen_view)
|
||||||
|
{
|
||||||
|
if (rc.adaptive_sync != LAB_ADAPTIVE_SYNC_FULLSCREEN
|
||||||
|
|| !output_is_usable(output)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
/* Enable adaptive sync if view is fullscreen */
|
||||||
|
output_enable_adaptive_sync(output, has_fullscreen_view);
|
||||||
|
output_state_commit(output);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,9 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0-only
|
// SPDX-License-Identifier: GPL-2.0-only
|
||||||
/* view-impl-common.c: common code for shell view->impl functions */
|
/* view-impl-common.c: common code for shell view->impl functions */
|
||||||
#include "view-impl-common.h"
|
#include "view-impl-common.h"
|
||||||
#include "config/rcxml.h"
|
|
||||||
#include "foreign-toplevel/foreign.h"
|
#include "foreign-toplevel/foreign.h"
|
||||||
#include "labwc.h"
|
#include "labwc.h"
|
||||||
#include "output.h"
|
#include "output.h"
|
||||||
#include "output-state.h"
|
|
||||||
#include "view.h"
|
#include "view.h"
|
||||||
#include "window-rules.h"
|
#include "window-rules.h"
|
||||||
|
|
||||||
|
|
@ -65,10 +63,8 @@ view_impl_unmap(struct view *view)
|
||||||
* views. It should probably be combined with the existing
|
* views. It should probably be combined with the existing
|
||||||
* logic in desktop_update_top_layer_visibility().
|
* logic in desktop_update_top_layer_visibility().
|
||||||
*/
|
*/
|
||||||
if (view->fullscreen && rc.adaptive_sync == LAB_ADAPTIVE_SYNC_FULLSCREEN
|
if (view->fullscreen) {
|
||||||
&& output_is_usable(view->output)) {
|
output_set_has_fullscreen_view(view->output, false);
|
||||||
output_enable_adaptive_sync(view->output, false);
|
|
||||||
output_state_commit(view->output);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
19
src/view.c
19
src/view.c
|
|
@ -21,7 +21,6 @@
|
||||||
#include "menu/menu.h"
|
#include "menu/menu.h"
|
||||||
#include "osd.h"
|
#include "osd.h"
|
||||||
#include "output.h"
|
#include "output.h"
|
||||||
#include "output-state.h"
|
|
||||||
#include "placement.h"
|
#include "placement.h"
|
||||||
#include "regions.h"
|
#include "regions.h"
|
||||||
#include "resize-indicator.h"
|
#include "resize-indicator.h"
|
||||||
|
|
@ -513,20 +512,6 @@ view_discover_output(struct view *view, struct wlr_box *geometry)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
set_adaptive_sync_fullscreen(struct view *view)
|
|
||||||
{
|
|
||||||
if (!output_is_usable(view->output)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (rc.adaptive_sync != LAB_ADAPTIVE_SYNC_FULLSCREEN) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
/* Enable adaptive sync if view is fullscreen */
|
|
||||||
output_enable_adaptive_sync(view->output, view->fullscreen);
|
|
||||||
output_state_commit(view->output);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
view_set_activated(struct view *view, bool activated)
|
view_set_activated(struct view *view, bool activated)
|
||||||
{
|
{
|
||||||
|
|
@ -548,7 +533,7 @@ view_set_activated(struct view *view, bool activated)
|
||||||
keyboard_update_layout(&view->server->seat, view->keyboard_layout);
|
keyboard_update_layout(&view->server->seat, view->keyboard_layout);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
set_adaptive_sync_fullscreen(view);
|
output_set_has_fullscreen_view(view->output, view->fullscreen);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
@ -1786,7 +1771,7 @@ view_set_fullscreen(struct view *view, bool fullscreen)
|
||||||
} else {
|
} else {
|
||||||
view_apply_special_geometry(view);
|
view_apply_special_geometry(view);
|
||||||
}
|
}
|
||||||
set_adaptive_sync_fullscreen(view);
|
output_set_has_fullscreen_view(view->output, view->fullscreen);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue