Commit Graph

52 Commits

Author SHA1 Message Date
Nathan Sobo
ab1ede5fe6 Add a dummy scrollbar corner
Horizontal / vertical scrollbars render a 'corner' on the lower right
when they would otherwise overlap. I previously relied on drawing both
dummy scrollbars at their full width/height so the corner got rendered,
but that interfered with the display of the horizontal scrollbar in
certain circumstances because it was too wide to scroll. This commit
provides that behavior with an absolutely positioned div with the same
dimensions as the intersection of scrollbars when both are visible.
2014-05-09 11:33:04 -06:00
Nathan Sobo
dbd271f70a Don't obscure last character of long lines with vertical scrollbar
This entailed quite a few changes to dial in scrollbars. The scrollbars
are now adjusted in size to account for the width of the opposite
scrollbar. If the width or height are not explicitly constrained and we
are scrollable in the opposite direction that is constrained, we account
for the width of the opposite scrollbar in assigning a natural height
or width based on the content.
2014-05-09 11:33:04 -06:00
Nathan Sobo
e6df30e94c Respect horizontal scrollbar when rendering the vertical, and vice versa
We set overflow to hidden in the opposite scroll direction only if we
can't actually scroll in that direction, causing the white square where
neither scrollbar overlaps to appear at the lower right corner.
2014-05-09 11:33:03 -06:00
Nathan Sobo
c730e3c67e Ensure selections span the entire screen, even when lines are short
Also, pass scrollHeight and scrollWidth as props to child components
instead of calling the method to compute them in multiple components.
2014-04-22 17:10:22 -06:00
Nathan Sobo
22496ceeb1 WIP: Minimize paint when scrolling and composite lines with the GPU 2014-04-22 17:10:22 -06:00
Nathan Sobo
d566726b9f Use negative z-indices so attached views are visible in react editor 2014-04-22 17:10:21 -06:00
Nathan Sobo
8c266957f1 Isolate CSS changes to a single selector 2014-04-22 17:09:41 -06:00
David Graham & Nathan Sobo
48135a1e8d Update the horizontal scrollbar when scrollLeft changes in the model 2014-04-22 17:09:38 -06:00
Nathan Sobo
1162af61ed Render a basic gutter 2014-04-22 17:09:38 -06:00
Nathan Sobo
a931aaff53 Remove temporary cursor visibility styling 2014-04-22 17:09:38 -06:00
Nathan Sobo
3d3b72a954 Render selections 2014-04-22 17:09:04 -06:00
Nathan Sobo
70e5880b1d Start on cursor rendering 2014-04-22 17:09:02 -06:00
Nathan Sobo
c2858fcae2 Use overflow: hidden for editor 2014-04-22 17:09:02 -06:00
Nathan Sobo
3c69fd2d49 Handle mouse wheel and make some tweaks to improve scroll performance 2014-04-22 17:09:02 -06:00
Nathan Sobo
519ebb1ca6 Leave folded marker on end of lines in its natural position
Previously, we were nudging it upward. Something must have changed at
some point because it looked too high.
2014-01-20 14:22:26 -07:00
Nathan Sobo
4db2ad53fd Rename .fold class to .folded on line numbers in gutter
Using an adjective blends in better with '.foldable'
2014-01-18 11:35:22 -07:00
Nathan Sobo
149a6825b4 Show bookmarks instead of fold indicators unless hovering 2014-01-17 17:20:37 -07:00
Nathan Sobo
99f025d5d6 Rename .fold-icon to .icon-right in gutter to make it multi-purpose 2014-01-17 16:59:50 -07:00
Nathan Sobo
475ff140a7 Make unfolded fold icons darker on hover 2014-01-17 15:22:29 -07:00
Nathan Sobo
1e3dc05b3d Nudge chevron-right left a bit to align better with chevron-down 2014-01-17 14:58:16 -07:00
Nathan Sobo
1a12a17b7a Use actual markup for fold icon so we can determine when it's clicked 2014-01-17 14:55:06 -07:00
Nathan Sobo
8757e1f145 Add downward pointing chevrons next to foldable row numbers in gutter 2014-01-17 14:34:53 -07:00
Ben Ogle
0c2c739741 Add ability for placeholder text in mini editor 2013-11-25 14:46:54 -08:00
Paul Betts
9f080be6e1 Add Courier New as a last-chance fallback 2013-11-20 13:21:30 -08:00
Paul Betts
f094a86ae7 Initial hack of proper Windows fonts 2013-11-20 12:47:32 -08:00
Ben Ogle
0aa0dc01d5 Properly reset the size of layers on resize
Otherwise, when a theme has padding in the scroll-view, it will be 
scrollable all the time (width:100%).
2013-11-05 18:40:05 -08:00
Ben Ogle
e9b3ad2f68 💄 Rules with multiple selectors on 2 lines
In /static
2013-09-10 12:01:16 -07:00
Ben Ogle
5c1799d751 Add individual imports to each LESS file
Make the Less linter happy
2013-09-04 12:25:28 -07:00
Ben Ogle
084457c2a0 Update the less files to properly import less 2013-09-04 12:25:27 -07:00
Kevin Sawicki
0da647acdf Use display: inline for editor fold marker
This prevents it from wrapping to the next line when the window
is narrower than the line length.

