# RegisterFocusChangedCallback(Action<GameWindow, FocusChangedEventArgs>)

> Registers a callback that is invoked when the window gains or loses input focus.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine.Windowing](/engine/6000.7/script-reference/unityengine/windowing.md)
* **Assembly:** UnityEngine.WindowingModule

```csharp
public void RegisterFocusChangedCallback(Action<GameWindow, FocusChangedEventArgs> callback)
```

### Parameters

**** (\[Action\<GameWindow, FocusChangedEventArgs>]\(https\://learn.microsoft.com/dotnet/api/system.action)): The callback to invoke when the focus changes, with [GameWindow](/engine/6000.7/script-reference/unityengine/windowing/gamewindow.md) and [FocusChangedEventArgs](/engine/6000.7/script-reference/unityengine/windowing/focuschangedeventargs.md) as parameters.

### Examples

```csharp
using UnityEngine;
using UnityEngine.Windowing;

public class WindowingTest : MonoBehaviour
{
    GameWindow mainWindow;

    private void Awake()
    {
        mainWindow = GameWindow.Main;
    }

    private void OnEnable()
    {
        // Register the callback
        mainWindow.RegisterFocusChangedCallback(WindowFocusCallback);
    }

    private void OnDisable()
    {
        // Unregister the callback
        mainWindow.UnregisterFocusChangedCallback(WindowFocusCallback);
    }

    private void WindowFocusCallback(GameWindow window, FocusChangedEventArgs args)
    {
        Debug.Log($"Main window focused: {args.focused}");
    }
}
```
