mattermost / desktop

Mattermost Desktop application for Windows, Mac and Linux
Apache License 2.0
2.03k stars 829 forks source link

[Bug]: Minimize button doesn't work in 5.9.0 on Kubuntu 24.04 #3130

Closed eftewuer closed 3 weeks ago

eftewuer commented 3 months ago

Checks before filing an issue

Mattermost Desktop Version

5.9.0

Operating System

Kubuntu 24.04 LTS x86_64

Mattermost Server Version

No response

Steps to reproduce

  1. Download version 5.9.0 from this location: https://releases.mattermost.com/desktop/5.9.0/mattermost-desktop-5.9.0-linux-x64.tar.gz
  2. Extract to any location in your home directory - I will reference it as MT_CLIENT_DIR - the real path doesn't matter
  3. Change permissions to MT_CLIENT_DIR/chrome-sandbox so the Mattermost client does not throw error during startup about incorrect permissions
    • sudo chown root: ./chrome-sandbox
    • sudo chmod 4755 ./chrome-sandbox
  4. Start the application using MT_CLIENT_DIR/mattermost-desktop and log in to your server
  5. Press the "Minimize" button in the top right corner

Expected behavior

The main Mattermost window gets minimized

Observed behavior

The main Mattermost window stays open - it only blinks for a moment

Log Output

#################################################
### main.log
#################################################
[2024-08-20 07:22:42.637] [error] Logger Log level set to: info
[2024-08-20 07:22:42.725] [warn]  [App.Initialize] Current working directory is /home/tom, changing into /home/tom/tools/mattermost-desktop-5.8.0-linux-x64
[2024-08-20 07:22:42.798] [info]  [App.Config] config.autostart has been configured: false
[2024-08-20 07:22:42.849] [info]  [App.Initialize] Autoupgrade disabled: false
[2024-08-20 07:22:42.901] [info]  [ServerDropdownView] init
[2024-08-20 07:22:42.939] [warn]  [i18nManager] Failed to set new language en-US
[2024-08-20 07:22:42.939] [warn]  [i18nManager] Failed to set new language PL
[2024-08-20 07:22:43.044] [info]  [App.Config] config.autostart has been configured: false
[2024-08-20 07:22:43.697] [info]  [App.Config] config.autostart has been configured: false
[2024-08-20 07:33:48.569] [error] Logger Log level set to: info
[2024-08-20 07:33:48.644] [warn]  [App.Initialize] Current working directory is /home/tom, changing into /home/tom/tools/mattermost-desktop-5.8.0-linux-x64
[2024-08-20 07:33:48.701] [info]  [App.Config] config.autostart has been configured: false
[2024-08-20 07:33:48.718] [info]  [App.Initialize] Autoupgrade disabled: false
[2024-08-20 07:33:48.758] [info]  [ServerDropdownView] init
[2024-08-20 07:33:48.806] [warn]  [i18nManager] Failed to set new language en-US
[2024-08-20 07:33:48.807] [warn]  [i18nManager] Failed to set new language PL
[2024-08-20 07:33:48.917] [info]  [App.Config] config.autostart has been configured: false
[2024-08-20 07:33:49.349] [info]  [App.Config] config.autostart has been configured: false
[2024-08-20 07:39:56.044] [debug] Diagnostics.run
[2024-08-20 07:39:56.044] [debug] Diagnostics.initializeValues
[2024-08-20 07:39:56.045] [debug] Diagnostics.getStepCount { stepsCount: 12 }
[2024-08-20 07:39:56.045] [debug] Diagnostics sendNotification DiagnosticsStarted
[2024-08-20 07:39:56.045] [info]  Diagnostics.executeSteps Started

