Skip to content

Commit

Permalink
Merge branch 'dev' into release
Browse files Browse the repository at this point in the history
  • Loading branch information
skyjake committed Mar 9, 2023
2 parents ef03ab4 + dcb47c1 commit 38b1551
Show file tree
Hide file tree
Showing 16 changed files with 191 additions and 51 deletions.
21 changes: 11 additions & 10 deletions AUTHORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,25 @@ Lagrange was created by Jaakko Keränen (<[email protected]>) in July 2020.
Legend: `C` code, `T` translation

```
C 3759 Jaakko Keränen <[email protected]>
T 72 Alyssa Liddell <[email protected]>
CT 55 Nikolay Korotkiy <[email protected]>
T 48 Olga Smirnova <[email protected]>
T 44 Страхиња Радић <[email protected]>
C 3813 Jaakko Keränen <[email protected]>
T 76 Alyssa Liddell <[email protected]>
CT 59 Nikolay Korotkiy <[email protected]>
T 51 Olga Smirnova <[email protected]>
T 45 Страхиња Радић <[email protected]>
T 35 Anna (cybertailor) Vyalkova <[email protected]>
T 31 Wally Hackenslacker <[email protected]>
T 30 Omar Polo <[email protected]>
T 27 Emir SARI <[email protected]>
T 26 Shibo Lyu <[email protected]>
T 21 Xosé M <[email protected]>
T 32 Wally Hackenslacker <[email protected]>
T 31 Omar Polo <[email protected]>
T 30 Shibo Lyu <[email protected]>
T 28 Emir SARI <[email protected]>
T 22 Xosé M <[email protected]>
T 20 Giosuè Iaccarino <[email protected]>
T 20 MCMic <[email protected]>
T 16 Tadeáš Erban <[email protected]>
T 9 Aaron Fischer <[email protected]>
T 8 El Mau <[email protected]>
T 8 Waterrail <[email protected]>
T 6 Marco Andronaco <[email protected]>
C 5 Weblate <[email protected]>
T 5 roy niang <[email protected]>
T 3 Alex Schroeder <[email protected]>
T 3 Botond Balázs <[email protected]>
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
cmake_minimum_required (VERSION 3.9)

project (Lagrange
VERSION 1.15.3
VERSION 1.15.4
DESCRIPTION "A Beautiful Gemini Client"
LANGUAGES C
)
Expand Down
2 changes: 1 addition & 1 deletion lib/the_Foundation
Submodule the_Foundation updated from e99009 to 10e3c0
20 changes: 17 additions & 3 deletions po/es.po
Original file line number Diff line number Diff line change
@@ -1,3 +1,18 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: [email protected]\n"
"POT-Creation-Date: 2023-02-28 02:15+0000\n"
"PO-Revision-Date: 2023-02-28 02:15+0000\n"
"Last-Translator: Wally Hackenslacker <[email protected]>\n"
"Language-Team: Spanish <http://weblate.skyjake.fi/projects/lagrange/ui/es/>\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.5.1\n"

msgid "lang.es"
msgstr "Español"

Expand Down Expand Up @@ -34,8 +49,7 @@ msgstr "Próximo conjunto de enlaces de las teclas en la fila inicial"
msgid "error.badstatus.msg"
msgstr ""
"El servidor respondió con un código de estado que no existe en la "
"especificación del protocolo Gemini. Tal vez el servidor venga del futuro? O "
"solo estará fallando."
"especificación del protocolo Gemini. Tal vez el servidor tenga una falla."

msgid "error.unsupported.protocol.msg"
msgstr "El protocolo solicitado no está soportado por esta aplicación."
Expand Down Expand Up @@ -1398,7 +1412,7 @@ msgid "menu.downloads"
msgstr "Mostrar Descargas"

msgid "menu.select.clear"
msgstr "Borrar Selección"
msgstr "Limpiar Selección"

msgid "sidebar.action.feeds.showall"
msgstr "Todo"
Expand Down
17 changes: 16 additions & 1 deletion po/fi.po
Original file line number Diff line number Diff line change
@@ -1,3 +1,18 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: [email protected]\n"
"POT-Creation-Date: 2023-03-09 05:32+0000\n"
"PO-Revision-Date: 2023-03-09 05:32+0000\n"
"Last-Translator: Weblate Admin <[email protected]>\n"
"Language-Team: Finnish <http://weblate.skyjake.fi/projects/lagrange/ui/fi/>\n"
"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.5.1\n"

msgid "about.logo"
msgstr "ASCII-kuva: sana \"Lagrange\" kirjoitettuna isolla fontilla"

Expand Down Expand Up @@ -1163,7 +1178,7 @@ msgstr "Tuntematon tilakoodi"
msgid "error.badstatus.msg"
msgstr ""
"Palvelin vastasi tilakoodilla, jota ei ole määritelty Gemini-protokollan "
"spesifikaatiossa. Ehkä palvelin on tulevaisuudesta? Tai vain epäkunnossa."
"spesifikaatiossa. Palvelin voi olla epäkunnossa."

msgid "error.unsupported.media.msg"
msgstr "Vastaanotettua sisältöä ei voi toistaa tällä sovelluksella."
Expand Down
72 changes: 69 additions & 3 deletions po/ie.po
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: [email protected]\n"
"POT-Creation-Date: 2023-01-29 07:54+0000\n"
"PO-Revision-Date: 2023-01-29 07:54+0000\n"
"PO-Revision-Date: 2023-03-02 05:15+0000\n"
"Last-Translator: Olga Smirnova <[email protected]>\n"
"Language-Team: Occidental <http://weblate.skyjake.fi/projects/lagrange/ui/ie/"
">\n"
Expand Down Expand Up @@ -1102,7 +1102,7 @@ msgstr "Monstrar li URL sub li apuntator"
msgid "error.badstatus.msg"
msgstr ""
"Li servitor respondet de un code de statu quel manca del specification del "
"protocol Gemini. Fórsan li servitor es tro nov o simplicmen malfunctiona."
"protocol Gemini. Fórsan li servitor malfunctiona."

msgid "error.openfile.msg"
msgstr ""
Expand Down Expand Up @@ -1241,7 +1241,7 @@ msgid "heading.lookup.pagecontent"
msgstr "CONTENETE DE PÁGINE"

msgid "prefs.imageloadscroll"
msgstr "Cargar images:"
msgstr "Cargar li sequent image vice de rulament:"

msgid "prefs.mono"
msgstr "Textu monospacial:"
Expand Down Expand Up @@ -2397,3 +2397,69 @@ msgstr "Maximisar"

msgid "menu.window.full"
msgstr "Mode plen-ecran"

msgid "dlg.glyphfinder.help"
msgstr ""
"Vu posse serchar fondes quel provide glifes por ti caracteres in li "
"Biblioteca de fondes de skyjake.fi, o installar nov fondes TrueType "
"manualmen."

msgid "error.certverify.msg"
msgstr ""
"Li conexion esset interuptet pro que li certificate TLS del servitor ne "
"coresponde a ti a quel noi fide. Ples controlar que li servitor ha avisat un "
"cambie de su certificate. Si ne, hay un possibilitá que un malevolent 3-im "
"partise imita li servitor a quel vu vole conexer.\n"
"\n"
"On posse marcar li certificate quam fidet in li Information pri li págine."

msgid "bookmark.export.format.otherlines"
msgstr ""
"Marcat listes e citationes es reservat por additional information pri li "
"precedent marca-págine. Lineas de simplic o formatat textu es comentas e "
"deve esser ignorat."

msgid "dlg.glyphfinder.disable"
msgstr "Depermisser avises"

msgid "error.proxyexpired.msg"
msgstr ""
"Li conexion esset interuptet pro que li certificate TLS del servitor proxy "
"ha expirat."

msgid "keys.feeds.showall"
msgstr "Panel lateral: Omni elementes de feed"

msgid "error.proxyverify.msg"
msgstr ""
"Li conexion esset interuptet pro que li certificate TLS del servitor proxy "
"ne coresponde a ti a quel noi fide.\n"
"\n"
"On posse marcar li certificate del servitor proxy quam fidet in li "
"Information pri li págine."

msgid "dlg.dismiss.warning"
msgstr "Depermisser li avise"

msgid "sitespec.ansi"
msgstr "Avises de escapes ANSI:"

msgid "keys.feeds.showunread"
msgstr "Panel lateral: Ínleet elementes de feed"

msgid "error.incompleteheader.msg"
msgstr ""
"Li response del servitor ne contene un complet cap-linea. Fórsan li servitor "
"malfunctiona o ne es un servitor Gemini."

msgid "error.ansi.msg"
msgstr ""
"Ti págine posse esser monstrat íncorectmen. It usa sequenties escape ANSI "
"por formatar li textu, e ili es suportat solmen partialmen. On posse usar un "
"emulator de terminal por vider it."

msgid "heading.dismiss.warning"
msgstr "Depermisser li avise?"

msgid "hint.upload.token.long"
msgstr "secret code — vi li instructiones del servitor"
6 changes: 3 additions & 3 deletions po/ru.po
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: [email protected]\n"
"POT-Creation-Date: 2023-01-22 13:09+0000\n"
"PO-Revision-Date: 2023-01-22 13:09+0000\n"
"Last-Translator: Nikolay Korotkiy <sikmir@gmail.com>\n"
"PO-Revision-Date: 2023-03-02 05:15+0000\n"
"Last-Translator: Olga Smirnova <mistresssilvara@hotmail.com>\n"
"Language-Team: Russian <http://weblate.skyjake.fi/projects/lagrange/ui/ru/>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
Expand Down Expand Up @@ -1096,7 +1096,7 @@ msgstr "Слишком много перенаправлений"
msgid "error.badstatus.msg"
msgstr ""
"Сервер ответил кодом состояния, которого нет в спецификации протокола "
"Gemini. Может сервер из будущего? Или просто неисправен."
"Gemini. Сервер может быть неисправен."

msgid "error.badstatus"
msgstr "Неизвестный код состояния"
Expand Down
8 changes: 8 additions & 0 deletions res/about/version.gmi
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,14 @@
```
# Release notes

