Git Product home page Git Product logo

Comments (7)

Consolatis avatar Consolatis commented on July 3, 2024 2

It was a wlroots / sway bug:

Hyprland has the same issue:

Background: wlroots used to always announce version 4 of the protocol which added support for ON_DEMAND but not all wlroots based compositors added that support. Hyprland and old versions of sway seem to treat it the same as EXCLUSIVE instead. This has been fixed in wlroots by allowing compositors to supply the supported version (e.g. 3 if not supporting ON_DEMAND). Panels could thus check for the announced version and then either use EXCLUSIVE / NONE if version 3 is announced or ON_DEMAND for version 4.

from cosmic-panel.

ids1024 avatar ids1024 commented on July 3, 2024 1

Yeah, the definition of the protocol is written in a way that allows a lot of flexibility in how it works. But it doesn't seem quite right given clicking on a window and using super+hjkl doesn't work.

I guess swaybar may require keyboard interactivity. Not sure what else would. Given the protocol specifically mentions panels as a use case for on_demand, and the protocol was defined by wlroots, it seems like there should be a way for this to work properly.

Edit: Hm, clicking on another window results in the panel getting wl_keyboard::leave immediately followed by wl_keyboard::enter. Seems like something sway/wlroots shouldn't be doing given it's not showing any request from the client to grab focus back or anything...

from cosmic-panel.

ids1024 avatar ids1024 commented on July 3, 2024 1

Looking at apt rdepends libgtk-layer-shell0, vala-panel and mate-panel are a couple panels using layer-shell. But they use the default none keyboard interactivity in gtk-layer-shell. Modifying mate-panel to use on_demand, the same issue seems to occurs (but that enables keyboard interaction with the menus in mate panel itself, which naturally doesn't work with none).

So cosmic-panel doesn't seem to be doing anything too unusual, and it may be a wlroots or sway issue. Perhaps the on_demand feature worked initially but broke if it isn't really used.

from cosmic-panel.

wash2 avatar wash2 commented on July 3, 2024

I'm not sure that this is an issue in the panel, but I have also noticed this for a while. I believe it could be specific behavior with sway considering that the compositor would be responsible for handling which clients are sent input events, unless somehow the keyboard interactivity for the layer surfaces are being set incorrectly in the panel. Perhaps there is a way that the panel needs to request to be unfocused, or in sway there is a keybinding for unfocusing it?

Nevertheless, it is possible for a compositor to require a special interaction to focus or unfocus layer shell surface
https://wayland.app/protocols/wlr-layer-shell-unstable-v1#zwlr_layer_surface_v1:enum:keyboard_interactivity:entry:on_demand

from cosmic-panel.

wash2 avatar wash2 commented on July 3, 2024

Looking at the source for waybar & swaybar, it seems to me that both set keyboard interactivity to None. Maybe there is another panel that uses on_demand to cross reference with?

from cosmic-panel.

ids1024 avatar ids1024 commented on July 3, 2024

Ah, good to hear it's fixed. So that explains why I wasn't able to reproduce it recently.

This seems to be an awkward thing with Wayland in general: with a compositor/library split, implementing a new protocol version in the library isn't necessary possible without compositor changes.

from cosmic-panel.

XV-02 avatar XV-02 commented on July 3, 2024

Thanks, Consolatis for highlighting that this was resolved.

from cosmic-panel.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.