labwc/include
Consolatis ddc9047a67 Restore nested resize
Chases: 756ecf8ee9f1e75bc7b8297dc84f97c7d699174b
backend/wayland: use request_state when toplevel is resized

Chases: 3ef68a484243555b020200c6f95246d994932c3f
backend/x11: use request_state when window is resized

Ref: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/2693

We now delay requested resolution changes by the backend until
the next frame event which causes us to render the new content
on the already enlarged buffer. Before this change, an empty
(black) buffer would have been shown instead before the next
frame event caused a new render of the actual contents.

Keep commiting the new state and then scheduling a frame event
would not help as due to the commit call it would still show an
empty buffer in the meantime.

Just modifying wlr_output->pending wouldn't work either because
wlr_scene_output_commit() *completely* ignores it (and it will
be removed in future wlroots commits). For this reason we move
to wlr_scene_output_build_state() directly because it allows us
to supply the current wlr_output->pending state and thus apply
any resolution change in lockstep with new rendering. Result:
No more flickering in the wayland backend and resizing is again
smooth as butter.

This prevents constant flicker while resizing
when running nested via the wayland backend.

For the X11 backend (can be tested via `WLR_BACKENDS=x11 labwc`),
it is still rather janky but at least doesn't cause endless self-
resizing anymore.
2023-11-27 21:01:53 +00:00
..
button button-png.c: s/png_load/button_png_load/ 2023-09-17 19:26:41 +01:00
common Restore nested resize 2023-11-27 21:01:53 +00:00
config keyboard: allow applying keyboard layout per window 2023-11-04 07:58:43 +00:00
input keyboard: include pressed modifiers in bound set 2023-11-12 17:37:30 +00:00
menu menu: use wl_list instead of array 2023-10-10 06:17:37 +01:00
action.h action: add If and ForEach actions 2023-10-01 14:17:29 +01:00
buffer.h includes: identifier consistency in include guards 2023-05-13 22:29:21 +01:00
debug.h includes: identifier consistency in include guards 2023-05-13 22:29:21 +01:00
decorations.h includes: identifier consistency in include guards 2023-05-13 22:29:21 +01:00
dnd.h includes: identifier consistency in include guards 2023-05-13 22:29:21 +01:00
idle.h Add support for ext_idle_notify_v1.. 2023-07-09 08:26:33 +01:00
labwc.h Restore nested resize 2023-11-27 21:01:53 +00:00
layers.h includes: identifier consistency in include guards 2023-05-13 22:29:21 +01:00
meson.build Make xwayland support optional 2020-12-30 10:29:21 +00:00
node.h includes: identifier consistency in include guards 2023-05-13 22:29:21 +01:00
regions.h includes: identifier consistency in include guards 2023-05-13 22:29:21 +01:00
resistance.h includes: identifier consistency in include guards 2023-05-13 22:29:21 +01:00
resize_indicator.h Add window resize indicator 2023-08-19 18:37:16 +02:00
session-lock.h session-lock: reconfigure for output layout changes 2023-10-05 20:10:37 +01:00
snap.h Add snap to window edge framework 2023-10-19 19:09:42 +01:00
ssd-internal.h common: rename array-size.h to macros.h 2023-10-21 12:37:42 +01:00
ssd.h src/ssd: use view->ssd_titlebar_hidden for ssd_thickness calculations 2023-09-21 22:21:19 +01:00
theme.h Refactor title height to use 'titlebar.height' from themerc 2023-10-06 22:19:16 +01:00
view-impl-common.h view: commonize sub-view logic in view_move_to_front/back() 2023-10-21 15:40:56 +01:00
view.h Chase wlroots: Unified mapping 2023-11-27 21:01:53 +00:00
window-rules.h window-rules: add fixedPosition property 2023-11-10 21:46:15 +01:00
workspaces.h desktop: switch workspaces and optionally raise in desktop_focus_view() 2023-09-28 03:38:51 +02:00
xwayland.h Chase wlroots: Unified mapping 2023-11-27 21:01:53 +00:00