[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.platform.swt] Re: Problem with PRIMARY_MODAL dialog on OSX

Thanks for reporting this, I've logged
https://bugs.eclipse.org/bugs/show_bug.cgi?id=229680 .

Grant

"Peter Kullmann" <p.kullmann@xxxxxxxxx> wrote in message
news:fv6oqn$b4i$1@xxxxxxxxxxxxxxxxxxxx
> We have a strange problem with PRIMARY_MODAL dialogs on OSX. Here are
> the steps to reproduce the problem:
> - Open a primary modal dialog
> - Switch to a different application
> - Click on the titlebar of the original shell (not the dialog)
> - Now, you can see that the yellow and the green lights on this parent
> shell are always on (before that they were grey unless you hovered above
> them)
> - Close the dialog and note that the menu is not recovered. Usually the
> menu bar reappears as soon as the dialog is closed.
>
> Here is a snippet that helps trying out this problem:
>
> package org.eclipse.swt.snippets;
>
> import org.eclipse.swt.SWT;
> import org.eclipse.swt.events.SelectionAdapter;
> import org.eclipse.swt.events.SelectionEvent;
> import org.eclipse.swt.layout.GridLayout;
> import org.eclipse.swt.widgets.Button;
> import org.eclipse.swt.widgets.Display;
> import org.eclipse.swt.widgets.Menu;
> import org.eclipse.swt.widgets.MenuItem;
> import org.eclipse.swt.widgets.Shell;
>
> public class SnippetModalDialogProblem {
>
>      public static void main(String[] args) {
>          final Display display = new Display();
>          final Shell shell = new Shell(display);
>          shell.setLayout(new GridLayout());
>          Button b = new Button(shell, SWT.PUSH);
>          b.setText("Open dialog");
>          b.addSelectionListener(new SelectionAdapter() {
>              @Override
>              public void widgetSelected(SelectionEvent e) {
>                  Shell dialog = new Shell(shell, SWT.PRIMARY_MODAL
>                          | SWT.SHELL_TRIM);
>                  dialog.setSize(100, 50);
>                  dialog.open();
>              }
>          });
>          Menu bar = new Menu(shell, SWT.BAR);
>          shell.setMenuBar(bar);
>          MenuItem item = new MenuItem(bar, SWT.CASCADE);
>          item.setText("Menu");
>
>          shell.pack();
>          shell.open();
>
>          while (!shell.isDisposed()) {
>              if (!display.readAndDispatch()) {
>                  display.sleep();
>              }
>          }
>          display.dispose();
>      }
> }