So instead of using a GdkNativeWindow to send to (which doesn't gel with client side windows anyway) I thought I'd go looking for someway of sending a GdkEvent to a GtkWidget... and I found one! gtk_propagate_event does what I want but it's synchronous. I would like a asynchronous version, that simply puts the event into the message que for later processing... preferably in a thread safe way.
I've been using client messages to post results from worker threads (amongst other things) up to the gui for integration into the UI. On windows the function I'm looking for is PostMessage. I have an open stack overflow post here: http://stackoverflow.com/questions/3041869/receiving-client-event-on-a-gtkwindow Original message: > I'm trying to catch a client event on a GtkWindow. > > static gboolean MyClientEvent(GtkWidget *widget, GdkEventClient *ev, > MyWnd *Wnd) { > // breakpoint here... > return TRUE; > } > > GtkWidget *Wnd = gtk_window_new(GTK_WINDOW_TOPLEVEL); > g_signal_connect( G_OBJECT(Wnd), > "client-event", > G_CALLBACK(MyClientEvent), > this); > gtk_widget_add_events(Wnd, GDK_ALL_EVENTS_MASK); > > > Sending code: > > GtkWidget *Wnd; > GdkNativeWindow Hnd = > #ifdef WIN32 > GDK_WINDOW_HWND(Wnd->window); > #else > GDK_WINDOW_XWINDOW(Wnd->window); > #endif > GdkEvent *Event = gdk_event_new(GDK_CLIENT_EVENT); > // fill out Event params > gdk_event_send_client_message(Event, Hnd); > > This is on windows at the moment and I see the client message get sent > using Spy++, but nothing at the receiving end catches it. Both sender and > receiver are in the same application. -- Matthew Allen http://www.memecode.com _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list