summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--doc/weechat_doc_en.texi9
-rw-r--r--doc/weechat_doc_es.texi9
-rw-r--r--doc/weechat_doc_fr.texi17
-rw-r--r--doc/weechat_doc_pt.texi9
-rw-r--r--po/cs.po56
-rw-r--r--po/es.po56
-rw-r--r--po/fr.po58
-rw-r--r--po/weechat.pot56
-rw-r--r--src/gui/curses/gui-display.c19
-rw-r--r--src/gui/curses/gui-input.c3
-rw-r--r--src/gui/gui-action.c86
-rw-r--r--src/gui/gui-common.c1
-rw-r--r--src/gui/gui-keyboard.c80
-rw-r--r--src/gui/gui.h5
-rw-r--r--weechat/ChangeLog5
-rw-r--r--weechat/doc/weechat_doc_en.texi9
-rw-r--r--weechat/doc/weechat_doc_es.texi9
-rw-r--r--weechat/doc/weechat_doc_fr.texi17
-rw-r--r--weechat/doc/weechat_doc_pt.texi9
-rw-r--r--weechat/po/cs.po56
-rw-r--r--weechat/po/es.po56
-rw-r--r--weechat/po/fr.po58
-rw-r--r--weechat/po/weechat.pot56
-rw-r--r--weechat/src/gui/curses/gui-display.c19
-rw-r--r--weechat/src/gui/curses/gui-input.c3
-rw-r--r--weechat/src/gui/gui-action.c86
-rw-r--r--weechat/src/gui/gui-common.c1
-rw-r--r--weechat/src/gui/gui-keyboard.c80
-rw-r--r--weechat/src/gui/gui.h5
30 files changed, 658 insertions, 280 deletions
diff --git a/ChangeLog b/ChangeLog
index 14883cddc..94bedd51c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,12 +1,13 @@
WeeChat - Wee Enhanced Environment for Chat
===========================================
-ChangeLog - 2005-11-19
+ChangeLog - 2005-11-20
Version 0.1.7 (under dev!):
+ * added new keys for scrolling to previous/next highlight (alt-P / alt-N)
* added "read marker": an indicator for first unread line in a
- server or channel buffer
+ server or channel buffer (alt-U to scroll to marker)
* new window maganement: custom size for windows, auto resize when
terminal is resized
* fixed infinite loop when resizing term to small size
diff --git a/doc/weechat_doc_en.texi b/doc/weechat_doc_en.texi
index e50ae71da..e860bfac8 100644
--- a/doc/weechat_doc_en.texi
+++ b/doc/weechat_doc_en.texi
@@ -878,6 +878,12 @@ Switch to buffer by number@*
@item Alt + K
Grab a key
@*
+@item Alt + N
+Scroll to next highlight@*
+@*
+@item Alt + P
+Scroll to previous highlight@*
+@*
@item Alt + R
Delete entire line@*
@*
@@ -885,6 +891,9 @@ Delete entire line@*
Switch server on servers buffer@*
(if option ``look_one_server_buffer'' is enabled)@*
@*
+@item Alt + U
+Scroll to first unread line in buffer@*
+@*
@item Alt + PageUp / Alt + PageDown / Alt + Home / Alt + End
Scroll nicklist@*
@*
diff --git a/doc/weechat_doc_es.texi b/doc/weechat_doc_es.texi
index c176fb70d..45badbc35 100644
--- a/doc/weechat_doc_es.texi
+++ b/doc/weechat_doc_es.texi
@@ -878,6 +878,12 @@ Saltar a la memoria temporal con ese n@'umero@*
@item Alt + K
Grab a key
@*
+@item Alt + N
+Scroll to next highlight@*
+@*
+@item Alt + P
+Scroll to previous highlight@*
+@*
@item Alt + R
Delete entire line@*
@*
@@ -885,6 +891,9 @@ Delete entire line@*
Switch server on servers buffer@*
(if option ``look_one_server_buffer'' is enabled)@*
@*
+@item Alt + U
+Scroll to first unread line in buffer@*
+@*
@item Alt + PageUp / Alt + PageDown / Alt + Home / Alt + End
Scroll nicklist@*
@*
diff --git a/doc/weechat_doc_fr.texi b/doc/weechat_doc_fr.texi
index c784ff1c2..7b46fee95 100644
--- a/doc/weechat_doc_fr.texi
+++ b/doc/weechat_doc_fr.texi
@@ -867,17 +867,23 @@ Sauter au dernier tampon@*
@item Alt + J puis Alt + S
Sauter au tampon du serveur@*
@*
+@item Alt + J then Alt + X
+Sauter au premier canal du serveur suivant (ou tampon du serveur si aucun canal ouvert)@*
+@*
@item Alt + chiffre (1-9)
Sauter au tampon avec ce num@'ero@*
@*
-@item Alt + J then Alt + X
-Sauter au premier canal du serveur suivant (ou tampon du serveur si aucun canal ouvert)@*
+@item Alt + J puis nombre (01-99)
+Sauter au tampon avec ce num@'ero@*
@*
@item Alt + K
Capturer une touche
@*
-@item Alt + J puis nombre (01-99)
-Sauter au tampon avec ce num@'ero@*
+@item Alt + N
+Se positionner sur le highlight suivant@*
+@*
+@item Alt + P
+Se positionner sur le highlight pr@'ec@'edent@*
@*
@item Alt + R
Effacer la ligne enti@`ere@*
@@ -886,6 +892,9 @@ Effacer la ligne enti@`ere@*
Changer de serveur sur le tampon des serveurs@*
(si l'option ``look_one_server_buffer'' est activ@'ee)@*
@*
+@item Alt + U
+Se positionner sur la premi@`ere ligne non lue du tampon@*
+@*
@item Alt + PageUp / Alt + PageDown / Alt + Home / Alt + End
Faire d@'efiler la liste des pseudos@*
@*
diff --git a/doc/weechat_doc_pt.texi b/doc/weechat_doc_pt.texi
index ce9139dc4..9857b2d5b 100644
--- a/doc/weechat_doc_pt.texi
+++ b/doc/weechat_doc_pt.texi
@@ -876,6 +876,12 @@ Comute ao amortecedor pelo n@'umero@*
@item Alt + K
Grab a key
@*
+@item Alt + N
+Scroll to next highlight@*
+@*
+@item Alt + P
+Scroll to previous highlight@*
+@*
@item Alt + R
Delete entire line@*
@*
@@ -883,6 +889,9 @@ Delete entire line@*
Switch server on servers buffer@*
(if option ``look_one_server_buffer'' is enabled)@*
@*
+@item Alt + U
+Scroll to first unread line in buffer@*
+@*
@item Alt + PageUp / Alt + PageDown / Alt + Home / Alt + End
Scroll nicklist@*
@*
diff --git a/po/cs.po b/po/cs.po
index 146d9f903..7547d5569 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.7-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2005-11-19 23:06+0100\n"
+"POT-Creation-Date: 2005-11-20 19:02+0100\n"
"PO-Revision-Date: 2005-11-19 11:36+0100\n"
"Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -2247,12 +2247,12 @@ msgstr ""
"tento soubor při aktualizaci nastavení.\n"
"#\n"
-#: src/gui/curses/gui-input.c:331
+#: src/gui/curses/gui-input.c:334
#, c-format
msgid "Day changed to %s\n"
msgstr "Změnil se den na %s\n"
-#: src/gui/curses/gui-input.c:414
+#: src/gui/curses/gui-input.c:417
#, c-format
msgid "%s lag is high, disconnecting from server...\n"
msgstr "%s zpoždění je veliké, odpojuji se od serveru...\n"
@@ -2273,48 +2273,48 @@ msgstr "Mb"
msgid "Gb"
msgstr "Gb"
-#: src/gui/curses/gui-display.c:1938
+#: src/gui/curses/gui-display.c:1943
msgid "<servers>"
msgstr "<serverů>"
-#: src/gui/curses/gui-display.c:1950
+#: src/gui/curses/gui-display.c:1955
msgid "(away)"
msgstr "(pryč)"
-#: src/gui/curses/gui-display.c:2084
+#: src/gui/curses/gui-display.c:2089
msgid "[not connected] "
msgstr "[nepřipojen] "
-#: src/gui/curses/gui-display.c:2094
+#: src/gui/curses/gui-display.c:2099
msgid "Act: "
msgstr "Aktivní: "
-#: src/gui/curses/gui-display.c:2182
+#: src/gui/curses/gui-display.c:2187
#, c-format
msgid "Lag: %.1f"
msgstr "Zpoždění: %.1f"
-#: src/gui/curses/gui-display.c:2198
+#: src/gui/curses/gui-display.c:2203
msgid "-MORE-"
msgstr "-VÍCE-"
-#: src/gui/curses/gui-display.c:2376
+#: src/gui/curses/gui-display.c:2381
msgid " [A] Accept"
msgstr " [A] Akceptovat"
-#: src/gui/curses/gui-display.c:2377 src/gui/curses/gui-display.c:2381
+#: src/gui/curses/gui-display.c:2382 src/gui/curses/gui-display.c:2386
msgid " [C] Cancel"
msgstr " [C] Storno"
-#: src/gui/curses/gui-display.c:2386
+#: src/gui/curses/gui-display.c:2391
msgid " [R] Remove"
msgstr " [R] Odebrat"
-#: src/gui/curses/gui-display.c:2390
+#: src/gui/curses/gui-display.c:2395
msgid " [P] Purge old DCC"
msgstr " [P] Pročistit staré DCC"
-#: src/gui/curses/gui-display.c:2391
+#: src/gui/curses/gui-display.c:2396
msgid " [Q] Close DCC view"
msgstr " [Q] Zavřít DCC pohled"
@@ -2322,11 +2322,11 @@ msgstr " [Q] Zavřít DCC pohled"
msgid "server"
msgstr "server"
-#: src/gui/gui-common.c:638
+#: src/gui/gui-common.c:639
msgid "Not enough memory for new line\n"
msgstr "Nedostatek paměti pro nový řádek\n"
-#: src/gui/gui-common.c:985
+#: src/gui/gui-common.c:986
msgid "Not enough memory for infobar message\n"
msgstr "Nedostatek paměti pro infobar zprávu\n"
@@ -2463,32 +2463,44 @@ msgid "switch active server on servers buffer"
msgstr "přepnout aktivní server na buffer serverů"
#: src/gui/gui-keyboard.c:111
+msgid "scroll to previous highlight in buffer"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:113
+msgid "scroll to next highlight in buffer"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:115
+msgid "scroll to first unread line in buffer"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:117
msgid "clear hotlist"
msgstr "vyčisti hotlist"
-#: src/gui/gui-keyboard.c:113
+#: src/gui/gui-keyboard.c:119
msgid "clear infobar"
msgstr "vyčisti infobar"
-#: src/gui/gui-keyboard.c:115
+#: src/gui/gui-keyboard.c:121
msgid "refresh screen"
msgstr "obnov obrazovku"
-#: src/gui/gui-keyboard.c:117
+#: src/gui/gui-keyboard.c:123
msgid "grab a key"
msgstr "zachytit klávesu"
-#: src/gui/gui-keyboard.c:428 src/common/command.c:1860
+#: src/gui/gui-keyboard.c:434 src/common/command.c:1860
#, c-format
msgid "%s unable to bind key \"%s\"\n"
msgstr "%s nemohu napojit kalávesu \"%s\"\n"
-#: src/gui/gui-keyboard.c:439
+#: src/gui/gui-keyboard.c:445
#, c-format
msgid "%s unable to bind key \"%s\" (invalid function name: \"%s\")\n"
msgstr "%s nemohu napojit kalávesu \"%s\" (nevalidní jméno funkce: \"%s\")\n"
-#: src/gui/gui-keyboard.c:452
+#: src/gui/gui-keyboard.c:458
#, c-format
msgid "%s not enough memory for key binding\n"
msgstr "%s nedostatek paměti pro klávesovou zkratku\n"
diff --git a/po/es.po b/po/es.po
index 024ef4d60..b0fa77d6e 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.7-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2005-11-19 23:06+0100\n"
+"POT-Creation-Date: 2005-11-20 19:02+0100\n"
"PO-Revision-Date: 2005-11-20 14:24+0100\n"
"Last-Translator: Roberto Gonzlez Cardenete <robert.glez@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -2270,12 +2270,12 @@ msgstr ""
"archivo cuando se actualizan las opciones.\n"
"#\n"
-#: src/gui/curses/gui-input.c:331
+#: src/gui/curses/gui-input.c:334
#, c-format
msgid "Day changed to %s\n"
msgstr "Da cambiado a %s\n"
-#: src/gui/curses/gui-input.c:414
+#: src/gui/curses/gui-input.c:417
#, c-format
msgid "%s lag is high, disconnecting from server...\n"
msgstr "%s el lag (retraso) es alto, desconectando del servidor...\n"
@@ -2296,48 +2296,48 @@ msgstr "MB"
msgid "Gb"
msgstr "GB"
-#: src/gui/curses/gui-display.c:1938
+#: src/gui/curses/gui-display.c:1943
msgid "<servers>"
msgstr "<servidores>"
-#: src/gui/curses/gui-display.c:1950
+#: src/gui/curses/gui-display.c:1955
msgid "(away)"
msgstr "(ausente)"
-#: src/gui/curses/gui-display.c:2084
+#: src/gui/curses/gui-display.c:2089
msgid "[not connected] "
msgstr "[no conectado] "
-#: src/gui/curses/gui-display.c:2094
+#: src/gui/curses/gui-display.c:2099
msgid "Act: "
msgstr "Act: "
-#: src/gui/curses/gui-display.c:2182
+#: src/gui/curses/gui-display.c:2187
#, c-format
msgid "Lag: %.1f"
msgstr "Lag: %.1f"
-#: src/gui/curses/gui-display.c:2198
+#: src/gui/curses/gui-display.c:2203
msgid "-MORE-"
msgstr "-MS-"
-#: src/gui/curses/gui-display.c:2376
+#: src/gui/curses/gui-display.c:2381
msgid " [A] Accept"
msgstr " [A] Aceptar"
-#: src/gui/curses/gui-display.c:2377 src/gui/curses/gui-display.c:2381
+#: src/gui/curses/gui-display.c:2382 src/gui/curses/gui-display.c:2386
msgid " [C] Cancel"
msgstr " [C] Cancelar"
-#: src/gui/curses/gui-display.c:2386
+#: src/gui/curses/gui-display.c:2391
msgid " [R] Remove"
msgstr " [R] Eliminar"
-#: src/gui/curses/gui-display.c:2390
+#: src/gui/curses/gui-display.c:2395
msgid " [P] Purge old DCC"
msgstr " [P] Purgar los viejos DCC"
-#: src/gui/curses/gui-display.c:2391
+#: src/gui/curses/gui-display.c:2396
msgid " [Q] Close DCC view"
msgstr " [Q] Cerrar la vista DCC"
@@ -2345,11 +2345,11 @@ msgstr " [Q] Cerrar la vista DCC"
msgid "server"
msgstr "servidor"
-#: src/gui/gui-common.c:638
+#: src/gui/gui-common.c:639
msgid "Not enough memory for new line\n"
msgstr "No hay suficiente memoria para una nueva lnea\n"
-#: src/gui/gui-common.c:985
+#: src/gui/gui-common.c:986
msgid "Not enough memory for infobar message\n"
msgstr "No hay suficiente memoria para el mensaje de la barra de informacin\n"
@@ -2486,34 +2486,46 @@ msgid "switch active server on servers buffer"
msgstr "seleccionar servidor activo en el bfer de servidores"
#: src/gui/gui-keyboard.c:111
+msgid "scroll to previous highlight in buffer"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:113
+msgid "scroll to next highlight in buffer"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:115
+msgid "scroll to first unread line in buffer"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:117
msgid "clear hotlist"
msgstr "limpiar hotlist"
-#: src/gui/gui-keyboard.c:113
+#: src/gui/gui-keyboard.c:119
msgid "clear infobar"
msgstr "limpiar barra de informacin"
-#: src/gui/gui-keyboard.c:115
+#: src/gui/gui-keyboard.c:121
msgid "refresh screen"
msgstr "recargar la pantalla"
-#: src/gui/gui-keyboard.c:117
+#: src/gui/gui-keyboard.c:123
msgid "grab a key"
msgstr "capturar una clave"
-#: src/gui/gui-keyboard.c:428 src/common/command.c:1860
+#: src/gui/gui-keyboard.c:434 src/common/command.c:1860
#, c-format
msgid "%s unable to bind key \"%s\"\n"
msgstr "%s No ha sido posible atar la clave \"%s\"\n"
-#: src/gui/gui-keyboard.c:439
+#: src/gui/gui-keyboard.c:445
#, c-format
msgid "%s unable to bind key \"%s\" (invalid function name: \"%s\")\n"
msgstr ""
"%s No ha sido posible atar la clave \"%s\" (nombre de funcin invlido: \"%s"
"\")\n"
-#: src/gui/gui-keyboard.c:452
+#: src/gui/gui-keyboard.c:458
#, c-format
msgid "%s not enough memory for key binding\n"
msgstr "%s no hay suficiente memoria para atar la clave\n"
diff --git a/po/fr.po b/po/fr.po
index 9cd0913bb..d6dca4ef4 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.7-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2005-11-19 23:06+0100\n"
-"PO-Revision-Date: 2005-11-19 11:36+0100\n"
+"POT-Creation-Date: 2005-11-20 19:02+0100\n"
+"PO-Revision-Date: 2005-11-20 19:03+0100\n"
"Last-Translator: FlashCode <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n"
@@ -2267,12 +2267,12 @@ msgstr ""
"des options sont modifies.\n"
"#\n"
-#: src/gui/curses/gui-input.c:331
+#: src/gui/curses/gui-input.c:334
#, c-format
msgid "Day changed to %s\n"
msgstr "Jour chang: %s\n"
-#: src/gui/curses/gui-input.c:414
+#: src/gui/curses/gui-input.c:417
#, c-format
msgid "%s lag is high, disconnecting from server...\n"
msgstr "%s le lag est lev, dconnexion du serveur...\n"
@@ -2293,48 +2293,48 @@ msgstr "Mo"
msgid "Gb"
msgstr "Go"
-#: src/gui/curses/gui-display.c:1938
+#: src/gui/curses/gui-display.c:1943
msgid "<servers>"
msgstr "<serveurs>"
-#: src/gui/curses/gui-display.c:1950
+#: src/gui/curses/gui-display.c:1955
msgid "(away)"
msgstr "(absent)"
-#: src/gui/curses/gui-display.c:2084
+#: src/gui/curses/gui-display.c:2089
msgid "[not connected] "
msgstr "[non connect] "
-#: src/gui/curses/gui-display.c:2094
+#: src/gui/curses/gui-display.c:2099
msgid "Act: "
msgstr "Act: "
-#: src/gui/curses/gui-display.c:2182
+#: src/gui/curses/gui-display.c:2187
#, c-format
msgid "Lag: %.1f"
msgstr "Lag: %.1f"
-#: src/gui/curses/gui-display.c:2198
+#: src/gui/curses/gui-display.c:2203
msgid "-MORE-"
msgstr "-PLUS-"
-#: src/gui/curses/gui-display.c:2376
+#: src/gui/curses/gui-display.c:2381
msgid " [A] Accept"
msgstr " [A] Accepter"
-#: src/gui/curses/gui-display.c:2377 src/gui/curses/gui-display.c:2381
+#: src/gui/curses/gui-display.c:2382 src/gui/curses/gui-display.c:2386
msgid " [C] Cancel"
msgstr " [C] Annuler"
-#: src/gui/curses/gui-display.c:2386
+#: src/gui/curses/gui-display.c:2391
msgid " [R] Remove"
msgstr " [R] Retirer"
-#: src/gui/curses/gui-display.c:2390
+#: src/gui/curses/gui-display.c:2395
msgid " [P] Purge old DCC"
msgstr " [P] Purger anciens DCC"
-#: src/gui/curses/gui-display.c:2391
+#: src/gui/curses/gui-display.c:2396
msgid " [Q] Close DCC view"
msgstr " [Q] Fermer la vue DCC"
@@ -2342,11 +2342,11 @@ msgstr " [Q] Fermer la vue DCC"
msgid "server"
msgstr "serveur"
-#: src/gui/gui-common.c:638
+#: src/gui/gui-common.c:639
msgid "Not enough memory for new line\n"
msgstr "Pas assez de mmoire pour une nouvelle ligne !\n"
-#: src/gui/gui-common.c:985
+#: src/gui/gui-common.c:986
msgid "Not enough memory for infobar message\n"
msgstr "Pas assez de mmoire pour un message de la barre d'infos\n"
@@ -2483,33 +2483,45 @@ msgid "switch active server on servers buffer"
msgstr "bascule de serveur actif sur le tampon des serveurs"
#: src/gui/gui-keyboard.c:111
+msgid "scroll to previous highlight in buffer"
+msgstr "scroller jusqu'au highlight prcdent du tampon"
+
+#: src/gui/gui-keyboard.c:113
+msgid "scroll to next highlight in buffer"
+msgstr "scroller jusqu'au highlight suivant du tampon"
+
+#: src/gui/gui-keyboard.c:115
+msgid "scroll to first unread line in buffer"
+msgstr "scroller jusqu' la premire ligne non lue du tampon"
+
+#: src/gui/gui-keyboard.c:117
msgid "clear hotlist"
msgstr "effacer la liste d'activit"
-#: src/gui/gui-keyboard.c:113
+#: src/gui/gui-keyboard.c:119
msgid "clear infobar"
msgstr "effacer la barre d'infos"
-#: src/gui/gui-keyboard.c:115
+#: src/gui/gui-keyboard.c:121
msgid "refresh screen"
msgstr "rafraichir l'cran"
-#: src/gui/gui-keyboard.c:117
+#: src/gui/gui-keyboard.c:123
msgid "grab a key"
msgstr "capturer une touche"
-#: src/gui/gui-keyboard.c:428 src/common/command.c:1860
+#: src/gui/gui-keyboard.c:434 src/common/command.c:1860
#, c-format
msgid "%s unable to bind key \"%s\"\n"
msgstr "%s impossible de crer la touche \"%s\"\n"
-#: src/gui/gui-keyboard.c:439
+#: src/gui/gui-keyboard.c:445
#, c-format
msgid "%s unable to bind key \"%s\" (invalid function name: \"%s\")\n"
msgstr ""
"%s impossible de crer la touche \"%s\" (nom fonction incorrect: \"%s\")\n"
-#: src/gui/gui-keyboard.c:452
+#: src/gui/gui-keyboard.c:458
#, c-format
msgid "%s not enough memory for key binding\n"
msgstr "%s pas assez de mmoire pour la touche\n"
diff --git a/po/weechat.pot b/po/weechat.pot
index da1535bb8..e1dae8196 100644
--- a/po/weechat.pot
+++ b/po/weechat.pot
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2005-11-19 23:06+0100\n"
+"POT-Creation-Date: 2005-11-20 19:02+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -2107,12 +2107,12 @@ msgid ""
"#\n"
msgstr ""
-#: src/gui/curses/gui-input.c:331
+#: src/gui/curses/gui-input.c:334
#, c-format
msgid "Day changed to %s\n"
msgstr ""
-#: src/gui/curses/gui-input.c:414
+#: src/gui/curses/gui-input.c:417
#, c-format
msgid "%s lag is high, disconnecting from server...\n"
msgstr ""
@@ -2133,48 +2133,48 @@ msgstr ""
msgid "Gb"
msgstr ""
-#: src/gui/curses/gui-display.c:1938
+#: src/gui/curses/gui-display.c:1943
msgid "<servers>"
msgstr ""
-#: src/gui/curses/gui-display.c:1950
+#: src/gui/curses/gui-display.c:1955
msgid "(away)"
msgstr ""
-#: src/gui/curses/gui-display.c:2084
+#: src/gui/curses/gui-display.c:2089
msgid "[not connected] "
msgstr ""
-#: src/gui/curses/gui-display.c:2094
+#: src/gui/curses/gui-display.c:2099
msgid "Act: "
msgstr ""
-#: src/gui/curses/gui-display.c:2182
+#: src/gui/curses/gui-display.c:2187
#, c-format
msgid "Lag: %.1f"
msgstr ""
-#: src/gui/curses/gui-display.c:2198
+#: src/gui/curses/gui-display.c:2203
msgid "-MORE-"
msgstr ""
-#: src/gui/curses/gui-display.c:2376
+#: src/gui/curses/gui-display.c:2381
msgid " [A] Accept"
msgstr ""
-#: src/gui/curses/gui-display.c:2377 src/gui/curses/gui-display.c:2381
+#: src/gui/curses/gui-display.c:2382 src/gui/curses/gui-display.c:2386
msgid " [C] Cancel"
msgstr ""
-#: src/gui/curses/gui-display.c:2386
+#: src/gui/curses/gui-display.c:2391
msgid " [R] Remove"
msgstr ""
-#: src/gui/curses/gui-display.c:2390
+#: src/gui/curses/gui-display.c:2395
msgid " [P] Purge old DCC"
msgstr ""
-#: src/gui/curses/gui-display.c:2391
+#: src/gui/curses/gui-display.c:2396
msgid " [Q] Close DCC view"
msgstr ""
@@ -2182,11 +2182,11 @@ msgstr ""
msgid "server"
msgstr ""
-#: src/gui/gui-common.c:638
+#: src/gui/gui-common.c:639
msgid "Not enough memory for new line\n"
msgstr ""
-#: src/gui/gui-common.c:985
+#: src/gui/gui-common.c:986
msgid "Not enough memory for infobar message\n"
msgstr ""
@@ -2323,32 +2323,44 @@ msgid "switch active server on servers buffer"
msgstr ""
#: src/gui/gui-keyboard.c:111
-msgid "clear hotlist"
+msgid "scroll to previous highlight in buffer"
msgstr ""
#: src/gui/gui-keyboard.c:113
-msgid "clear infobar"
+msgid "scroll to next highlight in buffer"
msgstr ""
#: src/gui/gui-keyboard.c:115
-msgid "refresh screen"
+msgid "scroll to first unread line in buffer"
msgstr ""
#: src/gui/gui-keyboard.c:117
+msgid "clear hotlist"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:119
+msgid "clear infobar"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:121
+msgid "refresh screen"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:123
msgid "grab a key"
msgstr ""
-#: src/gui/gui-keyboard.c:428 src/common/command.c:1860
+#: src/gui/gui-keyboard.c:434 src/common/command.c:1860
#, c-format
msgid "%s unable to bind key \"%s\"\n"
msgstr ""
-#: src/gui/gui-keyboard.c:439
+#: src/gui/gui-keyboard.c:445
#, c-format
msgid "%s unable to bind key \"%s\" (invalid function name: \"%s\")\n"
msgstr ""
-#: src/gui/gui-keyboard.c:452
+#: src/gui/gui-keyboard.c:458
#, c-format
msgid "%s not enough memory for key binding\n"
msgstr ""
diff --git a/src/gui/curses/gui-display.c b/src/gui/curses/gui-display.c
index b5514afdd..487b2348d 100644
--- a/src/gui/curses/gui-display.c
+++ b/src/gui/curses/gui-display.c
@@ -1666,15 +1666,20 @@ gui_draw_buffer_chat (t_gui_buffer *buffer, int erase)
ptr_line = ptr_line->next_line;
}
+ ptr_win->scroll = (ptr_win->win_chat_cursor_y > ptr_win->win_chat_height - 1);
+
/* check if last line of buffer is entirely displayed and scrolling */
- /* if so, disable scroll (to remove status bar indicator) */
- if (!ptr_line && ptr_win->start_line)
+ /* if so, disable scroll indicator */
+ if (!ptr_line && ptr_win->scroll)
{
if (count == gui_display_line (ptr_win, ptr_win->buffer->last_line, 0, 1))
- {
- ptr_win->start_line = NULL;
- ptr_win->start_line_pos = 0;
- }
+ ptr_win->scroll = 0;
+ }
+
+ if (!ptr_win->scroll && (ptr_win->start_line == ptr_win->buffer->lines))
+ {
+ ptr_win->start_line = NULL;
+ ptr_win->start_line_pos = 0;
}
/* cursor is below end line of chat window? */
@@ -2200,7 +2205,7 @@ gui_draw_buffer_status (t_gui_buffer *buffer, int erase)
if (x < 0)
x = 0;
gui_window_set_weechat_color (ptr_win->win_status, COLOR_WIN_STATUS_MORE);
- if (ptr_win->start_line)
+ if (ptr_win->scroll)
mvwprintw (ptr_win->win_status, 0, x, "%s", more);
else
{
diff --git a/src/gui/curses/gui-input.c b/src/gui/curses/gui-input.c
index 66c675d61..520179a23 100644
--- a/src/gui/curses/gui-input.c
+++ b/src/gui/curses/gui-input.c
@@ -104,8 +104,11 @@ gui_input_default_key_bindings ()
gui_key_bind ( /* m-j,m-s */ "meta-jmeta-s", "jump_server");
gui_key_bind ( /* m-j,m-x */ "meta-jmeta-x", "jump_next_server");
gui_key_bind ( /* m-k */ "meta-k", "grab_key");
+ gui_key_bind ( /* m-n */ "meta-n", "scroll_next_highlight");
+ gui_key_bind ( /* m-p */ "meta-p", "scroll_previous_highlight");
gui_key_bind ( /* m-r */ "meta-r", "delete_line");
gui_key_bind ( /* m-s */ "meta-s", "switch_server");
+ gui_key_bind ( /* m-u */ "meta-u", "scroll_unread");
/* keys binded with commands */
gui_key_bind ( /* m-left */ "meta-meta2-D", "/buffer -1");
diff --git a/src/gui/gui-action.c b/src/gui/gui-action.c
index 14ec2b90c..772a2f359 100644
--- a/src/gui/gui-action.c
+++ b/src/gui/gui-action.c
@@ -1050,6 +1050,92 @@ gui_action_switch_server (t_gui_window *window)
}
/*
+ * gui_action_scroll_previous_highlight: scroll to previous highlight
+ */
+
+void
+gui_action_scroll_previous_highlight (t_gui_window *window)
+{
+ t_gui_line *ptr_line;
+
+ if (!window->buffer->dcc)
+ {
+ if (window->buffer->lines)
+ {
+ ptr_line = (window->start_line) ?
+ window->start_line->prev_line : window->buffer->last_line->prev_line;
+ while (ptr_line)
+ {
+ if (ptr_line->line_with_highlight)
+ {
+ window->start_line = ptr_line;
+ window->start_line_pos = 0;
+ window->first_line_displayed =
+ (window->start_line == window->buffer->lines);
+ gui_draw_buffer_chat (window->buffer, 1);
+ gui_draw_buffer_status (window->buffer, 0);
+ return;
+ }
+ ptr_line = ptr_line->prev_line;
+ }
+ }
+ }
+}
+
+/*
+ * gui_action_scroll_next_highlight: scroll to next highlight
+ */
+
+void
+gui_action_scroll_next_highlight (t_gui_window *window)
+{
+ t_gui_line *ptr_line;
+
+ if (!window->buffer->dcc)
+ {
+ if (window->buffer->lines)
+ {
+ ptr_line = (window->start_line) ?
+ window->start_line->next_line : window->buffer->lines->next_line;
+ while (ptr_line)
+ {
+ if (ptr_line->line_with_highlight)
+ {
+ window->start_line = ptr_line;
+ window->start_line_pos = 0;
+ window->first_line_displayed =
+ (window->start_line == window->buffer->lines);
+ gui_draw_buffer_chat (window->buffer, 1);
+ gui_draw_buffer_status (window->buffer, 0);
+ return;
+ }
+ ptr_line = ptr_line->next_line;
+ }
+ }
+ }
+}
+
+/*
+ * gui_action_scroll_unread: scroll to first unread line of buffer
+ */
+
+void
+gui_action_scroll_unread (t_gui_window *window)
+{
+ if (!window->buffer->dcc &&
+ window->buffer->last_read_line &&
+ window->buffer->last_read_line != window->buffer->last_line)
+ {
+ window->start_line = window->buffer->last_read_line->next_line;
+ window->start_line_pos = 0;
+ window->first_line_displayed =
+ (window->start_line == window->buffer->lines);
+ gui_draw_buffer_chat (window->buffer, 1);
+ gui_draw_buffer_status (window->buffer, 0);
+ }
+}
+
+/*
* gui_action_hotlist_clear: clear hotlist
*/
diff --git a/src/gui/gui-common.c b/src/gui/gui-common.c
index 6932173c2..b9e4e312c 100644
--- a/src/gui/gui-common.c
+++ b/src/gui/gui-common.c
@@ -244,6 +244,7 @@ gui_window_new (t_gui_window *parent, int x, int y, int width, int height,
new_window->first_line_displayed = 0;
new_window->start_line = NULL;
new_window->start_line_pos = 0;
+ new_window->scroll = 0;
new_window->ptr_tree = ptr_leaf;
ptr_leaf->window = new_window;
diff --git a/src/gui/gui-keyboard.c b/src/gui/gui-keyboard.c
index 2d3431899..a3c5c3329 100644
--- a/src/gui/gui-keyboard.c
+++ b/src/gui/gui-keyboard.c
@@ -41,79 +41,85 @@ int gui_key_grab = 0;
int gui_key_grab_count = 0;
t_gui_key_function gui_key_functions[] =
-{ { "return", gui_action_return,
+{ { "return", gui_action_return,
N_("terminate line") },
- { "tab", gui_action_tab,
+ { "tab", gui_action_tab,
N_("complete word") },
- { "backspace", gui_action_backspace,
+ { "backspace", gui_action_backspace,
N_("delete previous char") },
- { "delete", gui_action_delete,
+ { "delete", gui_action_delete,
N_("delete next char") },
- { "delete_end_line", gui_action_delete_end_of_line,
+ { "delete_end_line", gui_action_delete_end_of_line,
N_("delete until end of line") },
- { "delete_beginning_line", gui_action_delete_begin_of_line,
+ { "delete_beginning_line", gui_action_delete_begin_of_line,
N_("delete until beginning of line") },
- { "delete_line", gui_action_delete_line,
+ { "delete_line", gui_action_delete_line,
N_("delete entire line") },
- { "delete_previous_word", gui_action_delete_previous_word,
+ { "delete_previous_word", gui_action_delete_previous_word,
N_("delete previous word") },
- { "delete_next_word", gui_action_delete_next_word,
+ { "delete_next_word", gui_action_delete_next_word,
N_("delete next word") },
- { "clipboard_paste", gui_action_clipboard_paste,
+ { "clipboard_paste", gui_action_clipboard_paste,
N_("paste current clipboard content") },
- { "transpose_chars", gui_action_transpose_chars,
+ { "transpose_chars", gui_action_transpose_chars,
N_("transpose chars") },
- { "home", gui_action_home,
+ { "home", gui_action_home,
N_("go to beginning of line") },
- { "end", gui_action_end,
+ { "end", gui_action_end,
N_("go to end of line") },
- { "left", gui_action_left,
+ { "left", gui_action_left,
N_("move one char left") },
- { "previous_word", gui_action_previous_word,
+ { "previous_word", gui_action_previous_word,
N_("move to previous word") },
- { "right", gui_action_right,
+ { "right", gui_action_right,
N_("move one char right") },
- { "next_word", gui_action_next_word,
+ { "next_word", gui_action_next_word,
N_("move to next word") },
- { "up", gui_action_up,
+ { "up", gui_action_up,
N_("call previous command in history") },
- { "up_global", gui_action_up_global,
+ { "up_global", gui_action_up_global,
N_("call previous command in global history") },
- { "down", gui_action_down,
+ { "down", gui_action_down,
N_("call next command in history") },
- { "down_global", gui_action_down_global,
+ { "down_global", gui_action_down_global,
N_("call next command in global history") },
- { "page_up", gui_action_page_up,
+ { "page_up", gui_action_page_up,
N_("scroll one page up") },
- { "page_down", gui_action_page_down,
+ { "page_down", gui_action_page_down,
N_("scroll one page down") },
- { "nick_beginning", gui_action_nick_beginning,
+ { "nick_beginning", gui_action_nick_beginning,
N_("display beginning of nicklist") },
- { "nick_end", gui_action_nick_end,
+ { "nick_end", gui_action_nick_end,
N_("display end of nicklist") },
- { "nick_page_up", gui_action_nick_page_up,
+ { "nick_page_up", gui_action_nick_page_up,
N_("scroll nicklist one page up") },
- { "nick_page_down", gui_action_nick_page_down,
+ { "nick_page_down", gui_action_nick_page_down,
N_("scroll nicklist one page down") },
- { "jump_smart", gui_action_jump_smart,
+ { "jump_smart", gui_action_jump_smart,
N_("jump to buffer with activity") },
- { "jump_dcc", gui_action_jump_dcc,
+ { "jump_dcc", gui_action_jump_dcc,
N_("jump to DCC buffer") },
- { "jump_last_buffer", gui_action_jump_last_buffer,
+ { "jump_last_buffer", gui_action_jump_last_buffer,
N_("jump to last buffer") },
- { "jump_server", gui_action_jump_server,
+ { "jump_server", gui_action_jump_server,
N_("jump to server buffer") },
- { "jump_next_server", gui_action_jump_next_server,
+ { "jump_next_server", gui_action_jump_next_server,
N_("jump to next server") },
- { "switch_server", gui_action_switch_server,
+ { "switch_server", gui_action_switch_server,
N_("switch active server on servers buffer") },
- { "hotlist_clear", gui_action_hotlist_clear,
+ { "scroll_previous_highlight", gui_action_scroll_previous_highlight,
+ N_("scroll to previous highlight in buffer") },
+ { "scroll_next_highlight", gui_action_scroll_next_highlight,
+ N_("scroll to next highlight in buffer") },
+ { "scroll_unread", gui_action_scroll_unread,
+ N_("scroll to first unread line in buffer") },
+ { "hotlist_clear", gui_action_hotlist_clear,
N_("clear hotlist") },
- { "infobar_clear", gui_action_infobar_clear,
+ { "infobar_clear", gui_action_infobar_clear,
N_("clear infobar") },
- { "refresh", gui_action_refresh_screen,
+ { "refresh", gui_action_refresh_screen,
N_("refresh screen") },
- { "grab_key", gui_action_grab_key,
+ { "grab_key", gui_action_grab_key,
N_("grab a key") },
{ NULL, NULL, NULL }
};
diff --git a/src/gui/gui.h b/src/gui/gui.h
index 4ffb20c80..ef7ebbe63 100644
--- a/src/gui/gui.h
+++ b/src/gui/gui.h
@@ -330,7 +330,7 @@ struct t_gui_window
int first_line_displayed; /* = 1 if first line is displayed */
t_gui_line *start_line; /* pointer to line if scrolling */
int start_line_pos; /* position in first line displayed */
-
+ int scroll; /* = 1 if "MORE" should be displayed */
t_gui_window_tree *ptr_tree; /* pointer to leaf in windows tree */
t_gui_window *prev_window; /* link to previous window */
@@ -465,6 +465,9 @@ extern void gui_action_jump_last_buffer (t_gui_window *);
extern void gui_action_jump_server (t_gui_window *);
extern void gui_action_jump_next_server (t_gui_window *);
extern void gui_action_switch_server (t_gui_window *);
+extern void gui_action_scroll_previous_highlight (t_gui_window *);
+extern void gui_action_scroll_next_highlight (t_gui_window *);
+extern void gui_action_scroll_unread (t_gui_window *);
extern void gui_action_hotlist_clear (t_gui_window *);
extern void gui_action_infobar_clear (t_gui_window *);
extern void gui_action_refresh_screen ();
diff --git a/weechat/ChangeLog b/weechat/ChangeLog
index 14883cddc..94bedd51c 100644
--- a/weechat/ChangeLog
+++ b/weechat/ChangeLog
@@ -1,12 +1,13 @@
WeeChat - Wee Enhanced Environment for Chat
===========================================
-ChangeLog - 2005-11-19
+ChangeLog - 2005-11-20
Version 0.1.7 (under dev!):
+ * added new keys for scrolling to previous/next highlight (alt-P / alt-N)
* added "read marker": an indicator for first unread line in a
- server or channel buffer
+ server or channel buffer (alt-U to scroll to marker)
* new window maganement: custom size for windows, auto resize when
terminal is resized
* fixed infinite loop when resizing term to small size
diff --git a/weechat/doc/weechat_doc_en.texi b/weechat/doc/weechat_doc_en.texi
index e50ae71da..e860bfac8 100644
--- a/weechat/doc/weechat_doc_en.texi
+++ b/weechat/doc/weechat_doc_en.texi
@@ -878,6 +878,12 @@ Switch to buffer by number@*
@item Alt + K
Grab a key
@*
+@item Alt + N
+Scroll to next highlight@*
+@*
+@item Alt + P
+Scroll to previous highlight@*
+@*
@item Alt + R
Delete entire line@*
@*
@@ -885,6 +891,9 @@ Delete entire line@*
Switch server on servers buffer@*
(if option ``look_one_server_buffer'' is enabled)@*
@*
+@item Alt + U
+Scroll to first unread line in buffer@*
+@*
@item Alt + PageUp / Alt + PageDown / Alt + Home / Alt + End
Scroll nicklist@*
@*
diff --git a/weechat/doc/weechat_doc_es.texi b/weechat/doc/weechat_doc_es.texi
index c176fb70d..45badbc35 100644
--- a/weechat/doc/weechat_doc_es.texi
+++ b/weechat/doc/weechat_doc_es.texi
@@ -878,6 +878,12 @@ Saltar a la memoria temporal con ese n@'umero@*
@item Alt + K
Grab a key
@*
+@item Alt + N
+Scroll to next highlight@*
+@*
+@item Alt + P
+Scroll to previous highlight@*
+@*
@item Alt + R
Delete entire line@*
@*
@@ -885,6 +891,9 @@ Delete entire line@*
Switch server on servers buffer@*
(if option ``look_one_server_buffer'' is enabled)@*
@*
+@item Alt + U
+Scroll to first unread line in buffer@*
+@*
@item Alt + PageUp / Alt + PageDown / Alt + Home / Alt + End
Scroll nicklist@*
@*
diff --git a/weechat/doc/weechat_doc_fr.texi b/weechat/doc/weechat_doc_fr.texi
index c784ff1c2..7b46fee95 100644
--- a/weechat/doc/weechat_doc_fr.texi
+++ b/weechat/doc/weechat_doc_fr.texi
@@ -867,17 +867,23 @@ Sauter au dernier tampon@*
@item Alt + J puis Alt + S
Sauter au tampon du serveur@*
@*
+@item Alt + J then Alt + X
+Sauter au premier canal du serveur suivant (ou tampon du serveur si aucun canal ouvert)@*
+@*
@item Alt + chiffre (1-9)
Sauter au tampon avec ce num@'ero@*
@*
-@item Alt + J then Alt + X
-Sauter au premier canal du serveur suivant (ou tampon du serveur si aucun canal ouvert)@*
+@item Alt + J puis nombre (01-99)
+Sauter au tampon avec ce num@'ero@*
@*
@item Alt + K
Capturer une touche
@*
-@item Alt + J puis nombre (01-99)
-Sauter au tampon avec ce num@'ero@*
+@item Alt + N
+Se positionner sur le highlight suivant@*
+@*
+@item Alt + P
+Se positionner sur le highlight pr@'ec@'edent@*
@*
@item Alt + R
Effacer la ligne enti@`ere@*
@@ -886,6 +892,9 @@ Effacer la ligne enti@`ere@*
Changer de serveur sur le tampon des serveurs@*
(si l'option ``look_one_server_buffer'' est activ@'ee)@*
@*
+@item Alt + U
+Se positionner sur la premi@`ere ligne non lue du tampon@*
+@*
@item Alt + PageUp / Alt + PageDown / Alt + Home / Alt + End
Faire d@'efiler la liste des pseudos@*
@*
diff --git a/weechat/doc/weechat_doc_pt.texi b/weechat/doc/weechat_doc_pt.texi
index ce9139dc4..9857b2d5b 100644
--- a/weechat/doc/weechat_doc_pt.texi
+++ b/weechat/doc/weechat_doc_pt.texi
@@ -876,6 +876,12 @@ Comute ao amortecedor pelo n@'umero@*
@item Alt + K
Grab a key
@*
+@item Alt + N
+Scroll to next highlight@*
+@*
+@item Alt + P
+Scroll to previous highlight@*
+@*
@item Alt + R
Delete entire line@*
@*
@@ -883,6 +889,9 @@ Delete entire line@*
Switch server on servers buffer@*
(if option ``look_one_server_buffer'' is enabled)@*
@*
+@item Alt + U
+Scroll to first unread line in buffer@*
+@*
@item Alt + PageUp / Alt + PageDown / Alt + Home / Alt + End
Scroll nicklist@*
@*
diff --git a/weechat/po/cs.po b/weechat/po/cs.po
index 146d9f903..7547d5569 100644
--- a/weechat/po/cs.po
+++ b/weechat/po/cs.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.7-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2005-11-19 23:06+0100\n"
+"POT-Creation-Date: 2005-11-20 19:02+0100\n"
"PO-Revision-Date: 2005-11-19 11:36+0100\n"
"Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -2247,12 +2247,12 @@ msgstr ""
"tento soubor při aktualizaci nastavení.\n"
"#\n"
-#: src/gui/curses/gui-input.c:331
+#: src/gui/curses/gui-input.c:334
#, c-format
msgid "Day changed to %s\n"
msgstr "Změnil se den na %s\n"
-#: src/gui/curses/gui-input.c:414
+#: src/gui/curses/gui-input.c:417
#, c-format
msgid "%s lag is high, disconnecting from server...\n"
msgstr "%s zpoždění je veliké, odpojuji se od serveru...\n"
@@ -2273,48 +2273,48 @@ msgstr "Mb"
msgid "Gb"
msgstr "Gb"
-#: src/gui/curses/gui-display.c:1938
+#: src/gui/curses/gui-display.c:1943
msgid "<servers>"
msgstr "<serverů>"
-#: src/gui/curses/gui-display.c:1950
+#: src/gui/curses/gui-display.c:1955
msgid "(away)"
msgstr "(pryč)"
-#: src/gui/curses/gui-display.c:2084
+#: src/gui/curses/gui-display.c:2089
msgid "[not connected] "
msgstr "[nepřipojen] "
-#: src/gui/curses/gui-display.c:2094
+#: src/gui/curses/gui-display.c:2099
msgid "Act: "
msgstr "Aktivní: "
-#: src/gui/curses/gui-display.c:2182
+#: src/gui/curses/gui-display.c:2187
#, c-format
msgid "Lag: %.1f"
msgstr "Zpoždění: %.1f"
-#: src/gui/curses/gui-display.c:2198
+#: src/gui/curses/gui-display.c:2203
msgid "-MORE-"
msgstr "-VÍCE-"
-#: src/gui/curses/gui-display.c:2376
+#: src/gui/curses/gui-display.c:2381
msgid " [A] Accept"
msgstr " [A] Akceptovat"
-#: src/gui/curses/gui-display.c:2377 src/gui/curses/gui-display.c:2381
+#: src/gui/curses/gui-display.c:2382 src/gui/curses/gui-display.c:2386
msgid " [C] Cancel"
msgstr " [C] Storno"
-#: src/gui/curses/gui-display.c:2386
+#: src/gui/curses/gui-display.c:2391
msgid " [R] Remove"
msgstr " [R] Odebrat"
-#: src/gui/curses/gui-display.c:2390
+#: src/gui/curses/gui-display.c:2395
msgid " [P] Purge old DCC"
msgstr " [P] Pročistit staré DCC"
-#: src/gui/curses/gui-display.c:2391
+#: src/gui/curses/gui-display.c:2396
msgid " [Q] Close DCC view"
msgstr " [Q] Zavřít DCC pohled"
@@ -2322,11 +2322,11 @@ msgstr " [Q] Zavřít DCC pohled"
msgid "server"
msgstr "server"
-#: src/gui/gui-common.c:638
+#: src/gui/gui-common.c:639
msgid "Not enough memory for new line\n"
msgstr "Nedostatek paměti pro nový řádek\n"
-#: src/gui/gui-common.c:985
+#: src/gui/gui-common.c:986
msgid "Not enough memory for infobar message\n"
msgstr "Nedostatek paměti pro infobar zprávu\n"
@@ -2463,32 +2463,44 @@ msgid "switch active server on servers buffer"
msgstr "přepnout aktivní server na buffer serverů"
#: src/gui/gui-keyboard.c:111
+msgid "scroll to previous highlight in buffer"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:113
+msgid "scroll to next highlight in buffer"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:115
+msgid "scroll to first unread line in buffer"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:117
msgid "clear hotlist"
msgstr "vyčisti hotlist"
-#: src/gui/gui-keyboard.c:113
+#: src/gui/gui-keyboard.c:119
msgid "clear infobar"
msgstr "vyčisti infobar"
-#: src/gui/gui-keyboard.c:115
+#: src/gui/gui-keyboard.c:121
msgid "refresh screen"
msgstr "obnov obrazovku"
-#: src/gui/gui-keyboard.c:117
+#: src/gui/gui-keyboard.c:123
msgid "grab a key"
msgstr "zachytit klávesu"
-#: src/gui/gui-keyboard.c:428 src/common/command.c:1860
+#: src/gui/gui-keyboard.c:434 src/common/command.c:1860
#, c-format
msgid "%s unable to bind key \"%s\"\n"
msgstr "%s nemohu napojit kalávesu \"%s\"\n"
-#: src/gui/gui-keyboard.c:439
+#: src/gui/gui-keyboard.c:445
#, c-format
msgid "%s unable to bind key \"%s\" (invalid function name: \"%s\")\n"
msgstr "%s nemohu napojit kalávesu \"%s\" (nevalidní jméno funkce: \"%s\")\n"
-#: src/gui/gui-keyboard.c:452
+#: src/gui/gui-keyboard.c:458
#, c-format
msgid "%s not enough memory for key binding\n"
msgstr "%s nedostatek paměti pro klávesovou zkratku\n"
diff --git a/weechat/po/es.po b/weechat/po/es.po
index 024ef4d60..b0fa77d6e 100644
--- a/weechat/po/es.po
+++ b/weechat/po/es.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.7-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2005-11-19 23:06+0100\n"
+"POT-Creation-Date: 2005-11-20 19:02+0100\n"
"PO-Revision-Date: 2005-11-20 14:24+0100\n"
"Last-Translator: Roberto Gonzlez Cardenete <robert.glez@gmail.com>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
@@ -2270,12 +2270,12 @@ msgstr ""
"archivo cuando se actualizan las opciones.\n"
"#\n"
-#: src/gui/curses/gui-input.c:331
+#: src/gui/curses/gui-input.c:334
#, c-format
msgid "Day changed to %s\n"
msgstr "Da cambiado a %s\n"
-#: src/gui/curses/gui-input.c:414
+#: src/gui/curses/gui-input.c:417
#, c-format
msgid "%s lag is high, disconnecting from server...\n"
msgstr "%s el lag (retraso) es alto, desconectando del servidor...\n"
@@ -2296,48 +2296,48 @@ msgstr "MB"
msgid "Gb"
msgstr "GB"
-#: src/gui/curses/gui-display.c:1938
+#: src/gui/curses/gui-display.c:1943
msgid "<servers>"
msgstr "<servidores>"
-#: src/gui/curses/gui-display.c:1950
+#: src/gui/curses/gui-display.c:1955
msgid "(away)"
msgstr "(ausente)"
-#: src/gui/curses/gui-display.c:2084
+#: src/gui/curses/gui-display.c:2089
msgid "[not connected] "
msgstr "[no conectado] "
-#: src/gui/curses/gui-display.c:2094
+#: src/gui/curses/gui-display.c:2099
msgid "Act: "
msgstr "Act: "
-#: src/gui/curses/gui-display.c:2182
+#: src/gui/curses/gui-display.c:2187
#, c-format
msgid "Lag: %.1f"
msgstr "Lag: %.1f"
-#: src/gui/curses/gui-display.c:2198
+#: src/gui/curses/gui-display.c:2203
msgid "-MORE-"
msgstr "-MS-"
-#: src/gui/curses/gui-display.c:2376
+#: src/gui/curses/gui-display.c:2381
msgid " [A] Accept"
msgstr " [A] Aceptar"
-#: src/gui/curses/gui-display.c:2377 src/gui/curses/gui-display.c:2381
+#: src/gui/curses/gui-display.c:2382 src/gui/curses/gui-display.c:2386
msgid " [C] Cancel"
msgstr " [C] Cancelar"
-#: src/gui/curses/gui-display.c:2386
+#: src/gui/curses/gui-display.c:2391
msgid " [R] Remove"
msgstr " [R] Eliminar"
-#: src/gui/curses/gui-display.c:2390
+#: src/gui/curses/gui-display.c:2395
msgid " [P] Purge old DCC"
msgstr " [P] Purgar los viejos DCC"
-#: src/gui/curses/gui-display.c:2391
+#: src/gui/curses/gui-display.c:2396
msgid " [Q] Close DCC view"
msgstr " [Q] Cerrar la vista DCC"
@@ -2345,11 +2345,11 @@ msgstr " [Q] Cerrar la vista DCC"
msgid "server"
msgstr "servidor"
-#: src/gui/gui-common.c:638
+#: src/gui/gui-common.c:639
msgid "Not enough memory for new line\n"
msgstr "No hay suficiente memoria para una nueva lnea\n"
-#: src/gui/gui-common.c:985
+#: src/gui/gui-common.c:986
msgid "Not enough memory for infobar message\n"
msgstr "No hay suficiente memoria para el mensaje de la barra de informacin\n"
@@ -2486,34 +2486,46 @@ msgid "switch active server on servers buffer"
msgstr "seleccionar servidor activo en el bfer de servidores"
#: src/gui/gui-keyboard.c:111
+msgid "scroll to previous highlight in buffer"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:113
+msgid "scroll to next highlight in buffer"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:115
+msgid "scroll to first unread line in buffer"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:117
msgid "clear hotlist"
msgstr "limpiar hotlist"
-#: src/gui/gui-keyboard.c:113
+#: src/gui/gui-keyboard.c:119
msgid "clear infobar"
msgstr "limpiar barra de informacin"
-#: src/gui/gui-keyboard.c:115
+#: src/gui/gui-keyboard.c:121
msgid "refresh screen"
msgstr "recargar la pantalla"
-#: src/gui/gui-keyboard.c:117
+#: src/gui/gui-keyboard.c:123
msgid "grab a key"
msgstr "capturar una clave"
-#: src/gui/gui-keyboard.c:428 src/common/command.c:1860
+#: src/gui/gui-keyboard.c:434 src/common/command.c:1860
#, c-format
msgid "%s unable to bind key \"%s\"\n"
msgstr "%s No ha sido posible atar la clave \"%s\"\n"
-#: src/gui/gui-keyboard.c:439
+#: src/gui/gui-keyboard.c:445
#, c-format
msgid "%s unable to bind key \"%s\" (invalid function name: \"%s\")\n"
msgstr ""
"%s No ha sido posible atar la clave \"%s\" (nombre de funcin invlido: \"%s"
"\")\n"
-#: src/gui/gui-keyboard.c:452
+#: src/gui/gui-keyboard.c:458
#, c-format
msgid "%s not enough memory for key binding\n"
msgstr "%s no hay suficiente memoria para atar la clave\n"
diff --git a/weechat/po/fr.po b/weechat/po/fr.po
index 9cd0913bb..d6dca4ef4 100644
--- a/weechat/po/fr.po
+++ b/weechat/po/fr.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: WeeChat 0.1.7-cvs\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2005-11-19 23:06+0100\n"
-"PO-Revision-Date: 2005-11-19 11:36+0100\n"
+"POT-Creation-Date: 2005-11-20 19:02+0100\n"
+"PO-Revision-Date: 2005-11-20 19:03+0100\n"
"Last-Translator: FlashCode <flashcode@flashtux.org>\n"
"Language-Team: weechat-dev <weechat-dev@nongnu.org>\n"
"MIME-Version: 1.0\n"
@@ -2267,12 +2267,12 @@ msgstr ""
"des options sont modifies.\n"
"#\n"
-#: src/gui/curses/gui-input.c:331
+#: src/gui/curses/gui-input.c:334
#, c-format
msgid "Day changed to %s\n"
msgstr "Jour chang: %s\n"
-#: src/gui/curses/gui-input.c:414
+#: src/gui/curses/gui-input.c:417
#, c-format
msgid "%s lag is high, disconnecting from server...\n"
msgstr "%s le lag est lev, dconnexion du serveur...\n"
@@ -2293,48 +2293,48 @@ msgstr "Mo"
msgid "Gb"
msgstr "Go"
-#: src/gui/curses/gui-display.c:1938
+#: src/gui/curses/gui-display.c:1943
msgid "<servers>"
msgstr "<serveurs>"
-#: src/gui/curses/gui-display.c:1950
+#: src/gui/curses/gui-display.c:1955
msgid "(away)"
msgstr "(absent)"
-#: src/gui/curses/gui-display.c:2084
+#: src/gui/curses/gui-display.c:2089
msgid "[not connected] "
msgstr "[non connect] "
-#: src/gui/curses/gui-display.c:2094
+#: src/gui/curses/gui-display.c:2099
msgid "Act: "
msgstr "Act: "
-#: src/gui/curses/gui-display.c:2182
+#: src/gui/curses/gui-display.c:2187
#, c-format
msgid "Lag: %.1f"
msgstr "Lag: %.1f"
-#: src/gui/curses/gui-display.c:2198
+#: src/gui/curses/gui-display.c:2203
msgid "-MORE-"
msgstr "-PLUS-"
-#: src/gui/curses/gui-display.c:2376
+#: src/gui/curses/gui-display.c:2381
msgid " [A] Accept"
msgstr " [A] Accepter"
-#: src/gui/curses/gui-display.c:2377 src/gui/curses/gui-display.c:2381
+#: src/gui/curses/gui-display.c:2382 src/gui/curses/gui-display.c:2386
msgid " [C] Cancel"
msgstr " [C] Annuler"
-#: src/gui/curses/gui-display.c:2386
+#: src/gui/curses/gui-display.c:2391
msgid " [R] Remove"
msgstr " [R] Retirer"
-#: src/gui/curses/gui-display.c:2390
+#: src/gui/curses/gui-display.c:2395
msgid " [P] Purge old DCC"
msgstr " [P] Purger anciens DCC"
-#: src/gui/curses/gui-display.c:2391
+#: src/gui/curses/gui-display.c:2396
msgid " [Q] Close DCC view"
msgstr " [Q] Fermer la vue DCC"
@@ -2342,11 +2342,11 @@ msgstr " [Q] Fermer la vue DCC"
msgid "server"
msgstr "serveur"
-#: src/gui/gui-common.c:638
+#: src/gui/gui-common.c:639
msgid "Not enough memory for new line\n"
msgstr "Pas assez de mmoire pour une nouvelle ligne !\n"
-#: src/gui/gui-common.c:985
+#: src/gui/gui-common.c:986
msgid "Not enough memory for infobar message\n"
msgstr "Pas assez de mmoire pour un message de la barre d'infos\n"
@@ -2483,33 +2483,45 @@ msgid "switch active server on servers buffer"
msgstr "bascule de serveur actif sur le tampon des serveurs"
#: src/gui/gui-keyboard.c:111
+msgid "scroll to previous highlight in buffer"
+msgstr "scroller jusqu'au highlight prcdent du tampon"
+
+#: src/gui/gui-keyboard.c:113
+msgid "scroll to next highlight in buffer"
+msgstr "scroller jusqu'au highlight suivant du tampon"
+
+#: src/gui/gui-keyboard.c:115
+msgid "scroll to first unread line in buffer"
+msgstr "scroller jusqu' la premire ligne non lue du tampon"
+
+#: src/gui/gui-keyboard.c:117
msgid "clear hotlist"
msgstr "effacer la liste d'activit"
-#: src/gui/gui-keyboard.c:113
+#: src/gui/gui-keyboard.c:119
msgid "clear infobar"
msgstr "effacer la barre d'infos"
-#: src/gui/gui-keyboard.c:115
+#: src/gui/gui-keyboard.c:121
msgid "refresh screen"
msgstr "rafraichir l'cran"
-#: src/gui/gui-keyboard.c:117
+#: src/gui/gui-keyboard.c:123
msgid "grab a key"
msgstr "capturer une touche"
-#: src/gui/gui-keyboard.c:428 src/common/command.c:1860
+#: src/gui/gui-keyboard.c:434 src/common/command.c:1860
#, c-format
msgid "%s unable to bind key \"%s\"\n"
msgstr "%s impossible de crer la touche \"%s\"\n"
-#: src/gui/gui-keyboard.c:439
+#: src/gui/gui-keyboard.c:445
#, c-format
msgid "%s unable to bind key \"%s\" (invalid function name: \"%s\")\n"
msgstr ""
"%s impossible de crer la touche \"%s\" (nom fonction incorrect: \"%s\")\n"
-#: src/gui/gui-keyboard.c:452
+#: src/gui/gui-keyboard.c:458
#, c-format
msgid "%s not enough memory for key binding\n"
msgstr "%s pas assez de mmoire pour la touche\n"
diff --git a/weechat/po/weechat.pot b/weechat/po/weechat.pot
index da1535bb8..e1dae8196 100644
--- a/weechat/po/weechat.pot
+++ b/weechat/po/weechat.pot
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: flashcode@flashtux.org\n"
-"POT-Creation-Date: 2005-11-19 23:06+0100\n"
+"POT-Creation-Date: 2005-11-20 19:02+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -2107,12 +2107,12 @@ msgid ""
"#\n"
msgstr ""
-#: src/gui/curses/gui-input.c:331
+#: src/gui/curses/gui-input.c:334
#, c-format
msgid "Day changed to %s\n"
msgstr ""
-#: src/gui/curses/gui-input.c:414
+#: src/gui/curses/gui-input.c:417
#, c-format
msgid "%s lag is high, disconnecting from server...\n"
msgstr ""
@@ -2133,48 +2133,48 @@ msgstr ""
msgid "Gb"
msgstr ""
-#: src/gui/curses/gui-display.c:1938
+#: src/gui/curses/gui-display.c:1943
msgid "<servers>"
msgstr ""
-#: src/gui/curses/gui-display.c:1950
+#: src/gui/curses/gui-display.c:1955
msgid "(away)"
msgstr ""
-#: src/gui/curses/gui-display.c:2084
+#: src/gui/curses/gui-display.c:2089
msgid "[not connected] "
msgstr ""
-#: src/gui/curses/gui-display.c:2094
+#: src/gui/curses/gui-display.c:2099
msgid "Act: "
msgstr ""
-#: src/gui/curses/gui-display.c:2182
+#: src/gui/curses/gui-display.c:2187
#, c-format
msgid "Lag: %.1f"
msgstr ""
-#: src/gui/curses/gui-display.c:2198
+#: src/gui/curses/gui-display.c:2203
msgid "-MORE-"
msgstr ""
-#: src/gui/curses/gui-display.c:2376
+#: src/gui/curses/gui-display.c:2381
msgid " [A] Accept"
msgstr ""
-#: src/gui/curses/gui-display.c:2377 src/gui/curses/gui-display.c:2381
+#: src/gui/curses/gui-display.c:2382 src/gui/curses/gui-display.c:2386
msgid " [C] Cancel"
msgstr ""
-#: src/gui/curses/gui-display.c:2386
+#: src/gui/curses/gui-display.c:2391
msgid " [R] Remove"
msgstr ""
-#: src/gui/curses/gui-display.c:2390
+#: src/gui/curses/gui-display.c:2395
msgid " [P] Purge old DCC"
msgstr ""
-#: src/gui/curses/gui-display.c:2391
+#: src/gui/curses/gui-display.c:2396
msgid " [Q] Close DCC view"
msgstr ""
@@ -2182,11 +2182,11 @@ msgstr ""
msgid "server"
msgstr ""
-#: src/gui/gui-common.c:638
+#: src/gui/gui-common.c:639
msgid "Not enough memory for new line\n"
msgstr ""
-#: src/gui/gui-common.c:985
+#: src/gui/gui-common.c:986
msgid "Not enough memory for infobar message\n"
msgstr ""
@@ -2323,32 +2323,44 @@ msgid "switch active server on servers buffer"
msgstr ""
#: src/gui/gui-keyboard.c:111
-msgid "clear hotlist"
+msgid "scroll to previous highlight in buffer"
msgstr ""
#: src/gui/gui-keyboard.c:113
-msgid "clear infobar"
+msgid "scroll to next highlight in buffer"
msgstr ""
#: src/gui/gui-keyboard.c:115
-msgid "refresh screen"
+msgid "scroll to first unread line in buffer"
msgstr ""
#: src/gui/gui-keyboard.c:117
+msgid "clear hotlist"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:119
+msgid "clear infobar"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:121
+msgid "refresh screen"
+msgstr ""
+
+#: src/gui/gui-keyboard.c:123
msgid "grab a key"
msgstr ""
-#: src/gui/gui-keyboard.c:428 src/common/command.c:1860
+#: src/gui/gui-keyboard.c:434 src/common/command.c:1860
#, c-format
msgid "%s unable to bind key \"%s\"\n"
msgstr ""
-#: src/gui/gui-keyboard.c:439
+#: src/gui/gui-keyboard.c:445
#, c-format
msgid "%s unable to bind key \"%s\" (invalid function name: \"%s\")\n"
msgstr ""
-#: src/gui/gui-keyboard.c:452
+#: src/gui/gui-keyboard.c:458
#, c-format
msgid "%s not enough memory for key binding\n"
msgstr ""
diff --git a/weechat/src/gui/curses/gui-display.c b/weechat/src/gui/curses/gui-display.c
index b5514afdd..487b2348d 100644
--- a/weechat/src/gui/curses/gui-display.c
+++ b/weechat/src/gui/curses/gui-display.c
@@ -1666,15 +1666,20 @@ gui_draw_buffer_chat (t_gui_buffer *buffer, int erase)
ptr_line = ptr_line->next_line;
}
+ ptr_win->scroll = (ptr_win->win_chat_cursor_y > ptr_win->win_chat_height - 1);
+
/* check if last line of buffer is entirely displayed and scrolling */
- /* if so, disable scroll (to remove status bar indicator) */
- if (!ptr_line && ptr_win->start_line)
+ /* if so, disable scroll indicator */
+ if (!ptr_line && ptr_win->scroll)
{
if (count == gui_display_line (ptr_win, ptr_win->buffer->last_line, 0, 1))
- {
- ptr_win->start_line = NULL;
- ptr_win->start_line_pos = 0;
- }
+ ptr_win->scroll = 0;
+ }
+
+ if (!ptr_win->scroll && (ptr_win->start_line == ptr_win->buffer->lines))
+ {
+ ptr_win->start_line = NULL;
+ ptr_win->start_line_pos = 0;
}
/* cursor is below end line of chat window? */
@@ -2200,7 +2205,7 @@ gui_draw_buffer_status (t_gui_buffer *buffer, int erase)
if (x < 0)
x = 0;
gui_window_set_weechat_color (ptr_win->win_status, COLOR_WIN_STATUS_MORE);
- if (ptr_win->start_line)
+ if (ptr_win->scroll)
mvwprintw (ptr_win->win_status, 0, x, "%s", more);
else
{
diff --git a/weechat/src/gui/curses/gui-input.c b/weechat/src/gui/curses/gui-input.c
index 66c675d61..520179a23 100644
--- a/weechat/src/gui/curses/gui-input.c
+++ b/weechat/src/gui/curses/gui-input.c
@@ -104,8 +104,11 @@ gui_input_default_key_bindings ()
gui_key_bind ( /* m-j,m-s */ "meta-jmeta-s", "jump_server");
gui_key_bind ( /* m-j,m-x */ "meta-jmeta-x", "jump_next_server");
gui_key_bind ( /* m-k */ "meta-k", "grab_key");
+ gui_key_bind ( /* m-n */ "meta-n", "scroll_next_highlight");
+ gui_key_bind ( /* m-p */ "meta-p", "scroll_previous_highlight");
gui_key_bind ( /* m-r */ "meta-r", "delete_line");
gui_key_bind ( /* m-s */ "meta-s", "switch_server");
+ gui_key_bind ( /* m-u */ "meta-u", "scroll_unread");
/* keys binded with commands */
gui_key_bind ( /* m-left */ "meta-meta2-D", "/buffer -1");
diff --git a/weechat/src/gui/gui-action.c b/weechat/src/gui/gui-action.c
index 14ec2b90c..772a2f359 100644
--- a/weechat/src/gui/gui-action.c
+++ b/weechat/src/gui/gui-action.c
@@ -1050,6 +1050,92 @@ gui_action_switch_server (t_gui_window *window)
}
/*
+ * gui_action_scroll_previous_highlight: scroll to previous highlight
+ */
+
+void
+gui_action_scroll_previous_highlight (t_gui_window *window)
+{
+ t_gui_line *ptr_line;
+
+ if (!window->buffer->dcc)
+ {
+ if (window->buffer->lines)
+ {
+ ptr_line = (window->start_line) ?
+ window->start_line->prev_line : window->buffer->last_line->prev_line;
+ while (ptr_line)
+ {
+ if (ptr_line->line_with_highlight)
+ {
+ window->start_line = ptr_line;
+ window->start_line_pos = 0;
+ window->first_line_displayed =
+ (window->start_line == window->buffer->lines);
+ gui_draw_buffer_chat (window->buffer, 1);
+ gui_draw_buffer_status (window->buffer, 0);
+ return;
+ }
+ ptr_line = ptr_line->prev_line;
+ }
+ }
+ }
+}
+
+/*
+ * gui_action_scroll_next_highlight: scroll to next highlight
+ */
+
+void
+gui_action_scroll_next_highlight (t_gui_window *window)
+{
+ t_gui_line *ptr_line;
+
+ if (!window->buffer->dcc)
+ {
+ if (window->buffer->lines)
+ {
+ ptr_line = (window->start_line) ?
+ window->start_line->next_line : window->buffer->lines->next_line;
+ while (ptr_line)
+ {
+ if (ptr_line->line_with_highlight)
+ {
+ window->start_line = ptr_line;
+ window->start_line_pos = 0;
+ window->first_line_displayed =
+ (window->start_line == window->buffer->lines);
+ gui_draw_buffer_chat (window->buffer, 1);
+ gui_draw_buffer_status (window->buffer, 0);
+ return;
+ }
+ ptr_line = ptr_line->next_line;
+ }
+ }
+ }
+}
+
+/*
+ * gui_action_scroll_unread: scroll to first unread line of buffer
+ */
+
+void
+gui_action_scroll_unread (t_gui_window *window)
+{
+ if (!window->buffer->dcc &&
+ window->buffer->last_read_line &&
+ window->buffer->last_read_line != window->buffer->last_line)
+ {
+ window->start_line = window->buffer->last_read_line->next_line;
+ window->start_line_pos = 0;
+ window->first_line_displayed =
+ (window->start_line == window->buffer->lines);
+ gui_draw_buffer_chat (window->buffer, 1);
+ gui_draw_buffer_status (window->buffer, 0);
+ }
+}
+
+/*
* gui_action_hotlist_clear: clear hotlist
*/
diff --git a/weechat/src/gui/gui-common.c b/weechat/src/gui/gui-common.c
index 6932173c2..b9e4e312c 100644
--- a/weechat/src/gui/gui-common.c
+++ b/weechat/src/gui/gui-common.c
@@ -244,6 +244,7 @@ gui_window_new (t_gui_window *parent, int x, int y, int width, int height,
new_window->first_line_displayed = 0;
new_window->start_line = NULL;
new_window->start_line_pos = 0;
+ new_window->scroll = 0;
new_window->ptr_tree = ptr_leaf;
ptr_leaf->window = new_window;
diff --git a/weechat/src/gui/gui-keyboard.c b/weechat/src/gui/gui-keyboard.c
index 2d3431899..a3c5c3329 100644
--- a/weechat/src/gui/gui-keyboard.c
+++ b/weechat/src/gui/gui-keyboard.c
@@ -41,79 +41,85 @@ int gui_key_grab = 0;
int gui_key_grab_count = 0;
t_gui_key_function gui_key_functions[] =
-{ { "return", gui_action_return,
+{ { "return", gui_action_return,
N_("terminate line") },
- { "tab", gui_action_tab,
+ { "tab", gui_action_tab,
N_("complete word") },
- { "backspace", gui_action_backspace,
+ { "backspace", gui_action_backspace,
N_("delete previous char") },
- { "delete", gui_action_delete,
+ { "delete", gui_action_delete,
N_("delete next char") },
- { "delete_end_line", gui_action_delete_end_of_line,
+ { "delete_end_line", gui_action_delete_end_of_line,
N_("delete until end of line") },
- { "delete_beginning_line", gui_action_delete_begin_of_line,
+ { "delete_beginning_line", gui_action_delete_begin_of_line,
N_("delete until beginning of line") },
- { "delete_line", gui_action_delete_line,
+ { "delete_line", gui_action_delete_line,
N_("delete entire line") },
- { "delete_previous_word", gui_action_delete_previous_word,
+ { "delete_previous_word", gui_action_delete_previous_word,
N_("delete previous word") },
- { "delete_next_word", gui_action_delete_next_word,
+ { "delete_next_word", gui_action_delete_next_word,
N_("delete next word") },
- { "clipboard_paste", gui_action_clipboard_paste,
+ { "clipboard_paste", gui_action_clipboard_paste,
N_("paste current clipboard content") },
- { "transpose_chars", gui_action_transpose_chars,
+ { "transpose_chars", gui_action_transpose_chars,
N_("transpose chars") },
- { "home", gui_action_home,
+ { "home", gui_action_home,
N_("go to beginning of line") },
- { "end", gui_action_end,
+ { "end", gui_action_end,
N_("go to end of line") },
- { "left", gui_action_left,
+ { "left", gui_action_left,
N_("move one char left") },
- { "previous_word", gui_action_previous_word,
+ { "previous_word", gui_action_previous_word,
N_("move to previous word") },
- { "right", gui_action_right,
+ { "right", gui_action_right,
N_("move one char right") },
- { "next_word", gui_action_next_word,
+ { "next_word", gui_action_next_word,
N_("move to next word") },
- { "up", gui_action_up,
+ { "up", gui_action_up,
N_("call previous command in history") },
- { "up_global", gui_action_up_global,
+ { "up_global", gui_action_up_global,
N_("call previous command in global history") },
- { "down", gui_action_down,
+ { "down", gui_action_down,
N_("call next command in history") },
- { "down_global", gui_action_down_global,
+ { "down_global", gui_action_down_global,
N_("call next command in global history") },
- { "page_up", gui_action_page_up,
+ { "page_up", gui_action_page_up,
N_("scroll one page up") },
- { "page_down", gui_action_page_down,
+ { "page_down", gui_action_page_down,
N_("scroll one page down") },
- { "nick_beginning", gui_action_nick_beginning,
+ { "nick_beginning", gui_action_nick_beginning,
N_("display beginning of nicklist") },
- { "nick_end", gui_action_nick_end,
+ { "nick_end", gui_action_nick_end,
N_("display end of nicklist") },
- { "nick_page_up", gui_action_nick_page_up,
+ { "nick_page_up", gui_action_nick_page_up,
N_("scroll nicklist one page up") },
- { "nick_page_down", gui_action_nick_page_down,
+ { "nick_page_down", gui_action_nick_page_down,
N_("scroll nicklist one page down") },
- { "jump_smart", gui_action_jump_smart,
+ { "jump_smart", gui_action_jump_smart,
N_("jump to buffer with activity") },
- { "jump_dcc", gui_action_jump_dcc,
+ { "jump_dcc", gui_action_jump_dcc,
N_("jump to DCC buffer") },
- { "jump_last_buffer", gui_action_jump_last_buffer,
+ { "jump_last_buffer", gui_action_jump_last_buffer,
N_("jump to last buffer") },
- { "jump_server", gui_action_jump_server,
+ { "jump_server", gui_action_jump_server,
N_("jump to server buffer") },
- { "jump_next_server", gui_action_jump_next_server,
+ { "jump_next_server", gui_action_jump_next_server,
N_("jump to next server") },
- { "switch_server", gui_action_switch_server,
+ { "switch_server", gui_action_switch_server,
N_("switch active server on servers buffer") },
- { "hotlist_clear", gui_action_hotlist_clear,
+ { "scroll_previous_highlight", gui_action_scroll_previous_highlight,
+ N_("scroll to previous highlight in buffer") },
+ { "scroll_next_highlight", gui_action_scroll_next_highlight,
+ N_("scroll to next highlight in buffer") },
+ { "scroll_unread", gui_action_scroll_unread,
+ N_("scroll to first unread line in buffer") },
+ { "hotlist_clear", gui_action_hotlist_clear,
N_("clear hotlist") },
- { "infobar_clear", gui_action_infobar_clear,
+ { "infobar_clear", gui_action_infobar_clear,
N_("clear infobar") },
- { "refresh", gui_action_refresh_screen,
+ { "refresh", gui_action_refresh_screen,
N_("refresh screen") },
- { "grab_key", gui_action_grab_key,
+ { "grab_key", gui_action_grab_key,
N_("grab a key") },
{ NULL, NULL, NULL }
};
diff --git a/weechat/src/gui/gui.h b/weechat/src/gui/gui.h
index 4ffb20c80..ef7ebbe63 100644
--- a/weechat/src/gui/gui.h
+++ b/weechat/src/gui/gui.h
@@ -330,7 +330,7 @@ struct t_gui_window
int first_line_displayed; /* = 1 if first line is displayed */
t_gui_line *start_line; /* pointer to line if scrolling */
int start_line_pos; /* position in first line displayed */
-
+ int scroll; /* = 1 if "MORE" should be displayed */
t_gui_window_tree *ptr_tree; /* pointer to leaf in windows tree */
t_gui_window *prev_window; /* link to previous window */
@@ -465,6 +465,9 @@ extern void gui_action_jump_last_buffer (t_gui_window *);
extern void gui_action_jump_server (t_gui_window *);
extern void gui_action_jump_next_server (t_gui_window *);
extern void gui_action_switch_server (t_gui_window *);
+extern void gui_action_scroll_previous_highlight (t_gui_window *);
+extern void gui_action_scroll_next_highlight (t_gui_window *);
+extern void gui_action_scroll_unread (t_gui_window *);
extern void gui_action_hotlist_clear (t_gui_window *);
extern void gui_action_infobar_clear (t_gui_window *);
extern void gui_action_refresh_screen ();