LINUX.ORG.RU

История изменений

Исправление KivApple, (текущая версия) :

У меня StageStyle.UTILITY создаёт окно без кнопки на панели задач, но при этом оно имеет декорации. К тому же так нельзя создать прозрачное окно (StageStyle.TRANSPARENT).

Про нефокусируемые окна:

1) Надо добавить метод setFocusable интерфейсу com.sun.javafx.TKStage.

2) Надо реализовать этот метод в com.sun.javafx.WindowStage как вызов this.platformWindow.setFocusable.

3) Для com.sun.javafx.EmbeddedStage надо реализовать этот метод либо как пустую заглушку, либо бросать какое-нибудь исключение типа Unimplemented (не знаю как лучше).

4) Надо добавить метод setFocusable для класса javafx.stage.Window. Он должен вызывать this.impl_peer.setFocusable (который мы добавили на шаге 1).

То есть по сути просто сделать доступным вызов уже имеющегося метода setFocusable com.sun.glass.ui.Window из пользовательского кода.

Сделать такой патч - дело 15 минут максимум. Но примут ли его?

UPD: Немного соврал. В методе setFocusable класса javafx.stage.Window надо проверять, если impl_peer == null, то сохранять значение параметра до лучших времён, а внутри impl_visibleChanging вызывать setFocusable повторно после создания impl_peer.

Исправление KivApple, :

У меня StageStyle.UTILITY создаёт окно без кнопки на панели задач, но при этом оно имеет декорации. К тому же так нельзя создать прозрачное окно (StageStyle.TRANSPARENT).

Про нефокусируемые окна:

1) Надо добавить метод setFocusable интерфейсу com.sun.javafx.TKStage.

2) Надо реализовать этот метод в com.sun.javafx.WindowStage как вызов this.platformWindow.setFocusable.

3) Для com.sun.javafx.EmbeddedStage надо реализовать этот метод либо как пустую заглушку, либо бросать какое-нибудь исключение типа Unimplemented (не знаю как лучше).

4) Надо добавить метод setFocusable для класса javafx.stage.Window. Он должен вызывать this.impl_peer.setFocusable (который мы добавили на шаге 1).

То есть по сути просто сделать доступным вызов уже имеющегося метода setFocusable com.sun.glass.ui.Window из пользовательского кода.

Сделать такой патч - дело 15 минут максимум. Но примут ли его?

Исправление KivApple, :

У меня StageStyle.UTILITY создаёт окно без кнопки на панели задач, но при этом оно имеет декорации. К тому же так нельзя создать прозрачное окно (StageStyle.TRANSPARENT).

Про нефокусируемые окна:

1) Надо добавить метод setFocusable интерфейсу com.sun.javafx.TKStage.

2) Надо реализовать этот метод в com.sun.javafx.WindowStage как вызов this.platformWindow.setFocusable.

3) Для com.sun.javafx.EmbeddedStage надо реализовать этот метод либо как пустую заглушку, либо бросать какое-нибудь исключение типа Unimplemented (не знаю как лучше).

4) Надо добавить метод setFocusable для класса javafx.stage.Window. Он должен вызывать this.impl_peer.setFocusable (который мы добавили на шаге 1).

То есть по сути просто сделать доступным вызов уже имеющегося метода setFocusable com.sun.glass.ui.Window из пользовательского кода.

Исходная версия KivApple, :

У меня StageStyle.UTILITY создаёт окно без кнопки на панели задач, но при этом оно имеет декорации. К тому же так нельзя создать прозрачное окно (StageStyle.TRANSPARENT).

Про нефокусируемые окна:

1) Надо добавить метод setFocusable интерфейсу com.sun.javafx.TKStage.

2) Надо реализовать этот метод в com.sun.javafx.WindowStage как вызов this.platformWindow.setFocusable.

3) Для com.sun.javafx.EmbeddedStage надо реализовать этот метод либо как пустую заглушку, либо бросать какое-нибудь исключение типа Unimplemented (не знаю как лучше).

4) Надо добавить метод setFocusable для класса javafx.stage.Window. Он должен вызывать this.impl_peer.setFocusable (который мы добавили на шаге 1).

То есть по сути просто сделать доступным вызов уже имеющегося метода com.sun.glass.ui.Window из пользовательского кода.