Skip to content

Commit c22c0a0

Browse files
committed
Fix KDE tray window opening at wrong position on multi-monitor setups
Use multi-monitor aware TrayClickTracker.updateClickPosition() instead of computing corner position from primary display size. This resolves incorrect window positioning when the system tray is on a non-primary display. Fixes #347
1 parent 42d4d42 commit c22c0a0

1 file changed

Lines changed: 2 additions & 5 deletions

File tree

src/commonMain/kotlin/com/kdroid/composetray/lib/linux/LinuxTrayManager.kt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import com.kdroid.composetray.utils.warnln
66
import com.kdroid.composetray.utils.TrayClickTracker
77
import io.github.kdroidfilter.platformtools.LinuxDesktopEnvironment
88
import io.github.kdroidfilter.platformtools.detectLinuxDesktopEnvironment
9-
import java.awt.Toolkit
109
import java.io.File
1110
import java.util.concurrent.CountDownLatch
1211
import java.util.concurrent.TimeUnit.MILLISECONDS
@@ -162,10 +161,8 @@ internal class LinuxTrayManager(
162161
go.Systray_GetLastClickXY(xRef, yRef)
163162
val x = xRef.value
164163
val y = yRef.value
165-
// Infer corner and persist for Linux positioning
166-
val screen = try { Toolkit.getDefaultToolkit().screenSize } catch (_: Throwable) { java.awt.Dimension(0,0) }
167-
val pos = com.kdroid.composetray.utils.convertPositionToCorner(x, y, screen.width, screen.height)
168-
TrayClickTracker.setClickPosition(x, y, pos)
164+
// Use multi-monitor aware position tracking that resolves the correct screen bounds
165+
TrayClickTracker.updateClickPosition(x, y)
169166
} catch (_: Throwable) {
170167
// ignore, still invoke user callback
171168
}

0 commit comments

Comments
 (0)