GTK-Critical warning. But Why? GTK Bug?



Included is stripped down test program demonstrating my question. The code
is in Modula-2 but anyone should be able to read it just fine.

I get a GTK-Critical warning message GTK_IS_WIDGET failed when I click in
the GtkEntry control. This is on Solaris 10, IA32, January '06 edition.
Pkg-config says that GTK+ is 2.4.9.

Here is the sequence

1 Run the program.
2. Program comes up and the entry has the field text fully selected.
3. I click on the entry field with the mouse.
4. I get the Gtk-Critical warning. Followed by a GObject error but the two
are likely related.

Given how trivial this program is and when the error is generated, I see no
conclusion other than this is a possible GTK+ bug. I have never seen this
warning come out on other GTK+ systems from GTK+ 2.0 to GTK+ 2.2. I am
basically stuck living with whatever a system has installed. I have tested
on

Suse Linux 8, IA32
Suse Linux 9, IA32
Suse Linux 8, PowerPC
AIX 5.2, PowerPC
Solaris 8, SPARC
Solaris 10, IA32 <= this is where I get the error.

MODULE ttemp;
<*/NOWARN:F*>

FROM SYSTEM IMPORT
    ADR, UNREFERENCED_PARAMETER, CAST, CMD, CMD_COUNT;

FROM GTK IMPORT *;

FROM GLIB IMPORT
    gpointer;

FROM GOBJECT IMPORT
    GCallback, g_signal_connect_data, GClosureNotify;

PROCEDURE DialogDestroy(widget : pGtkObject;
                        data : gpointer) [SbOsSystem, EXPORT];
BEGIN
    UNREFERENCED_PARAMETER(widget);
    UNREFERENCED_PARAMETER(data);

    gtk_main_quit;
END DialogDestroy;

PROCEDURE PromptString;
VAR
    dialog,
    entry               : pGtkWidget;
BEGIN
    dialog := gtk_window_new(GTK_WINDOW_TOPLEVEL);
    g_signal_connect_data(dialog,
                          "destroy", CAST(GCallback, DialogDestroy), NIL,
                          CAST(GClosureNotify, NIL), 0);

    entry := gtk_entry_new();
    gtk_widget_show(entry);
    gtk_container_add(GTK_CONTAINER(dialog), entry);
    gtk_entry_set_text(GTK_ENTRY(entry), "Hello World");

    gtk_widget_show(dialog);
    gtk_window_present(GTK_WINDOW(dialog));

    gtk_main;
END PromptString;

BEGIN
    gtk_init(ADR(CMD_COUNT), ADR(CMD));

    PromptString;
END ttemp.

Best Regards,
Norman Black
Saperion Inc.





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]