mirror of
https://github.com/JetBrains/JetBrainsRuntime.git
synced 2025-12-06 09:29:38 +01:00
JBR-4840 cache screen resolution in XToolkit
(cherry picked from commit b0c0a6ff75)
This commit is contained in:
@@ -465,6 +465,8 @@ public final class XToolkit extends UNIXToolkit implements Runnable {
|
||||
*/
|
||||
private boolean loadedXSettings;
|
||||
|
||||
private int cachedScreenResolution = 72;
|
||||
|
||||
/**
|
||||
* XSETTINGS for the default screen.
|
||||
* <p>
|
||||
@@ -1619,15 +1621,18 @@ public final class XToolkit extends UNIXToolkit implements Runnable {
|
||||
@Override
|
||||
public int getScreenResolution() {
|
||||
long display = getDisplay();
|
||||
awtLock();
|
||||
try {
|
||||
return (int) ((XlibWrapper.DisplayWidth(display,
|
||||
XlibWrapper.DefaultScreen(display)) * 25.4) /
|
||||
XlibWrapper.DisplayWidthMM(display,
|
||||
XlibWrapper.DefaultScreen(display)));
|
||||
} finally {
|
||||
awtUnlock();
|
||||
if (awtTryLock()) {
|
||||
try {
|
||||
return cachedScreenResolution =
|
||||
(int) ((XlibWrapper.DisplayWidth(display,
|
||||
XlibWrapper.DefaultScreen(display)) * 25.4) /
|
||||
XlibWrapper.DisplayWidthMM(display,
|
||||
XlibWrapper.DefaultScreen(display)));
|
||||
} finally {
|
||||
awtUnlock();
|
||||
}
|
||||
}
|
||||
return cachedScreenResolution;
|
||||
}
|
||||
|
||||
static native long getDefaultXColormap();
|
||||
|
||||
Reference in New Issue
Block a user