Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
96 commits
Select commit Hold shift + click to select a range
7f958b2
i am trying, ok?
TheDrawingCoder-Gamer Nov 30, 2023
f3ec231
we've all sinned. some worse than others.
TheDrawingCoder-Gamer Dec 1, 2023
a10db21
OH MY, SO MANY CHANGES
TheDrawingCoder-Gamer Dec 3, 2023
4378e8c
It's trying, at least
TheDrawingCoder-Gamer Dec 3, 2023
ff1d84a
Try work on event loop?
TheDrawingCoder-Gamer Dec 4, 2023
26823f2
Try attach buffer (xdg didn't like that)
TheDrawingCoder-Gamer Dec 4, 2023
2831f68
It now segfaults
TheDrawingCoder-Gamer Dec 4, 2023
cc7f892
ok i'm trying
TheDrawingCoder-Gamer Dec 6, 2023
9c35576
IT SURE DOES OPEN
TheDrawingCoder-Gamer Dec 6, 2023
46d015e
Revert from public glue to private glue
TheDrawingCoder-Gamer Dec 6, 2023
84ec8e6
a whole lot of nothing
TheDrawingCoder-Gamer Dec 6, 2023
9c543c0
Start switch to libdecor (crashes)
TheDrawingCoder-Gamer Dec 7, 2023
7aa2820
Doesn't crash (doesn't render well)
TheDrawingCoder-Gamer Dec 7, 2023
e42583d
start input
TheDrawingCoder-Gamer Dec 8, 2023
db4c4d5
remove xdg-shell
TheDrawingCoder-Gamer Dec 8, 2023
101d7c0
screens, and other misc things
TheDrawingCoder-Gamer Dec 8, 2023
f7ba638
title/titlebar :)
TheDrawingCoder-Gamer Dec 8, 2023
62a8da1
Events for focus, maximize
TheDrawingCoder-Gamer Dec 8, 2023
863fab0
Partially working Raster
TheDrawingCoder-Gamer Dec 9, 2023
f6fd997
remove notify debug
TheDrawingCoder-Gamer Dec 9, 2023
abe4eac
More roundtrips : )
TheDrawingCoder-Gamer Dec 9, 2023
393e708
Don't commit if no window : )
TheDrawingCoder-Gamer Dec 9, 2023
366363f
Make current before resize
TheDrawingCoder-Gamer Dec 11, 2023
952c76c
Don't block on swap (fixes multiwindow render)
TheDrawingCoder-Gamer Dec 12, 2023
ebafae5
Make multiwindow work
TheDrawingCoder-Gamer Dec 12, 2023
eb4527c
forgot to revert to release build
TheDrawingCoder-Gamer Dec 12, 2023
7f6206a
Fully working rendering
TheDrawingCoder-Gamer Dec 12, 2023
78cd01f
Clean up, clipboard
TheDrawingCoder-Gamer Dec 12, 2023
460744e
Half-baked mouse cursors
TheDrawingCoder-Gamer Dec 13, 2023
cd600b0
Squash merge upstream/main into wayland
TheDrawingCoder-Gamer Dec 13, 2023
f03b9f1
Mouse works
TheDrawingCoder-Gamer Dec 14, 2023
535f8a4
LESS THREAD SAFETY
TheDrawingCoder-Gamer Dec 14, 2023
0909a74
do not load cursor on resize
TheDrawingCoder-Gamer Dec 14, 2023
8349eb4
scrolling
TheDrawingCoder-Gamer Dec 14, 2023
d9efd31
repeating (stalls)
TheDrawingCoder-Gamer Dec 15, 2023
8107786
lowercase keys
TheDrawingCoder-Gamer Dec 15, 2023
fd42b2f
Acceptable (lags)
TheDrawingCoder-Gamer Dec 15, 2023
05cf38b
compose
TheDrawingCoder-Gamer Dec 15, 2023
f6f8bd0
keycodes, scaling
TheDrawingCoder-Gamer Dec 16, 2023
22fd80a
Bump Skija version
TheDrawingCoder-Gamer Dec 17, 2023
dbad095
Merge remote-tracking branch 'upstream/main' into wayland
TheDrawingCoder-Gamer Dec 17, 2023
20a7a87
Repeat now not laggy (on GL)
TheDrawingCoder-Gamer Dec 17, 2023
5a5d611
nudge keyboard repeat
TheDrawingCoder-Gamer Dec 17, 2023
9eabca1
don't commit on detach
TheDrawingCoder-Gamer Dec 17, 2023
acc730d
fix clipboard?
TheDrawingCoder-Gamer Dec 17, 2023
7a6f95b
clipboard sauce
TheDrawingCoder-Gamer Dec 18, 2023
291adf3
Self clipboard pasting
TheDrawingCoder-Gamer Dec 18, 2023
bc0bd2c
change focus access to method
TheDrawingCoder-Gamer Dec 18, 2023
78ab64f
yank out pointer into class
TheDrawingCoder-Gamer Dec 18, 2023
adc9d35
check on deref
TheDrawingCoder-Gamer Dec 19, 2023
59c3082
no copy/move stuff in things w/ destructors
TheDrawingCoder-Gamer Dec 19, 2023
aff2790
clarify what detaching does
TheDrawingCoder-Gamer Dec 19, 2023
9748b97
various fixes, nvidia worksish
TheDrawingCoder-Gamer Dec 20, 2023
1d7fb1a
change how cursors are loaded
TheDrawingCoder-Gamer Dec 20, 2023
1b04091
More safety?
TheDrawingCoder-Gamer Dec 20, 2023
6e7fb7d
rework proxy tags, more checks
TheDrawingCoder-Gamer Dec 21, 2023
32a841d
Dont trust EGL size
TheDrawingCoder-Gamer Dec 23, 2023
7c95878
do memleak frame
TheDrawingCoder-Gamer Dec 23, 2023
980ad0d
grab pointer and keyboard as unique_ptr
TheDrawingCoder-Gamer Dec 23, 2023
ba5192e
scroll fix
TheDrawingCoder-Gamer Dec 23, 2023
aae5324
lock cursor
TheDrawingCoder-Gamer Dec 24, 2023
b2af1e5
Movement, request new lock
TheDrawingCoder-Gamer Dec 24, 2023
f6202e6
hide cursor, no primary screen
TheDrawingCoder-Gamer Dec 24, 2023
f09192d
Relative mouse movement
TheDrawingCoder-Gamer Dec 24, 2023
7917054
fix mouse scaling
TheDrawingCoder-Gamer Dec 25, 2023
26182c7
Really fix mouse
TheDrawingCoder-Gamer Dec 25, 2023
c041ebd
Fix jank related to resizing
TheDrawingCoder-Gamer Dec 26, 2023
6435c2f
Fix closing
TheDrawingCoder-Gamer Dec 26, 2023
ddff041
don't constantly set buffer size
TheDrawingCoder-Gamer Dec 30, 2023
96ed37d
fix layer swapping
TheDrawingCoder-Gamer Dec 31, 2023
38280f6
don't forget GL too
TheDrawingCoder-Gamer Dec 31, 2023
353d420
NO MORE LIBDECOR
TheDrawingCoder-Gamer Jan 3, 2024
b61b050
Don't crash on unmaximize
TheDrawingCoder-Gamer Jan 3, 2024
26f1bc7
Implement screen-state related items
TheDrawingCoder-Gamer Jan 3, 2024
02d4987
Merge remote-tracking branch 'upstream/main' into wayland
TheDrawingCoder-Gamer Jan 3, 2024
a4af84a
try fix build
TheDrawingCoder-Gamer Jan 3, 2024
25972d8
Hidden actually means just no title bar
TheDrawingCoder-Gamer Jan 4, 2024
94d4539
Thinner = better
TheDrawingCoder-Gamer Jan 4, 2024
ebf0c4c
Fix movement when titlebar is hidden
TheDrawingCoder-Gamer Jan 4, 2024
0a6f4ff
remove log
TheDrawingCoder-Gamer Jan 4, 2024
67ce6f9
Undo some unneeded changes
TheDrawingCoder-Gamer Jan 4, 2024
ff8827b
Combine border into one part
TheDrawingCoder-Gamer Jan 5, 2024
7c921ca
make title great again
TheDrawingCoder-Gamer Jan 6, 2024
a2c8a47
edit title bar grabbing
TheDrawingCoder-Gamer Jan 7, 2024
adef9ae
configure on first resize
TheDrawingCoder-Gamer Jan 7, 2024
d34bd62
always allow movement on border with ctrl
TheDrawingCoder-Gamer Jan 8, 2024
737857e
urgency/focus stealing
TheDrawingCoder-Gamer Jan 9, 2024
8f8842b
Add example code for focus
TheDrawingCoder-Gamer Jan 9, 2024
27ed307
slim decorations
TheDrawingCoder-Gamer Jan 9, 2024
ccd584f
constrain size of window
TheDrawingCoder-Gamer Jan 9, 2024
1c2f4be
Use var for protocols
TheDrawingCoder-Gamer Jan 14, 2024
a7f078f
Omit functions that are high version
TheDrawingCoder-Gamer Jan 14, 2024
d407cba
remove atoms
TheDrawingCoder-Gamer Jan 16, 2024
030cd7d
fix crash on close under sway
TheDrawingCoder-Gamer Jan 19, 2024
1f164c3
Merge remote-tracking branch 'upstream/main' into wayland
TheDrawingCoder-Gamer Jan 19, 2024
9baac61
NVIDIA JUST WORKS:tm:
TheDrawingCoder-Gamer Jan 19, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ RUN apt-get update -y && apt-get install -y software-properties-common
RUN add-apt-repository -y ppa:ubuntu-toolchain-r/test
RUN add-apt-repository -y ppa:openjdk-r/ppa
RUN add-apt-repository -y ppa:git-core/ppa
RUN apt-get update -y && apt-get install -y wget zip python git build-essential g++-9 cmake ninja-build libxcomposite-dev libxrandr-dev libgl1-mesa-dev libxi-dev libxcursor-dev openjdk-11-jdk-headless
RUN apt-get update -y && apt-get install -y wget zip python git build-essential g++-9 cmake ninja-build libxcomposite-dev libxrandr-dev libgl1-mesa-dev libxi-dev libxcursor-dev openjdk-11-jdk-headless libegl1-mesa libegl1-mesa-dev extra-cmake-modules wayland-protocols wayland-utils libwayland-dev
RUN wget --no-verbose https://downloads.apache.org/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz --output-document - | tar -xz
RUN echo 'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64' > /etc/profile.d/02-jdk.sh
RUN echo 'export PATH=$JAVA_HOME/bin:/root/apache-maven-3.6.3/bin:$PATH' >> /etc/profile.d/02-jdk.sh
15 changes: 14 additions & 1 deletion examples/dashboard/java/Example.java
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,11 @@ public Example() {
panelTheme = new PanelTheme(window);
panelTouch = new PanelTouch(window);

var scale = window.getScreen().getScale();
var scale = window.getScale();
int count = App._windows.size() - 1;
Screen screen = App.getScreens()[(count / 5) % App.getScreens().length];
IRect bounds = screen.getWorkArea();
// IRect bounds = new IRect(0, 0, 100, 100);

window.setTitle("JWM Window #" + count);
if (window instanceof WindowMac windowMac) {
Expand Down Expand Up @@ -199,6 +200,18 @@ public void accept(Event e) {
window.minimize();
case B ->
setProgressBar(progressBars.next());
case S -> {
var timer = new Timer();
// delay to allow workspace/focus switching
timer.schedule(new TimerTask() {
public void run() {
App.runOnUIThread(() -> {
window.focus();
timer.cancel();
});
}
}, 2000);
}
}
}
} else if (e instanceof EventFrame) {
Expand Down
2 changes: 1 addition & 1 deletion examples/dashboard/java/PanelMouseCursors.java
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ public void accept(Event e) {
keepCursor = false;
} else if (!keepCursor) {
if (window._lastCursor != MouseCursor.ARROW)
window.requestFrame();
window.requestFrame();
window.setMouseCursor(MouseCursor.ARROW);
}
lastInside = inside;
Expand Down
2 changes: 2 additions & 0 deletions examples/dashboard/java/PanelRendering.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ else if (Platform.CURRENT == Platform.WINDOWS)
layers = new String[] { "LayerD3D12Skija", "LayerGLSkija", "SkijaLayerRaster" };
else if (Platform.CURRENT == Platform.X11)
layers = new String[] { "LayerGLSkija", "LayerRasterSkija" };
else if (Platform.CURRENT == Platform.WAYLAND)
layers = new String[] { "LayerGLSkija", "LayerRasterSkija" };

for (var layerName: layers)
layersStatus.put(layerName, UNKNOWN);
Expand Down
12 changes: 10 additions & 2 deletions examples/dashboard/java/PanelScreens.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public PanelScreens(Window window) {
super(window);
if (Platform.MACOS == Platform.CURRENT) {
titleStyles = new Options("Default", "Hidden", "Transparent", "Unified", "Unified Compact", "Unified Transparent", "Unified Compact Transparent");
} else if (Platform.X11 == Platform.CURRENT) {
} else if (Platform.X11 == Platform.CURRENT || Platform.WAYLAND == Platform.CURRENT) {
titleStyles = new Options("Default", "Hidden");
}
}
Expand Down Expand Up @@ -66,6 +66,14 @@ public void setTitleStyle(String style) {
case "Hidden" ->
w.setTitlebarVisible(false);
}
} else if (Platform.WAYLAND == Platform.CURRENT) {
WindowWayland w = (WindowWayland) window;
switch (style) {
case "Default" ->
w.setTitlebarVisible(true);
case "Hidden" ->
w.setTitlebarVisible(false);
}
}
}

Expand Down Expand Up @@ -171,4 +179,4 @@ public void paintImpl(Canvas canvas, int width, int height, float scale) {
canvas.translate(0, lineHeight);
canvas.restore();
}
}
}
2 changes: 1 addition & 1 deletion examples/dashboard/java/PanelTextInput.java
Original file line number Diff line number Diff line change
Expand Up @@ -232,4 +232,4 @@ public String getSubstring(int start, int end) {
int end2 = Math.min(end, start2);
return text.substring(start2, end2);
}
}
}
2 changes: 1 addition & 1 deletion linux/cc/ILayer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ void jwm::ILayer::makeCurrent() {
}
void jwm::ILayer::makeCurrentForced() {
_ourCurrentLayer = this;
}
}
2 changes: 1 addition & 1 deletion linux/cc/ILayer.hh
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,4 @@ public:
static ILayer* _ourCurrentLayer;
};

} // namespace jwm
} // namespace jwm
5 changes: 5 additions & 0 deletions macos/java/WindowMac.java
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,11 @@ public Window restore() {
return this;
}

@Override
public float getScale() {
return this.getScreen().getScale();
}

@Override
public Window setFullScreen(boolean value) {
assert _onUIThread() : "Should be run on UI thread";
Expand Down
24 changes: 19 additions & 5 deletions script/build.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#! /usr/bin/env python3
import argparse, build_utils, common, glob, os, platform, subprocess, sys

def build_native():
os.chdir(common.basedir + "/" + build_utils.system)
def build_native_system(system):
os.chdir(common.basedir + "/" + system)
subprocess.check_call(["cmake",
"-DCMAKE_BUILD_TYPE=Release",
"-B", "build",
Expand All @@ -19,16 +19,30 @@ def build_native():

if os.path.exists('build/libjwm_x64.so'):
build_utils.copy_newer('build/libjwm_x64.so', '../target/classes/libjwm_x64.so')

if os.path.exists('build/libjwm_x64_wayland.so'):
build_utils.copy_newer('build/libjwm_x64_wayland.so', '../target/classes/libjwm_x64_wayland.so')

if os.path.exists('build/jwm_x64.dll'):
build_utils.copy_newer('build/jwm_x64.dll', '../target/classes/jwm_x64.dll')

return 0

def build_native():
cur_system = build_utils.system;
if cur_system == "linux":
build_native_system("x11")
build_native_system("wayland")
else:
build_native_system(cur_system)
return 0
def build_java():
os.chdir(common.basedir)
sources = build_utils.files("linux/java/**/*.java", "macos/java/**/*.java", "shared/java/**/*.java", "windows/java/**/*.java",)
build_utils.javac(sources, "target/classes", classpath=common.deps_compile())
sources = build_utils.files("x11/java/**/*.java",
"macos/java/**/*.java",
"shared/java/**/*.java",
"windows/java/**/*.java",
"wayland/java/**/*.java")
build_utils.javac(sources, "target/classes", classpath=common.deps_compile(), release="16")
return 0

def main():
Expand Down
2 changes: 1 addition & 1 deletion script/build_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -250,4 +250,4 @@ def fetch(path, data = None):
"stagedRepositoryIds":[repo_id]
}})
print('Success! Just released', repo_id)
return 0
return 0
8 changes: 6 additions & 2 deletions script/clean.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,13 @@
def main():
os.chdir(common.basedir)
build_utils.rmdir("target")
build_utils.rmdir(build_utils.system + "/build")
if build_utils.system == "linux":
build_utils.rmdir("wayland/build")
build_utils.rmdir("x11/build")
else:
build_utils.rmdir(build_utils.system + "/build")
build_utils.rmdir("examples/dashboard/target")
return 0

