diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 6252810397b..eb423b3e012 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,9 @@ +2004-01-12 Fernando Nasser + + * gnu/java/awt/peer/gtk/TestAWT.java: Fix test program so that it does + not show modal dialogs twice and so that it allows showing a modal + dialog from another modal dialog. + 2004-01-12 Fernando Nasser * java/awt/Dialog.java (show): Enable blocking for all modal dialogs diff --git a/libjava/gnu/java/awt/peer/gtk/TestAWT.java b/libjava/gnu/java/awt/peer/gtk/TestAWT.java index 48cdce1a1fe..36e4416d3df 100644 --- a/libjava/gnu/java/awt/peer/gtk/TestAWT.java +++ b/libjava/gnu/java/awt/peer/gtk/TestAWT.java @@ -184,8 +184,16 @@ class MainWindow extends PrettyFrame implements ActionListener w.dispose (); else { - w.setVisible (true); - w.show(); + if (w instanceof Dialog) + { + System.out.println ("Will 'show'"); + w.show(); + System.out.println ("Has shown"); + } + else + { + w.setVisible (true); + } } } } @@ -250,11 +258,14 @@ class ButtonsWindow extends SubFrame implements ActionListener class DialogWindow extends Dialog implements SubWindow { Label text; + Frame parent; boolean initted = false; public DialogWindow (Frame f) { super (f, true); + + this.parent = f; } public void setVisible (boolean visible) @@ -264,6 +275,13 @@ class DialogWindow extends Dialog implements SubWindow super.setVisible (visible); } + public void show () + { + if (!initted) + init(); + super.show (); + } + public void init () { text = new Label ("Dialog Test"); @@ -282,7 +300,7 @@ class DialogWindow extends Dialog implements SubWindow } }); - p.setLayout (new GridLayout (1, 2)); + p.setLayout (new GridLayout (1, 3)); ((GridLayout) p.getLayout ()).setHgap (5); ((GridLayout) p.getLayout ()).setVgap (5); p.add (cb); @@ -300,10 +318,23 @@ class DialogWindow extends Dialog implements SubWindow doLayout(); } }); + + Button subdlg = new Button ("SubDialog"); + p.add (subdlg); + + subdlg.addActionListener(new ActionListener () { + public void actionPerformed (ActionEvent e) + { + DialogWindow sw = new DialogWindow (parent); + System.out.println ("Will show modal sub dialog"); + sw.show (); + System.out.println ("Has shown modal sub dialog"); + } + }); add (p, "South"); setTitle ("Dialog"); - setSize (130, 70); + setSize (240, 120); } }