[Top][All Lists]
[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
- Re: guile-gnome0 - unexplained GTK crashes since +- 10 days,
David Pirotte <=