----- Original Message ----- > I try to cross compile virt-viewer to win32 using Debian Jessie. So far it > works, > but only if I apply the following patch to spice-widget.c: > > Index: new/gtk/spice-widget.c > =================================================================== > --- new.orig/gtk/spice-widget.c 2013-06-26 15:55:08.000000000 +0200 > +++ new/gtk/spice-widget.c 2013-09-24 12:00:17.889780000 +0200 > @@ -1286,7 +1286,12 @@ > static void update_display(SpiceDisplay *display) > { > #ifdef WIN32 > - win32_window = display ? > GDK_WINDOW_HWND(gtk_widget_get_window(GTK_WIDGET(display))) : NULL; > + if (!display) > + return; > + > + GdkWindow *win = gtk_widget_get_window(GTK_WIDGET(display)); > + > + win32_window = win ? GDK_WINDOW_HWND(win) : NULL; > #endif > } > > Seems that update_display() is called early on startup when the window is not > realized. Do you have a backtrace? It should only be called in enter or focus events, which I assume shouldn't happen when the widget is not realized. > So this results is a call to GDK_WINDOW_HWND(NULL), which simply crash > remote-viewer.exe Ok that macro isn't safe. Why do you check (!display), this would really be a programming bug, more than runtime bug. I think we should also keep warning when this happen, since it may result in buggy keyboard behaviour later on. ie, doing this: { GdkWindow *win = gtk_widget_get_window(GTK_WIDGET(display)); g_return_if_fail(win != NULL); win32_window = GDK_WINDOW_HWND(win); } > I have no idea why this only happens with the binaries I compiled myself. What version of gtk? (I haven't tried gtk3 on windows for a long time) _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel