diff --git a/src/gmdocument.c b/src/gmdocument.c

index 1c7e69be..583679c9 100644

--- a/src/gmdocument.c

+++ b/src/gmdocument.c

@@ -2208,7 +2208,7 @@ static void convertMarkdownToGemtext_GmDocument_(iGmDocument *d) {

 }

 /* Replace Markdown syntax with equivalent Gemtext, where possible. */

 replaceRegExp_String(&d->source, iClob(new_RegExp("(\\s*\n){2,}", 0)), "\n\n", NULL, NULL); /* normalize paragraph breaks */

- printf("Converted:\n%s", cstr_String(&d->source));

+// printf("Converted:\n%s", cstr_String(&d->source));

 d->format = gemini_SourceFormat;

}



diff --git a/src/ui/listwidget.c b/src/ui/listwidget.c

index 79e8ca4b..8b7d61e7 100644

--- a/src/ui/listwidget.c

+++ b/src/ui/listwidget.c

@@ -314,6 +314,37 @@ void setHoverItem_ListWidget(iListWidget *d, size_t index) {

 }

}



+static void moveCursor_ListWidget_(iListWidget *d, int dir, uint32_t animSpan) {

+ const size_t oldCursor = d->cursorItem;

+ if (isEmpty_ListWidget(d)) {

+ d->cursorItem = iInvalidPos;

+ }

+ else {

+ const int maxItem = numItems_ListWidget(d) - 1;

+ if (d->cursorItem == iInvalidPos) {

+ d->cursorItem = 0;

+ }

+ d->cursorItem = iClamp((int) d->cursorItem + dir, 0, maxItem);

+ while (((const iListItem *) constItem_ListWidget(d, d->cursorItem))->isSeparator &&

+ ((d->cursorItem < maxItem && dir >= 0) || (d->cursorItem > 0 && dir < 0))) {

+ d->cursorItem += (dir >= 0 ? 1 : -1); /* Skip separators. */

+ }

+ } 

+ if (oldCursor != d->cursorItem) {

+ invalidateItem_ListWidget(d, oldCursor);

+ invalidateItem_ListWidget(d, d->cursorItem);

+ }

+ if (d->cursorItem != iInvalidPos) {

+ scrollToItem_ListWidget(d, d->cursorItem, prefs_App()->uiAnimations ? animSpan : 0);

+ }

+}

+

+void setCursorItem_ListWidget(iListWidget *d, size_t index) {

+ invalidateItem_ListWidget(d, d->cursorItem);

+ d->cursorItem = 0;

+ moveCursor_ListWidget_(d, 0, 0);

+}

+

