From 6dc8cd404deb4680acc18cfc9ace3c08e0107aed Mon Sep 17 00:00:00 2001 From: OriginCode Date: Sun, 28 Jul 2019 14:45:06 +0800 Subject: [PATCH 01/28] update zh_TW translation --- po/zh_TW.po | 977 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 582 insertions(+), 395 deletions(-) diff --git a/po/zh_TW.po b/po/zh_TW.po index b5ceec6..ade01a3 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -1,605 +1,791 @@ -# Dash to Panel Simplified Chinese Translation. -# This file is distributed under the same license as the Dash to Panel package. -# Boyuan Yang <073plan@gmail.com>, 2017, 2018. +# Dash to Panel Traditional Chinese Translation +# This file is distributed under the same license as the Dash To Panel package. +# +# Jack Wu , 2019. +# pan93412 , 2019. # msgid "" msgstr "" -"Project-Id-Version: dash-to-panel 17\n" -"Report-Msgid-Bugs-To: https://github.com/jderose9/dash-to-panel/issues\n" -"POT-Creation-Date: 2018-12-10 16:23-0500\n" -"PO-Revision-Date: 2019-2-24 17:45+0800\n" -"Last-Translator: OriginCode \n" +"Project-Id-Version: Dash To Panel\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-07-19 20:51+0800\n" +"PO-Revision-Date: 2019-07-28 14:38+0800\n" +"Last-Translator: pan93412 \n" "Language-Team: Chinese (Traditional)\n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: prefs.js:312 +#: prefs.js:310 msgid "Running Indicator Options" msgstr "執行指示器選項" -#: prefs.js:319 prefs.js:486 prefs.js:629 prefs.js:734 prefs.js:792 -#: prefs.js:868 prefs.js:920 prefs.js:1059 prefs.js:1143 prefs.js:1254 -#: prefs.js:1288 prefs.js:1330 +#: prefs.js:317 prefs.js:515 prefs.js:658 prefs.js:778 prefs.js:842 +#: prefs.js:930 prefs.js:1023 prefs.js:1260 prefs.js:1344 prefs.js:1455 +#: prefs.js:1489 prefs.js:1531 msgid "Reset to defaults" -msgstr "恢復預設值" +msgstr "重設至預設值" -#: prefs.js:431 +#: prefs.js:460 msgid "Default (Primary monitor)" -msgstr "主顯示器" +msgstr "預設(主顯示器)" -#: prefs.js:434 +#: prefs.js:463 msgid "Monitor " msgstr "顯示器 " -#: prefs.js:479 +#: prefs.js:508 msgid "Multi-monitors options" msgstr "多顯示器選項" -#: prefs.js:622 +#: prefs.js:651 msgid "Dynamic opacity options" msgstr "動態半透明選項" -#: prefs.js:727 +#: prefs.js:771 msgid "Intellihide options" msgstr "智慧隱藏選項" -#: prefs.js:785 +#: prefs.js:835 msgid "Show Applications options" msgstr "“顯示應用程式”選項" -#: prefs.js:861 +#: prefs.js:923 msgid "Show Desktop options" msgstr "“顯示桌面”選項" -#: prefs.js:913 +#: prefs.js:1016 msgid "Window preview options" msgstr "視窗預覽選項" -#: prefs.js:1052 +#: prefs.js:1253 msgid "Ungrouped application options" msgstr "未分組的應用程式選項" -#: prefs.js:1136 +#: prefs.js:1337 msgid "Customize middle-click behavior" -msgstr "自定義中鍵點選行為" +msgstr "自訂滑鼠中鍵點選行為" -#: prefs.js:1247 +#: prefs.js:1448 msgid "Advanced hotkeys options" -msgstr "高階熱鍵選項" +msgstr "進階快速鍵選項" -#: prefs.js:1281 +#: prefs.js:1482 msgid "Secondary Menu Options" msgstr "次級選單選項" -#: prefs.js:1323 Settings.ui.h:174 +#: prefs.js:1524 msgid "Advanced Options" -msgstr "高階選項" +msgstr "進階選項" -#: prefs.js:1412 +#: prefs.js:1611 msgid "Export settings" msgstr "匯出設定" -#: prefs.js:1429 +#: prefs.js:1628 msgid "Import settings" msgstr "匯入設定" -#: appIcons.js:1259 +#: appIcons.js:1287 msgid "Show Details" -msgstr "顯示細節" +msgstr "顯示詳細資訊" -#: appIcons.js:1278 +#: appIcons.js:1306 msgid "New Window" -msgstr "新建視窗" +msgstr "建立視窗" -#: appIcons.js:1278 appIcons.js:1340 appIcons.js:1342 Settings.ui.h:8 +#: appIcons.js:1306 appIcons.js:1368 appIcons.js:1370 msgid "Quit" -msgstr "退出" +msgstr "離開" -#: appIcons.js:1342 +#: appIcons.js:1370 msgid "Windows" msgstr "視窗" -#: appIcons.js:1539 +#: appIcons.js:1578 +msgid "Power options" +msgstr "電源選項" + +#: appIcons.js:1583 +msgid "Event logs" +msgstr "事件日誌" + +#: appIcons.js:1588 +msgid "System" +msgstr "系統" + +#: appIcons.js:1593 +msgid "Device Management" +msgstr "裝置管理" + +#: appIcons.js:1598 +msgid "Disk Management" +msgstr "磁碟管理" + +#: appIcons.js:1605 +msgid "Terminal" +msgstr "終端" + +#: appIcons.js:1610 +msgid "System monitor" +msgstr "系統監視器" + +#: appIcons.js:1615 +msgid "Files" +msgstr "檔案" + +#: appIcons.js:1620 +msgid "Settings" +msgstr "設定" + +#: appIcons.js:1627 msgid "Unlock taskbar" msgstr "解鎖工作列" -#: appIcons.js:1539 +#: appIcons.js:1627 msgid "Lock taskbar" msgstr "鎖定工作列" -#: appIcons.js:1544 +#: appIcons.js:1632 msgid "Dash to Panel Settings" msgstr "Dash to Panel 設定" -#: appIcons.js:1551 +#: appIcons.js:1639 msgid "Restore Windows" -msgstr "恢復視窗" +msgstr "復原視窗" -#: appIcons.js:1551 +#: appIcons.js:1639 msgid "Show Desktop" msgstr "顯示桌面" #: Settings.ui.h:1 +msgid "Nothing yet!" +msgstr "這裏什麼也沒有!" + +#: Settings.ui.h:2 msgid "" "When set to minimize, double clicking minimizes all the windows of the " "application." -msgstr "設定為最小化時,雙擊將最小化該應用程式的所有視窗。" - -#: Settings.ui.h:2 -msgid "Shift+Click action" -msgstr "Shift+點選動作" +msgstr "當設定為最小化時,點兩下可將應用程式的所有視窗最小化。" #: Settings.ui.h:3 -msgid "Raise window" -msgstr "提升視窗" +msgid "Shift+Click action" +msgstr "Shift + 點選動作" #: Settings.ui.h:4 +msgid "Raise windows" +msgstr "抬升視窗" + +#: Settings.ui.h:5 msgid "Minimize window" msgstr "最小化視窗" -#: Settings.ui.h:5 -msgid "Launch new instance" -msgstr "啟動新例項" - #: Settings.ui.h:6 -msgid "Cycle through windows" -msgstr "在視窗間迴圈切換" +msgid "Launch new instance" +msgstr "啟動新實例" #: Settings.ui.h:7 +msgid "Cycle through windows" +msgstr "在視窗間循環" + +#: Settings.ui.h:8 msgid "Cycle windows + minimize" -msgstr "迴圈視窗 + 最小化" +msgstr "循環視窗並最小化" #: Settings.ui.h:9 -msgid "Behavior for Middle-Click." -msgstr "中鍵點選行為。" - -#: Settings.ui.h:10 -msgid "Middle-Click action" -msgstr "中鍵點選動作" +msgid "Toggle single / Preview multiple" +msgstr "切換單視窗 / 預覽多視窗" #: Settings.ui.h:11 -msgid "Behavior for Shift+Middle-Click." -msgstr "Shift+中鍵點選的行為。" +msgid "Behavior for Middle-Click." +msgstr "滑鼠中鍵行為。" #: Settings.ui.h:12 -msgid "Shift+Middle-Click action" -msgstr "Shift+中鍵點選動作" +msgid "Middle-Click action" +msgstr "滑鼠中鍵動作" #: Settings.ui.h:13 +msgid "Behavior for Shift+Middle-Click." +msgstr "Shift + 滑鼠中鍵行為。" + +#: Settings.ui.h:14 +msgid "Shift+Middle-Click action" +msgstr "Shift + 滑鼠中鍵動作" + +#: Settings.ui.h:15 msgid "Isolate monitors" msgstr "隔離顯示器" -#: Settings.ui.h:14 +#: Settings.ui.h:16 msgid "Display favorite applications on all monitors" msgstr "在所有顯示器上顯示收藏的應用程式" -#: Settings.ui.h:15 +#: Settings.ui.h:17 msgid "Display the clock on all monitors" msgstr "在所有顯示器上顯示時鐘" -#: Settings.ui.h:16 +#: Settings.ui.h:18 msgid "Display the status menu on all monitors" msgstr "在所有顯示器上顯示狀態選單" -#: Settings.ui.h:17 -msgid "Integrate AppMenu items" -msgstr "整合應用選單項" - -#: Settings.ui.h:18 -msgid "Show Details menu item" -msgstr "顯示細節選單項" - #: Settings.ui.h:19 -msgid "Highlight focused application" -msgstr "高亮顯示取得焦點的應用程式" +msgid "Integrate AppMenu items" +msgstr "整合 AppMenu 項目" #: Settings.ui.h:20 -msgid "Highlight color" -msgstr "高亮顏色" +msgid "Show Details menu item" +msgstr "顯示詳細資料 選單項目" #: Settings.ui.h:21 -msgid "Highlight opacity" -msgstr "高亮不透明度" +msgid "Highlight focused application" +msgstr "突顯焦點應用" #: Settings.ui.h:22 -msgid "Indicator height (px)" -msgstr "指示器高度(畫素)" +msgid "Icon dominant color" +msgstr "圖示主色" #: Settings.ui.h:23 -msgid "Indicator color - Override Theme" -msgstr "指示器顏色 - 覆蓋主題" +msgid "Custom color" +msgstr "自訂顏色" #: Settings.ui.h:24 -msgid "1 window open (or ungrouped)" -msgstr "1 視窗開啟(或未分組)" +msgid "Highlight opacity" +msgstr "突顯不透明度" #: Settings.ui.h:25 -msgid "Apply to all" -msgstr "應用至全部" +msgid "Indicator height (px)" +msgstr "指示器高度(像素 px)" #: Settings.ui.h:26 -msgid "2 windows open" -msgstr "2 視窗開啟" +msgid "Indicator color - Icon Dominant" +msgstr "指示器顏色 - 主圖示" #: Settings.ui.h:27 -msgid "3 windows open" -msgstr "3 視窗開啟" +msgid "Indicator color - Override Theme" +msgstr "指示器顏色 - 覆寫主題" #: Settings.ui.h:28 -msgid "4+ windows open" -msgstr "4+ 視窗開啟" +msgid "1 window open (or ungrouped)" +msgstr "打開了(或未分組)1 個視窗" #: Settings.ui.h:29 -msgid "Use different for unfocused" -msgstr "為未取得焦點的程式使用不同方案" +msgid "Apply to all" +msgstr "全部套用" #: Settings.ui.h:30 -msgid "Font size (px) of the application titles (default is 14)" -msgstr "應用程式標題字型大小(畫素)(預設值為 14)" +msgid "2 windows open" +msgstr "打開了 2 個視窗" #: Settings.ui.h:31 +msgid "3 windows open" +msgstr "打開了 3 個視窗" + +#: Settings.ui.h:32 +msgid "4+ windows open" +msgstr "打開了 4 個以上的視窗" + +#: Settings.ui.h:33 +msgid "Use different for unfocused" +msgstr "為未聚焦視窗使用不同樣式" + +#: Settings.ui.h:34 +msgid "Font size (px) of the application titles (default is 14)" +msgstr "應用程式標題字型大小(像素)(預設為 14)" + +#: Settings.ui.h:35 msgid "Font weight of application titles" msgstr "應用程式標題字型粗細" -#: Settings.ui.h:32 +#: Settings.ui.h:36 msgid "inherit from theme" msgstr "繼承自主題" -#: Settings.ui.h:33 -msgid "normal" -msgstr "正常" - -#: Settings.ui.h:34 -msgid "lighter" -msgstr "較細" - -#: Settings.ui.h:35 -msgid "bold" -msgstr "粗體" - -#: Settings.ui.h:36 -msgid "bolder" -msgstr "更粗" - #: Settings.ui.h:37 +msgid "normal" +msgstr "normal" + +#: Settings.ui.h:38 +msgid "lighter" +msgstr "lighter" + +#: Settings.ui.h:39 +msgid "bold" +msgstr "bold" + +#: Settings.ui.h:40 +msgid "bolder" +msgstr "bolder" + +#: Settings.ui.h:41 msgid "Font color of the application titles" msgstr "應用程式標題字型顏色" -#: Settings.ui.h:38 +#: Settings.ui.h:42 msgid "Maximum width (px) of the application titles (default is 160)" -msgstr "應用程式最大寬度(畫素)(預設值為 160)" +msgstr "應用程式標題寬度上限(像素)(預設為 160)" -#: Settings.ui.h:39 +#: Settings.ui.h:43 msgid "Use a fixed width for the application titles" -msgstr "為應用程式標題使用固定寬度" +msgstr "為所有應用程式標題使用固定寬度" -#: Settings.ui.h:40 +#: Settings.ui.h:44 msgid "" "The application titles all have the same width, even if their texts are " "shorter than the maximum width. The maximum width value is used as the fixed " "width." msgstr "" -"應用程式標題都將使用相同寬度,即使其文字寬度無法達到最大寬度。最大寬度值將被" -"用於固定寬度值。" - -#: Settings.ui.h:41 -msgid "Display running indicators on unfocused applications" -msgstr "在未取得焦點的應用上顯示執行指示器" - -#: Settings.ui.h:42 -msgid "Use the favorite icons as application launchers" -msgstr "使用收藏的圖示作為應用程式啟動器" - -#: Settings.ui.h:43 -msgid "Only hide the panel when it is obstructed by windows " -msgstr "僅在面板被視窗阻擋時隱藏" - -#: Settings.ui.h:44 -msgid "The panel hides from" -msgstr "觸發面板隱藏的物件" +"所有的應用程式標題共用相同的寬度,即使它們的文字比寬度上限短。寬度上限值被用" +"作固定寬度。" #: Settings.ui.h:45 +msgid "Display running indicators on unfocused applications" +msgstr "在未聚焦的應用程式上顯示正在執行的指示器" + +#: Settings.ui.h:46 +msgid "Use the favorite icons as application launchers" +msgstr "為應用程式啟動器使用收藏的圖示" + +#: Settings.ui.h:47 +msgid "Only hide the panel when it is obstructed by windows " +msgstr "僅在面板被視窗阻擋時才將其隱藏 " + +#: Settings.ui.h:48 +msgid "The panel hides from" +msgstr "面板隱藏自" + +#: Settings.ui.h:49 msgid "All windows" msgstr "所有視窗" -#: Settings.ui.h:46 +#: Settings.ui.h:50 msgid "Focused windows" -msgstr "獲得焦點的視窗" +msgstr "焦點視窗" -#: Settings.ui.h:47 +#: Settings.ui.h:51 msgid "Maximized windows" msgstr "最大化視窗" -#: Settings.ui.h:48 +#: Settings.ui.h:52 msgid "Require pressure at the edge of the screen to reveal the panel" msgstr "在螢幕邊緣受到一定游標壓力時顯示面板" -#: Settings.ui.h:49 +#: Settings.ui.h:53 msgid "Required pressure threshold (px)" -msgstr "所需壓力閾值(畫素)" +msgstr "所需壓力閾值(像素)" -#: Settings.ui.h:50 +#: Settings.ui.h:54 msgid "Required pressure timeout (ms)" -msgstr "所需壓力超時(毫秒)" +msgstr "所需壓力等候時間(毫秒)" -#: Settings.ui.h:51 +#: Settings.ui.h:55 msgid "Allow the panel to be revealed while in fullscreen mode" -msgstr "允許面板在全螢幕模式下顯示" +msgstr "允許在全螢幕模式下顯示面板" -#: Settings.ui.h:52 +#: Settings.ui.h:56 +msgid "Only hide secondary panels (requires multi-monitors option)" +msgstr "僅隱藏次級面板(需要多顯示器選項)" + +#: Settings.ui.h:57 msgid "e.g. i" msgstr "例如 i" -#: Settings.ui.h:53 -msgid "Keyboard shortcut to reveal and hold the panel" -msgstr "顯示並保持面板的鍵盤快捷鍵" - -#: Settings.ui.h:54 -msgid "Syntax: , , , " -msgstr "語法:, , , " - -#: Settings.ui.h:55 -msgid "Hide and reveal animation duration (ms)" -msgstr "隱藏與顯示動畫持續時間(毫秒)" - -#: Settings.ui.h:56 -msgid "Delay before hiding the panel (ms)" -msgstr "隱藏面板之前的延時(毫秒)" - -#: Settings.ui.h:57 -msgid "Preview timeout on icon leave (ms)" -msgstr "離開圖示時的預覽延時(毫秒)" - #: Settings.ui.h:58 -msgid "" -"If set too low, the window preview of running applications may seem to close " -"too quickly when trying to enter the popup. If set too high, the preview may " -"linger too long when moving to an adjacent icon." -msgstr "" -"如果設定過低,在嘗試進入彈出選單時正在執行程式的視窗預覽可能會關閉得過快。如" -"果設定過高,在移動至臨接圖示時預覽可能滯留過長時間。" +msgid "Keyboard shortcut to reveal and hold the panel" +msgstr "顯示並保持面板的鍵盤快速鍵" #: Settings.ui.h:59 -msgid "Time (ms) before showing (100 is default)" -msgstr "顯示前的延時(毫秒,預設為 100)" +msgid "Syntax: , , , " +msgstr "語法: , , , " #: Settings.ui.h:60 -msgid "Enable window peeking" -msgstr "啟用視窗概覽功能" +msgid "Hide and reveal animation duration (ms)" +msgstr "隱藏及顯示動畫持續時間(毫秒)" #: Settings.ui.h:61 -msgid "" -"When hovering over a window preview for some time, the window gets " -"distinguished." -msgstr "在視窗預覽上懸浮一定時間後,該視窗將被區別顯示。" +msgid "Delay before hiding the panel (ms)" +msgstr "隱藏面板前的延遲(毫秒)" #: Settings.ui.h:62 -msgid "Enter window peeking mode timeout (ms)" -msgstr "進入視窗概覽模式延時(毫秒)" +msgid "Time (ms) before showing (100 is default)" +msgstr "顯示前的延遲(毫秒)(預設為 100)" #: Settings.ui.h:63 -msgid "" -"Time of inactivity while hovering over a window preview needed to enter the " -"window peeking mode." -msgstr "為進入視窗概覽模式,需要游標懸浮在預覽視窗上不活動的時間。" +msgid "Time (ms) before hiding (100 is default)" +msgstr "隱藏前的延遲(毫秒)(預設為 100)" #: Settings.ui.h:64 -msgid "Window peeking mode opacity" -msgstr "視窗概覽模式不透明度" +msgid "Animation time (ms)" +msgstr "動畫時間(毫秒)" #: Settings.ui.h:65 -msgid "" -"All windows except for the peeked one have their opacity set to the same " -"value." -msgstr "除正在處於概覽狀態的視窗外,其它所有視窗的不透明度將被設定為同一個值。" +msgid "Middle click on the preview to close the window" +msgstr "在預覽介面點選中鍵以關閉視窗" #: Settings.ui.h:66 -msgid "Middle click to close window" -msgstr "中鍵點選以關閉視窗" +msgid "Window previews preferred size (px)" +msgstr "視窗預覽慣用大小(像素)" #: Settings.ui.h:67 -msgid "Middle click on the preview to close the window." -msgstr "在預覽內容上中鍵點選以關閉視窗。" +msgid "Window previews aspect ratio Y (height)" +msgstr "視窗預覽外觀比例 Y(高度)" #: Settings.ui.h:68 -msgid "Display window title in previews" -msgstr "在預覽中顯示視窗標題" +msgid "Window previews padding (px)" +msgstr "視窗預覽間距(像素)" #: Settings.ui.h:69 -msgid "Width of the window previews (px)" -msgstr "視窗預覽寬度(畫素)" +msgid "1" +msgstr "1" #: Settings.ui.h:70 -msgid "Height of the window previews (px)" -msgstr "視窗預覽高度(畫素)" +msgid "2" +msgstr "2" #: Settings.ui.h:71 -msgid "Padding of the window previews (px)" -msgstr "視窗預覽邊緣寬度(畫素)" +msgid "3" +msgstr "3" #: Settings.ui.h:72 -msgid "Super" -msgstr "Super" +msgid "4" +msgstr "4" #: Settings.ui.h:73 -msgid "Super + Alt" -msgstr "Super + Alt" +msgid "5" +msgstr "5" #: Settings.ui.h:74 -msgid "Hotkeys prefix" -msgstr "熱鍵字首" +msgid "6" +msgstr "6" #: Settings.ui.h:75 -msgid "Hotkeys will either be Super+Number or Super+Alt+Num" -msgstr "熱鍵可以是 Super+數字 或者 Super+Alt+數字" +msgid "7" +msgstr "7" #: Settings.ui.h:76 -msgid "Never" -msgstr "從不" +msgid "8" +msgstr "8" #: Settings.ui.h:77 -msgid "Show temporarily" -msgstr "暫時顯示" +msgid "9" +msgstr "9" #: Settings.ui.h:78 -msgid "Always visible" -msgstr "總是可見" +msgid "10" +msgstr "10" #: Settings.ui.h:79 -msgid "Number overlay" -msgstr "數字附加顯示" +msgid "11" +msgstr "11" #: Settings.ui.h:80 -msgid "" -"Temporarily show the application numbers over the icons when using the " -"hotkeys." -msgstr "使用熱鍵時在應用圖示上臨時顯示其對應數字。" +msgid "12" +msgstr "12" #: Settings.ui.h:81 -msgid "Hide timeout (ms)" -msgstr "隱藏延時(毫秒)" +msgid "13" +msgstr "13" #: Settings.ui.h:82 -msgid "e.g. q" -msgstr "例如 q" +msgid "14" +msgstr "14" #: Settings.ui.h:83 -msgid "Shortcut to show the overlay for 2 seconds" -msgstr "顯示兩秒鐘附加數字的快捷鍵" +msgid "15" +msgstr "15" #: Settings.ui.h:84 -msgid "Show window previews on hotkey" -msgstr "按下熱鍵時顯示視窗預覽" +msgid "16" +msgstr "16" #: Settings.ui.h:85 -msgid "Show previews when the application have multiple instances" -msgstr "應用程式有多個例項時顯示預覽" +msgid "17" +msgstr "17" #: Settings.ui.h:86 -msgid "Current Show Applications icon" -msgstr "當前“顯示應用程式”圖示" +msgid "18" +msgstr "18" #: Settings.ui.h:87 -msgid "Select a Show Applications image icon" -msgstr "選擇一個“顯示應用程式”圖示影象" +msgid "19" +msgstr "19" #: Settings.ui.h:88 -msgid "Custom Show Applications image icon" -msgstr "自定義“顯示應用程式”圖示影象" +msgid "20" +msgstr "20" #: Settings.ui.h:89 -msgid "Show Desktop button width (px)" -msgstr "“顯示桌面”按鈕圖示寬度(畫素)" +msgid "21" +msgstr "21" #: Settings.ui.h:90 -msgid "The panel background opacity is affected by" -msgstr "面板背景不透明度的影響因素" +msgid "Fixed" +msgstr "固定" #: Settings.ui.h:91 -msgid "Change opacity when a window gets closer than (px)" -msgstr "在視窗多靠近時修改不透明度(畫素 px)" +msgid "Window previews aspect ratio X (width)" +msgstr "視窗預覽外觀比例 X(寬度)" + +#: Settings.ui.h:92 +msgid "Use custom opacity for the previews background" +msgstr "為預覽介面背景使用自定義不透明度" #: Settings.ui.h:93 -#, no-c-format -msgid "Change opacity to (%)" -msgstr "將不透明度修改為(%)" +msgid "If disabled, the previews background have the same opacity as the panel" +msgstr "若停用,則預覽介面背景將與面板使用相同的不透明度" #: Settings.ui.h:94 -msgid "0" -msgstr "0" +msgid "Close button and header position" +msgstr "關閉按鈕及頁首位置" #: Settings.ui.h:95 -msgid "Opacity change animation duration (ms)" -msgstr "不透明度變更動畫持續時間(毫秒)" - -#: Settings.ui.h:96 -msgid "Panel screen position" -msgstr "面板螢幕位置" - -#: Settings.ui.h:97 msgid "Bottom" msgstr "底部" -#: Settings.ui.h:98 +#: Settings.ui.h:96 msgid "Top" msgstr "頂部" +#: Settings.ui.h:97 +msgid "Display window preview headers" +msgstr "顯示視窗預覽開頭" + +#: Settings.ui.h:98 +msgid "Font size (px) of the preview titles" +msgstr "預覽標題字型大小(像素)" + #: Settings.ui.h:99 +msgid "Font weight of the preview titles" +msgstr "預覽標題字型粗細" + +#: Settings.ui.h:100 +msgid "Font color of the preview titles" +msgstr "預覽標題字型顏色" + +#: Settings.ui.h:101 +msgid "Enable window peeking" +msgstr "啟用視窗查看" + +#: Settings.ui.h:102 +msgid "" +"When hovering over a window preview for some time, the window gets " +"distinguished." +msgstr "當滑鼠指標在某一視窗預覽介面上懸停一段時間,區分該視窗。" + +#: Settings.ui.h:103 +msgid "Enter window peeking mode timeout (ms)" +msgstr "進入視窗查看模式等候時間(毫秒)" + +#: Settings.ui.h:104 +msgid "50" +msgstr "50" + +#: Settings.ui.h:105 +msgid "" +"Time of inactivity while hovering over a window preview needed to enter the " +"window peeking mode." +msgstr "當在某一視窗預覽介面上暫留並進入視窗查看模式所需的時間。" + +#: Settings.ui.h:106 +msgid "Window peeking mode opacity" +msgstr "視窗查看模式不透明度" + +#: Settings.ui.h:107 +msgid "0" +msgstr "0" + +#: Settings.ui.h:108 +msgid "" +"All windows except for the peeked one have their opacity set to the same " +"value." +msgstr "除被查看的視窗外,所有視窗的不透明度將被設定為同一值。" + +#: Settings.ui.h:109 +msgid "Super" +msgstr "Super" + +#: Settings.ui.h:110 +msgid "Super + Alt" +msgstr "Super + Alt" + +#: Settings.ui.h:111 +msgid "Hotkeys prefix" +msgstr "快速鍵" + +#: Settings.ui.h:112 +msgid "Hotkeys will either be Super+Number or Super+Alt+Num" +msgstr "快速鍵將被設定為 Super+Number 或者 Super+Alt+Num" + +#: Settings.ui.h:113 +msgid "Never" +msgstr "永不" + +#: Settings.ui.h:114 +msgid "Show temporarily" +msgstr "暫時顯示" + +#: Settings.ui.h:115 +msgid "Always visible" +msgstr "永遠顯示" + +#: Settings.ui.h:116 +msgid "Number overlay" +msgstr "編號重疊" + +#: Settings.ui.h:117 +msgid "" +"Temporarily show the application numbers over the icons when using the " +"hotkeys." +msgstr "當使用快速鍵時暫時在應用程式圖示上顯示其編號。" + +#: Settings.ui.h:118 +msgid "Hide timeout (ms)" +msgstr "隱藏等候時間(毫秒)" + +#: Settings.ui.h:119 +msgid "e.g. q" +msgstr "例如 q" + +#: Settings.ui.h:120 +msgid "Shortcut to show the overlay for 2 seconds" +msgstr "顯示 2 秒重疊的快速鍵" + +#: Settings.ui.h:121 +msgid "Show window previews on hotkey" +msgstr "使用快速鍵時顯示視窗預覽介面" + +#: Settings.ui.h:122 +msgid "Show previews when the application have multiple instances" +msgstr "當應用程式有多個實例時顯示預覽" + +#: Settings.ui.h:123 +msgid "Current Show Applications icon" +msgstr "目前的“顯示應用程式”圖示" + +#: Settings.ui.h:124 +msgid "Select a Show Applications image icon" +msgstr "選取一個“顯示應用程式”圖示" + +#: Settings.ui.h:125 +msgid "Custom Show Applications image icon" +msgstr "自訂“顯示應用程式”圖示圖片" + +#: Settings.ui.h:126 +msgid "Show Applications icon side padding (px)" +msgstr "“顯示應用程式”圖示邊框間距" + +#: Settings.ui.h:127 +msgid "Show Desktop button width (px)" +msgstr "“顯示桌面”按鈕大小(像素)" + +#: Settings.ui.h:128 +msgid "Reveal the desktop when hovering the Show Desktop button" +msgstr "當滑鼠指標在“顯示桌面”按鈕上懸停一段時間則預覽桌面" + +#: Settings.ui.h:129 +msgid "Delay before revealing the desktop (ms)" +msgstr "預覽桌面前的延遲(毫秒)" + +#: Settings.ui.h:130 +msgid "Fade duration (ms)" +msgstr "淡出效果持續時間(毫秒)" + +#: Settings.ui.h:131 +msgid "The panel background opacity is affected by" +msgstr "面板背景不透明度受影響於" + +#: Settings.ui.h:132 +msgid "Change opacity when a window gets closer than (px)" +msgstr "當視窗靠近時改變不透明度(像素)" + +#: Settings.ui.h:134 +#, no-c-format +msgid "Change opacity to (%)" +msgstr "改變不透明度為(%)" + +#: Settings.ui.h:135 +msgid "Opacity change animation duration (ms)" +msgstr "不透明度變化動畫持續時間(毫秒)" + +#: Settings.ui.h:136 +msgid "Panel screen position" +msgstr "面板在螢幕中所處的位置" + +#: Settings.ui.h:137 msgid "Taskbar position" msgstr "工作列位置" -#: Settings.ui.h:100 +#: Settings.ui.h:138 msgid "Left, with plugin icons collapsed to right" -msgstr "左側,並且外掛圖示收縮到右側" +msgstr "左側,並將外掛圖示摺疊到右側" -#: Settings.ui.h:101 +#: Settings.ui.h:139 msgid "Left, with fixed center plugin icons" -msgstr "左側,並且固定居中外掛圖示" +msgstr "左側,並固定居中外掛圖示" -#: Settings.ui.h:102 +#: Settings.ui.h:140 msgid "Left, with floating center plugin icons" -msgstr "左側,並且浮動居中外掛圖示" +msgstr "左側,並浮動居中外掛圖示" -#: Settings.ui.h:103 +#: Settings.ui.h:141 msgid "Center, fixed in middle of monitor" -msgstr "中間,固定在顯示屏中間" +msgstr "中間,固定於顯示器中間" -#: Settings.ui.h:104 +#: Settings.ui.h:142 msgid "Center, floating between left and right elements" -msgstr "中間,在左側元素和右側元素之間浮動" +msgstr "中間,在左側及右側元素中浮動" -#: Settings.ui.h:105 +#: Settings.ui.h:143 msgid "Clock location" msgstr "時鐘位置" -#: Settings.ui.h:106 +#: Settings.ui.h:144 msgid "Left of plugin icons" msgstr "外掛圖示左側" -#: Settings.ui.h:107 +#: Settings.ui.h:145 msgid "Right of plugin icons" msgstr "外掛圖示右側" -#: Settings.ui.h:108 +#: Settings.ui.h:146 msgid "Left of system indicators" msgstr "系統指示器左側" -#: Settings.ui.h:109 +#: Settings.ui.h:147 msgid "Right of system indicators" msgstr "系統指示器右側" -#: Settings.ui.h:110 +#: Settings.ui.h:148 msgid "Left of taskbar" msgstr "工作列左側" -#: Settings.ui.h:111 +#: Settings.ui.h:149 msgid "Right of taskbar" msgstr "工作列右側" -#: Settings.ui.h:112 +#: Settings.ui.h:150 msgid "Display the main panel on" msgstr "將主面板顯示於" -#: Settings.ui.h:113 +#: Settings.ui.h:151 msgid "Display panels on all monitors" msgstr "在所有顯示器上顯示面板" -#: Settings.ui.h:114 +#: Settings.ui.h:152 msgid "Panel Intellihide" msgstr "面板智慧隱藏" -#: Settings.ui.h:115 +#: Settings.ui.h:153 msgid "Hide and reveal the panel according to preferences" -msgstr "按照配置隱藏和顯示面板" +msgstr "依偏好設定隱藏和顯示面板" -#: Settings.ui.h:116 +#: Settings.ui.h:154 msgid "Position" msgstr "位置" -#: Settings.ui.h:117 +#: Settings.ui.h:155 msgid "" "Panel Size\n" "(default is 48)" @@ -607,173 +793,185 @@ msgstr "" "面板大小\n" "(預設為 48)" -#: Settings.ui.h:119 +#: Settings.ui.h:157 msgid "" "App Icon Margin\n" "(default is 8)" msgstr "" -"應用圖示邊緣空白\n" +"應用圖示邊界\n" "(預設為 8)" -#: Settings.ui.h:121 +#: Settings.ui.h:159 msgid "" "App Icon Padding\n" "(default is 4)" msgstr "" -"應用圖示邊緣空白\n" +"應用圖示邊框間距\n" "(預設為 4)" -#: Settings.ui.h:123 +#: Settings.ui.h:161 msgid "Running indicator position" msgstr "執行指示器位置" -#: Settings.ui.h:124 +#: Settings.ui.h:162 msgid "Running indicator style (Focused app)" -msgstr "執行指示器風格(取得焦點的應用)" +msgstr "執行指示器樣式(焦點應用)" -#: Settings.ui.h:125 +#: Settings.ui.h:163 msgid "Dots" msgstr "點" -#: Settings.ui.h:126 +#: Settings.ui.h:164 msgid "Squares" msgstr "方塊" -#: Settings.ui.h:127 +#: Settings.ui.h:165 msgid "Dashes" -msgstr "橫線" +msgstr "虛線" -#: Settings.ui.h:128 +#: Settings.ui.h:166 msgid "Segmented" -msgstr "間斷線" +msgstr "分割線" -#: Settings.ui.h:129 +#: Settings.ui.h:167 msgid "Solid" msgstr "實心" -#: Settings.ui.h:130 +#: Settings.ui.h:168 msgid "Ciliora" msgstr "Ciliora" -#: Settings.ui.h:131 +#: Settings.ui.h:169 msgid "Metro" msgstr "Metro" -#: Settings.ui.h:132 +#: Settings.ui.h:170 msgid "Running indicator style (Unfocused apps)" -msgstr "執行指示器風格(未取得焦點的應用)" +msgstr "執行指示器樣式(未聚焦應用)" -#: Settings.ui.h:133 +#: Settings.ui.h:171 msgid "Override panel theme background color " -msgstr "覆蓋面板主題背景顏色 " +msgstr "覆寫面板主題背景色 " -#: Settings.ui.h:134 +#: Settings.ui.h:172 msgid "Override panel theme background opacity" -msgstr "覆蓋面板主題背景不透明度" +msgstr "覆寫面板主題背景不透明度" -#: Settings.ui.h:136 +#: Settings.ui.h:174 #, no-c-format msgid "Panel background opacity (%)" msgstr "面板背景不透明度(%)" -#: Settings.ui.h:137 +#: Settings.ui.h:175 msgid "Dynamic background opacity" msgstr "動態背景不透明度" -#: Settings.ui.h:138 +#: Settings.ui.h:176 msgid "Change opacity when a window gets close to the panel" -msgstr "在有視窗接近面板時修改不透明度" +msgstr "在有視窗接近面板時改變不透明度" -#: Settings.ui.h:139 +#: Settings.ui.h:177 msgid "Override panel theme gradient " -msgstr "覆蓋面板主題漸變 " +msgstr "覆寫面板主題漸變 " -#: Settings.ui.h:141 +#: Settings.ui.h:179 #, no-c-format msgid "Gradient top color and opacity (%)" msgstr "漸變頂部顏色和不透明度(%)" -#: Settings.ui.h:143 +#: Settings.ui.h:181 #, no-c-format msgid "Gradient bottom color and opacity (%)" msgstr "漸變底部顏色和不透明度(%)" -#: Settings.ui.h:144 +#: Settings.ui.h:182 msgid "Style" -msgstr "風格" +msgstr "樣式" -#: Settings.ui.h:145 +#: Settings.ui.h:183 msgid "Show favorite applications" -msgstr "顯示收藏的應用程式" +msgstr "顯示收藏應用程式" -#: Settings.ui.h:146 +#: Settings.ui.h:184 +msgid "Show running applications" +msgstr "顯示正在執行的應用程式" + +#: Settings.ui.h:185 msgid "Show Applications icon" -msgstr "顯示應用圖示" +msgstr "顯示應用程式圖示" -#: Settings.ui.h:147 +#: Settings.ui.h:186 msgid "Animate Show Applications." -msgstr "動畫化顯示應用程式。" +msgstr "動畫化顯示應用程式" -#: Settings.ui.h:148 +#: Settings.ui.h:187 msgid "Show Activities button" -msgstr "顯示活動按鈕" +msgstr "顯示活動按鈕" -#: Settings.ui.h:149 +#: Settings.ui.h:188 msgid "Show Desktop button" -msgstr "顯示桌面按鈕" +msgstr "顯示桌面按鈕" -#: Settings.ui.h:150 +#: Settings.ui.h:189 msgid "Show AppMenu button" -msgstr "顯示應用選單按鈕" +msgstr "顯示應用選單按鈕" -#: Settings.ui.h:151 +#: Settings.ui.h:190 msgid "Top Bar > Show App Menu must be enabled in Tweak Tool" -msgstr "必須在優化工具中啟用頂欄 > 顯示應用選單" +msgstr "必須在調校工具中啟用頂端列 > 應用程式選單" -#: Settings.ui.h:152 +#: Settings.ui.h:191 msgid "Show window previews on hover" msgstr "懸停時顯示視窗預覽" -#: Settings.ui.h:153 +#: Settings.ui.h:192 +msgid "Show tooltip on hover" +msgstr "懸停時顯示工具提示" + +#: Settings.ui.h:193 msgid "Isolate Workspaces" msgstr "隔離工作區" -#: Settings.ui.h:154 +#: Settings.ui.h:194 msgid "Ungroup applications" msgstr "取消應用程式分組" -#: Settings.ui.h:155 +#: Settings.ui.h:195 msgid "Behaviour when clicking on the icon of a running application." -msgstr "點選正在執行應用程式圖示時的行為。" +msgstr "點選正在執行的應用程式圖示時的行為。" -#: Settings.ui.h:156 +#: Settings.ui.h:196 msgid "Click action" msgstr "點選行為" -#: Settings.ui.h:157 +#: Settings.ui.h:197 +msgid "Toggle windows" +msgstr "切換視窗" + +#: Settings.ui.h:198 msgid "" "Enable Super+(0-9) as shortcuts to activate apps. It can also be used " "together with Shift and Ctrl." msgstr "" -"將 Super+(0-9) 作為啟用應用程式的快捷鍵。它也可以和 Shift 或 Ctrl 共同使用。" +"將 Super+(0-9) 作為啟用應用程式的快速鍵。它也可以和 Shift 及 Ctrl 共同使用。" -#: Settings.ui.h:158 +#: Settings.ui.h:199 msgid "Use hotkeys to activate apps" msgstr "使用熱鍵啟用應用" -#: Settings.ui.h:159 +#: Settings.ui.h:200 msgid "Behavior" msgstr "行為" -#: Settings.ui.h:160 +#: Settings.ui.h:201 msgid "" "Tray Font Size\n" "(0 = theme default)" msgstr "" -"托盤字型大小\n" +"工具列字型大小\n" "(0 = 主題預設)" -#: Settings.ui.h:162 +#: Settings.ui.h:203 msgid "" "LeftBox Font Size\n" "(0 = theme default)" @@ -781,79 +979,83 @@ msgstr "" "LeftBox 字型大小\n" "(0 = 主題預設)" -#: Settings.ui.h:164 +#: Settings.ui.h:205 msgid "" "Tray Item Padding\n" "(-1 = theme default)" msgstr "" -"托盤項邊緣空白\n" +"工具列項目間距\n" "(-1 = 主題預設)" -#: Settings.ui.h:166 +#: Settings.ui.h:207 msgid "" "Status Icon Padding\n" "(-1 = theme default)" msgstr "" -"狀態圖示邊緣空白\n" +"狀態圖示間距\n" "(-1 = 主題預設)" -#: Settings.ui.h:168 +#: Settings.ui.h:209 msgid "" "LeftBox Padding\n" "(-1 = theme default)" msgstr "" -"LeftBox 邊緣空白\n" +"LeftBox 間距\n" "(-1 = 主題預設)" -#: Settings.ui.h:170 +#: Settings.ui.h:211 msgid "Animate switching applications" -msgstr "動畫切換應用程式" +msgstr "使切換應用程式時出現動畫" -#: Settings.ui.h:171 +#: Settings.ui.h:212 msgid "Animate launching new windows" -msgstr "動畫啟動新視窗" +msgstr "使啟動新視窗時出現動畫" -#: Settings.ui.h:172 +#: Settings.ui.h:213 msgid "Keep original gnome-shell dash (overview)" -msgstr "保持原始 gnome-shell dash(預覽)" +msgstr "保留原始 gnome-shell dash(預覽)" -#: Settings.ui.h:173 +#: Settings.ui.h:214 +msgid "Activate panel menu buttons (e.g. date menu) on click only" +msgstr "僅在點選時啟用面板選單按鈕(例如日期選單)" + +#: Settings.ui.h:215 msgid "App icon secondary (right-click) menu" msgstr "應用圖示次級(右鍵點選)選單" -#: Settings.ui.h:175 +#: Settings.ui.h:217 msgid "Fine-Tune" msgstr "微調" -#: Settings.ui.h:176 +#: Settings.ui.h:218 msgid "version: " -msgstr "版本:" +msgstr "版本: " -#: Settings.ui.h:177 +#: Settings.ui.h:219 msgid "GitHub" msgstr "GitHub" -#: Settings.ui.h:178 +#: Settings.ui.h:220 msgid "" "Use the buttons below to create a settings file from your current " "preferences that can be imported on a different machine." msgstr "" -"使用下面的按鈕以基於您當前的首選項建立一個設定檔案;您稍後可使用該檔案在其他" -"機器上匯入設定。" +"使用下面的按鈕以基於您目前的配置建立一份設定檔;您稍後可使用該檔案在其他機器" +"上匯入設定。" -#: Settings.ui.h:179 +#: Settings.ui.h:221 msgid "Export and import settings" -msgstr "匯入匯出設定" +msgstr "匯入及匯出設定" -#: Settings.ui.h:180 +#: Settings.ui.h:222 msgid "Export to file" msgstr "匯出至檔案" -#: Settings.ui.h:181 +#: Settings.ui.h:223 msgid "Import from file" msgstr "從檔案匯入" -#: Settings.ui.h:182 +#: Settings.ui.h:224 msgid "" "This program comes with ABSOLUTELY NO WARRANTY.\n" "See the 本程式不提供任何擔保。\n" "請檢視 GNU 通用公共許可證,第二版或更新版本 以瞭解詳情。" +"\">GNU 通用公共許可證 (GPL),第二版或更新版 以瞭解詳情。" -#: Settings.ui.h:184 +#: Settings.ui.h:226 msgid "About" msgstr "關於" - -#~ msgid "Natural" -#~ msgstr "自然" - -#~ msgid "Left side of panel" -#~ msgstr "面板左側" - -#~ msgid "Centered in content" -#~ msgstr "內容居中" - -#~ msgid "Github" -#~ msgstr "Github" - -#~ msgid "5" -#~ msgstr "5" From a95160d399208fc96931efbbe653ae508ffa8889 Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Fri, 2 Aug 2019 14:43:14 -0400 Subject: [PATCH 02/28] Use ExtensionManager class on disable for 3.34 --- extension.js | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/extension.js b/extension.js index d2e5e5d..ddabe0a 100644 --- a/extension.js +++ b/extension.js @@ -18,11 +18,6 @@ */ -const Me = imports.misc.extensionUtils.getCurrentExtension(); -const Convenience = Me.imports.convenience; -const PanelManager = Me.imports.panelManager; -const Utils = Me.imports.utils; - const Main = imports.ui.main; const Meta = imports.gi.Meta; const Gio = imports.gi.Gio; @@ -32,10 +27,14 @@ const Shell = imports.gi.Shell; const St = imports.gi.St; const WindowManager = imports.ui.windowManager; const ExtensionUtils = imports.misc.extensionUtils; -const ExtensionSystem = imports.ui.extensionSystem; const Mainloop = imports.mainloop; const Signals = imports.signals; +const Me = ExtensionUtils.getCurrentExtension(); +const Convenience = Me.imports.convenience; +const PanelManager = Me.imports.panelManager; +const Utils = Me.imports.utils; + const UBUNTU_DOCK_UUID = 'ubuntu-dock@ubuntu.com'; let panelManager; @@ -43,6 +42,7 @@ let settings; let oldDash; let extensionChangedHandler; let disabledUbuntuDock; +let extensionSystem = (Main.extensionManager || imports.ui.extensionSystem); function init() { Convenience.initTranslations(Utils.TRANSLATION_DOMAIN); @@ -50,7 +50,7 @@ function init() { function enable() { // The Ubuntu Dock extension might get enabled after this extension - extensionChangedHandler = (Main.extensionManager || ExtensionSystem).connect('extension-state-changed', (data, extension) => { + extensionChangedHandler = extensionSystem.connect('extension-state-changed', (data, extension) => { if (extension.uuid === UBUNTU_DOCK_UUID && extension.state === 1) { _enable(); } @@ -70,11 +70,13 @@ function _enable() { if (ubuntuDock && ubuntuDock.stateObj && ubuntuDock.stateObj.dockManager) { // Disable Ubuntu Dock + let extensionOrder = (extensionSystem.extensionOrder || extensionSystem._extensionOrder); + St.ThemeContext.get_for_stage(global.stage).get_theme().unload_stylesheet(ubuntuDock.stylesheet); ubuntuDock.stateObj.disable(); disabledUbuntuDock = true; - ubuntuDock.state = ExtensionSystem.ExtensionState.DISABLED; - ExtensionSystem.extensionOrder.splice(ExtensionSystem.extensionOrder.indexOf(UBUNTU_DOCK_UUID), 1); + ubuntuDock.state = 2; //ExtensionState.DISABLED + extensionOrder.splice(extensionOrder.indexOf(UBUNTU_DOCK_UUID), 1); //reset to prevent conflicts with the ubuntu-dock if (panelManager) { @@ -125,12 +127,12 @@ function disable(reset) { ); if (!reset) { - ExtensionSystem.disconnect(extensionChangedHandler); + extensionSystem.disconnect(extensionChangedHandler); delete global.dashToPanel; - // Re-enable Ubuntu Dock if it exists and if it was disabled by dash to panel - if (disabledUbuntuDock && ExtensionUtils.extensions[UBUNTU_DOCK_UUID] && Main.sessionMode.allowExtensions) { - ExtensionSystem.enableExtension(UBUNTU_DOCK_UUID); + // Re-enable Ubuntu Dock if it was disabled by dash to panel + if (disabledUbuntuDock && Main.sessionMode.allowExtensions) { + extensionSystem.enableExtension(UBUNTU_DOCK_UUID); } } } \ No newline at end of file From 84509027b845e246e38f16dbb4c983c25c7e57cd Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Thu, 8 Aug 2019 17:54:38 -0400 Subject: [PATCH 03/28] Fix intellihide container --- intellihide.js | 14 +++++++------- panel.js | 11 ++++++----- taskbar.js | 3 +++ windowPreview.js | 6 ++---- 4 files changed, 18 insertions(+), 16 deletions(-) diff --git a/intellihide.js b/intellihide.js index 1af32d7..a42b28c 100644 --- a/intellihide.js +++ b/intellihide.js @@ -65,12 +65,12 @@ var Intellihide = Utils.defineClass({ this._intellihideChangedId = this._dtpSettings.connect('changed::intellihide', () => this._changeEnabledStatus()); this._intellihideOnlySecondaryChangedId = this._dtpSettings.connect('changed::intellihide-only-secondary', () => this._changeEnabledStatus()); - this._enabled = false; + this.enabled = false; this._changeEnabledStatus(); }, enable: function(reset) { - this._enabled = true; + this.enabled = true; this._monitor = this._dtpPanel.monitor; this._animationDestination = -1; this._pendingUpdate = false; @@ -117,14 +117,14 @@ var Intellihide = Utils.defineClass({ this._revealPanel(!reset); - this._enabled = false; + this.enabled = false; }, destroy: function() { this._dtpSettings.disconnect(this._intellihideChangedId); this._dtpSettings.disconnect(this._intellihideOnlySecondaryChangedId); - if (this._enabled) { + if (this.enabled) { this.disable(); } }, @@ -134,7 +134,7 @@ var Intellihide = Utils.defineClass({ }, revealAndHold: function(holdStatus) { - if (this._enabled && !this._holdStatus) { + if (this.enabled && !this._holdStatus) { this._revealPanel(); } @@ -144,7 +144,7 @@ var Intellihide = Utils.defineClass({ release: function(holdStatus) { this._holdStatus -= holdStatus; - if (this._enabled && !this._holdStatus) { + if (this.enabled && !this._holdStatus) { this._queueUpdatePanelPosition(); } }, @@ -159,7 +159,7 @@ var Intellihide = Utils.defineClass({ let onlySecondary = this._dtpSettings.get_boolean('intellihide-only-secondary'); let enabled = intellihide && (this._dtpPanel.isSecondary || !onlySecondary); - if (this._enabled !== enabled) { + if (this.enabled !== enabled) { this[enabled ? 'enable' : 'disable'](); } }, diff --git a/panel.js b/panel.js index 786ba2a..cc8ab18 100644 --- a/panel.js +++ b/panel.js @@ -517,6 +517,7 @@ var dtpPanelWrapper = Utils.defineClass({ _setPanelPosition: function() { let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor; let size = this._dtpSettings.get_int('panel-size'); + let container = this.intellihide && this.intellihide.enabled ? this.panelBox.get_parent() : this.panelBox; if(scaleFactor) size = size*scaleFactor; @@ -530,7 +531,7 @@ var dtpPanelWrapper = Utils.defineClass({ this._myPanelGhost.set_height(isTop ? 0 : size); if(isTop) { - this.panelBox.set_position(this.monitor.x, this.monitor.y); + container.set_position(this.monitor.x, this.monitor.y); this._removeTopLimit(); @@ -541,7 +542,7 @@ var dtpPanelWrapper = Utils.defineClass({ if(!this.panel.actor.has_style_class_name('dashtopanelTop')) this.panel.actor.add_style_class_name('dashtopanelTop'); } else { - this.panelBox.set_position(this.monitor.x, this.monitor.y + this.monitor.height - this.panelBox.height); + container.set_position(this.monitor.x, this.monitor.y + this.monitor.height - this.panelBox.height); if (!this._topLimit) { this._topLimit = new St.BoxLayout({ name: 'topLimit', vertical: true }); @@ -841,15 +842,15 @@ var dtpSecondaryPanel = Utils.defineClass({ }, //next 3 functions are needed by other extensions to add elements to the secondary panel - addToStatusArea(role, indicator, position, box) { + addToStatusArea: function(role, indicator, position, box) { return Main.panel.addToStatusArea.call(this, role, indicator, position, box); }, - _addToPanelBox(role, indicator, position, box) { + _addToPanelBox: function(role, indicator, position, box) { Main.panel._addToPanelBox.call(this, role, indicator, position, box); }, - _onMenuSet(indicator) { + _onMenuSet: function(indicator) { Main.panel._onMenuSet.call(this, indicator); }, }); diff --git a/taskbar.js b/taskbar.js index 4765956..0d0d868 100644 --- a/taskbar.js +++ b/taskbar.js @@ -363,7 +363,10 @@ var taskbar = Utils.defineClass({ this._showAppsIconWrapper.destroy(); this._container.destroy(); + this.previewMenu.disable(); + this.previewMenu.destroy(); + this._disconnectWorkspaceSignals(); }, diff --git a/windowPreview.js b/windowPreview.js index d756a16..5d4c204 100644 --- a/windowPreview.js +++ b/windowPreview.js @@ -153,10 +153,8 @@ var PreviewMenu = Utils.defineClass({ this.close(true); - Main.layoutManager._untrackActor(this); - Main.uiGroup.remove_child(this); - - this.destroy(); + Main.layoutManager.untrackChrome(this.menu); + Main.layoutManager.removeChrome(this); }, requestOpen: function(appIcon) { From 803847d814dcd1517bc9f0bea85ed48378137c89 Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Sat, 10 Aug 2019 15:09:32 -0400 Subject: [PATCH 04/28] Fix actor warnings and declare 3.34 support --- metadata.json | 2 +- panelManager.js | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/metadata.json b/metadata.json index e3db8da..ecea93d 100644 --- a/metadata.json +++ b/metadata.json @@ -3,7 +3,7 @@ "uuid": "dash-to-panel@jderose9.github.com", "name": "Dash to Panel", "description": "An icon taskbar for the Gnome Shell. This extension moves the dash into the gnome main panel so that the application launchers and system tray are combined into a single panel, similar to that found in KDE Plasma and Windows 7+. A separate dock is no longer needed for easy access to running and favorited applications.\n\nFor a more traditional experience, you may also want to use Tweak Tool to enable Windows > Titlebar Buttons > Minimize & Maximize.\n\nFor the best support, please report any issues on Github. Dash-to-panel is developed and maintained by @jderose9 and @charlesg99.", -"shell-version": [ "3.18", "3.20", "3.22", "3.24", "3.26", "3.28", "3.30", "3.32" ], +"shell-version": [ "3.18", "3.20", "3.22", "3.24", "3.26", "3.28", "3.30", "3.32", "3.34" ], "url": "https://github.com/jderose9/dash-to-panel", "gettext-domain": "dash-to-panel", "version": 9999 diff --git a/panelManager.js b/panelManager.js index 0622455..0e9c8a4 100755 --- a/panelManager.js +++ b/panelManager.js @@ -55,6 +55,8 @@ var dtpPanelManager = Utils.defineClass({ _init: function(settings) { this._dtpSettings = settings; this.overview = new Overview.dtpOverview(settings); + + Main.overview.viewSelector.appDisplay._views.forEach(v => Utils.wrapActor(v.view._grid)); }, enable: function(reset) { From 2610811ef4b8f534e122d5848c5772043c67e2a5 Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Sun, 11 Aug 2019 22:24:02 -0400 Subject: [PATCH 05/28] Change workspace when scrolling over the panel --- panel.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/panel.js b/panel.js index cc8ab18..9727ad4 100644 --- a/panel.js +++ b/panel.js @@ -237,6 +237,11 @@ var dtpPanelWrapper = Utils.defineClass({ this.panel._centerBox, 'actor-added', () => this._setClockLocation(this._dtpSettings.get_string('location-clock')) + ], + [ + this.panel.actor, + 'scroll-event', + this._onPanelMouseScroll.bind(this) ] ); @@ -736,6 +741,25 @@ var dtpPanelWrapper = Utils.defineClass({ Main.overview.hide(); }, + + _onPanelMouseScroll: function(actor, event) { + let direction = 0; + + switch (event.get_scroll_direction()) { + case Clutter.ScrollDirection.UP: + case Clutter.ScrollDirection.LEFT: + direction = 'up'; + break; + case Clutter.ScrollDirection.DOWN: + case Clutter.ScrollDirection.RIGHT: + direction = 'down'; + break; + } + + if (direction) { + Main.wm._showWorkspaceSwitcher(global.display, 0, { get_name: () => 'switch---' + direction }); + } + }, }); var dtpSecondaryPanel = Utils.defineClass({ From c5ddbd81393c4b38655c5311d3e5676831cf954b Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Mon, 12 Aug 2019 12:21:28 -0400 Subject: [PATCH 06/28] Fix workspace isolation signals --- overview.js | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/overview.js b/overview.js index 384fc25..03862f7 100644 --- a/overview.js +++ b/overview.js @@ -53,15 +53,21 @@ var dtpOverview = Utils.defineClass({ this._injectionsHandler = new Utils.InjectionsHandler(); this._signalsHandler = new Utils.GlobalSignalsHandler(); - this._isolation = this._optionalWorkspaceIsolation(); + this._optionalWorkspaceIsolation(); this._optionalHotKeys(); this._optionalNumberOverlay(); this._toggleDash(); - this._stockgsKeepDashId = this._dtpSettings.connect('changed::stockgs-keep-dash', () => this._toggleDash()); + + this._signalsHandler.add([ + this._dtpSettings, + 'changed::stockgs-keep-dash', + () => this._toggleDash() + ]); }, disable: function () { - this._dtpSettings.disconnect(this._stockgsKeepDashId); + this._signalsHandler.destroy(); + this._injectionsHandler.destroy(); this._toggleDash(true); @@ -71,8 +77,6 @@ var dtpOverview = Utils.defineClass({ // Remove key bindings this._disableHotKeys(); this._disableExtraShortcut(); - - this._isolation.disable.apply(this); }, _toggleDash: function(visible) { @@ -101,10 +105,9 @@ var dtpOverview = Utils.defineClass({ * Isolate overview to open new windows for inactive apps */ _optionalWorkspaceIsolation: function() { - let label = 'optionalWorkspaceIsolation'; - - this._signalsHandler.addWithLabel(label, [ + + this._signalsHandler.add([ this._dtpSettings, 'changed::isolate-workspaces', Lang.bind(this, function() { @@ -141,9 +144,6 @@ var dtpOverview = Utils.defineClass({ function disable() { this._signalsHandler.removeWithLabel(label); this._injectionsHandler.removeWithLabel(label); - - this._signalsHandler.destroy(); - this._injectionsHandler.destroy(); } function IsolatedOverview() { @@ -159,8 +159,6 @@ var dtpOverview = Utils.defineClass({ return Main.activateWindow(windows[0]); return this.open_new_window(-1); } - - return { disable: disable }; }, // Hotkeys From 26140c5152a37b70a756dc6f95bab2ca79106371 Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Mon, 12 Aug 2019 12:28:32 -0400 Subject: [PATCH 07/28] Change focused window when scrolling over appIcon --- appIcons.js | 35 +++++++++++++++++++++++++++++++++++ panel.js | 13 +------------ utils.js | 17 +++++++++++++++++ 3 files changed, 53 insertions(+), 12 deletions(-) diff --git a/appIcons.js b/appIcons.js index 0865099..7f8bcde 100644 --- a/appIcons.js +++ b/appIcons.js @@ -197,6 +197,8 @@ var taskbarAppIcon = Utils.defineClass({ Lang.bind(this, this._updateWindowTitle)); } + this._scrollEventId = this.actor.connect('scroll-event', this._onMouseScroll.bind(this)); + this._overviewWindowDragEndId = Main.overview.connect('window-drag-end', Lang.bind(this, this._onOverviewWindowDragEnd)); @@ -296,6 +298,10 @@ var taskbarAppIcon = Utils.defineClass({ this.actor.disconnect(this._hoverChangeId); } + if (this._scrollEventId) { + this.actor.disconnect(this._scrollEventId); + } + for (let i = 0; i < this._dtpSettingsSignalIds.length; ++i) { this._dtpSettings.disconnect(this._dtpSettingsSignalIds[i]); } @@ -334,6 +340,35 @@ var taskbarAppIcon = Utils.defineClass({ }); }, + _onMouseScroll: function(actor, event) { + if (!this.window && !this._nWindows) { + return; + } + + let direction = Utils.getMouseScrollDirection(event); + + if (direction) { + let windows = this.getAppIconInterestingWindows(); + + windows.sort(Taskbar.sortWindowsCompareFunction); + + let windowIndex = windows.indexOf(global.display.focus_window); + let nextWindowIndex = windowIndex < 0 ? + this.window ? windows.indexOf(this.window) : 0 : + windowIndex + (direction == 'up' ? 1 : -1); + + if (nextWindowIndex == windows.length) { + nextWindowIndex = 0; + } else if (nextWindowIndex < 0) { + nextWindowIndex = windows.length - 1; + } + + if (windowIndex != nextWindowIndex) { + Main.activateWindow(windows[nextWindowIndex]); + } + } + }, + _showDots: function() { // Just update style if dots already exist if (this._focusedDots && this._unfocusedDots) { diff --git a/panel.js b/panel.js index 9727ad4..fbdb704 100644 --- a/panel.js +++ b/panel.js @@ -743,18 +743,7 @@ var dtpPanelWrapper = Utils.defineClass({ }, _onPanelMouseScroll: function(actor, event) { - let direction = 0; - - switch (event.get_scroll_direction()) { - case Clutter.ScrollDirection.UP: - case Clutter.ScrollDirection.LEFT: - direction = 'up'; - break; - case Clutter.ScrollDirection.DOWN: - case Clutter.ScrollDirection.RIGHT: - direction = 'down'; - break; - } + let direction = Utils.getMouseScrollDirection(event); if (direction) { Main.wm._showWorkspaceSwitcher(global.display, 0, { get_name: () => 'switch---' + direction }); diff --git a/utils.js b/utils.js index 963312a..d2d39e4 100644 --- a/utils.js +++ b/utils.js @@ -380,6 +380,23 @@ var getrgbaColor = function(color, alpha, offset) { return 'rgba(' + rgb.red + ',' + rgb.green + ',' + rgb.blue + ',' + (Math.floor(alpha * 100) * 0.01) + '); ' ; }; +var getMouseScrollDirection = function(event) { + let direction; + + switch (event.get_scroll_direction()) { + case Clutter.ScrollDirection.UP: + case Clutter.ScrollDirection.LEFT: + direction = 'up'; + break; + case Clutter.ScrollDirection.DOWN: + case Clutter.ScrollDirection.RIGHT: + direction = 'down'; + break; + } + + return direction; +}; + /* * This is a copy of the same function in utils.js, but also adjust horizontal scrolling * and perform few further cheks on the current value to avoid changing the values when From 6d20184d3990dafe9d211bc21c6b7382d4ee04c2 Mon Sep 17 00:00:00 2001 From: Jason DeRose Date: Mon, 12 Aug 2019 22:14:33 -0400 Subject: [PATCH 08/28] Update translation credits. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 24948ce..b454bc1 100644 --- a/README.md +++ b/README.md @@ -176,7 +176,7 @@ Ideas for recursing child actors and assigning inline styles are based on code f @imrvelj, @Teslator, @bil-elmoussaoui, @brandon-schumann, @sw9, @rockon999 , @lexruee, @3v1n0, @freeroot, @moqmar, @ArtyomZorin, @lkc0987, @saibotk, @vanillajonathan, @Zkdc #### Translations: -@frnogueira (pt_BR), @zeten30 (cs), @franglais125 (es), @LaurentTreguier / @SolarLiner (fr), @elsieholmes (uk), @hosiet (zh\_CN), @jonnius (de), @urbalazs / @pappfer (hu), @crayxt (kk), @pkomur / MartinPL (pl), @AlexGluck / @GoodNike (ru), @sicklylife-jp (jp), @oltulu / @TeknoMobil / @daenney (tr), @sbadux (it), @OriginCode (zh\_TW) +@frnogueira (pt_BR), @zeten30 (cs), @franglais125 (es), @LaurentTreguier / @SolarLiner (fr), @elsieholmes (uk), @hosiet (zh\_CN), @jonnius (de), @urbalazs / @pappfer (hu), @crayxt (kk), @pkomur / @MartinPL (pl), @AlexGluck / @GoodNike (ru), @sicklylife-jp (jp), @oltulu / @TeknoMobil / @daenney (tr), @sbadux (it), @OriginCode / @pan93412 (zh\_TW) ## From 4e1bf5803a388620d684ba17afa083faf9ab6ee8 Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Mon, 12 Aug 2019 22:47:32 -0400 Subject: [PATCH 09/28] Display preview on click when using TOGGLE-SHOWPREVIEW --- appIcons.js | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/appIcons.js b/appIcons.js index 7f8bcde..a184742 100644 --- a/appIcons.js +++ b/appIcons.js @@ -737,8 +737,8 @@ var taskbarAppIcon = Utils.defineClass({ } let appCount = this.getAppIconInterestingWindows().length; - if (!(buttonAction == "TOGGLE-SHOWPREVIEW") || (appCount <= 1)) - this._previewMenu.close(true); + let previewedAppIcon = this._previewMenu.getCurrentAppIcon(); + this._previewMenu.close(); // We check if the app is running, and that the # of windows is > 0 in // case we use workspace isolation, @@ -791,10 +791,7 @@ var taskbarAppIcon = Utils.defineClass({ if (appHasFocus || button == 2 || modifiers & Clutter.ModifierType.SHIFT_MASK) { // minimize all windows on double click and always in the case of primary click without // additional modifiers - let click_count = 0; - if (Clutter.EventType.CLUTTER_BUTTON_PRESS) - click_count = event.get_click_count(); - let all_windows = (button == 1 && ! modifiers) || click_count > 1; + let all_windows = (button == 1 && ! modifiers) || event.get_click_count() > 1; minimizeWindow(this.app, all_windows, this._dtpSettings, monitor); } else @@ -834,14 +831,15 @@ var taskbarAppIcon = Utils.defineClass({ else activateFirstWindow(this.app, this._dtpSettings, monitor); } else { - // minimize all windows if double clicked - if (Clutter.EventType.CLUTTER_BUTTON_PRESS) { - let click_count = event.get_click_count(); - if(click_count > 1) { - minimizeWindow(this.app, true, this._dtpSettings, monitor); - } + if (event.get_click_count() > 1) { + // minimize all windows if double clicked + minimizeWindow(this.app, true, this._dtpSettings, monitor); + } else if (previewedAppIcon != this) { + this._previewMenu.open(this); } - } + + this.emit('sync-tooltip'); + } } else this.app.activate(); From 0700e789afbea20c47d5d98e5726a33c70767d6c Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Sun, 18 Aug 2019 09:22:03 -0400 Subject: [PATCH 10/28] Ignore workspace switch on volume indicator scroll --- panel.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/panel.js b/panel.js index fbdb704..3b04aa2 100644 --- a/panel.js +++ b/panel.js @@ -83,6 +83,10 @@ var dtpPanelWrapper = Utils.defineClass({ this.container = this.panel._leftBox; } this.appMenu = this.panel.statusArea.appMenu; + + if (this.panel.statusArea.aggregateMenu) { + this.panel.statusArea.aggregateMenu._volume.indicators._dtpIgnoreScroll = 1; + } this._oldPanelActorDelegate = this.panel.actor._delegate; this.panel.actor._delegate = this; @@ -745,7 +749,7 @@ var dtpPanelWrapper = Utils.defineClass({ _onPanelMouseScroll: function(actor, event) { let direction = Utils.getMouseScrollDirection(event); - if (direction) { + if (!event.get_source()._dtpIgnoreScroll && direction) { Main.wm._showWorkspaceSwitcher(global.display, 0, { get_name: () => 'switch---' + direction }); } }, From ccb6db0b5295f410e88a077c5461e8307842ecfb Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Sun, 18 Aug 2019 17:42:07 -0400 Subject: [PATCH 11/28] Clean up scroll volume indicator on disable --- panel.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/panel.js b/panel.js index 3b04aa2..d95e343 100644 --- a/panel.js +++ b/panel.js @@ -345,6 +345,10 @@ var dtpPanelWrapper = Utils.defineClass({ Utils.hookVfunc(this.panel.__proto__, 'allocate', this.panel.__proto__.vfunc_allocate); } + if (this.panel.statusArea.aggregateMenu) { + delete this.panel.statusArea.aggregateMenu._volume.indicators._dtpIgnoreScroll; + } + this.panel._leftBox.allocate = this.panel._leftBox.oldLeftBoxAllocate; delete this.panel._leftBox.oldLeftBoxAllocate; From ca4724dc3f2a7facd4d6f2bb118bfa0f930cf4f9 Mon Sep 17 00:00:00 2001 From: alex4401 Date: Mon, 19 Aug 2019 14:36:51 +0200 Subject: [PATCH 12/28] Update Polish translation --- po/pl.po | 762 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 493 insertions(+), 269 deletions(-) diff --git a/po/pl.po b/po/pl.po index 5d262d9..d4445f0 100644 --- a/po/pl.po +++ b/po/pl.po @@ -6,125 +6,165 @@ msgid "" msgstr "" "Project-Id-Version: Dash to Panel\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-18 14:30+0100\n" -"PO-Revision-Date: 2018-05-04 21:33+0200\n" -"Last-Translator: Martin \n" +"POT-Creation-Date: 2019-08-19 14:20+0200\n" +"PO-Revision-Date: 2019-08-19 14:36+0200\n" +"Last-Translator: Alex \n" "Language-Team: \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.6\n" +"X-Generator: Poedit 2.2.1\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -#: prefs.js:312 +#: prefs.js:310 msgid "Running Indicator Options" msgstr "Opcje wskaźnika aktywnych programów" -#: prefs.js:319 prefs.js:486 prefs.js:629 prefs.js:734 prefs.js:792 -#: prefs.js:868 prefs.js:920 prefs.js:1059 prefs.js:1143 prefs.js:1254 -#: prefs.js:1288 prefs.js:1330 +#: prefs.js:317 prefs.js:515 prefs.js:658 prefs.js:778 prefs.js:842 +#: prefs.js:930 prefs.js:1023 prefs.js:1260 prefs.js:1344 prefs.js:1455 +#: prefs.js:1489 prefs.js:1531 msgid "Reset to defaults" msgstr "Przywróć domyślne" -#: prefs.js:431 +#: prefs.js:460 msgid "Default (Primary monitor)" -msgstr "Default (Główny monitor)" +msgstr "Domyślny (Główny monitor)" -#: prefs.js:434 +#: prefs.js:463 msgid "Monitor " -msgstr "" +msgstr "Monitor" -#: prefs.js:479 +#: prefs.js:508 msgid "Multi-monitors options" msgstr "Opcje wielu monitorów" -#: prefs.js:622 +#: prefs.js:651 msgid "Dynamic opacity options" msgstr "Opcje dynamicznej przeźroczystości" -#: prefs.js:727 +#: prefs.js:771 msgid "Intellihide options" msgstr "Opcje inteligentnego ukrywania" -#: prefs.js:785 +#: prefs.js:835 msgid "Show Applications options" msgstr "Opcje wyświetlania programów" -#: prefs.js:861 +#: prefs.js:923 msgid "Show Desktop options" -msgstr "Pokaż pulpit - opcje" +msgstr "Pokaż opcje pulpitu" -#: prefs.js:913 +#: prefs.js:1016 msgid "Window preview options" msgstr "Opcje podglądu okna" -#: prefs.js:1052 +#: prefs.js:1253 msgid "Ungrouped application options" msgstr "Opcje trybu listy" -#: prefs.js:1136 +#: prefs.js:1337 msgid "Customize middle-click behavior" msgstr "Dostosowanie działania przycisków myszy" -#: prefs.js:1247 +#: prefs.js:1448 msgid "Advanced hotkeys options" msgstr "Zaawansowane opcje skrótów klawiszowych" -#: prefs.js:1281 +#: prefs.js:1482 msgid "Secondary Menu Options" msgstr "Opcje menu kontekstowego" -#: prefs.js:1323 Settings.ui.h:174 +#: prefs.js:1524 Settings.ui.h:216 msgid "Advanced Options" msgstr "Opcje zaawansowane" -#: prefs.js:1412 +#: prefs.js:1611 msgid "Export settings" -msgstr "Ustawienia eksportu" +msgstr "Eksportuj ustawienia" -#: prefs.js:1429 +#: prefs.js:1628 msgid "Import settings" msgstr "Importuj ustawienia" -#: appIcons.js:1259 +#: appIcons.js:1320 msgid "Show Details" msgstr "Pokaż szczegóły" -#: appIcons.js:1278 +#: appIcons.js:1339 msgid "New Window" msgstr "Nowe okno" -#: appIcons.js:1278 appIcons.js:1340 appIcons.js:1342 Settings.ui.h:8 +#: appIcons.js:1339 appIcons.js:1401 appIcons.js:1403 Settings.ui.h:10 msgid "Quit" msgstr "Zamknięcie okna" -#: appIcons.js:1342 +#: appIcons.js:1403 msgid "Windows" msgstr "Okna" -#: appIcons.js:1539 +#: appIcons.js:1611 +msgid "Power options" +msgstr "Opcje zasilania" + +#: appIcons.js:1616 +msgid "Event logs" +msgstr "Zapis zdarzeń" + +#: appIcons.js:1621 +msgid "System" +msgstr "System" + +#: appIcons.js:1626 +msgid "Device Management" +msgstr "Zarządzanie urządzeniami" + +#: appIcons.js:1631 +msgid "Disk Management" +msgstr "Zarządzanie dyskami" + +#: appIcons.js:1638 +msgid "Terminal" +msgstr "Terminal" + +#: appIcons.js:1643 +msgid "System monitor" +msgstr "Monitor procesów" + +#: appIcons.js:1648 +msgid "Files" +msgstr "Pliki" + +#: appIcons.js:1653 +msgid "Settings" +msgstr "Ustawienia" + +#: appIcons.js:1660 msgid "Unlock taskbar" msgstr "Odblokuj pasek zadań" -#: appIcons.js:1539 +#: appIcons.js:1660 msgid "Lock taskbar" msgstr "Zablokuj pasek zadań" -#: appIcons.js:1544 +#: appIcons.js:1665 msgid "Dash to Panel Settings" msgstr "Ustawienia Dash to Panel" -#: appIcons.js:1551 +#: appIcons.js:1672 msgid "Restore Windows" msgstr "Przywróć okna" -#: appIcons.js:1551 +#: appIcons.js:1672 msgid "Show Desktop" msgstr "Pokaż pulpit" #: Settings.ui.h:1 +msgid "Nothing yet!" +msgstr "Jeszcze nic!" + +#: Settings.ui.h:2 msgid "" "When set to minimize, double clicking minimizes all the windows of the " "application." @@ -132,157 +172,169 @@ msgstr "" "Wybranie zminimalizowania okna umożliwia minimalizowanie wszystkich okien " "programu dwukrotnym kliknięciem." -#: Settings.ui.h:2 +#: Settings.ui.h:3 msgid "Shift+Click action" msgstr "Kliknięcie lewym przyciskiem + Shift" -#: Settings.ui.h:3 -msgid "Raise window" -msgstr "Przywrócenie okna" - #: Settings.ui.h:4 +msgid "Raise windows" +msgstr "Przywróć okna" + +#: Settings.ui.h:5 msgid "Minimize window" msgstr "Zminimalizowanie okna" -#: Settings.ui.h:5 +#: Settings.ui.h:6 msgid "Launch new instance" msgstr "Uruchomienie nowego okna" -#: Settings.ui.h:6 +#: Settings.ui.h:7 msgid "Cycle through windows" msgstr "Przełączanie między oknami" -#: Settings.ui.h:7 +#: Settings.ui.h:8 msgid "Cycle windows + minimize" msgstr "Przełączanie + zminimalizowanie okien" #: Settings.ui.h:9 +msgid "Toggle single / Preview multiple" +msgstr "Przełącz pojedyncze / Podejrzyj wiele" + +#: Settings.ui.h:11 msgid "Behavior for Middle-Click." msgstr "Konfiguruje działanie kliknięcia środkowym przyciskiem." -#: Settings.ui.h:10 +#: Settings.ui.h:12 msgid "Middle-Click action" -msgstr "Kliknięcie środkowego przycisku" +msgstr "Akcja środkowego przycisku" -#: Settings.ui.h:11 +#: Settings.ui.h:13 msgid "Behavior for Shift+Middle-Click." msgstr "" "Konfiguruje działanie kliknięcia środkowym przyciskiem z przytrzymanym " "klawiszem Shift." -#: Settings.ui.h:12 +#: Settings.ui.h:14 msgid "Shift+Middle-Click action" msgstr "Kliknięcie środkowym przyciskiem + Shift" -#: Settings.ui.h:13 +#: Settings.ui.h:15 msgid "Isolate monitors" msgstr "Niezależne obszary robocze" -#: Settings.ui.h:14 +#: Settings.ui.h:16 msgid "Display favorite applications on all monitors" msgstr "Ulubione programy na wszystkich monitorach" -#: Settings.ui.h:15 +#: Settings.ui.h:17 msgid "Display the clock on all monitors" msgstr "Zegar na wszystkich monitorach" -#: Settings.ui.h:16 +#: Settings.ui.h:18 msgid "Display the status menu on all monitors" msgstr "Menu systemowe na wszystkich monitorach" -#: Settings.ui.h:17 +#: Settings.ui.h:19 msgid "Integrate AppMenu items" -msgstr "Zintegrowane Menu programów" +msgstr "Zintegrowane menu programów" -#: Settings.ui.h:18 +#: Settings.ui.h:20 msgid "Show Details menu item" msgstr "Wyświetl szczegóły" -#: Settings.ui.h:19 +#: Settings.ui.h:21 msgid "Highlight focused application" msgstr "Podświetlaj ikonę aktywnego programu" -#: Settings.ui.h:20 -msgid "Highlight color" -msgstr "Kolor podświetlenia" +#: Settings.ui.h:22 +msgid "Icon dominant color" +msgstr "Dominujący kolor ikon" -#: Settings.ui.h:21 +#: Settings.ui.h:23 +msgid "Custom color" +msgstr "Własny kolor" + +#: Settings.ui.h:24 msgid "Highlight opacity" msgstr "Przeźroczystość podświetlenia" -#: Settings.ui.h:22 +#: Settings.ui.h:25 msgid "Indicator height (px)" msgstr "Wysokość wskaźnika (px)" -#: Settings.ui.h:23 -msgid "Indicator color - Override Theme" -msgstr "Kolor wskaźnika (zastępuje kolory motywu)" +#: Settings.ui.h:26 +msgid "Indicator color - Icon Dominant" +msgstr "Kolor wskaźnika - dominujący" -#: Settings.ui.h:24 +#: Settings.ui.h:27 +msgid "Indicator color - Override Theme" +msgstr "Kolor wskaźnika - nadpisanie motywu" + +#: Settings.ui.h:28 msgid "1 window open (or ungrouped)" msgstr "1 otwarte okno (lub tryb listy)" -#: Settings.ui.h:25 +#: Settings.ui.h:29 msgid "Apply to all" msgstr "Zastosuj do wszystkich" -#: Settings.ui.h:26 +#: Settings.ui.h:30 msgid "2 windows open" msgstr "2 otwarte okna" -#: Settings.ui.h:27 +#: Settings.ui.h:31 msgid "3 windows open" msgstr "3 otwarte okna" -#: Settings.ui.h:28 +#: Settings.ui.h:32 msgid "4+ windows open" -msgstr "4 i więcej otwartych oknien" +msgstr "4 i więcej otwartych okien" -#: Settings.ui.h:29 +#: Settings.ui.h:33 msgid "Use different for unfocused" msgstr "Użyj innego dla pozostałych" -#: Settings.ui.h:30 +#: Settings.ui.h:34 msgid "Font size (px) of the application titles (default is 14)" msgstr "Wielkość czcionki etykiet (px) (domyślnie 14) " -#: Settings.ui.h:31 +#: Settings.ui.h:35 msgid "Font weight of application titles" msgstr "Grubość czcionki tytułów programów" -#: Settings.ui.h:32 +#: Settings.ui.h:36 msgid "inherit from theme" msgstr "dziedzicz po motywie" -#: Settings.ui.h:33 +#: Settings.ui.h:37 msgid "normal" msgstr "zwykła" -#: Settings.ui.h:34 +#: Settings.ui.h:38 msgid "lighter" msgstr "cieńsza" -#: Settings.ui.h:35 +#: Settings.ui.h:39 msgid "bold" msgstr "pogrubiona" -#: Settings.ui.h:36 +#: Settings.ui.h:40 msgid "bolder" msgstr "grubsza" -#: Settings.ui.h:37 +#: Settings.ui.h:41 msgid "Font color of the application titles" msgstr "Kolor czcionki" -#: Settings.ui.h:38 +#: Settings.ui.h:42 msgid "Maximum width (px) of the application titles (default is 160)" msgstr "Maksymalna szerokość etykiet (px) (domyślnie 160)" -#: Settings.ui.h:39 +#: Settings.ui.h:43 msgid "Use a fixed width for the application titles" msgstr "Stała szerokości" -#: Settings.ui.h:40 +#: Settings.ui.h:44 msgid "" "The application titles all have the same width, even if their texts are " "shorter than the maximum width. The maximum width value is used as the fixed " @@ -292,93 +344,237 @@ msgstr "" "są krótsze niż maksymalna szerokość. Wartość stałej szerokości jest taka, " "jaka została podana w polu Maksymalna szerokość." -#: Settings.ui.h:41 +#: Settings.ui.h:45 msgid "Display running indicators on unfocused applications" msgstr "Pokazuj wskaźnik dla otwartych okien drugoplanowych" -#: Settings.ui.h:42 +#: Settings.ui.h:46 msgid "Use the favorite icons as application launchers" msgstr "Oddziel ulubione od uruchomionych programów" -#: Settings.ui.h:43 +#: Settings.ui.h:47 msgid "Only hide the panel when it is obstructed by windows " msgstr "Ukryj panel tylko wtedy, gdy jest zasłonięty przez okna" -#: Settings.ui.h:44 +#: Settings.ui.h:48 msgid "The panel hides from" msgstr "Ukrywanie przed oknami" -#: Settings.ui.h:45 +#: Settings.ui.h:49 msgid "All windows" msgstr "Wszystkie okna" -#: Settings.ui.h:46 +#: Settings.ui.h:50 msgid "Focused windows" msgstr "Aktywne okna programu" -#: Settings.ui.h:47 +#: Settings.ui.h:51 msgid "Maximized windows" msgstr "Zmaksymalizowane okna" -#: Settings.ui.h:48 +#: Settings.ui.h:52 msgid "Require pressure at the edge of the screen to reveal the panel" msgstr "Wymagaj nacisku na krawędzi ekranu, aby odsłonić panel" -#: Settings.ui.h:49 +#: Settings.ui.h:53 msgid "Required pressure threshold (px)" msgstr "Próg nacisku (px)" -#: Settings.ui.h:50 +#: Settings.ui.h:54 msgid "Required pressure timeout (ms)" msgstr "Czas nacisku (ms)" -#: Settings.ui.h:51 +#: Settings.ui.h:55 msgid "Allow the panel to be revealed while in fullscreen mode" msgstr "Pozwól, aby panel został odsłonięty w trybie pełnoekranowym" -#: Settings.ui.h:52 -msgid "e.g. i" -msgstr "" +#: Settings.ui.h:56 +msgid "Only hide secondary panels (requires multi-monitors option)" +msgstr "Ukryj wyłącznie drugorzędne panele (dla wielu monitorów)" -#: Settings.ui.h:53 +#: Settings.ui.h:57 +msgid "e.g. i" +msgstr "np. i" + +#: Settings.ui.h:58 msgid "Keyboard shortcut to reveal and hold the panel" msgstr "Skrót klawiszowy do ukrywania i odsłaniania panelu" -#: Settings.ui.h:54 +#: Settings.ui.h:59 msgid "Syntax: , , , " msgstr "Składnia: , , , " -#: Settings.ui.h:55 +#: Settings.ui.h:60 msgid "Hide and reveal animation duration (ms)" msgstr "Czas trwania animacji ukrywania i odsłaniania (ms)" -#: Settings.ui.h:56 +#: Settings.ui.h:61 msgid "Delay before hiding the panel (ms)" msgstr "Opóźnienie ukrycia panelu (ms)" -#: Settings.ui.h:57 -msgid "Preview timeout on icon leave (ms)" -msgstr "Opóźnienie wygaszenia podglądu po opuszczeniu ikony (ms)" - -#: Settings.ui.h:58 -msgid "" -"If set too low, the window preview of running applications may seem to close " -"too quickly when trying to enter the popup. If set too high, the preview may " -"linger too long when moving to an adjacent icon." -msgstr "" -"Ustawienie zbyt małej wartości może spowodować, że pogląd okien może zamykać " -"się zbyt szybko, natomiast za duża wartość spowoduje długi czas wyświetlania " -"podglądu po przejściu do sąsiedniej ikony." - -#: Settings.ui.h:59 +#: Settings.ui.h:62 msgid "Time (ms) before showing (100 is default)" msgstr "Opóźnienie wyświetlania miniatur (domyślnie 100 ms)" -#: Settings.ui.h:60 +#: Settings.ui.h:63 +msgid "Time (ms) before hiding (100 is default)" +msgstr "Opóźnienie ukrywania miniatur (domyślnie 100 ms)" + +#: Settings.ui.h:64 +msgid "Animation time (ms)" +msgstr "Długość animacji (ms)" + +#: Settings.ui.h:65 +msgid "Middle click on the preview to close the window" +msgstr "" +"Kliknięcie środkowego przycisku myszy na podglądzie zamyka okno programu." + +#: Settings.ui.h:66 +msgid "Window previews preferred size (px)" +msgstr "Preferowany rozmiar podglądu okna (px)" + +#: Settings.ui.h:67 +msgid "Window previews aspect ratio Y (height)" +msgstr "Proporcja wysokości podglądu okna" + +#: Settings.ui.h:68 +msgid "Window previews padding (px)" +msgstr "Wewnętrzny odstęp w podglądzie okien (px)" + +#: Settings.ui.h:69 +msgid "1" +msgstr "1" + +#: Settings.ui.h:70 +msgid "2" +msgstr "2" + +#: Settings.ui.h:71 +msgid "3" +msgstr "3" + +#: Settings.ui.h:72 +msgid "4" +msgstr "4" + +#: Settings.ui.h:73 +msgid "5" +msgstr "5" + +#: Settings.ui.h:74 +msgid "6" +msgstr "6" + +#: Settings.ui.h:75 +msgid "7" +msgstr "7" + +#: Settings.ui.h:76 +msgid "8" +msgstr "8" + +#: Settings.ui.h:77 +msgid "9" +msgstr "9" + +#: Settings.ui.h:78 +msgid "10" +msgstr "10" + +#: Settings.ui.h:79 +msgid "11" +msgstr "11" + +#: Settings.ui.h:80 +msgid "12" +msgstr "12" + +#: Settings.ui.h:81 +msgid "13" +msgstr "13" + +#: Settings.ui.h:82 +msgid "14" +msgstr "14" + +#: Settings.ui.h:83 +msgid "15" +msgstr "15" + +#: Settings.ui.h:84 +msgid "16" +msgstr "16" + +#: Settings.ui.h:85 +msgid "17" +msgstr "17" + +#: Settings.ui.h:86 +msgid "18" +msgstr "18" + +#: Settings.ui.h:87 +msgid "19" +msgstr "19" + +#: Settings.ui.h:88 +msgid "20" +msgstr "20" + +#: Settings.ui.h:89 +msgid "21" +msgstr "21" + +#: Settings.ui.h:90 +msgid "Fixed" +msgstr "Stałe" + +#: Settings.ui.h:91 +msgid "Window previews aspect ratio X (width)" +msgstr "Proporcja szerokości podglądu okna" + +#: Settings.ui.h:92 +msgid "Use custom opacity for the previews background" +msgstr "Własna przeźroczystość dla tła podglądu okna" + +#: Settings.ui.h:93 +msgid "If disabled, the previews background have the same opacity as the panel" +msgstr "" +"Jeśli wyłączone, podgląd okna będzie mieć taką samą przeźroczystość jak panel" + +#: Settings.ui.h:94 +msgid "Close button and header position" +msgstr "Położenie przycisku zamykania i nagłówka" + +#: Settings.ui.h:95 +msgid "Bottom" +msgstr "Dół" + +#: Settings.ui.h:96 +msgid "Top" +msgstr "Góra" + +#: Settings.ui.h:97 +msgid "Display window preview headers" +msgstr "Wyświetlaj nagłówek w podglądzie okna" + +#: Settings.ui.h:98 +msgid "Font size (px) of the preview titles" +msgstr "Wielkość czcionki etykiet (px) etykiet podglądu" + +#: Settings.ui.h:99 +msgid "Font weight of the preview titles" +msgstr "Grubość czcionki etykiet podglądu" + +#: Settings.ui.h:100 +msgid "Font color of the preview titles" +msgstr "Kolor czcionki etykiet podglądu" + +#: Settings.ui.h:101 msgid "Enable window peeking" msgstr "Podgląd okien otwartych programów" -#: Settings.ui.h:61 +#: Settings.ui.h:102 msgid "" "When hovering over a window preview for some time, the window gets " "distinguished." @@ -386,11 +582,15 @@ msgstr "" "Po najechaniu kursorem na podgląd okna zostanie ono pokazane na tle " "wszystkich otwartych okien programów." -#: Settings.ui.h:62 +#: Settings.ui.h:103 msgid "Enter window peeking mode timeout (ms)" msgstr "Opóźnienie wyświetlania (ms)" -#: Settings.ui.h:63 +#: Settings.ui.h:104 +msgid "50" +msgstr "50" + +#: Settings.ui.h:105 msgid "" "Time of inactivity while hovering over a window preview needed to enter the " "window peeking mode." @@ -398,223 +598,205 @@ msgstr "" "Czas opóźnienia, po którym wyświetlony zostanie podgląd okien otwartych " "programów." -#: Settings.ui.h:64 +#: Settings.ui.h:106 msgid "Window peeking mode opacity" -msgstr "Przeźroczystość okien" +msgstr "Przeźroczystość podglądanych okien" -#: Settings.ui.h:65 +#: Settings.ui.h:107 +msgid "0" +msgstr "0" + +#: Settings.ui.h:108 msgid "" "All windows except for the peeked one have their opacity set to the same " "value." msgstr "" "Wszystkie okna, za wyjątkiem okna głównego, mają tą samą przeźroczystość." -#: Settings.ui.h:66 -msgid "Middle click to close window" -msgstr "Zamknięcie okna poprzez kliknięcie środkowego przycisku" - -#: Settings.ui.h:67 -msgid "Middle click on the preview to close the window." -msgstr "" -"Kliknięcie środkowego przycisku myszy na podglądzie zamyka otwarte okno " -"programu." - -#: Settings.ui.h:68 -msgid "Display window title in previews" -msgstr "Pokaż tytuł okna w miniaturze podglądu" - -#: Settings.ui.h:69 -msgid "Width of the window previews (px)" -msgstr "Szerokość miniatury (px)" - -#: Settings.ui.h:70 -msgid "Height of the window previews (px)" -msgstr "Wysokość miniatury (px)" - -#: Settings.ui.h:71 -msgid "Padding of the window previews (px)" -msgstr "Odstęp między miniaturami (px)" - -#: Settings.ui.h:72 +#: Settings.ui.h:109 msgid "Super" -msgstr "" +msgstr "Super" -#: Settings.ui.h:73 +#: Settings.ui.h:110 msgid "Super + Alt" -msgstr "" +msgstr "Super + Alt" -#: Settings.ui.h:74 +#: Settings.ui.h:111 msgid "Hotkeys prefix" msgstr "Prefiks dla skrótów klawiszowych" -#: Settings.ui.h:75 +#: Settings.ui.h:112 msgid "Hotkeys will either be Super+Number or Super+Alt+Num" msgstr "Skrót może być aktywowany jako Super+Cyfra lub Super+Alt+Cyfra" -#: Settings.ui.h:76 +#: Settings.ui.h:113 msgid "Never" msgstr "Nigdy" -#: Settings.ui.h:77 +#: Settings.ui.h:114 msgid "Show temporarily" msgstr "Przez chwilę" -#: Settings.ui.h:78 +#: Settings.ui.h:115 msgid "Always visible" msgstr "Zawsze" -#: Settings.ui.h:79 +#: Settings.ui.h:116 msgid "Number overlay" msgstr "Pokazywanie cyfr" -#: Settings.ui.h:80 +#: Settings.ui.h:117 msgid "" "Temporarily show the application numbers over the icons when using the " "hotkeys." msgstr "Podczas używania skrótów klawiszowych wyświetlaj cyfry nad ikonami ." -#: Settings.ui.h:81 +#: Settings.ui.h:118 msgid "Hide timeout (ms)" msgstr "Opóźnienie ukrywania (ms)" -#: Settings.ui.h:82 +#: Settings.ui.h:119 msgid "e.g. q" -msgstr "" +msgstr "np. q" -#: Settings.ui.h:83 +#: Settings.ui.h:120 msgid "Shortcut to show the overlay for 2 seconds" msgstr "Skrót wyświetlający cyfry przez 2 sekundy" -#: Settings.ui.h:84 +#: Settings.ui.h:121 msgid "Show window previews on hotkey" msgstr "Pokaż podgląd okna po wciśnięciu klawisza skrótu" -#: Settings.ui.h:85 +#: Settings.ui.h:122 msgid "Show previews when the application have multiple instances" msgstr "Pokaż podgląd, gdy aplikacja ma wiele instancji" -#: Settings.ui.h:86 +#: Settings.ui.h:123 msgid "Current Show Applications icon" msgstr "Aktualna ikona" -#: Settings.ui.h:87 +#: Settings.ui.h:124 msgid "Select a Show Applications image icon" msgstr "Wybierz ikonę" -#: Settings.ui.h:88 +#: Settings.ui.h:125 msgid "Custom Show Applications image icon" msgstr "Wybierz własną ikonę" -#: Settings.ui.h:89 -msgid "Show Desktop button width (px)" -msgstr "Szerokość przycisku Pokaż pulpit (px)" +#: Settings.ui.h:126 +msgid "Show Applications icon side padding (px)" +msgstr "Wewnętrzny margines przycisku Pokaż aplikacje (px)" -#: Settings.ui.h:90 +#: Settings.ui.h:127 +msgid "Show Desktop button width (px)" +msgstr "Szerokość przycisku Pokaż pulpit (px)" + +#: Settings.ui.h:128 +msgid "Reveal the desktop when hovering the Show Desktop button" +msgstr "Pokaż pulpit po najechaniu na przycisk Pokaż pulpit" + +#: Settings.ui.h:129 +msgid "Delay before revealing the desktop (ms)" +msgstr "Opóźnienie przed ujawnieniem pulpitu (ms)" + +#: Settings.ui.h:130 +msgid "Fade duration (ms)" +msgstr "Opóźnienie ukrywania (ms)" + +#: Settings.ui.h:131 msgid "The panel background opacity is affected by" msgstr "Przezroczystość panelu zależy od" -#: Settings.ui.h:91 +#: Settings.ui.h:132 msgid "Change opacity when a window gets closer than (px)" msgstr "Zmień przezroczystość, gdy okno jest bliżej niż (px) " -#: Settings.ui.h:93 +#: Settings.ui.h:134 #, no-c-format msgid "Change opacity to (%)" msgstr "Zmień przeźroczystość na (%)" -#: Settings.ui.h:94 -msgid "0" -msgstr "" - -#: Settings.ui.h:95 +#: Settings.ui.h:135 msgid "Opacity change animation duration (ms)" msgstr "Czas trwania animacji przeźroczystości (ms)" -#: Settings.ui.h:96 +#: Settings.ui.h:136 msgid "Panel screen position" msgstr "Położenie panelu na ekranie" -#: Settings.ui.h:97 -msgid "Bottom" -msgstr "Dół" - -#: Settings.ui.h:98 -msgid "Top" -msgstr "Góra" - -#: Settings.ui.h:99 +#: Settings.ui.h:137 msgid "Taskbar position" msgstr "Położenie paska zadań" -#: Settings.ui.h:100 +#: Settings.ui.h:138 msgid "Left, with plugin icons collapsed to right" msgstr "Lewa, ikony wyrównane do prawej" -#: Settings.ui.h:101 +#: Settings.ui.h:139 msgid "Left, with fixed center plugin icons" msgstr "Lewa, ze stałym wyśrodkowaniem ikon" -#: Settings.ui.h:102 +#: Settings.ui.h:140 msgid "Left, with floating center plugin icons" msgstr "Lewa, ze swobodnym wyśrodkowaniem ikon" -#: Settings.ui.h:103 +#: Settings.ui.h:141 msgid "Center, fixed in middle of monitor" msgstr "Środek, ze stałym wyśrodkowaniem monitora" -#: Settings.ui.h:104 +#: Settings.ui.h:142 msgid "Center, floating between left and right elements" msgstr "Środek, ze swobodnym wyśrodkowaniem elementów" -#: Settings.ui.h:105 +#: Settings.ui.h:143 msgid "Clock location" msgstr "Położenie zegara" -#: Settings.ui.h:106 +#: Settings.ui.h:144 msgid "Left of plugin icons" msgstr "Lewa strona ikon wtyczek" -#: Settings.ui.h:107 +#: Settings.ui.h:145 msgid "Right of plugin icons" msgstr "Prawa strona ikon wtyczek" -#: Settings.ui.h:108 +#: Settings.ui.h:146 msgid "Left of system indicators" msgstr "Lewa strona menu systemowego" -#: Settings.ui.h:109 +#: Settings.ui.h:147 msgid "Right of system indicators" msgstr "Prawa strona menu systemowego" -#: Settings.ui.h:110 +#: Settings.ui.h:148 msgid "Left of taskbar" msgstr "Lewa strona paska zadań" -#: Settings.ui.h:111 +#: Settings.ui.h:149 msgid "Right of taskbar" msgstr "Prawa strona paska zadań" -#: Settings.ui.h:112 +#: Settings.ui.h:150 msgid "Display the main panel on" msgstr "Wyświetl panel na" -#: Settings.ui.h:113 +#: Settings.ui.h:151 msgid "Display panels on all monitors" msgstr "Wyświetl panel na wszystkich monitorach" -#: Settings.ui.h:114 +#: Settings.ui.h:152 msgid "Panel Intellihide" msgstr "Inteligentne ukrywanie panelu" -#: Settings.ui.h:115 +#: Settings.ui.h:153 msgid "Hide and reveal the panel according to preferences" msgstr "Ukryj i odsłoń panel według preferencji" -#: Settings.ui.h:116 +#: Settings.ui.h:154 msgid "Position" msgstr "Położenie" -#: Settings.ui.h:117 +#: Settings.ui.h:155 msgid "" "Panel Size\n" "(default is 48)" @@ -622,7 +804,7 @@ msgstr "" "Rozmiar panelu\n" "(domyślnie 48)" -#: Settings.ui.h:119 +#: Settings.ui.h:157 msgid "" "App Icon Margin\n" "(default is 8)" @@ -630,7 +812,7 @@ msgstr "" "Odstęp między\n" "ikonami (domyślnie 8)" -#: Settings.ui.h:121 +#: Settings.ui.h:159 msgid "" "App Icon Padding\n" "(default is 4)" @@ -638,136 +820,146 @@ msgstr "" "Wypełnienie wnętrza\n" "ikony (domyślnie 4)" -#: Settings.ui.h:123 +#: Settings.ui.h:161 msgid "Running indicator position" msgstr "Pozycja wskaźnika aktywnych okien" -#: Settings.ui.h:124 +#: Settings.ui.h:162 msgid "Running indicator style (Focused app)" msgstr "Wygląd wskaźnika (okno na pierwszym planie)" -#: Settings.ui.h:125 +#: Settings.ui.h:163 msgid "Dots" msgstr "Kropki" -#: Settings.ui.h:126 +#: Settings.ui.h:164 msgid "Squares" msgstr "Kwadraty" -#: Settings.ui.h:127 +#: Settings.ui.h:165 msgid "Dashes" msgstr "Kreski" -#: Settings.ui.h:128 +#: Settings.ui.h:166 msgid "Segmented" msgstr "Segmenty" -#: Settings.ui.h:129 +#: Settings.ui.h:167 msgid "Solid" msgstr "Ciągły" -#: Settings.ui.h:130 +#: Settings.ui.h:168 msgid "Ciliora" -msgstr "" +msgstr "Ciliora" -#: Settings.ui.h:131 +#: Settings.ui.h:169 msgid "Metro" -msgstr "" +msgstr "Metro" -#: Settings.ui.h:132 +#: Settings.ui.h:170 msgid "Running indicator style (Unfocused apps)" msgstr "Wygląd wskaźnika (okno na drugim planie)" -#: Settings.ui.h:133 +#: Settings.ui.h:171 msgid "Override panel theme background color " msgstr "Zastąp kolor panelu" -#: Settings.ui.h:134 +#: Settings.ui.h:172 msgid "Override panel theme background opacity" msgstr "Zastąp przeźroczystość panelu" -#: Settings.ui.h:136 +#: Settings.ui.h:174 #, no-c-format msgid "Panel background opacity (%)" msgstr "Przeźroczystość panelu (%)" -#: Settings.ui.h:137 +#: Settings.ui.h:175 msgid "Dynamic background opacity" msgstr "Dynamiczna przeźroczystość" -#: Settings.ui.h:138 +#: Settings.ui.h:176 msgid "Change opacity when a window gets close to the panel" msgstr "Zmiana przeźroczystości w kontakcie z oknem" -#: Settings.ui.h:139 +#: Settings.ui.h:177 msgid "Override panel theme gradient " msgstr "Zastąp kolor panelu gradientem " -#: Settings.ui.h:141 +#: Settings.ui.h:179 #, no-c-format msgid "Gradient top color and opacity (%)" msgstr "Góra, kolor i przeźroczystość (%)" -#: Settings.ui.h:143 +#: Settings.ui.h:181 #, no-c-format msgid "Gradient bottom color and opacity (%)" msgstr "Dół, kolor i przeźroczystość (%)" -#: Settings.ui.h:144 +#: Settings.ui.h:182 msgid "Style" msgstr "Wygląd" -#: Settings.ui.h:145 +#: Settings.ui.h:183 msgid "Show favorite applications" msgstr "Pokaż ulubione programy" -#: Settings.ui.h:146 +#: Settings.ui.h:184 +msgid "Show running applications" +msgstr "Pokaż uruchomione programy" + +#: Settings.ui.h:185 msgid "Show Applications icon" msgstr "Pokaż ikonę Programy" -#: Settings.ui.h:147 +#: Settings.ui.h:186 msgid "Animate Show Applications." msgstr "Animuj wyświetlanie programów" -#: Settings.ui.h:148 +#: Settings.ui.h:187 msgid "Show Activities button" msgstr "Pokaż przycisk Podgląd" -#: Settings.ui.h:149 +#: Settings.ui.h:188 msgid "Show Desktop button" msgstr "Pokaż przycisk Pulpit" -#: Settings.ui.h:150 +#: Settings.ui.h:189 msgid "Show AppMenu button" msgstr "Pokaż przycisk Menu programu" -#: Settings.ui.h:151 +#: Settings.ui.h:190 msgid "Top Bar > Show App Menu must be enabled in Tweak Tool" -msgstr "" -"Górny pasek > Menu programu - musi być włączone w Dostrajanie" -"" +msgstr "Górny pasek > Menu programu - musi być włączone w Dostrajanie" -#: Settings.ui.h:152 +#: Settings.ui.h:191 msgid "Show window previews on hover" msgstr "Pokaż podgląd okna po najechaniu myszą" -#: Settings.ui.h:153 +#: Settings.ui.h:192 +msgid "Show tooltip on hover" +msgstr "Pokaż szczegóły po najechaniu myszą" + +#: Settings.ui.h:193 msgid "Isolate Workspaces" msgstr "Niezależne obszary robocze" -#: Settings.ui.h:154 +#: Settings.ui.h:194 msgid "Ungroup applications" msgstr "Tryb listy (nie scalaj ikon)" -#: Settings.ui.h:155 +#: Settings.ui.h:195 msgid "Behaviour when clicking on the icon of a running application." msgstr "Reakcja na kliknięcie ikony aktywnego programu." -#: Settings.ui.h:156 +#: Settings.ui.h:196 msgid "Click action" msgstr "Działanie kliknięcia" -#: Settings.ui.h:157 +#: Settings.ui.h:197 +msgid "Toggle windows" +msgstr "Przełącz okna" + +#: Settings.ui.h:198 msgid "" "Enable Super+(0-9) as shortcuts to activate apps. It can also be used " "together with Shift and Ctrl." @@ -775,15 +967,15 @@ msgstr "" "Konfigurowanie skrótów uruchamiania programów\n" "Super+(0-9) - możliwe użycie razem z Shift i Ctrl." -#: Settings.ui.h:158 +#: Settings.ui.h:199 msgid "Use hotkeys to activate apps" msgstr "Skróty klawiszowe uruchamiania programów" -#: Settings.ui.h:159 +#: Settings.ui.h:200 msgid "Behavior" msgstr "Zachowanie" -#: Settings.ui.h:160 +#: Settings.ui.h:201 msgid "" "Tray Font Size\n" "(0 = theme default)" @@ -791,7 +983,7 @@ msgstr "" "Rozmiar czcionki zasobnika\n" "(0 - domyślnie z motywu)" -#: Settings.ui.h:162 +#: Settings.ui.h:203 msgid "" "LeftBox Font Size\n" "(0 = theme default)" @@ -799,7 +991,7 @@ msgstr "" "Rozmiar czcionki lewej strony panelu\n" "(0 - domyślnie z motywu)" -#: Settings.ui.h:164 +#: Settings.ui.h:205 msgid "" "Tray Item Padding\n" "(-1 = theme default)" @@ -807,7 +999,7 @@ msgstr "" "Odstęp elementów zasobnika\n" "(-1 - domyślnie z motywu)" -#: Settings.ui.h:166 +#: Settings.ui.h:207 msgid "" "Status Icon Padding\n" "(-1 = theme default)" @@ -815,7 +1007,7 @@ msgstr "" "Odstęp elementów menu systemowego\n" "(-1 - domyślnie z motywu)" -#: Settings.ui.h:168 +#: Settings.ui.h:209 msgid "" "LeftBox Padding\n" "(-1 = theme default)" @@ -823,55 +1015,60 @@ msgstr "" "Odstęp elementów lewej strony panelu\n" "(-1 - domyślnie z motywu)" -#: Settings.ui.h:170 +#: Settings.ui.h:211 msgid "Animate switching applications" msgstr "Animuj przełączenie programów" -#: Settings.ui.h:171 +#: Settings.ui.h:212 msgid "Animate launching new windows" msgstr "Animuj uruchamianie nowych programów" -#: Settings.ui.h:172 +#: Settings.ui.h:213 msgid "Keep original gnome-shell dash (overview)" msgstr "Zachowaj oryginalny panel (podgląd)" -#: Settings.ui.h:173 +#: Settings.ui.h:214 +msgid "Activate panel menu buttons (e.g. date menu) on click only" +msgstr "" +"Aktywuj przyciski menu panelu (np. menu kalendarza) tylko po kliknięciu" + +#: Settings.ui.h:215 msgid "App icon secondary (right-click) menu" msgstr "Menu kontekstowe programu (prawy przycisk myszy)" -#: Settings.ui.h:175 +#: Settings.ui.h:217 msgid "Fine-Tune" msgstr "Dostrajanie" -#: Settings.ui.h:176 +#: Settings.ui.h:218 msgid "version: " msgstr "wersja: " -#: Settings.ui.h:177 +#: Settings.ui.h:219 msgid "GitHub" -msgstr "" +msgstr "GitHub" -#: Settings.ui.h:178 +#: Settings.ui.h:220 msgid "" "Use the buttons below to create a settings file from your current " "preferences that can be imported on a different machine." msgstr "" -"Użyj poniższych przycisków, aby utworzyć plik ustawień bieżących" -"preferencji, które można zaimportować na innym komputerze." +"Użyj poniższych przycisków, aby utworzyć plik ustawień bieżącychpreferencji, " +"które można zaimportować na innym komputerze." -#: Settings.ui.h:179 +#: Settings.ui.h:221 msgid "Export and import settings" msgstr "Ustawienia eksportu i importu" -#: Settings.ui.h:180 +#: Settings.ui.h:222 msgid "Export to file" msgstr "Eksportuj do pliku" -#: Settings.ui.h:181 +#: Settings.ui.h:223 msgid "Import from file" msgstr "Importuj z pliku" -#: Settings.ui.h:182 +#: Settings.ui.h:224 msgid "" "This program comes with ABSOLUTELY NO WARRANTY.\n" "See the GNU General Public License, wersja 2 " "lub nowsza." -#: Settings.ui.h:184 +#: Settings.ui.h:226 msgid "About" msgstr "Informacje" + +#~ msgid "Highlight color" +#~ msgstr "Kolor podświetlenia" + +#~ msgid "Preview timeout on icon leave (ms)" +#~ msgstr "Opóźnienie wygaszenia podglądu po opuszczeniu ikony (ms)" + +#~ msgid "" +#~ "If set too low, the window preview of running applications may seem to " +#~ "close too quickly when trying to enter the popup. If set too high, the " +#~ "preview may linger too long when moving to an adjacent icon." +#~ msgstr "" +#~ "Ustawienie zbyt małej wartości może spowodować, że pogląd okien może " +#~ "zamykać się zbyt szybko, natomiast za duża wartość spowoduje długi czas " +#~ "wyświetlania podglądu po przejściu do sąsiedniej ikony." + +#~ msgid "Middle click to close window" +#~ msgstr "Zamknięcie okna poprzez kliknięcie środkowego przycisku" + +#~ msgid "Width of the window previews (px)" +#~ msgstr "Szerokość miniatury (px)" + +#~ msgid "Height of the window previews (px)" +#~ msgstr "Wysokość miniatury (px)" + +#~ msgid "Padding of the window previews (px)" +#~ msgstr "Odstęp między miniaturami (px)" From 92a9cd7f00ea0be3e66384864944e6944e8c80d5 Mon Sep 17 00:00:00 2001 From: Jason DeRose Date: Mon, 19 Aug 2019 10:07:08 -0400 Subject: [PATCH 13/28] Update translation credits --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b454bc1..f15a143 100644 --- a/README.md +++ b/README.md @@ -176,7 +176,7 @@ Ideas for recursing child actors and assigning inline styles are based on code f @imrvelj, @Teslator, @bil-elmoussaoui, @brandon-schumann, @sw9, @rockon999 , @lexruee, @3v1n0, @freeroot, @moqmar, @ArtyomZorin, @lkc0987, @saibotk, @vanillajonathan, @Zkdc #### Translations: -@frnogueira (pt_BR), @zeten30 (cs), @franglais125 (es), @LaurentTreguier / @SolarLiner (fr), @elsieholmes (uk), @hosiet (zh\_CN), @jonnius (de), @urbalazs / @pappfer (hu), @crayxt (kk), @pkomur / @MartinPL (pl), @AlexGluck / @GoodNike (ru), @sicklylife-jp (jp), @oltulu / @TeknoMobil / @daenney (tr), @sbadux (it), @OriginCode / @pan93412 (zh\_TW) +@frnogueira (pt_BR), @zeten30 (cs), @franglais125 (es), @LaurentTreguier / @SolarLiner (fr), @elsieholmes (uk), @hosiet (zh\_CN), @jonnius (de), @urbalazs / @pappfer (hu), @crayxt (kk), @pkomur / @MartinPL / @alex4401 (pl), @AlexGluck / @GoodNike (ru), @sicklylife-jp (jp), @oltulu / @TeknoMobil / @daenney (tr), @sbadux (it), @OriginCode / @pan93412 (zh\_TW) ## From 1ce645f787f7838197ada5428b928bf17b19159a Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Mon, 19 Aug 2019 13:04:51 -0400 Subject: [PATCH 14/28] Fix workspace scroll on g-s < 3.30 --- panel.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/panel.js b/panel.js index d95e343..1579d34 100644 --- a/panel.js +++ b/panel.js @@ -754,7 +754,12 @@ var dtpPanelWrapper = Utils.defineClass({ let direction = Utils.getMouseScrollDirection(event); if (!event.get_source()._dtpIgnoreScroll && direction) { - Main.wm._showWorkspaceSwitcher(global.display, 0, { get_name: () => 'switch---' + direction }); + let args = [global.display]; + + //gnome-shell < 3.30 needs an additional "screen" param + global.screen ? args.push(global.screen) : 0; + + Main.wm._showWorkspaceSwitcher.apply(Main.wm, args.concat([0, { get_name: () => 'switch---' + direction }])); } }, }); From 0fd1bff1e598b4cba4bee30589caf833ad3f2802 Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Mon, 19 Aug 2019 22:20:46 -0400 Subject: [PATCH 15/28] Add basic mouse scroll options --- Settings.ui | 411 +++++++++++++++++- appIcons.js | 14 +- panel.js | 23 +- prefs.js | 82 ++++ ...shell.extensions.dash-to-panel.gschema.xml | 25 ++ 5 files changed, 538 insertions(+), 17 deletions(-) diff --git a/Settings.ui b/Settings.ui index 8ce762e..e599d3c 100644 --- a/Settings.ui +++ b/Settings.ui @@ -3134,6 +3134,182 @@ + + 2000 + 10 + 50 + + + True + False + vertical + + + True + False + none + + + True + True + + + True + False + 12 + 12 + 12 + 12 + 32 + + + True + True + end + center + 4 + 50 + scroll_icon_options_delay_adjustment + True + 50 + + + 1 + 0 + 2 + + + + + True + False + True + Delay between mouse scroll events (ms) + True + 0 + + + 0 + 0 + + + + + True + False + True + Use this value to limit the number of captured mouse scroll events. + True + 0 + + + + 0 + 1 + + + + + + + + + False + True + 0 + + + + + 2000 + 10 + 50 + + + True + False + vertical + + + True + False + none + + + True + True + + + True + False + 12 + 12 + 12 + 12 + 32 + + + True + True + end + center + 4 + 50 + scroll_panel_options_delay_adjustment + True + 50 + + + 1 + 0 + 2 + + + + + True + False + True + Delay between mouse scroll events (ms) + True + 0 + + + 0 + 0 + + + + + True + False + True + Use this value to limit the number of captured mouse scroll events. + True + 0 + + + + 0 + 1 + + + + + + + + + False + True + 0 + + + 10000 250 @@ -6093,6 +6269,32 @@ 0 + + + 2 + + + + + True + False + Behavior + + + 2 + False + + + + + True + False + 24 + 24 + 24 + 24 + vertical + 24 False @@ -6211,6 +6413,197 @@ + + False + True + 0 + + + + + False + 0 + in + + + True + False + 12 + 12 + 12 + 12 + 16 + 6 + + + True + False + vertical + + + True + False + True + Scroll panel action + 0 + + + False + True + 0 + + + + + True + False + True + Behavior when mouse scrolling over the panel. + True + 0 + + + + False + True + 1 + + + + + 0 + 0 + + + + + True + False + vertical + + + True + False + True + Scroll icon action + 0 + + + False + True + 0 + + + + + True + False + True + Behavior when mouse scrolling over an application icon. + True + 0 + + + + False + True + 1 + + + + + 0 + 1 + + + + + True + True + True + end + center + + + True + False + emblem-system-symbolic + + + + + + 1 + 0 + + + + + True + False + center + True + + Do nothing + Switch workspace + + + + 2 + 0 + + + + + True + False + center + True + + Do nothing + Cycle windows + + + + 2 + 1 + + + + + True + True + True + end + center + + + True + False + emblem-system-symbolic + + + + + + 1 + 1 + + + + + + + + False True @@ -6335,22 +6728,22 @@ False True - 2 + 3 - 2 + 3 - + True False - Behavior + Action - 2 + 3 False @@ -6873,7 +7266,7 @@ - 3 + 4 @@ -6884,7 +7277,7 @@ Fine-Tune - 3 + 4 False @@ -7095,7 +7488,7 @@ See the <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.html">G - 4 + 5 @@ -7105,7 +7498,7 @@ See the <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.html">G About - 4 + 5 False diff --git a/appIcons.js b/appIcons.js index a184742..ae0e72c 100644 --- a/appIcons.js +++ b/appIcons.js @@ -302,6 +302,11 @@ var taskbarAppIcon = Utils.defineClass({ this.actor.disconnect(this._scrollEventId); } + if (this._scrollIconDelayTimeoutId) { + Mainloop.source_remove(this._scrollIconDelayTimeoutId); + this._scrollIconDelayTimeoutId = 0; + } + for (let i = 0; i < this._dtpSettingsSignalIds.length; ++i) { this._dtpSettings.disconnect(this._dtpSettingsSignalIds[i]); } @@ -341,13 +346,18 @@ var taskbarAppIcon = Utils.defineClass({ }, _onMouseScroll: function(actor, event) { - if (!this.window && !this._nWindows) { + if (this._dtpSettings.get_string('scroll-icon-action') === 'NOTHING' || + (!this.window && !this._nWindows)) { return; } let direction = Utils.getMouseScrollDirection(event); - if (direction) { + if (direction && !this._scrollIconDelayTimeoutId) { + this._scrollIconDelayTimeoutId = Mainloop.timeout_add(this._dtpSettings.get_int('scroll-icon-delay'), () => { + this._scrollIconDelayTimeoutId = 0; + }); + let windows = this.getAppIconInterestingWindows(); windows.sort(Taskbar.sortWindowsCompareFunction); diff --git a/panel.js b/panel.js index 1579d34..5805124 100644 --- a/panel.js +++ b/panel.js @@ -292,6 +292,11 @@ var dtpPanelWrapper = Utils.defineClass({ this._showDesktopTimeoutId = 0; } + if (this._scrollPanelDelayTimeoutId) { + Mainloop.source_remove(this._scrollPanelDelayTimeoutId); + this._scrollPanelDelayTimeoutId = 0; + } + if (this.startDynamicTransparencyId) { Mainloop.source_remove(this.startDynamicTransparencyId); this.startDynamicTransparencyId = 0; @@ -751,15 +756,21 @@ var dtpPanelWrapper = Utils.defineClass({ }, _onPanelMouseScroll: function(actor, event) { - let direction = Utils.getMouseScrollDirection(event); + if (this._dtpSettings.get_string('scroll-panel-action') === 'SWITCH_WORKSPACE') { + let direction = Utils.getMouseScrollDirection(event); + + if (!event.get_source()._dtpIgnoreScroll && direction && !this._scrollPanelDelayTimeoutId) { + this._scrollPanelDelayTimeoutId = Mainloop.timeout_add(this._dtpSettings.get_int('scroll-panel-delay'), () => { + this._scrollPanelDelayTimeoutId = 0; + }); - if (!event.get_source()._dtpIgnoreScroll && direction) { - let args = [global.display]; + let args = [global.display]; - //gnome-shell < 3.30 needs an additional "screen" param - global.screen ? args.push(global.screen) : 0; + //gnome-shell < 3.30 needs an additional "screen" param + global.screen ? args.push(global.screen) : 0; - Main.wm._showWorkspaceSwitcher.apply(Main.wm, args.concat([0, { get_name: () => 'switch---' + direction }])); + Main.wm._showWorkspaceSwitcher.apply(Main.wm, args.concat([0, { get_name: () => 'switch---' + direction }])); + } } }, }); diff --git a/prefs.js b/prefs.js index 58c37ca..f7d26c5 100644 --- a/prefs.js +++ b/prefs.js @@ -1387,6 +1387,88 @@ const Settings = new Lang.Class({ })); + this._builder.get_object('scroll_panel_combo').set_active_id(this._settings.get_string('scroll-panel-action')); + this._builder.get_object('scroll_panel_combo').connect('changed', Lang.bind (this, function(widget) { + this._settings.set_string('scroll-panel-action', widget.get_active_id()); + })); + + this._builder.get_object('scroll_icon_combo').set_active_id(this._settings.get_string('scroll-icon-action')); + this._builder.get_object('scroll_icon_combo').connect('changed', Lang.bind (this, function(widget) { + this._settings.set_string('scroll-icon-action', widget.get_active_id()); + })); + + // Create dialog for panel scroll options + this._builder.get_object('scroll_panel_options_button').connect('clicked', Lang.bind(this, function() { + let dialog = new Gtk.Dialog({ title: _('Customize panel scroll behavior'), + transient_for: this.widget.get_toplevel(), + use_header_bar: true, + modal: true }); + + // GTK+ leaves positive values for application-defined response ids. + // Use +1 for the reset action + dialog.add_button(_('Reset to defaults'), 1); + + let box = this._builder.get_object('scroll_panel_options_box'); + dialog.get_content_area().add(box); + + this._builder.get_object('scroll_panel_options_delay_spinbutton').set_value(this._settings.get_int('scroll-panel-delay')); + this._builder.get_object('scroll_panel_options_delay_spinbutton').connect('value-changed', Lang.bind (this, function(widget) { + this._settings.set_int('scroll-panel-delay', widget.get_value()); + })); + + dialog.connect('response', Lang.bind(this, function(dialog, id) { + if (id == 1) { + // restore default settings + this._settings.set_value('scroll-panel-delay', this._settings.get_default_value('scroll-panel-delay')); + this._builder.get_object('scroll_panel_options_delay_spinbutton').set_value(this._settings.get_int('scroll-panel-delay')); + } else { + // remove the settings box so it doesn't get destroyed; + dialog.get_content_area().remove(box); + dialog.destroy(); + } + return; + })); + + dialog.show_all(); + + })); + + // Create dialog for icon scroll options + this._builder.get_object('scroll_icon_options_button').connect('clicked', Lang.bind(this, function() { + let dialog = new Gtk.Dialog({ title: _('Customize icon scroll behavior'), + transient_for: this.widget.get_toplevel(), + use_header_bar: true, + modal: true }); + + // GTK+ leaves positive values for application-defined response ids. + // Use +1 for the reset action + dialog.add_button(_('Reset to defaults'), 1); + + let box = this._builder.get_object('scroll_icon_options_box'); + dialog.get_content_area().add(box); + + this._builder.get_object('scroll_icon_options_delay_spinbutton').set_value(this._settings.get_int('scroll-icon-delay')); + this._builder.get_object('scroll_icon_options_delay_spinbutton').connect('value-changed', Lang.bind (this, function(widget) { + this._settings.set_int('scroll-icon-delay', widget.get_value()); + })); + + dialog.connect('response', Lang.bind(this, function(dialog, id) { + if (id == 1) { + // restore default settings + this._settings.set_value('scroll-icon-delay', this._settings.get_default_value('scroll-icon-delay')); + this._builder.get_object('scroll_icon_options_delay_spinbutton').set_value(this._settings.get_int('scroll-icon-delay')); + } else { + // remove the settings box so it doesn't get destroyed; + dialog.get_content_area().remove(box); + dialog.destroy(); + } + return; + })); + + dialog.show_all(); + + })); + this._settings.bind('hot-keys', this._builder.get_object('hot_keys_switch'), 'active', diff --git a/schemas/org.gnome.shell.extensions.dash-to-panel.gschema.xml b/schemas/org.gnome.shell.extensions.dash-to-panel.gschema.xml index 2d5fa11..0f24b99 100644 --- a/schemas/org.gnome.shell.extensions.dash-to-panel.gschema.xml +++ b/schemas/org.gnome.shell.extensions.dash-to-panel.gschema.xml @@ -18,6 +18,11 @@ + + + + + @@ -574,6 +579,26 @@ Action when clicking on a running app Set the action that is executed when shift+middle-clicking on the icon of a running application + + 'SWITCH_WORKSPACE' + Action when scrolling over the panel + Set the action that is executed when scrolling over the panel + + + 0 + Delay between panel mouse scroll events + Set the minimum delay between panel mouse scroll events + + + 'CYCLE_WINDOWS' + Action when scrolling over a running app + Set the action that is executed when scrolling over a running application + + + 0 + Delay between icon mouse scroll events + Set the minimum delay between icon mouse scroll events + 100 Icon leave preview timeout From fcaf5ae40f87f4ad90bcf2ca243285e88c797b61 Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Tue, 20 Aug 2019 09:02:45 -0400 Subject: [PATCH 16/28] Fix taskbar auto scroll on appicon drag --- taskbar.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/taskbar.js b/taskbar.js index 0d0d868..893d76e 100644 --- a/taskbar.js +++ b/taskbar.js @@ -964,9 +964,9 @@ var taskbar = Utils.defineClass({ // Ensure the next and previous icon are visible when moving the icon // (I assume there's room for both of them) if (hoveredIndex > 1) - ensureActorVisibleInScrollView(this._scrollView, this._box.get_children()[hoveredIndex-1], this._scrollView._dtpFadeSize); + Utils.ensureActorVisibleInScrollView(this._scrollView, this._box.get_children()[hoveredIndex-1], this._scrollView._dtpFadeSize); if (hoveredIndex < this._box.get_children().length-1) - ensureActorVisibleInScrollView(this._scrollView, this._box.get_children()[hoveredIndex+1], this._scrollView._dtpFadeSize); + Utils.ensureActorVisibleInScrollView(this._scrollView, this._box.get_children()[hoveredIndex+1], this._scrollView._dtpFadeSize); } } From 74c01046a396f7b1cfadada9135c46b8939cbac5 Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Tue, 20 Aug 2019 16:35:20 -0400 Subject: [PATCH 17/28] More 3.34 fixes --- appIcons.js | 30 +++++++++++++++++++----------- taskbar.js | 4 +--- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/appIcons.js b/appIcons.js index ae0e72c..1b7add0 100644 --- a/appIcons.js +++ b/appIcons.js @@ -50,10 +50,6 @@ const Utils = Me.imports.utils; const Taskbar = Me.imports.taskbar; const _ = imports.gettext.domain(Utils.TRANSLATION_DOMAIN).gettext; -let DASH_ANIMATION_TIME = Dash.DASH_ANIMATION_TIME; -let DASH_ITEM_LABEL_SHOW_TIME = Dash.DASH_ITEM_LABEL_SHOW_TIME; -let DASH_ITEM_LABEL_HIDE_TIME = Dash.DASH_ITEM_LABEL_HIDE_TIME; -let DASH_ITEM_HOVER_TIMEOUT = Dash.DASH_ITEM_HOVER_TIMEOUT; let LABEL_GAP = 5; let MAX_INDICATORS = 4; @@ -131,6 +127,7 @@ var taskbarAppIcon = Utils.defineClass({ this.callParent('_init', appInfo.app, iconParams); + this.icon.label = {}; Utils.wrapActor(this.icon); this._dot.set_width(0); @@ -668,7 +665,7 @@ var taskbarAppIcon = Utils.defineClass({ dots._tweeningToWidth = newWidth; Tweener.addTween(dots, { width: newWidth, - time: DASH_ANIMATION_TIME, + time: Taskbar.DASH_ANIMATION_TIME, transition: 'easeInOutCubic', onStart: Lang.bind(this, function() { if(newOtherOpacity == 0) @@ -1139,6 +1136,7 @@ var taskbarAppIcon = Utils.defineClass({ } }); +taskbarAppIcon.prototype.scaleAndFade = taskbarAppIcon.prototype.undoScaleAndFade = () => {}; function minimizeWindow(app, param, settings, monitor){ // Param true make all app windows minimize @@ -1472,11 +1470,20 @@ function ItemShowLabel() { x -= x + labelWidth -( monitor.x + monitor.width) + gap; this.label.set_position(x, y); - Tweener.addTween(this.label, - { opacity: 255, - time: DASH_ITEM_LABEL_SHOW_TIME, - transition: 'easeOutQuad', - }); + + if (Dash.DASH_ITEM_LABEL_SHOW_TIME < 1) { + Tweener.addTween(this.label, { + opacity: 255, + time: Dash.DASH_ITEM_LABEL_SHOW_TIME, + transition: 'easeOutQuad', + }); + } else { + this.label.ease({ + opacity: 255, + duration: Dash.DASH_ITEM_LABEL_SHOW_TIME, + mode: Clutter.AnimationMode.EASE_OUT_QUAD + }); + } }; /** @@ -1505,6 +1512,7 @@ var ShowAppsIconWrapper = Utils.defineClass({ (actor): duplicate reference to easily reuse appIcon methods */ this.actor = this.realShowAppsIcon.toggleButton; this.realShowAppsIcon.actor.y_align = Clutter.ActorAlign.START; + this.realShowAppsIcon.show(false); // Re-use appIcon methods this._removeMenuTimeout = AppDisplay.AppIcon.prototype._removeMenuTimeout; @@ -1530,7 +1538,7 @@ var ShowAppsIconWrapper = Utils.defineClass({ this._menuManager = new PopupMenu.PopupMenuManager(this.actor); this._menuTimeoutId = 0; - this.realShowAppsIcon.showLabel = ItemShowLabel; + Taskbar.extendDashItemContainer(this.realShowAppsIcon); let customIconPath = this._dtpSettings.get_string('show-apps-icon-file'); diff --git a/taskbar.js b/taskbar.js index 893d76e..290b3eb 100644 --- a/taskbar.js +++ b/taskbar.js @@ -48,9 +48,7 @@ const Utils = Me.imports.utils; const WindowPreview = Me.imports.windowPreview; const AppIcons = Me.imports.appIcons; -var DASH_ANIMATION_TIME = Dash.DASH_ANIMATION_TIME; -let DASH_ITEM_LABEL_SHOW_TIME = Dash.DASH_ITEM_LABEL_SHOW_TIME; -let DASH_ITEM_LABEL_HIDE_TIME = Dash.DASH_ITEM_LABEL_HIDE_TIME; +var DASH_ANIMATION_TIME = Dash.DASH_ANIMATION_TIME / (Dash.DASH_ANIMATION_TIME > 1 ? 1000 : 1); var DASH_ITEM_HOVER_TIMEOUT = Dash.DASH_ITEM_HOVER_TIMEOUT; var MIN_ICON_SIZE = 4; From 3fedf41bcd257e3f868868b7228b3350e873b19e Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Tue, 20 Aug 2019 17:29:56 -0400 Subject: [PATCH 18/28] Fix label allocation on Shell.GenericContainer g-s versions --- appIcons.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/appIcons.js b/appIcons.js index 1b7add0..e7a6dd3 100644 --- a/appIcons.js +++ b/appIcons.js @@ -127,7 +127,10 @@ var taskbarAppIcon = Utils.defineClass({ this.callParent('_init', appInfo.app, iconParams); - this.icon.label = {}; + if (!IconGrid.BaseIcon.prototype._allocate) { + this.icon.label = {}; + } + Utils.wrapActor(this.icon); this._dot.set_width(0); From f48fd211873059f17f1079c2f35bdb6184532f34 Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Wed, 21 Aug 2019 00:09:39 -0400 Subject: [PATCH 19/28] Fix panelbox position on intellihide enable --- intellihide.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/intellihide.js b/intellihide.js index a42b28c..5d2b933 100644 --- a/intellihide.js +++ b/intellihide.js @@ -41,6 +41,7 @@ const MIN_UPDATE_MS = 250; const T1 = 'checkGrabTimeout'; const T2 = 'limitUpdateTimeout'; const T3 = 'postAnimateTimeout'; +const T4 = 'panelBoxClipTimeout'; var Hold = { NONE: 0, @@ -221,13 +222,13 @@ var Intellihide = Utils.defineClass({ this._clipContainer = new Clutter.Actor(); Utils.setClip(this._clipContainer, this._panelBox.x, this._panelBox.y, this._panelBox.width, this._panelBox.height); - Main.layoutManager.uiGroup.remove_actor(this._panelBox); - this._panelBox.show(); - this._clipContainer.add_child(this._panelBox); - this._panelBox.set_position(0, 0); - + Main.layoutManager.removeChrome(this._panelBox); Main.layoutManager.addChrome(this._clipContainer, { affectsInputRegion: false }); + + this._clipContainer.add_child(this._panelBox); Main.layoutManager.trackChrome(this._panelBox, { affectsInputRegion: true }); + + this._timeoutsHandler.add([T4, 0, () => this._panelBox.set_position(0, 0)]); } else { this._panelBox.set_position(this._clipContainer.x, this._clipContainer.y); Main.layoutManager.removeChrome(this._clipContainer); From ce28d212791564ac9f17c61df52c51d9e164045a Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Thu, 22 Aug 2019 08:10:35 -0400 Subject: [PATCH 20/28] Add setting to immediately hide previews on appicon click --- Settings.ui | 97 +++++++++++++------ appIcons.js | 2 +- prefs.js | 7 ++ ...shell.extensions.dash-to-panel.gschema.xml | 5 + 4 files changed, 81 insertions(+), 30 deletions(-) diff --git a/Settings.ui b/Settings.ui index e599d3c..17bc903 100644 --- a/Settings.ui +++ b/Settings.ui @@ -2264,35 +2264,6 @@ 0 - - - True - False - True - Time (ms) before hiding (100 is default) - 0 - - - 0 - 1 - - - - - True - True - end - 4 - 25 - leave_timeout_adjustment - True - 25 - - - 1 - 1 - - True @@ -2321,6 +2292,74 @@ 2 + + + True + False + vertical + + + True + False + True + Time (ms) before hiding (100 is default) + 0 + + + False + True + 0 + + + + + True + True + False + 12 + 4 + True + + + 4 + True + False + start + 4 + Immediate on application icon click + True + + + + + False + True + 1 + + + + + 0 + 1 + + + + + True + True + end + center + 4 + 25 + leave_timeout_adjustment + True + 25 + + + 1 + 1 + + diff --git a/appIcons.js b/appIcons.js index e7a6dd3..662cc94 100644 --- a/appIcons.js +++ b/appIcons.js @@ -748,7 +748,7 @@ var taskbarAppIcon = Utils.defineClass({ let appCount = this.getAppIconInterestingWindows().length; let previewedAppIcon = this._previewMenu.getCurrentAppIcon(); - this._previewMenu.close(); + this._previewMenu.close(this._dtpSettings.get_boolean('window-preview-hide-immediate-click')); // We check if the app is running, and that the # of windows is > 0 in // case we use workspace isolation, diff --git a/prefs.js b/prefs.js index f7d26c5..4eabbde 100644 --- a/prefs.js +++ b/prefs.js @@ -1102,6 +1102,11 @@ const Settings = new Lang.Class({ this._settings.set_int('leave-timeout', widget.get_value()); })); + this._settings.bind('window-preview-hide-immediate-click', + this._builder.get_object('preview_immediate_click_button'), + 'active', + Gio.SettingsBindFlags.DEFAULT); + this._builder.get_object('animation_time_spinbutton').set_value(this._settings.get_int('window-preview-animation-time')); this._builder.get_object('animation_time_spinbutton').connect('value-changed', Lang.bind (this, function(widget) { this._settings.set_int('window-preview-animation-time', widget.get_value()); @@ -1157,6 +1162,8 @@ const Settings = new Lang.Class({ this._settings.set_value('leave-timeout', this._settings.get_default_value('leave-timeout')); this._builder.get_object('leave_timeout_spinbutton').set_value(this._settings.get_int('leave-timeout')); + this._settings.set_value('window-preview-hide-immediate-click', this._settings.get_default_value('window-preview-hide-immediate-click')); + this._settings.set_value('window-preview-animation-time', this._settings.get_default_value('window-preview-animation-time')); this._builder.get_object('animation_time_spinbutton').set_value(this._settings.get_int('window-preview-animation-time')); diff --git a/schemas/org.gnome.shell.extensions.dash-to-panel.gschema.xml b/schemas/org.gnome.shell.extensions.dash-to-panel.gschema.xml index 0f24b99..5349a9d 100644 --- a/schemas/org.gnome.shell.extensions.dash-to-panel.gschema.xml +++ b/schemas/org.gnome.shell.extensions.dash-to-panel.gschema.xml @@ -471,6 +471,11 @@ Aspect ratio Y The window previews respected aspect ratio Y. + + false + Immediate hide on icon click + The window previews immediately hide when an application icon is clicked. + false Provide workspace isolation From 98e28b367b3cb7572abcc48234d72f26f5d11c83 Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Thu, 22 Aug 2019 08:56:31 -0400 Subject: [PATCH 21/28] Reset previews header position setting --- prefs.js | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/prefs.js b/prefs.js index 4eabbde..fd4ac9f 100644 --- a/prefs.js +++ b/prefs.js @@ -995,14 +995,7 @@ const Settings = new Lang.Class({ 'active', Gio.SettingsBindFlags.DEFAULT); - switch (this._settings.get_string('window-preview-title-position')) { - case 'BOTTOM': - this._builder.get_object('preview_title_position_bottom_button').set_active(true); - break; - case 'TOP': - this._builder.get_object('preview_title_position_top_button').set_active(true); - break; - } + this._setPreviewTitlePosition(); this._builder.get_object('grid_preview_title_font_color_colorbutton').connect('notify::color', Lang.bind(this, function (button) { let rgba = button.get_rgba(); @@ -1172,6 +1165,9 @@ const Settings = new Lang.Class({ this._settings.set_value('preview-custom-opacity', this._settings.get_default_value('preview-custom-opacity')); this._builder.get_object('preview_custom_opacity_spinbutton').set_value(this._settings.get_int('preview-custom-opacity')); + this._settings.set_value('window-preview-title-position', this._settings.get_default_value('window-preview-title-position')); + this._setPreviewTitlePosition(); + this._settings.set_value('peek-mode', this._settings.get_default_value('peek-mode')); this._settings.set_value('window-preview-show-title', this._settings.get_default_value('window-preview-show-title')); this._settings.set_value('enter-peek-mode-timeout', this._settings.get_default_value('enter-peek-mode-timeout')); @@ -1744,6 +1740,17 @@ const Settings = new Lang.Class({ }); }, + _setPreviewTitlePosition: function() { + switch (this._settings.get_string('window-preview-title-position')) { + case 'BOTTOM': + this._builder.get_object('preview_title_position_bottom_button').set_active(true); + break; + case 'TOP': + this._builder.get_object('preview_title_position_top_button').set_active(true); + break; + } + }, + _showFileChooser: function(title, params, acceptBtn, acceptHandler) { let dialog = new Gtk.FileChooserDialog(mergeObjects({ title: title, transient_for: this.widget.get_toplevel() }, params)); From 6f02e1643b168e9124df904a0d7130388c10fb35 Mon Sep 17 00:00:00 2001 From: jderose9 Date: Fri, 23 Aug 2019 07:52:37 -0400 Subject: [PATCH 22/28] Fix running indicator not redrawn after isolated workspace switch --- appIcons.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/appIcons.js b/appIcons.js index 662cc94..667e9cb 100644 --- a/appIcons.js +++ b/appIcons.js @@ -588,7 +588,10 @@ var taskbarAppIcon = Utils.defineClass({ }, _onSwitchWorkspace: function(windowTracker) { - this._displayProperIndicator(); + Mainloop.timeout_add(0, Lang.bind(this, function () { + this._displayProperIndicator(); + return GLib.SOURCE_REMOVE; + })); }, _displayProperIndicator: function (force) { From 71b4ceb4fe16f7dae2a9e6baada36ad93c17da99 Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Sat, 24 Aug 2019 18:22:00 -0400 Subject: [PATCH 23/28] Sync appicon destroy on isolated workspace switch --- taskbar.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/taskbar.js b/taskbar.js index 290b3eb..0231146 100644 --- a/taskbar.js +++ b/taskbar.js @@ -487,7 +487,7 @@ var taskbar = Utils.defineClass({ handleIsolatedWorkspaceSwitch: function() { this._shownInitially = this.isGroupApps; - this._queueRedisplay(); + this._redisplay(); }, _connectWorkspaceSignals: function() { From 906f2f2aaf739ebe324c3ad9acac5ec78a0023c2 Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Sun, 25 Aug 2019 16:53:57 -0400 Subject: [PATCH 24/28] Add setting to cycle taskbar windows on mouse scroll --- Settings.ui | 1 + appIcons.js | 23 +++-------------------- panel.js | 19 ++++++++++++------- taskbar.js | 30 +++++++++++++++++------------- utils.js | 17 +++++++++++++++++ 5 files changed, 50 insertions(+), 40 deletions(-) diff --git a/Settings.ui b/Settings.ui index 17bc903..9d92c57 100644 --- a/Settings.ui +++ b/Settings.ui @@ -6591,6 +6591,7 @@ Do nothing Switch workspace + Cycle windows diff --git a/appIcons.js b/appIcons.js index 667e9cb..647d445 100644 --- a/appIcons.js +++ b/appIcons.js @@ -359,23 +359,9 @@ var taskbarAppIcon = Utils.defineClass({ }); let windows = this.getAppIconInterestingWindows(); - + windows.sort(Taskbar.sortWindowsCompareFunction); - - let windowIndex = windows.indexOf(global.display.focus_window); - let nextWindowIndex = windowIndex < 0 ? - this.window ? windows.indexOf(this.window) : 0 : - windowIndex + (direction == 'up' ? 1 : -1); - - if (nextWindowIndex == windows.length) { - nextWindowIndex = 0; - } else if (nextWindowIndex < 0) { - nextWindowIndex = windows.length - 1; - } - - if (windowIndex != nextWindowIndex) { - Main.activateWindow(windows[nextWindowIndex]); - } + Utils.activateSiblingWindow(windows, direction, this.window); } }, @@ -588,10 +574,7 @@ var taskbarAppIcon = Utils.defineClass({ }, _onSwitchWorkspace: function(windowTracker) { - Mainloop.timeout_add(0, Lang.bind(this, function () { - this._displayProperIndicator(); - return GLib.SOURCE_REMOVE; - })); + this._displayProperIndicator(); }, _displayProperIndicator: function (force) { diff --git a/panel.js b/panel.js index 5805124..2a403be 100644 --- a/panel.js +++ b/panel.js @@ -756,20 +756,25 @@ var dtpPanelWrapper = Utils.defineClass({ }, _onPanelMouseScroll: function(actor, event) { - if (this._dtpSettings.get_string('scroll-panel-action') === 'SWITCH_WORKSPACE') { - let direction = Utils.getMouseScrollDirection(event); - - if (!event.get_source()._dtpIgnoreScroll && direction && !this._scrollPanelDelayTimeoutId) { - this._scrollPanelDelayTimeoutId = Mainloop.timeout_add(this._dtpSettings.get_int('scroll-panel-delay'), () => { - this._scrollPanelDelayTimeoutId = 0; - }); + let scrollAction = this._dtpSettings.get_string('scroll-panel-action'); + let direction = Utils.getMouseScrollDirection(event); + if (!event.get_source()._dtpIgnoreScroll && direction && !this._scrollPanelDelayTimeoutId) { + this._scrollPanelDelayTimeoutId = Mainloop.timeout_add(this._dtpSettings.get_int('scroll-panel-delay'), () => { + this._scrollPanelDelayTimeoutId = 0; + }); + + if (scrollAction === 'SWITCH_WORKSPACE') { let args = [global.display]; //gnome-shell < 3.30 needs an additional "screen" param global.screen ? args.push(global.screen) : 0; Main.wm._showWorkspaceSwitcher.apply(Main.wm, args.concat([0, { get_name: () => 'switch---' + direction }])); + } else if (scrollAction === 'CYCLE_WINDOWS') { + let windows = this.taskbar.getAppInfos().reduce((ws, appInfo) => ws.concat(appInfo.windows), []); + + Utils.activateSiblingWindow(windows, direction); } } }, diff --git a/taskbar.js b/taskbar.js index 0231146..8d7e893 100644 --- a/taskbar.js +++ b/taskbar.js @@ -740,13 +740,7 @@ var taskbar = Utils.defineClass({ getAppStableSequence(appB, this._dtpSettings, this.panelWrapper.monitor); }, - _redisplay: function () { - if (!this._signalsHandler) { - return; - } - - //get the currently displayed appIcons - let currentAppIcons = this._getTaskbarIcons(); + getAppInfos: function() { //get the user's favorite apps let favoriteApps = this._checkIfShowingFavorites() ? AppFavorites.getAppFavorites().getFavorites() : []; @@ -754,16 +748,26 @@ var taskbar = Utils.defineClass({ // When using isolation, we filter out apps that have no windows in // the current workspace (this check is done in AppIcons.getInterestingWindows) let runningApps = this._checkIfShowingRunningApps() ? this._getRunningApps().sort(this.sortAppsCompareFunction.bind(this)) : []; - let expectedAppInfos; + if (!this.isGroupApps && this._dtpSettings.get_boolean('group-apps-use-launchers')) { - expectedAppInfos = this._createAppInfos(favoriteApps, [], true) - .concat(this._createAppInfos(runningApps) - .filter(appInfo => appInfo.windows.length)); + return expectedAppInfos = this._createAppInfos(favoriteApps, [], true) + .concat(this._createAppInfos(runningApps) + .filter(appInfo => appInfo.windows.length)); } else { - expectedAppInfos = this._createAppInfos(favoriteApps.concat(runningApps.filter(app => favoriteApps.indexOf(app) < 0))) - .filter(appInfo => appInfo.windows.length || favoriteApps.indexOf(appInfo.app) >= 0); + return this._createAppInfos(favoriteApps.concat(runningApps.filter(app => favoriteApps.indexOf(app) < 0))) + .filter(appInfo => appInfo.windows.length || favoriteApps.indexOf(appInfo.app) >= 0); } + }, + + _redisplay: function () { + if (!this._signalsHandler) { + return; + } + + //get the currently displayed appIcons + let currentAppIcons = this._getTaskbarIcons(); + let expectedAppInfos = this.getAppInfos(); //remove the appIcons which are not in the expected apps list for (let i = currentAppIcons.length - 1; i > -1; --i) { diff --git a/utils.js b/utils.js index d2d39e4..205ea18 100644 --- a/utils.js +++ b/utils.js @@ -397,6 +397,23 @@ var getMouseScrollDirection = function(event) { return direction; }; +var activateSiblingWindow = function(windows, direction, startWindow) { + let windowIndex = windows.indexOf(global.display.focus_window); + let nextWindowIndex = windowIndex < 0 ? + startWindow ? windows.indexOf(startWindow) : 0 : + windowIndex + (direction == 'up' ? 1 : -1); + + if (nextWindowIndex == windows.length) { + nextWindowIndex = 0; + } else if (nextWindowIndex < 0) { + nextWindowIndex = windows.length - 1; + } + + if (windowIndex != nextWindowIndex) { + Main.activateWindow(windows[nextWindowIndex]); + } +} + /* * This is a copy of the same function in utils.js, but also adjust horizontal scrolling * and perform few further cheks on the current value to avoid changing the values when From 613a648699e44ed0e974585e21107ccc37e7d46e Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Sun, 25 Aug 2019 18:36:40 -0400 Subject: [PATCH 25/28] Remove useless identifier --- taskbar.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/taskbar.js b/taskbar.js index 8d7e893..c0eb123 100644 --- a/taskbar.js +++ b/taskbar.js @@ -748,12 +748,11 @@ var taskbar = Utils.defineClass({ // When using isolation, we filter out apps that have no windows in // the current workspace (this check is done in AppIcons.getInterestingWindows) let runningApps = this._checkIfShowingRunningApps() ? this._getRunningApps().sort(this.sortAppsCompareFunction.bind(this)) : []; - if (!this.isGroupApps && this._dtpSettings.get_boolean('group-apps-use-launchers')) { - return expectedAppInfos = this._createAppInfos(favoriteApps, [], true) - .concat(this._createAppInfos(runningApps) - .filter(appInfo => appInfo.windows.length)); + return this._createAppInfos(favoriteApps, [], true) + .concat(this._createAppInfos(runningApps) + .filter(appInfo => appInfo.windows.length)); } else { return this._createAppInfos(favoriteApps.concat(runningApps.filter(app => favoriteApps.indexOf(app) < 0))) .filter(appInfo => appInfo.windows.length || favoriteApps.indexOf(appInfo.app) >= 0); From 6d4ed36084c58fa8618287dc03a4a5b68617cb04 Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Mon, 26 Aug 2019 15:48:01 -0400 Subject: [PATCH 26/28] Inherit from DashIcon instead of AppIcon on g-s 3.34 --- appIcons.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/appIcons.js b/appIcons.js index 647d445..cf2175e 100644 --- a/appIcons.js +++ b/appIcons.js @@ -91,7 +91,7 @@ let tracker = Shell.WindowTracker.get_default(); var taskbarAppIcon = Utils.defineClass({ Name: 'DashToPanel.TaskbarAppIcon', - Extends: AppDisplay.AppIcon, + Extends: (Dash.DashIcon || AppDisplay.AppIcon), ParentConstrParams: [[1, 'app'], [3]], _init: function(settings, appInfo, panelWrapper, iconParams, previewMenu) { @@ -127,10 +127,6 @@ var taskbarAppIcon = Utils.defineClass({ this.callParent('_init', appInfo.app, iconParams); - if (!IconGrid.BaseIcon.prototype._allocate) { - this.icon.label = {}; - } - Utils.wrapActor(this.icon); this._dot.set_width(0); From fa2f7ac05b8ad74faecd69e45432944e6b6b9a1a Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Wed, 28 Aug 2019 19:00:08 -0400 Subject: [PATCH 27/28] Separate grouped/ungrouped appicon isolated workspace switch --- appIcons.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/appIcons.js b/appIcons.js index cf2175e..594198a 100644 --- a/appIcons.js +++ b/appIcons.js @@ -570,7 +570,14 @@ var taskbarAppIcon = Utils.defineClass({ }, _onSwitchWorkspace: function(windowTracker) { - this._displayProperIndicator(); + if (this._isGroupApps) { + Mainloop.timeout_add(0, Lang.bind(this, function () { + this._displayProperIndicator(); + return GLib.SOURCE_REMOVE; + })); + } else { + this._displayProperIndicator(); + } }, _displayProperIndicator: function (force) { From 06d50e81abb37732599ca517e2e3fada5e0262ef Mon Sep 17 00:00:00 2001 From: Charles Gagnon Date: Wed, 28 Aug 2019 19:14:28 -0400 Subject: [PATCH 28/28] Async redisplay on isolated workspace switch --- taskbar.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/taskbar.js b/taskbar.js index c0eb123..ced9d8c 100644 --- a/taskbar.js +++ b/taskbar.js @@ -487,7 +487,7 @@ var taskbar = Utils.defineClass({ handleIsolatedWorkspaceSwitch: function() { this._shownInitially = this.isGroupApps; - this._redisplay(); + this._queueRedisplay(); }, _connectWorkspaceSignals: function() {