Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

8x4 character matrix support #590

Merged
merged 102 commits into from
May 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
cc84bb2
#571 WIP: Make mouse coords fp32 (pixel-wise)
o-sdn-o Apr 23, 2024
0db8f70
#571 WIP: Update vt-input-mode.md (pixel-wise mouse reporting)
o-sdn-o Apr 24, 2024
7075991
#588: Update apps.md (add one-shot toggle example)
o-sdn-o Apr 24, 2024
cba3db7
#571 WIP: Inherit wincoor, winsize, fontname, fontsize
o-sdn-o Apr 24, 2024
a6efafd
#571 WIP: Naive cell rendering
o-sdn-o Apr 24, 2024
5820d7f
#571 WIP: Naive cell rendering (small optimization)
o-sdn-o Apr 24, 2024
50e318e
#571 WIP: Split titles
o-sdn-o Apr 25, 2024
caec585
#571 WIP: Try to optimize grips rendering (failed)
o-sdn-o Apr 26, 2024
b39fe3e
#571 WIP: Optimize grips rendering
o-sdn-o Apr 26, 2024
eade00d
#571: Make resizing grips more symmetrical
o-sdn-o Apr 26, 2024
6ea4f33
#571 WIP: Refactor platform specific code
o-sdn-o Apr 26, 2024
1c381d6
#571 WIP: Get rid mouse hover
o-sdn-o Apr 26, 2024
59ea81e
#571 WIP: Minor edits
o-sdn-o Apr 26, 2024
06969f7
#571 WIP: Use inheritance
o-sdn-o Apr 26, 2024
155ce05
#571 WIP: Drop dx3d-specific stuff
o-sdn-o Apr 26, 2024
1426f4a
#571 WIP: Polymorphism instead of templates for renderer
o-sdn-o Apr 26, 2024
6c4c309
#571 WIP: Rewording
o-sdn-o Apr 26, 2024
149779c
#571 WIP: Rewording
o-sdn-o Apr 27, 2024
3540139
#571 WIP: Unify shader fx
o-sdn-o Apr 27, 2024
1c401a3
#571 WIP: Don't allow pure black fg for color glyphs
o-sdn-o Apr 27, 2024
2a71b14
#571 WIP: Optimize title shadow generation
o-sdn-o Apr 27, 2024
c67f647
#571 WIP: Minor edits
o-sdn-o Apr 27, 2024
b7c2a39
#571 WIP: Minor edits
o-sdn-o Apr 28, 2024
3e9c93b
#571 WIP: Minor edits
o-sdn-o Apr 29, 2024
9a07dc3
#571 WIP: Experiments with glyph cache
o-sdn-o Apr 29, 2024
409e05a
#571 WIP: Don't rely on IDWriteTextRenderer
o-sdn-o Apr 30, 2024
32696b5
#571 WIP: Don't rely on IDWriteGdiInterop
o-sdn-o Apr 30, 2024
d6fe0ce
#571 WIP: Don't rely on IDWriteGdiInterop
o-sdn-o Apr 30, 2024
71b5b69
#571 WIP: Don't rely on IDWriteGdiInterop
o-sdn-o Apr 30, 2024
67977b2
#571 WIP: Don't rely on IDWriteRenderingParams
o-sdn-o May 1, 2024
2385db8
#571 WIP: Experimenting with system font fallback
o-sdn-o May 1, 2024
21a260d
#571 WIP: Experimenting with system font fallback
o-sdn-o May 2, 2024
976bfcf
#571 WIP: Experimenting with system font fallback
o-sdn-o May 2, 2024
10299e1
#571 WIP: Experimenting with system font fallback
o-sdn-o May 2, 2024
fe17a70
#571 WIP: Implement colored glyph rendering
o-sdn-o May 3, 2024
5746024
#571 WIP: Implement colored glyph rendering
o-sdn-o May 3, 2024
3abe4a8
#571 WIP: Prioritize colored fonts over monochromatic
o-sdn-o May 3, 2024
ce93703
#571 WIP: Drop rangemap
o-sdn-o May 3, 2024
ea0ae3f
#571 WIP: Use static pmr::monotonic_buffer_resource for glyph cache
o-sdn-o May 3, 2024
5dece8b
#571 WIP: Implement header/footer rendering
o-sdn-o May 3, 2024
d0acdb7
#571 WIP: Rewording
o-sdn-o May 4, 2024
3a0c165
#571 WIP: Rewording
o-sdn-o May 4, 2024
b7e9b97
#571 WIP: Unify glyph blending
o-sdn-o May 4, 2024
822b903
#571 WIP: Apply sRGB-gamma correction
o-sdn-o May 5, 2024
202fb52
#571 WIP: Apply sRGB-gamma correction
o-sdn-o May 5, 2024
a3e8636
#571 WIP: Fix title position
o-sdn-o May 5, 2024
d8c6853
#571 WIP: Test sRGB
o-sdn-o May 6, 2024
5e41358
#571 WIP: Fix pmr cleanup
o-sdn-o May 6, 2024
13c8376
#571 WIP: Use IDWriteTextAnalyzer::GetGlyphs
o-sdn-o May 6, 2024
0a3f013
#571 WIP: Bug: Fix merging rectangles
o-sdn-o May 6, 2024
b77fd39
#571 WIP: Minor edits
o-sdn-o May 6, 2024
138af47
#571 WIP: Fix pmr buffers
o-sdn-o May 6, 2024
7878c17
#571 WIP: Fix complex clusters shaping
o-sdn-o May 7, 2024
3b1f740
#571 WIP: Rewording
o-sdn-o May 7, 2024
80fa9a3
#571 WIP: No national flags to test
o-sdn-o May 7, 2024
62c8ef1
#571 WIP: Fix Unicode VS15/16 interpretation
o-sdn-o May 8, 2024
9ec298e
#571 WIP: Render cell background
o-sdn-o May 8, 2024
3fef904
#571 WIP: Don't rely on IDWriteFont2::IsColorFont
o-sdn-o May 8, 2024
e69d09b
#571 WIP: Preference for color fonts over monochromatic in any case
o-sdn-o May 8, 2024
bd6a82b
#571 WIP: Sort fallback fonts by modified date
o-sdn-o May 8, 2024
9dce84c
#571 WIP: Minor edits
o-sdn-o May 9, 2024
4e203b9
#571 WIP: Store glyph matrix
o-sdn-o May 9, 2024
255b273
#571 WIP: Update gcscale.md and allow to modify char matrix size
o-sdn-o May 9, 2024
cb0d62b
#571 WIP: Update gcscale.md
o-sdn-o May 9, 2024
07b24b8
#571 WIP: Update gcscale.md
o-sdn-o May 10, 2024
40f7a07
#571 WIP: Unicode Character Size Modifier Selector
o-sdn-o May 10, 2024
65f7d08
#571 WIP: Unicode Character Size Modifier Selector
o-sdn-o May 10, 2024
d3684b1
#571 WIP: Check the font size inherited from the console
o-sdn-o May 10, 2024
24ed4a0
#571 WIP: Fit the glyph size to the matrix
o-sdn-o May 10, 2024
b92137e
#571 WIP: Don't modify the character width by VS15/16
o-sdn-o May 11, 2024
dbfde3f
#571 WIP: Minor edits
o-sdn-o May 11, 2024
c1d7099
#571 WIP: Fix VS2019 complains
o-sdn-o May 11, 2024
46b0653
#571 WIP: Exclude VS15/16 from dwrite shaping process
o-sdn-o May 11, 2024
1e387bc
#571 WIP: Fix jumbo cluster storage
o-sdn-o May 11, 2024
60df44a
#571 WIP: Override predefined glyph matrix by VS-wh_xy
o-sdn-o May 11, 2024
3032522
#571 WIP: Minor edits
o-sdn-o May 11, 2024
65272ae
#571 WIP: Completely move to CFA model
o-sdn-o May 12, 2024
f4f9c9e
#571 WIP: Centrify glyph inside matrix
o-sdn-o May 12, 2024
ab4a4ab
#571 WIP: 4x2 example
o-sdn-o May 12, 2024
efbfc80
#571 WIP: Don't store VS modificator size in unicode database
o-sdn-o May 13, 2024
cfb3c15
#571 WIP: Revise font management
o-sdn-o May 13, 2024
17928a1
#571 WIP: Use base font list instead of single base font
o-sdn-o May 14, 2024
f60a87b
#571 WIP: Add script id attribute to the Unicode database (base struc…
o-sdn-o May 16, 2024
1499ad4
#571 WIP: Add script id attribute to the Unicode database (get script…
o-sdn-o May 16, 2024
ea14502
#571 WIP: Add script id attribute to the Unicode database (set script…
o-sdn-o May 16, 2024
4e0bf81
#571 WIP: Minor edits
o-sdn-o May 16, 2024
0f936e5
#571 WIP: Minor edits
o-sdn-o May 16, 2024
aeb0927
#571 WIP: Minor edits
o-sdn-o May 16, 2024
92a267c
#571 WIP: Cluster test
o-sdn-o May 16, 2024
fff7ba9
#571 WIP: Try to output devanagari
o-sdn-o May 17, 2024
4d7a8e7
#571 WIP: Minor edits
o-sdn-o May 17, 2024
c7fd716
#571 WIP: Fix Windows8.1 compatibility (::GetDpiForWindow() is only a…
o-sdn-o May 17, 2024
73086e3
#571 WIP: Fix empty cells rendering
o-sdn-o May 18, 2024
195af60
#571 WIP: Minor edits
o-sdn-o May 18, 2024
fb30a09
#571 WIP: Allow 8x4 matrix (due to implicit jumbo cluster bit)
o-sdn-o May 19, 2024
46fe3aa
#571 WIP: Update gcscale.md
o-sdn-o May 19, 2024
7fca5fa
#571 WIP: Update gcscale.md
o-sdn-o May 19, 2024
51954dd
#571 WIP: 8x4 character matrix support
o-sdn-o May 20, 2024
f0fbc1d
v0.9.82
o-sdn-o May 20, 2024
4b45a96
#571 WIP: Optimize matrix metadata
o-sdn-o May 20, 2024
ec845ca
#571 WIP: Fix gcc complaints
o-sdn-o May 20, 2024
8ed18e1
#571 WIP: Fix gcc complaints
o-sdn-o May 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
199 changes: 111 additions & 88 deletions doc/apps.md
Original file line number Diff line number Diff line change
Expand Up @@ -167,94 +167,117 @@ TerminalStdioLog | Stdin/stdout log toggle.
#### Terminal configuration example
```xml
<config>
<term>
<menu item*>
<autohide=true /> <!-- If true, show menu only on hover. -->
<enabled=1 />
<slim=1 />
<item label="<" action=TerminalFindPrev> <!-- type=Command is a default item's attribute. -->
<label="\e[38:2:0:255:0m<\e[m"/>
<notes>
" Previous match \n"
" LeftClick to jump to previous match or scroll \n"
" one page up if nothing to search \n"
" Match clipboard data if no selection \n"
" Left+RightClick to clear clipboard "
</notes>
</item>
<item label=">" action=TerminalFindNext>
<label="\e[38:2:0:255:0m>\e[m"/>
<notes>
" Next match \n"
" LeftClick to jump to next match or scroll \n"
" one page down if nothing to search \n"
" Match clipboard data if no selection \n"
" Left+RightClick to clear clipboard "
</notes>
</item>
<item label="Wrap" type=Option action=TerminalWrapMode data="off">
<label="\e[38:2:0:255:0mWrap\e[m" data="on"/>
<notes>
" Wrapping text lines on/off \n"
" - applied to selection if it is "
</notes>
</item>
<item label="Selection" notes=" Text selection mode " type=Option action=TerminalSelectionMode data="none"> <!-- type=Option means that the тext label will be selected when clicked. -->
<label="\e[38:2:0:255:0mPlaintext\e[m" data="text"/>
<label="\e[38:2:255:255:0mANSI-text\e[m" data="ansi"/>
<label data="rich">
"\e[38:2:109:231:237m""R"
"\e[38:2:109:237:186m""T"
"\e[38:2:60:255:60m" "F"
"\e[38:2:189:255:53m" "-"
"\e[38:2:255:255:49m" "s"
"\e[38:2:255:189:79m" "t"
"\e[38:2:255:114:94m" "y"
"\e[38:2:255:60:157m" "l"
"\e[38:2:255:49:214m" "e" "\e[m"
</label>
<label="\e[38:2:0:255:255mHTML-code\e[m" data="html"/>
<label="\e[38:2:0:255:255mProtected\e[m" data="protected"/>
</item>
<item label="Log" notes=" Stdin/out logging is off " type=Option action=TerminalStdioLog data="off">
<label="\e[38:2:0:255:0mLog\e[m" notes=" Stdin/out logging is on \n Run Logs to see output " data="on"/>
</item>
<item label=" " notes=" ...empty menu block/splitter for safety "/>
<item label="Clear" notes=" Clear TTY viewport " action=TerminalOutput data="\e[2J"/>
<item label="Reset" notes=" Clear scrollback and SGR-attributes " action=TerminalOutput data="\e[!p"/>
<item label="Restart" type=Command action=TerminalRestart/>
<item label="Top" action=TerminalViewportTop/>
<item label="End" action=TerminalViewportEnd/>

<item label="PgLeft" type=Repeat action=TerminalViewportPageLeft/>
<item label="PgRight" type=Repeat action=TerminalViewportPageRight/>
<item label="CharLeft" type=Repeat action=TerminalViewportCharLeft/>
<item label="CharRight" type=Repeat action=TerminalViewportCharRight/>

<item label="PgUp" type=Repeat action=TerminalViewportPageUp/>
<item label="PgDn" type=Repeat action=TerminalViewportPageDown/>
<item label="LineUp" type=Repeat action=TerminalViewportLineUp/>
<item label="LineDn" type=Repeat action=TerminalViewportLineDown/>

<item label="PrnScr" action=TerminalViewportCopy/>
<item label="Deselect" action=TerminalSelectionClear/>

<item label="Line" type=Option action=TerminalSelectionRect data="false">
<label="Rect" data="true"/>
</item>
<item label="Copy" type=Repeat action=TerminalSelectionCopy/>
<item label="Paste" type=Repeat action=TerminalClipboardPaste/>
<item label="Undo" type=Command action=TerminalUndo/>
<item label="Redo" type=Command action=TerminalRedo/>
<item label="Quit" type=Command action=TerminalQuit/>
<item label="Fullscreen" type=Command action=TerminalFullscreen/>

<item label="Hello, World!" notes=" Simulating keypresses " action=TerminalSendKey data="Hello World!"/>
<item label="Push Me" notes=" test " type=Repeat action=TerminalOutput data="pressed ">
<label="\e[37mPush Me\e[m"/>
</item>
</menu>
</term>
<term>
<menu item*>
<autohide=true /> <!-- If true, show menu only on hover. -->
<enabled=1 />
<slim=1 />
<item label="<" action=TerminalFindPrev> <!-- type=Command is a default item's attribute. -->
<label="\e[38:2:0:255:0m<\e[m"/>
<notes>
" Previous match \n"
" LeftClick to jump to previous match or scroll \n"
" one page up if nothing to search \n"
" Match clipboard data if no selection \n"
" Left+RightClick to clear clipboard "
</notes>
</item>
<item label=">" action=TerminalFindNext>
<label="\e[38:2:0:255:0m>\e[m"/>
<notes>
" Next match \n"
" LeftClick to jump to next match or scroll \n"
" one page down if nothing to search \n"
" Match clipboard data if no selection \n"
" Left+RightClick to clear clipboard "
</notes>
</item>
<item label="Wrap" type=Option action=TerminalWrapMode data="off">
<label="\e[38:2:0:255:0mWrap\e[m" data="on"/>
<notes>
" Wrapping text lines on/off \n"
" - applied to selection if it is "
</notes>
</item>
<item label="Selection" notes=" Text selection mode " type=Option action=TerminalSelectionMode data="none"> <!-- type=Option means that the тext label will be selected when clicked. -->
<label="\e[38:2:0:255:0mPlaintext\e[m" data="text"/>
<label="\e[38:2:255:255:0mANSI-text\e[m" data="ansi"/>
<label data="rich">
"\e[38:2:109:231:237m""R"
"\e[38:2:109:237:186m""T"
"\e[38:2:60:255:60m" "F"
"\e[38:2:189:255:53m" "-"
"\e[38:2:255:255:49m" "s"
"\e[38:2:255:189:79m" "t"
"\e[38:2:255:114:94m" "y"
"\e[38:2:255:60:157m" "l"
"\e[38:2:255:49:214m" "e" "\e[m"
</label>
<label="\e[38:2:0:255:255mHTML-code\e[m" data="html"/>
<label="\e[38:2:0:255:255mProtected\e[m" data="protected"/>
</item>
<item label="Log" notes=" Stdin/out logging is off " type=Option action=TerminalStdioLog data="off">
<label="\e[38:2:0:255:0mLog\e[m" notes=" Stdin/out logging is on \n Run Logs to see output " data="on"/>
</item>
<item label=" " notes=" ...empty menu block/splitter for safety "/>
<item label="Clear" notes=" Clear TTY viewport " action=TerminalOutput data="\e[2J"/>
<item label="Reset" notes=" Clear scrollback and SGR-attributes " action=TerminalOutput data="\e[!p"/>
<item label="Restart" type=Command action=TerminalRestart/>
<item label="Top" action=TerminalViewportTop/>
<item label="End" action=TerminalViewportEnd/>

<item label="PgLeft" type=Repeat action=TerminalViewportPageLeft/>
<item label="PgRight" type=Repeat action=TerminalViewportPageRight/>
<item label="CharLeft" type=Repeat action=TerminalViewportCharLeft/>
<item label="CharRight" type=Repeat action=TerminalViewportCharRight/>

<item label="PgUp" type=Repeat action=TerminalViewportPageUp/>
<item label="PgDn" type=Repeat action=TerminalViewportPageDown/>
<item label="LineUp" type=Repeat action=TerminalViewportLineUp/>
<item label="LineDn" type=Repeat action=TerminalViewportLineDown/>

<item label="PrnScr" action=TerminalViewportCopy/>
<item label="Deselect" action=TerminalSelectionClear/>

<item label="Line" type=Option action=TerminalSelectionRect data="false">
<label="Rect" data="true"/>
</item>
<item label="Copy" type=Repeat action=TerminalSelectionCopy/>
<item label="Paste" type=Repeat action=TerminalClipboardPaste/>
<item label="Undo" type=Command action=TerminalUndo/>
<item label="Redo" type=Command action=TerminalRedo/>
<item label="Quit" type=Command action=TerminalQuit/>
<item label="Fullscreen" type=Command action=TerminalFullscreen/>

<item label="Hello, World!" notes=" Simulating keypresses " action=TerminalSendKey data="Hello World!"/>
<item label="Push Me" notes=" test " type=Repeat action=TerminalOutput data="pressed ">
<label="\e[37mPush Me\e[m"/>
</item>

<item label=" HTML " data=none type=Option action=TerminalSelectionOneShot>
<label="\e[48:2:0:128:128;38:2:0:255:255m HTML \e[m" data=html/>
<notes>
" One-shot toggle to copy as HTML \n"
" while mouse tracking is active. "
</notes>
</item>
<item label=" Text " data=none type=Option action=TerminalSelectionOneShot>
<label="\e[48:2:0:128:0;38:2:0:255:0m Text \e[m" data=text/>
<notes>
" One-shot toggle to copy as Text \n"
" while mouse tracking is active. "
</notes>
</item>
<item label="One-Shot" data=none type=Option action=TerminalSelectionOneShot>
<label="\e[48:2:0:128:0;38:2:0:255:0m Text \e[m" data=text/>
<label="\e[48:2:0:128:128;38:2:0:255:255m HTML \e[m" data=html/>
<notes>
" One-shot toggle to copy as Text/HTML \n"
" while mouse tracking is active. "
</notes>
</item>
</menu>
</term>
</config>
```