void updateMouseHover_ListWidget(iListWidget *d) {

 const iInt2 mouse = mouseCoord_Window(

     get_Window(), deviceType_App() == desktop_AppDeviceType ? 0 : SDL_TOUCH_MOUSEID);

@@ -418,29 +449,6 @@ static iBool isScrollDisabled_ListWidget_(const iListWidget *d, const SDL_Event

 return iFalse;

}



-static void moveCursor_ListWidget_(iListWidget *d, int dir, uint32_t animSpan) {

- const size_t oldCursor = d->cursorItem;

- if (isEmpty_ListWidget(d)) {

- d->cursorItem = iInvalidPos;

- }

- else {

- const int maxItem = numItems_ListWidget(d) - 1;

- if (d->cursorItem == iInvalidPos) {

- d->cursorItem = 0;

- }

- int cursor = (int) d->cursorItem + dir;

- d->cursorItem = iClamp(cursor, 0, maxItem);

- /* TODO: skip separator items */

- } 

- if (oldCursor != d->cursorItem) {

- invalidateItem_ListWidget(d, oldCursor);

- invalidateItem_ListWidget(d, d->cursorItem);

- }

- if (d->cursorItem != iInvalidPos) {

- scrollToItem_ListWidget(d, d->cursorItem, prefs_App()->uiAnimations ? animSpan : 0);

- }

-}

-

static int cursorKeyStep_ListWidget_(const iListWidget *d, int sym) {

 const iWidget *w = constAs_Widget(d);

 const int dir = (sym == SDLK_UP || sym == SDLK_PAGEUP || sym == SDLK_HOME ? -1 : 1);

diff --git a/src/ui/listwidget.h b/src/ui/listwidget.h

index cb690983..a9f88606 100644

--- a/src/ui/listwidget.h

+++ b/src/ui/listwidget.h

@@ -100,6 +100,7 @@ void scrollOffsetSpan_ListWidget (iListWidget *, int offset, uint32_t span);

void updateVisible_ListWidget (iListWidget *);

void updateMouseHover_ListWidget (iListWidget *);

void setHoverItem_ListWidget (iListWidget *, size_t index);

+void setCursorItem_ListWidget (iListWidget *, size_t index);



void sort_ListWidget (iListWidget *, int (*cmp)(const iListItem **item1, const iListItem **item2));



diff --git a/src/ui/sidebarwidget.c b/src/ui/sidebarwidget.c

index 3d5b2af4..e3fea01f 100644

--- a/src/ui/sidebarwidget.c

+++ b/src/ui/sidebarwidget.c

@@ -841,10 +841,8 @@ void init_SidebarWidget(iSidebarWidget *d, enum iSidebarSide side) {

     d->itemFonts[1] = uiLabelBigBold_FontId;

 }

 d->widthAsGaps = 73.0f;

-#elif defined (iPlatformTerminal)

- d->widthAsGaps = 35.0f;

#else

- d->widthAsGaps = 60.0f;

+ d->widthAsGaps = isTerminal_App() ? 35.0f : 60.0f;

#endif

 setFlags_Widget(w, fixedWidth_WidgetFlag, iTrue);

 iWidget *vdiv = makeVDiv_Widget();

@@ -1211,6 +1209,9 @@ static iBool handleSidebarCommand_SidebarWidget_(iSidebarWidget *d, const char *

         postCommandf_App("%s.mode.changed arg:%d", cstr_String(id_Widget(w)), d->mode);

         if (isTerminal_App()) {

             setFocus_Widget(as_Widget(list_SidebarWidget(d)));

+ if (wasChanged) {

+ setCursorItem_ListWidget(list_SidebarWidget(d), 0);

+ }

         }

     }

     refresh_Widget(findChild_Widget(w, "buttons"));

@@ -1852,6 +1853,11 @@ static iBool processEvent_SidebarWidget_(iSidebarWidget *d, const SDL_Event *ev)

         refresh_Widget(d);

         return iTrue;

     }

+ else if (equal_Command(cmd, "zoom.delta") && !isVisible_Widget(w) &&

+ d->side == left_SidebarSide) {

+ postCommand_Widget(w, "sidebar.toggle");

+ return iTrue;

+ }

#endif 

 }

 if (ev->type == SDL_MOUSEMOTION &&

diff --git a/src/ui/uploadwidget.c b/src/ui/uploadwidget.c

index cce7dce8..596236ac 100644

--- a/src/ui/uploadwidget.c

+++ b/src/ui/uploadwidget.c

@@ -290,7 +290,6 @@ void init_UploadWidget(iUploadWidget *d) {

         d->ident                    = makeMenuButton_LabelWidget("${upload.id}", items, numItems);

         setTextCStr_LabelWidget(d->ident, items[findWidestLabel_MenuItem(items, numItems)].label);

         //setFixedSize_Widget(as_Widget(d->ident), init_I2(50 * gap_UI, ));

- setBackgroundColor_Widget(as_Widget(d->ident), red_ColorId);

         iWidget *identHeading = addChild_Widget(headings, iClob(makeHeading_Widget("${upload.id}")));

         identHeading->sizeRef = as_Widget(d->ident);

         setId_Widget(addChildFlags_Widget(values, iClob(d->ident), alignLeft_WidgetFlag), "upload.id");

diff --git a/src/ui/util.c b/src/ui/util.c

index 44d2778d..db0249f6 100644

--- a/src/ui/util.c

+++ b/src/ui/util.c

@@ -1146,7 +1146,7 @@ void unselectAllNativeMenuItems_Widget(iWidget *menu) {

}



iLocalDef iBool isUsingMenuPopupWindows_(void) {

-#if defined (LAGRANGE_ENABLE_POPUP_MENUS)

+#if defined (LAGRANGE_ENABLE_POPUP_MENUS) && !defined (iPlatformTerminal)

 return deviceType_App() == desktop_AppDeviceType;

#else

 return iFalse;

Proxy Information
Original URL
gemini://git.skyjake.fi/lagrange/work%2Fv1.13/pcdiff/e3645b90a8b1bbc21740271cff71c03af2b74997
Status Code
Success (20)
Meta
text/plain
Capsule Response Time
30.877454 milliseconds
Gemini-to-HTML Time
5.993596 milliseconds

This content has been proxied by September (3851b).