## 1.15.4
* Fixed crash when trying to open a tab, New Identity dialog, or the Identity menu when the Preferences window is focused.
* Fixed potential crash if switching focus to a widget being dismissed (e.g., popup going away).
* Fixed text input becoming unresponsive when focus switches from a popup being dismissed to a new popup.
* Fixed closing the Preferences window with Ctrl+W or ⌘W.
* Fixed unnecessary page layout update when closing Preferences.
* Updated UI translations.

## 1.15.3
* Fixed handling of redirects in the inline media player and file downloader.
* Updated UI translations.
Expand Down
Binary file modified res/lang/es.bin
Binary file not shown.
Binary file modified res/lang/fi.bin
Binary file not shown.
Binary file modified res/lang/ie.bin
Binary file not shown.
Binary file modified res/lang/ru.bin
Binary file not shown.
47 changes: 30 additions & 17 deletions src/app.c
Original file line number Diff line number Diff line change
Expand Up @@ -2735,7 +2735,8 @@ static void updateImageStyleButton_(iLabelWidget *button, int style) {
}

static iBool handlePrefsCommands_(iWidget *d, const char *cmd) {
if (equal_Command(cmd, "prefs.dismiss") || equal_Command(cmd, "preferences")) {
if (equal_Command(cmd, "prefs.dismiss") || equal_Command(cmd, "preferences") ||
equal_Command(cmd, "tabs.close")) {
setupSheetTransition_Mobile(d, iFalse);
enableToolbar_Root(get_Root(), iTrue);
/* Apply the new UI scaling factor to all non-popup windows. */ {
Expand Down Expand Up @@ -3537,23 +3538,35 @@ static iBool handleNonWindowRelatedCommand_App_(iApp *d, const char *cmd) {
return iTrue;
}
else if (equal_Command(cmd, "linewidth.set")) {
d->prefs.lineWidth = iMax(20, arg_Command(cmd));
postCommand_App("document.layout.changed");
const int lineWidth = iMax(20, arg_Command(cmd));
if (lineWidth != d->prefs.lineWidth) {
d->prefs.lineWidth = lineWidth;
postCommand_App("document.layout.changed redo:1");
}
return iTrue;
}
else if (equal_Command(cmd, "linespacing.set")) {
d->prefs.lineSpacing = iMax(0.5f, argf_Command(cmd));
postCommand_App("document.layout.changed redo:1");
const float spacing = iMax(0.5f, argf_Command(cmd));
if (spacing != d->prefs.lineSpacing) {
d->prefs.lineSpacing = spacing;
postCommand_App("document.layout.changed redo:1");
}
return iTrue;
}
else if (equal_Command(cmd, "tabwidth.set")) {
d->prefs.tabWidth = iMax(1, arg_Command(cmd));
postCommand_App("document.layout.changed redo:1"); /* spaces need renormalizing */
const int tabWidth = iMax(1, arg_Command(cmd));;
if (tabWidth != d->prefs.tabWidth) {
d->prefs.tabWidth = tabWidth;
postCommand_App("document.layout.changed redo:1"); /* spaces need renormalizing */
}
return iTrue;
}
else if (equal_Command(cmd, "quoteicon.set")) {
d->prefs.quoteIcon = arg_Command(cmd) != 0;
postCommand_App("document.layout.changed redo:1");
const iBool quoteIcon = arg_Command(cmd) != 0;
if (quoteIcon != d->prefs.quoteIcon) {
d->prefs.quoteIcon = quoteIcon;
postCommand_App("document.layout.changed redo:1");
}
return iTrue;
}
else if (equal_Command(cmd, "ansiescape")) {
Expand Down Expand Up @@ -4192,7 +4205,7 @@ iBool handleCommand_App(const char *cmd) {
#endif
return iFalse;
}
else if (equal_Command(cmd, "tabs.new")) {
else if (equal_Command(cmd, "tabs.new") && isMainWin) {
if (argLabel_Command(cmd, "reopen")) {
const iString *reopenUrl = popClosedTabUrl_App_(d);
if (reopenUrl) {
Expand All @@ -4208,7 +4221,7 @@ iBool handleCommand_App(const char *cmd) {
}
return iTrue;
}
else if (equal_Command(cmd, "tabs.close")) {
else if (equal_Command(cmd, "tabs.close") && isMainWin) {
iWidget *tabs = findWidget_App("doctabs");
/* Can't close the last tab on mobile. */
if (isMobile_Platform() && tabCount_Widget(tabs) == 1 && numRoots_Window(get_Window()) == 1) {
Expand Down Expand Up @@ -4284,7 +4297,7 @@ iBool handleCommand_App(const char *cmd) {
#endif
return iTrue;
}
else if (equal_Command(cmd, "keyroot.next")) {
else if (equal_Command(cmd, "keyroot.next") && isMainWin) {
if (setKeyRoot_Window(as_Window(d->window),
otherRoot_Window(as_Window(d->window), d->window->keyRoot))) {
setFocus_Widget(NULL);
Expand Down Expand Up @@ -4425,7 +4438,7 @@ iBool handleCommand_App(const char *cmd) {
promoteDialogToWindow_Widget(dlg);
}
}
else if (equal_Command(cmd, "navigate.home")) {
else if (equal_Command(cmd, "navigate.home") && isMainWin) {
/* Look for bookmarks tagged "homepage". */
const iPtrArray *homepages =
list_Bookmarks(d->bookmarks, NULL, filterHomepage_Bookmark, NULL);
Expand All @@ -4452,7 +4465,7 @@ iBool handleCommand_App(const char *cmd) {
}
return iTrue;
}
else if (equal_Command(cmd, "bookmark.add")) {
else if (equal_Command(cmd, "bookmark.add") && isMainWin) {
if (findWidget_Root("bmed.create")) {
return iTrue;
}
Expand Down Expand Up @@ -4485,7 +4498,7 @@ iBool handleCommand_App(const char *cmd) {
}
return iTrue;
}
else if (equal_Command(cmd, "feeds.subscribe")) {
else if (equal_Command(cmd, "feeds.subscribe") && isMainWin) {
const iString *url = url_DocumentWidget(document_App());
if (isEmpty_String(url)) {
return iTrue;
Expand Down Expand Up @@ -4549,7 +4562,7 @@ iBool handleCommand_App(const char *cmd) {
}
return iFalse;
}
else if (equal_Command(cmd, "ident.new")) {
else if (equal_Command(cmd, "ident.new") && isMainWin) {
iWidget *dlg = makeIdentityCreation_Widget();
setFocus_Widget(findChild_Widget(dlg, "ident.until"));
setCommandHandler_Widget(dlg, handleIdentityCreationCommands_);
Expand All @@ -4562,7 +4575,7 @@ iBool handleCommand_App(const char *cmd) {
arrange_Widget(dlg);
return iTrue;
}
else if (equal_Command(cmd, "ident.import")) {
else if (equal_Command(cmd, "ident.import") && isMainWin) {
iCertImportWidget *imp = new_CertImportWidget();
setPageContent_CertImportWidget(imp, sourceContent_DocumentWidget(document_App()));
addChild_Widget(get_Root()->widget, iClob(imp));
Expand Down
9 changes: 7 additions & 2 deletions src/ui/inputwidget.c
Original file line number Diff line number Diff line change
Expand Up @@ -891,8 +891,13 @@ void deinit_InputWidget(iInputWidget *d) {
startOrStopCursorTimer_InputWidget_(d, iFalse);
clearInputLines_(&d->lines);
if (isSelected_Widget(d)) {
SDL_StopTextInput();
enableEditorKeysInMenus_(iTrue);
/* If another input widget has focus, we shouldn't end SDL's text input mode now
or the other widget will stop receiving input. */
if (!focus_Widget() || focus_Widget() == as_Widget(d) ||
!isInstance_Object(focus_Widget(), &Class_InputWidget)) {
SDL_StopTextInput();
enableEditorKeysInMenus_(iTrue);
}
}
clearUndo_InputWidget_(d);
deinit_Array(&d->undoStack);
Expand Down
Loading

0 comments on commit 38b1551

Please sign in to comment.