Ask Your Question
0

Non-modal dialog is still modal to other dialogs

asked 2016-10-02 02:26:48 +0200

mark_t gravatar image

updated 2016-10-02 05:51:11 +0200

Is there any method to create independent non-modal dialogs?

I can create a dialog that is non-modal to the document, but if I then create another non-modal dialog this blocks selection of the previous dialog until the second dialog is closed.

If the dialogs are modal, the second dialog not only blocks the first dialog, but also prevents selection of the first document.

Example spreadsheet documents to demonstrate this:

Untitled 31.ods

Untitled 32.ods

Both examples create a non-modal dialog, when the second is active then the first can no longer be selected.

Using LibreOffice 5.2.1.2 x64 on windows 8.1. Also confirmed in 5.1.4.2 on Linux mint 18 in Virtual Box.

Edit: It appears that the problem is due to basic still running when a dialog is active as "oDlg.execute" does not return to basic until the dialog is closed. While the dialog is running, events can still be triggered, but if these events start another dialog then that event code does not complete and this prevents continued execution of the first dialog.

I think to achieve what I'm attempting I need to close the dialog when the document is no longer active and then re-open the dialog when the document is re-activated. I'll need to somehow save the state of the dialog before it is closed and restore the state when it is re-activated. This might be a problem as all variables are reset when basic stops running.

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted
0

answered 2016-10-02 11:58:54 +0200

floris v gravatar image

First, this is so specialized that you might have more success getting an answer on the developers' mailing list.

Second: why do you want to have two modeless dialog boxes open at the same time? Maybe you should reconsider the design of whatever you want to achieve that way. You could make a tabbed dialog box and only show the tabs with the controls that you now want to put on your second dialog box when the user clicks a button. Then the user will be able to tab between the tabs. Alternatively, hide part of the functionality by limiting the width of the dialog box. Set the controls in the second box in a panel on the first on the far right of the box, then set the width so that the panel is hidden. Adjust the width of the dialog when a user clicks a button.

edit flag offensive delete link more

Comments

I wasn't intending to have both in use at the same time. Trying to make it so that if I have a toolbox open on one spreadsheet, then switch to a different spreadsheet, that I can have another dialog open but still switch back to the other spreadsheet and have access to the toolbox. Making the toolbox modeless was a first attempt to avoid the second dialog blocking the first.

mark_t gravatar imagemark_t ( 2016-10-02 16:58:39 +0200 )edit
Login/Signup to Answer

Question Tools

1 follower

Stats

Asked: 2016-10-02 02:26:48 +0200

Seen: 253 times

Last updated: Oct 02 '16