mirror of
https://github.com/FirestormViewer/phoenix-firestorm.git
synced 2026-08-14 00:48:30 +00:00
Merge branch 'release/2026.02' of https://github.com/secondlife/viewer
# Conflicts: # indra/newview/llappviewerwin32.cpp # indra/newview/llviewerwindow.cpp
This commit is contained in:
@@ -285,7 +285,7 @@ public:
|
||||
|
||||
#ifdef LL_WINDOWS
|
||||
virtual bool reportCrashToBugsplat(void* pExcepInfo /*EXCEPTION_POINTERS*/) { return false; }
|
||||
virtual bool reportCustomToBugsplat(const std::string& desription) { return false; }
|
||||
virtual bool reportCustomToBugsplat(const std::string& description) { return false; }
|
||||
#endif
|
||||
|
||||
public:
|
||||
|
||||
@@ -192,6 +192,7 @@ void LLWatchdog::remove(LLWatchdogEntry* e)
|
||||
{
|
||||
lockThread();
|
||||
mSuspects.erase(e);
|
||||
mFrozeList.erase(e);
|
||||
unlockThread();
|
||||
}
|
||||
|
||||
@@ -285,8 +286,9 @@ void LLWatchdog::run()
|
||||
// Sets watchdog marker file
|
||||
mCreateMarkerFnc(false);
|
||||
// If it's mainloop and it somehow recovers, it will re-add itself
|
||||
mSuspects.erase(*result);
|
||||
mFrozeList.insert(*result);
|
||||
LLWatchdogEntry* froze_entry = *result;
|
||||
mSuspects.erase(result);
|
||||
mFrozeList.insert(froze_entry);
|
||||
LL_WARNS() << description << LL_ENDL;
|
||||
}
|
||||
else
|
||||
@@ -308,8 +310,9 @@ void LLWatchdog::run()
|
||||
mCreateMarkerFnc(false);
|
||||
// Already reported, don't report again.
|
||||
// If it's mainloop and it somehow recovers, it will re-add itself
|
||||
LLWatchdogEntry* froze_entry = *result;
|
||||
mSuspects.erase(result);
|
||||
mFrozeList.insert(*result);
|
||||
mFrozeList.insert(froze_entry);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,6 +70,10 @@ LLConsole::LLConsole(const LLConsole::Params& p)
|
||||
{
|
||||
setFontSize(p.font_size_index);
|
||||
}
|
||||
if (mFont == nullptr)
|
||||
{
|
||||
setFontSize(0); // sans-serif
|
||||
}
|
||||
mFadeTime = mLinePersistTime - FADE_DURATION;
|
||||
setMaxLines(LLUI::getInstance()->mSettingGroups["config"]->getS32("ConsoleMaxLines"));
|
||||
|
||||
@@ -85,6 +89,13 @@ void LLConsole::setLinePersistTime(F32 seconds)
|
||||
|
||||
void LLConsole::reshape(S32 width, S32 height, bool called_from_parent)
|
||||
{
|
||||
if (mFont == nullptr)
|
||||
{
|
||||
// not initialized yet
|
||||
LL_WARNS() << "LLConsole::reshape called before font is set" << LL_ENDL;
|
||||
return;
|
||||
}
|
||||
|
||||
S32 new_width = llmax(50, llmin(getRect().getWidth(), width));
|
||||
S32 new_height = llmax(mFont->getLineHeight() + 15, llmin(getRect().getHeight(), height));
|
||||
|
||||
|
||||
@@ -9259,6 +9259,17 @@
|
||||
Notes:
|
||||
If required width will be less than this one, a button will be reshaped to default size , otherwise to required.
|
||||
Change of this parameter will affect the layout of buttons in notification toast.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>S32</string>
|
||||
<key>Value</key>
|
||||
<integer>90</integer>
|
||||
</map>
|
||||
<key>ScriptToastButtonWidth</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Default width of buttons in the Script dialog toast.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
<font
|
||||
name="SansSerifBold"
|
||||
comment="Name of bold sans-serif font">
|
||||
<file load_collection="true" flags="bold" font_weight="600">InterVariableFont.ttf</file>
|
||||
<file load_collection="true" flags="bold" font_weight="700">InterVariableFont.ttf</file>
|
||||
<file size_delta="-0.5">DejaVuSans-Bold.ttf</file>
|
||||
<os name="Windows">
|
||||
<file>arialbd.ttf</file>
|
||||
@@ -68,7 +68,7 @@
|
||||
name="SansSerif"
|
||||
comment="Name of bold sans-serif font"
|
||||
font_style="BOLD">
|
||||
<file load_collection="true" flags="bold" font_weight="600">InterVariableFont.ttf</file>
|
||||
<file load_collection="true" flags="bold" font_weight="700">InterVariableFont.ttf</file>
|
||||
<file size_delta="-0.5">DejaVuSans-Bold.ttf</file>
|
||||
</font>
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
name="SansSerif"
|
||||
comment="Name of bold italic sans-serif font"
|
||||
font_style="BOLD|ITALIC">
|
||||
<file load_collection="true" font_weight="800">InterItalicVariableFont.ttf</file>
|
||||
<file load_collection="true" flags="bold" font_weight="700">InterItalicVariableFont.ttf</file>
|
||||
<file size_delta="-0.5">DejaVuSans-BoldOblique.ttf</file>
|
||||
</font>
|
||||
|
||||
@@ -164,7 +164,7 @@
|
||||
name="Helvetica"
|
||||
comment="Name of Helvetica font (bold)"
|
||||
font_style="BOLD">
|
||||
<file flags="bold" font_weight="800">InterVariableFont.ttf</file>
|
||||
<file flags="bold" font_weight="700">InterVariableFont.ttf</file>
|
||||
<file size_delta="-0.5">DejaVuSans-Bold.ttf</file>
|
||||
<os name="Windows">
|
||||
<file>arialbd.ttf</file>
|
||||
|
||||
@@ -129,7 +129,7 @@ namespace
|
||||
// MiniDmpSender pointer. As things stand, though, we must define an
|
||||
// actual function and store the pointer statically.
|
||||
static MiniDmpSender *sBugSplatSender = nullptr;
|
||||
static std::string sBugsplatDesriptionField;
|
||||
static std::string sBugsplatDescriptionField;
|
||||
|
||||
bool bugsplatSendLog(UINT nCode, LPVOID lpVal1, LPVOID lpVal2)
|
||||
{
|
||||
@@ -208,7 +208,7 @@ namespace
|
||||
// // Can be set by watchdog or other code that detects a problem
|
||||
// // and wants to add some context to the crash report.
|
||||
// // Will be visible in the BugSplat web UI.
|
||||
// sBugSplatSender->setDefaultUserDescription(WCSTR(LLError::getFatalMessage()));
|
||||
// sBugSplatSender->setDefaultUserDescription(WCSTR(sBugsplatDescriptionField));
|
||||
// // This type of crash is not nessesarily a crash, or final.
|
||||
// // Prepare for the next one.
|
||||
// sBugsplatDesriptionField.clear();
|
||||
@@ -1111,7 +1111,7 @@ bool LLAppViewerWin32::reportCustomToBugsplat(const std::string &description)
|
||||
#if defined(LL_BUGSPLAT)
|
||||
if (sBugSplatSender)
|
||||
{
|
||||
sBugsplatDesriptionField = description;
|
||||
sBugsplatDescriptionField = description;
|
||||
|
||||
__try
|
||||
{
|
||||
|
||||
@@ -44,7 +44,7 @@ public:
|
||||
bool cleanup() override;
|
||||
|
||||
bool reportCrashToBugsplat(void* pExcepInfo) override;
|
||||
bool reportCustomToBugsplat(const std::string& desription) override;
|
||||
bool reportCustomToBugsplat(const std::string& description) override;
|
||||
|
||||
protected:
|
||||
bool initWindow() override; // Override to initialize the viewer's window.
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
|
||||
const S32 BOTTOM_PAD = VPAD * 3;
|
||||
const S32 IGNORE_BTN_TOP_DELTA = 3*VPAD;//additional ignore_btn padding
|
||||
S32 BUTTON_WIDTH = 110;
|
||||
const S32 BUTTON_WIDTH = 90;
|
||||
|
||||
|
||||
//static
|
||||
@@ -62,7 +62,8 @@ LLToastNotifyPanel::button_click_signal_t LLToastNotifyPanel::sButtonClickSignal
|
||||
LLToastNotifyPanel::LLToastNotifyPanel(const LLNotificationPtr& notification, const LLRect& rect, bool show_images)
|
||||
: LLCheckBoxToastPanel(notification)
|
||||
, LLInstanceTracker<LLToastNotifyPanel, LLUUID, LLInstanceTrackerReplaceOnCollision>(notification->getID())
|
||||
, mTextBox(NULL)
|
||||
, mTextBox(NULL),
|
||||
mButtonWidth(BUTTON_WIDTH)
|
||||
{
|
||||
init(rect, show_images);
|
||||
}
|
||||
@@ -73,9 +74,9 @@ void LLToastNotifyPanel::addDefaultButton()
|
||||
LLButton* ok_btn = createButton(form_element, false);
|
||||
LLRect new_btn_rect(ok_btn->getRect());
|
||||
|
||||
new_btn_rect.setOriginAndSize(llabs(getRect().getWidth() - BUTTON_WIDTH)/ 2, BOTTOM_PAD,
|
||||
new_btn_rect.setOriginAndSize(llabs(getRect().getWidth() - mButtonWidth) / 2, BOTTOM_PAD,
|
||||
//auto_size for ok button makes it very small, so let's make it wider
|
||||
BUTTON_WIDTH, new_btn_rect.getHeight());
|
||||
mButtonWidth, new_btn_rect.getHeight());
|
||||
ok_btn->setRect(new_btn_rect);
|
||||
addChild(ok_btn, -1);
|
||||
mNumButtons = 1;
|
||||
@@ -102,7 +103,7 @@ LLButton* LLToastNotifyPanel::createButton(const LLSD& form_element, bool is_opt
|
||||
p.font = font;
|
||||
p.rect.height = BTN_HEIGHT;
|
||||
p.click_callback.function(boost::bind(&LLToastNotifyPanel::onClickButton, userdata));
|
||||
p.rect.width = BUTTON_WIDTH;
|
||||
p.rect.width = mButtonWidth;
|
||||
p.auto_resize = false;
|
||||
p.follows.flags(FOLLOWS_LEFT | FOLLOWS_BOTTOM);
|
||||
p.enabled = !form_element.has("enabled") || form_element["enabled"].asBoolean();
|
||||
@@ -112,7 +113,7 @@ LLButton* LLToastNotifyPanel::createButton(const LLSD& form_element, bool is_opt
|
||||
p.image_color_disabled(LLUIColorTable::instance().getColor("ButtonCautionImageColor"));
|
||||
}
|
||||
// for the scriptdialog buttons we use fixed button size. This is a limit!
|
||||
if (!mIsScriptDialog && font->getWidth(form_element["text"].asString()) > (BUTTON_WIDTH-2*HPAD))
|
||||
if (!mIsScriptDialog && font->getWidth(form_element["text"].asString()) > (mButtonWidth - 2 * HPAD))
|
||||
{
|
||||
p.rect.width = 1;
|
||||
p.auto_resize = true;
|
||||
@@ -280,7 +281,7 @@ void LLToastNotifyPanel::init( LLRect rect, bool show_images )
|
||||
mInfoPanel = getChild<LLPanel>("info_panel");
|
||||
|
||||
mControlPanel = getChild<LLPanel>("control_panel");
|
||||
BUTTON_WIDTH = gSavedSettings.getS32("ToastButtonWidth");
|
||||
|
||||
// customize panel's attributes
|
||||
// is it intended for displaying a tip?
|
||||
mIsTip = mNotification->getType() == "notifytip";
|
||||
@@ -289,6 +290,10 @@ void LLToastNotifyPanel::init( LLRect rect, bool show_images )
|
||||
// is it a script dialog?
|
||||
mIsScriptDialog = (notif_name == "ScriptDialog" || notif_name == "ScriptDialogGroup");
|
||||
|
||||
static LLCachedControl<S32> btn_width(gSavedSettings, "ToastButtonWidth", 90);
|
||||
static LLCachedControl<S32> script_button_width(gSavedSettings, "ScriptToastButtonWidth", 110);
|
||||
mButtonWidth = mIsScriptDialog ? script_button_width : btn_width;
|
||||
|
||||
bool is_content_trusted = (notif_name != "LoadWebPage");
|
||||
// is it a caution?
|
||||
//
|
||||
@@ -390,17 +395,20 @@ void LLToastNotifyPanel::init( LLRect rect, bool show_images )
|
||||
S32 button_panel_width = mControlPanel->getRect().getWidth();// get initial width from XML
|
||||
S32 button_panel_height = mControlPanel->getRect().getHeight();
|
||||
|
||||
// width for 3 columns: 3 buttons + 2 gaps
|
||||
S32 min_width_required = 3 * BUTTON_WIDTH + 2 * (2 * HPAD);
|
||||
if (min_width_required > button_panel_width)
|
||||
// Script dialog has wider buttons so it requires wider layout to ensure proper spacing
|
||||
if (mIsScriptDialog)
|
||||
{
|
||||
button_panel_width = min_width_required;
|
||||
S32 width_increase = button_panel_width - mControlPanel->getRect().getWidth();
|
||||
reshape(getRect().getWidth() + width_increase, getRect().getHeight());
|
||||
mInfoPanel->reshape(mInfoPanel->getRect().getWidth() + width_increase, mInfoPanel->getRect().getHeight());
|
||||
mTextBox->reshape(mTextBox->getRect().getWidth() + width_increase, mTextBox->getRect().getHeight());
|
||||
// width for 3 columns: 3 buttons + 2 gaps
|
||||
S32 min_width_required = 3 * mButtonWidth + 2 * (2 * HPAD);
|
||||
if (min_width_required > button_panel_width)
|
||||
{
|
||||
button_panel_width = min_width_required;
|
||||
S32 width_increase = button_panel_width - mControlPanel->getRect().getWidth();
|
||||
reshape(getRect().getWidth() + width_increase, getRect().getHeight());
|
||||
mInfoPanel->reshape(mInfoPanel->getRect().getWidth() + width_increase, mInfoPanel->getRect().getHeight());
|
||||
mTextBox->reshape(mTextBox->getRect().getWidth() + width_increase, mTextBox->getRect().getHeight());
|
||||
}
|
||||
}
|
||||
|
||||
//try get an average h_pad to spread out buttons
|
||||
S32 h_pad = (button_panel_width - buttons_width) / (S32(buttons.size()));
|
||||
if(h_pad < 2*HPAD)
|
||||
@@ -410,8 +418,8 @@ void LLToastNotifyPanel::init( LLRect rect, bool show_images )
|
||||
* for a scriptdialog toast h_pad can be < 2*HPAD if we have a lot of buttons.
|
||||
* In last case set default h_pad to avoid heaping of buttons
|
||||
*/
|
||||
S32 button_per_row = button_panel_width / BUTTON_WIDTH;
|
||||
h_pad = (button_panel_width % BUTTON_WIDTH) / (button_per_row - 1);// -1 because we do not need space after last button in a row
|
||||
S32 button_per_row = button_panel_width / mButtonWidth;
|
||||
h_pad = (button_panel_width % mButtonWidth) / (button_per_row - 1);// -1 because we do not need space after last button in a row
|
||||
if(h_pad < 2*HPAD) // still not enough space between buttons ?
|
||||
{
|
||||
h_pad = 2*HPAD;
|
||||
@@ -422,7 +430,7 @@ void LLToastNotifyPanel::init( LLRect rect, bool show_images )
|
||||
// we are using default width for script buttons so we can determinate button_rows
|
||||
// to get a number of rows we divide the required width of the buttons to button_panel_width
|
||||
// buttons.size() is reduced by -2 due to presence of ignore button which is calculated independently a bit lower
|
||||
S32 button_rows = llceil(F32(buttons.size() - 2) * (BUTTON_WIDTH + h_pad) / (button_panel_width + h_pad));
|
||||
S32 button_rows = llceil(F32(buttons.size() - 2) * (mButtonWidth + h_pad) / (button_panel_width + h_pad));
|
||||
//reserve one row for the ignore_btn
|
||||
button_rows++;
|
||||
//calculate required panel height for scripdialog notification.
|
||||
|
||||
@@ -134,6 +134,8 @@ protected:
|
||||
S32 mNumOptions { 0 };
|
||||
S32 mNumButtons { 0 };
|
||||
|
||||
S32 mButtonWidth;
|
||||
|
||||
static const std::string sFontDefault;
|
||||
static const std::string sFontScript;
|
||||
};
|
||||
|
||||
@@ -2538,24 +2538,35 @@ void LLViewerWindow::initWorldUI()
|
||||
physical_mem = LLMemory::getMaxMemKB();
|
||||
}
|
||||
|
||||
if (!gNonInteractive && physical_mem > MIN_PHYSICAL_MEMORY)
|
||||
if (!gNonInteractive)
|
||||
{
|
||||
LL_INFOS() << "Preloading cef instances" << LL_ENDL;
|
||||
if (physical_mem > MIN_PHYSICAL_MEMORY)
|
||||
{
|
||||
LL_INFOS() << "Preloading cef instances" << LL_ENDL;
|
||||
|
||||
LLFloaterReg::getInstance("destinations");
|
||||
LLFloaterReg::getInstance("avatar_welcome_pack");
|
||||
// <FS:TJ> Preload the CEF instance of the currently used legacy search floater
|
||||
//LLFloaterReg::getInstance("search");
|
||||
if (gSavedSettings.getBOOL("FSUseFSLegacySearch"))
|
||||
{
|
||||
LLFloaterReg::getInstance("search");
|
||||
LLFloaterReg::getInstance("destinations");
|
||||
LLFloaterReg::getInstance("avatar_welcome_pack");
|
||||
// <FS:TJ> Preload the CEF instance of the currently used legacy search floater
|
||||
//LLFloaterReg::getInstance("search");
|
||||
if (gSavedSettings.getBOOL("FSUseFSLegacySearch"))
|
||||
{
|
||||
LLFloaterReg::getInstance("search");
|
||||
}
|
||||
else
|
||||
{
|
||||
LLFloaterReg::getInstance("legacy_search");
|
||||
}
|
||||
// </FS:TJ>
|
||||
LLFloaterReg::getInstance("marketplace");
|
||||
}
|
||||
else
|
||||
// <FS:Ansariel> OpenSim support
|
||||
//else if (gSavedSettings.getBOOL("FirstLoginThisInstall"))
|
||||
else if (LLGridManager::instance().isInSecondLife() && gSavedSettings.getBOOL("FirstLoginThisInstall"))
|
||||
// </FS:Ansariel>
|
||||
{
|
||||
LLFloaterReg::getInstance("legacy_search");
|
||||
// Preload the welcome pack for first-time login even on low end hardware
|
||||
LLFloaterReg::getInstance("avatar_welcome_pack");
|
||||
}
|
||||
// </FS:TJ>
|
||||
LLFloaterReg::getInstance("marketplace");
|
||||
}
|
||||
|
||||
// <FS:Zi> Autohide main chat bar if applicable
|
||||
|
||||
@@ -91,7 +91,8 @@ LLWindowListener::LLWindowListener(LLViewerWindow *window, const KeyboardGetter&
|
||||
&LLWindowListener::getPaths,
|
||||
LLSDMap("reply", LLSD()));
|
||||
add("keyDown",
|
||||
keySomething + "keypress event.\n" + keyExplain + mask,
|
||||
keySomething + "keypress event.\n" + keyExplain +
|
||||
"The [\"char\"] parameter detects and handles non-ASCII characters seperately\n" + mask,
|
||||
&LLWindowListener::keyDown);
|
||||
add("keyUp",
|
||||
keySomething + "key release event.\n" + keyExplain + mask,
|
||||
@@ -270,6 +271,20 @@ void LLWindowListener::keyDown(LLSD const & evt)
|
||||
KEY key = getKEY(evt);
|
||||
MASK mask = getMask(evt);
|
||||
|
||||
bool is_non_ascii = false;
|
||||
llwchar uni_char = 0;
|
||||
|
||||
if (evt.has("char"))
|
||||
{
|
||||
LLWString wstr = utf8str_to_wstring(evt["char"].asString());
|
||||
if (!wstr.empty())
|
||||
{
|
||||
uni_char = wstr[0];
|
||||
// If the Unicode code point is outside ASCII range, use Unicode-only handling
|
||||
is_non_ascii = (uni_char >= 0x80);
|
||||
}
|
||||
}
|
||||
|
||||
if (evt.has("path"))
|
||||
{
|
||||
std::string path(evt["path"]);
|
||||
@@ -284,8 +299,17 @@ void LLWindowListener::keyDown(LLSD const & evt)
|
||||
response.setResponse(target_view->getInfo());
|
||||
|
||||
gFocusMgr.setKeyboardFocus(target_view);
|
||||
gViewerInput.handleKey(key, mask, false);
|
||||
if(key < 0x80) mWindow->handleUnicodeChar(key, mask);
|
||||
|
||||
if (is_non_ascii)
|
||||
{
|
||||
// For non-ASCII characters, only send the Unicode event
|
||||
mWindow->handleUnicodeChar(uni_char, mask);
|
||||
}
|
||||
else
|
||||
{
|
||||
gViewerInput.handleKey(key, mask, false);
|
||||
if(key < 0x80) mWindow->handleUnicodeChar(key, mask);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -296,8 +320,16 @@ void LLWindowListener::keyDown(LLSD const & evt)
|
||||
}
|
||||
else
|
||||
{
|
||||
gViewerInput.handleKey(key, mask, false);
|
||||
if(key < 0x80) mWindow->handleUnicodeChar(key, mask);
|
||||
if (is_non_ascii)
|
||||
{
|
||||
// For non-ASCII characters, only send the Unicode event
|
||||
mWindow->handleUnicodeChar(uni_char, mask);
|
||||
}
|
||||
else
|
||||
{
|
||||
gViewerInput.handleKey(key, mask, false);
|
||||
if(key < 0x80) mWindow->handleUnicodeChar(key, mask);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
<font
|
||||
name="SansSerifBold"
|
||||
comment="Name of bold sans-serif font">
|
||||
<file load_collection="true" flags="bold" font_weight="600">InterVariableFont.ttf</file>
|
||||
<file load_collection="true" flags="bold" font_weight="700">InterVariableFont.ttf</file>
|
||||
<file size_delta="-0.5">DejaVuSans-Bold.ttf</file>
|
||||
<os name="Windows">
|
||||
<file>arialbd.ttf</file>
|
||||
@@ -64,7 +64,7 @@
|
||||
name="SansSerif"
|
||||
comment="Name of bold sans-serif font"
|
||||
font_style="BOLD">
|
||||
<file load_collection="true" flags="bold" font_weight="600">InterVariableFont.ttf</file>
|
||||
<file load_collection="true" flags="bold" font_weight="700">InterVariableFont.ttf</file>
|
||||
<file size_delta="-0.5">DejaVuSans-Bold.ttf</file>
|
||||
</font>
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
name="SansSerif"
|
||||
comment="Name of bold italic sans-serif font"
|
||||
font_style="BOLD|ITALIC">
|
||||
<file load_collection="true" font_weight="800">InterItalicVariableFont.ttf</file>
|
||||
<file load_collection="true" flags="bold" font_weight="700">InterItalicVariableFont.ttf</file>
|
||||
<file size_delta="-0.5">DejaVuSans-BoldOblique.ttf</file>
|
||||
</font>
|
||||
|
||||
@@ -135,7 +135,7 @@
|
||||
name="Helvetica"
|
||||
comment="Name of Helvetica font (bold)"
|
||||
font_style="BOLD">
|
||||
<file flags="bold" font_weight="800">InterVariableFont.ttf</file>
|
||||
<file flags="bold" font_weight="700">InterVariableFont.ttf</file>
|
||||
<file size_delta="-0.5">DejaVuSans-Bold.ttf</file>
|
||||
<os name="Windows">
|
||||
<file>arialbd.ttf</file>
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
<file>
|
||||
NotoSansCJKjp-Bold.otf
|
||||
</file>
|
||||
<file load_collection="true" font_weight="800" flags="bold">InterVariableFont.ttf</file>
|
||||
<file load_collection="true" font_weight="700" flags="bold">InterVariableFont.ttf</file>
|
||||
<os name="Windows">
|
||||
<file load_collection="true">
|
||||
YuGothB.ttc
|
||||
@@ -115,13 +115,13 @@
|
||||
</os>
|
||||
</font>
|
||||
<font name="SansSerif" comment="Name of bold sans-serif font" font_style="BOLD">
|
||||
<file load_collection="true" font_weight="800" flags="bold">InterVariableFont.ttf</file>
|
||||
<file load_collection="true" font_weight="700" flags="bold">InterVariableFont.ttf</file>
|
||||
</font>
|
||||
<font name="SansSerif" comment="Name of italic sans-serif font" font_style="ITALIC">
|
||||
<file load_collection="true" font_weight="400">InterItalicVariableFont.ttf</file>
|
||||
</font>
|
||||
<font name="SansSerif" comment="Name of bold italic sans-serif font" font_style="BOLD|ITALIC">
|
||||
<file load_collection="true" flags="bold" font_weight="800">InterItalicVariableFont.ttf</file>
|
||||
<file load_collection="true" flags="bold" font_weight="700">InterItalicVariableFont.ttf</file>
|
||||
</font>
|
||||
<font name="Monospace" comment="Name of monospace font">
|
||||
<file>
|
||||
@@ -163,7 +163,7 @@
|
||||
</os>
|
||||
</font>
|
||||
<font name="Helvetica" comment="Name of Helvetica font (bold)" font_style="BOLD">
|
||||
<file load_collection="true" font_weight="800" flags="bold">InterVariableFont.ttf</file>
|
||||
<file load_collection="true" font_weight="700" flags="bold">InterVariableFont.ttf</file>
|
||||
<os name="Windows">
|
||||
<file>
|
||||
arialbd.ttf
|
||||
@@ -189,7 +189,7 @@
|
||||
</os>
|
||||
</font>
|
||||
<font name="Helvetica" comment="Name of Helvetica font (bold italic)" font_style="BOLD|ITALIC">
|
||||
<file load_collection="true" flags="bold" font_weight="800">InterItalicVariableFont.ttf</file>
|
||||
<file load_collection="true" flags="bold" font_weight="700">InterItalicVariableFont.ttf</file>
|
||||
<os name="Windows">
|
||||
<file>
|
||||
arialbi.ttf
|
||||
|
||||
Reference in New Issue
Block a user