Merge pull request #16153 from light-and-ray/fix_ui_flashing_on_reload_and_fast_scrollong
fix ui flashing on reloading and fast scrollong
This commit is contained in:
commit
1da4907927
|
@ -69,3 +69,44 @@ def reload_gradio_theme(theme_name=None):
|
||||||
# append additional values gradio_theme
|
# append additional values gradio_theme
|
||||||
shared.gradio_theme.sd_webui_modal_lightbox_toolbar_opacity = shared.opts.sd_webui_modal_lightbox_toolbar_opacity
|
shared.gradio_theme.sd_webui_modal_lightbox_toolbar_opacity = shared.opts.sd_webui_modal_lightbox_toolbar_opacity
|
||||||
shared.gradio_theme.sd_webui_modal_lightbox_icon_opacity = shared.opts.sd_webui_modal_lightbox_icon_opacity
|
shared.gradio_theme.sd_webui_modal_lightbox_icon_opacity = shared.opts.sd_webui_modal_lightbox_icon_opacity
|
||||||
|
|
||||||
|
|
||||||
|
def resolve_var(name: str, gradio_theme=None, history=None):
|
||||||
|
"""
|
||||||
|
Attempt to resolve a theme variable name to its value
|
||||||
|
|
||||||
|
Parameters:
|
||||||
|
name (str): The name of the theme variable
|
||||||
|
ie "background_fill_primary", "background_fill_primary_dark"
|
||||||
|
spaces and asterisk (*) prefix is removed from name before lookup
|
||||||
|
gradio_theme (gradio.themes.ThemeClass): The theme object to resolve the variable from
|
||||||
|
blank to use the webui default shared.gradio_theme
|
||||||
|
history (list): A list of previously resolved variables to prevent circular references
|
||||||
|
for regular use leave blank
|
||||||
|
Returns:
|
||||||
|
str: The resolved value
|
||||||
|
|
||||||
|
Error handling:
|
||||||
|
return either #000000 or #ffffff depending on initial name ending with "_dark"
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
if history is None:
|
||||||
|
history = []
|
||||||
|
if gradio_theme is None:
|
||||||
|
gradio_theme = shared.gradio_theme
|
||||||
|
|
||||||
|
name = name.strip()
|
||||||
|
name = name[1:] if name.startswith("*") else name
|
||||||
|
|
||||||
|
if name in history:
|
||||||
|
raise ValueError(f'Circular references: name "{name}" in {history}')
|
||||||
|
|
||||||
|
if value := getattr(gradio_theme, name, None):
|
||||||
|
return resolve_var(value, gradio_theme, history + [name])
|
||||||
|
else:
|
||||||
|
return name
|
||||||
|
|
||||||
|
except Exception:
|
||||||
|
name = history[0] if history else name
|
||||||
|
errors.report(f'resolve_color({name})', exc_info=True)
|
||||||
|
return '#000000' if name.endswith("_dark") else '#ffffff'
|
||||||
|
|
|
@ -41,6 +41,11 @@ def css_html():
|
||||||
if os.path.exists(user_css):
|
if os.path.exists(user_css):
|
||||||
head += stylesheet(user_css)
|
head += stylesheet(user_css)
|
||||||
|
|
||||||
|
from modules.shared_gradio_themes import resolve_var
|
||||||
|
light = resolve_var('background_fill_primary')
|
||||||
|
dark = resolve_var('background_fill_primary_dark')
|
||||||
|
head += f'<style>html {{ background-color: {light}; }} @media (prefers-color-scheme: dark) {{ html {{background-color: {dark}; }} }}</style>'
|
||||||
|
|
||||||
return head
|
return head
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue