Page 1 of 1
Forum

Welcome to the Tweaking4All community forums!
When participating, please keep the Forum Rules in mind!

Topics for particular software or systems: Start your topic link with the name of the application or system.
For example “MacOS X – Your question“, or “MS Word – Your Tip or Trick“.

Please note that switching to another language when reading a post will not bring you to the same post, in Dutch, as there is no translation for that post!



Share:
Notifications
Clear all

[Solved] Lazarus Pascal - macOS - Make FullScreen button (green) only maximize the window (not fullscreen)

1 Posts
1 Users
0 Likes
1,351 Views
 Hans
(@hans)
Famed Member Admin
Joined: 11 years ago
Posts: 2678
Topic starter  

Interesting question I found on the Lazarus Forum for which I found an answer:

In macOS the green button (upper left corner of each window) makes a window FULLSCREEN and not (like with other operating systems) just maximizes the window.

There is a trick to change this behavior though, so here 2 functions I made to disable and enable the fullscreen behavior.
You can disable the fullscreen behavior (becomes maximize) and enable it again if needed.

procedure DisableFullscreenButton(theForm: TForm);
var
  theWindow: NSWindow;
begin
  theWindow := NSView(theForm.Handle).window;       // Form1 is the name of the main form - adjust as necessary
  theWindow.setCollectionBehavior(theWindow.collectionBehavior or NSWindowCollectionBehaviorFullScreenAuxiliary);
end;

procedure EnableFullscreenButton(theForm: TForm);
var
  theWindow: NSWindow;
begin
  theWindow := NSView(theForm.Handle).window;       // Form1 is the name of the main form - adjust as necessary
  theWindow.setCollectionBehavior(theWindow.collectionBehavior and NSWindowCollectionBehaviorFullScreenPrimary);
end;

   
ReplyQuote
Share: