Skip to content

Commit

Permalink
- fixed bug in Style::copy, some field were re-using the same instance
Browse files Browse the repository at this point in the history
- layout
  • Loading branch information
elect86 committed Jun 26, 2023
1 parent 05618ba commit 5bd33b3
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 23 deletions.
6 changes: 2 additions & 4 deletions core/src/main/kotlin/imgui/api/windows.kt
Original file line number Diff line number Diff line change
Expand Up @@ -426,14 +426,12 @@ interface windows {
// Handle manual resize: Resize Grips, Borders, Gamepad
var borderHeld = -1
val resizeGripCol = IntArray(4)
val resizeGripCount =
if (io.configWindowsResizeFromEdges) 2 else 1 // Allow resize from lower-left if we have the mouse cursor feedback for it.
val resizeGripCount = if (io.configWindowsResizeFromEdges) 2 else 1 // Allow resize from lower-left if we have the mouse cursor feedback for it.
val resizeGripDrawSize = floor(max(g.fontSize * 1.1f, window.windowRounding + 1f + g.fontSize * 0.2f))
if (!window.collapsed) {
val (held, ret) = window.updateManualResize(sizeAutoFit, borderHeld, resizeGripCount, resizeGripCol, visibilityRect)
if (ret) {
useCurrentSizeForScrollbarX = true
useCurrentSizeForScrollbarY = true
useCurrentSizeForScrollbarX = true; useCurrentSizeForScrollbarY = true
}
borderHeld = held
}
Expand Down
16 changes: 8 additions & 8 deletions core/src/main/kotlin/imgui/classes/Style.kt
Original file line number Diff line number Diff line change
Expand Up @@ -165,14 +165,14 @@ class Style {

// [JVM]
fun copy() = Style().also {
it.alpha = alpha; it.disabledAlpha = disabledAlpha; it.windowPadding = windowPadding; it.windowRounding = windowRounding; it.windowBorderSize = windowBorderSize
it.windowMinSize = windowMinSize; it.windowTitleAlign = windowTitleAlign; it.windowMenuButtonPosition = windowMenuButtonPosition; it.childRounding = childRounding
it.childBorderSize = childBorderSize; it.popupRounding = popupRounding; it.popupBorderSize = popupBorderSize; it.framePadding = framePadding; it.frameRounding = frameRounding
it.frameBorderSize = frameBorderSize; it.itemSpacing = itemSpacing; it.itemInnerSpacing = itemInnerSpacing; it.cellPadding put cellPadding
it.touchExtraPadding = touchExtraPadding; it.indentSpacing = indentSpacing; it.columnsMinSpacing = columnsMinSpacing; it.scrollbarSize = scrollbarSize;
it.alpha = alpha; it.disabledAlpha = disabledAlpha; it.windowPadding put windowPadding; it.windowRounding = windowRounding; it.windowBorderSize = windowBorderSize
it.windowMinSize put windowMinSize; it.windowTitleAlign put windowTitleAlign; it.windowMenuButtonPosition = windowMenuButtonPosition; it.childRounding = childRounding
it.childBorderSize = childBorderSize; it.popupRounding = popupRounding; it.popupBorderSize = popupBorderSize; it.framePadding put framePadding; it.frameRounding = frameRounding
it.frameBorderSize = frameBorderSize; it.itemSpacing put itemSpacing; it.itemInnerSpacing put itemInnerSpacing; it.cellPadding put cellPadding
it.touchExtraPadding put touchExtraPadding; it.indentSpacing = indentSpacing; it.columnsMinSpacing = columnsMinSpacing; it.scrollbarSize = scrollbarSize
it.scrollbarRounding = scrollbarRounding; it.grabMinSize = grabMinSize; it.grabRounding = grabRounding; it.logSliderDeadzone = logSliderDeadzone; it.tabRounding = tabRounding
it.tabBorderSize = tabBorderSize; it.tabMinWidthForCloseButton = tabMinWidthForCloseButton; it.colorButtonPosition = colorButtonPosition; it.buttonTextAlign = buttonTextAlign
it.selectableTextAlign = selectableTextAlign; it.displayWindowPadding = displayWindowPadding; it.displaySafeAreaPadding = displaySafeAreaPadding
it.tabBorderSize = tabBorderSize; it.tabMinWidthForCloseButton = tabMinWidthForCloseButton; it.colorButtonPosition = colorButtonPosition; it.buttonTextAlign put buttonTextAlign
it.selectableTextAlign put selectableTextAlign; it.displayWindowPadding put displayWindowPadding; it.displaySafeAreaPadding put displaySafeAreaPadding
it.mouseCursorScale = mouseCursorScale; it.antiAliasedLines = antiAliasedLines; it.antiAliasedLinesUseTex = antiAliasedLinesUseTex; it.antiAliasedFill = antiAliasedFill
it.curveTessellationTol = curveTessellationTol; it.circleTessellationMaxError = circleTessellationMaxError; it.colors += colors; it.locale = locale
}
Expand Down Expand Up @@ -234,7 +234,7 @@ class Style {
fun scaleAllSizes(scaleFactor: Float) {
windowPadding = floor(windowPadding * scaleFactor)
windowRounding = floor(windowRounding * scaleFactor)
windowMinSize.put(floor(windowMinSize.x * scaleFactor), floor(windowMinSize.y * scaleFactor))
windowMinSize.put(floor(windowMinSize * scaleFactor))
childRounding = floor(childRounding * scaleFactor)
popupRounding = floor(popupRounding * scaleFactor)
framePadding = floor(framePadding * scaleFactor)
Expand Down
6 changes: 3 additions & 3 deletions core/src/main/kotlin/imgui/flags & enumerations.kt
Original file line number Diff line number Diff line change
Expand Up @@ -223,11 +223,11 @@ sealed class WindowFlag(override val i: Int) : FlagBase<WindowFlag>() {

@GenSealedEnum
companion object {
val NoNav: WindowFlags get() = NoNavInputs or NoNavFocus
val NoNav: WindowFlags get() = NoNavInputs / NoNavFocus

val NoDecoration: WindowFlags get() = NoTitleBar or NoResize or NoScrollbar or NoCollapse
val NoDecoration: WindowFlags get() = NoTitleBar / NoResize / NoScrollbar / NoCollapse

val NoInputs: WindowFlags get() = NoMouseInputs or NoNavInputs or NoNavFocus
val NoInputs: WindowFlags get() = NoMouseInputs / NoNavInputs / NoNavFocus
}
}

Expand Down
2 changes: 1 addition & 1 deletion core/src/main/kotlin/imgui/internal/api/inputs.kt
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ internal interface inputs {
out += if (keyChord has Key.Mod_Shift) "Shift+" else ""
out += if (keyChord has Key.Mod_Alt) "Alt+" else ""
out += if (keyChord has Key.Mod_Super) (if (g.io.configMacOSXBehaviors) "Cmd+" else "Super+") else ""
return out + (Key of (keyChord wo Key.Mod_Mask)).name
return out + (Key of (keyChord wo Key.Mod_Mask)).name.substringAfter('_')
}


Expand Down
14 changes: 7 additions & 7 deletions core/src/main/kotlin/imgui/internal/api/newFrame.kt
Original file line number Diff line number Diff line change
Expand Up @@ -311,14 +311,14 @@ internal interface newFrame {
companion object {
fun debugPrintInputEvent(prefix: String, e: InputEvent) = when (e) {
is InputEvent.MousePos -> when {
e.posX == -Float.MAX_VALUE && e.posY == -Float.MAX_VALUE -> IMGUI_DEBUG_LOG_IO("%s: MousePos (-FLT_MAX, -FLT_MAX)", prefix)
else -> IMGUI_DEBUG_LOG_IO("$prefix: MousePos (%.1f, %.1f) (${e.mouseSource})", e.posX, e.posY)
e.posX == -Float.MAX_VALUE && e.posY == -Float.MAX_VALUE -> IMGUI_DEBUG_LOG_IO("[io] $prefix: MousePos (-FLT_MAX, -FLT_MAX)")
else -> IMGUI_DEBUG_LOG_IO("[io] $prefix: MousePos (%.1f, %.1f) (${e.mouseSource.name.substringAfter('_')})", e.posX, e.posY)
}
is InputEvent.MouseButton -> IMGUI_DEBUG_LOG_IO("$prefix: MouseButton ${e.button.i} ${if (e.down) "Down" else "Up"} (${e.mouseSource.name})")
is InputEvent.MouseWheel -> IMGUI_DEBUG_LOG_IO("$prefix: MouseWheel (%.3f, %.3f) (${e.mouseSource.name})", e.wheelX, e.wheelY)
is InputEvent.Key -> IMGUI_DEBUG_LOG_IO("$prefix: Key \"${e.key.name}\" ${if (e.down) "Down" else "Up"}")
is InputEvent.Text -> IMGUI_DEBUG_LOG_IO("$prefix: Text: ${e.char} (U+%08X)", e.char.code)
is InputEvent.AppFocused -> IMGUI_DEBUG_LOG_IO("$prefix: AppFocused ${e.focused.i}")
is InputEvent.MouseButton -> IMGUI_DEBUG_LOG_IO("[io] $prefix: MouseButton ${e.button.i} ${if (e.down) "Down" else "Up"} (${e.mouseSource.name.substringAfter('_')})")
is InputEvent.MouseWheel -> IMGUI_DEBUG_LOG_IO("[io] $prefix: MouseWheel (%.3f, %.3f) (${e.mouseSource.name.substringAfter('_')})", e.wheelX, e.wheelY)
is InputEvent.Key -> IMGUI_DEBUG_LOG_IO("[io] $prefix: Key \"${e.key.name}\" ${if (e.down) "Down" else "Up"}")
is InputEvent.Text -> IMGUI_DEBUG_LOG_IO("[io] $prefix: Text: ${e.char} (U+%08X)", e.char.code)
is InputEvent.AppFocused -> IMGUI_DEBUG_LOG_IO("[io] $prefix: AppFocused ${e.focused.i}")
}
}
}

0 comments on commit 5bd33b3

Please sign in to comment.