Fix: Window Control - Linux reversed placement

This commit is contained in:
alstjr7375 2022-08-30 15:22:26 +09:00
parent 05f493bf16
commit fcf1707453
5 changed files with 332 additions and 35 deletions

View file

@ -4527,7 +4527,20 @@
left: 0;
right: unset !important;
}
}
@media (-moz-gtk-csd-available) {
@media (-moz-gtk-csd-reversed-placement) {
:root {
--uc-titlebar-padding: 0px !important;
}
.titlebar-buttonbox-container {
left: 0;
right: unset !important;
}
}
}
@supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") {
#toolbar-menubar:not([autohide="true"]) {
visibility: visible !important;
height: 0;
@ -4695,7 +4708,20 @@
left: 0;
right: unset !important;
}
}
@media (-moz-gtk-csd-available) {
@media (-moz-gtk-csd-reversed-placement) {
:root {
--uc-titlebar-padding: 0px !important;
}
.titlebar-buttonbox-container {
left: 0;
right: unset !important;
}
}
}
@supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") {
#toolbar-menubar:not([autohide="true"]) {
visibility: visible !important;
height: 0;
@ -4860,7 +4886,20 @@
left: 0;
right: unset !important;
}
}
@media (-moz-gtk-csd-available) {
@media (-moz-gtk-csd-reversed-placement) {
:root {
--uc-titlebar-padding: 0px !important;
}
.titlebar-buttonbox-container {
left: 0;
right: unset !important;
}
}
}
@supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") {
#toolbar-menubar:not([autohide="true"]) {
visibility: visible !important;
height: 0;
@ -5028,7 +5067,20 @@
left: 0;
right: unset !important;
}
}
@media (-moz-gtk-csd-available) {
@media screen and (max-width: 1100px) and (-moz-gtk-csd-reversed-placement) {
:root {
--uc-titlebar-padding: 0px !important;
}
.titlebar-buttonbox-container {
left: 0;
right: unset !important;
}
}
}
@supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") {
#toolbar-menubar:not([autohide="true"]) {
visibility: visible !important;
height: 0;
@ -5206,7 +5258,20 @@
left: 0;
right: unset !important;
}
}
@media (-moz-gtk-csd-available) {
@media screen and (min-width: 1100px) and (-moz-gtk-csd-reversed-placement) {
:root {
--uc-titlebar-padding: 0px !important;
}
.titlebar-buttonbox-container {
left: 0;
right: unset !important;
}
}
}
@supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") {
#toolbar-menubar:not([autohide="true"]) {
visibility: visible !important;
height: 0;
@ -5371,7 +5436,20 @@
left: 0;
right: unset !important;
}
}
@media (-moz-gtk-csd-available) {
@media screen and (min-width: 1100px) and (-moz-gtk-csd-reversed-placement) {
:root {
--uc-titlebar-padding: 0px !important;
}
.titlebar-buttonbox-container {
left: 0;
right: unset !important;
}
}
}
@supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") {
#toolbar-menubar:not([autohide="true"]) {
visibility: visible !important;
height: 0;
@ -5486,8 +5564,7 @@
@supports -moz-bool-pref("userChrome.tabbar.one_liner") {
@supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") {
@supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") {
@media (-moz-gtk-csd-available),
(-moz-os-version: windows-win7),
@media (-moz-os-version: windows-win7),
(-moz-platform: windows-win7),
(-moz-os-version: windows-win8),
(-moz-platform: windows-win8),
@ -5498,12 +5575,28 @@
--uc-window-drag-space-pre: 0px;
}
}
@media (-moz-gtk-csd-available) {
@media (-moz-gtk-csd-reversed-placement: 0) {
:root:is([tabsintitlebar], [sizemode="fullscreen"]) {
/* Don't need pre spacer */
--uc-window-drag-space-pre: 0px;
}
}
}
@supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") {
:root:is([tabsintitlebar], [sizemode="fullscreen"]) {
/* Don't need window control */
--uc-window-control-space: 0px;
}
}
@media (-moz-gtk-csd-available) {
@media (-moz-gtk-csd-reversed-placement) {
:root:is([tabsintitlebar], [sizemode="fullscreen"]) {
/* Don't need window control */
--uc-window-control-space: 0px;
}
}
}
@supports -moz-bool-pref("userChrome.tabbar.as_titlebar") {
:root:is([tabsintitlebar], [sizemode="fullscreen"]) #tabbrowser-tabs {
/* Don't need window control */
@ -5513,8 +5606,7 @@
}
@supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") {
@supports not -moz-bool-pref("userChrome.tabbar.as_titlebar") {
@media (-moz-gtk-csd-available),
(-moz-os-version: windows-win7),
@media (-moz-os-version: windows-win7),
(-moz-platform: windows-win7),
(-moz-os-version: windows-win8),
(-moz-platform: windows-win8),
@ -5525,6 +5617,14 @@
--uc-window-control-space: 0px;
}
}
@media (-moz-gtk-csd-available) {
@media (-moz-gtk-csd-reversed-placement: 0) {
:root:is([tabsintitlebar], [sizemode="fullscreen"]) {
/* Don't need window control */
--uc-window-control-space: 0px;
}
}
}
}
}
}
@ -5541,8 +5641,7 @@
}
@media screen and (min-width: 1100px) {
@supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") {
@media (-moz-gtk-csd-available),
(-moz-os-version: windows-win7),
@media (-moz-os-version: windows-win7),
(-moz-platform: windows-win7),
(-moz-os-version: windows-win8),
(-moz-platform: windows-win8),
@ -5553,12 +5652,28 @@
--uc-window-drag-space-pre: 0px;
}
}
@media (-moz-gtk-csd-available) {
@media screen and (min-width: 1100px) and (-moz-gtk-csd-reversed-placement: 0) {
:root:is([tabsintitlebar], [sizemode="fullscreen"]) {
/* Don't need pre spacer */
--uc-window-drag-space-pre: 0px;
}
}
}
@supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") {
:root:is([tabsintitlebar], [sizemode="fullscreen"]) {
/* Don't need window control */
--uc-window-control-space: 0px;
}
}
@media (-moz-gtk-csd-available) {
@media screen and (min-width: 1100px) and (-moz-gtk-csd-reversed-placement) {
:root:is([tabsintitlebar], [sizemode="fullscreen"]) {
/* Don't need window control */
--uc-window-control-space: 0px;
}
}
}
@supports -moz-bool-pref("userChrome.tabbar.as_titlebar") {
:root:is([tabsintitlebar], [sizemode="fullscreen"]) #tabbrowser-tabs {
/* Don't need window control */
@ -5568,8 +5683,7 @@
}
@supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") {
@supports not -moz-bool-pref("userChrome.tabbar.as_titlebar") {
@media (-moz-gtk-csd-available),
(-moz-os-version: windows-win7),
@media (-moz-os-version: windows-win7),
(-moz-platform: windows-win7),
(-moz-os-version: windows-win8),
(-moz-platform: windows-win8),
@ -5580,6 +5694,14 @@
--uc-window-control-space: 0px;
}
}
@media (-moz-gtk-csd-available) {
@media screen and (min-width: 1100px) and (-moz-gtk-csd-reversed-placement: 0) {
:root:is([tabsintitlebar], [sizemode="fullscreen"]) {
/* Don't need window control */
--uc-window-control-space: 0px;
}
}
}
}
}
}
@ -5589,8 +5711,7 @@
border-inline-style: solid !important;
border-inline-color: transparent;
}
@media (-moz-gtk-csd-available),
(-moz-os-version: windows-win7),
@media (-moz-os-version: windows-win7),
(-moz-platform: windows-win7),
(-moz-os-version: windows-win8),
(-moz-platform: windows-win8),
@ -5651,19 +5772,75 @@
}
}
}
@media (-moz-gtk-csd-available) {
@media (-moz-gtk-csd-reversed-placement: 0) {
@supports not -moz-bool-pref("userChrome.tabbar.one_liner") {
#nav-bar {
border-inline-start-width: var(--uc-window-drag-space-pre);
border-inline-end-width: var(--uc-window-control-space);
}
}
@supports -moz-bool-pref("userChrome.tabbar.one_liner") {
@supports -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") {
#nav-bar {
border-inline-start-width: var(--uc-window-drag-space-pre);
border-inline-end-width: var(--uc-window-control-space);
}
}
@supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") {
@supports -moz-bool-pref("userChrome.tabbar.on_bottom") or -moz-bool-pref("userChrome.hidden.tabbar") {
@media screen and (-moz-gtk-csd-reversed-placement: 0) and (max-width: 1100px) {
#nav-bar {
border-inline-start-width: var(--uc-window-drag-space-pre);
border-inline-end-width: var(--uc-window-control-space);
}
}
}
}
}
@supports -moz-bool-pref("userChrome.tabbar.one_liner") {
@supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") {
@supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") {
@supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") {
#nav-bar {
margin-inline-start: var(--uc-window-drag-space-pre) !important;
}
}
@supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") {
#nav-bar {
margin-inline-end: var(--uc-window-control-space) !important;
}
}
}
@supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") {
@media screen and (-moz-gtk-csd-reversed-placement: 0) and (min-width: 1100px) {
@supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") {
#nav-bar {
margin-inline-start: var(--uc-window-drag-space-pre) !important;
}
}
@supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") {
#nav-bar {
margin-inline-end: var(--uc-window-control-space) !important;
}
}
}
}
}
}
}
}
/* Use this pref to check Mac OS where window controls are on left */
/* This pref defaults to true on Mac and doesn't actually do anything on other platforms. So if your system has window controls on LEFT side you can set the pref to true */
@supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") {
@supports not -moz-bool-pref("userChrome.tabbar.one_liner") {
:root[tabsintitlebar="true"]:not([inFullscreen]) #nav-bar {
#nav-bar {
border-inline-start-width: var(--uc-window-control-space);
border-inline-end-width: var(--uc-window-drag-space-pre);
}
}
@supports -moz-bool-pref("userChrome.tabbar.one_liner") {
@supports -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") {
:root[tabsintitlebar="true"]:not([inFullscreen]) #nav-bar {
#nav-bar {
border-inline-start-width: var(--uc-window-control-space);
border-inline-end-width: var(--uc-window-drag-space-pre);
}
@ -5671,7 +5848,7 @@
@supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") {
@supports -moz-bool-pref("userChrome.tabbar.on_bottom") or -moz-bool-pref("userChrome.hidden.tabbar") {
@media screen and (max-width: 1100px) {
:root[tabsintitlebar="true"]:not([inFullscreen]) #nav-bar {
#nav-bar {
border-inline-start-width: var(--uc-window-control-space);
border-inline-end-width: var(--uc-window-drag-space-pre);
}
@ -5683,12 +5860,12 @@
@supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") {
@supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") {
@supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") {
:root[tabsintitlebar="true"]:not([inFullscreen]) #nav-bar {
#nav-bar {
margin-inline-start: var(--uc-window-control-space, 0px) !important;
}
}
@supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") {
:root[tabsintitlebar="true"]:not([inFullscreen]) #nav-bar {
#nav-bar {
margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important;
}
}
@ -5696,12 +5873,12 @@
@supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") {
@media screen and (min-width: 1100px) {
@supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") {
:root[tabsintitlebar="true"]:not([inFullscreen]) #nav-bar {
#nav-bar {
margin-inline-start: var(--uc-window-control-space, 0px) !important;
}
}
@supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") {
:root[tabsintitlebar="true"]:not([inFullscreen]) #nav-bar {
#nav-bar {
margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important;
}
}
@ -5714,7 +5891,7 @@
@supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") {
@supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") {
@supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") {
:root[tabsintitlebar="true"]:not([inFullscreen]) #TabsToolbar {
#TabsToolbar {
margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important;
}
}
@ -5722,7 +5899,7 @@
@supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") {
@media screen and (min-width: 1100px) {
@supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") {
:root[tabsintitlebar="true"]:not([inFullscreen]) #TabsToolbar {
#TabsToolbar {
margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important;
}
}
@ -5731,20 +5908,114 @@
}
@supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") {
@supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") {
:root[tabsintitlebar="true"]:not([inFullscreen]) #TabsToolbar {
#TabsToolbar {
margin-inline-start: var(--uc-window-control-width, 0px) !important;
}
}
@supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") {
@media screen and (min-width: 1100px) {
:root[tabsintitlebar="true"]:not([inFullscreen]) #TabsToolbar {
#TabsToolbar {
margin-inline-start: var(--uc-window-control-width, 0px) !important;
}
}
}
}
}
}
@media (-moz-gtk-csd-available) {
@media (-moz-gtk-csd-reversed-placement) {
@supports not -moz-bool-pref("userChrome.tabbar.one_liner") {
#nav-bar {
border-inline-start-width: var(--uc-window-control-space);
border-inline-end-width: var(--uc-window-drag-space-pre);
}
}
@supports -moz-bool-pref("userChrome.tabbar.one_liner") {
@supports -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") {
#nav-bar {
border-inline-start-width: var(--uc-window-control-space);
border-inline-end-width: var(--uc-window-drag-space-pre);
}
}
@supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") {
@supports -moz-bool-pref("userChrome.tabbar.on_bottom") or -moz-bool-pref("userChrome.hidden.tabbar") {
@media screen and (-moz-gtk-csd-reversed-placement) and (max-width: 1100px) {
#nav-bar {
border-inline-start-width: var(--uc-window-control-space);
border-inline-end-width: var(--uc-window-drag-space-pre);
}
}
}
}
}
@supports -moz-bool-pref("userChrome.tabbar.one_liner") {
@supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") {
@supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") {
@supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") {
#nav-bar {
margin-inline-start: var(--uc-window-control-space, 0px) !important;
}
}
@supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") {
#nav-bar {
margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important;
}
}
}
@supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") {
@media screen and (-moz-gtk-csd-reversed-placement) and (min-width: 1100px) {
@supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") {
#nav-bar {
margin-inline-start: var(--uc-window-control-space, 0px) !important;
}
}
@supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") {
#nav-bar {
margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important;
}
}
}
}
}
}
@supports -moz-bool-pref("userChrome.tabbar.one_liner") {
@supports not -moz-bool-pref("userChrome.tabbar.one_liner.combine_navbar") {
@supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") {
@supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") {
#TabsToolbar {
margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important;
}
}
}
@supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") {
@media screen and (-moz-gtk-csd-reversed-placement) and (min-width: 1100px) {
@supports not -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") {
#TabsToolbar {
margin-inline-end: var(--uc-window-drag-space-pre, 0px) !important;
}
}
}
}
}
@supports -moz-bool-pref("userChrome.tabbar.one_liner.tabbar_first") {
@supports not -moz-bool-pref("userChrome.tabbar.one_liner.responsive") {
#TabsToolbar {
margin-inline-start: var(--uc-window-control-width, 0px) !important;
}
}
@supports -moz-bool-pref("userChrome.tabbar.one_liner.responsive") {
@media screen and (-moz-gtk-csd-reversed-placement) and (min-width: 1100px) {
#TabsToolbar {
margin-inline-start: var(--uc-window-control-width, 0px) !important;
}
}
}
}
}
}
}
@supports -moz-bool-pref("layout.css.osx-font-smoothing.enabled") {
:root[sizemode="fullscreen"] #TabsToolbar > .titlebar-buttonbox-container:last-child,
:root[sizemode="fullscreen"] #window-controls {
right: unset;

View file

@ -5,6 +5,7 @@
@use "utils/accent_color" as *;
@use "utils/native_menu" as *;
@use "utils/one_liner" as *;
@use "utils/window_control" as *;
@use "utils/proton_elements" as Proton;
@use "sass:selector";

View file

@ -14,10 +14,10 @@
@mixin _remove_spacer_oneLiner() {
@include Option("userChrome.tabbar.one_liner.tabbar_first") {
@include OS($win, $linux) {
@include WindowControl_Right {
@include _remove_spacer_pre;
}
@include OS($mac) {
@include WindowControl_Left {
@include _remove_spacer_post;
}
@include Option("userChrome.tabbar.as_titlebar") {
@ -28,7 +28,7 @@
}
@include NotOption("userChrome.tabbar.one_liner.tabbar_first") {
@include NotOption("userChrome.tabbar.as_titlebar") {
@include OS($win, $linux) {
@include WindowControl_Right {
@include _remove_spacer_post;
}
}
@ -91,7 +91,7 @@
border-inline-style: solid !important;
border-inline-color: transparent;
@include OS($win, $linux) {
@include WindowControl_Right {
@include _oneLiner_navBar_borderPadding {
border-inline-start-width: var(--uc-window-drag-space-pre);
border-inline-end-width: var(--uc-window-control-space);
@ -110,15 +110,12 @@
}
}
/* Use this pref to check Mac OS where window controls are on left */
/* This pref defaults to true on Mac and doesn't actually do anything on other platforms. So if your system has window controls on LEFT side you can set the pref to true */
@include OS($mac) {
:root[tabsintitlebar="true"]:not([inFullscreen]) #nav-bar {
@include WindowControl_Left {
#nav-bar {
@include _oneLiner_navBar_borderPadding {
border-inline-start-width: var(--uc-window-control-space);
border-inline-end-width: var(--uc-window-drag-space-pre);
}
@include Option("userChrome.tabbar.one_liner") {
@include _oneLiner_navBar_marginGap {
@include NotOption("userChrome.tabbar.one_liner.tabbar_first") {
@ -130,7 +127,8 @@
}
}
}
:root[tabsintitlebar="true"]:not([inFullscreen]) #TabsToolbar {
#TabsToolbar {
@include Option("userChrome.tabbar.one_liner") {
@include _oneLiner_navBar_marginGap {
@include NotOption("userChrome.tabbar.one_liner.tabbar_first") {
@ -144,6 +142,9 @@
}
}
}
}
@include OS($mac) {
:root[sizemode="fullscreen"] #TabsToolbar > .titlebar-buttonbox-container:last-child,
:root[sizemode="fullscreen"] #window-controls {
right: unset;

View file

@ -43,7 +43,7 @@ See the above repository for updates as well as full license text. */
}
/* where window controls are on left */
@include OS($mac) {
@include WindowControl_Left {
:root{
--uc-titlebar-padding: 0px !important;
}
@ -51,7 +51,8 @@ See the above repository for updates as well as full license text. */
left:0;
right: unset !important;
}
}
@include OS($mac) {
#toolbar-menubar:not([autohide="true"]) {
visibility: visible !important;
height: 0;

View file

@ -0,0 +1,23 @@
@use "os" as *;
@mixin WindowControl_Right() {
@include OS($win) {
@content;
}
@include OS($linux) {
@media (-moz-gtk-csd-reversed-placement: 0) {
@content;
}
}
}
@mixin WindowControl_Left() {
@include OS($mac) {
@content;
}
@include OS($linux) {
@media (-moz-gtk-csd-reversed-placement) {
@content;
}
}
}