Commit Graph

1042 Commits

Author SHA1 Message Date
É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