On Wed, 14 Mar 2018 09:13:48 -0400 Drew DeVault <ddeva...@vistarmedia.com> wrote:
> >just checking, how did you design your own protocol extension to take > >advantage of xdg_popup? I mean, mechanically, what does the protocol > >request sequence look like when you create an xdp_popup for your own > >purpose? > > > >I'm asking because there is a pretty subtle and horrible catch if it's > >done "wrong". Having your own protocol extension include a request that > >creates a protocol object of type xdg_popup is the wrong way. There are > >other ways to do it without accidentally freezing the xdp_popup > >interface for all eternity. > > Yeah, thankfully this is not how we do it. We do something like this: > > 1. xdg_surface = xdg_shell.get_xdg_surface(surface=wl_surface) > 2. xdg_positioner = xdg_shell.get_positioner() > 3. xdg_popup = surface.get_popup(parent=NULL, positioner=xdg_positioner) > 4. layer_surface.assign_popup(popup=xdg_popup) > > <request name="assign_popup"> > <description summary="assign this layer_surface as an xdg_popup parent"> > This assigns an xdg_popup's parent to this layer_surface. This popup > should have been created via xdg_surface::get_popup with the parent set > to NULL, and this request must be invoked before committing the popup's > initial state. > > See the documentation of xdg_popup for more details about what an > xdg_popup is and how it is used. > </description> > <arg name="popup" type="object" interface="xdg_popup"/> > </request> Alright, cool. Carry on! :-) So that's how Weston's panel and background could regain their popup menus as well, good to know. Thanks, pq > Discussion on the specific protocol we're working on is here: > > https://github.com/swaywm/wlr-protocols/pull/7 > > -- > Drew DeVault
pgphDNN_F_RW8.pgp
Description: OpenPGP digital signature
_______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel