Émilie Feral
7a4ee746b2
[escher] TextField: call reinitDraftBuffer after edition is complete to
...
avoid erasing text that is required later.
Fix bug: OK handling on function list in linear mode did not copy the
function expression into the textfield before editing
2019-07-30 11:47:42 +02:00
Ruben Dashyan
bc8b5af2e6
[escher/modal_view_controller] didBecomeFirstResponder selects modal view if displayed
2019-07-19 15:06:25 +02:00
Ruben Dashyan
44809f4b3f
Substitute Escher app() by Container::activeApp()
2019-07-19 15:06:25 +02:00
Ruben Dashyan
b4cac92af2
[escher/modal_view_controller] Clean didBecomeFirstResponder
2019-07-19 15:06:25 +02:00
Ruben Dashyan
772610d9e0
[escher/container] Assert activeApp() does not return nullptr
2019-07-19 15:06:25 +02:00
Ruben Dashyan
224f7873f7
[*container] Make Container::s_activeApp protected
2019-07-19 15:06:25 +02:00
Ruben Dashyan
a0e6151b26
[*container] Remove static Container::sharedContainer
2019-07-19 15:06:25 +02:00
Ruben Dashyan
80981ce865
[escher/container] Make activeApp static
2019-07-19 15:06:25 +02:00
Ruben Dashyan
17795eed87
[escher] Include container.h instead of app.h
...
app.h did actually include container.h
2019-07-19 15:06:25 +02:00
Ruben Dashyan
0531187cda
[escher] Cleaner app header inclusion
2019-07-19 15:06:25 +02:00
Ruben Dashyan
055d601854
[apps] Define TextFieldDelegate::textFieldDelegateApp() directly from ::app()
2019-07-19 15:06:25 +02:00
Ruben Dashyan
5058f64163
[apps] Define LayoutFieldDelegate::expressionFieldDelegateApp() directly from ::app()
2019-07-19 15:06:25 +02:00
Ruben Dashyan
2888eddd06
[escher/button_row_controller] Access the app directly
2019-07-19 15:06:25 +02:00
Ruben Dashyan
e4ec398ecd
[escher] InputEventHandler gets the app directly
2019-07-19 15:06:25 +02:00
Romain Goyet
21907fb89a
[apps] Get rid of App casts
2019-07-19 15:06:25 +02:00
Romain Goyet
581ec55832
[escher] Inline the App::snapshot() function
2019-07-19 15:06:25 +02:00
Romain Goyet
45875dd642
[escher] Make app() a global function
...
This way it can easily be reached by anyone, including non-responders.
And it can easily be overwritten in namespaced apps.
2019-07-19 15:06:25 +02:00
Ruben Dashyan
652cbae9ac
[escher/responder] Access the app directly from the shared container
2019-07-19 15:06:25 +02:00
Ruben Dashyan
ba2a98f5e5
[escher/app] Remove poor man's RTTI
2019-07-19 15:06:25 +02:00
Ruben Dashyan
443f974cbb
[escher/container] Inline activeApp() accessor
2019-07-19 15:06:25 +02:00
Ruben Dashyan
1f06819974
[apps] Remove Container * parameter from all App constructors
2019-07-19 15:06:25 +02:00
Ruben Dashyan
5f8a745957
[escher/app] Remove Container
2019-07-19 15:06:25 +02:00
Ruben Dashyan
268ad3f3ba
Access the shared container from escher and apps
2019-07-19 15:06:25 +02:00
Léa Saviot
e72c7d8564
[escher/layout_field] Fix cursor position when inserting layout
...
Scenario : In calculation, write 10/7, enter
Go up, press OK on 10/7 -> the cursor is not on the right of the layout
2019-06-26 10:08:03 +02:00
Léa Saviot
cc8403e020
[escher/text_input] Factorize and clean handleEvent Right and Left
2019-06-21 14:30:14 -04:00
Léa Saviot
5a8596acd7
[ion/utf8_helper] Put default parameter in RemovePreviousGlyph
2019-06-21 14:30:14 -04:00
Léa Saviot
b696668422
[escher/text_field] Fix cursor navigation on combining code points
2019-06-21 14:30:14 -04:00
Léa Saviot
5f549b514e
[escher] Fix backspace on utf8 combining code point
2019-06-21 14:30:14 -04:00
Léa Saviot
67eea0802f
[escher/text_area] Fix cursor navigation on combining code points
2019-06-21 14:30:14 -04:00
Léa Saviot
0478fc816e
[escher/layout_field] Fix cursor position when inserting "cos()"
2019-06-17 08:25:29 -04:00
Léa Saviot
e17658181d
[escher/layout_field] Compute the pointed layout after the insertion
...
Otherwise it breaks the scenario:
Initial layout: '0
"abs(x)" pressed in the toolbox => |•| is added, • being an empty layout
Final layout: |0'|
2019-06-14 08:20:54 -04:00
Léa Saviot
2061c5d692
[escher/text_area] Fix text indentation handling
...
We used a small buffer to preprocess a text to insert in text area (add
indentation, remove empty code points, compute the next cursor location),
but the size of this buffer was sometimes too small and caused a crash.
Now we do all the text odification in place in the text area buffer.
2019-06-13 11:40:13 -04:00
Léa Saviot
3d991e56da
[escher/poincare] Cleaner way to find the cursored layout in LayoutField
...
Everything is now in the virtual method
LayoutNode::layoutToPointWhenInserting
This removes a dirty inclusion of apps/i18n.h in escher
2019-05-27 17:24:11 +02:00
Émilie Feral
4dd7d1d792
[escher] ExpressionView: discard optimization that triggers a bug
2019-05-13 17:54:45 +02:00
Émilie Feral
1e01c5dadb
[escher] TextArea: fix cursor position when handling text with UCodePointEmpty
2019-05-07 17:13:13 +02:00
Léa Saviot
a7d8160ee0
[escher/text_field] Add missing cursor location update
...
Fixes the scenario: go to statistics, press the root key, then the XNT
key -> crash
2019-05-03 15:54:22 +02:00
Léa Saviot
5316372d72
[escher/text_field] When fetching XNT code point, text is draftText
2019-05-03 15:54:22 +02:00
Émilie Feral
2217eebaec
[escher] SelectableTableView: when reloading data, we temporary deselect
...
the table. We warn the SelectableTableViewDelegate that the selection
change is 'within a temporary selection change' when notifying it of the
change.
2019-05-03 15:54:21 +02:00
Émilie Feral
5e280c7538
[escher] ExpressionView: optimize setLayouts to avoid marking the whole
...
view as dirty when the layout did not really changed
2019-05-03 15:54:21 +02:00
Émilie Feral
c1a0e94ec7
[escher] Clean empty lines
2019-05-03 15:54:21 +02:00
Émilie Feral
9665f11d06
[poincare] Layout: discard methods isVerticalOffset(), isHorizontal(),
...
isRightParenthesisLayout(), isLeftBracket(), isRightBracket(),
isCodePoint(),
isLeftParenthesisLayout() and use type() instead
2019-05-03 15:54:21 +02:00
Émilie Feral
240ed439e0
[escher] ScrollableView: discard duplicate data source of scrolling
...
offset
2019-05-03 15:54:21 +02:00
Émilie Feral
a3f669fb08
[escher] TextView: avoid useless markRectAsDirty when updating
...
backgroundColor and textColor
2019-05-03 15:54:20 +02:00
Émilie Feral
50ad6b6761
[escher] SelectableTableViewDataSource: avoid calling m_delegate->tableViewDidChangeSelection when only reloading the data.
2019-05-03 15:54:20 +02:00
Ruben Dashyan
a3fe99da21
[escher] Simplify TableView::scrollToCell
2019-05-03 15:54:20 +02:00
Ruben Dashyan
7b426adf5b
[escher] Fix ExpressionField::inputViewHeight
...
Since commit
[escher] Implement ScrollView::minimalSizeForOptimalDisplay including margins
minimalSizeForOptimalDisplay includes the ScrollView margins.
2019-05-03 15:53:21 +02:00
Léa Saviot
a88a1bcbef
[escher] Increase TextField::maxBufferSize
...
In order to be able to write a 10*10 adjacency matrix
2019-05-03 15:53:21 +02:00
Émilie Feral
578c65d5dd
[shared] Clean class names containing storage
2019-05-03 15:53:20 +02:00
Émilie Feral
067577ea02
[escher] Avoid unnecessary relayouts
2019-05-03 15:53:20 +02:00
Léa Saviot
b3d0de564a
[coding style] Small inlining
2019-05-03 15:53:20 +02:00