Plamsa::PopupApplet and modal dialogs

Amos Kariuki amoskahiga at gmail.com
Mon May 25 18:14:51 CEST 2009


On Sun, May 24, 2009 at 1:21 AM, Aaron J. Seigo <aseigo at kde.org> wrote:
> On Friday 22 May 2009, Chani wrote:
>> On May 20, 2009 16:48:01 Amos Kariuki wrote:
>> > Have a question regarding the Plasma::PopupApplet behavior after it
>> > displays a modal dialog.  In the current implementation, when a modal
>> > dialog is opened from the Popup applet, the applet automatically gets
>> > hidden in the background while the modal dialog is still open.  I was
>> > thinking the behavior should be that the Popup applet should always
>> > remain visible if a child modal dialog is displayed.  Is this a
>> > reasonable default behavior or is it not advisable to display modal
>> > dialogs from popup-applets?
>>
>> I don't know the details of why it's hidden... but modal dialogs are evil.
>> modal dialogs are ten times *more* evil in plasma. modal means you can't
>> interact with any part of plasma - that includes things like the taskbar.
>
> exactly; the dialog should either be non-model or even just ditched all
> together and integrated into the interface of the popup itself.

Surprisingly, I hadn't realized that all plasma items were becoming
disabled when a modal dialog was shown from a plasmoid--that is cruel!

Also realized that minimizing the displayed modal dialog makes it
impossible to restore (with the mouse) and subsequently causes the
entire plasma workspace to become unnavigable with the mouse, since
the task-bar becomes disabled; I however later figured out that I
could use the Alt-Tab keyboard shortcut to restore the modal dialog,
which is non-intuitive--is this a UI bug considering there are a large
number of plasmoids that use the default modal file/dir-selection
dialog?

Anyway, as suggested, I converted my KDirSelectDialog() to be
non-modal (via setModal(), and corresponding okClicked() slot ), and
this seems to work OK for my use-case.

Thanks all.


More information about the Plasma-devel mailing list