#################################################
### diagnostics.log
#################################################
[2024-08-20 07:39:56.045] [debug] ConfigureLogger {
  filename: 'diagnostics_20-7-2024_7-39-56-45.txt',
  pathToFile: 'PATH_20-7-2024_7-39-56-45.txt'
}
[2024-08-20 07:39:56.047] [info]  #################### diagnostic-Step-0: logConfig START ####################
[2024-08-20 07:39:56.047] [info]  {
  stepResult: {
    message: 'Step-0 finished successfully',
    succeeded: true,
    duration: 2
  }
}
[2024-08-20 07:39:56.047] [info]  #################### diagnostic-Step-0: logConfig END ####################
[2024-08-20 07:39:56.292] [debug] resp.on.end {
  data: '{"ActiveSearchBackend":"database" "AndroidLatestVersion":"" "AndroidMinVersion":"" "IosLatestVersion":"" "IosMinVersion":"" "status":"OK"}',
  url: 'URL'
}
[2024-08-20 07:39:56.293] [info]  #################### diagnostic-Step-1: internetConnection START ####################
[2024-08-20 07:39:56.293] [info]  {
  stepResult: {
    message: 'Step-1 finished successfully',
    succeeded: true,
    duration: 246
  }
}
[2024-08-20 07:39:56.294] [info]  #################### diagnostic-Step-1: internetConnection END ####################
[2024-08-20 07:39:56.294] [info]  #################### diagnostic-Step-2: configValidation START ####################
[2024-08-20 07:39:56.294] [info]  {
  stepResult: {
    message: 'Step-2 finished successfully',
    succeeded: true,
    duration: 0
  }
}
[2024-08-20 07:39:56.294] [info]  #################### diagnostic-Step-2: configValidation END ####################
[2024-08-20 07:39:56.295] [debug] Pinging server:  {}
[2024-08-20 07:39:56.509] [debug] resp.on.end {
  data: '{"ActiveSearchBackend":"database" "AndroidLatestVersion":"" "AndroidMinVersion":"" "IosLatestVersion":"" "IosMinVersion":"" "status":"OK"}',
  url: 'URL'
}
[2024-08-20 07:39:56.510] [info]  #################### diagnostic-Step-3: serverConnectivity START ####################
[2024-08-20 07:39:56.510] [info]  {
  stepResult: {
    message: 'Step-3 finished successfully',
    succeeded: true,
    payload: [
      {
        id: '1ec39ae5-490d-46ea-9603-b61adb6a69f8',
        name: 'MGR',
        url: {},
        isPredefined: false,
        updateURL: '[function] e=>{if(this.url=(0,i.vx)(e),!this.url)throw new Error("Invalid url for creating a server")}',
        toUniqueServer: '[function] ()=>({name:this.name,url:this.url.toString(),id:this.id,isPredefined:this.isPredefined})'
      }
    ],
    duration: 216
  }
}
[2024-08-20 07:39:56.510] [info]  #################### diagnostic-Step-3: serverConnectivity END ####################
[2024-08-20 07:39:56.511] [info]  #################### diagnostic-Step-4: sessionDataValidation START ####################
[2024-08-20 07:39:56.511] [info]  {
  stepResult: {
    message: 'Step-4 finished successfully',
    succeeded: true,
    duration: 1
  }
}
[2024-08-20 07:39:56.511] [info]  #################### diagnostic-Step-4: sessionDataValidation END ####################
[2024-08-20 07:39:56.511] [info]  #################### diagnostic-Step-5: BrowserWindowsChecks START ####################
[2024-08-20 07:39:56.512] [info]  {
  stepResult: {
    message: 'Step-5 finished successfully',
    succeeded: true,
    payload: {
      mainWindowVisibilityStatus: [
        { name: 'windowExists', ok: true },
        {
          name: 'bounds',
          ok: true,
          data: { x: 230, y: 155, width: 1415, height: 725 }
        },
        { name: 'opacity', ok: true, data: 1 },
        { name: 'destroyed', ok: true },
        { name: 'visible', ok: true },
        { name: 'enabled', ok: true },
        {
          name: 'browserViewsBounds',
          ok: true,
          data: [ [Object], [Object], [Object], [Object] ]
        }
      ],
      webContentsOk: true
    },
    duration: 0
  }
}
[2024-08-20 07:39:56.512] [info]  #################### diagnostic-Step-5: BrowserWindowsChecks END ####################
[2024-08-20 07:39:56.513] [info]  #################### diagnostic-Step-6: PermissionsCheck START ####################
[2024-08-20 07:39:56.513] [info]  {
  stepResult: {
    message: 'Step-6 finished successfully',
    succeeded: true,
    payload: {
      notificationsSupported: true,
      fileSystem: {
        downloadsFileAccess: { ok: true },
        logsFileAccess: { ok: true }
      }
    },
    duration: 1
  }
}
[2024-08-20 07:39:56.513] [info]  #################### diagnostic-Step-6: PermissionsCheck END ####################
[2024-08-20 07:39:56.514] [info]  #################### diagnostic-Step-7: PerformanceAndMemory START ####################
[2024-08-20 07:39:56.514] [info]  {
  stepResult: {
    message: 'Step-7 finished successfully',
    succeeded: true,
    payload: {
      process: {
        creationTime: 1724132027530,
        heapStatistics: {
          totalHeapSize: 16156,
          totalHeapSizeExecutable: 1672,
          totalPhysicalSize: 15904,
          totalAvailableSize: 4180565,
          usedHeapSize: 14490,
          heapSizeLimit: 4194048,
          mallocedMemory: 283,
          peakMallocedMemory: 8254,
          doesZapGarbage: false
        },
        blinkMemory: { allocated: 0, total: 0 },
        processMemory: {},
        systemMemory: {
          total: 32041024,
          free: 21898064,
          swapTotal: 34316280,
          swapFree: 34316280
        },
        systemVersion: '6.8.0-40-generic',
        cpuUsage: { percentCPUUsage: 0, idleWakeupsPerSecond: 0 },
        heapSnapshot: { path: 'PATH...xt', success: false },
        uptime: 368.056388756,
        platform: 'linux',
        type: 'browser',
        versions: {
          node: '20.15.0',
          acorn: '8.11.3',
          ada: '2.7.8',
          ares: '1.28.1',
          base64: '0.5.2',
          brotli: '1.0.9',
          cjs_module_lexer: '1.2.2',
          cldr: '44.1',
          icu: '74.2',
          llhttp: '8.1.2',
          modules: '125',
          napi: '9',
          nghttp2: '1.61.0',
          openssl: '1.1.1',
          simdutf: '5.2.8',
          tz: '2024a',
          undici: '6.13.0',
          unicode: '15.1',
          uv: '1.46.0',
          uvwasi: '0.0.21',
          v8: 'IPV4-electron.0',
          zlib: 'IPV4-motley',
          electron: '31.2.1',
          chrome: '126.0.6478.127'
        },
        version: 'v20.15.0'
      },
      onBattery: false
    },
    duration: 1
  }
}
[2024-08-20 07:39:56.514] [info]  #################### diagnostic-Step-7: PerformanceAndMemory END ####################
[2024-08-20 07:39:56.519] [info]  #################### diagnostic-Step-8: LogHeuristics START ####################
[2024-08-20 07:39:56.519] [info]  {
  stepResult: {
    message: 'Step-8 finished successfully',
    succeeded: true,
    payload: {
      logLevels: {
        silly: 0,
        debug: 4,
        verbose: 0,
        info: 386,
        warn: 245,
        error: 159
      },
      percentageOfErrors: 20,
      linesCount: 794
    },
    duration: 4
  }
}
[2024-08-20 07:39:56.519] [info]  #################### diagnostic-Step-8: LogHeuristics END ####################
[2024-08-20 07:39:56.519] [info]  #################### diagnostic-Step-9: Config START ####################
[2024-08-20 07:39:56.519] [info]  {
  stepResult: {
    message: 'Step-9 finished successfully',
    succeeded: true,
    payload: {
      version: 3,
      showTrayIcon: true,
      trayIconTheme: 'use_system',
      minimizeToTray: false,
      notifications: {
        flashWindow: 0,
        bounceIcon: true,
        bounceIconType: 'informational'
      },
      showUnreadBadge: true,
      useSpellChecker: true,
      enableHardwareAcceleration: true,
      autostart: false,
      hideOnStart: false,
      spellCheckerLocales: [],
      darkMode: false,
      lastActiveTeam: 0,
      downloadLocation: 'PATH',
      startInFullscreen: false,
      logLevel: 'info',
      alwaysClose: true,
      autoCheckForUpdates: true,
      helpLink: 'URL',
      enableServerManagement: true,
      enableAutoUpdater: true,
      managedResources: [ 'trusted' ],
      allowedProtocols: [ 'mattermost', 'ftp', 'mailto', 'tel' ],
      useNativeWindow: false,
      appName: 'Mattermost'
    },
    duration: 0
  }
}
[2024-08-20 07:39:56.520] [info]  #################### diagnostic-Step-9: Config END ####################
[2024-08-20 07:39:56.520] [info]  #################### diagnostic-Step-10: CrashReports START ####################
[2024-08-20 07:39:56.520] [info]  {
  stepResult: {
    message: 'Step-10 finished successfully',
    succeeded: true,
    payload: { pathOfCrashReports: 'PATH', crashReportData: [] },
    duration: 0
  }
}
[2024-08-20 07:39:56.521] [info]  #################### diagnostic-Step-10: CrashReports END ####################
[2024-08-20 07:39:56.521] [info]  #################### diagnostic-Step-11: AuthSSO START ####################
[2024-08-20 07:39:56.521] [info]  {
  stepResult: {
    message: 'Step-11 finished successfully',
    succeeded: true,
    payload: [
      {
        name: 'rl_page_init_referrer',
        expirationDate: 1748377467,
        session: false
      },
      {
        name: 'rl_page_init_referring_domain',
        expirationDate: 1748377467,
        session: false
      },
      {
        name: 'MMAUTHTOKEN',
        expirationDate: 1725440234.56725,
        session: false
      },
      {
        name: 'MMUSERID',
        expirationDate: 1725440234.567339,
        session: false
      },
      {
        name: 'MMCSRF',
        expirationDate: 1725440234.567356,
        session: false
      },
      {
        name: 'rl_anonymous_id',
        expirationDate: 1755668168,
        session: false
      },
      {
        name: 'rl_group_id',
        expirationDate: 1755668168,
        session: false
      },
      {
        name: 'rl_group_trait',
        expirationDate: 1755668168,
        session: false
      },
      {
        name: 'rl_user_id',
        expirationDate: 1755668168,
        session: false
      },
      { name: 'rl_trait', expirationDate: 1755668168, session: false },
      {
        name: 'rl_anonymous_id',
        expirationDate: 1755668169,
        session: false
      },
      {
        name: 'rl_user_id',
        expirationDate: 1755668169,
        session: false
      },
      { name: 'rl_trait', expirationDate: 1755668169, session: false }
    ],
    duration: 0
  }
}
[2024-08-20 07:39:56.522] [info]  #################### diagnostic-Step-11: AuthSSO END ####################
[2024-08-20 07:39:56.522] [info]  Diagnostics.executeSteps Finished
[2024-08-20 07:39:56.522] [debug] Diagnostics.getStepCount { stepsCount: 12 }
[2024-08-20 07:39:56.522] [info]  #################### Report START ####################
[2024-08-20 07:39:56.522] [info]  {
  report: [
    {
      message: 'Step-0 finished successfully',
      succeeded: true,
      duration: 2,
      name: 'diagnostic-Step-0: logConfig',
      step: 0
    },
    {
      message: 'Step-1 finished successfully',
      succeeded: true,
      duration: 246,
      name: 'diagnostic-Step-1: internetConnection',
      step: 1
    },
    {
      message: 'Step-2 finished successfully',
      succeeded: true,
      duration: 0,
      name: 'diagnostic-Step-2: configValidation',
      step: 2
    },
    {
      message: 'Step-3 finished successfully',
      succeeded: true,
      payload: [
        {
          id: '1ec39ae5-490d-46ea-9603-b61adb6a69f8',
          name: 'MGR',
          url: {},
          isPredefined: false,
          updateURL: '[function] e=>{if(this.url=(0,i.vx)(e),!this.url)throw new Error("Invalid url for creating a server")}',
          toUniqueServer: '[function] ()=>({name:this.name,url:this.url.toString(),id:this.id,isPredefined:this.isPredefined})'
        }
      ],
      duration: 216,
      name: 'diagnostic-Step-3: serverConnectivity',
      step: 3
    },
    {
      message: 'Step-4 finished successfully',
      succeeded: true,
      duration: 1,
      name: 'diagnostic-Step-4: sessionDataValidation',
      step: 4
    },
    {
      message: 'Step-5 finished successfully',
      succeeded: true,
      payload: {
        mainWindowVisibilityStatus: [
          { name: 'windowExists', ok: true },
          { name: 'bounds', ok: true, data: [Object] },
          { name: 'opacity', ok: true, data: 1 },
          { name: 'destroyed', ok: true },
          { name: 'visible', ok: true },
          { name: 'enabled', ok: true },
          { name: 'browserViewsBounds', ok: true, data: [Array] }
        ],
        webContentsOk: true
      },
      duration: 0,
      name: 'diagnostic-Step-5: BrowserWindowsChecks',
      step: 5
    },
    {
      message: 'Step-6 finished successfully',
      succeeded: true,
      payload: {
        notificationsSupported: true,
        fileSystem: {
          downloadsFileAccess: { ok: true },
          logsFileAccess: { ok: true }
        }
      },
      duration: 1,
      name: 'diagnostic-Step-6: PermissionsCheck',
      step: 6
    },
    {
      message: 'Step-7 finished successfully',
      succeeded: true,
      payload: {
        process: {
          creationTime: 1724132027530,
          heapStatistics: {
            totalHeapSize: 16156,
            totalHeapSizeExecutable: 1672,
            totalPhysicalSize: 15904,
            totalAvailableSize: 4180565,
            usedHeapSize: 14490,
            heapSizeLimit: 4194048,
            mallocedMemory: 283,
            peakMallocedMemory: 8254,
            doesZapGarbage: false
          },
          blinkMemory: { allocated: 0, total: 0 },
          processMemory: {},
          systemMemory: {
            total: 32041024,
            free: 21898064,
            swapTotal: 34316280,
            swapFree: 34316280
          },
          systemVersion: '6.8.0-40-generic',
          cpuUsage: { percentCPUUsage: 0, idleWakeupsPerSecond: 0 },
          heapSnapshot: { path: 'PATH...xt', success: false },
          uptime: 368.056388756,
          platform: 'linux',
          type: 'browser',
          versions: {
            node: '20.15.0',
            acorn: '8.11.3',
            ada: '2.7.8',
            ares: '1.28.1',
            base64: '0.5.2',
            brotli: '1.0.9',
            cjs_module_lexer: '1.2.2',
            cldr: '44.1',
            icu: '74.2',
            llhttp: '8.1.2',
            modules: '125',
            napi: '9',
            nghttp2: '1.61.0',
            openssl: '1.1.1',
            simdutf: '5.2.8',
            tz: '2024a',
            undici: '6.13.0',
            unicode: '15.1',
            uv: '1.46.0',
            uvwasi: '0.0.21',
            v8: 'IPV4-electron.0',
            zlib: 'IPV4-motley',
            electron: '31.2.1',
            chrome: '126.0.6478.127'
          },
          version: 'v20.15.0'
        },
        onBattery: false
      },
      duration: 1,
      name: 'diagnostic-Step-7: PerformanceAndMemory',
      step: 7
    },
    {
      message: 'Step-8 finished successfully',
      succeeded: true,
      payload: {
        logLevels: {
          silly: 0,
          debug: 4,
          verbose: 0,
          info: 386,
          warn: 245,
          error: 159
        },
        percentageOfErrors: 20,
        linesCount: 794
      },
      duration: 4,
      name: 'diagnostic-Step-8: LogHeuristics',
      step: 8
    },
    {
      message: 'Step-9 finished successfully',
      succeeded: true,
      payload: {
        version: 3,
        showTrayIcon: true,
        trayIconTheme: 'use_system',
        minimizeToTray: false,
        notifications: {
          flashWindow: 0,
          bounceIcon: true,
          bounceIconType: 'informational'
        },
        showUnreadBadge: true,
        useSpellChecker: true,
        enableHardwareAcceleration: true,
        autostart: false,
        hideOnStart: false,
        spellCheckerLocales: [],
        darkMode: false,
        lastActiveTeam: 0,
        downloadLocation: 'PATH',
        startInFullscreen: false,
        logLevel: 'info',
        alwaysClose: true,
        autoCheckForUpdates: true,
        helpLink: 'URL',
        enableServerManagement: true,
        enableAutoUpdater: true,
        managedResources: [ 'trusted' ],
        allowedProtocols: [ 'mattermost', 'ftp', 'mailto', 'tel' ],
        useNativeWindow: false,
        appName: 'Mattermost'
      },
      duration: 0,
      name: 'diagnostic-Step-9: Config',
      step: 9
    },
    {
      message: 'Step-10 finished successfully',
      succeeded: true,
      payload: { pathOfCrashReports: 'PATH', crashReportData: [] },
      duration: 0,
      name: 'diagnostic-Step-10: CrashReports',
      step: 10
    },
    {
      message: 'Step-11 finished successfully',
      succeeded: true,
      payload: [
        {
          name: 'rl_page_init_referrer',
          expirationDate: 1748377467,
          session: false
        },
        {
          name: 'rl_page_init_referring_domain',
          expirationDate: 1748377467,
          session: false
        },
        {
          name: 'MMAUTHTOKEN',
          expirationDate: 1725440234.56725,
          session: false
        },
        {
          name: 'MMUSERID',
          expirationDate: 1725440234.567339,
          session: false
        },
        {
          name: 'MMCSRF',
          expirationDate: 1725440234.567356,
          session: false
        },
        {
          name: 'rl_anonymous_id',
          expirationDate: 1755668168,
          session: false
        },
        {
          name: 'rl_group_id',
          expirationDate: 1755668168,
          session: false
        },
        {
          name: 'rl_group_trait',
          expirationDate: 1755668168,
          session: false
        },
        {
          name: 'rl_user_id',
          expirationDate: 1755668168,
          session: false
        },
        {
          name: 'rl_trait',
          expirationDate: 1755668168,
          session: false
        },
        {
          name: 'rl_anonymous_id',
          expirationDate: 1755668169,
          session: false
        },
        {
          name: 'rl_user_id',
          expirationDate: 1755668169,
          session: false
        },
        {
          name: 'rl_trait',
          expirationDate: 1755668169,
          session: false
        }
      ],
      duration: 0,
      name: 'diagnostic-Step-11: AuthSSO',
      step: 11
    }
  ]
}
[2024-08-20 07:39:56.523] [info]  | index | name                                     | succeeded |
[2024-08-20 07:39:56.524] [info]  | ---   | ---                                      | ---       |
[2024-08-20 07:39:56.524] [info]  | 0     | diagnostic-Step-0: logConfig             | true      |
[2024-08-20 07:39:56.524] [info]  | 1     | diagnostic-Step-1: internetConnection    | true      |
[2024-08-20 07:39:56.524] [info]  | 2     | diagnostic-Step-2: configValidation      | true      |
[2024-08-20 07:39:56.524] [info]  | 3     | diagnostic-Step-3: serverConnectivity    | true      |
[2024-08-20 07:39:56.524] [info]  | 4     | diagnostic-Step-4: sessionDataValidation | true      |
[2024-08-20 07:39:56.524] [info]  | 5     | diagnostic-Step-5: BrowserWindowsChecks  | true      |
[2024-08-20 07:39:56.524] [info]  | 6     | diagnostic-Step-6: PermissionsCheck      | true      |
[2024-08-20 07:39:56.525] [info]  | 7     | diagnostic-Step-7: PerformanceAndMemory  | true      |
[2024-08-20 07:39:56.525] [info]  | 8     | diagnostic-Step-8: LogHeuristics         | true      |
[2024-08-20 07:39:56.525] [info]  | 9     | diagnostic-Step-9: Config                | true      |
[2024-08-20 07:39:56.525] [info]  | 10    | diagnostic-Step-10: CrashReports         | true      |
[2024-08-20 07:39:56.525] [info]  | 11    | diagnostic-Step-11: AuthSSO              | true      |
[2024-08-20 07:39:56.525] [info]  | ---   | ---                                      | ---       |
[2024-08-20 07:39:56.525] [info]  12 out of 12 steps succeeded
[2024-08-20 07:39:56.525] [info]  #################### Report END ####################
[2024-08-20 07:39:56.526] [debug] Diagnostics.showLogFile { pathToFile: 'PATH_20-7-2024_7-39-56-45.txt' }
[2024-08-20 07:39:56.526] [debug] Diagnostics.initializeValues

Additional Information

Minimizing was working fine in all previous versions. The problem started in version 5.9.0.

cedarice commented 3 months ago

same issuse

devinbinnie commented 3 months ago

Was able to reproduce this. Looks like for some reason on minimize, the main window is emitting a change in size causing it to refocus itself and thus un-minimize. I think we'll need to add an exception for that so that doesn't happen. Funny enough after you click enough times it worked for me, so the current workaround is to click minimize until it works :P

Created a ticket: https://mattermost.atlassian.net/browse/MM-60233

EDIT: Additional note - only reproduces under X11. Wayland works fine.

eftewuer commented 1 month ago

Indeed in wayland it works fine. I've upgraded my Kubuntu from 24.04 to 24.10 which uses wayland by default. In that version Mattermost 5.9.0 can be minimized without problems.