Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Window in wrong place after screen lock with multi-resolution displays #6555

Open
thprice opened this issue Jan 5, 2025 · 0 comments
Open
Labels
bug Something isn't working

Comments

@thprice
Copy link

thprice commented Jan 5, 2025

What Operating System(s) are you seeing this problem on?

Linux Wayland

Which Wayland compositor or X11 Window manager(s) are you using?

KWin

WezTerm version

20250103-121535-8e9cf912

Did you try the latest nightly build to see if the issue is better (or worse!) than your current version?

Yes, and I updated the version box above to show the version of the nightly that I tried

Describe the bug

After screen lock, wezterm window is restored in the wrong place.

To Reproduce

I have a multi-display setup: 1x DisplayPort @ 3840x2160 scaled 125%, 1x HDMI @ 1920x1080 scaled 100%
Lock session and turn off DisplayPort monitor (HDMI display can be turned off or not - does not matter).
Turn monitor(s) back on and unlock - everythings is as before except Wezterm windows.

Configuration

None

Expected Behavior

The windows should be restored to the same size and at the same place as they were.

Logs

These are the logs starting immediately before locking the session and turning off the DisplayPort monitor.

WAYLAND_DEBUG=1 WEZTERM_LOG=info wezterm start --always-new-process
[2407504.639] xdg_toplevel#28.configure(1429, 948, array[4])
[2407504.705] xdg_surface#27.configure(11183)
[2407504.734] -> xdg_surface#27.ack_configure(11183)
[2407504.808] -> xdg_surface#27.set_window_geometry(0, 0, 2858, 1896)
[2407504.842] -> wl_surface#26.commit()
[2407504.875] -> wl_surface#26.frame(new id wl_callback#35)
[2407505.707] {mesa egl surface queue} wl_buffer#32.release()
[2407505.756] {mesa egl surface queue} wl_callback#40.done(3842797)
[2407517.564] {mesa egl surface queue} -> wl_surface#26.frame(new id wl_callback#40)
[2407517.586] {mesa egl surface queue} -> wl_surface#26.attach(wl_buffer#32, 0, 0)
[2407517.592] {mesa egl surface queue} -> wl_surface#26.damage(0, 0, 2147483647, 2147483647)
[2407517.596] {mesa egl surface queue} -> wl_surface#26.commit()
[2411324.834] wl_registry#2.global_remove(81)
[2411324.862] wl_output#7.geometry(0, 0, 521, 293, 0, "Philips Consumer Electronics Company", "Philips 247E4/AU01427008134", 0)
[2411324.872] zxdg_output_v1#10.logical_position(0, 0)
[2411324.876] wl_surface#26.leave(wl_output#8)
[2411324.880] wl_registry#2.global_remove(82)
[2411324.885] wl_surface#26.enter(wl_output#7)
[2411324.887] wl_registry#2.global_remove(80)
[2411324.892] wl_output#7.done()
[2411324.895] wl_surface#26.preferred_buffer_scale(1)
[2411324.899] xdg_toplevel#28.configure(1429, 948, array[4])
[2411324.904] xdg_surface#27.configure(11207)
[2411324.926] -> zxdg_output_v1#11.destroy()
[2411324.933] -> wl_output#8.release()
[2411324.951] -> xdg_surface#27.ack_configure(11207)
[2411324.980] -> xdg_surface#27.set_window_geometry(0, 0, 1429, 948)
[2411377.087] -> wl_shm_pool#4.create_buffer(new id wl_buffer#34, 0, 1, 1, 4, 0)
[2411377.153] -> wl_surface#26.attach(wl_buffer#34, 0, 0)
[2411377.188] -> wl_surface#26.set_buffer_scale(1)
[2411377.207] -> wl_buffer#34.destroy()
[2411377.235] -> wl_surface#26.commit()
[2411377.363] -> xdg_surface#27.set_window_geometry(0, 0, 1422, 937)
[2411377.427] -> wl_surface#26.commit()
[2411379.178] {Display Queue} wl_display#1.delete_id(11)
[2411379.307] {Display Queue} wl_display#1.delete_id(8)
[2411379.350] {Display Queue} wl_display#1.delete_id(34)
[2411379.404] zxdg_toplevel_decoration_v1#29.configure(2)
[2411379.457] xdg_toplevel#28.wm_capabilities(array[16])
[2411379.477] xdg_toplevel#28.configure_bounds(1918, 1051)
[2411379.518] xdg_toplevel#28.configure(0, 0, array[0])
[2411379.545] xdg_surface#27.configure(11219)
[2411379.585] -> xdg_surface#27.ack_configure(11219)
[2415299.118] wl_registry#2.global(83, "wp_drm_lease_device_v1", 1)
[2415299.138] wl_registry#2.global(84, "kde_output_device_v2", 9)
[2415299.145] wl_output#7.geometry(3200, 0, 521, 293, 0, "Philips Consumer Electronics Company", "Philips 247E4/AU01427008134", 0)
[2415299.154] zxdg_output_v1#10.logical_position(3200, 0)
[2415299.158] wl_registry#2.global(85, "wl_output", 4)
[2415299.162] wl_output#7.done()
[2415299.165] wl_surface#26.preferred_buffer_scale(2)
[2415299.170] xdg_toplevel#28.configure_bounds(3198, 1771)
[2415299.173] xdg_toplevel#28.configure(0, 0, array[0])
[2415299.177] xdg_surface#27.configure(11224)
[2415299.198] -> wl_registry#2.bind(85, "wl_output", 4, new id [unknown]#34)
[2415299.207] -> zxdg_output_manager_v1#9.get_xdg_output(new id zxdg_output_v1#8, wl_output#34)
[2415299.222] -> xdg_surface#27.ack_configure(11224)
[2415299.294] wl_output#34.name("DP-1")
[2415299.299] wl_output#34.description("Samsung Electric Company U28E590/HTPHB03330")
[2415299.302] wl_output#34.mode(1, 3840, 2160, 59997)
[2415299.305] wl_output#34.scale(2)
[2415299.308] wl_output#34.geometry(0, 0, 607, 345, 0, "Samsung Electric Company", "U28E590/HTPHB03330", 0)
[2415299.312] wl_output#34.done()
[2415299.315] zxdg_output_v1#8.logical_position(0, 0)
[2415299.317] zxdg_output_v1#8.logical_size(3200, 1800)
[2415299.320] zxdg_output_v1#8.name("DP-1")
[2415299.323] zxdg_output_v1#8.description("Samsung Electric Company U28E590/HTPHB03330")
[2415299.326] wl_output#34.done()
[2422074.454] {Display Queue} wl_display#1.delete_id(35)
[2422074.480] {Display Queue} wl_display#1.delete_id(40)
[2422074.484] wl_callback#35.done(3867004)
[2422074.560] -> wl_surface#26.frame(new id wl_callback#35)
[2422104.934] {mesa egl surface queue} wl_buffer#32.release()
[2422104.980] {mesa egl surface queue} -> wl_buffer#32.destroy()
[2422104.989] {mesa egl surface queue} wl_callback#40.done(3867004)
[2422110.547] {mesa egl surface queue} -> wl_surface#26.frame(new id wl_callback#40)
[2422110.589] {mesa egl display queue} -> zwp_linux_dmabuf_v1#37.create_params(new id zwp_linux_buffer_params_v1#11)
[2422110.641] {mesa egl surface queue} -> zwp_linux_buffer_params_v1#11.add(fd 28, 0, 0, 5760, 16777216, 4)
[2422110.658] {mesa egl surface queue} -> zwp_linux_buffer_params_v1#11.add(fd 30, 1, 5529600, 256, 16777216, 4)
[2422110.670] {mesa egl surface queue} -> zwp_linux_buffer_params_v1#11.create_immed(new id wl_buffer#31, 1422, 937, 875713089, 0)
[2422110.681] {mesa egl surface queue} -> zwp_linux_buffer_params_v1#11.destroy()
[2422110.689] {mesa egl surface queue} -> wl_surface#26.attach(wl_buffer#31, 0, 0)
[2422110.696] {mesa egl surface queue} -> wl_surface#26.damage(0, 0, 2147483647, 2147483647)
[2422110.709] {mesa egl surface queue} -> wl_surface#26.commit()
[2422110.794] -> zwp_text_input_v3#19.set_cursor_rectangle(81, 23, 4, 10)
[2422110.804] -> zwp_text_input_v3#19.commit()
[2422150.796] {Display Queue} wl_display#1.delete_id(32)
[2422150.823] {Display Queue} wl_display#1.delete_id(11)
[2422150.827] {Display Queue} wl_display#1.delete_id(35)
[2422150.831] {Display Queue} wl_display#1.delete_id(40)
[2422150.836] wl_surface#26.leave(wl_output#7)
[2422150.861] wl_surface#26.enter(wl_output#34)
[2422150.867] wl_surface#26.leave(wl_output#34)
[2422150.873] wl_surface#26.enter(wl_output#7)
[2422150.880] wl_pointer#23.enter(11284, wl_surface#26, 711.00000000, 455.00000000)
[2422150.888] wl_pointer#23.frame()
[2422150.893] wl_keyboard#18.modifiers(11285, 0, 0, 0, 0)
[2422150.902] xdg_wm_base#14.ping(11286)
[2422150.908] wl_keyboard#18.enter(11289, wl_surface#26, array[0])
[2422150.912] wl_keyboard#18.modifiers(11285, 0, 0, 0, 0)
[2422150.919] wl_data_device#20.data_offer(new id wl_data_offer#4278190081)
[2422150.929] wl_data_offer#4278190081.offer("text/plain")
[2422150.936] wl_data_offer#4278190081.offer("application/x-kde-onlyReplaceEmpty")
[2422150.941] wl_data_offer#4278190081.offer("text/plain;charset=utf-8")
[2422150.946] wl_data_device#20.selection(wl_data_offer#4278190081)
[2422150.951] zwp_primary_selection_device_v1#21.data_offer(new id zwp_primary_selection_offer_v1#4278190080)
[2422150.959] zwp_primary_selection_offer_v1#4278190080.offer("text/plain")
[2422150.965] zwp_primary_selection_offer_v1#4278190080.offer("application/x-kde-onlyReplaceEmpty")
[2422150.970] zwp_primary_selection_offer_v1#4278190080.offer("text/plain;charset=utf-8")
[2422150.975] zwp_primary_selection_device_v1#21.selection(zwp_primary_selection_offer_v1#4278190080)
[2422150.980] zwp_text_input_v3#19.enter(wl_surface#26)
[2422150.986] zwp_text_input_v3#19.done(8)
[2422150.991] wl_callback#35.done(3867090)
[2422150.999] wl_surface#26.preferred_buffer_scale(1)
[2422151.004] xdg_toplevel#28.configure(1422, 937, array[4])
[2422151.012] xdg_surface#27.configure(11292)
[2422151.069] -> xdg_wm_base#14.pong(11286)
[2422151.084] -> zwp_text_input_v3#19.enable()
[2422151.089] -> zwp_text_input_v3#19.commit()
[2422151.639] -> wl_data_offer#4278190082.destroy()
[2422151.686] -> zwp_primary_selection_offer_v1#4278190083.destroy()
[2422151.940] -> xdg_surface#27.ack_configure(11292)
[2422152.051] -> wl_surface#26.frame(new id wl_callback#35)
[2422152.562] {mesa egl surface queue} wl_callback#40.done(3867090)
[2422155.343] {mesa egl surface queue} -> wl_surface#26.frame(new id wl_callback#40)
[2422155.385] {mesa egl display queue} -> zwp_linux_dmabuf_v1#37.create_params(new id zwp_linux_buffer_params_v1#11)
[2422155.453] {mesa egl surface queue} -> zwp_linux_buffer_params_v1#11.add(fd 28, 0, 0, 5760, 16777216, 4)
[2422155.470] {mesa egl surface queue} -> zwp_linux_buffer_params_v1#11.add(fd 30, 1, 5529600, 256, 16777216, 4)
[2422155.479] {mesa egl surface queue} -> zwp_linux_buffer_params_v1#11.create_immed(new id wl_buffer#32, 1422, 937, 875713089, 0)
[2422155.489] {mesa egl surface queue} -> zwp_linux_buffer_params_v1#11.destroy()
[2422155.496] {mesa egl surface queue} -> wl_surface#26.attach(wl_buffer#32, 0, 0)
[2422155.501] {mesa egl surface queue} -> wl_surface#26.damage(0, 0, 2147483647, 2147483647)
[2422155.507] {mesa egl surface queue} -> wl_surface#26.commit()
[2422155.878] -> xdg_surface#27.set_window_geometry(0, 0, 1422, 937)
[2422155.894] -> wl_surface#26.commit()
[2422156.087] -> zwp_text_input_v3#19.set_cursor_rectangle(162, 47, 9, 20)
[2422156.105] -> zwp_text_input_v3#19.commit()
[2422236.466] {Display Queue} wl_display#1.delete_id(11)
[2422236.509] {Display Queue} wl_display#1.delete_id(35)
[2422236.553] {Display Queue} wl_display#1.delete_id(40)
[2422236.572] zwp_text_input_v3#19.done(9)
[2422236.595] zwp_text_input_v3#19.done(10)
[2422236.603] wl_callback#35.done(3867157)
[2422237.664] -> wl_surface#26.frame(new id wl_callback#35)
[2422238.253] {mesa egl surface queue} wl_buffer#31.release()
[2422238.306] {mesa egl surface queue} wl_buffer#36.release()
[2422238.322] {mesa egl surface queue} -> wl_buffer#36.destroy()
[2422238.345] {mesa egl surface queue} wl_callback#40.done(3867157)
[2422238.657] {mesa egl surface queue} -> wl_surface#26.frame(new id wl_callback#40)
[2422238.669] {mesa egl surface queue} -> wl_surface#26.attach(wl_buffer#31, 0, 0)
[2422238.674] {mesa egl surface queue} -> wl_surface#26.damage(0, 0, 2147483647, 2147483647)
[2422238.679] {mesa egl surface queue} -> wl_surface#26.commit()
[2422288.377] {Display Queue} wl_display#1.delete_id(36)
[2422288.419] {Display Queue} wl_display#1.delete_id(35)
[2422288.432] {Display Queue} wl_display#1.delete_id(40)
[2422288.438] wl_callback#35.done(3867257)

Anything else?

Maybe related to #6374

@thprice thprice added the bug Something isn't working label Jan 5, 2025
@thprice thprice changed the title Window shrinks to 1x1 after screen lock and multi-resolution displays Window in wrong place after screen lock and multi-resolution displays Jan 5, 2025
@thprice thprice changed the title Window in wrong place after screen lock and multi-resolution displays Window in wrong place after screen lock with multi-resolution displays Jan 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant