Compare commits

...

28 Commits

Author SHA1 Message Date
frederik.feichtmeier
e1b7d77f18 Icon tile changes
- use the medium radius
- make checked tiles less hardcore black
- adjust folder popup bg color to checked tiles
2019-06-15 18:32:18 +02:00
Feichtmeier
40340865f7 Don't raise hover btn 2019-06-06 17:28:04 +02:00
Feichtmeier
7ec3d3debb Light/Dark GDM entry, add shadows to btns 2019-06-06 17:26:39 +02:00
Feichtmeier
6479518169 Darker GDM, better popover hover, and...
brighter hover color for the dark theme
 brightersearchresult description
2019-06-06 16:21:00 +02:00
Feichtmeier
f3ec452491 GDM and overview toggle btn changes
- try to simplify the look of the gdm buttons
- let the GDM entry look like the search entry
- use a gray/white/blue stripe for the overview toggle btns
2019-06-06 13:25:26 +02:00
Jakub Steiner
b14f79f455 theme: darken vignette
- instead of locally boxing in search results, darken the whole overview

Addresses https://gitlab.gnome.org/GNOME/gnome-shell/issues/288
2019-05-31 16:42:56 +02:00
Jakub Steiner
70bc9fc1c1 theme: experimental search entry
- bring back the golder 3.0 days
2019-05-31 15:45:47 +02:00
Jakub Steiner
23703cab7c theme: style search and results
- Improve legibility by using the OSD style for the results
 - Would be nice to include the search entry in the container
   and have a nice transition.

Addresses https://gitlab.gnome.org/GNOME/gnome-shell/issues/288
2019-05-31 15:40:26 +02:00
Jakub Steiner
e5e975956f theme: theme slider handle
matching gtk
2019-05-31 09:58:19 +02:00
Jakub Steiner
4de94f2ad7 theme: sync calendar menus with the rest
use :active and :hover colors like the rest
2019-05-31 09:44:31 +02:00
Jakub Steiner
f41e1ef6a6 theme: revert :hover and :active colors to gtk 2019-05-31 09:38:31 +02:00
frederik.feichtmeier
0d340a05e1 OSD bg and general border changes
- darker, less transparent OSD
- brighter OSD border
- no border for over view panels and entry
- fix border color of popups
- remove trough variable as osd trough and popup trough cant have the same color if dependant on fg_color, fixed hex could also work
- thinner workspace border
2019-05-30 20:30:09 +02:00
Jakub Steiner
932dff9e32 theme: adwaita:dark bg is lighter 2019-05-30 13:51:50 +02:00
Jakub Steiner
c101003354 theme: osd panels for overview
- light borders for Frederik
2019-05-30 13:12:20 +02:00
Jakub Steiner
6cab54f5f5 theme: regular buttons to match gtk 2019-05-30 12:54:52 +02:00
Jakub Steiner
d44da2c370 theme: rearrange header a bit
- makes sense to have (c) on top
2019-05-30 12:34:49 +02:00
Jakub Steiner
5df16ac5e9 theme: regular buttons :active state to match gtk 2019-05-30 12:31:53 +02:00
Jakub Steiner
8a08a00966 theme: get rid of the bubble prefix
- originally related to tweaking the osd style for use in dialogs,
  it no longer serves the purpose as dialogs are eithe rlight or dark
  and thus can use the colors directly.
2019-05-30 11:49:22 +02:00
Jakub Steiner
e4e55f9013 theme: simplify button drawing
- the original style was built on OSD colors and the conditionals no longer made any sense. In Adwaita:gtk the color conditionals special case the color buttons (warning and suggested tinting). This does not exist in the shell
2019-05-30 11:29:36 +02:00
Jakub Steiner
3bac00dc72 theme: match gtk sliders
- FIXME: currently unable to stle the slider itself
  color sets the background color but no way to style the border as
  far as I can tell gazing at js/ui/slider.js
2019-05-30 10:23:10 +02:00
Jakub Steiner
eed2d730bf theme: add light/dark switches 2019-05-30 09:38:00 +02:00
Jakub Steiner
a40752d1d0 theme: overview is OSD styled
FIXME: .show-apps-icon isn't colored for some reason
2019-05-30 09:26:12 +02:00
Jakub Steiner
7e5c16463a theme: keep variant around for HC 2019-05-30 09:03:09 +02:00
Jakub Steiner
125fa821fe Merge branch 'Light_bubbled_shell_theme' of gitlab.gnome.org:frederik.feichtmeier/gnome-shell into wip/jimmac/frederik-light 2019-05-30 09:01:10 +02:00
frederik.feichtmeier
38afdedbf7 Further improvements
- back to gtk styled popups
- smaller drop shadow for notifications
- no shadow for OSD
- fix high color
- move bubble colors back to common for now
2019-05-29 22:54:50 +02:00
Jakub Steiner
23576cd036 Revert "calendar-server: Port to libecal-2.0"
This reverts commit bd4aac8f49.
2019-05-29 18:03:47 +02:00
Feichtmeier
4fe64e43bc Use $variant for bubble colors, fix high-contrast 2019-05-29 17:14:37 +02:00
Feichtmeier
a350e69248 Shell theme renew
- light colored, bubble-like popovers, dialogues and notifications
- unified OSD colors for OSD elements
- small shadow for OSD elements to improve visibility above dark backgrounds
- small screenshield shadow improvements
- slightly bigger GDM buttons
- rounder buttons, rounder entries
- flatter entries
2019-05-29 14:47:42 +02:00
18 changed files with 435 additions and 527 deletions

View File

@ -15,7 +15,7 @@ variables:
- merge_requests - merge_requests
check_commit_log: check_commit_log:
image: registry.gitlab.gnome.org/gnome/mutter/master:v2 image: registry.gitlab.gnome.org/gnome/mutter/master:v1
stage: review stage: review
variables: variables:
GIT_DEPTH: "100" GIT_DEPTH: "100"
@ -40,7 +40,7 @@ js_check:
when: on_failure when: on_failure
build: build:
image: registry.gitlab.gnome.org/gnome/mutter/master:v2 image: registry.gitlab.gnome.org/gnome/mutter/master:v1
stage: build stage: build
before_script: before_script:
- .gitlab-ci/checkout-mutter.sh - .gitlab-ci/checkout-mutter.sh
@ -58,7 +58,7 @@ build:
- build - build
test: test:
image: registry.gitlab.gnome.org/gnome/mutter/master:v2 image: registry.gitlab.gnome.org/gnome/mutter/master:v1
stage: test stage: test
before_script: before_script:
- ninja -C mutter/build install - ninja -C mutter/build install
@ -72,7 +72,7 @@ test:
when: on_failure when: on_failure
test-pot: test-pot:
image: registry.gitlab.gnome.org/gnome/mutter/master:v2 image: registry.gitlab.gnome.org/gnome/mutter/master:v1
stage: test stage: test
before_script: before_script:
- ninja -C mutter/build install - ninja -C mutter/build install

View File

@ -21,9 +21,11 @@
<file>noise-texture.png</file> <file>noise-texture.png</file>
<file>pad-osd.css</file> <file>pad-osd.css</file>
<file>process-working.svg</file> <file>process-working.svg</file>
<file>toggle-off-intl.svg</file> <file>toggle-off.svg</file>
<file>toggle-off-dark.svg</file>
<file>toggle-off-hc.svg</file> <file>toggle-off-hc.svg</file>
<file>toggle-on-intl.svg</file> <file>toggle-on.svg</file>
<file>toggle-on-dark.svg</file>
<file>toggle-on-hc.svg</file> <file>toggle-on-hc.svg</file>
</gresource> </gresource>
</gresources> </gresources>

View File

@ -1,3 +1,5 @@
$variant: 'light';
@import "gnome-shell-sass/_high-contrast-colors"; //use gtk colors @import "gnome-shell-sass/_high-contrast-colors"; //use gtk colors
@import "gnome-shell-sass/_drawing"; @import "gnome-shell-sass/_drawing";
@import "gnome-shell-sass/_common"; @import "gnome-shell-sass/_common";

View File

