Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix slow dialog regression, (and use native dialogs instead of imgui). #440

Open
wants to merge 98 commits into
base: feature/tabs-cross-platform
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
98 commits
Select commit Hold shift + click to select a range
341ca4a
Fix slow dialog regression.
time-killer-games Mar 3, 2024
25fc392
Fix window focus issue on macOS
Mar 5, 2024
37b6bb2
Update libfiledialogs extension
time-killer-games Mar 11, 2024
85a42a5
Use Native Dialogs instead of Dear ImGui
time-killer-games Apr 4, 2024
125ba0d
Use Native Dialogs instead of Dear ImGui
time-killer-games Apr 4, 2024
e36755c
Update Create_0.gml
time-killer-games Apr 4, 2024
4988f61
Delete extensions/pygml/pygml.dll
time-killer-games Apr 6, 2024
78afbc9
Delete extensions/pygml/python38.dll
time-killer-games Apr 6, 2024
c190d96
Delete extensions/pygml/python38.zip
time-killer-games Apr 6, 2024
1619d84
Delete extensions/pygml/python38._pth
time-killer-games Apr 6, 2024
a8b7009
yay
time-killer-games Apr 6, 2024
adf1638
Delete extensions/libdlgmodule/libdlgmod.dylib
time-killer-games Apr 15, 2024
01e1992
Delete extensions/libdlgmodule/libdlgmod.zip
time-killer-games Apr 15, 2024
acca149
Add files via upload
time-killer-games Apr 15, 2024
50e739d
Update Minecraft Note Block Studio.yyp
time-killer-games Apr 17, 2024
c3c9e42
Delete extensions/libdlgmodule directory
time-killer-games Apr 17, 2024
1dad67a
Add files via upload
time-killer-games Apr 17, 2024
1d29629
Update Minecraft Note Block Studio.yyp
time-killer-games Apr 17, 2024
5bfa628
Delete extensions/libdlgmod/libdlgmod.so
time-killer-games Apr 30, 2024
3a07096
Delete extensions/libdlgmod/libdlgmod.zip
time-killer-games Apr 30, 2024
14a167e
Delete extensions/libdlgmod/libdlgmod_arm.so
time-killer-games Apr 30, 2024
58f3ff6
Delete extensions/libdlgmod/libdlgmod_arm64.so
time-killer-games Apr 30, 2024
493ef12
Add files via upload
time-killer-games Apr 30, 2024
bd6de11
Delete extensions/libdlgmod/libdlgmod.so
time-killer-games May 8, 2024
0a48415
Delete extensions/libdlgmod/libdlgmod.zip
time-killer-games May 8, 2024
63eccd2
Delete extensions/libdlgmod/libdlgmod_arm.so
time-killer-games May 8, 2024
4dc8a18
Delete extensions/libdlgmod/libdlgmod_arm64.so
time-killer-games May 8, 2024
ccc3cf8
Add files via upload
time-killer-games May 8, 2024
ae2cf95
Delete extensions/libdlgmod/libdlgmod.zip
time-killer-games May 15, 2024
7ce32d7
Add files via upload
time-killer-games May 15, 2024
5807e73
Delete extensions/libxprocess/libxprocess.zip
time-killer-games May 15, 2024
7f180ea
Add files via upload
time-killer-games May 15, 2024
888145f
Delete extensions/libdlgmod/libdlgmod.dylib
time-killer-games Jul 20, 2024
f3d1caa
Delete extensions/libdlgmod/libdlgmod.zip
time-killer-games Jul 20, 2024
db193b2
Delete extensions/libdlgmod/libdlgmod.so
time-killer-games Jul 20, 2024
3b8f29b
Delete extensions/libdlgmod/libdlgmod_arm.so
time-killer-games Jul 20, 2024
a4ebbf3
Delete extensions/libdlgmod/libdlgmod_arm64.so
time-killer-games Jul 20, 2024
411c871
Delete extensions/libdlgmod/libdlgmod.dll
time-killer-games Jul 20, 2024
18b6538
Add files via upload
time-killer-games Jul 20, 2024
b64e873
Add files via upload
time-killer-games Jul 20, 2024
1cbd013
Delete extensions/libxprocess/libxprocess.zip
time-killer-games Jul 20, 2024
1dd32b9
Add files via upload
time-killer-games Jul 20, 2024
cf9f947
Delete extensions/libdlgmod/libdlgmod.zip
time-killer-games Aug 6, 2024
89c02d4
Delete extensions/libxprocess/libxprocess.zip
time-killer-games Aug 6, 2024
2807d16
Add files via upload
time-killer-games Aug 6, 2024
a2c12d5
Add files via upload
time-killer-games Aug 6, 2024
40f1633
Delete extensions/libxprocess/libxprocess.zip
time-killer-games Aug 7, 2024
bbd89fd
Delete extensions/libdlgmod/libdlgmod.zip
time-killer-games Aug 7, 2024
822f9c6
Add files via upload
time-killer-games Aug 7, 2024
78a1321
Add files via upload
time-killer-games Aug 7, 2024
c61f301
Delete extensions/libdlgmod/libdlgmod.zip
time-killer-games Aug 9, 2024
d524ea8
Add files via upload
time-killer-games Aug 9, 2024
e0103a6
Delete extensions/libxprocess/libxprocess.zip
time-killer-games Aug 9, 2024
a33b88f
Add files via upload
time-killer-games Aug 9, 2024
2741b53
Delete extensions/libxprocess/libxprocess.dll
time-killer-games Aug 9, 2024
d166aeb
Add files via upload
time-killer-games Aug 9, 2024
aa3ab60
Delete extensions/libxprocess/libxprocess.dll
time-killer-games Aug 9, 2024
bbe67b9
Add files via upload
time-killer-games Aug 9, 2024
e2acb74
Add files via upload
time-killer-games Aug 21, 2024
6dc0e54
Delete datafiles/libzoom.dylib
time-killer-games Aug 21, 2024
5020839
Add files via upload
time-killer-games Aug 21, 2024
b39088d
Delete datafiles/libzoom.dylib
time-killer-games Aug 21, 2024
0c77278
Add files via upload
time-killer-games Aug 21, 2024
22c59fc
Delete extensions/libxprocess/libxprocess.dll
time-killer-games Sep 9, 2024
af8bb4a
Delete extensions/libxprocess/libxprocess.zip
time-killer-games Sep 9, 2024
ae60a69
Add files via upload
time-killer-games Sep 9, 2024
6341f68
Delete extensions/libdlgmod/libdlgmod.dll
time-killer-games Sep 9, 2024
d5a6d38
Delete extensions/libdlgmod/libdlgmod.zip
time-killer-games Sep 9, 2024
123ecfa
Add files via upload
time-killer-games Sep 9, 2024
5a09601
Delete extensions/libdlgmod/libdlgmod.dylib
time-killer-games Sep 9, 2024
e24ece1
Add files via upload
time-killer-games Sep 9, 2024
4480b04
Delete extensions/libxprocess/libxprocess.dylib
time-killer-games Sep 9, 2024
759b597
Add files via upload
time-killer-games Sep 9, 2024
f4b290c
Delete extensions/libdlgmod/libdlgmod.so
time-killer-games Sep 9, 2024
aa1ec29
Delete extensions/libdlgmod/libdlgmod_arm.so
time-killer-games Sep 9, 2024
23527fe
Delete extensions/libdlgmod/libdlgmod_arm64.so
time-killer-games Sep 9, 2024
8eb78a6
Add files via upload
time-killer-games Sep 9, 2024
8e183e3
Delete extensions/libxprocess/libxprocess.so
time-killer-games Sep 9, 2024
30bbb7a
Delete extensions/libxprocess/libxprocess_arm.so
time-killer-games Sep 9, 2024
f842291
Delete extensions/libxprocess/libxprocess_arm64.so
time-killer-games Sep 9, 2024
e6528c4
Add files via upload
time-killer-games Sep 9, 2024
c4f2dc2
Delete extensions/libdlgmod/libdlgmod.dll
time-killer-games Sep 16, 2024
21d94ee
Delete extensions/libdlgmod/libdlgmod.zip
time-killer-games Sep 16, 2024
079592b
Add files via upload
time-killer-games Sep 16, 2024
cced1b3
Delete extensions/libdlgmod/libdlgmod.zip
time-killer-games Sep 16, 2024
fde00cc
Add files via upload
time-killer-games Sep 16, 2024
6a22c74
Delete extensions/libdlgmod/libdlgmod.zip
time-killer-games Sep 16, 2024
bf420d3
Add files via upload
time-killer-games Sep 16, 2024
c502160
Delete extensions/libdlgmod/libdlgmod.zip
time-killer-games Sep 16, 2024
bd8631b
Add files via upload
time-killer-games Sep 16, 2024
66479c4
Delete extensions/libdlgmod/libdlgmod.zip
time-killer-games Sep 20, 2024
f886dc9
Add files via upload
time-killer-games Sep 20, 2024
546bad1
Add files via upload
time-killer-games Sep 21, 2024
892f991
Delete extensions/libdlgmod/libdlgmod.zip
time-killer-games Sep 21, 2024
5663eeb
Add files via upload
time-killer-games Sep 21, 2024
31aa60d
Delete extensions/libdlgmod/libdlgmod.dll
time-killer-games Sep 24, 2024
b11c433
Delete extensions/libdlgmod/libdlgmod.zip
time-killer-games Sep 24, 2024
423dca9
Add files via upload
time-killer-games Sep 24, 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,459 changes: 756 additions & 1,703 deletions Minecraft Note Block Studio.yyp

