Skip to content

Commit a9a88bb

Browse files
feat: reset font cache if open with shift
1 parent b3aaa8f commit a9a88bb

File tree

4 files changed

+44
-6
lines changed

4 files changed

+44
-6
lines changed

dependencies/breeze-ui.lua

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,46 @@ package("breeze-glfw")
33
set_urls("https://github.com/breeze-shell/glfw.git")
44
add_versions("latest", "master")
55

6+
local BREEZE_UI_VER = "2025.12.12+6"
7+
local BREEZE_UI_HASH = "e22549e4cea9da56dccf3572d014b3c7485e1214"
8+
9+
package("breeze-nanosvg")
10+
add_urls("https://github.com/std-microblock/breeze-ui.git")
11+
add_versions(BREEZE_UI_VER, BREEZE_UI_HASH)
12+
13+
set_kind("library", {headeronly = true})
14+
set_description("The breeze-nanosvg package")
15+
16+
on_install("windows", function (package)
17+
import("package.tools.xmake").install(package)
18+
end)
19+
20+
package("breeze-nanovg")
21+
add_urls("https://github.com/std-microblock/breeze-ui.git")
22+
add_versions(BREEZE_UI_VER, BREEZE_UI_HASH)
23+
24+
set_description("The breeze-nanovg package")
25+
26+
add_configs("shared", {description = "Build shared library.", default = false, type = "boolean", readonly = true})
27+
28+
on_install("windows", function (package)
29+
import("package.tools.xmake").install(package)
30+
end)
31+
32+
633
package("breeze-ui")
734
add_urls("https://github.com/std-microblock/breeze-ui.git")
8-
add_versions("2025.12.12+1", "a87c43b0d02d66cd1509db3cabb4faf734819372")
9-
add_deps("breeze-glfw", "nanovg", "glad", "nanosvg")
35+
add_versions(BREEZE_UI_VER, BREEZE_UI_HASH)
36+
add_deps("breeze-glfw", "glad", "nanovg", "breeze-nanosvg", {
37+
public = true
38+
})
1039
add_configs("shared", {description = "Build shared library.", default = false, type = "boolean", readonly = true})
1140

1241
if is_plat("windows") then
1342
add_syslinks("dwmapi", "shcore")
1443
end
1544

1645
on_install("windows", function (package)
17-
import("package.tools.xmake").install(package, {}, {target = "breeze_ui"})
46+
import("package.tools.xmake").install(package)
1847
end)
48+

src/shell/contextmenu/hooks.cc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#include "blook/memo.h"
33
#include "contextmenu.h"
44
#include "menu_render.h"
5+
#include "nanovg.h"
56
#include "shell/config.h"
67
#include "shell/entry.h"
78
#include "shell/script/quickjspp.hpp"
@@ -29,10 +30,18 @@ mb_shell::track_popup_menu(mb_shell::menu menu, int x, int y,
2930
try {
3031
set_thread_name("breeze::context_menu_renderer");
3132
perf_counter perf("mb_shell::track_popup_menu");
33+
34+
bool shift_pressed =
35+
(GetKeyState(VK_SHIFT) & 0x8000) != 0;
36+
3237
auto menu_render = menu_render::create(x, y, menu, run_js);
3338
menu_render.rt->last_time = menu_render.rt->clock.now();
3439
perf.end("menu_render::create");
3540

41+
if (shift_pressed && menu_render.rt->nvg) {
42+
nvgFonsResetAtlas(menu_render.rt->nvg);
43+
}
44+
3645
static HWND window = nullptr;
3746
window = (HWND)menu_render.rt->hwnd();
3847
// set keyboard hook to handle keyboard input

src/shell/script/script.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,4 +317,4 @@ extern "C" void qjs_notify_job_enqueued(JSContext *jsctx) {
317317
auto &ctx = qjs::Context::get(jsctx);
318318
ctx.pending_job_count.fetch_add(1);
319319
ctx.pending_job_count.notify_all();
320-
}
320+
}

xmake.lua

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@ includes("dependencies/breeze-ui.lua")
1818

1919
set_runtimes("MT")
2020
add_requires("breeze-glfw", {alias = "glfw"})
21-
add_requires("blook 3524a931af49be471840e5312fb0c18e888706fd",
22-
"nanovg", "glad", "nanosvg",
21+
add_requires("blook 3524a931af49be471840e5312fb0c18e888706fd", "glad",
2322
"reflect-cpp", "wintoast v1.3.1", "cpptrace v0.8.3", "breeze-ui")
2423

2524
if has_config("asan") then

0 commit comments

Comments
 (0)