Your message dated Thu, 22 Feb 2007 19:01:55 +0100
with message-id <[EMAIL PROTECTED]>
and subject line Bug#252203: libgtk2.0: relocation error: 
/usr/lib/libgtk-x11-2.0.so.0
has caused the attached Bug report to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere.  Please contact me immediately.)

Debian bug tracking system administrator
(administrator, Debian Bugs database)

--- Begin Message ---
Package: libgtk2.0-0
Version: 2.4.1-4

I've noticed that a recent update seems to have broken the
gdk_window_set_icon() function, at least as far as using the
icon_window parameter. Specifically, it doesn't seem to get around to
setting the IconWindowHint on the leader window. If i set this one hint
manually, it works as expected.

I'm not sure which version introducted this bug, but i suspect the one
that introduced the function update_wm_hints in gdk/x11/gdkwindow-x11.c.
If that's true, please forward this upstream.

The following code segment used to work and now doesn't.

static GdkWindow *get_gdk_leader(GdkWindow *win){
    GdkAtom atom, type;
    gint len;
    guchar *data;
    GdkWindow *leader=NULL;

    atom=gdk_atom_intern("WM_CLIENT_LEADER", TRUE);
    type=gdk_atom_intern("WINDOW", TRUE);
    if(atom==GDK_NONE || type==GDK_NONE) return NULL;
    if(!gdk_property_get(win, atom, type, 0, 4, FALSE, NULL, NULL, &len, 
&data)) return NULL;
    if(len==4) leader=gdk_window_foreign_new(*(GdkNativeWindow *)data);
    g_free(data);
    return leader;
}

static GtkWidget *dockwin, *iconwin;

void openDockWindow(...)
    GdkWindow *leader;
    XWMHints hints;

    if((dockwin=gtk_window_new(GTK_WINDOW_TOPLEVEL))==NULL) die("Couldn't 
create window");
    if((iconwin=gtk_window_new(GTK_WINDOW_TOPLEVEL))==NULL) die("Couldn't 
create window");
    gtk_widget_set_size_request(dockwin, 64, 64);
    gtk_widget_set_size_request(iconwin, 64, 64);
    gtk_widget_set_app_paintable(dockwin, TRUE);
    gtk_widget_set_app_paintable(iconwin, TRUE);

    // ... more setup here ...

    gtk_widget_realize(dockwin);
    gtk_widget_realize(iconwin);

    // ... more setup here ...

    if((leader=get_gdk_leader(dockwin->window))==NULL) die("Couldn't obtain Gdk 
leader window");
    gdk_window_reparent(iconwin->window, leader, 0, 0);
    gdk_window_set_icon(leader, iconwin->window, NULL, NULL);
    // Add the following 3 lines to make it work now:
    // hints.icon_window = GDK_WINDOW_XWINDOW(iconwin->window);
    // hints.flags = IconWindowHint;
    // XSetWMHints(GDK_DISPLAY(), GDK_WINDOW_XWINDOW(leader), &hints);
    gdk_window_unref(leader);

    // ... more setup here ...

    gtk_widget_show(iconwin);
    gtk_widget_show(dockwin);
    gdk_window_withdraw(dockwin->window);
}


--- End Message ---
--- Begin Message ---
        Hi,

 This is a followup for Debian bug <http://bugs.debian.org/252203>.

 A while ago, Sébastien asked for further information:

On Sat, Oct 16, 2004, Sebastien Bacher wrote:
> What's the result of a "ldd /usr/bin/gqview | grep gobject" ?

 I'm closing this bug; please reopen if necessary.

   Bye,
-- 
Loïc Minier <[EMAIL PROTECTED]>

--- End Message ---

Reply via email to