Mike Gabriel writes ("Re: Upcoming shift to Ayatana (App)Indicator(s)"): > On Di 03 Apr 2018 20:11:43 CEST, Ian Jackson wrote: > > Answers to 2 should ideally suppose that I want to continue to use > > XID-based window embedding to make an applet which contains the window > > from a separate X client. > > I am not sure, I am fully getting the application design, you have in > mind here. Do you mean X-embedding (this is about icons and systray > and the icons have menus and submenus) or reparenting? With X11 > reparenting you can reparent X11 application 1 into X11 application 2. > (xterm has it even as cmdline option).
My applet has *both* of the above. Firstly, the applet uses the xembed protocol (via the tcl tktray package) to embed its toplevel X11 window into the tray (provided by trayer, although I don't see why it shouldn't work with a full-on DE). Secondly, the applet's tcl code makes a subwindow (using `frame -container'), whose X11 window ID it passes to a separate program; that separate program is given the window ID with -into and makes its own window a child of the applet's. So, overall, the subprocess's rendering is displayed in the tray; but the tcl code handles user mouse input etc. Regards, Ian.