From 4f6ddba087a811734cd1618bd07468ceebd2437d Mon Sep 17 00:00:00 2001 From: Chris Ryan Date: Sat, 30 Aug 2025 13:28:55 +1000 Subject: [PATCH] Remember the position and size of the compendium browser --- module/applications/ui/itemBrowser.mjs | 19 ++++++++++++++----- module/config/flagsConfig.mjs | 4 ++++ 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/module/applications/ui/itemBrowser.mjs b/module/applications/ui/itemBrowser.mjs index 40884817..96f9a01d 100644 --- a/module/applications/ui/itemBrowser.mjs +++ b/module/applications/ui/itemBrowser.mjs @@ -84,12 +84,16 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) { /** @inheritDoc */ async _preRender(context, options) { this.presets = options.presets ?? {}; + const userPresetPosition = game.user.getFlag(CONFIG.DH.id, CONFIG.DH.FLAGS[`compendiumBrowser`].position); + options.position = userPresetPosition ?? ItemBrowser.DEFAULT_OPTIONS.position; - const width = this.presets?.render?.noFolder === true || this.presets?.render?.lite === true ? 600 : 850; - if(this.rendered) - this.setPosition({ width }); - else - options.position.width = width; + if (!userPresetPosition) { + const width = this.presets?.render?.noFolder === true || this.presets?.render?.lite === true ? 600 : 850; + if(this.rendered) + this.setPosition({ width }); + else + options.position.width = width; + } await super._preRender(context, options); } @@ -112,6 +116,11 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) { }); } + _onPosition(position) { + game.user.setFlag(CONFIG.DH.id, CONFIG.DH.FLAGS[`compendiumBrowser`].position, position); + } + + _attachPartListeners(partId, htmlElement, options) { super._attachPartListeners(partId, htmlElement, options); diff --git a/module/config/flagsConfig.mjs b/module/config/flagsConfig.mjs index 91712288..1426047c 100644 --- a/module/config/flagsConfig.mjs +++ b/module/config/flagsConfig.mjs @@ -8,6 +8,10 @@ export const encounterCountdown = { position: 'countdown-encounter-position' }; +export const compendiumBrowser = { + position: 'compendium-browser-position' +}; + export const itemAttachmentSource = 'attachmentSource'; export const userFlags = {