v3.6.0
What's new
Bazooka
v3.6.0 (2026-10-18)
- remove redundant flag fiddling
- Cut redundant work on hover, combat and layout paths
- Modifier key presses while hovering a plugin no longer rebuild its
tooltip (OnLeave + OnEnter) unless it matters: manual tooltips, or
switching from the Alt simple tip back to the plugin's tip - Plugin:applySettings() renders and lays out the text once instead of
up to 5 times (matters at login, profile change and font-metric fix) - globalSettingsChanged() no longer measures the text twice
- Bar width sums use the plugin widths cached by updateLayout() instead
of querying frame rects; center frame width only set when changed - Bar/plugin toggleMouse() skip EnableMouse calls when state is
unchanged (runs for every bar and plugin on combat start/end) - closeStaticDialog() skips StaticPopup_Hide() when the dialog is not
shown (runs on every combat start via lock())
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
- Modifier key presses while hovering a plugin no longer rebuild its
- Fix cross-flavor bugs found in review
- Don't replace BackdropTemplate's OnSizeChanged handler (hook it instead):
setting/clearing it broke backdrop texture coords when bars were resized - Gradient: use the backdrop's Center texture, GetTexture() returns a file
id on current clients so the path lookup never matched - Register pet battle events wherever they exist (MoP Classic), not just
on mainline - Unlock again after a pet battle (it locked until the next combat ended)
- Drop leftover bars when switching to a profile with fewer bars; they were
still used as drop targets and listed in the plugins' bar selection - getDropPlace(): don't error when every bar is hidden
- Reset icon tex coords/vertex color when iconCoords/iconR are cleared or the
border clip is set back to 0 - Guard GetAddOnInfo() for unknown tocname, fall back to the default font
path when a bar has none - Don't strip colors from / lay out by secret values (12.0)
- Options: open the settings panel on classic flavors too (category ids are
strings there, only numeric ids were opened); remove duplicate table
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
- Don't replace BackdropTemplate's OnSizeChanged handler (hook it instead):
- Refactor hot paths and deduplicate core logic
Performance:- Plugin:setText() builds its output from cached format strings and a
reused argument table instead of a 90-line branch tree - Plugin:updateLayout() only re-anchors the icon/text when alignment or
offset actually changes (it runs on every LDB text update) - Coalesce plugin options rebuilds triggered by data object creation into
one per frame (was one full rebuild + sort per plugin during login) - forceHideFrames() iterates UIParent children in a loop instead of
recursing over varargs
Fixes: - Gradient backgrounds use Texture:SetGradient() when SetGradientAlpha()
is not available (removed in 10.0)
Maintainability: - Shared Bar:applyCombatState() for combat enter/leave and enableAndShow()
- isFadeEnabled()/isMouseDisabled() helpers replace duplicated branches
- hideActiveTip() helper, simplified hideTip(), getTopBottom(), updateWidth()
- Launcher/data source defaults derived from PluginDefaults
- Remove unused locals
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com
- Plugin:setText() builds its output from cached format strings and a
All Relations
- All Relations
- Embedded Library
- Optional Dependency
- Required Dependency
- Tool
- Incompatible
- Include

