Ask Your Question

Non-modal dialog is still modal to other dialogs [closed]

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

mark_t gravatar image

updated 2020-09-13 07:56:43 +0100

Alex Kemp gravatar image

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 x64 on windows 8.1. Also confirmed in 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 reopen merge delete

Closed for the following reason question is not relevant or outdated by Alex Kemp
close date 2020-09-13 07:57:20.082862

1 Answer

Sort by » oldest newest most voted

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

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


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 +0100 )edit

Question Tools

1 follower


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

Seen: 339 times

Last updated: Oct 02 '16