diff -Nru sakura-3.8.6/CMakeLists.txt sakura-3.8.7/CMakeLists.txt --- sakura-3.8.6/CMakeLists.txt 2022-11-11 15:42:23.000000000 +0000 +++ sakura-3.8.7/CMakeLists.txt 2023-04-23 14:04:52.000000000 +0000 @@ -2,7 +2,7 @@ CMAKE_POLICY(SET CMP0005 NEW) PROJECT (sakura) SET (AUTHOR "David Gómez Espinosa" INTERNAL "Author") -SET (VERSION "3.8.6") +SET (VERSION "3.8.7") INCLUDE (FindPkgConfig) diff -Nru sakura-3.8.6/debian/changelog sakura-3.8.7/debian/changelog --- sakura-3.8.6/debian/changelog 2022-11-12 00:14:43.000000000 +0000 +++ sakura-3.8.7/debian/changelog 2023-06-13 20:26:03.000000000 +0000 @@ -1,3 +1,11 @@ +sakura (3.8.7-1) unstable; urgency=medium + + * New upstream version 3.8.7 + * Upgrade to Standards Version 4.6.2 (No changes required) + * Update Debian copyright year + + -- Andreas Rönnquist Tue, 13 Jun 2023 22:26:03 +0200 + sakura (3.8.6-1) unstable; urgency=medium * New upstream version 3.8.6 diff -Nru sakura-3.8.6/debian/control sakura-3.8.7/debian/control --- sakura-3.8.6/debian/control 2022-07-03 12:02:49.000000000 +0000 +++ sakura-3.8.7/debian/control 2023-06-13 19:00:13.000000000 +0000 @@ -9,7 +9,7 @@ libpcre2-dev, libvte-2.91-dev, perl -Standards-Version: 4.6.1 +Standards-Version: 4.6.2 Rules-Requires-Root: no Vcs-Git: https://salsa.debian.org/debian/sakura.git Vcs-Browser: https://salsa.debian.org/debian/sakura diff -Nru sakura-3.8.6/debian/copyright sakura-3.8.7/debian/copyright --- sakura-3.8.6/debian/copyright 2022-07-03 12:02:24.000000000 +0000 +++ sakura-3.8.7/debian/copyright 2023-06-13 20:25:37.000000000 +0000 @@ -10,7 +10,7 @@ Files: debian/* Copyright: 2008-2021, Andrew Starr-Bochicchio - 2015-2022, Andreas Rönnquist + 2015-2023, Andreas Rönnquist License: GPL-2 License: GPL-2 diff -Nru sakura-3.8.6/po/ja.po sakura-3.8.7/po/ja.po --- sakura-3.8.6/po/ja.po 2022-11-11 15:42:23.000000000 +0000 +++ sakura-3.8.7/po/ja.po 2023-04-23 14:04:52.000000000 +0000 @@ -163,10 +163,10 @@ msgstr "常に" msgid "When there's more than one tab" -msgstr "" +msgstr "複数のタブがある時" msgid "Never" -msgstr "" +msgstr "一度もない" msgid "Tabs at bottom" msgstr "タブを下に表示" @@ -181,7 +181,7 @@ msgstr "終了時の質問が少なくする" msgid "Automatically copy selected text" -msgstr "" +msgstr "選択したテキストを自動的にコーピーする" msgid "Set urgent bell" msgstr "救急ベルを有効にする" diff -Nru sakura-3.8.6/po/ko.po sakura-3.8.7/po/ko.po --- sakura-3.8.6/po/ko.po 2022-11-11 15:42:23.000000000 +0000 +++ sakura-3.8.7/po/ko.po 2023-04-23 14:04:52.000000000 +0000 @@ -166,10 +166,10 @@ msgstr "항상" msgid "When there's more than one tab" -msgstr "" +msgstr "하나 이상의 탭이 있는 경우" msgid "Never" -msgstr "" +msgstr "절대" msgid "Tabs at bottom" msgstr "탭을 아래에 표시" @@ -184,7 +184,7 @@ msgstr "종료 시 적은 질문" msgid "Automatically copy selected text" -msgstr "" +msgstr "선택한 텍스트를 자동으로 복사" msgid "Set urgent bell" msgstr "긴급 종 설정" diff -Nru sakura-3.8.6/po/tr.po sakura-3.8.7/po/tr.po --- sakura-3.8.6/po/tr.po 2022-11-11 15:42:23.000000000 +0000 +++ sakura-3.8.7/po/tr.po 2023-04-23 14:04:52.000000000 +0000 @@ -1,6 +1,8 @@ # # Eyyüb Akçaer , 2022. # +# madanadam , 2023. +# msgid "" msgstr "" "Project-Id-Version: sakura\n" @@ -97,9 +99,9 @@ msgid "Colorset" msgstr "Renk seti" -#, fuzzy + msgid "Color scheme" -msgstr "Renk seti" +msgstr "Renk şeması" msgid "Foreground color" msgstr "Önplan rengi" @@ -113,12 +115,12 @@ msgid "Opacity level (%)" msgstr "Opaklık düzeyi (%)" -#, fuzzy + msgid "Palette" -msgstr "Paleti ayarla" +msgstr "Renk paleti" msgid "Use bright colors for bold text" -msgstr "" +msgstr "Kalın yazı için parlak renk kullan" msgid "New window title" msgstr "Yeni pencere başlığı" @@ -130,7 +132,7 @@ msgstr "Bağlantı aç" msgid "Copy link" -msgstr "Bağlantıyı kopyala" +msgstr "Bağlantı kopyala" msgid "New tab" msgstr "Yeni sekme" @@ -159,18 +161,17 @@ msgid "Select colors..." msgstr "Renkleri seç..." -#, fuzzy msgid "Show tab bar" -msgstr "Sekme çubuğunu her zaman göster" +msgstr "Sekme çubuğunu göster" msgid "Always" -msgstr "" +msgstr "Daima" msgid "When there's more than one tab" -msgstr "" +msgstr "Birden çoksa" msgid "Never" -msgstr "" +msgstr "Asla" msgid "Tabs at bottom" msgstr "Sekmeler altta" @@ -181,12 +182,11 @@ msgid "Show scrollbar" msgstr "Kaydırma çubuğunu göster" -#, fuzzy msgid "Fewer questions at exit time" msgstr "Çıkış süresinde daha az soru" msgid "Automatically copy selected text" -msgstr "" +msgstr "Seçilen yazıyı otomatik kopyala" msgid "Set urgent bell" msgstr "Acil zilini ayarla" diff -Nru sakura-3.8.6/README.md sakura-3.8.7/README.md --- sakura-3.8.6/README.md 2022-11-11 15:42:23.000000000 +0000 +++ sakura-3.8.7/README.md 2023-04-23 14:04:52.000000000 +0000 @@ -9,7 +9,7 @@ ```bash $ cmake . $ make -$ sudo 'make install' +$ sudo make install ``` **sakura** now uses the CMake building system (RIP our old system MOBS, we'll remember you ;)). diff -Nru sakura-3.8.6/src/sakura.c sakura-3.8.7/src/sakura.c --- sakura-3.8.6/src/sakura.c 2022-11-11 15:42:23.000000000 +0000 +++ sakura-3.8.7/src/sakura.c 2023-04-23 14:04:52.000000000 +0000 @@ -494,6 +494,7 @@ static void sakura_search (const char *, bool); static void sakura_copy (void); static void sakura_paste (void); +static void sakura_paste_primary (void); static void sakura_show_scrollbar (void); @@ -556,25 +557,21 @@ /* Use keycodes instead of keyvals. With keyvals, key bindings work only in US/ISO8859-1 and similar locales */ guint keycode = event->hardware_keycode; + /* Get the GDK accel mask to compare with our accelerators */ + GdkModifierType accel_mask = gtk_accelerator_get_default_mod_mask(); + /* Add/delete tab keybinding pressed */ - if ( (event->state & sakura.add_tab_accelerator) == sakura.add_tab_accelerator && - keycode == sakura_tokeycode(sakura.add_tab_key)) { + if ((event->state & accel_mask) == sakura.add_tab_accelerator && keycode == sakura_tokeycode(sakura.add_tab_key)) { sakura_add_tab(); return TRUE; - } else if ( (event->state & sakura.del_tab_accelerator) == sakura.del_tab_accelerator && - keycode == sakura_tokeycode(sakura.del_tab_key) ) { + } else if ((event->state & accel_mask) == sakura.del_tab_accelerator && keycode == sakura_tokeycode(sakura.del_tab_key)) { /* Delete current tab */ sakura_close_tab(page); return TRUE; } /* Switch tab keybinding pressed (numbers or next/prev) */ - /* In cases when the user configured accelerators like these ones: - switch_tab_accelerator=4 for ctrl+next[prev]_tab_key - move_tab_accelerator=5 for ctrl+shift+next[prev]_tab_key - move never works, because switch will be processed first, so it needs to be fixed with the following condition */ - if ( ((event->state & sakura.switch_tab_accelerator) == sakura.switch_tab_accelerator) && - ((event->state & sakura.move_tab_accelerator) != sakura.move_tab_accelerator) ) { + if ((event->state & accel_mask) == sakura.switch_tab_accelerator) { /* Just propagate the event if there is only one tab */ if (npages < 2) return FALSE; @@ -614,7 +611,7 @@ } /* Move tab keybinding pressed */ - if ( ((event->state & sakura.move_tab_accelerator) == sakura.move_tab_accelerator)) { + if ((event->state & accel_mask) == sakura.move_tab_accelerator) { if (keycode == sakura_tokeycode(sakura.prev_tab_key)) { sakura_move_tab(BACKWARDS); return TRUE; @@ -625,7 +622,7 @@ } /* Copy/paste keybinding pressed */ - if ( (event->state & sakura.copy_accelerator) == sakura.copy_accelerator ) { + if ((event->state & accel_mask) == sakura.copy_accelerator) { if (keycode == sakura_tokeycode(sakura.copy_key)) { sakura_copy(); return TRUE; @@ -636,7 +633,7 @@ } /* Show scrollbar keybinding pressed */ - if ( (event->state & sakura.scrollbar_accelerator) == sakura.scrollbar_accelerator ) { + if ((event->state & accel_mask) == sakura.scrollbar_accelerator) { if (keycode == sakura_tokeycode(sakura.scrollbar_key)) { sakura_show_scrollbar(); return TRUE; @@ -644,7 +641,7 @@ } /* Set tab name keybinding pressed */ - if ( (event->state & sakura.set_tab_name_accelerator) == sakura.set_tab_name_accelerator ) { + if ((event->state & accel_mask) == sakura.set_tab_name_accelerator) { if (keycode == sakura_tokeycode(sakura.set_tab_name_key)) { sakura_set_name_dialog_cb(NULL, NULL); return TRUE; @@ -652,7 +649,7 @@ } /* Search keybinding pressed */ - if ( (event->state & sakura.search_accelerator) == sakura.search_accelerator ) { + if ((event->state & accel_mask) == sakura.search_accelerator) { if (keycode == sakura_tokeycode(sakura.search_key)) { sakura_search_dialog(); return TRUE; @@ -660,7 +657,7 @@ } /* Increase/decrease font size keybinding pressed */ - if ( (event->state & sakura.font_size_accelerator) == sakura.font_size_accelerator ) { + if ((event->state & accel_mask) == sakura.font_size_accelerator) { if (keycode == sakura_tokeycode(sakura.increase_font_size_key)) { sakura_increase_font_cb(NULL, NULL); return TRUE; @@ -677,7 +674,7 @@ } /* Change in colorset */ - if ( (event->state & sakura.set_colorset_accelerator) == sakura.set_colorset_accelerator ) { + if ((event->state & accel_mask) == sakura.set_colorset_accelerator) { int i; for (i=0; itype != GDK_FOCUS_CHANGE) return FALSE; - if (!sakura.use_fading) return FALSE; + //if (!sakura.use_fading) return FALSE; /* Got the focus, hide the fade */ - gtk_widget_hide(sakura.fade_window); + //gtk_widget_hide(sakura.fade_window); /* Reset urgency hint */ gtk_window_set_urgency_hint(GTK_WINDOW(sakura.main_window), FALSE); @@ -941,7 +938,7 @@ /* Paste when paste button is pressed */ if (sakura.copy_on_select) { if (button_event->button == sakura.paste_button) { - sakura_paste(); + sakura_paste_primary(); /* This is the expected X11 behaviour, to copy the PRIMARY clipboard with the middle click. TODO: Maybe add an option to use the secondary one? */ /* Do not propagate. vte has his own copy-on-select and we'll end with duplicates pastes */ return TRUE; @@ -992,11 +989,16 @@ { /* Remove the urgency hint. This is necessary to signal the window manager */ /* that a new urgent event happened when the urgent hint is set after this. */ + /* TODO: this is already set in focus_in, so DO we really need it here? */ gtk_window_set_urgency_hint(GTK_WINDOW(sakura.main_window), FALSE); - if (sakura.urgent_bell) { - gtk_window_set_urgency_hint(GTK_WINDOW(sakura.main_window), TRUE); + /* If the window is active(focused), ignore and don't set the urgency hint */ + if (!gtk_window_is_active(GTK_WINDOW(sakura.main_window))) { + if (sakura.urgent_bell) { + gtk_window_set_urgency_hint(GTK_WINDOW(sakura.main_window), TRUE); + } } + } @@ -1368,7 +1370,7 @@ palette_hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 12); palette_label = gtk_label_new(_("Palette")); palette_combo = gtk_combo_box_text_new(); - for (i=0; i < sizeof(&palettes_names)-1; i++) { + for (i=0; i < (sizeof(palettes_names)) / (sizeof(palettes_names[0])); i++) { gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(palette_combo), NULL, palettes_names[i]); } gtk_combo_box_set_active(GTK_COMBO_BOX(palette_combo), sakura.palette_idx); @@ -1537,8 +1539,8 @@ clip = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD); gtk_clipboard_set_text(clip, sakura.current_match, -1 ); - clip = gtk_clipboard_get(GDK_SELECTION_PRIMARY); - gtk_clipboard_set_text(clip, sakura.current_match, -1 ); + //clip = gtk_clipboard_get(GDK_SELECTION_PRIMARY); + //gtk_clipboard_set_text(clip, sakura.current_match, -1 ); } @@ -2671,6 +2673,19 @@ } +static void +sakura_paste_primary () +{ + gint page; + struct sakura_tab *sk_tab; + + page = gtk_notebook_get_current_page(GTK_NOTEBOOK(sakura.notebook)); + sk_tab = sakura_get_sktab(sakura, page); + + vte_terminal_paste_primary(VTE_TERMINAL(sk_tab->vte)); +} + + static void sakura_show_scrollbar (void) {