diff --git a/po/ar.po b/po/ar.po index b588887..dd19a24 100644 --- a/po/ar.po +++ b/po/ar.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: 12\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-25 13:30+0300\n" +"POT-Creation-Date: 2025-01-14 10:38+0100\n" "PO-Revision-Date: 2023-12-10 10:05+0000\n" "Last-Translator: Nadjib Chergui \n" "Language-Team: Arabic \n" "Language-Team: Czech \n" "Language-Team: German \n" "Language-Team: Esperanto \n" "Language-Team: Spanish \n" "Language-Team: Finnish \n" "Language-Team: French \n" "Language-Team: Hungarian \n" "Language-Team: Indonesian \n" "Language-Team: Italian \n" "Language-Team: Japanese \n" "Language-Team: Norwegian Bokmål \n" "Language-Team: Dutch \n" "Language-Team: Polish \n" "Language-Team: Portuguese \n" "Language-Team: Portuguese (Brazil) \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: src/preferences/pages/blacklist.ui:6 src/preferences/pages/blacklist.ui:10 @@ -120,16 +120,17 @@ msgid "Border width" msgstr "" #: src/preferences/pages/general.ui:57 src/preferences/pages/general.ui:65 +#: src/preferences/widgets/custom_settings_row.ts:19 msgid "Border color" msgstr "" #: src/preferences/pages/general.ui:74 -#: src/preferences/widgets/custom_settings_row.ts:19 +#: src/preferences/widgets/custom_settings_row.ts:27 msgid "Corner radius" msgstr "" #: src/preferences/pages/general.ui:101 -#: src/preferences/widgets/custom_settings_row.ts:29 +#: src/preferences/widgets/custom_settings_row.ts:37 msgid "Corner smoothing" msgstr "" @@ -246,19 +247,19 @@ msgstr "" msgid "Enabled" msgstr "" -#: src/preferences/widgets/custom_settings_row.ts:39 +#: src/preferences/widgets/custom_settings_row.ts:47 msgid "Keep rounded corners when maximized" msgstr "" -#: src/preferences/widgets/custom_settings_row.ts:41 +#: src/preferences/widgets/custom_settings_row.ts:49 msgid "Always clip rounded corners even if window is maximized or tiled" msgstr "" -#: src/preferences/widgets/custom_settings_row.ts:45 +#: src/preferences/widgets/custom_settings_row.ts:53 msgid "Keep rounded corners when in fullscreen" msgstr "" -#: src/preferences/widgets/custom_settings_row.ts:46 +#: src/preferences/widgets/custom_settings_row.ts:54 msgid "Always clip rounded corners even for fullscreen window" msgstr "" diff --git a/po/ru.po b/po/ru.po index 094ec98..8bed41f 100644 --- a/po/ru.po +++ b/po/ru.po @@ -1,7 +1,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-12-25 13:30+0300\n" +"POT-Creation-Date: 2025-01-14 10:38+0100\n" "PO-Revision-Date: 2023-03-09 15:37+0000\n" "Last-Translator: Evgeniy Khramov \n" "Language-Team: Russian \n" "Language-Team: Turkish \n" "Language-Team: Ukrainian \n" "Language-Team: Chinese (Simplified) 0 - + [] window here will not be rounded @@ -35,11 +35,6 @@ 0 - - Border color for rounded corners window - (0.5, 0.5, 0.5, 1.0) - - Global rounded corners settings for all windows @@ -61,6 +56,7 @@ }>, 'borderRadius': <uint32 12>, 'smoothing': <0>, + 'borderColor': <[0.5, 0.5, 0.5, 1.0]>, 'enabled': <true> } diff --git a/src/effect/rounded_corners_effect.ts b/src/effect/rounded_corners_effect.ts index 57ad3e3..b2864ed 100644 --- a/src/effect/rounded_corners_effect.ts +++ b/src/effect/rounded_corners_effect.ts @@ -67,7 +67,7 @@ export const RoundedCornersEffect = GObject.registerClass( windowBounds: Bounds, ) { const borderWidth = getPref('border-width') * scaleFactor; - const borderColor = getPref('border-color'); + const borderColor = config.borderColor; const outerRadius = config.borderRadius * scaleFactor; const {padding, smoothing} = config; diff --git a/src/manager/event_handlers.ts b/src/manager/event_handlers.ts index 1f20e35..d2f948b 100644 --- a/src/manager/event_handlers.ts +++ b/src/manager/event_handlers.ts @@ -167,7 +167,6 @@ export function onSettingsChanged(key: SchemaKey): void { break; case 'global-rounded-corner-settings': case 'custom-rounded-corner-settings': - case 'border-color': case 'border-width': case 'tweak-kitty-terminal': refreshAllRoundedCorners(); diff --git a/src/preferences/pages/custom.ts b/src/preferences/pages/custom.ts index 65a9c0d..660c98a 100644 --- a/src/preferences/pages/custom.ts +++ b/src/preferences/pages/custom.ts @@ -7,6 +7,7 @@ import Adw from 'gi://Adw'; import GLib from 'gi://GLib'; import GObject from 'gi://GObject'; +import Gdk from 'gi://Gdk'; import {gettext as _} from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js'; import {getPref, setPref} from '../../utils/settings.js'; @@ -147,6 +148,29 @@ export const CustomPage = GObject.registerClass( this.#customWindowSettings, ); }); + + const color = new Gdk.RGBA(); + [color.red, color.green, color.blue, color.alpha] = + this.#customWindowSettings[wmClass].borderColor; + + r.borderColorButton.set_rgba(color); + r.borderColorButton.connect( + 'notify::rgba', + (_button: Gtk.ColorDialogButton) => { + const color = r.borderColorButton.get_rgba(); + this.#customWindowSettings[wmClass].borderColor = [ + color.red, + color.green, + color.blue, + color.alpha, + ]; + setPref( + 'custom-rounded-corner-settings', + this.#customWindowSettings, + ); + }, + ); + r.cornerRadius.set_value( this.#customWindowSettings[wmClass].borderRadius, ); diff --git a/src/preferences/pages/general.ts b/src/preferences/pages/general.ts index cb8c7dc..a0a2f20 100644 --- a/src/preferences/pages/general.ts +++ b/src/preferences/pages/general.ts @@ -85,18 +85,19 @@ export const GeneralPage = GObject.registerClass( const color = new Gdk.RGBA(); [color.red, color.green, color.blue, color.alpha] = - getPref('border-color'); + this.#settings.borderColor; this._borderColor.set_rgba(color); this._borderColor.connect( 'notify::rgba', (button: Gtk.ColorDialogButton) => { const color = button.get_rgba(); - setPref('border-color', [ + this.#settings.borderColor = [ color.red, color.green, color.blue, color.alpha, - ]); + ]; + this.#updateGlobalConfig(); }, ); diff --git a/src/preferences/pages/reset.ts b/src/preferences/pages/reset.ts index 427bc74..f918b8e 100644 --- a/src/preferences/pages/reset.ts +++ b/src/preferences/pages/reset.ts @@ -51,10 +51,10 @@ export const ResetPage = GObject.registerClass( 'focused-shadow': 'Focus Window Shadow Style', 'unfocused-shadow': 'Unfocus Window Shadow Style', 'border-width': 'Border Width', - 'border-color': 'Border Color', 'debug-mode': 'Enable Log', borderRadius: 'Border Radius', + borderColor: 'Border Color', padding: 'Padding', keepRoundedCorners: 'Keep Rounded Corners when Maximized or Fullscreen', diff --git a/src/preferences/widgets/custom_settings_row.ts b/src/preferences/widgets/custom_settings_row.ts index 39ea1c7..a4aba08 100644 --- a/src/preferences/widgets/custom_settings_row.ts +++ b/src/preferences/widgets/custom_settings_row.ts @@ -15,6 +15,14 @@ export class CustomSettingsRowClass extends AppRowClass { title: _('Enabled'), }); + #borderColorRow = new Adw.ActionRow({ + title: _('Border color'), + }); + borderColorButton = new Gtk.ColorDialogButton({ + valign: Gtk.Align.CENTER, + }); + borderColorDialog = new Gtk.ColorDialog(); + #cornerRadiusRow = new Adw.ActionRow({ title: _('Corner radius'), }); @@ -49,6 +57,10 @@ export class CustomSettingsRowClass extends AppRowClass { constructor(cb: AppRowCallbacks) { super(cb); + + this.#borderColorRow.add_suffix(this.borderColorButton); + this.borderColorButton.set_dialog(this.borderColorDialog); + this.#cornerRadiusRow.add_suffix( new Gtk.Scale({ valign: Gtk.Align.CENTER, @@ -74,6 +86,7 @@ export class CustomSettingsRowClass extends AppRowClass { ); this.add_row(this.enabledRow); + this.add_row(this.#borderColorRow); this.add_row(this.#cornerRadiusRow); this.add_row(this.#cornerSmoothingRow); this.add_row(this.keepForMaximized); @@ -98,6 +111,7 @@ export class CustomSettingsRowClass extends AppRowClass { } private toggleSensitivity(state: boolean) { + this.#borderColorRow.set_sensitive(state); this.#cornerRadiusRow.set_sensitive(state); this.#cornerSmoothingRow.set_sensitive(state); this.keepForMaximized.set_sensitive(state); diff --git a/src/utils/settings.ts b/src/utils/settings.ts index 0c39bec..a62896d 100644 --- a/src/utils/settings.ts +++ b/src/utils/settings.ts @@ -23,7 +23,6 @@ type Schema = { 'skip-libadwaita-app': boolean; 'skip-libhandy-app': boolean; 'border-width': number; - 'border-color': [number, number, number, number]; 'global-rounded-corner-settings': RoundedCornerSettings; 'custom-rounded-corner-settings': CustomRoundedCornerSettings; 'focused-shadow': BoxShadow; @@ -43,7 +42,6 @@ export const Schema = { 'skip-libadwaita-app': 'b', 'skip-libhandy-app': 'b', 'border-width': 'i', - 'border-color': '(dddd)', 'global-rounded-corner-settings': 'a{sv}', 'custom-rounded-corner-settings': 'a{sv}', 'focused-shadow': 'a{si}', @@ -122,7 +120,7 @@ export function bindPref( * @param prefs the GSettings object to clean. */ function resetOutdated(prefs: Gio.Settings) { - const lastVersion = 6; + const lastVersion = 7; const currentVersion = prefs .get_user_value('settings-version') ?.recursiveUnpack(); @@ -133,6 +131,9 @@ function resetOutdated(prefs: Gio.Settings) { } prefs.reset('global-rounded-corner-settings'); prefs.reset('custom-rounded-corner-settings'); + if (prefs.list_keys().includes('border-color')) { + prefs.reset('border-color'); + } prefs.reset('focused-shadow'); prefs.reset('unfocused-shadow'); prefs.set_uint('settings-version', lastVersion); @@ -159,6 +160,7 @@ function packRoundedCornerSettings(settings: RoundedCornerSettings) { ); const borderRadius = GLib.Variant.new_uint32(settings.borderRadius); const smoothing = GLib.Variant.new_double(settings.smoothing); + const borderColor = new GLib.Variant('(dddd)', settings.borderColor); const enabled = GLib.Variant.new_boolean(settings.enabled); const variantObject = { @@ -166,6 +168,7 @@ function packRoundedCornerSettings(settings: RoundedCornerSettings) { keepRoundedCorners: keepRoundedCorners, borderRadius: borderRadius, smoothing: smoothing, + borderColor: borderColor, enabled: enabled, }; diff --git a/src/utils/types.ts b/src/utils/types.ts index 6a4d04d..76f25a1 100644 --- a/src/utils/types.ts +++ b/src/utils/types.ts @@ -25,6 +25,7 @@ export type RoundedCornerSettings = { top: number; bottom: number; }; + borderColor: [number, number, number, number]; enabled: boolean; };