Package: libwnck22
Version: 2.30.4-2
Severity: normal

When a Java application has multiple main windows (i.e. Frames), and at least
one of them has a modal dialog blocking it, WNCK applications (like the GNOME
window picker applet or avant-window-navigator) seem to "forget" about that
window, even after the modal dialog closes.

I have attached a small Java program that demonstrates this behavior. It brings
up two JFrames and blocks one with a modal JDialog, but the frame with the
dialog does not appear in the window picker or in AWN.

Unfortunately I am not an X programmer, or I would try to investigate this
issue further.



-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.36-rc6-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages libwnck22 depends on:
ii  libatk1.0-0                  1.30.0-1    The ATK accessibility toolkit
ii  libc6                        2.11.2-6    Embedded GNU C Library: Shared lib
ii  libcairo2                    1.8.10-6    The Cairo 2D vector graphics libra
ii  libglib2.0-0                 2.24.2-1    The GLib library of C routines
ii  libgtk2.0-0                  2.20.1-1+b1 The GTK+ graphical user interface 
ii  libpango1.0-0                1.28.1-1    Layout and rendering of internatio
ii  libstartup-notification0     0.10-1      library for program launch feedbac
ii  libwnck-common               2.30.4-2    Window Navigator Construction Kit 
ii  libx11-6                     2:1.3.3-3   X11 client-side library
ii  libxres1                     2:1.0.4-1   X11 Resource extension library

libwnck22 recommends no packages.

libwnck22 suggests no packages.

-- no debconf information
import java.awt.EventQueue;
import javax.swing.*;

public final class WNCKBreakageDemo {
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				JFrame demoFrame1 = new JFrame();
				demoFrame1.setTitle("Demo frame 1");
				demoFrame1.setSize(100, 100);
				demoFrame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				demoFrame1.setVisible(true);

				JFrame demoFrame2 = new JFrame();
				demoFrame2.setTitle("Demo frame 2");
				demoFrame2.setSize(100, 100);
				demoFrame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				demoFrame2.setVisible(true);

				JDialog demoDialog1 = new JDialog(demoFrame1);
				demoDialog1.setModal(true);
				demoDialog1.setTitle("Demo dialog 1");
				demoDialog1.setSize(50, 50);
				demoDialog1.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
				demoDialog1.setVisible(true);
			}
		});
	}
}

Reply via email to