diff --git a/.DS_Store b/.DS_Store index c7cb1d9..3a7a409 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/README.md b/README.md index 9b28355..9a7b764 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,14 @@ # BoredOS -BoredOS has now exited Beta stage and is "stable enough" to be put out as a "stable" product.
-
+  
====================== __ ____ ____ ===================== / /_ / __ \/ ___\ ==================== / __ \/ / / /\___ \ =================== / /_/ / /_/ /____/ / ================== /_.___/\____//_____/ ================= -
+
BoredOS is a simple x86_64 hobbyist operating system. It features a DE (and WM), a FAT32 filesystem, customizable UI and much much more! diff --git a/boredos.iso b/boredos.iso index 090b150..5df0757 100644 Binary files a/boredos.iso and b/boredos.iso differ diff --git a/src/.DS_Store b/src/.DS_Store index 395d9bf..8d474c1 100644 Binary files a/src/.DS_Store and b/src/.DS_Store differ diff --git a/src/kernel/.DS_Store b/src/kernel/.DS_Store index c93e495..f37b063 100644 Binary files a/src/kernel/.DS_Store and b/src/kernel/.DS_Store differ diff --git a/src/kernel/images/.DS_Store b/src/kernel/images/.DS_Store index 3eca0ac..6cc4bb6 100644 Binary files a/src/kernel/images/.DS_Store and b/src/kernel/images/.DS_Store differ diff --git a/src/kernel/images/wallpapers/.DS_Store b/src/kernel/images/wallpapers/.DS_Store index 5de30c9..82864b4 100644 Binary files a/src/kernel/images/wallpapers/.DS_Store and b/src/kernel/images/wallpapers/.DS_Store differ diff --git a/src/kernel/images/wallpapers/lake.jpg b/src/kernel/images/wallpapers/lake.jpg new file mode 100644 index 0000000..502b423 Binary files /dev/null and b/src/kernel/images/wallpapers/lake.jpg differ diff --git a/src/kernel/userland/settings.c b/src/kernel/userland/settings.c index 0da877d..de322c9 100644 --- a/src/kernel/userland/settings.c +++ b/src/kernel/userland/settings.c @@ -3,6 +3,7 @@ // This header needs to maintain in any file it is present in, as per the GPL license terms. #include "libc/syscall.h" #include "libc/libui.h" +#include "libc/stdlib.h" #include "nanojpeg.h" #include #include @@ -145,8 +146,8 @@ static void load_wallpapers(void) { if (fd >= 0) { int size = sys_seek(fd, 0, 2); // SEEK_END sys_seek(fd, 0, 0); // SEEK_SET - if (size > 0 && size < 1024 * 1024) { - unsigned char *buf = (unsigned char *)sys_sbrk(size); + if (size > 0 && size < 8 * 1024 * 1024) { + unsigned char *buf = (unsigned char *)malloc(size); if (buf) { sys_read(fd, buf, size); njInit(); @@ -155,7 +156,7 @@ static void load_wallpapers(void) { wp->valid = 1; } njDone(); - sys_sbrk(-size); // Release memory + free(buf); // Release memory } } sys_close(fd); diff --git a/src/kernel/wm.c b/src/kernel/wm.c index e29ca9c..a287806 100644 --- a/src/kernel/wm.c +++ b/src/kernel/wm.c @@ -574,7 +574,7 @@ static uint32_t* thumb_cache_decode(const char *path) { if (!fh) return NULL; uint32_t file_size = fh->size; - if (file_size == 0 || file_size > 2 * 1024 * 1024) { + if (file_size == 0 || file_size > 8 * 1024 * 1024) { fat32_close(fh); return NULL; } @@ -1161,7 +1161,9 @@ void wm_paint(void) { if (str_ends_with(icon->name, ".elf")) draw_elf_icon(icon->x, icon->y, icon->name); else if (str_ends_with(icon->name, ".pnt")) draw_paint_icon(icon->x, icon->y, icon->name); else if (str_ends_with(icon->name, ".jpg") || str_ends_with(icon->name, ".JPG")) { - draw_image_icon(icon->x, icon->y, icon->name); + char full_path[128] = "/Desktop/"; + int p=9; int n=0; while(icon->name[n] && p < 127) full_path[p++] = icon->name[n++]; full_path[p]=0; + draw_image_icon(icon->x, icon->y, full_path); draw_icon_label(icon->x, icon->y, icon->name); } else draw_document_icon(icon->x, icon->y, icon->name); @@ -2366,16 +2368,13 @@ void wm_process_deferred_thumbs(void) { i++; } path[i] = 0; - - serial_write("[WM] Processing deferred thumb: "); - serial_write(path); - serial_write("\n"); - + // Pop from queue thumb_queue_head = (thumb_queue_head + 1) % THUMB_QUEUE_SIZE; // Process (this takes time but it's okay because we are in the main loop with IRQs enabled) thumb_cache_decode(path); + force_redraw = true; } void wm_init(void) {