дзеркало
https://github.com/l0ng-ai/openidea.git
синхронізовано 2026-11-09 03:05:40 +02:00
fix(vcs): open comparisons in independently resizable native windows (#818)
Compare with Local, Compare Versions and the other revision comparisons open in a separate window that belongs to their project window. The window can be moved outside the main window, resized from its edges and corners, and shows the full diff. Edits made there and in the project window are mirrored both ways. Root cause of #798: the comparison was an in-window dialog with a fixed size. Settings and comparison windows now share one auxiliary-window mechanism (`AuxKind`, `open_auxiliary_window`). It handles labels, the title bar, placement over the parent, event forwarding, document-edit mirroring, menu routing, closing together with the parent, and remembered geometry per kind. Co-authored-by: xdpan1234 <[email protected]>
Цей коміт міститься в:
1 джерело
268cf01a86
коміт
0a70b0af01
26 files changed
+918
-198
No files matched your search
@@ -280,6 +280,64 @@
|
||||
background: var(--bg-list-selected);
|
||||
}
|
||||
|
||||
.comparisonDialog > [data-dialog-body] {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.comparisonDialog .comparison {
|
||||
flex: 1 1 auto;
|
||||
}
|
||||
.comparisonWindow {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
min-height: 0;
|
||||
background: var(--bg-dialog, var(--bg-elev));
|
||||
color: var(--fg);
|
||||
}
|
||||
/* Linux: frameless X11 windows have no shadow, so mark the edge in CSS (like the Settings window). */
|
||||
.comparisonWindowEdge {
|
||||
position: relative;
|
||||
}
|
||||
.comparisonWindowEdge::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
z-index: 1;
|
||||
pointer-events: none;
|
||||
box-shadow: inset 0 0 0 1px var(--border-window);
|
||||
}
|
||||
.comparisonWindowLoading {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 8px;
|
||||
color: var(--fg-muted);
|
||||
}
|
||||
.comparisonWindowBody {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex: 1;
|
||||
min-height: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
.comparisonWindowBody[hidden] {
|
||||
display: none;
|
||||
}
|
||||
.comparisonWindowBody > .comparisonWindow {
|
||||
flex: 1;
|
||||
}
|
||||
.comparisonWindowBody > .comparison {
|
||||
flex: 1 1 auto;
|
||||
}
|
||||
.comparisonWindowFooter {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
flex: none;
|
||||
gap: 12px;
|
||||
padding: 12px 16px;
|
||||
}
|
||||
.comparison {
|
||||
display: flex;
|
||||
height: min(520px, 65vh);
|
||||
|
||||
Reference in new issue
Заблокувати користувача