Skip to content

Commit 4f2d202

Browse files
committed
Add "show HEAD" button
When clicked it jumps to the currently checked out commit.
1 parent d7f43f4 commit 4f2d202

File tree

3 files changed

+27
-6
lines changed

3 files changed

+27
-6
lines changed

src/gitGraphView.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -721,6 +721,7 @@ export class GitGraphView extends Disposable {
721721
<span id="repoControl"><span class="unselectable">Repo: </span><div id="repoDropdown" class="dropdown"></div></span>
722722
<span id="branchControl"><span class="unselectable">Branches: </span><div id="branchDropdown" class="dropdown"></div></span>
723723
<label id="showRemoteBranchesControl"><input type="checkbox" id="showRemoteBranchesCheckbox" tabindex="-1"><span class="customCheckbox"></span>Show Remote Branches</label>
724+
<div id="headBtn" title="Scroll to HEAD"></div>
724725
<div id="findBtn" title="Find"></div>
725726
<div id="terminalBtn" title="Open a Terminal for this Repository"></div>
726727
<div id="settingsBtn" title="Repository Settings"></div>

web/main.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,21 @@ class GitGraphView {
145145
this.requestLoadRepoInfoAndCommits(false, false);
146146
}
147147

148-
const fetchBtn = document.getElementById('fetchBtn')!, findBtn = document.getElementById('findBtn')!, settingsBtn = document.getElementById('settingsBtn')!, terminalBtn = document.getElementById('terminalBtn')!;
148+
const headBtn = document.getElementById('headBtn')!;
149+
const fetchBtn = document.getElementById('fetchBtn')!;
150+
const findBtn = document.getElementById('findBtn')!;
151+
const settingsBtn = document.getElementById('settingsBtn')!;
152+
const terminalBtn = document.getElementById('terminalBtn')!;
153+
154+
headBtn.innerHTML = SVG_ICONS.eyeOpen;
155+
headBtn.addEventListener('click', () => {
156+
const headDots = document.getElementsByClassName('commitHeadDot');
157+
if (headDots.length === 1) {
158+
// Scroll its parent (the commit row) into view. If you just
159+
// scroll the dot into view it chops off part of the row.
160+
headDots[0].parentElement?.scrollIntoView();
161+
}
162+
});
149163
fetchBtn.title = 'Fetch' + (this.config.fetchAndPrune ? ' & Prune' : '') + ' from Remote(s)';
150164
fetchBtn.innerHTML = SVG_ICONS.download;
151165
fetchBtn.addEventListener('click', () => this.fetchFromRemotesAction());

web/styles/main.css

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -812,7 +812,7 @@ body.tagLabelsRightAligned .gitRef.tag{
812812
max-width:40vw;
813813
}
814814

815-
#findBtn, #terminalBtn, #settingsBtn, #fetchBtn, #refreshBtn{
815+
#headBtn, #findBtn, #terminalBtn, #settingsBtn, #fetchBtn, #refreshBtn{
816816
position:absolute;
817817
top:50%;
818818
width:20px;
@@ -822,6 +822,9 @@ body.tagLabelsRightAligned .gitRef.tag{
822822
-webkit-user-select:none;
823823
user-select:none;
824824
}
825+
#headBtn{
826+
right:130px;
827+
}
825828
#findBtn{
826829
right:100px;
827830
}
@@ -841,7 +844,7 @@ body.tagLabelsRightAligned .gitRef.tag{
841844
#refreshBtn.refreshing{
842845
cursor:default;
843846
}
844-
#findBtn svg, #terminalBtn svg, #settingsBtn svg, #fetchBtn svg, #refreshBtn svg{
847+
#headBtn svg, #findBtn svg, #terminalBtn svg, #settingsBtn svg, #fetchBtn svg, #refreshBtn svg{
845848
position:absolute;
846849
fill:var(--vscode-editor-foreground);
847850
opacity:0.8;
@@ -852,14 +855,14 @@ body.tagLabelsRightAligned .gitRef.tag{
852855
#findBtn svg, #terminalBtn svg{
853856
stroke-width:0.5px;
854857
}
855-
#findBtn:hover svg, #terminalBtn:hover svg, #settingsBtn:hover svg, #fetchBtn:hover svg, #refreshBtn:hover svg{
858+
#headBtn:hover svg, #findBtn:hover svg, #terminalBtn:hover svg, #settingsBtn:hover svg, #fetchBtn:hover svg, #refreshBtn:hover svg{
856859
opacity:1;
857860
stroke-width:0.5px;
858861
}
859862
#findBtn:hover svg, #terminalBtn:hover svg{
860863
stroke-width:1px;
861864
}
862-
#findBtn svg, #terminalBtn svg, #settingsBtn svg, #fetchBtn svg{
865+
#headBtn svg, #findBtn svg, #terminalBtn svg, #settingsBtn svg, #fetchBtn svg{
863866
left:1px;
864867
top:1px;
865868
width:18px !important;
@@ -882,6 +885,9 @@ body.tagLabelsRightAligned .gitRef.tag{
882885
#controls.fetchSupported{
883886
padding-right:162px;
884887
}
888+
#controls.fetchSupported #headBtn{
889+
right:160px;
890+
}
885891
#controls.fetchSupported #findBtn{
886892
right:130px;
887893
}
@@ -1020,4 +1026,4 @@ label > input[type=radio]:checked ~ .customRadio:after{
10201026
#commitGraph, #commitTable th, #commitTable td, .gitRef, #loadingHeader, .unselectable, .roundedBtn, #controls label{
10211027
-webkit-user-select:none;
10221028
user-select:none;
1023-
}
1029+
}

0 commit comments

Comments
 (0)