I&#39;m still banging my head against a wall with this:<br><br>why without reparenting the popup undecorated window to the main app window it becomes transparent but the app menu doesn&#39;t work (it starts to be drawn but immediately disappears) and viceversa?<br>
<br>The final version of my function is this:<br><br>void create_image_details(GtkWidget *callerobj,app_data_t *myapp) {<br>    GdkScreen *screen;<br>    PangoLayout *textbuff;<br>    cairo_t *cr;<br>    gint offset, padding, txtwidth, txtheight;<br>
<br>    offset = 20;<br>    padding = 10;<br>    /* For the widget itself let&#39;s use a GtkWindow */<br>    if ((myapp-&gt;imgparamwin != NULL) &amp; GTK_IS_WINDOW(myapp-&gt;imgparamwin)) draw_image_details(myapp-&gt;imgparamwin,NULL,myapp);<br>
    else {<br>        myapp-&gt;imgparamwin = gtk_window_new(GTK_WINDOW_POPUP);<br>        gtk_window_set_decorated(GTK_WINDOW (myapp-&gt;imgparamwin),FALSE);<br>        gtk_widget_set_app_paintable(myapp-&gt;imgparamwin,TRUE);<br>
        screen = gtk_widget_get_screen(myapp-&gt;imgparamwin);<br>        gtk_widget_set_colormap(myapp-&gt;imgparamwin,gdk_screen_get_rgba_colormap(screen));<br>        gtk_window_set_transient_for(GTK_WINDOW (myapp-&gt;imgparamwin),GTK_WINDOW (myapp-&gt;mainwin));<br>
        gtk_window_set_destroy_with_parent(GTK_WINDOW (myapp-&gt;imgparamwin),TRUE);<br>        gtk_widget_realize(myapp-&gt;imgparamwin);<br>        /* Get the Cairo context and the overall dimensions of the text to be displayed */<br>
        cr = gdk_cairo_create(GDK_DRAWABLE (myapp-&gt;imgparamwin-&gt;window));<br>        textbuff = pango_cairo_create_layout(cr);<br>        pango_layout_set_markup(textbuff,myapp-&gt;imgparam,-1);<br>        pango_layout_get_pixel_size(textbuff,&amp;txtwidth,&amp;txtheight);<br>
        cairo_destroy(cr);<br>        g_object_unref(textbuff);<br>        /* Show the widget */<br>        gtk_widget_set_size_request(myapp-&gt;imgparamwin,txtwidth + padding,txtheight + padding);<br>        gtk_window_set_resizable(GTK_WINDOW (myapp-&gt;imgparamwin),FALSE);<br>
        gtk_window_set_accept_focus(GTK_WINDOW (myapp-&gt;imgparamwin),FALSE);<br>        /* gdk_window_set_override_redirect(myapp-&gt;imgparamwin-&gt;window,TRUE);<br>        gdk_window_reparent(myapp-&gt;imgparamwin-&gt;window,gtk_widget_get_window(GTK_WIDGET (myapp-&gt;mainwin)),offset,offset); */<br>
        gtk_window_move(GTK_WINDOW (myapp-&gt;imgparamwin),offset,offset);<br>        gtk_widget_show(myapp-&gt;imgparamwin);<br>        /* Actual drawing needs to take place when the widget is exposed */<br>        g_signal_connect_after(myapp-&gt;imgparamwin,&quot;expose-event&quot;,<br>
                G_CALLBACK (draw_image_details),myapp);<br>    }<br>}<br><br>--<br>Luca Donaggio<br>