Closes #211
2013-08-21 17:52:19 -07:00
probablycorey
9a2e768882 Group mini-editor css styles 2013-08-08 17:06:58 -07:00
Kevin Sawicki
6178294537 Use octicon mixin for gutter and line fold icons
This corrects a line height mismatch issue between the editor
and the gutter for certain fonts and font sizes.

Close #689
2013-08-08 16:12:26 -07:00
probablycorey
57fe9c6903 Remove left padding to gutter fold octicon (it causes spec failures) 2013-08-07 16:46:32 -07:00
Kevin Sawicki
934fe1c6d0 Add left padding to gutter fold octicon 2013-08-07 14:01:23 -07:00
Kevin Sawicki
9aff1476d4 Use octicon variables in command-panel.less and editor.less 2013-08-07 13:57:41 -07:00
Ben Ogle
2b25d433c7 move editor scrollbar above the edit pane
So you can grab it with your mouse!
2013-07-18 17:45:38 -07:00
Kevin Sawicki
c7c7988ae6 Drop units when using zero 2013-06-12 10:18:23 -07:00
probablycorey
1156018c0d Make gutter line number's position relative
This makes it easier to decorate line numbers.
2013-06-12 09:55:31 -07:00
Kevin Sawicki
35cf96e15f Render empty line invisibles at correct position
End of line invisibles are not rendered at the correct
position for empty lines instead of always after the
last indent guide span.

Closes #456
2013-05-01 20:54:09 -07:00
probablycorey
cb2d24baca Listen for clicks outside of the render lines on the underlayer 2013-05-01 13:54:37 -07:00
Corey Johnson
bbb7dfdd07 Only the underlayer needs height: 100% 2013-04-30 11:52:28 -07:00
Kevin Sawicki
875555d933 Rename invisible class to invisible-character
Bootstrap defines this class with visibility: hidden
which we don't want since invisible characters should
be visible.
2013-04-25 10:02:33 -07:00
Kevin Sawicki
88ae70eb19 Remove duplicate property 2013-04-16 17:56:06 -07:00
Kevin Sawicki & Nathan Sobo
807c6878c1 Set width of hidden input to 1 pixel
Previously the width was set to the width of a single character which
caused issues if the char width was currently zero and since the hidden
input no longer has padding or border the width of the input would end
up being zero which would prevent it from gaining focus.
2013-04-16 15:20:16 -07:00
Corey Johnson & Nathan Sobo
d95016307a Fix mini-editor appearance by clearing styles on hidden input. 2013-04-15 20:45:55 -06:00
Nathan Sobo
91cbcf0073 Update editor lines & cursors to not use bootstrap-styled pre element 2013-04-15 20:45:55 -06:00
Kevin Sawicki
4683285e0d Move opacity to line numbers instead of gutter
Having the opacity previously on the .gutter class was making
the gutter background color for the current line be different
than the editor background color.
2013-04-04 08:57:47 -07:00
Kevin Sawicki
4fddae68a9 Set the min-width on the gutter to 1em
This ensures the text will have padding on the left side even
when line numbers are disabled.
2013-03-26 17:30:49 -04:00
Corey Johnson
502d3c2957 Move gutter padding out of .line-number to .gutter
This makes viewing an editor without line numbers prettier.
2013-03-25 10:40:02 -07:00
Kevin Sawicki & Nathan Sobo
e23edd02fd Use flexbox to position editor's gutter and scroll view
This removes the need to compute the width of the gutter based
on the line count in the editor and also removes the need to
set the scroll view's left position manually.
2013-03-22 12:47:56 -07:00