Skip to content
This repository has been archived by the owner on Jan 26, 2024. It is now read-only.

merge wlroots-next #334

Merged
merged 78 commits into from Dec 2, 2022
Merged

merge wlroots-next #334

merged 78 commits into from Dec 2, 2022

Conversation

sevz17
Copy link
Collaborator

@sevz17 sevz17 commented Nov 11, 2022

Closes: #307

A Frederick Christensen and others added 30 commits January 18, 2022 11:33
which has its own wlr_input_device

Signed-off-by: Leonardo Hernández Hernández <leohdz172@protonmail.com>
mostly copied from sway
applyrules() calls setmon() which calls resize()
For brevity, only a single drag icon at a time is supported.

Co-authored-by: Leonardo Hernández Hernández <leohdz172@protonmail.com>
Documentation is good.  Man pages are documentation.  A program without
a man page is worthless.
part of the code in dwl is taken from sway, so credit it.
dwm and sway are both licensed under the MIT license
Some people are annoyed to have this new behaviour forced for some
application which use fake fullscreen.
This variable can be removed since with scene-graph
wlr_presentation_surface_sampled_on_output no longer needs to be called.
This reverts commit 9aec604.

this problem is caused because xytonode() returns the surface of the
drag icon
@sevz17
Copy link
Collaborator Author

sevz17 commented Nov 21, 2022

Testing this on wlroots 0.16, I'm getting a segfault from a996191 when launching a Steam game (backtrace below). Dropping that commit seems to work correctly.

#0  applybounds (bbox=0x60, c=0x555555f54680) at dwl.c:400
No locals.
#1  resize (c=0x555555f54680, geo=..., interact=interact@entry=0) at dwl.c:1715
        bbox = 0x60
#2  0x000055555555e8cb in configurex11 (listener=<optimized out>, data=<optimized out>) at dwl.c:2491
        c = <optimized out>
        event = <optimized out>
#3  0x00007ffff7e9147c in wl_signal_emit_mutable (signal=<optimized out>, data=0x7fffffffda50) at ../src/wayland-server.c:2179
        pos = 0x555555f547d0
        l = 0x555555f547d0
        cursor = {link = {prev = 0x555555f547d0, next = 0x7fffffffd9b0}, notify = 0x7ffff7e8e740 <handle_noop>}
        end = {link = {prev = 0x7fffffffd9d0, next = 0x555555f54518}, notify = 0x7ffff7e8e740 <handle_noop>}