Expand Down
11 changes: 7 additions & 4 deletions doc/vt-input-mode.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ Anyone who wants to:
- Track position dependent keys such as WASD.
- Distinguish between Left and Right physical keys.
- Get consistent output regardless of terminal window resize.
- Track mouse on a pixel-wise level.
- Track mouse outside the terminal window (getting negative coordinates).
- Take advantage of high-resolution wheel scrolling.
- Track scrollback text manipulation.
Expand All @@ -30,19 +31,21 @@ Existing approaches have the following drawbacks:

## Conventions

- All numeric values used in this protocol are decimal and zero-based.
- ~~All numeric values used in this protocol are decimal and zero-based.~~ todo: Should we use HEX-form of the uint32 (IEEE-754 32-bit binary float, Little-Endian) for the floating point value representation?
- Space characters are not used in sequence payloads and are only used for readability of the description.
- All unescaped symbols outside of this protocol should be treated as clipboard pasted data.

### Format

Signaling uses APC `ESC _ <payload> ESC \` with a specific payload syntax.
Signaling uses APC `ESC _ <payload> ESC \` with an event-specific payload syntax.

The payload consists of a list of attributes in the following format:
```
<attr>=<val>,...,<val>; ...; <attr>=<val>,...,<val>
```

todo: representation of the floating point values: float32 -> uint32 IEEE-754 form -> hex? or just round it up to 0.00001?

Field | Descriprtion
------------------|-------------
`<attr>` | Attribute name.
Expand Down Expand Up @@ -350,9 +353,9 @@ ESC _ event=mouse ; kbmods=<KeyMods> ; coord=<X>,<Y> ; buttons=<ButtonState> ; w
Attribute | Description
--------------------------|------------
`kbmods=<KeyMods>` | Keyboard modifiers (see Keyboard event).
`coord=<X>,<Y>` | Mouse pointer coorinates.
`coord=<X>,<Y>` | Pixel-wise coordinates of the mouse pointer. Each coordinate is represented in the form of a floating point value of the sum of the integer coordinate of the cell in the terminal window grid and the relative offset within the cell in the range `[0.0f, 1.0f)`.
`buttons=<ButtonState>` | Mouse button state.
`wheel=<DeltaY>,<DeltaX>` | Vertical and horizontal wheel high-resolution delta.
`wheel=<DeltaY>,<DeltaX>` | Vertical and horizontal wheel high-resolution delta represented as floating point value.

In response to the activation of `mouse` tracking, the application receives a vt-sequence containing current mouse state:
```
Expand Down
2 changes: 1 addition & 1 deletion src/netxs/apps/calc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,6 @@ int main(int argc, char* argv[])
else
{
auto config = app::shared::load::settings(defaults, cfpath, os::dtvt::config);
app::shared::start(params, app::calc::id, os::dtvt::vtmode, os::dtvt::win_sz, config);
app::shared::start(params, app::calc::id, os::dtvt::vtmode, os::dtvt::window.size, config);
}
}
30 changes: 23 additions & 7 deletions src/netxs/apps/desk.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -670,17 +670,33 @@ namespace netxs::app::desk
->active()
->invoke([&](auto& boss)
{
auto drag_origin = ptr::shared<fp2d>();
boss.mouse.template draggable<hids::buttons::left>(true);
boss.LISTEN(tier::release, e2::form::drag::pull::_<hids::buttons::left>, gear)
boss.LISTEN(tier::release, e2::form::drag::start::_<hids::buttons::left>, gear, -, (drag_origin))
{
*drag_origin = gear.coord;
};
boss.LISTEN(tier::release, e2::form::drag::pull::_<hids::buttons::left>, gear, -, (drag_origin))
{
if (auto taskbar_grips = boss.base::parent())
{
auto delta = twod{ gear.delta.get() };
taskbar_grips->base::min_sz.x = std::max(1, taskbar_grips->base::min_sz.x + delta.x);
taskbar_grips->base::max_sz.x = taskbar_grips->base::min_sz.x;
active ? menu_max_size = taskbar_grips->base::min_sz.x
: menu_min_size = taskbar_grips->base::min_sz.x;
taskbar_grips->base::reflow();

//todo fp2d
//auto delta = twod{ gear.delta.get() };
//taskbar_grips->base::min_sz.x = std::max(1, taskbar_grips->base::min_sz.x + delta.x);
//taskbar_grips->base::max_sz.x = taskbar_grips->base::min_sz.x;
//active ? menu_max_size = taskbar_grips->base::min_sz.x
// : menu_min_size = taskbar_grips->base::min_sz.x;
//taskbar_grips->base::reflow();

if (auto delta = twod{ gear.coord - *drag_origin }[axis::X])
{
taskbar_grips->base::min_sz.x = std::max(1, taskbar_grips->base::min_sz.x + delta);
taskbar_grips->base::max_sz.x = taskbar_grips->base::min_sz.x;
active ? menu_max_size = taskbar_grips->base::min_sz.x
: menu_min_size = taskbar_grips->base::min_sz.x;
taskbar_grips->base::reflow();
}
}
};
boss.LISTEN(tier::release, events::ui::sync, state)
Expand Down
2 changes: 1 addition & 1 deletion src/netxs/apps/term.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,6 @@ int main(int argc, char* argv[])
else
{
auto config = app::shared::load::settings(defaults, cfpath, os::dtvt::config);
app::shared::start(params, app::terminal::id, os::dtvt::vtmode, os::dtvt::win_sz, config);
app::shared::start(params, app::terminal::id, os::dtvt::vtmode, os::dtvt::window.size, config);
}
}
2 changes: 1 addition & 1 deletion src/netxs/apps/tile.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ namespace netxs::app::tile
master.RISEUP(tier::request, e2::config::creator, world_ptr, ());

// Take coor and detach from the tiling wm.
gear.coord -= applet.base::coor(); // Localize mouse coor.
gear.coord -= applet.base::coor(); // Rebase mouse coor.
what.square.size = applet.base::size();
applet.global(what.square.coor);
what.square.coor = -what.square.coor;
Expand Down
Loading