diff --git a/Apps/Explorer/desk_server.vp b/Apps/Explorer/desk_server.vp index 55fa932..dee693e 100644 --- a/Apps/Explorer/desk_server.vp +++ b/Apps/Explorer/desk_server.vp @@ -1086,11 +1086,20 @@ class DeskServer: if pressed != 0: base_col = self.rgb(uint32(140), uint32(25), uint32(25)) self.row_fill(bx, yy, bw, base_col) if active != 0: x_col = self.rgb(uint32(255), uint32(255), uint32(255)) - elif style == STYLE_WIN7 or style == STYLE_WINXP: + elif style == STYLE_WIN7: base_col2: uint32 = self.rgb(uint32(200), uint32(50), uint32(50)) if hovered != 0: base_col2 = self.rgb(uint32(220), uint32(60), uint32(60)) if pressed != 0: base_col2 = self.rgb(uint32(140), uint32(25), uint32(25)) - self._close_fill_row(s, bx, by, bw, bh, yy, base_col2, 0) + # WIN7 特判:红底画成圆(不是圆角矩形)。在 bw×bh 的命中区内 + # 居中一个 bh×bh 的圆,圆心与 X 图标中心重合。 + circle_x: int = bx + (bw - bh) / 2 + self._close_fill_row(s, circle_x, by, bh, bh, yy, base_col2, bh / 2) + x_col = self.rgb(uint32(255), uint32(255), uint32(255)) + elif style == STYLE_WINXP: + base_col3: uint32 = self.rgb(uint32(200), uint32(50), uint32(50)) + if hovered != 0: base_col3 = self.rgb(uint32(220), uint32(60), uint32(60)) + if pressed != 0: base_col3 = self.rgb(uint32(140), uint32(25), uint32(25)) + self._close_fill_row(s, bx, by, bw, bh, yy, base_col3, 0) x_col = self.rgb(uint32(255), uint32(255), uint32(255)) else: x_col = self.rgb(uint32(150), uint32(150), uint32(150))