if __name__ == '__main__':
sys.exit(main())
sys.exit(main())
4 changes: 2 additions & 2 deletions script/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ def deps_compile():
parser = argparse.ArgumentParser()
parser.add_argument('--skija-dir', default=None)
parser.add_argument('--skija-shared-jar', default=None)
parser.add_argument('--skija-version', default='0.116.1')
parser.add_argument('--skija-version', default='0.116.2')
(args, _) = parser.parse_known_args()

deps = [
Expand Down Expand Up @@ -38,4 +38,4 @@ def deps_compile():

return deps

version = build_utils.get_arg("version") or build_utils.parse_ref() or build_utils.parse_sha() or "0.0.0-SNAPSHOT"
version = build_utils.get_arg("version") or build_utils.parse_ref() or build_utils.parse_sha() or "0.0.0-SNAPSHOT"
3 changes: 2 additions & 1 deletion script/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@ def main() -> Tuple[str, str, str]:
jar = build_utils.jar(f"target/jwm-{common.version}.jar", ("target/classes", "."), ("target/maven", "META-INF"))

build_utils.makedirs("target/src/io/github/humbleui/jwm")
shutil.copytree("linux/java", "target/src/io/github/humbleui/jwm", dirs_exist_ok=True)
shutil.copytree("x11/java", "target/src/io/github/humbleui/jwm", dirs_exist_ok=True)
shutil.copytree("wayland/java", "target/src/io/github/humbleui/jwm", dirs_exist_ok=True)
shutil.copytree("macos/java", "target/src/io/github/humbleui/jwm", dirs_exist_ok=True)
shutil.copytree("shared/java", "target/src/io/github/humbleui/jwm", dirs_exist_ok=True)
shutil.copytree("windows/java", "target/src/io/github/humbleui/jwm", dirs_exist_ok=True)
Expand Down
22 changes: 15 additions & 7 deletions script/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,15 @@ def main():
parser = argparse.ArgumentParser()
parser.add_argument('--example', default='dashboard')
parser.add_argument('--jwm-version', default=None)
parser.add_argument('--skija-version', default='0.116.1')
parser.add_argument('--skija-version', default='0.116.2')
parser.add_argument('--skija-dir', default=None)
parser.add_argument('--skija-shared-jar', default=None)
parser.add_argument('--skija-platform-jar', default=None)
parser.add_argument('--types-dir', default=None)
parser.add_argument('--just-run', action='store_true')
args = parser.parse_args()

if not args.jwm_version:
if not args.jwm_version and not args.just_run:
build.main()

if args.skija_dir:
Expand All @@ -32,14 +33,21 @@ def main():
]
else:
classpath += [
'target/classes',
build_utils.system + '/build'
]
'target/classes'
]
if build_utils.system == "linux":
classpath += [
"wayland/build",
"x11/build"
]
else:
classpath += [
build_utils.system + '/build'
]

