jverzani / gWidgets2

Rewrite of gWidgets
35 stars 9 forks source link

problem in disposing of a gbasicdialog #91

Closed lbusett closed 8 years ago

lbusett commented 8 years ago

Hi,

In a package, I have a complex GUI used to initialize parameters for a processing that I just migrated from gWidgets to gWidgets2/gWidgets2rGtk2 .

I'm using a gbasicdialog with do.buttons = FALSE as modal container of the GUI. I then have a "bottom row" with "Start" and "Quit" buttons. Pressing either button should kill the gbasicdialog by dispose(main_win) and return the parameters to the caller (or exit program).

However, after calling dispose(main_win), the program crashes with the following error:

Error: attempt to call 'Destroy' on invalid reference 'block'

Can this be fixed in any way ? Consider that this was instead working in gWidgets

Thanks in advance,

Lorenzo

jverzani commented 8 years ago

I think I fixed this with a commit to gWidgets2RGtk2 (9bc702dd58e1034ccf618ef4cf7a8b549f3815af). Thanks for pointing it out. Reopen if it doesn't work.

lbusett commented 8 years ago

Many thanks, I'll have a look ASAP.

lbusett commented 8 years ago

Hi, while this solved the problem on basicdialog dimission, it seems unfortunately to open up other issues:

1) Rendering of the GUI is much slower 2) Child widgets opened from the basicdialog main pop-up always behind the main and even clicking on them doesn't bring them to front.

Lorenzo

jverzani commented 8 years ago

Hmm, that's seems unexpected. Do you have a test case I can work with to look?

On Saturday, October 29, 2016, Lorenzo Busetto notifications@github.com wrote:

Hi, while this solved the problem on basicdialog dimission, it seems unfortunately to opened up other issues:

1) Rendering of the GUI is much slower 2) Child widgets opened from the basicdialog pop up always behind the main and even clicking on them doesn't bring them to front.

Lorenzo

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/jverzani/gWidgets2/issues/91#issuecomment-257092677, or mute the thread https://github.com/notifications/unsubscribe-auth/AAZvTLTQJqAYeb_xgv0rtwpe64cZdtoGks5q407kgaJpZM4Kcq_6 .

John Verzani Chair, Department of Mathematics College of Staten Island, CUNY verzani@math.csi.cuny.edu

lbusett commented 8 years ago

sure. fastest way would be to create a github branch for you to fork. Would that be ok ? (by the way: I got these problems using gwidgets2rgtk2 version from github)

lbusett commented 8 years ago

Also, sorry: I recon I explained myself quite poorly. By child widgets I was actually referring to other modal gbasicdialog widgets which appear by pressing buttons on the main GUI allowing the user to set additional parameters for the processing.

Hope now is more clear.

Lorenzo

jverzani commented 8 years ago

Sure. That would be great

On Saturday, October 29, 2016, Lorenzo Busetto notifications@github.com wrote:

sure. fastest way would be to create a github branch for you to fork. Would that be ok ?

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/jverzani/gWidgets2/issues/91#issuecomment-257104576, or mute the thread https://github.com/notifications/unsubscribe-auth/AAZvTJcsZ3-QUnq0TqyU9AMCUWzxVTHWks5q44MMgaJpZM4Kcq_6 .

John Verzani Chair, Department of Mathematics College of Staten Island, CUNY verzani@math.csi.cuny.edu

lbusett commented 8 years ago

Hi. You can find a branch of the repo that gives me "problems" using the github version of gWidgets2RGtk2 here:

https://github.com/lbusett/MODIStsp/tree/feature/for_jverzani

In practice, when I call the main function via:

MODIStsp()

, the MODIStsp_GUI function is called. This function handles all user's interaction and saves the selected parameters at the end in a JSON file.

The GUI now renders slowly. Additionally, clicking for example on the "browse" buttons for folder selection, the windows stay behind the main.

The only window that renders "above" is the one you get clicking the "Processing Layers" button in the upper right part. This is actually another gbasicdialog (sorry, in my previous message I got it backwards), while the others are gfile or ginput.

Thanks for your help !

Lorenzo