summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ui/labelwidget.c21
-rw-r--r--src/ui/sidebarwidget.c17
2 files changed, 24 insertions, 14 deletions
diff --git a/src/ui/labelwidget.c b/src/ui/labelwidget.c
index 5ad43b0e..4ace6204 100644
--- a/src/ui/labelwidget.c
+++ b/src/ui/labelwidget.c
@@ -492,6 +492,7 @@ int font_LabelWidget(const iLabelWidget *d) {
492} 492}
493 493
494void updateSize_LabelWidget(iLabelWidget *d) { 494void updateSize_LabelWidget(iLabelWidget *d) {
495 if (!d) return;
495 iWidget *w = as_Widget(d); 496 iWidget *w = as_Widget(d);
496 const int64_t flags = flags_Widget(w); 497 const int64_t flags = flags_Widget(w);
497 const iInt2 size = defaultSize_LabelWidget(d); 498 const iInt2 size = defaultSize_LabelWidget(d);
@@ -562,18 +563,22 @@ void setTextColor_LabelWidget(iLabelWidget *d, int color) {
562} 563}
563 564
564void setText_LabelWidget(iLabelWidget *d, const iString *text) { 565void setText_LabelWidget(iLabelWidget *d, const iString *text) {
565 updateText_LabelWidget(d, text); 566 if (d) {
566 updateSize_LabelWidget(d); 567 updateText_LabelWidget(d, text);
567 if (isWrapped_LabelWidget(d)) { 568 updateSize_LabelWidget(d);
568 sizeChanged_LabelWidget_(d); 569 if (isWrapped_LabelWidget(d)) {
570 sizeChanged_LabelWidget_(d);
571 }
569 } 572 }
570} 573}
571 574
572void setTextCStr_LabelWidget(iLabelWidget *d, const char *text) { 575void setTextCStr_LabelWidget(iLabelWidget *d, const char *text) {
573 updateTextCStr_LabelWidget(d, text); 576 if (d) {
574 updateSize_LabelWidget(d); 577 updateTextCStr_LabelWidget(d, text);
575 if (isWrapped_LabelWidget(d)) { 578 updateSize_LabelWidget(d);
576 sizeChanged_LabelWidget_(d); 579 if (isWrapped_LabelWidget(d)) {
580 sizeChanged_LabelWidget_(d);
581 }
577 } 582 }
578} 583}
579 584
diff --git a/src/ui/sidebarwidget.c b/src/ui/sidebarwidget.c
index fa0e16ea..07f1908c 100644
--- a/src/ui/sidebarwidget.c
+++ b/src/ui/sidebarwidget.c
@@ -251,12 +251,14 @@ static iBool isSlidingSheet_SidebarWidget_(const iSidebarWidget *d) {
251static void setMobileEditMode_SidebarWidget_(iSidebarWidget *d, iBool editing) { 251static void setMobileEditMode_SidebarWidget_(iSidebarWidget *d, iBool editing) {
252 iWidget *w = as_Widget(d); 252 iWidget *w = as_Widget(d);
253 d->isEditing = editing; 253 d->isEditing = editing;
254 setFlags_Widget(findChild_Widget(w, "sidebar.close"), hidden_WidgetFlag, editing); 254 if (d->actions) {
255 setFlags_Widget(child_Widget(d->actions, 0), hidden_WidgetFlag, !editing); 255 setFlags_Widget(findChild_Widget(w, "sidebar.close"), hidden_WidgetFlag, editing);
256 setTextCStr_LabelWidget(child_Widget(as_Widget(d->actions), 2), 256 setFlags_Widget(child_Widget(d->actions, 0), hidden_WidgetFlag, !editing);
257 editing ? "${sidebar.close}" : "${sidebar.action.bookmarks.edit}"); 257 setTextCStr_LabelWidget(child_Widget(as_Widget(d->actions), 2),
258 setDragHandleWidth_ListWidget(d->list, editing ? itemHeight_ListWidget(d->list) * 3 / 2 : 0); 258 editing ? "${sidebar.close}" : "${sidebar.action.bookmarks.edit}");
259 arrange_Widget(d->actions); 259 setDragHandleWidth_ListWidget(d->list, editing ? itemHeight_ListWidget(d->list) * 3 / 2 : 0);
260 arrange_Widget(d->actions);
261 }
260} 262}
261 263
262static void updateItemsWithFlags_SidebarWidget_(iSidebarWidget *d, iBool keepActions) { 264static void updateItemsWithFlags_SidebarWidget_(iSidebarWidget *d, iBool keepActions) {
@@ -698,6 +700,9 @@ iBool setMode_SidebarWidget(iSidebarWidget *d, enum iSidebarMode mode) {
698 d->mode == documentOutline_SidebarMode ? tmBannerBackground_ColorId 700 d->mode == documentOutline_SidebarMode ? tmBannerBackground_ColorId
699 : uiBackgroundSidebar_ColorId); 701 : uiBackgroundSidebar_ColorId);
700 updateItemHeight_SidebarWidget_(d); 702 updateItemHeight_SidebarWidget_(d);
703 if (deviceType_App() != desktop_AppDeviceType && mode != bookmarks_SidebarMode) {
704 setMobileEditMode_SidebarWidget_(d, iFalse);
705 }
701 /* Restore previous scroll position. */ 706 /* Restore previous scroll position. */
702 setScrollPos_ListWidget(list_SidebarWidget_(d), d->modeScroll[mode]); 707 setScrollPos_ListWidget(list_SidebarWidget_(d), d->modeScroll[mode]);
703 /* Title of the mobile sliding sheet. */ 708 /* Title of the mobile sliding sheet. */