mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[minimap] PY-90183 adding 1px border to the minimap if it's inside scrollbar too
fix border visibility for dark theme (cherry picked from commit 9da2020dbf277a125f73d351c3c06231f298c3fa) IJ-CR-210985 GitOrigin-RevId: 056dc520ba10ad5437d1607b33fc2aa3f9e26c29
This commit is contained in:
committed by
intellij-monorepo-bot
parent
eeff548d96
commit
c0567c7013
@@ -7,8 +7,10 @@ import com.intellij.ide.minimap.geometry.MinimapLineGeometryUtil
|
||||
import com.intellij.ide.minimap.render.MinimapRenderContext
|
||||
import com.intellij.openapi.editor.colors.EditorColors
|
||||
import com.intellij.ui.JBColor
|
||||
import com.intellij.util.ui.JBUI
|
||||
import java.awt.Color
|
||||
import java.awt.Graphics2D
|
||||
import java.awt.Rectangle
|
||||
import kotlin.math.roundToInt
|
||||
|
||||
class MinimapHoverPresenter(private val panel: MinimapPanel) {
|
||||
@@ -40,7 +42,17 @@ class MinimapHoverPresenter(private val panel: MinimapPanel) {
|
||||
val context = lastContext ?: return
|
||||
|
||||
val lineHeight = computeLineHeight(context)
|
||||
hoverPainter.paint(graphics, target.rect, target.declarationWidth, lineHeight, hoverColor())
|
||||
val leftInset = hoverFrameLeftInset()
|
||||
if (leftInset == 0) {
|
||||
hoverPainter.paint(graphics, target.rect, target.declarationWidth, lineHeight, hoverColor())
|
||||
}
|
||||
else {
|
||||
val rect = Rectangle(target.rect)
|
||||
rect.x += leftInset
|
||||
rect.width = (rect.width - leftInset).coerceAtLeast(1)
|
||||
val declarationWidth = (target.declarationWidth - leftInset).coerceAtLeast(1)
|
||||
hoverPainter.paint(graphics, rect, declarationWidth, lineHeight, hoverColor())
|
||||
}
|
||||
}
|
||||
|
||||
fun hide() {
|
||||
@@ -62,4 +74,8 @@ class MinimapHoverPresenter(private val panel: MinimapPanel) {
|
||||
return scheme.getAttributes(EditorColors.REFERENCE_HYPERLINK_COLOR)?.foregroundColor
|
||||
?: JBColor.BLUE
|
||||
}
|
||||
|
||||
private fun hoverFrameLeftInset(): Int {
|
||||
return if (panel.settings.state.rightAligned) JBUI.scale(1) else 0
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -8,14 +8,14 @@ import com.intellij.ide.minimap.layers.MinimapLayerId
|
||||
import com.intellij.ide.minimap.layers.MinimapLayerIds
|
||||
import com.intellij.ide.minimap.layers.MinimapLayerRenderState
|
||||
import com.intellij.ide.minimap.settings.MinimapSettings
|
||||
import com.intellij.openapi.ui.OnePixelDivider
|
||||
import com.intellij.ui.JBColor
|
||||
import com.intellij.util.ui.JBUI
|
||||
import java.awt.Graphics2D
|
||||
|
||||
internal class EditorSeparatorLayerFactory : MinimapLayerFactory {
|
||||
override val id: MinimapLayerId = MinimapLayerIds.EDITOR_SEPARATOR
|
||||
override val order: Int = 100
|
||||
private val leftBorder = JBUI.Borders.customLineLeft(OnePixelDivider.BACKGROUND)
|
||||
private val leftBorder = JBUI.Borders.customLineLeft(JBColor.namedColor("EditorPane.splitBorder", JBColor.border()))
|
||||
|
||||
override fun createLayer(panel: MinimapPanel): MinimapLayer {
|
||||
return object : MinimapLayer {
|
||||
@@ -24,7 +24,7 @@ internal class EditorSeparatorLayerFactory : MinimapLayerFactory {
|
||||
|
||||
override fun isApplicable(state: MinimapLayerRenderState): Boolean {
|
||||
val minimapState = MinimapSettings.getInstance().state
|
||||
return minimapState.rightAligned && minimapState.insideScrollbar
|
||||
return minimapState.rightAligned
|
||||
}
|
||||
|
||||
override fun paint(graphics: Graphics2D, state: MinimapLayerRenderState) {
|
||||
|
||||
Reference in New Issue
Block a user