if args.skija_dir:
classpath += [
skija_dir + '/platform/build',
skija_dir + '/platform/target/classes',
skija_dir + '/platform/target/' + build_utils.system + '-' + build_utils.arch + '/classes',
]
elif args.skija_platform_jar:
classpath += [
Expand Down
2 changes: 1 addition & 1 deletion shared/cc/MouseCursor.hh
Original file line number Diff line number Diff line change
Expand Up @@ -51,4 +51,4 @@ namespace jwm {
}
}

}
}
1 change: 1 addition & 0 deletions shared/cc/Window.cc
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

jwm::Window::~Window() {
fEnv->DeleteGlobalRef(fWindow);
fWindow = nullptr;
}

void jwm::Window::dispatch(jobject event) {
Expand Down
7 changes: 6 additions & 1 deletion shared/java/App.java
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ else if (Platform.CURRENT == Platform.MACOS)
window = new WindowMac();
else if (Platform.CURRENT == Platform.X11)
window = new WindowX11();
else if (Platform.CURRENT == Platform.WAYLAND)
window = new WindowWayland();
else
throw new RuntimeException("Unsupported platform: " + Platform.CURRENT);
_windows.add(window);
Expand Down Expand Up @@ -98,12 +100,15 @@ public static Screen[] getScreens() {
*
* @return primary desktop screen
*/
@Nullable
public static Screen getPrimaryScreen() {
assert _onUIThread() : "Should be run on UI thread";
if (Platform.CURRENT == Platform.WAYLAND)
return null;
for (Screen s: getScreens())
if (s.isPrimary())
return s;
throw new IllegalStateException("Can't find primary screen");
return null;
}

public static void openSymbolsPalette() {
Expand Down
6 changes: 3 additions & 3 deletions shared/java/ClipboardEntry.java
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ public static ClipboardEntry makeRTF(String text) {
*/
@NotNull @SneakyThrows
public static ClipboardEntry makeString(ClipboardFormat format, String text) {
if (Platform.CURRENT == Platform.X11 || Platform.CURRENT == Platform.MACOS) {
if (Platform.CURRENT == Platform.X11 || Platform.CURRENT == Platform.MACOS || Platform.CURRENT == Platform.WAYLAND) {
return make(format, text.getBytes("UTF-8"));
}
return make(format, text.getBytes("UTF-16LE"));
Expand All @@ -76,9 +76,9 @@ public static ClipboardEntry makeString(ClipboardFormat format, String text) {
*/
@NotNull @SneakyThrows
public String getString() {
if (Platform.CURRENT == Platform.X11 || Platform.CURRENT == Platform.MACOS) {
if (Platform.CURRENT == Platform.X11 || Platform.CURRENT == Platform.MACOS || Platform.CURRENT == Platform.WAYLAND) {
return new String(_data, "UTF-8");
}
return new String(_data, "UTF-16LE");
}
}
}
2 changes: 1 addition & 1 deletion shared/java/Layer.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,4 @@ default void swapBuffers() {}

@Override
default void close() {}
}
}
4 changes: 2 additions & 2 deletions shared/java/LayerGL.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ public LayerGL() {
@Override
public void attach(Window window) {
assert _onUIThread() : "Should be run on UI thread";
_nAttach(window);
_window = window;
_nAttach(window);
}

@Override
Expand Down Expand Up @@ -75,4 +75,4 @@ public void close() {
@ApiStatus.Internal public native void _nResize(int width, int height);
@ApiStatus.Internal public native void _nSwapBuffers();
@ApiStatus.Internal public native void _nClose();
}
}
4 changes: 2 additions & 2 deletions shared/java/LayerRaster.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ public LayerRaster() {
@Override
public void attach(Window window) {
assert _onUIThread() : "Should be run on UI thread";
_nAttach(window);
_window = window;
_nAttach(window);
}

@Override
Expand Down Expand Up @@ -81,4 +81,4 @@ public int getRowBytes() {
@ApiStatus.Internal public native long _nGetPixelsPtr();
@ApiStatus.Internal public native int _nGetRowBytes();
@ApiStatus.Internal public native void _nClose();
}
}
10 changes: 7 additions & 3 deletions shared/java/Platform.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
public enum Platform {
WINDOWS,
X11,
MACOS;
MACOS,
WAYLAND;

public static final Platform CURRENT;
static {
Expand All @@ -13,8 +14,11 @@ public enum Platform {
else if (os.contains("windows"))
CURRENT = WINDOWS;
else if (os.contains("nux") || os.contains("nix"))
CURRENT = X11;
if (System.getenv("WAYLAND_DISPLAY") != null)
CURRENT = WAYLAND;
else
CURRENT = X11;
else
throw new RuntimeException("Unsupported platform: " + os);
}
}
}
Loading