Disabling JavaFX minimise/maximise/etc buttons

Artem Ananiev artem.ananiev at oracle.com
Tue Jul 23 03:39:40 PDT 2013

On 7/22/2013 9:17 PM, Anthony Petrov wrote:
> Hi Artem,
> Do you propose to add another StageStyle - namely, a DIALOG? Note that
> styles cannot be combined in a mask, meaning that developers won't be
> able to create e.g. transparent dialogs, or utility dialogs.

There is no need in yet another StageStyle, because we already have 
this: Window.initOwner(). If we pass the owner to the platform, and set 
appropriate hints for owned/ownerless windows, we should look and behave 
similar to native apps.

> Generally, I like the idea of defining the purpose of a window and
> letting the OS/GUI toolkit decide what works best for it, but I'm not
> sure if we can apply it for this particular use case. Also, I think that
> ability to disable maximization/minimization of a window might be useful
> for purposes other than just displaying dialogs.

To me, making a window non-resizable is a good way to make the window 
unmaximizable. Do you see any cases, when a window should be resizable, 
but not maximizable?

> BTW, isn't the setResizable(false) a good approximation for our
> requirements? You can still minimize such a window, but I think this is
> reasonable. E.g. OS X will minimize both the dialog and its owner
> window, allowing a user to perform other tasks unrelated to the dialog
> and windows it blocks. Why do we want to disable minimization?

Unminimizable windows are annoying. If we disable that, we'll likely get 
some weirdness, e.g. Win+M or Win+D on Windows will leave the window on 
the desktop, which is not what users expect.



> --
> best regards,
> Anthony
> On 07/22/2013 07:20 PM, Artem Ananiev wrote:
>> On 7/22/2013 11:14 AM, Pavel Safrata wrote:
>>> Hi Jonathan,
>>> I believe this has been neither requested nor discussed so far. I don't
>>> see why this couldn't be added, it just might have to be a conditional
>>> feature, we'll have to check. Feel free to file a feature request.
>> Some native platforms (mostly, X window managers) don't provide direct
>> APIs to enable/disable certain window decoration buttons. A library or
>> an application may provides some hints, which may or may not be
>> respected by WM.
>> I like what we have right now, StageStyle approach. Application defines
>> the purpose of the window and let the platform decide, what are
>> available actions for it.
>> Thanks,
>> Artem
>>> Regards,
>>> Pavel
>>> On 21.7.2013 4:44, Jonathan Giles wrote:
>>>> Hi all,
>>>> For once this is a request for more information from another JavaFX
>>>> team, rather than a review request, etc! :-)
>>>> I'm keen to see support in JavaFX Stage / Window classes for an API
>>>> that would allow for the minimize / maximize / full screen / etc
>>>> buttons to be disabled. I'm aware of the StageStyle.UTLITY option
>>>> (which does disable the minimize button), but sometimes you don't want
>>>> a utility stage style, but you do want to prevent minimizing a stage.
>>>> My particular use case is dialogs - you can see a discussion of the
>>>> issue at [1].
>>>> For example, I note that Stage has an iconfied property to represent
>>>> whether the stage is minimized, but no property to specify whether the
>>>> stage should be allowed to be iconified (setIconifiable(boolean),
>>>> boolean isIconifiable(), for example). Is there a reason for this or
>>>> just that this API hasn't been required yet?
>>>> In short, I would love API to allow me to specify whether a stage can
>>>> be minimised, maximised and made full screen, and for this to follow
>>>> through to the buttons available in the native titlebar area of the
>>>> stage. Does such an API exist, is there a valid reason why it doesn't,
>>>> or should I file a jira to request such API?
>>>> [1]
>>>> https://bitbucket.org/controlsfx/controlsfx/issue/49/dialogs-should-use-native-title-bars
>>>> Thanks!
>>>> -- Jonathan

More information about the openjfx-dev mailing list