#4  0x00007ffff7f3bf82 in ?? () from /usr/lib64/libwlroots.so.11
No symbol table info available.
#5  0x00007ffff7e92e22 in wl_event_loop_dispatch (loop=0x555555578530, timeout=timeout@entry=-1) at ../src/event-loop.c:1027
        ep = {{events = 1, data = {ptr = 0x555555de91e0, fd = 1440649696, u32 = 1440649696, u64 = 93825001230816}}, {events = 1, data = {ptr = 0x555555de8220, fd = 1440645664, 
              u32 = 1440645664, u64 = 93825001226784}}, {events = 1989891328, data = {ptr = 0x3f800000fe5d81af, fd = -27426385, u32 = 4267540911, u64 = 4575657225675964847}}, {events = 0, 
            data = {ptr = 0x555555f3b0d0, fd = 1442033872, u32 = 1442033872, u64 = 93825002614992}}, {events = 4294957968, data = {ptr = 0x1800007fff, fd = 32767, u32 = 32767, 
              u64 = 103079247871}}, {events = 0, data = {ptr = 0x555555f3e0e8, fd = 1442046184, u32 = 1442046184, u64 = 93825002627304}}, {events = 1442037976, data = {ptr = 0x100005555, 
              fd = 21845, u32 = 21845, u64 = 4294989141}}, {events = 0, data = {ptr = 0x7ffff7e8fadf <wl_connection_flush+319>, fd = -135726369, u32 = 4159240927, u64 = 140737352628959}}, {
            events = 1103101952, data = {ptr = 0x1800000000, fd = 0, u32 = 0, u64 = 103079215104}}, {events = 0, data = {ptr = 0x7fffffffdbd0, fd = -9264, u32 = 4294958032, 
              u64 = 140737488346064}}, {events = 6, data = {ptr = 0x3c74, fd = 15476, u32 = 15476, u64 = 15476}}, {events = 0, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 0, 
            data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 0, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {events = 0, data = {ptr = 0x0, fd = 0, u32 = 0, u64 = 0}}, {
            events = 0, data = {ptr = 0x60, fd = 96, u32 = 96, u64 = 96}}, {events = 1442041164, data = {ptr = 0x1800005555, fd = 21845, u32 = 21845, u64 = 103079236949}}, {events = 0, 
            data = {ptr = 0x555555f3c0d8, fd = 1442037976, u32 = 1442037976, u64 = 93825002619096}}, {events = 8, data = {ptr = 0x1400000000, fd = 0, u32 = 0, u64 = 85899345920}}, {
            events = 0, data = {ptr = 0x100000001, fd = 1, u32 = 1, u64 = 4294967297}}, {events = 46, data = {ptr = 0xf7f0065800005555, fd = 21845, u32 = 21845, 
              u64 = 17865786696805668181}}, {events = 24, data = {ptr = 0x4059000000000000, fd = 0, u32 = 0, u64 = 4636737291354636288}}, {events = 1440174080, data = {
              ptr = 0x55e09e7000005555, fd = 21845, u32 = 21845, u64 = 6188120091880609109}}, {events = 21845, data = {ptr = 0x60, fd = 96, u32 = 96, u64 = 96}}, {events = 24, data = {
              ptr = 0x1800000000, fd = 0, u32 = 0, u64 = 103079215104}}, {events = 0, data = {ptr = 0x4, fd = 4, u32 = 4, u64 = 4}}, {events = 4159810263, data = {ptr = 0x400007fff, 
              fd = 32767, u32 = 32767, u64 = 17179901951}}, {events = 0, data = {ptr = 0xfe5d81af769b5500, fd = 1989891328, u32 = 1989891328, u64 = 18328948649076937984}}, {
            events = 1440330640, data = {ptr = 0x3f80000000005555, fd = 21845, u32 = 21845, u64 = 4575657221408445781}}, {events = 16799061, data = {ptr = 0x555555d9b390, fd = 1440330640, 
              u32 = 1440330640, u64 = 93825000911760}}, {events = 1989891328, data = {ptr = 0x55d9b5c0fe5d81af, fd = -27426385, u32 = 4267540911, u64 = 6186175403675976111}}, {
            events = 21845, data = {ptr = 0x555555578468, fd = 1431798888, u32 = 1431798888, u64 = 93824992380008}}}
        source = <optimized out>
        i = 0
        count = <optimized out>
        has_timers = <optimized out>
#6  0x00007ffff7e93575 in wl_display_run (display=0x555555578440) at ../src/wayland-server.c:1431
No locals.
#7  0x0000555555560f68 in run (startup_cmd=0x0) at dwl.c:1786
        socket = 0x555555d9be59 "wayland-1"
        socket = <optimized out>
        piperw = <optimized out>
#8  main (argc=1, argv=<optimized out>) at dwl.c:2619
        startup_cmd = 0x0

Can you try again, please?

now all fullcreen clients are rendered above tiled and floating clients

This partially reverts commit 326eee1.
@BenJarg
Copy link
Contributor

BenJarg commented Nov 23, 2022

Looks like that issue is resolved now.

I've encountered another issue with this PR that I don't see on the main branch that seems to affect XWayland clients only. When I open an XWayland client on one tag, move to another tag, then open another XWayland client, the new client seems to open on the same tag as the last XWayland client, but sometimes in some misconfigured way. For example, the new XWayland window sometimes ends up floating even though it should be starting in tiled layout. It's not obvious which commit here may be causing this behavior at first look, and unless you have an idea, I will try to debug this more later when I get a chance.

@paper42
Copy link

paper42 commented Nov 27, 2022

Let's wait for alpine, arch, gentoo and void. Gentoo already update the package. (the commit was reverted)

Hello, it's usually the other way around - downstreams (distributions) wait for support in upstreams (compositors). If all compositors waited for distributions to package the new version, distributions would never have any incentive to package the new version. Specifically in Void Linux, we are waiting for a few major compositors to start using 0.16 and we will then update wlroots to 0.16. We have the ability to use 0.15 for some packages, but it is not ideal and we would prefer to update as many compositors as possible to 0.16 in one go.

@dm1tz
Copy link
Contributor

dm1tz commented Nov 27, 2022

Let's wait for alpine, arch, gentoo and void. Gentoo already update the package. (the commit was reverted)

Alpine is ready.

@sevz17
Copy link
Collaborator Author

sevz17 commented Nov 28, 2022

Let's wait for alpine, arch, gentoo and void. Gentoo already update the package. (the commit was reverted)

Gentoo done.

@BenJarg
Copy link
Contributor

BenJarg commented Nov 29, 2022

So I've looked more into the issue I'm encountering with this PR mentioned above, and it seems the first XWayland client is for some reason becoming the parent of every subsequent XWayland client, so that mapnotify() is setting them as floating and on the same tags as the first XWayland client. I haven't been able to isolate a specific commit causing this, but it doesn't happen on main using wlroots 0.15.

@sevz17
Copy link
Collaborator Author

sevz17 commented Dec 1, 2022

So I've looked more into the issue I'm encountering with this PR mentioned above, and it seems the first XWayland client is for some reason becoming the parent of every subsequent XWayland client, so that mapnotify() is setting them as floating and on the same tags as the first XWayland client. I haven't been able to isolate a specific commit causing this, but it doesn't happen on main using wlroots 0.15.

For now, I disable that feature for xwayland clients.

@BenJarg
Copy link
Contributor

BenJarg commented Dec 1, 2022

@sevz17 Ok, that fixes the changing tags. All XWayland windows after the first are still floating though from applyrules() using client_is_float_type() to set floating. The last statement of client_is_float_type() will return true if the client has a parent from checking if client_get_parent(c) is not null.

@sevz17
Copy link
Collaborator Author

sevz17 commented Dec 1, 2022

@sevz17 Ok, that fixes the changing tags. All XWayland windows after the first are still floating though from applyrules() using client_is_float_type() to set floating. The last statement of client_is_float_type() will return true if the client has a parent from checking if client_get_parent(c) is not null.

Ah, I completely forgot about that, later I will change it.

@sevz17 sevz17 merged commit f929eae into djpohly:main Dec 2, 2022
sevz17 added a commit to sevz17/dwl that referenced this pull request Dec 6, 2022
sevz17 added a commit to sevz17/dwl that referenced this pull request Dec 6, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

v0.4
8 participants