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!
    
    
        
    
    
         
                
        
        
    
		
		
	        
		
	        
	    
	
        
            
				
            
                
					
[Solved] Lazarus Pascal - macOS - Make FullScreen button (green) only maximize the window (not fullscreen)
                
                
					 					                
             
			
			
    
            
		                
         Delphi, Lazarus, Free Pascal
        
     
    
	 
            
		        
     
	     
        
            
    
    
  	  	
              
    	      
	        
            		            	
	                            
                    
                    (@hans)
                                        Famed Member Admin
                        
                
                                            Joined: 12 years ago
                    Posts: 3009
	             
                
            	
		        	         
	        
	            
	                                     Topic starter
                    April 13, 2021 5:32 AM  
		                                	            
	            
					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;