Bug 24735

Summary: close window doesnt work with open dialog box
Product: [Applications] konqueror Reporter: raviyella
Component: generalAssignee: Konqueror Developers <konq-bugs>
Status: RESOLVED FIXED    
Severity: normal CC: mattr
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Mandrake RPMs   
OS: Linux   
Latest Commit: Version Fixed In:

Description raviyella 2001-04-25 04:59:59 UTC
(*** This bug was imported into bugs.kde.org ***)

Package:           konqueror
Version:           unknown (using KDE 2.1.1 )
Severity:          normal
Installed from:    Linux-Mandrake 8.0 i586
Compiler:          gcc version 2.96 20000731 (Linux-Mandrake 8.0 2.96-0.48mdk)
OS:                Linux 2.4.2-11mdksmp i686
OS/Compiler notes: 

If an open dialog box is displayed by one of the konqueror windows and at this time if you try to close any konqueror window (the ones that spawned off the same window that has the open box open. not windows you open by say clicking on the konqueror icon again) it doesnt do anything. only finding and closing the open dialog box will let you close the other windows too.

(Submitted via bugs.kde.org)
(Called from KBugReport dialog)
Comment 1 David Faure 2001-05-05 11:02:52 UTC
On Wednesday 25 April 2001 05:59 raviyella@hotmail.com wrote:
> Package: konqueror
> Version: unknown (using KDE 2.1.1 )
> Severity: normal
> Installed from:    Linux-Mandrake 8.0 i586
> Compiler:          gcc version 2.96 20000731 (Linux-Mandrake 8.0 2.96-0.48mdk)
> OS:                Linux 2.4.2-11mdksmp i686
> OS/Compiler notes: 
> 
> If an open dialog box is displayed by one of the konqueror windows and at this time if you try to close any konqueror window (the ones that spawned off the same window that has the open box open. not windows you open by say clicking on the konqueror icon again) it doesnt do anything. only finding and closing the open dialog box will let you close the other windows too.

That's called a modal dialog box.

The real fix for this is to minimize the number of dialog boxes (we've done
that already) and to try and display errors inside the HTML frame instead
of in a dialog box (still to be done).

-- 
David FAURE david@mandrakesoft.com faure@kde.org
http://perso.mandrakesoft.com/~david/ http://www.konqueror.org/
KDE Making The Future of Computing Available Today
Comment 2 raviyella 2004-07-30 23:55:09 UTC
oops...i missed this then....

i think i understand what a modal dialog is, but shouldnt the modal dialog be modal only to its parent window and not to any other windows...

This problem still exists in kde 3.2.1. Try this

1. start konqueror (say this is window 1)
2. click menu > location > new window (ctrl+N) (say this is window 2)
3. in window2 click menu > location > open location (ctrl+o)
4. click ctrl+o again to get the file open dialog box
5. switch to window1
6. try closing window1 now...
Comment 3 Matt Rogers 2004-12-18 04:35:05 UTC
I can at least confirm the behavior with KDE 3.4 alpha 1, although i'm not really sure we can fix it or if it should even be considered a bug...
Comment 4 Pieter Botha 2005-09-25 23:17:00 UTC
Behaviour confirmed with KDE 3.4.2 latest release for Suse 9.3 X64 rpm's.
I think one should considder thus as a usability bug.
Comment 5 Ian Ventura-Whiting 2006-08-29 14:28:12 UTC
Confirmed on KDE 3.5.3 (using SuSE packages) and KDE 3.5.4 (compiled from source).
Comment 6 Martin Koller 2006-12-29 23:45:52 UTC
SVN commit 617678 by mkoller:

BUG: 24735

Make the konqueror main window a group leader to ensure modal dialogs from
one window do not block other konqueror main windows


 M  +1 -1      konq_mainwindow.cc  


--- branches/KDE/3.5/kdebase/konqueror/konq_mainwindow.cc #617677:617678
@@ -142,7 +142,7 @@
 }
 
 KonqMainWindow::KonqMainWindow( const KURL &initialURL, bool openInitialURL, const char *name, const QString& xmluiFile)
- : KParts::MainWindow( NoDCOPObject, 0L, name, WDestructiveClose | WStyle_ContextHelp )
+ : KParts::MainWindow( NoDCOPObject, 0L, name, WDestructiveClose | WStyle_ContextHelp | Qt::WGroupLeader )
 {
   setPreloadedFlag( false );