If an applet uses a popup dialog to display some tranisent info, such
as an error message, when that popup is dismissed ... perhaps by calling
hide() or dispose() on the popup, then an unexoected side effect is that
the applet itself gets stopped.
What appears to happen is that down in awt_Dialog.c, the Dialog_event_handler
gets an UnmapNotify event, and this is propogated upwards as handleIconify
on the peer. (This is confusing, for a start, because hide and destroy don't iconify
the dialog, they unmap it.) However, the upcall continues and becomes
a WINDOW_ICONIFY event on the dialog. If not trapped and thrown away,
it is passed all the way up to the AppletPanel, which decides to stop the applet
there and then.
Ideally, the applet should not mind about windows other than itself getting WINDOW_ICONIFY events.
Whatever, the current behaviour is highly non-intuitive!!
as an error message, when that popup is dismissed ... perhaps by calling
hide() or dispose() on the popup, then an unexoected side effect is that
the applet itself gets stopped.
What appears to happen is that down in awt_Dialog.c, the Dialog_event_handler
gets an UnmapNotify event, and this is propogated upwards as handleIconify
on the peer. (This is confusing, for a start, because hide and destroy don't iconify
the dialog, they unmap it.) However, the upcall continues and becomes
a WINDOW_ICONIFY event on the dialog. If not trapped and thrown away,
it is passed all the way up to the AppletPanel, which decides to stop the applet
there and then.
Ideally, the applet should not mind about windows other than itself getting WINDOW_ICONIFY events.
Whatever, the current behaviour is highly non-intuitive!!
- duplicates
-
JDK-1233410 calling hide() on a showing dialog will stop the applet
-
- Closed
-