@ -3,11 +3,11 @@
$base_color: if($variant == 'light', #ffffff, lighten(desaturate(#241f31, 20%), 2%)); $base_color: if($variant == 'light', #ffffff, lighten(desaturate(#241f31, 20%), 2%));
$bg_color: if($variant == 'light', #f6f5f4, desaturate(#3d3846, 10%)); $bg_color: if($variant == 'light', #f6f5f4, darken(desaturate(#3d3846, 100%), 4%));
$fg_color: if($variant == 'light', #2e3436, #eeeeec); $fg_color: if($variant == 'light', #2e3436, #eeeeec);
$selected_fg_color: #ffffff; $selected_fg_color: #ffffff;
$selected_bg_color: if($variant == 'light', #3584e4, darken(#3584e4, 20%)); $selected_bg_color: if($variant == 'light', #3584e4, darken(#3584e4, 10%));
$selected_borders_color: if($variant== 'light', darken($selected_bg_color, 15%), darken($selected_bg_color, 30%)); $selected_borders_color: if($variant== 'light', darken($selected_bg_color, 15%), darken($selected_bg_color, 30%));
$borders_color: if($variant == 'light', darken($bg_color, 18%), darken($bg_color, 10%)); $borders_color: if($variant == 'light', darken($bg_color, 18%), darken($bg_color, 10%));
$borders_edge: if($variant == 'light', transparentize(white, 0.2), transparentize($fg_color, 0.93)); $borders_edge: if($variant == 'light', transparentize(white, 0.2), transparentize($fg_color, 0.93));
@ -21,11 +21,15 @@ $success_color: if($variant == 'light', #33d17a, darken(#33d17a, 10%));
$destructive_color: if($variant == 'light', #e01b24, darken(#e01b24, 10%)); $destructive_color: if($variant == 'light', #e01b24, darken(#e01b24, 10%));
$osd_fg_color: #eeeeec; $osd_fg_color: #eeeeec;
$osd_bg_color: #2e3436; $osd_text_color: white;
$osd_bg_color: transparentize(darken(desaturate(#3d3846, 100%), 12%),0.04);
$osd_insensitive_bg_color: transparentize(mix($osd_fg_color, opacify($osd_bg_color, 1), 10%), 0.5);
$osd_insensitive_fg_color: mix($osd_fg_color, opacify($osd_bg_color, 1), 50%);
$osd_borders_color: transparentize(black, 0.3); $osd_borders_color: transparentize(black, 0.3);
$osd_outer_borders_color: transparentize(white, 0.9); $osd_outer_borders_color: transparentize(white, 0.84);
$tooltip_borders_color: $osd_outer_borders_color; $tooltip_borders_color: $osd_outer_borders_color;
$shadow_color: transparentize(black, 0.9);
//insensitive state derived colors //insensitive state derived colors
$insensitive_fg_color: mix($fg_color, $bg_color, 50%); $insensitive_fg_color: mix($fg_color, $bg_color, 50%);

View File

@ -4,8 +4,6 @@
$cakeisalie: "This stylesheet is generated, DO NOT EDIT"; $cakeisalie: "This stylesheet is generated, DO NOT EDIT";
/* #{$cakeisalie} */ /* #{$cakeisalie} */
$panel-corner-radius: 6px;
/* Copyright 2009, 2015 Red Hat, Inc. /* Copyright 2009, 2015 Red Hat, Inc.
* *
* Portions adapted from Mx's data/style/default.css * Portions adapted from Mx's data/style/default.css
@ -25,13 +23,18 @@ $panel-corner-radius: 6px;
* Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. * Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
*/ */
/* GLOBALS */ /* GLOBALS */
$panel-corner-radius: 6px;
$medium_radius: 9px;
$_trough_color: transparentize($fg_color, 0.9);
$_bubble_borders_color: lighten($borders_color, if($variant=='light', 0%, 5%));
$_hover_bg_color: lighten($bg_color,if($variant=='light', 5%, 3%));
$_active_bg_color: if($variant == 'light', darken($bg_color, 14%), darken($bg_color, 9%));
$font-size: 11; $font-size: 11;
$font-family: Cantarell, Sans-Serif; $font-family: Cantarell, Sans-Serif;
$_bubble_bg_color: opacify($osd_bg_color,0.25);
$_bubble_fg_color: $osd_fg_color;
$_bubble_borders_color: transparentize($osd_fg_color,0.8);
stage { stage {
font-family: $font-family; font-family: $font-family;
@ -42,42 +45,44 @@ stage {
/* WIDGETS */ /* WIDGETS */
/* Buttons */ /* Buttons */
.button { .button, %button {
border-radius: 3px; border-radius: 5px;
border-width: 1px; border-width: 1px;
min-height: 22px;
padding: 4px 32px; padding: 4px 32px;
@include button(normal); @include button(normal);
&:focus { @include button(focus); } &:focus { @include button(focus, $c:$_hover_bg_color, $tc:$fg_color); }
&:hover { @include button(hover); } &:hover { @include button(hover, $c:$_hover_bg_color, $tc:$fg_color); }
&:insensitive { @include button(insensitive); } &:insensitive { @include button(insensitive); }
&:active { @include button(active); } &:active { @include button(active, $c:$_active_bg_color, $tc:$fg_color); }
} }
.modal-dialog-linked-button { .modal-dialog-linked-button, %bubble_button {
border-right-width: 1px; border-right-width: 1px;
@include button(normal); @include button(normal, $c:$bg_color, $tc:$fg_color);
&:insensitive { @include button(insensitive); } &:insensitive { @include button(insensitive, $c:$bg_color, $tc:$fg_color); }
&:hover { @include button(hover); } &:hover { @include button(hover, $c:$_hover_bg_color, $tc:$fg_color); }
&:focus { @include button(focus); } &:focus { @include button(focus, $c:$_hover_bg_color, $tc:$fg_color); }
&:active { @include button(active); } &:active { @include button(active, $c:$_active_bg_color, $tc:$fg_color); }
padding: 12px; padding: 12px;
border-top: 1px solid $_bubble_borders_color;
&:first-child { &:first-child {
border-radius: 0px 0px 0px 6px; border-radius: 0px 0px 0px $medium_radius;
} }
&:last-child { &:last-child {
border-right-width: 0px; border-right-width: 0px;
border-radius: 0px 0px 6px 0px; border-radius: 0px 0px $medium_radius 0px;
} }
&:first-child:last-child { &:first-child:last-child {
border-right-width: 0px; border-right-width: 0px;
border-radius: 0px 0px 6px 6px; border-radius: 0px 0px $medium_radius $medium_radius;
} }
} }
/* Entries */ /* Entries */
StEntry { StEntry {
border-radius: 3px; border-radius: 5px;
padding: 4px; padding: 4px;
border-width: 1px; border-width: 1px;
color: $fg_color; color: $fg_color;
@ -130,15 +135,21 @@ StScrollBar {
.slider { .slider {
height: 1em; height: 1em;
-barlevel-height: 0.3em; -barlevel-height: 0.3em;
-barlevel-background-color: $insensitive_bg_color; //background of the trough -barlevel-background-color: transparentize($fg_color, 0.9); //background of the trough
-barlevel-border-color: $borders_color; //trough border color -barlevel-border-color: $borders_color; //trough border color
-barlevel-active-background-color: $selected_bg_color; //active trough fill -barlevel-active-background-color: $selected_bg_color; //active trough fill
-barlevel-active-border-color: darken($selected_bg_color,10%); //active trough border -barlevel-active-border-color: $selected_borders_color; //active trough border
-barlevel-overdrive-color: $destructive_color; -barlevel-overdrive-color: $destructive_color;
-barlevel-overdrive-border-color: darken($destructive_color,10%); -barlevel-overdrive-border-color: darken($destructive_color,10%);
-barlevel-overdrive-separator-width: 0.2em; -barlevel-overdrive-separator-width: 0.2em;
-barlevel-border-width: 1px; -barlevel-border-width: 1px;
-slider-handle-radius: 6px; -slider-handle-radius: 8px;
-slider-handle-border-width: 1px;
-slider-handle-border-color: $borders_color;
color: $bg_color; /* FIXME to match gtk, we'd need to style the border of the slider, not
the whole widget */
&:hover { color: $_hover_bg_color; }
&:active { color: $_active_bg_color; }
} }
/* Check Boxes */ /* Check Boxes */
@ -157,11 +168,16 @@ StScrollBar {
/* Switches */ /* Switches */
.toggle-switch { .toggle-switch {
color: $fg_color;
width: 46px; width: 46px;
height: 22px; height: 22px;
background-size: contain; background-size: contain;
background-image: url("resource:///org/gnome/shell/theme/toggle-off-intl.svg"); background-image: if($variant == 'light', url("resource:///org/gnome/shell/theme/toggle-off.svg"),
&:checked { background-image: url("resource:///org/gnome/shell/theme/toggle-on-intl.svg"); } url("resource:///org/gnome/shell/theme/toggle-off-dark.svg"));
&:checked {
background-image: if($variant == 'light', url("resource:///org/gnome/shell/theme/toggle-on.svg"),
url("resource:///org/gnome/shell/theme/toggle-on-dark.svg"));
}
} }
/* links */ /* links */
@ -178,9 +194,7 @@ StScrollBar {
.modal-dialog { .modal-dialog {
border-radius: 9px; border-radius: 9px;
color: $osd_fg_color; @extend %bubble-panel;
background-color: transparentize(darken($osd_bg_color,10%),0.05);
border: 1px solid $_bubble_borders_color;
.modal-dialog-content-box { .modal-dialog-content-box {
padding: 24px; padding: 24px;
} }
@ -192,8 +206,8 @@ StScrollBar {
.run-dialog-button-box { padding-top: 1em; } .run-dialog-button-box { padding-top: 1em; }
.run-dialog-label { .run-dialog-label {
@include fontsize($font-size + 1.1); @include fontsize($font-size + 1.1);
font-weight: bold; font-weight: normal;
color: darken($osd_fg_color,10%); color: $fg_color;
padding-bottom: .4em; padding-bottom: .4em;
} }
@ -225,7 +239,7 @@ StScrollBar {
} }
.message-dialog-subtitle { .message-dialog-subtitle {
color: darken($fg_color,40%); color: $fg_color;
font-weight: bold; font-weight: bold;
} }
@ -348,7 +362,7 @@ StScrollBar {
} }
.mount-dialog-app-list-item { .mount-dialog-app-list-item {
color: darken($fg_color,10%); color: lighten($fg_color,10%);
&:hover { color: $fg_color; } &:hover { color: $fg_color; }
&:ltr { padding-right: 1em; } &:ltr { padding-right: 1em; }
&:rtl { padding-left: 1em; } &:rtl { padding-left: 1em; }
@ -367,13 +381,13 @@ StScrollBar {
/* Password or Authentication Dialog */ /* Password or Authentication Dialog */
.prompt-dialog { .prompt-dialog {
@extend %bubble-panel;
//this is the width of the entire modal popup //this is the width of the entire modal popup
width: 34em; width: 34em;
border: 3px solid $_bubble_borders_color;
.message-dialog-main-layout { spacing: 24px; padding: 10px; } .message-dialog-main-layout { spacing: 24px; padding: 10px; }
.message-dialog-content { spacing: 16px; } .message-dialog-content { spacing: 16px; }
.message-dialog-title { color: darken($osd_fg_color,25%); } .message-dialog-title { color: lighten($fg_color,15%); }
} }
.prompt-dialog-description:rtl { .prompt-dialog-description:rtl {
@ -382,6 +396,7 @@ StScrollBar {
.prompt-dialog-password-box { .prompt-dialog-password-box {
spacing: 1em; spacing: 1em;
padding-bottom: 1em;
} }
.prompt-dialog-error-label { .prompt-dialog-error-label {
@ -446,6 +461,7 @@ StScrollBar {
/* Audio selection dialog */ /* Audio selection dialog */
.audio-device-selection-dialog { .audio-device-selection-dialog {
@extend %bubble-panel;
spacing: 30px; spacing: 30px;
} }
@ -466,7 +482,11 @@ StScrollBar {
.audio-selection-device { .audio-selection-device {
border: 1px solid $_bubble_borders_color; border: 1px solid $_bubble_borders_color;
border-radius: 12px; border-radius: 12px;
&:active,&:hover,&:focus { background-color: $selected_bg_color; } &:hover,&:focus { background-color: $_hover_bg_color; }
&:active {
background-color: $selected_bg_color;
color: $selected_fg_color;
}
} }
.audio-selection-device-box { .audio-selection-device-box {
@ -480,22 +500,26 @@ StScrollBar {
/* Access Dialog */ /* Access Dialog */
.access-dialog { .access-dialog {
@extend %bubble-panel;
spacing: 30px; spacing: 30px;
} }
/* Geolocation Dialog */ /* Geolocation Dialog */
.geolocation-dialog { .geolocation-dialog {
@extend %bubble-panel;
spacing: 30px; spacing: 30px;
} }
/* Extension Dialog */ /* Extension Dialog */
.extension-dialog { .extension-dialog {
@extend %bubble-panel;
.message-dialog-main-layout { spacing: 24px; padding: 10px; } .message-dialog-main-layout { spacing: 24px; padding: 10px; }
.message-dialog-title { color: darken($osd_fg_color,25%); } .message-dialog-title { font-weight: normal; color: $fg_color; }
} }
/* Inhibit-Shortcuts Dialog */ /* Inhibit-Shortcuts Dialog */
.inhibit-shortcuts-dialog { .inhibit-shortcuts-dialog {
@extend %bubble-panel;
spacing: 30px; spacing: 30px;
} }
@ -515,12 +539,13 @@ StScrollBar {
.popup-menu { .popup-menu {
min-width: 15em; min-width: 15em;
color: $fg_color;
border-color: $_bubble_borders_color;
.popup-menu-arrow { } //defined globally in the TOP BAR .popup-menu-arrow { } //defined globally in the TOP BAR
.popup-sub-menu { .popup-sub-menu {
padding-bottom: 1px; background-color: darken($bg_color,5%);
background-color: darken($bg_color,2%); box-shadow: inset 0 -1px 0px $_bubble_borders_color;
box-shadow: inset 0 -1px 0px lighten($borders_color,5%);
} }
.popup-menu-content { padding: 1em 0em; } .popup-menu-content { padding: 1em 0em; }
@ -530,12 +555,18 @@ StScrollBar {
&:ltr { padding: .4em 1.75em .4em 0em; } &:ltr { padding: .4em 1.75em .4em 0em; }
&:rtl { padding: .4em 0em .4em 1.75em; } &:rtl { padding: .4em 0em .4em 1.75em; }
&:checked { &:checked {
background-color: darken($bg_color,2%); background-color: $bg_color;
box-shadow: inset 0 1px 0px lighten($borders_color,5%); box-shadow: inset 0 -1px 0px $_bubble_borders_color;
font-weight: bold; font-weight: bold;
} }
&.selected { background-color: transparentize($fg_color,0.9); color: $fg_color; } &.selected {
&:active { background-color: $selected_bg_color; color: $selected_fg_color; } background-color: transparentize(white, if($variant=='light', 0.2, 0.9));
color: $fg_color;
}
&:active {
background-color: $selected_bg_color;
color: $selected_fg_color;
}
&:insensitive { color: transparentize($fg_color,.5); } &:insensitive { color: transparentize($fg_color,.5); }
} }
@ -559,10 +590,10 @@ StScrollBar {
} }
.popup-menu-boxpointer, .popup-menu-boxpointer,
.candidate-popup-boxpointer { .candidate-popup-boxpointer {
-arrow-border-radius: 3px; -arrow-border-radius: $medium_radius;
-arrow-background-color: $bg_color; -arrow-background-color: $bg_color;
-arrow-border-width: 1px; -arrow-border-width: 1px;
-arrow-border-color: $borders_color; -arrow-border-color: if($variant=='light', transparentize(black, 0.6), $borders_color);
-arrow-base: 24px; -arrow-base: 24px;
-arrow-rise: 11px; -arrow-rise: 11px;
-arrow-box-shadow: 0 1px 3px black; //dreaming. bug #689995 -arrow-box-shadow: 0 1px 3px black; //dreaming. bug #689995
@ -573,7 +604,7 @@ StScrollBar {
height: 1px; //not really the whole box height: 1px; //not really the whole box
margin: 6px 64px; margin: 6px 64px;
background-color: transparent; background-color: transparent;
border-color: lighten($borders_color,10%); border-color: $_bubble_borders_color;
border-bottom-width: 1px; border-bottom-width: 1px;
border-bottom-style: solid; border-bottom-style: solid;
} }
@ -601,7 +632,7 @@ StScrollBar {
.level { .level {
height: 0.6em; height: 0.6em;
-barlevel-height: 0.6em; -barlevel-height: 0.6em;
-barlevel-background-color: transparentize(darken($osd_bg_color,15%),0.5); -barlevel-background-color: transparentize($fg_color, if($variant=='light', 0.2, 0.9));
-barlevel-active-background-color: $osd_fg_color; -barlevel-active-background-color: $osd_fg_color;
-barlevel-overdrive-color: $destructive_color; -barlevel-overdrive-color: $destructive_color;
-barlevel-overdrive-separator-width: 0.2em; -barlevel-overdrive-separator-width: 0.2em;
@ -646,7 +677,7 @@ StScrollBar {
} }
.switcher-list .item-box:selected { .switcher-list .item-box:selected {
background-color: $selected_bg_color; background-color: transparentize($osd_fg_color, 0.7);
color: $selected_fg_color; color: $selected_fg_color;
} }
@ -712,13 +743,43 @@ StScrollBar {
} }
%osd-panel { %osd-panel {
color: $_bubble_fg_color; color: $osd_fg_color;
background-color: $_bubble_bg_color; background-color: $osd_bg_color;
border: 1px solid $_bubble_borders_color; border: 1px solid $osd_outer_borders_color;
border-radius: 12px; border-radius: 12px;
padding: 12px; padding: 12px;
} }
%bubble-entry {
color: $fg_color;
background-color: darken($bg_color, 2%);
border-color: $_bubble_borders_color;
box-shadow: none;
&:focus { border: 2px solid $selected_bg_color; }
}
%bubble-panel {
color: $fg_color;
background-color: $bg_color;
border: 1px solid if($variant=='light', transparentize(black, 0.6), $borders_color);
StEntry { @extend %bubble-entry; }
.button {
&, &:hover, &:focus, &:active, &:disabled {
box-shadow: none;
border-color: $_bubble_borders_color;
}
background-color: $bg_color;
color: $fg_color;
&:hover { background-color: $_hover_bg_color; }
&:active {
background-color: $selected_bg_color;
color: $selected_fg_color;
}
&:disabled { color: $insensitive_fg_color; }
}
}
/* Tiled window previews */ /* Tiled window previews */
.tile-preview { .tile-preview {
background-color: transparentize($selected_bg_color,0.5); background-color: transparentize($selected_bg_color,0.5);
@ -786,7 +847,7 @@ StScrollBar {
} }
&:hover { &:hover {
color: lighten($fg_color, 10%); color: $selected_fg_color;
} }
&:active, &:overview, &:focus, &:checked { &:active, &:overview, &:focus, &:checked {
@ -794,7 +855,7 @@ StScrollBar {
// a box-shadow // a box-shadow
background-color: rgba(0, 0, 0, 0.01); background-color: rgba(0, 0, 0, 0.01);
box-shadow: inset 0 -2px 0px lighten($selected_bg_color,5%); box-shadow: inset 0 -2px 0px lighten($selected_bg_color,5%);
color: lighten($fg_color,10%); color: $selected_fg_color;
} }
.system-status-icon { icon-size: 1.09em; padding: 0 5px; } .system-status-icon { icon-size: 1.09em; padding: 0 5px; }
@ -842,7 +903,7 @@ StScrollBar {
.datemenu-displays-box { spacing: 1em; } .datemenu-displays-box { spacing: 1em; }
.datemenu-calendar-column { .datemenu-calendar-column {
border: 0 solid lighten($bg_color,5%); border: 0 solid $_bubble_borders_color;
&:ltr { border-left-width: 1px; } &:ltr { border-left-width: 1px; }
&:rtl { border-right-width: 1px; } &:rtl { border-right-width: 1px; }
} }
@ -867,11 +928,8 @@ StScrollBar {
.world-clocks-button, .world-clocks-button,
.weather-button, .weather-button,
.events-section-title { .events-section-title {
&:hover,&:focus { background-color: lighten($bg_color,5%); } &:hover, focus { background-color: $_hover_bg_color }
&:active { &:active { background-color: $_active_bg_color }
color: lighten($selected_fg_color,5%);
background-color: $selected_bg_color;
}
} }
.datemenu-today-button .day-label { .datemenu-today-button .day-label {
@ -916,7 +974,7 @@ StScrollBar {
} }
.world-clocks-timezone { .world-clocks-timezone {
color: darken($fg_color,40%); color: $fg_color;
font-feature-settings: "tnum"; font-feature-settings: "tnum";
font-size: 0.9em; font-size: 0.9em;
} }
@ -931,7 +989,7 @@ StScrollBar {
} }
.calendar-month-label { .calendar-month-label {
color: darken($fg_color,5%); color: lighten($fg_color,5%);
font-weight: bold; font-weight: bold;
padding: 8px 0; padding: 8px 0;
&:focus {} &:focus {}
@ -941,8 +999,8 @@ StScrollBar {
background-color: transparent; background-color: transparent;
width: 32px; width: 32px;
border-radius: 4px; border-radius: 4px;
&:hover, &:focus { background-color: transparentize($fg_color,0.95); } &:hover, focus { background-color: $_hover_bg_color; }
&:active { background-color: transparentize($bg_color,0.95); } &:active { background-color: transparentize($fg_color, 0.84); }
} }
.calendar-change-month-back StIcon, .calendar-change-month-forward StIcon { // arrows .calendar-change-month-back StIcon, .calendar-change-month-forward StIcon { // arrows
@ -957,14 +1015,14 @@ StScrollBar {
margin: 2px; margin: 2px;
border-radius: 1.4em; border-radius: 1.4em;
font-feature-settings: "tnum"; font-feature-settings: "tnum";
&:hover,&:focus { background-color: lighten($bg_color,5%); } &:hover, focus { background-color: $_hover_bg_color; }
&:active,&:selected { &:active,&:selected {
color: lighten($selected_fg_color,5%); color: lighten($selected_fg_color,5%);
background-color: $selected_bg_color; background-color: $selected_bg_color;
border-color: transparent; //avoid jumparound due to today border-color: transparent; //avoid jumparound due to today
} }
&.calendar-day-heading { //day of week heading &.calendar-day-heading { //day of week heading
color: darken($fg_color,40%); color: lighten($fg_color,5%);
margin-top: 1em; margin-top: 1em;
font-size: 70%; font-size: 70%;
} }
@ -984,7 +1042,7 @@ StScrollBar {
font-weight: bold; font-weight: bold;
//color: lighten($fg_color,10%); //color: lighten($fg_color,10%);
//background-color: darken($bg_color,5%); //background-color: darken($bg_color,5%);
border: 1px solid transparentize($borders_color,0.5); border: 1px solid $_bubble_borders_color;
} }
.calendar-day-with-events { .calendar-day-with-events {
color: lighten($fg_color,10%); color: lighten($fg_color,10%);
@ -992,7 +1050,7 @@ StScrollBar {
background-image: url("resource:///org/gnome/shell/theme/calendar-today.svg"); background-image: url("resource:///org/gnome/shell/theme/calendar-today.svg");
} }
.calendar-other-month-day { .calendar-other-month-day {
color: transparentize($fg_color,0.85); color: transparentize($fg_color ,0.5);
opacity: 0.5; opacity: 0.5;
} }
.calendar-week-number { .calendar-week-number {
@ -1002,8 +1060,8 @@ StScrollBar {
border-radius: 2px; border-radius: 2px;
padding: 0.5em 0 0; padding: 0.5em 0 0;
margin: 6px; margin: 6px;
background-color: transparentize($fg_color,0.7); background-color: $_bubble_borders_color;
color: $bg_color; color: $fg_color;
} }
/* Message list */ /* Message list */
@ -1012,8 +1070,7 @@ StScrollBar {
} }
.message-list-clear-button.button { .message-list-clear-button.button {
background-color: transparent; @extend %button;
&:hover,&:focus { background-color: lighten($bg_color,5%); }
margin: 1.5em 1.5em 0; margin: 1.5em 1.5em 0;
} }
@ -1027,8 +1084,11 @@ StScrollBar {
} }
.message { .message {
&:hover,&:focus { background-color: lighten($bg_color,5%); } border: 1px solid $_bubble_borders_color;
border-radius: 3px; background-color: lighten($bg_color, 2%);
&:hover,&:focus { background-color: $_hover_bg_color; }
&:active { background-color: transparentize($fg_color, 0.84) }
border-radius: 5px;
} }
.message-icon-bin { .message-icon-bin {
@ -1037,7 +1097,7 @@ StScrollBar {
} }
.message-icon-bin > StIcon { .message-icon-bin > StIcon {
color: darken($fg_color,20%); color: $fg_color;
icon-size: 1.09em; icon-size: 1.09em;
-st-icon-style: symbolic; -st-icon-style: symbolic;
} }
@ -1052,7 +1112,7 @@ StScrollBar {
} }
.message-secondary-bin > .event-time { .message-secondary-bin > .event-time {
color: darken($fg_color,40%); color: $fg_color;
font-size: 0.7em; font-size: 0.7em;
/* HACK: the label should be baseline-aligned with a 1em label, /* HACK: the label should be baseline-aligned with a 1em label,
fake this with some bottom padding */ fake this with some bottom padding */
@ -1064,17 +1124,17 @@ StScrollBar {
} }
.message-title { .message-title {
color: darken($fg_color,5%); color: $fg_color;
} }
.message-content { .message-content {
color: darken($fg_color,20%); color: darken($fg_color, 10%);
padding: 10px; padding: 10px;
} }
.message-media-control { .message-media-control {
padding: 12px; padding: 12px;
color: darken($fg_color, 20%); color: lighten($fg_color, 15%);
&:last-child:ltr { padding-right: 18px; } &:last-child:ltr { padding-right: 18px; }
&:last-child:rtl { padding-left: 18px; } &:last-child:rtl { padding-left: 18px; }
@ -1085,9 +1145,9 @@ StScrollBar {
.media-message-cover-icon { .media-message-cover-icon {
icon-size: 48px !important; icon-size: 48px !important;
&.fallback { &.fallback {
color: lighten($bg_color,10%); color: lighten($fg_color,10%);
background-color: $bg_color; background-color: $bg_color;
border: 2px solid $bg_color; border: 1px solid $bg_color;
border-radius: 2px; border-radius: 2px;
icon-size: 32px !important; icon-size: 32px !important;
padding: 6px; } padding: 6px; }
@ -1129,15 +1189,18 @@ StScrollBar {
color: $fg_color; color: $fg_color;
border-radius: 32px; /* wish we could do 50% */ border-radius: 32px; /* wish we could do 50% */
padding: 13px; padding: 13px;
border: 1px solid lighten($borders_color,5%); border: 1px solid $_bubble_borders_color;
&:hover, &:focus { &:hover, &:focus {
background-color: transparentize($fg_color,0.9); background-color: $_hover_bg_color;
color: $fg_color; color: $fg_color;
border: none; border: none;
padding: 14px; padding: 14px;
} }
&:active { background-color: $selected_bg_color; color: $selected_fg_color; } &:active {
background-color: $selected_bg_color;
color: $selected_fg_color;
}
& > StIcon { icon-size: 16px; } & > StIcon { icon-size: 16px; }
} }
@ -1189,6 +1252,7 @@ StScrollBar {
/* NETWORK DIALOGS */ /* NETWORK DIALOGS */
.nm-dialog { .nm-dialog {
@extend %bubble-panel;
max-height: 34em; max-height: 34em;
min-height: 31em; min-height: 31em;
min-width: 32em; min-width: 32em;
@ -1264,23 +1328,23 @@ StScrollBar {
} }
//search entry //search entry
.search-entry { .search-entry, %search_entry {
width: 320px; width: 320px;
padding: 7px 9px; padding: 7px 9px;
border-radius: 6px; border-radius: 18px;
border-color: darken($osd_fg_color,50%); color: $fg_color;
color: $osd_fg_color; background-color: $base_color;
background-color: $osd_bg_color; border-color: $borders_color;
&:focus { &:focus {
padding: 6px 8px; padding: 6px 8px;
border-width: 2px; border-width: 2px;
border-color: $selected_bg_color; border-color: $selected_bg_color;
} }
.search-entry-icon { icon-size: 1em; padding: 0 4px; color: transparentize($fg_color,.3); } .search-entry-icon { icon-size: 1em; padding: 0 4px; color: $fg_color; }
&:hover, &:focus { &:hover, &:focus {
.search-entry-icon { color: $fg_color; } .search-entry-icon { color: transparentize($fg_color,.3); }
} }
} }
@ -1309,7 +1373,7 @@ StScrollBar {
.list-search-result-content { spacing: 30px; } .list-search-result-content { spacing: 30px; }
.list-search-result-title { color: darken($osd_fg_color,5%); spacing: 12px; } .list-search-result-title { color: darken($osd_fg_color,5%); spacing: 12px; }
.list-search-result-description { color: transparentize(darken($osd_fg_color,15%), 0.5); } .list-search-result-description { color: darken($osd_fg_color, 30%); }
.list-search-provider-details { width: 150px; color: darken($osd_fg_color,5%); margin-top: 0.24em; } .list-search-provider-details { width: 150px; color: darken($osd_fg_color,5%); margin-top: 0.24em; }
.list-search-provider-content { spacing: 20px; } .list-search-provider-content { spacing: 20px; }
.search-provider-icon { padding: 15px; } .search-provider-icon { padding: 15px; }
@ -1318,12 +1382,9 @@ StScrollBar {
/* DASHBOARD */ /* DASHBOARD */
#dash { #dash {
@extend %overview-panel;
font-size: 9pt; font-size: 9pt;
color: $_bubble_fg_color;
background-color: $_bubble_bg_color;
padding: 4px 0; padding: 4px 0;
border: 1px solid rgba(128, 128, 128, 0.4);
border-left: 0px;
border-radius: 0px 9px 9px 0px; border-radius: 0px 9px 9px 0px;
&:rtl { &:rtl {
@ -1351,7 +1412,8 @@ StScrollBar {
border-radius: 7px; border-radius: 7px;
padding: 4px 12px; padding: 4px 12px;
color: $osd_fg_color; color: $osd_fg_color;
background-color: transparentize($osd_bg_color,0.3); background-color: transparentize($osd_bg_color,0.05);
border: 1px solid $osd_outer_borders_color;
text-align: center; text-align: center;
-x-offset: 8px; -x-offset: 8px;
} }
@ -1378,13 +1440,29 @@ StScrollBar {
} }
.app-view-control { //favorties | all toggle button .app-view-control { //favorties | all toggle button
padding: 4px 32px; padding: 4px 32px;
&:checked { @include button(active); } margin: 0 4px;
&, &:hover, &:checked { @include button(undecorated); }
&, &:hover { color: darken($osd_fg_color, 25%); }
&:hover { box-shadow: inset 0 -2px darken($osd_fg_color, 25%); }
&:active {
box-shadow: inset 0 -2px $osd_fg_color;
}
&:checked {
color: $osd_fg_color;
box-shadow: inset 0 -2px $selected_bg_color;
}
&:first-child { &:first-child {
border-right-width: 0; border-right-width: 0;
border-radius: 3px 0 0 3px; border-radius: 0;
} }
&:last-child { &:last-child {
border-radius: 0 3px 3px 0; border-radius: 0;
} }
} }
@ -1407,8 +1485,7 @@ StScrollBar {
} }
&:active .overview-icon, &:active .overview-icon,
&:checked .overview-icon { &:checked .overview-icon {
background-color: transparentize(darken($osd_bg_color,10%),.1); background-color: transparentize(darken($osd_bg_color,10%), 0.5);
box-shadow: inset 0 1px 2px $osd_borders_color;
} }
&:hover .overview-icon, &:hover .overview-icon,
&:focus .overview-icon, &:focus .overview-icon,
@ -1429,7 +1506,7 @@ StScrollBar {
%icon_tile { %icon_tile {
color: $osd_fg_color; color: $osd_fg_color;
border-radius: 4px; border-radius: $medium_radius;
padding: 6px; padding: 6px;
border: 1px solid transparent; border: 1px solid transparent;
transition-duration: 100ms; transition-duration: 100ms;
@ -1450,7 +1527,7 @@ StScrollBar {
// Collections // Collections
.app-folder-popup { //expanded collection .app-folder-popup { //expanded collection
-arrow-border-radius: 8px; -arrow-border-radius: 8px;
-arrow-background-color: transparentize($osd_bg_color,0.7); -arrow-background-color: transparentize(darken($osd_bg_color,10%), 0.5);
-arrow-base: 24px; -arrow-base: 24px;
-arrow-rise: 11px; -arrow-rise: 11px;
} }
@ -1503,7 +1580,7 @@ StScrollBar {
} }
} }
.workspace-thumbnail-indicator { .workspace-thumbnail-indicator {
border: 4px solid $selected_bg_color; border: 2px solid $selected_bg_color;
padding: 1px; padding: 1px;
} }
@ -1516,15 +1593,15 @@ StScrollBar {
} }
%overview-panel { %overview-panel {
color: $_bubble_fg_color; color: $osd_fg_color;
background-color: $_bubble_bg_color; background-color: transparentize($osd_bg_color, 0.1);
border: 1px solid $_bubble_borders_color; border: none;
} }
%status_text { %status_text {
font-size: 2em; font-size: 2em;
font-weight: bold; font-weight: bold;
color: $fg_color; color: $osd_fg_color;
} }
/* NOTIFICATIONS & MESSAGE TRAY */ /* NOTIFICATIONS & MESSAGE TRAY */
@ -1536,28 +1613,38 @@ StScrollBar {
font-size: 11pt; font-size: 11pt;
width: 34em; width: 34em;
margin: 5px; margin: 5px;
border-radius: 6px; border-radius: $medium-radius;
color: $_bubble_fg_color; border: if($variant == 'light', none, $_bubble_borders_color);
background-color: $_bubble_bg_color; min-height: 64px;
border: 1px solid $borders_color; box-shadow: 0 1px 2px transparentize(black, 0.7);
//box-shadow: 0 1px 4px black; &:hover { background: $bg_color; }
&:hover { background-color: $_bubble_bg_color; } &, &:focus, &:active {
&:focus { background-color: $_bubble_bg_color; } background-color: $bg_color;
.message-title { color: $fg_color }
.message-content { color: $fg_color; }
}
.notification-icon { padding: 5px; } .message-icon-bin > StIcon {
color: $fg_color;
}
StEntry { @extend %bubble-entry; }
.notification-icon { padding: 5px; }
.notification-content { padding: 5px; spacing: 5px; } .notification-content { padding: 5px; spacing: 5px; }
.secondary-icon { icon-size: 1.09em; } .secondary-icon { icon-size: 1.09em; }
.notification-actions { .notification-actions {
background-color: $borders_color; padding-top: 0;
padding-top: 2px; color: $fg_color;
spacing: 1px; border-top: 1px solid $_bubble_borders_color;
spacing: 0px;
} }
.notification-button { .notification-button {
padding: 4px 4px 5px; @extend %bubble_button;
background-color: darken($_bubble_bg_color,5%); &:focus { box-shadow: none; }
&:first-child { border-radius: 0 0 0 6px; } padding: 0 16px;
&:last-child { border-radius: 0 0 6px 0; } min-height: 35px;
&:hover, &focus { background-color: darken($_bubble_bg_color,2%); } border: none;
} }
} }
.summary-source-counter { .summary-source-counter {
@ -1568,7 +1655,7 @@ StScrollBar {
-shell-counter-overlap-y: 3px; -shell-counter-overlap-y: 3px;
background-color: $selected_bg_color; background-color: $selected_bg_color;
color: $selected_fg_color; color: $selected_fg_color;
border: 2px solid $osd_fg_color; border: 2px solid $fg_color;
box-shadow: 0 2px 2px rgba(0,0,0,0.5); box-shadow: 0 2px 2px rgba(0,0,0,0.5);
border-radius: 0.9em; // should be 0.8 but whatever; wish I could do 50%; border-radius: 0.9em; // should be 0.8 but whatever; wish I could do 50%;
} }
@ -1586,14 +1673,14 @@ StScrollBar {
} }
.chat-sent { .chat-sent {
padding-left: 18pt; padding-left: 18pt;
color: darken($fg_color, 15%); color: lighten($fg_color, 15%);
&:rtl { padding-left: 0; padding-right: 18pt; } &:rtl { padding-left: 0; padding-right: 18pt; }
} }
.chat-meta-message { .chat-meta-message {
padding-left: 4px; padding-left: 4px;
font-size: 9pt; font-size: 9pt;
font-weight: bold; font-weight: bold;
color: darken($fg_color,20%); color: lighten($fg_color,18%);
&:rtl { padding-left: 0; padding-right: 4px; } &:rtl { padding-left: 0; padding-right: 4px; }
} }
@ -1603,6 +1690,8 @@ StScrollBar {
padding: 2px 72px 2px 12px; padding: 2px 72px 2px 12px;
} }
.hotplug-notification-item { .hotplug-notification-item {
@extend %bubble_button;
border: none; box-shadow: none;
padding: 2px 10px; padding: 2px 10px;
&:focus { padding: 1px 71px 1px 11px; } &:focus { padding: 1px 71px 1px 11px; }
} }
@ -1617,7 +1706,7 @@ StScrollBar {
.hotplug-resident-mount { .hotplug-resident-mount {
spacing: 8px; spacing: 8px;
border-radius: 4px; border-radius: 4px;
&:hover { background-color: transparentize($bg_color,0.7); } &:hover { background-color: $_hover_bg_color; }
} }
.hotplug-resident-mount-label { .hotplug-resident-mount-label {
@ -1723,7 +1812,7 @@ StScrollBar {
-arrow-border-radius: 10px; -arrow-border-radius: 10px;
-arrow-background-color: transparentize($osd_bg_color, 0.3); -arrow-background-color: transparentize($osd_bg_color, 0.3);
-arrow-border-width: 2px; -arrow-border-width: 2px;
-arrow-border-color: $_bubble_borders_color; -arrow-border-color: $osd_outer_borders_color;
-arrow-base: 20px; -arrow-base: 20px;
-arrow-rise: 10px; -arrow-rise: 10px;
-boxpointer-gap: 5px; -boxpointer-gap: 5px;
@ -1798,18 +1887,68 @@ StScrollBar {
border: none; border: none;
background-color: transparent; background-color: transparent;
.modal-dialog-button-box { spacing: 3px; } $_gdm_fg: #f6f5f4;
.modal-dialog-button { $_gdm_bg: lighten(#2e3436, 19%);
padding: 3px 18px;
&:default {
@include button(normal,$c:$selected_bg_color);
&:hover,&:focus { @include button(hover,$c:$selected_bg_color); }
&:active { @include button(active,$c:$selected_bg_color); }
&:insensitive { @include button(insensitive); }
StEntry {
@extend %search_entry;
border-radius: 5px;
@if $variant=='dark' {
$_gdm_entry_bg: transparentize(lighten(desaturate(#241f31, 20%), 2%), 0.5);
background-color: $_gdm_entry_bg;
border-color: $_gdm_entry_bg;
color: $osd_fg_color;
} }
} }
.modal-dialog-button-box { spacing: 3px; }
.modal-dialog-button {
padding: 4px 18px;
box-shadow: 0 1px 3px transparentize($shadow_color, 0.02);
background-color: $_gdm_bg;
border-color: $_gdm_bg;
color: $_gdm_fg;
$_hover_c: lighten($_gdm_bg, 5%);
&:hover, &:focus {
background-color: $_hover_c;
border-color: $_hover_c;
}
&:active {
$_active_c: darken($_gdm_bg, 5%);
box-shadow: none;
background-color: $_active_c;
border-color: $_active_c;
}
&:insensitive {
@include button(insensitive);
border-color: darken($_gdm_bg, 5%);
background-color: darken($_gdm_bg, 5%);
color: transparentize($_gdm_fg, 0.3);
}
&:default {
@include button(normal, $c:$selected_bg_color, $tc:$selected_fg_color);
border-color: $selected_bg_color;
&:hover, &:focus {
@include button(hover,$c:$selected_bg_color, $tc:$selected_fg_color);
$_def_hover_c: lighten($selected_bg_color, 5%);
background-color: $_def_hover_c;
border-color: $_def_hover_c;
}
&:active {
@include button(active,$c:$selected_bg_color, $tc:$selected_fg_color);
$_def_active_c: darken($selected_bg_color, 5%);
background-color: $_def_active_c;
border-color: $_def_active_c;
}
&:insensitive {
@include button(insensitive);
border-color: darken($selected_bg_color, 10%);
background-color: darken($selected_bg_color, 10%);
color: transparentize($selected_fg_color, 0.3);
}
}
}
} }
.login-dialog-logo-bin { padding: 24px 0px; } .login-dialog-logo-bin { padding: 24px 0px; }
@ -1891,6 +2030,8 @@ StScrollBar {
//SCREEN SHIELD //SCREEN SHIELD
$_screenshield_shadow: 0px 0px 6px rgba(0, 0, 0, 0.726);
.screen-shield-arrows { .screen-shield-arrows {
padding-bottom: 3em; padding-bottom: 3em;
} }
@ -1900,12 +2041,12 @@ StScrollBar {
width: 80px; width: 80px;
height: 48px; height: 48px;
-arrow-thickness: 12px; -arrow-thickness: 12px;
-arrow-shadow: 0 1px 1px rgba(0,0,0,0.4); -arrow-shadow: $_screenshield_shadow;
} }
.screen-shield-clock { .screen-shield-clock {
color: white; color: white;
text-shadow: 0px 1px 2px rgba(0,0,0,0.6); text-shadow: $_screenshield_shadow;
font-weight: bold; font-weight: bold;
text-align: center; text-align: center;
padding-bottom: 1.5em; padding-bottom: 1.5em;
@ -1913,7 +2054,7 @@ StScrollBar {
.screen-shield-clock-time { .screen-shield-clock-time {
font-size: 72pt; font-size: 72pt;
text-shadow: 0px 2px 2px rgba(0,0,0,0.4); text-shadow: $_screenshield_shadow;
font-feature-settings: "tnum"; font-feature-settings: "tnum";
} }
@ -1935,9 +2076,9 @@ StScrollBar {
.notification, .notification,
.screen-shield-notification-source { .screen-shield-notification-source {
padding: 12px 6px; padding: 12px 6px;
border: 1px solid $_bubble_borders_color; border: 1px solid $osd_outer_borders_color;
background-color: transparentize($osd_bg_color,0.5); background-color: transparentize($osd_bg_color,0.5);
color: $_bubble_fg_color; color: $osd_fg_color;
border-radius: 4px; border-radius: 4px;
} }
.notification { margin-right: 15px; } //compensate for space allocated to the scrollbar .notification { margin-right: 15px; } //compensate for space allocated to the scrollbar
@ -1951,7 +2092,7 @@ StScrollBar {
.screen-shield-notification-count-text { padding: 0px 0px 0px 12px; } .screen-shield-notification-count-text { padding: 0px 0px 0px 12px; }
#panel.lock-screen { background-color: transparentize($_bubble_bg_color, 0.5); } #panel.lock-screen { background-color: transparentize($osd_bg_color, 0.5); }
.screen-shield-background { //just the shadow, really .screen-shield-background { //just the shadow, really
background: black; background: black;
@ -1959,7 +2100,7 @@ StScrollBar {
} }
#lockDialogGroup { #lockDialogGroup {
background: #2e3436 url(resource:///org/gnome/shell/theme/noise-texture.png); background: lighten(#2e3436, 8%) url(resource:///org/gnome/shell/theme/noise-texture.png);
background-repeat: repeat; background-repeat: repeat;
} }

View File

@ -37,16 +37,13 @@
// possible $t values: // possible $t values:
// normal, focus, insensitive // normal, focus, insensitive
// //
$_inner_shadows: inset 0 2px 4px transparentize(black, 0.6);
@if $t==normal { @if $t==normal {
background-color: $base_color; background-color: $base_color;
border-color: $borders_color; border-color: $borders_color;
@include _shadows($_inner_shadows);
} }
@if $t==focus { @if $t==focus {
@include _shadows($_inner_shadows);
border-color: if($fc==$selected_bg_color, border-color: if($fc==$selected_bg_color,
$selected_borders_color, $selected_borders_color,
darken($fc,35%)); darken($fc,35%));
@ -111,7 +108,7 @@
} }
} }
@mixin button($t, $c:$osd_bg_color, $tc:$fg_color, $edge: $borders_edge) { @mixin button($t, $c:$bg_color, $tc:$fg_color, $edge: $borders_edge) {
// //
// Button drawing function // Button drawing function
// //
@ -130,46 +127,39 @@
$_hilight_color: _button_hilight_color($c); $_hilight_color: _button_hilight_color($c);
$_button_edge: if($edge == none, none, _widget_edge($edge)); $_button_edge: if($edge == none, none, _widget_edge($edge));
$_blank_edge: if($edge == none, none, _widget_edge(transparentize($edge,1))); $_blank_edge: if($edge == none, none, _widget_edge(transparentize($edge,1)));
$_button_shadow: 0 1px 2px transparentize($shadow_color, 0.03);
@if $t==normal { @if $t==normal {
// //
// normal button // normal button
// //
$_bg: if($c!=$osd_bg_color, transparentize($c, 0.5),
$osd_bg_color);
color: $osd_fg_color; color: $tc;
background-color: $_bg; background-color: $c;
border-color: $osd_borders_color; border-color: $borders_color;
box-shadow: inset 0 1px lighten($osd_bg_color,10%); box-shadow: $_button_shadow;
text-shadow: 0 1px black; text-shadow: 0 1px black;
icon-shadow: 0 1px black; icon-shadow: 0 1px black;
} }
@if $t==focus { @if $t==focus {
// //
// focused button // focused button
// //
$_bg: if($c!=$osd_bg_color, transparentize($c, 0.3), color: $tc;
lighten($osd_bg_color,3%));
color: $osd_fg_color;
text-shadow: 0 1px black; text-shadow: 0 1px black;
icon-shadow: 0 1px black; icon-shadow: 0 1px black;
box-shadow: inset 0px 0px 0px 1px $selected_bg_color; box-shadow: inset 0px 0px 0px 2px $selected_bg_color;
//border-color: $selected_bg_color;
} }
@else if $t==hover { @else if $t==hover {
// //
// active osd button // active osd button
// //
$_bg: if($c!=$osd_bg_color, transparentize($c, 0.3), color: $tc;
lighten($osd_bg_color,3%)); border-color: $borders_color;
background-color: $c;
color: white; box-shadow: $_button_shadow;
border-color: $osd_borders_color;
background-color: $_bg;
box-shadow: inset 0 1px lighten($osd_bg_color,20%);
text-shadow: 0 1px black; text-shadow: 0 1px black;
icon-shadow: 0 1px black; icon-shadow: 0 1px black;
@ -178,27 +168,18 @@
// //
// active osd button // active osd button
// //
$_bg: if($c!=$bg_color, $c, $osd_borders_color); color: $tc;
border-color: $borders_color;
color: white; background-color: $c;
border-color: $osd_borders_color;
background-color: $selected_bg_color;
// This should be none, but it's creating some issues with borders, so to
// workaround it for now, use inset wich goes through a different code path.
// see https://bugzilla.gnome.org/show_bug.cgi?id=752934
box-shadow: inset 0 0 black;
text-shadow: none; text-shadow: none;
icon-shadow: none; icon-shadow: none;
box-shadow: none;
} }
@else if $t==insensitive { @else if $t==insensitive {
//
// insensitive osd button
//
$_bg: transparentize(mix($insensitive_fg_color,$osd_bg_color,20%),0.3);
color: $insensitive_fg_color; color: $insensitive_fg_color;
border-color: $osd_borders_color; border-color: $insensitive_borders_color;
background-color: $_bg; background-color: $insensitive_bg_color;
box-shadow: none; box-shadow: none;
text-shadow: none; text-shadow: none;
icon-shadow: none; icon-shadow: none;

View File

@ -26,6 +26,7 @@ $osd_borders_color: transparentize(black, 0.3);
$osd_outer_borders_color: transparentize(white, 0.9); $osd_outer_borders_color: transparentize(white, 0.9);
$tooltip_borders_color: $osd_outer_borders_color; $tooltip_borders_color: $osd_outer_borders_color;
$shadow_color: transparentize(black, 0.9);
//insensitive state derived colors //insensitive state derived colors
$insensitive_fg_color: mix($fg_color, $bg_color, 50%); $insensitive_fg_color: mix($fg_color, $bg_color, 50%);

View File

@ -1,4 +1,4 @@
$variant: 'dark'; $variant: 'light';
@import "gnome-shell-sass/_colors"; //use gtk colors @import "gnome-shell-sass/_colors"; //use gtk colors
@import "gnome-shell-sass/_drawing"; @import "gnome-shell-sass/_drawing";

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="46" height="22"><defs><linearGradient id="a"><stop offset="0" stop-color="#39393a"/><stop offset="1" stop-color="#302f30"/></linearGradient><linearGradient xlink:href="#a" id="b" x1="53" y1="294.429" x2="53" y2="309.804" gradientUnits="userSpaceOnUse" gradientTransform="translate(-42.76)"/></defs><g transform="translate(0 -291.18)" stroke-width="1.085"><rect style="marker:none" width="44.446" height="20.911" x=".625" y="291.715" rx="10.455" ry="10.073" fill="#323233" stroke="#272728"/><rect ry="10.455" rx="10.455" y="291.715" x=".543" height="20.911" width="21.143" style="marker:none" fill="url(#b)" stroke="#151515"/></g></svg>

After

Width:  |  Height:  |  Size: 725 B

View File

@ -1,103 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="46"
height="22"
viewBox="0 0 46 22"
version="1.1"
id="svg2751"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="toggle-off-intl.svg">
<defs
id="defs2745">
<linearGradient
inkscape:collect="always"
id="linearGradient3329">
<stop
style="stop-color:#39393a;stop-opacity:1;"
offset="0"
id="stop3325" />
<stop
style="stop-color:#302f30;stop-opacity:1"
offset="1"
id="stop3327" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3329"
id="linearGradient3331"
x1="53"
y1="294.42917"
x2="53"
y2="309.80417"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-42.760724)" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#535353"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="-19.436775"
inkscape:cy="-13.499723"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
inkscape:pagecheckerboard="true"
borderlayer="true"
inkscape:showpageshadow="false"
showborder="false">
<inkscape:grid
type="xygrid"
id="grid3298" />
</sodipodi:namedview>
<metadata
id="metadata2748">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-291.17916)">
<rect
style="opacity:1;vector-effect:none;fill:#323233;fill-opacity:1;stroke:#272728;stroke-width:1.08532763;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
id="rect3296"
width="44.446434"
height="20.910645"
x="0.625"
y="291.71494"
rx="10.455324"
ry="10.073335" />
<rect
ry="10.455322"
rx="10.455322"
y="291.71494"
x="0.5428465"
height="20.910645"
width="21.142862"
id="rect3300"
style="opacity:1;vector-effect:none;fill:url(#linearGradient3331);fill-opacity:1;stroke:#151515;stroke-width:1.08532763;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.3 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="46" height="22"><g transform="translate(0 -291.18)"><rect style="marker:none;font-variant-east_asian:normal" width="44.446" height="20.911" x=".625" y="291.715" rx="10.455" ry="10.073" fill="#e1dedb" stroke="#cdc7c2" stroke-linecap="round" stroke-linejoin="round"/><rect ry="10.455" rx="10.455" y="291.715" x=".543" height="20.911" width="21.143" style="marker:none;font-variant-east_asian:normal" fill="#f8f7f7" stroke="#aa9f98" stroke-linecap="round" stroke-linejoin="round"/><g transform="matrix(.97148 0 0 1 1658.914 -2552.91)" stroke-width="1.015" stroke-linecap="round" stroke-linejoin="round"><rect ry="13.17" rx="13.556" y="1234.681" x="-1242.732" height="26" width="49.409" style="marker:none" fill="#e1dedb" stroke="#cdc7c2"/><rect style="marker:none" width="26.763" height="26" x="-1242.732" y="1234.769" rx="13.511" ry="13.126" fill="#f8f7f7" stroke="#aa9f98"/></g><g transform="matrix(.97148 0 0 1 1658.914 -2512.91)" stroke-width="1.015" stroke="#2b73cc"><rect style="marker:none" width="49.409" height="26" x="-1242.732" y="1234.681" rx="13.556" ry="13.17" fill="#3081e3"/><rect ry="13.126" rx="13.511" y="1234.769" x="-1220.086" height="26" width="26.763" style="marker:none" fill="#f8f7f7" stroke-linecap="round" stroke-linejoin="round"/></g></g></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="46" height="22"><defs><linearGradient id="a"><stop offset="0" stop-color="#39393a"/><stop offset="1" stop-color="#302f30"/></linearGradient><linearGradient xlink:href="#a" id="b" x1="53" y1="294.429" x2="53" y2="309.804" gradientUnits="userSpaceOnUse" gradientTransform="translate(-19)"/></defs><g transform="translate(0 -291.18)" stroke="#030e1b" stroke-width="1.085"><rect style="marker:none" width="44.446" height="20.911" x=".625" y="291.715" rx="10.455" ry="10.073" fill="#15539e"/><rect ry="10.455" rx="10.455" y="291.715" x="24.304" height="20.911" width="21.143" style="marker:none" fill="url(#b)"/></g></svg>

After

Width:  |  Height:  |  Size: 707 B

View File

@ -1,103 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="46"
height="22"
viewBox="0 0 46 22"
version="1.1"
id="svg2751"
inkscape:version="0.92.4 5da689c313, 2019-01-14"
sodipodi:docname="toggle-on-intl.svg">
<defs
id="defs2745">
<linearGradient
inkscape:collect="always"
id="linearGradient3329">
<stop
style="stop-color:#39393a;stop-opacity:1;"
offset="0"
id="stop3325" />
<stop
style="stop-color:#302f30;stop-opacity:1"
offset="1"
id="stop3327" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient3329"
id="linearGradient3331"
x1="53"
y1="294.42917"
x2="53"
y2="309.80417"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(-19)" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#535353"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="13.588971"
inkscape:cy="14.124546"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
units="px"
inkscape:pagecheckerboard="true"
borderlayer="true"
inkscape:showpageshadow="false"
showborder="false">
<inkscape:grid
type="xygrid"
id="grid3298" />
</sodipodi:namedview>
<metadata
id="metadata2748">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-291.17916)">
<rect
style="opacity:1;vector-effect:none;fill:#15539e;fill-opacity:1;stroke:#030e1b;stroke-width:1.08532763;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal"
id="rect3296"
width="44.446434"
height="20.910645"
x="0.625"
y="291.71494"
rx="10.455324"
ry="10.073335" />
<rect
ry="10.455322"
rx="10.455322"
y="291.71494"
x="24.30357"
height="20.910645"
width="21.142862"
id="rect3300"
style="opacity:1;vector-effect:none;fill:url(#linearGradient3331);fill-opacity:1;stroke:#030e1b;stroke-width:1.08532763;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.3 KiB

1
data/theme/toggle-on.svg Normal file
View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="46" height="22"><g transform="translate(0 -291.18)" stroke="#2b73cc"><rect style="marker:none;font-variant-east_asian:normal" width="44.446" height="20.911" x=".625" y="291.715" rx="10.455" ry="10.073" fill="#3081e3"/><rect ry="10.455" rx="10.455" y="291.715" x="24.304" height="20.911" width="21.143" style="marker:none;font-variant-east_asian:normal" fill="#f8f7f7" stroke-linecap="round" stroke-linejoin="round"/></g></svg>

After

Width:  |  Height:  |  Size: 473 B

View File

@ -7,7 +7,7 @@ const Params = imports.misc.params;
const Tweener = imports.ui.tweener; const Tweener = imports.ui.tweener;
var DEFAULT_FADE_FACTOR = 0.4; var DEFAULT_FADE_FACTOR = 0.4;
var VIGNETTE_BRIGHTNESS = 0.8; var VIGNETTE_BRIGHTNESS = 0.2;
var VIGNETTE_SHARPNESS = 0.7; var VIGNETTE_SHARPNESS = 0.7;
const VIGNETTE_DECLARATIONS = '\ const VIGNETTE_DECLARATIONS = '\

View File

@ -14,7 +14,7 @@ cogl_pango_pc = 'mutter-cogl-pango-' + mutter_api_version
libmutter_pc = 'libmutter-' + mutter_api_version libmutter_pc = 'libmutter-' + mutter_api_version
croco_req = '>= 0.6.8' croco_req = '>= 0.6.8'
ecal_req = '>= 3.33.1' ecal_req = '>= 3.5.3'
eds_req = '>= 3.17.2' eds_req = '>= 3.17.2'
gcr_req = '>= 3.7.5' gcr_req = '>= 3.7.5'
gdesktop_req = '>= 3.7.90' gdesktop_req = '>= 3.7.90'
@ -73,7 +73,7 @@ else
endif endif
atk_bridge_dep = dependency('atk-bridge-2.0') atk_bridge_dep = dependency('atk-bridge-2.0')
ecal_dep = dependency('libecal-2.0', version: ecal_req) ecal_dep = dependency('libecal-1.2', version: ecal_req)
eds_dep = dependency('libedataserver-1.2', version: eds_req) eds_dep = dependency('libedataserver-1.2', version: eds_req)
gcr_dep = dependency('gcr-base-3', version: gcr_req) gcr_dep = dependency('gcr-base-3', version: gcr_req)
gdk_x11_dep = dependency('gdk-x11-3.0') gdk_x11_dep = dependency('gdk-x11-3.0')

View File

@ -295,13 +295,13 @@ create_client_for_source (ESource *source,
CalendarSourceData *source_data) CalendarSourceData *source_data)
{ {
ClientData *data; ClientData *data;
EClient *client; ECalClient *client;
GError *error = NULL; GError *error = NULL;
client = g_hash_table_lookup (source_data->clients, source); client = g_hash_table_lookup (source_data->clients, source);
g_return_if_fail (client == NULL); g_return_if_fail (client == NULL);
client = e_cal_client_connect_sync (source, source_type, -1, NULL, &error); client = e_cal_client_new (source, source_type, &error);
if (!client) if (!client)
{ {
g_warning ("Could not load source '%s': %s", g_warning ("Could not load source '%s': %s",
@ -312,7 +312,7 @@ create_client_for_source (ESource *source,
} }
data = g_slice_new0 (ClientData); data = g_slice_new0 (ClientData);
data->client = E_CAL_CLIENT (client); /* takes ownership */ data->client = client; /* takes ownership */
data->backend_died_id = g_signal_connect (client, data->backend_died_id = g_signal_connect (client,
"backend-died", "backend-died",
G_CALLBACK (backend_died_cb), G_CALLBACK (backend_died_cb),

View File

@ -102,120 +102,97 @@ typedef struct
} CollectAppointmentsData; } CollectAppointmentsData;
static time_t static time_t
get_time_from_property (ICalComponent *icomp, get_time_from_property (icalcomponent *ical,
ICalPropertyKind prop_kind, icalproperty_kind prop_kind,
ICalTime * (* get_prop_func) (ICalProperty *prop), struct icaltimetype (* get_prop_func) (const icalproperty *prop),
ICalTimezone *default_zone) icaltimezone *default_zone)
{ {
ICalProperty *prop; icalproperty *prop;
ICalTime *itt; struct icaltimetype ical_time;
ICalParameter *param; icalparameter *param;
ICalTimezone *timezone = NULL; icaltimezone *timezone = NULL;
time_t retval;
prop = i_cal_component_get_first_property (icomp, prop_kind); prop = icalcomponent_get_first_property (ical, prop_kind);
if (!prop) if (!prop)
return 0; return 0;
itt = get_prop_func (prop); ical_time = get_prop_func (prop);
param = i_cal_property_get_first_parameter (prop, I_CAL_TZID_PARAMETER); param = icalproperty_get_first_parameter (prop, ICAL_TZID_PARAMETER);
if (param) if (param)
timezone = i_cal_timezone_get_builtin_timezone_from_tzid (i_cal_parameter_get_tzid (param)); timezone = icaltimezone_get_builtin_timezone_from_tzid (icalparameter_get_tzid (param));
else if (i_cal_time_is_utc (itt)) else if (icaltime_is_utc (ical_time))
timezone = i_cal_timezone_get_utc_timezone (); timezone = icaltimezone_get_utc_timezone ();
else else
timezone = default_zone; timezone = default_zone;
retval = i_cal_time_as_timet_with_zone (itt, timezone); return icaltime_as_timet_with_zone (ical_time, timezone);
g_clear_object (&param);
g_clear_object (&prop);
g_clear_object (&itt);
return retval;
} }
static char * static char *
get_ical_uid (ICalComponent *icomp) get_ical_uid (icalcomponent *ical)
{ {
return g_strdup (i_cal_component_get_uid (icomp)); return g_strdup (icalcomponent_get_uid (ical));
} }
static char * static char *
get_ical_summary (ICalComponent *icomp) get_ical_summary (icalcomponent *ical)
{ {
ICalProperty *prop; icalproperty *prop;
char *retval;
prop = i_cal_component_get_first_property (icomp, I_CAL_SUMMARY_PROPERTY); prop = icalcomponent_get_first_property (ical, ICAL_SUMMARY_PROPERTY);
if (!prop) if (!prop)
return NULL; return NULL;
retval = g_strdup (i_cal_property_get_summary (prop)); return g_strdup (icalproperty_get_summary (prop));
g_object_unref (prop);
return retval;
} }
static char * static char *
get_ical_description (ICalComponent *icomp) get_ical_description (icalcomponent *ical)
{ {
ICalProperty *prop; icalproperty *prop;
char *retval;
prop = i_cal_component_get_first_property (icomp, I_CAL_DESCRIPTION_PROPERTY); prop = icalcomponent_get_first_property (ical, ICAL_DESCRIPTION_PROPERTY);
if (!prop) if (!prop)
return NULL; return NULL;
retval = g_strdup (i_cal_property_get_description (prop)); return g_strdup (icalproperty_get_description (prop));
g_object_unref (prop);
return retval;
} }
static inline time_t static inline time_t
get_ical_start_time (ICalComponent *icomp, get_ical_start_time (icalcomponent *ical,
ICalTimezone *default_zone) icaltimezone *default_zone)
{ {
return get_time_from_property (icomp, return get_time_from_property (ical,
I_CAL_DTSTART_PROPERTY, ICAL_DTSTART_PROPERTY,
i_cal_property_get_dtstart, icalproperty_get_dtstart,
default_zone); default_zone);
} }
static inline time_t static inline time_t
get_ical_end_time (ICalComponent *icomp, get_ical_end_time (icalcomponent *ical,
ICalTimezone *default_zone) icaltimezone *default_zone)
{ {
return get_time_from_property (icomp, return get_time_from_property (ical,
I_CAL_DTEND_PROPERTY, ICAL_DTEND_PROPERTY,
i_cal_property_get_dtend, icalproperty_get_dtend,
default_zone); default_zone);
} }
static gboolean static gboolean
get_ical_is_all_day (ICalComponent *icomp, get_ical_is_all_day (icalcomponent *ical,
time_t start_time, time_t start_time,
ICalTimezone *default_zone) icaltimezone *default_zone)
{ {
ICalProperty *prop; icalproperty *prop;
ICalDuration *duration; struct tm *start_tm;
ICalTime *dtstart; time_t end_time;
struct tm *start_tm; struct icaldurationtype duration;
time_t end_time; struct icaltimetype start_icaltime;
gboolean retval;
dtstart = i_cal_component_get_dtstart (icomp); start_icaltime = icalcomponent_get_dtstart (ical);
if (dtstart && i_cal_time_is_date (dtstart)) if (start_icaltime.is_date)
{ return TRUE;
g_clear_object (&dtstart);
return TRUE;
}
g_clear_object (&dtstart);
start_tm = gmtime (&start_time); start_tm = gmtime (&start_time);
if (start_tm->tm_sec != 0 || if (start_tm->tm_sec != 0 ||
@ -223,40 +200,35 @@ get_ical_is_all_day (ICalComponent *icomp,
start_tm->tm_hour != 0) start_tm->tm_hour != 0)
return FALSE; return FALSE;
if ((end_time = get_ical_end_time (icomp, default_zone))) if ((end_time = get_ical_end_time (ical, default_zone)))
return (end_time - start_time) % 86400 == 0; return (end_time - start_time) % 86400 == 0;
prop = i_cal_component_get_first_property (icomp, I_CAL_DURATION_PROPERTY); prop = icalcomponent_get_first_property (ical, ICAL_DURATION_PROPERTY);
if (!prop) if (!prop)
return FALSE; return FALSE;
duration = i_cal_property_get_duration (prop); duration = icalproperty_get_duration (prop);
retval = duration && (i_cal_duration_as_int (duration) % 86400) == 0; return icaldurationtype_as_int (duration) % 86400 == 0;
g_clear_object (&duration);
g_clear_object (&prop);
return retval;
} }
static inline time_t static inline time_t
get_ical_due_time (ICalComponent *icomp, get_ical_due_time (icalcomponent *ical,
ICalTimezone *default_zone) icaltimezone *default_zone)
{ {
return get_time_from_property (icomp, return get_time_from_property (ical,
I_CAL_DUE_PROPERTY, ICAL_DUE_PROPERTY,
i_cal_property_get_due, icalproperty_get_due,
default_zone); default_zone);
} }
static inline time_t static inline time_t
get_ical_completed_time (ICalComponent *icomp, get_ical_completed_time (icalcomponent *ical,
ICalTimezone *default_zone) icaltimezone *default_zone)
{ {
return get_time_from_property (icomp, return get_time_from_property (ical,
I_CAL_COMPLETED_PROPERTY, ICAL_COMPLETED_PROPERTY,
i_cal_property_get_completed, icalproperty_get_completed,
default_zone); default_zone);
} }
@ -393,69 +365,67 @@ calendar_appointment_free (CalendarAppointment *appointment)
static void static void
calendar_appointment_init (CalendarAppointment *appointment, calendar_appointment_init (CalendarAppointment *appointment,
ICalComponent *icomp, icalcomponent *ical,
ECalClient *cal) ECalClient *cal)
{ {
ICalTimezone *default_zone; icaltimezone *default_zone;
const char *source_id; const char *source_id;
source_id = e_source_get_uid (e_client_get_source (E_CLIENT (cal))); source_id = e_source_get_uid (e_client_get_source (E_CLIENT (cal)));
default_zone = e_cal_client_get_default_timezone (cal); default_zone = e_cal_client_get_default_timezone (cal);
appointment->uid = get_ical_uid (icomp); appointment->uid = get_ical_uid (ical);
appointment->source_id = g_strdup (source_id); appointment->source_id = g_strdup (source_id);
appointment->backend_name = get_source_backend_name (cal); appointment->backend_name = get_source_backend_name (cal);
appointment->summary = get_ical_summary (icomp); appointment->summary = get_ical_summary (ical);
appointment->description = get_ical_description (icomp); appointment->description = get_ical_description (ical);
appointment->color_string = get_source_color (cal); appointment->color_string = get_source_color (cal);
appointment->start_time = get_ical_start_time (icomp, default_zone); appointment->start_time = get_ical_start_time (ical, default_zone);
appointment->end_time = get_ical_end_time (icomp, default_zone); appointment->end_time = get_ical_end_time (ical, default_zone);
appointment->is_all_day = get_ical_is_all_day (icomp, appointment->is_all_day = get_ical_is_all_day (ical,
appointment->start_time, appointment->start_time,
default_zone); default_zone);
} }
static CalendarAppointment * static CalendarAppointment *
calendar_appointment_new (ICalComponent *icomp, calendar_appointment_new (icalcomponent *ical,
ECalClient *cal) ECalClient *cal)
{ {
CalendarAppointment *appointment; CalendarAppointment *appointment;
appointment = g_new0 (CalendarAppointment, 1); appointment = g_new0 (CalendarAppointment, 1);
calendar_appointment_init (appointment, icomp, cal); calendar_appointment_init (appointment, ical, cal);
return appointment; return appointment;
} }
static gboolean static gboolean
generate_instances_cb (ICalComponent *icomp, generate_instances_cb (ECalComponent *comp,
ICalTime *instance_start, time_t start,
ICalTime *instance_end, time_t end,
gpointer user_data, gpointer data)
GCancellable *cancellable,
GError **error)
{ {
ECalClient *cal = ((CollectAppointmentsData *)user_data)->client; ECalClient *cal = ((CollectAppointmentsData *)data)->client;
GHashTable *appointments = ((CollectAppointmentsData *)user_data)->appointments; GHashTable *appointments = ((CollectAppointmentsData *)data)->appointments;
CalendarAppointment *appointment; CalendarAppointment *appointment;
CalendarOccurrence *occurrence; CalendarOccurrence *occurrence;
ICalTimezone *default_zone; const char *uid;
const gchar *uid;
default_zone = e_cal_client_get_default_timezone (cal); e_cal_component_get_uid (comp, &uid);
uid = i_cal_component_get_uid (icomp);
appointment = g_hash_table_lookup (appointments, uid); appointment = g_hash_table_lookup (appointments, uid);
if (appointment == NULL) if (appointment == NULL)
{ {
appointment = calendar_appointment_new (icomp, cal); icalcomponent *ical = e_cal_component_get_icalcomponent (comp);
appointment = calendar_appointment_new (ical, cal);
g_hash_table_insert (appointments, g_strdup (uid), appointment); g_hash_table_insert (appointments, g_strdup (uid), appointment);
} }
occurrence = g_new0 (CalendarOccurrence, 1); occurrence = g_new0 (CalendarOccurrence, 1);
occurrence->start_time = i_cal_time_as_timet_with_zone (instance_start, default_zone); occurrence->start_time = start;
occurrence->end_time = i_cal_time_as_timet_with_zone (instance_end, default_zone); occurrence->end_time = end;
occurrence->rid = e_cal_util_component_get_recurid_as_string (icomp); occurrence->rid = e_cal_component_get_recurid_as_string (comp);
appointment->occurrences = g_slist_append (appointment->occurrences, occurrence); appointment->occurrences = g_slist_append (appointment->occurrences, occurrence);
@ -472,7 +442,7 @@ struct _App
time_t since; time_t since;
time_t until; time_t until;
ICalTimezone *zone; icaltimezone *zone;
CalendarSources *sources; CalendarSources *sources;
gulong sources_signal_id; gulong sources_signal_id;
@ -498,9 +468,9 @@ app_update_timezone (App *app)
if (g_strcmp0 (location, app->timezone_location) != 0) if (g_strcmp0 (location, app->timezone_location) != 0)
{ {
if (location == NULL) if (location == NULL)
app->zone = i_cal_timezone_get_utc_timezone (); app->zone = icaltimezone_get_utc_timezone ();
else else
app->zone = i_cal_timezone_get_builtin_timezone (location); app->zone = icaltimezone_get_builtin_timezone (location);
g_free (app->timezone_location); g_free (app->timezone_location);
app->timezone_location = location; app->timezone_location = location;
print_debug ("Using timezone %s", app->timezone_location); print_debug ("Using timezone %s", app->timezone_location);
@ -558,10 +528,10 @@ on_objects_added (ECalClientView *view,
for (l = objects; l != NULL; l = l->next) for (l = objects; l != NULL; l = l->next)
{ {
ICalComponent *icomp = l->data; icalcomponent *ical = l->data;
const char *uid; const char *uid;
uid = i_cal_component_get_uid (icomp); uid = icalcomponent_get_uid (ical);
if (g_hash_table_lookup (app->appointments, uid) == NULL) if (g_hash_table_lookup (app->appointments, uid) == NULL)
{ {
@ -630,7 +600,7 @@ app_load_events (App *app)
since_iso8601 = isodate_from_time_t (app->since); since_iso8601 = isodate_from_time_t (app->since);
until_iso8601 = isodate_from_time_t (app->until); until_iso8601 = isodate_from_time_t (app->until);
tz_location = i_cal_timezone_get_location (app->zone); tz_location = icaltimezone_get_location (app->zone);
print_debug ("Loading events since %s until %s", print_debug ("Loading events since %s until %s",
since_iso8601, since_iso8601,
@ -652,12 +622,21 @@ app_load_events (App *app)
e_cal_client_set_default_timezone (cal, app->zone); e_cal_client_set_default_timezone (cal, app->zone);
error = NULL;
if (!e_client_open_sync (E_CLIENT (cal), TRUE, NULL, &error))
{
ESource *source = e_client_get_source (E_CLIENT (cal));
g_warning ("Error opening calendar %s: %s\n",
e_source_get_uid (source), error->message);
g_error_free (error);
continue;
}
data.client = cal; data.client = cal;
data.appointments = app->appointments; data.appointments = app->appointments;
e_cal_client_generate_instances_sync (cal, e_cal_client_generate_instances_sync (cal,
app->since, app->since,
app->until, app->until,
NULL,
generate_instances_cb, generate_instances_cb,
&data); &data);