Large diffs are not rendered by default.

Binary file removed datafiles/Fonts/156-NotoSansSC-Regular.otf
Binary file not shown.
95 changes: 95 additions & 0 deletions datafiles/libzoom.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
#define EXPORTED_FUNCTION extern "C" __attribute__((visibility("default")))
#if (defined(__APPLE__) && defined(__MACH__))
#include <AppKit/AppKit.h>
#include <libproc.h>
#else
#include <X11/Xlib.h>
#endif
Expand Down Expand Up @@ -61,3 +62,97 @@ EXPORTED_FUNCTION void window_zoom(void *window) {
XCloseDisplay(display);
#endif
}

EXPORTED_FUNCTION void window_focus(void *window) {
#if defined(_WIN32)
SetWindowPos((HWND)window, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
SetWindowPos((HWND)window, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
#elif (defined(__APPLE__) && defined(__MACH__))
CGWindowID wid = [(NSWindow *)window windowNumber];
const CGWindowLevel kScreensaverWindowLevel = CGWindowLevelForKey(kCGScreenSaverWindowLevelKey);
CFArrayRef windowArray = CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly | kCGWindowListExcludeDesktopElements, kCGNullWindowID);
CFIndex windowCount = 0;
if ((windowCount = CFArrayGetCount(windowArray))) {
for (CFIndex i = 0; i < windowCount; i++) {
NSDictionary *windowInfoDictionary = (__bridge NSDictionary *)((CFDictionaryRef)CFArrayGetValueAtIndex(windowArray, i));
NSNumber *ownerPID = (NSNumber *)(windowInfoDictionary[(id)kCGWindowOwnerPID]);
NSNumber *level = (NSNumber *)(windowInfoDictionary[(id)kCGWindowLayer]);
if (level.integerValue < kScreensaverWindowLevel) {
NSNumber *windowID = windowInfoDictionary[(id)kCGWindowNumber];
if (wid == windowID.integerValue) {
CFIndex appCount = [[[NSWorkspace sharedWorkspace] runningApplications] count];
for (CFIndex j = 0; j < appCount; j++) {
if (ownerPID.integerValue == [[[[NSWorkspace sharedWorkspace] runningApplications] objectAtIndex:j] processIdentifier]) {
NSRunningApplication *appWithPID = [[[NSWorkspace sharedWorkspace] runningApplications] objectAtIndex:j];
if (@available(macOS 14.0, *)) {
[[NSApplication sharedApplication] yieldActivationToApplication:appWithPID];
[appWithPID activateWithOptions:NSApplicationActivateAllWindows];
} else {
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
[appWithPID activateWithOptions:NSApplicationActivateAllWindows | NSApplicationActivateIgnoringOtherApps];
#pragma clang diagnostic pop
#pragma GCC diagnostic pop
}
char buf[PROC_PIDPATHINFO_MAXSIZE];
proc_pidpath(ownerPID.integerValue, buf, sizeof(buf));
NSString *buffer = [NSString stringWithUTF8String:buf];
unsigned long location = [buffer rangeOfString:@".app/Contents/MacOS/" options:NSBackwardsSearch].location;
NSString *path = (location != NSNotFound) ? [buffer substringWithRange:NSMakeRange(0, location)] : buffer;
NSString *app = [@" of application \\\"" stringByAppendingString:[path lastPathComponent]];
NSString *index = [@"set index of window id " stringByAppendingString:[windowID stringValue]];
NSString *execScript = [[index stringByAppendingString:app] stringByAppendingString:@"\\\" to 1"];
char *pointer = nullptr;
size_t buffer_size = 0;
NSAppleScript *script = [[NSAppleScript alloc] initWithSource:execScript];
NSDictionary *errInfo = nil;
[script executeAndReturnError:&errInfo];
[script release];
break;
}
}
}
}
}
}
#else
Display *display = XOpenDisplay(nullptr);
XEvent event;
event.xclient.type = ClientMessage;
event.xclient.serial = 0;
event.xclient.send_event = true;
event.xclient.message_type = XInternAtom(display, "_NET_ACTIVE_WINDOW", false);
event.xclient.window = (Window)(std::uintptr_t)window;
event.xclient.format = 32;
XSendEvent(display, DefaultRootWindow(display), false, SubstructureRedirectMask | SubstructureNotifyMask, &event);
XMapRaised(display, (Window)(std::uintptr_t)window);
XMapWindow(display, (Window)(std::uintptr_t)window);
XCloseDisplay(display);
#endif
}

EXPORTED_FUNCTION void window_hide(void *window) {
#if defined(_WIN32)
SetWindowLong((HWND)window, GWL_STYLE, WS_POPUP);
MoveWindow((HWND)window, 0, 0, 1, 1, false);
SetWindowLong((HWND)window, GWL_EXSTYLE, WS_EX_LAYERED | WS_EX_TOOLWINDOW);
SetLayeredWindowAttributes((HWND)window, RGB(0, 0, 0), 0, LWA_ALPHA);
#elif (defined(__APPLE__) && defined(__MACH__))
[[NSApplication sharedApplication] setActivationPolicy:(NSApplicationActivationPolicy)1];
if (@available(macOS 14.0, *)) {
[[NSApplication sharedApplication] yieldActivationToApplication:[NSRunningApplication currentApplication]];
[[NSApplication sharedApplication] activate];
} else {
[[NSApplication sharedApplication] activateIgnoringOtherApps:YES];
}
[(NSWindow *)window setStyleMask:NSWindowStyleMaskBorderless];
[(NSWindow *)window setFrame:NSMakeRect(0, 0, 1, 1) display:YES];
[(NSWindow *)window setAlphaValue:0];
#else
Display *display = XOpenDisplay(nullptr);
XUnmapWindow(display, (Window)(std::uintptr_t)window);
XCloseDisplay(display);
#endif
}
Binary file modified datafiles/libzoom.dylib
Binary file not shown.
19 changes: 19 additions & 0 deletions datafiles/libzoom.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
cd "${0%/*}"

if [ `uname` = "Darwin" ]; then
clang++ "libzoom.cpp" -o "libzoom.dylib" -I. -std=c++17 -shared -ObjC++ -framework AppKit -mmacos-version-min=10.13 -arch arm64 -arch x86_64 -fPIC;
elif [ $(uname) = "Linux" ]; then
g++ "libzoom.cpp" -o "libzoom.so" -std=c++17 -shared -static-libgcc -static-libstdc++ `pkg-config --cflags --libs x11` -fPIC;
elif [ $(uname) = "FreeBSD" ]; then
clang++ "libzoom.cpp" -o "libzoom.so" -std=c++17 -shared `pkg-config --cflags --libs x11`;
elif [ $(uname) = "DragonFly" ]; then
g++ "libzoom.cpp" -o "libzoom.so" -std=c++17 -shared -static-libgcc -static-libstdc++ `pkg-config --cflags --libs x11` -fPIC;
elif [ $(uname) = "NetBSD" ]; then
g++ "libzoom.cpp" -o "libzoom.so" -std=c++17 -shared -static-libgcc -static-libstdc++ `pkg-config --cflags --libs x11` -fPIC;
elif [ $(uname) = "OpenBSD" ]; then
clang++ "libzoom.cpp" -o "libzoom.so" -std=c++17 -shared `pkg-config --cflags --libs x11`;
elif [ $(uname) = "SunOS" ]; then
export PKG_CONFIG_PATH=/usr/lib/64/pkgconfig && g++ "libzoom.cpp" -o "libzoom.so" -std=c++17 -shared -static-libgcc `pkg-config --cflags --libs x11` -fPIC;
else
g++ "libzoom.cpp" -o "libzoom.dll" -std=c++17 -shared -static-libgcc -static-libstdc++ -static -fPIC;
fi
Binary file added extensions/libdlgmod/libdlgmod.dll
Binary file not shown.
Binary file added extensions/libdlgmod/libdlgmod.dylib
Binary file not shown.
Binary file added extensions/libdlgmod/libdlgmod.so
Binary file not shown.
Loading