From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48811) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c0rxv-00041K-I4 for qemu-devel@nongnu.org; Sun, 30 Oct 2016 11:24:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1c0rxu-0006PS-NQ for qemu-devel@nongnu.org; Sun, 30 Oct 2016 11:24:07 -0400 Received: from hera.aquilenet.fr ([2a01:474::1]:41781) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c0rxu-0006PK-GU for qemu-devel@nongnu.org; Sun, 30 Oct 2016 11:24:06 -0400 Date: Sun, 30 Oct 2016 16:24:04 +0100 From: Samuel Thibault Message-ID: <20161030152404.GY3671@var.home> References: <20161023195433.20102-1-samuel.thibault@ens-lyon.org> <20161023195433.20102-4-samuel.thibault@ens-lyon.org> <1477477064.18984.39.camel@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1477477064.18984.39.camel@redhat.com> Subject: Re: [Qemu-devel] [PATCH 3/3] Move getting XWindow ID from baum driver to graphical backend List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gerd Hoffmann Cc: qemu-devel@nongnu.org Gerd Hoffmann, on Wed 26 Oct 2016 12:17:44 +0200, wrote: > > + /* All consoles share the same window */ > > No. That is the default setup, but try "View / Detach tab". Window ID > changing at runtime ... So we would need to make baum register for notification of Window ID change. It could be a mere typedef void QemuConsoleWindowIDListener(void); qemu_console_window_id_add_listener(QemuConsoleWindowIDListener listener); qemu_console_window_id_remove_listener(QemuConsoleWindowIDListener listener); that adds/removes the listener to a list to be called when qemu_console_set_window_id is called. Or we could generalize a bit: typedef void QemuConsoleConfigListener(void); qemu_console_config_add_listener(QemuConsoleConfigListener listener); qemu_console_config_remove_listener(QemuConsoleConfigListener listener); Or even more generalized: struct QemuConsoleListener { void (*window_id)(void); }; typedef struct QemuConsoleListener QemuConsoleListener; qemu_console_add_listener(QemuConsoleListener *listener); qemu_console_remove_listener(QemuConsoleListener *listener); What would be preferrable? Samuel