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

index 9fa5298f..8b2e2c06 100644

--- a/src/ui/documentwidget.c

+++ b/src/ui/documentwidget.c

@@ -2033,27 +2033,36 @@ static iBool setUrl_DocumentWidget_(iDocumentWidget *d, const iString *url) {

 return iFalse;

}



+static void makePastePrecedingLineMenuItem_(iMenuItem *item_out, const iWidget *buttons,

+ const char *precedingLine) {

+ const iBinding *bind = findCommand_Keys("input.precedingline");

+ *item_out = (iMenuItem){

+ "${menu.input.precedingline}",

+ bind->key,

+ bind->mods,

+ format_CStr("!valueinput.set ptr:%p text:%s", buttons, precedingLine)

+ };

+}

+

static const iArray *updateInputPromptMenuItems_(iWidget *menu) {

 const char     *context       = cstr_String(&menu->data);

 const iWidget  *buttons       = pointerLabel_Command(context, "buttons");

 const iString  *url           = string_Command(context, "url");

 const char     *precedingLine = suffixPtr_Command(context, "preceding");

- const iBinding *bind = findCommand_Keys("input.precedingline");

 /* Compose new menu items. */

 iArray *items = collectNew_Array(sizeof(iMenuItem));

+ iMenuItem pasteItem;

+ makePastePrecedingLineMenuItem_(&pasteItem, buttons, precedingLine);

+ pushBack_Array(items, &pasteItem);

 pushBackN_Array(

     items,

     (iMenuItem[]){

- { "${menu.input.precedingline}",

- bind->key,

- bind->mods,

- format_CStr("!valueinput.set ptr:%p text:%s", buttons, precedingLine) },

         { "---" },

         { !isPromptUrl_SiteSpec(url) ? "${menu.input.setprompt}" : "${menu.input.unsetprompt}",

           0,

           0,

           format_CStr("!prompturl.toggle url:%s", cstr_String(url)) } },

- 3);

+ 2);

 /* Recently submitted input texts can be restored. */ {

     const iStringArray *recentInput = recentlySubmittedInput_App();

     if (!isEmpty_StringArray(recentInput)) {

@@ -2130,8 +2139,13 @@ iWidget *makeInputPrompt_DocumentWidget(iDocumentWidget *d, const iString *url,

 if (lineBreak && deviceType_App() != desktop_AppDeviceType) {

     addChildPos_Widget(buttons, iClob(lineBreak), front_WidgetAddPos);

 }

+ /* Shortcut for the Paste Preceding Line. The menu is dynamic so it won't listen

+ for the keys as usual. */ {

+ iMenuItem pasteItem;

+ makePastePrecedingLineMenuItem_(&pasteItem, buttons, cstr_String(&d->linePrecedingLink));

+ addAction_Widget(dlg, pasteItem.key, pasteItem.kmods, pasteItem.command);

+ }

 /* Menu for additional actions, past entries. */ {

-

     iLabelWidget *ellipsisButton =

         makeMenuButton_LabelWidget(midEllipsis_Icon, NULL, 0);

     iWidget *menu = findChild_Widget(as_Widget(ellipsisButton), "menu");

@@ -2142,10 +2156,6 @@ iWidget *makeInputPrompt_DocumentWidget(iDocumentWidget *d, const iString *url,

                                        buttons,

                                        cstr_String(canonicalUrl_String(url)),

                                        cstr_String(&d->linePrecedingLink)));

- // iWidget *menu = findChild_Widget(as_Widget(ellipsisButton), "menu");

- // menu->updateMenuItems = updateInputPromptMenuItems_;

- // set_String(&menu->data, url); /* needed when updating items */

- //}

     if (deviceType_App() == desktop_AppDeviceType) {

         addChildPos_Widget(buttons, iClob(ellipsisButton), front_WidgetAddPos);

     }

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

index b45c345b..727cd788 100644

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

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

@@ -2588,7 +2588,7 @@ iWidget *makeValueInputWithAdditionalActions_Widget(iWidget *parent, const iStri

     pushBack_Array(&actions, &(iMenuItem){ "---" });

 }

 pushBack_Array(&actions, &(iMenuItem){ "${cancel}", SDLK_ESCAPE, 0, "valueinput.cancel" });

- if (deviceType_App() != desktop_AppDeviceType) {

+ if (!isDesktop_Platform()) {

     pushBack_Array(&actions, &(iMenuItem){ "---" });

 }

 pushBack_Array(&actions,

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

This content has been proxied by September (ba2dc).