guile-gtk-general
[Top][All Lists]
Advanced

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

Re: guile-gnome0 - unexplained GTK crashes since +- 10 days


From: David Pirotte
Subject: Re: guile-gnome0 - unexplained GTK crashes since +- 10 days
Date: Fri, 2 Feb 2007 13:27:47 +0100

On Wed, 31 Jan 2007 15:13:21 +0100
Andy Wingo <address@hidden> wrote:

> Hi David,

> This is incorrect; as the gtk docs mention, gtk_widget_map is only for
> use within widget implementations. gtk-widget-show is sufficient. If you
> want a modal "pick-a-file" behavior you will want to use gtk-dialog-run.

Hi Andy,

Thank you for your help and recommandations. I've been busy
implementing the changes, it's done. Unfortunatly, it still crashes,
randomly, sometimes quiclky sometimes after a while, but always using
the dialog which is now shown using gtk-dialog-run as you proposed.

Here are some code lines concerned whith the show/hide (backtrave
below). I am using glade to design, and wishes not to destroy/recreate
the dialog [which is relatively complex, and I need to show it as it
was when the user 'closes' it].

Only #'pps/select-gui is exported (and called from the main
application).

Mainy thanks again,
I hope people can help me to track it down further
David

        ;; --

        ...
        (define *pps/widget*      #f)
        (define *pps/top-level*   #f)
        ...

        (define (pps/make-dialog glade-f)
          (let* ((xml        (glade-xml-new glade-f #f "selection"))
                 (dialog     (get-widget xml "selection"))
                 ...
                 (pps/widget (make <pps/widget>
                               :glade-file glade-f
                               ...
                               )))
            (connect nbook
                     'switch-page
                     (lambda (nbook nbook-page page-num)
                        ...
                       ))
                ...
            pps/widget
            ))

        (define (pps/select-gui-1 widget parent callback)
          (if parent
              (set-transient-for widget parent))
          (show widget)
          (catch 'exit
                 (lambda ()
                   (let ((response (genum->symbol
                                    (make <gtk-response-type> :value (run 
widget)))))
                     (hide widget)
                     ;; (destroy widget)
                     (case response
                       ((ok) (callback (pps/create-view)))
                       ((cancel delete-event) (throw 'exit 'cancel))
                       (else #f))))
                 (lambda (key value)
                   value))
            )

        (define (pps/select-gui parent callback glade-f)
          (if *pps/top-level*
              (pps/select-gui-1 *pps/top-level* parent callback)
              (let* ((pps/widget (pps/make-dialog glade-f))
                     (widget     (dialog pps/widget)))
                (set! *pps/widget* pps/widget)
                (set! *pps/top-level* widget)
                (pps/select-gui-1 widget parent callback)
                )))

        ;; --
                
        Backtrace:
        In unknown file:
           ?:  0* (begin (load "/usr/alto/bin/prospects") (main (command-line)) 
(quit))
           ?:  1* [main ("/usr/alto/bin/prospects")]
        In /usr/alto/bin/prospects:
          54:  2  (if (site/load-proper-prospects-subset *uname* #f) (cond # #) 
(exit))
            ...
          65:  3  [#<gw:dynproc g-main-loop-run (1)> #<gw:wcp <g-main-loop*> 
0x105e2480>]
        In unknown file:
           ?:  4* [#<procedure #f args> #<gvalue <gtk-tool-button> 10920408>]
        In /usr/share/guile-gnome-0/gnome/gobject/gclosure.scm:
          84:  5* (let* (# #) (if # # #))
          85:  6* [apply #<procedure #f (button)> (#<<gtk-tool-button> 
304ffa10>)]
        In unknown file:
           ?:  7  [#<procedure #f (button)> #<<gtk-tool-button> 304ffa10>]
        In /usr/local/share/guile/alto/prospects/selection.scm:
            ...
         682:  8  [catch exit #<procedure #f ()> #<procedure #f (key value)>]
        In unknown file:
           ?:  9* [#<procedure #f ()>]
        In /usr/local/share/guile/alto/prospects/selection.scm:
         684: 10* (let ((response (genum->symbol #))) (hide widget) ...)
         684: 11* [genum->symbol ...
         685: 12*  [make-instance #<<genum-class> <gtk-response-type> 30512990> 
#:value ...
         685: 13*   [run #<<gtk-dialog> 3050b5b0>]
        In unknown file:
           ?: 14    [#<gw:dynproc gtk-dialog-run (1)> #<<gtk-dialog> 3050b5b0>]

        <unnamed port>: In expression (#<gw:dynproc gtk-dialog-run (1)> arg1):
        <unnamed port>: GLib-GObject: g_object_ref: assertion `G_IS_OBJECT 
(object)' failed
                




reply via email to

[Prev in Thread] Current Thread [Next in Thread]