Compare commits

..

35 Commits

Author SHA1 Message Date
Carlos Soriano
80d754916d panelMenu: Don't fade appMenuButton icon and put it on the side
Design request, don't fade the icon of the appMenuButton and put it on
the side instead of overlaping with the text.
2014-11-11 16:30:11 +01:00
Jakub Steiner
26fd0b7e7c theme: kill osd_bg_color
- not enough to keep it distinct from bg_color
2014-11-11 11:22:42 +01:00
Jakub Steiner
d476da8a69 theme: menu separators, message tray icons
- menu separators not vertcally centered unfortunately
- MT items not horizontally centered unfortunately
2014-11-11 11:22:42 +01:00
Carlos Soriano
b2970f576c theme: Remove looking glass border-image
Now that we no longer use images for the selected highligth
2014-11-11 11:22:42 +01:00
Carlos Soriano
77e3e61840 theme: some code style fixes 2014-11-11 11:14:43 +01:00
Carlos Soriano
aceb9fe825 theme: Use box shadow for active panel menu border 2014-11-11 11:14:42 +01:00
Carlos Soriano
1842466069 theme: Match list row hover transition type of gtk
Currently we animate in both sides, hover on and hover off, and with
200ms. The downside of that it that it feels sluggish when passing with
the mouse hovering few items because the on transition is slow.

Match what gtk did for fix this for list rows hover state at
commit 52e91f1f74ecb943d, animating only on off hover. However,
gnome-shell doesn't support different kind of transitions for its css,
that will be lovely to have a easeOutQuad as well here.
2014-11-11 11:14:41 +01:00
Carlos Soriano
a92cf654d1 Why do we need this to have focus on folders? 2014-11-11 11:14:40 +01:00
Jakub Steiner
ff700d3a28 theme: use regular borders for top bar buttons
- no need to abuse image assets.
- big thanks to carlos for making it possible.
2014-11-11 11:14:39 +01:00
Carlos Soriano
3b86d23e09 panelMenu: Use a normal St.Bin to allow styling
Currently we don't add some style to ButtonBox like padding etc, we add
it programatically taking into account minimum padding and natural
padding. The thing is that with natural padding it works as expected
even for low resolutions.

As a design request, we need to style from css, and since the current
ButtonBox class doesn't add any worth functionality, change that and use
a simple St.Bin that allow normal styling.
2014-11-11 11:14:39 +01:00
Jakub Steiner
74a8fbfdaf theme: make notification counters round. 2014-11-11 11:14:38 +01:00
Carlos Soriano
8891261dea appDisplay: Show a dot when application is running
Show a dot in running applications.
Design request.
2014-11-11 11:14:37 +01:00
Jakub Steiner
c5daf63976 theme: notifications & message tray 2014-11-11 11:14:36 +01:00
Jakub Steiner
e4f1db8f09 theme: looking glass 2014-11-11 11:14:35 +01:00
Jakub Steiner
1242beae1e theme: window captions in the overview
+ a few typos
2014-11-11 11:14:34 +01:00
Jakub Steiner
ca5a8bf57e theme: better running, hover and active states for icons
- the active state behaves oddly though, not respecting
  the fill color, just changing alpha it seems...
2014-11-11 11:14:33 +01:00
Jakub Steiner
25ccc6ebd4 theme: overview-icon fixes 2014-11-11 11:14:33 +01:00
Jakub Steiner
f68421dca1 theme: entry selections, parsed css 2014-11-11 11:14:32 +01:00
Jakub Steiner
4222e62b5a theme: workspace pager in overview 2014-11-11 11:14:31 +01:00
Jakub Steiner
075f53b5fa theme: overview styling
- still some quirks
- boy is this unstructured mess a pain to clean up :(
2014-11-11 11:14:30 +01:00
Jakub Steiner
161b86dc63 theme: remove unused assets 2014-11-11 11:14:29 +01:00
Jakub Steiner
3566933c04 theme: top bar active is underlined.
- glow feels foreign, will be phased out
2014-11-11 11:14:28 +01:00
Jakub Steiner
a1793d727f theme: forgot old overrides of the panel styling 2014-11-11 11:14:28 +01:00
Jakub Steiner
ec0fc8bb8a theme: switches 2014-11-11 11:14:27 +01:00
Jakub Steiner
35a3aff8a4 theme: volume/mic slider 2014-11-11 11:14:26 +01:00
Jakub Steiner
5f0b0094fb theme: top bar appmenu etc. 2014-11-11 11:14:25 +01:00
Jakub Steiner
32dd326d19 theme: checkboxes 2014-11-11 11:14:24 +01:00
Jakub Steiner
f3a5571f46 theme: overview search bar styling 2014-11-11 11:14:23 +01:00
Jakub Steiner
a0fe9909b3 theme: top bar styling. 2014-11-11 11:14:22 +01:00
Jakub Steiner
b9cf164e0b theme: modal dialogs and tweaked entries 2014-11-11 11:14:21 +01:00
Jakub Steiner
5803ce5151 theme: fine tune scrollbars 2014-11-11 11:14:20 +01:00
Jakub Steiner
4d8239a9a1 theme: update some svg assets to adwaita 3.14 counterparts
- switches
- checkboxes
2014-11-11 11:14:18 +01:00
Jakub Steiner
082d403829 theme: use Adwaita dark style for popup menus
- cannot sue box-shadow sadly.
2014-11-11 11:14:17 +01:00
Carlos Soriano
2dbc7b5c51 theme: rewrite to be structured
- using SASS
- trying to reuse as much of the gtk adwaita as possible
2014-11-11 11:14:15 +01:00
Carlos Soriano
8ab1bbb2ad theme: Fix sintax error in the theme 2014-11-11 11:08:09 +01:00
96 changed files with 11268 additions and 10235 deletions

1
.gitignore vendored
View File

@@ -86,7 +86,6 @@ src/gnome-shell-perf-helper
src/gnome-shell-perf-tool
src/gnome-shell-portal-helper
src/hotplug-sniffer/org.gnome.Shell.HotplugSniffer.service
src/org-gtk-application.[ch]
src/run-js-test
src/test-recorder
src/test-recorder.ogg

66
NEWS
View File

@@ -1,69 +1,3 @@
3.15.4
======
* Add mode parameter to AcceleratorActivated signal [Florian; #711682]
* Fix PID based window/app association [Sebastian; #736527]
* Fix current day highlight on day change [Sebastian; #742492]
* Switch to vp9 for screencast recordings [Adel; #742744]
* Disable IBus input sources on password entries [Takao; #730628]
* Make slider scrolling smoother [Adel; #742648]
* Allow move-up shortcut to move window above top workspace [Florian; #665764]
* Misc. bug fixes [Adel, Rui; #742748, #742824, #741114]
Contributors:
Cosimo Cecchi, Takao Fujiwara, Adel Gadllah, Sebastian Keller, Rui Matos,
Florian Müllner, Jasper St. Pierre
Translations:
Andika Triwidada [id], Matej Urbančič [sl], Saibal Ray [bn_IN],
Inaki Larranaga Murgoitio [eu], Stas Solovey [ru], Kjartan Maraas [nb],
Balázs Úr [hu], Marek Černocký [cs], Rafael Ferreira [pt_BR],
Bernd Homuth [de], Daniel Mustieles [es], Fabio Tomat [fur]
3.15.3
======
* Add support for high-contrast themes [Florian; #740447]
* Fix banner message on login screen without user list [Ray; #703972]
* Fix flicker when activating windows on another workspace [Florian; #741680]
* Misc. bug fixes [Giovanni, Florian; #735308, #740237]
Contributors:
Giovanni Campagna, Florian Müllner, Jasper St. Pierre, Ray Strode
Translations:
Balázs Úr [hu], Josef Andersson [sv], Muhammet Kara [tr],
Baurzhan Muftakhidinov [kk], Inaki Larranaga Murgoitio [eu]
3.15.2
======
* Fix visual glitch of window preview outline in overview [Chris; #699044]
* Change user facing name of "Captive Portal" to "Network Login" [Elad; #737198]
* Port to Python 3 [Slavek; #732478]
* Hide Airplane mode indicator when g-s-d says so [Cosimo; #736292]
* Allow translators to change non-work days [Lavi; #664645]
* Delay invocation of caribou daemon until really needed [Daiki; #739712]
* Don't lock screen after crash if locking is disabled [Adel; #704884]
* Improve layout of extension installation dialog [William; #739888]
* Fix workspace changes from app picker [Yuki; #737534]
* Preload all ibus input sources in user configuration [Takao; #695428]
* Properly remove network connections from list [Ryan; #740227]
* Support CSS margin property [Carlos; #728437]
* Improve handling of BUSY application state [Phillip; #736492]
* Fix erroneous week numbers in calendar [Florian; #736722]
* Misc. bugfixes and cleanups [Darcy, Yuki, Alexander, Eskild, Bastien, Cosimo, Colin,
Ray; #738725, #739497, #739241, #672500, #739822, #740074, #704163, #740141]
Contributors:
Yuki, Lavi .A, Elad Alfassa, Cosimo Cecchi, Takao Fujiwara, Adel Gadllah,
Eskild Hustvedt, Chris Johns, William Jon McCann, Slavek Kabrda, Ryan Lortie,
Florian Müllner, Bastien Nocera, Christian Persch, Carlos Soriano,
Jasper St. Pierre, Ray Strode, Alexander Tsoy, Daiki Ueno, Colin Walters,
Phillip Wood
Translations:
Jorge Perez Perez [an], Daniel Martinez [an], Daniel Mustieles [es],
Trần Ngọc Quân [vi], Changwoo Ryu [ko], Kjartan Maraas [nb],
Yosef Or Boczko [he], Marek Černocký [cs]
3.15.1
======
* Use GResources for theme loading [Cosimo; #736936]

View File

@@ -1,5 +1,5 @@
AC_PREREQ(2.63)
AC_INIT([gnome-shell],[3.15.4],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AC_INIT([gnome-shell],[3.15.1],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_SRCDIR([src/shell-global.c])
@@ -76,7 +76,7 @@ AC_MSG_RESULT($enable_systemd)
CLUTTER_MIN_VERSION=1.15.90
GOBJECT_INTROSPECTION_MIN_VERSION=0.10.1
GJS_MIN_VERSION=1.39.0
MUTTER_MIN_VERSION=3.15.4
MUTTER_MIN_VERSION=3.15.1
GTK_MIN_VERSION=3.15.0
GIO_MIN_VERSION=2.37.0
LIBECAL_MIN_VERSION=3.5.3
@@ -97,6 +97,7 @@ SHARED_PCS="gio-unix-2.0 >= $GIO_MIN_VERSION
gjs-internals-1.0 >= $GJS_MIN_VERSION
$recorder_modules
gdk-x11-3.0 libsoup-2.4
xtst
clutter-x11-1.0 >= $CLUTTER_MIN_VERSION
clutter-glx-1.0 >= $CLUTTER_MIN_VERSION
libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_MIN_VERSION
@@ -118,7 +119,7 @@ PKG_CHECK_MODULES(SHELL_PERF_HELPER, gtk+-3.0 gio-2.0)
PKG_CHECK_MODULES(SHELL_HOTPLUG_SNIFFER, gio-2.0 gdk-pixbuf-2.0)
PKG_CHECK_MODULES(TRAY, gtk+-3.0)
PKG_CHECK_MODULES(GVC, libpulse >= $PULSE_MIN_VERS libpulse-mainloop-glib gobject-2.0)
PKG_CHECK_MODULES(DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 3.13.1)
PKG_CHECK_MODULES(DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 3.7.4)
PKG_CHECK_MODULES(CARIBOU, caribou-1.0 >= 0.4.8)
AC_ARG_ENABLE(browser-plugin,
@@ -236,12 +237,6 @@ if test -z "${BROWSER_PLUGIN_DIR}"; then
fi
AC_ARG_VAR([BROWSER_PLUGIN_DIR],[Where to install the plugin to])
AC_ARG_VAR([GDBUS_CODEGEN],[the gdbus-codegen programme])
AC_PATH_PROG([GDBUS_CODEGEN],[gdbus-codegen],[])
if test -z "$GDBUS_CODEGEN"; then
AC_MSG_ERROR([gdbus-codegen not found])
fi
AC_CONFIG_FILES([
Makefile
data/Makefile

View File

@@ -16,18 +16,13 @@
<file>filter-selected-ltr.svg</file>
<file>filter-selected-rtl.svg</file>
<file>gnome-shell.css</file>
<file>gnome-shell-high-contrast.css</file>
<file>logged-in-indicator.svg</file>
<file>message-tray-background.png</file>
<file>more-results.svg</file>
<file>noise-texture.png</file>
<file>page-indicator-active.svg</file>
<file>page-indicator-inactive.svg</file>
<file>page-indicator-checked.svg</file>
<file>page-indicator-hover.svg</file>
<file>panel-button-border.svg</file>
<file>panel-button-highlight-narrow.svg</file>
<file>panel-button-highlight-wide.svg</file>
<file>process-working.svg</file>
<file>running-indicator.svg</file>
<file>source-button-border.svg</file>

44
data/theme/_colors.scss Normal file
View File

@@ -0,0 +1,44 @@
// When color definition differs for dark and light variant,
// it gets @if ed depending on $variant
$base_color: if($variant =='light', #ffffff, #292929);
$bg_color: if($variant =='light', #ededed, #393f3f);
$fg_color: if($variant =='light', #2e3436, #eeeeec);
$selected_fg_color: #ffffff;
$selected_bg_color: if($variant == 'light', #4a90d9, darken(#4a90d9,20%));
$selected_borders_color: if($variant=='light', darken($selected_bg_color, 30%),
darken($selected_bg_color, 20%));
$borders_color: if($variant =='light', darken($bg_color,30%), darken($bg_color,12%));
$borders_edge: if($variant =='light', white, transparentize($fg_color, 0.9));
$link_color: if($variant == 'light', darken($selected_bg_color,10%),
lighten($selected_bg_color,20%));
$link_visited_color: if($variant == 'light', darken($selected_bg_color,20%),
lighten($selected_bg_color,10%));
$top_hilight: $borders_edge;
$warning_color: #f57900;
$error_color: #cc0000;
$success_color: if($variant =='light', #73d216, darken(#73d216,10%));
$destructive_color: if($variant =='light', #ef2929, darken(#ef2929,10%));
$osd_fg_color: #eeeeec;
$osd_bg_color: #2e3436;
$osd_borders_color: transparentize(black, 0.3);
$osd_outer_borders_color: transparentize(white, 0.9);
$tooltip_borders_color: $osd_outer_borders_color;
//insensitive state derived colors
$insensitive_fg_color: mix($fg_color, $bg_color, 50%);
$insensitive_bg_color: mix($bg_color, $base_color, 60%);
$insensitive_borders_color: $borders_color;
//colors for the backdrop state, derived from the main colors.
$backdrop_base_color: if($variant =='light', darken($base_color,1%), lighten($base_color,1%));
$backdrop_bg_color: $bg_color;
$backdrop_fg_color: mix($fg_color, $backdrop_bg_color, 80%);
$backdrop_insensitive_color: if($variant =='light', darken($backdrop_bg_color,15%), lighten($backdrop_bg_color,15%));
$backdrop_borders_color: mix($borders_color, $bg_color, 90%);
$backdrop_dark_fill: mix($backdrop_borders_color,$backdrop_bg_color, 35%);

963
data/theme/_common.scss Normal file
View File

@@ -0,0 +1,963 @@
//This is the RIGHT PLACE to edit the stylesheet
//let's start by telling people not to edit the generated CSS:
$cakeisalie: "This stylesheet is generated, DO NOT EDIT";
/* #{$cakeisalie} */
/* Copyright 2009, Red Hat, Inc.
*
* Portions adapted from Mx's data/style/default.css
* Copyright 2009 Intel Corporation
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU Lesser General Public License,
* version 2.1, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
* more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
*/
/* GLOBALS */
$font-size: 11;
$font-family: Cantarell, Sans-Serif;
stage {
font-family: $font-family;
@include fontsize($font-size);
color: $fg_color;
}
/* WIDGETS */
/* Buttons */
// one would think we may want a generic button class:
// bug #737785
.candidate-page-button,
.notification-button,
.notification-icon-button,
.hotplug-notification-item,
.hotplug-resident-eject-button,
.modal-dialog-button,
.app-view-control {
border-radius: 3px;
border-width: 1px;
padding: 4px 32px;
@include button(normal);
&:hover { @include button(hover); }
&:focus { @include button(focus); }
&:insensitive { @include button(insensitive); }
&:active { @include button(active); }
}
/* Entries */
StEntry {
border-radius: 3px;
padding: 4px;
border-width: 1px;
color: $fg_color;
@include entry(normal);
//&:hover { @include entry(hover);}
&:focus { @include entry(focus,$fc:transparentize($fg_color,0.5));}
&:insensitive { @include entry(insensitive);}
selection-background-color: $selected_bg_color;
selected-color: $selected_fg_color;
}
/* Scrollbars */
StScrollBar {
padding: 0;
&.vfade { -st-vfade-offset: 68px; }
&.hfade { -st-hfade-offset: 68px; }
StScrollView & {
min-width: 14px;
min-height: 14px;
}
StBin#trough {
border-radius: 0;
background-color: darken($bg_color,10%);
}
StButton#vhandle, StButton#hhandle {
border-radius: 8px;
background-color: $bg_color;
border: 3px solid darken($bg_color,10%); //would be nice to margin or at least to transparent
&:hover { background-color: lighten($bg_color,10%); }
&:active { background-color: $selected_bg_color; }
}
}
/* Slider */
.slider {
height: 1em;
-slider-height: 0.3em;
-slider-background-color: $insensitive_bg_color; //background of the trough
-slider-border-color: $borders_color; //trough border color
-slider-active-background-color: $selected_bg_color; //active trough fill
-slider-active-border-color: darken($selected_bg_color,10%); //active trough border
-slider-border-width: 1px;
-slider-handle-radius: 6px;
}
/* Check Boxes */
.check-box {
StBoxLayout { spacing: .8em; }
StBin {
width: 24px;
height: 22px;
background-image: url("checkbox-off.svg");
}
&:focus Stbin { background-image: url("checkbox-off-focused.svg"); }
&:checked Stbin { background-image: url("checkbox.svg"); }
&:focus:checked Stbin { background-image: url("checkbox-focused.svg"); }
}
/* Switches */
.toggle-switch {
width: 65px;
height: 22px;
background-size: contain;
}
@each $v in us, intl {
.toggle-switch-#{$v} {
background-image: url("toggle-off-#{$v}.svg");
&:checked { background-image: url("toggle-on-#{$v}.svg"); }
}
}
/* links */
.shell-link {
color: $link_color;
&:hover { color: lighten($link_color,10%); }
}
/* Modal Dialogs */
.lightbox { background-color: black; } //FIXME where is this?
.flashspot { background-color: white; } //FIXME where is this?
.modal-dialog {
border-radius: 5px;
background-color: transparentize(darken($bg_color,10%),0.05);
border: 1px solid $borders_color;
padding: 24px;
.run-dialog-entry { width: 20em; }
.run-dialog-error-box {
padding-top: 16px;
spacing: 6px;
}
.run-dialog-button-box { padding-top: 1em; }
.run-dialog-label {
font-size: fontsize($font-size + 1.1);
font-weight: bold;
color: darken($fg_color,10%);
padding-bottom: .4em;
}
}
.button-dialog-button-box {
spacing: 18px;
padding-top: 48px;
}
.show-processes-dialog-subject,
.mount-question-dialog-subject,
.end-session-dialog-subject { //this should be a generic header class
font-size: fontsize($font-size * 1.3);
}
/* Popvers/Menus */
.popup-menu {
min-width: 200px;
.popup-menu-arrow { } //defined globally in the TOP BAR
.popup-sub-menu {
background-color: darken($bg_color,2%);
border-top: 1px solid lighten($borders_color,5%);
border-bottom: 1px solid lighten($borders_color,5%);
}
.popup-menu-content { padding: 1em 0em; }
.popup-menu-item {
spacing: 12px;
&:ltr { padding: .4em 1.75em .4em 0em; }
&:rtl { padding: .4em 0em .4em 1.75em; }
&:active { background-color: lighten($bg_color,10%); }
&:insensitive { background-color: transparentize($bg_color,.5); }
}
.popup-inactive-menu-item { //all icons and other graphical elements
color: $fg_color;
&:insensitive { color: transparentize($fg_color,0.5); }
}
//.popup-status-menu-item { font-weight: normal; color: pink; } //dunno what that is
}
.popup-menu-ornament {
text-align: right;
width: 1em;
}
.popup-menu-boxpointer,
.candidate-popup-boxpointer {
-arrow-border-radius: 3px;
-arrow-background-color: $bg_color;
-arrow-border-width: 1px;
-arrow-border-color: $borders_color;
-arrow-base: 24px;
-arrow-rise: 11px;
-arrow-box-shadow: 0 1px 3px red; //dreaming. bug #689995
}
.popup-separator-menu-item {
-margin-horizontal: 24px;
height: 1px; //not really the whole box
padding: 0; //not really centered
background-color: transparent;
border-color: lighten($borders_color,10%);
border-bottom-width: 1px;
border-bottom-style: solid;
}
/* fallback menu
- odd thing for styling App menu when apparently not running under shell. Light Adwaita styled
app menu inside the main app window itself rather than the top bar
*/
/* TOP BAR */
#panel {
background-color: black;
font-weight: bold;
height: 1.86em;
&.unlock-screen,
&.login-screen,
&.lock-screen {
background-color: transparent;
}
#panelLeft, #panelCenter { // spacing between activities<>app menu and such
spacing: 4px;
}
.panel-corner {
-panel-corner-radius: 6px;
-panel-corner-background-color: black;
-panel-corner-border-width: 2px;
-panel-corner-border-color: transparent;
&:active, &:overview, &:focus {
-panel-corner-border-color: lighten($selected_bg_color,5%);
}
&.lock-screen, &.login-screen, &unlock-screen {
-panel-corner-radius: 0;
-panel-corner-background-color: transparent;
-panel-corner-border-color: transparent;
}
}
.panel-button {
padding: 0px 12px;
font-weight: bold;
color: #ccc;
transition-duration: 100ms;
#appMenuIcon {
app-icon-bottom-clip: 1px;
.panel-button:active &,
.panel-button:overview &,
.panel-button:focus &,
.panel-button:checked & {
app-icon-bottom-clip: 2px;
}
}
&:hover {
color: lighten($fg_color, 10%);
text-shadow: black 0 2px 2px;
}
&:active, &:overview, &:focus, &:checked {
// Trick due to St limitations. It needs a background to draw
// a box-shadow
background-color: rgba(0, 0, 0, 0.01);
box-shadow: inset 0 -2px 0px lighten($selected_bg_color,5%);
color: lighten($fg_color,10%);
text-shadow: black 0px 2px 2px;
& > .system-status-icon { icon-shadow: black 0 2px 2px; }
}
.system-status-icon { icon-size: 1.09em; padding: 0 5px; }
.unlock-screen &,
.login-screen &,
.lock-screen & {
color: lighten($fg_color, 10%);
&:focus, &:hover, &:active { color: lighten($fg_color, 10%); }
}
}
.panel-status-button {
&:active, &:overview, &:focus, &:checked {
border-color: lighten($selected_bg_color,5%);
border-bottom-width: 2px;
}
}
.panel-menu { -boxpointer-gap: 4px; } //FIXME
.panel-status-indicators-box, //FIXME
.panel-status-menu-box {
spacing: 2px;
}
.screencast-indicator { color: $warning_color; }
}
// a little unstructured mess:
.system-switch-user-submenu-icon {
icon-size: 24px;
border: 1px solid transparentize($fg_color,0.6);
}
#appMenu {
spinner-image: url("process-working.svg");
spacing: 4px;
.label-shadow { color: transparentize(#000,0.5); }
}
.aggregate-menu {
width: 360px;
.popup-menu-icon { padding: 0 4px; }
}
.system-menu-action {
color: $fg_color;
border-radius: 32px; /* wish we could do 50% */
padding: 13px;
border: 1px solid lighten($borders_color,5%);
&:hover, &:focus {
color: lighten($fg_color, 10%);
background-color: lighten($bg_color,10%);
border: none;
padding: 14px;
}
&:active { background-color: lighten($borders_color,5%); }
& > StIcon { icon-size: 16px; }
}
// not really top bar only
.popup-menu-arrow { width: 16px; height: 16px; }
.popup-menu-icon { icon-size: 1.09em; }
//close buttons
.window-close, .notification-close {
background-image: url("close-window.svg");
background-size: 32px;
height: 32px;
width: 32px;
}
.window-close {
-shell-close-overlap: 16px;
&:rtl { -st-background-image-shadow: 2px 2px 6px rgba(0,0,0,0.5); }
}
.notification-close {
-shell-close-overlap-x: 14px;
-shell-close-overlap-y: -12px;
&:rtl { -shell-close-overlap-x: -14px; }
}
/* OVERVIEW */
#overview {
spacing: 24px; //
}
.window-picker { //container around window thumbnails
-horizontal-spacing: 32px;
-vertical-spacing: 32px;
padding-left: 32px;
padding-right: 32px;
padding-bottom: 48px;
&.external-monitor { padding: 32px; }
}
.window-clone-border {
border: 4px solid $selected_bg_color;
border-radius: 4px;
}
.window-caption {
spacing: 25px;
background-color: transparentize($bg_color,0.3);
border-radius: 8px;
padding: 4px 12px;
-shell-caption-spacing: 12px;
&:hover { background-color: $selected_bg_color; }
}
.messages-indicator { color: transparentize($fg_color,.2); height: 32px; }
.messages-indicator-contents { spacing: 12px; padding-bottom: 12px; }
//search entry
.search-entry {
width: 320px;
padding: 7px 9px;
border-radius: 24px;
&:focus {
padding: 6px 8px;
border-width: 2px;
}
.search-entry-icon { icon-size: 1em; padding: 0 4px; color: transparentize($fg_color,.3); }
&:hover, &:focus {
.search-entry-icon { color: $fg_color; }
}
}
//search results
#searchResultsBin {
max-width: 1000px;
}
#searchResultsContent {
padding-left: 20px;
padding-right: 20px;
spacing: 16px;
}
.search-section { spacing: 16px; } // This should be equal to #searchResultsContent spacing
.search-section-content { spacing: 32px; } // This is the space between the provider icon and the results container
.search-statustext { // "no results"
@extend %status_text;
}
.list-search-results { spacing: 3px; }
.search-section-separator {
-gradient-height: 1px;
-gradient-start: rgba(255,255,255,0);
-gradient-end: rgba(255,255,255,0.1);
-margin-horizontal: 1.5em;
height: 1px;
}
.list-search-result-content { spacing: 12px; padding: 12px; }
.list-search-result-title { font-size: 1.5em; color: darken($fg_color,5%); }
.list-search-result-description { color: darken($fg_color,15%); }
.search-provider-icon { padding: 15px; }
.search-provider-icon-more {
width: 16px;
height: 16px;
background-image: url("more-results.svg");
}
/* DASHBOARD */
#dash {
@extend %overview-panel;
padding: 4px;
border-left: 0px;
border-radius: 0px 9px 9px 0px;
&:rtl {
border-left-width: 1px;
border-right-width: 0;
border-radius: 9px 0 0 9px;
}
.placeholder {
background-image: url("dash-placeholder.svg");
background-size: contain;
height: 24px;
}
.empty-dash-drop-target {
width: 24px;
height: 24px;
}
}
.dash-item-container > StWidget {
padding: 4px 8px;
}
.dash-label { //osd tooltip
border-radius: 7px;
padding: 4px 12px;
background-color: transparentize($bg_color,0.3);
text-align: center;
-x-offset: 8px;
}
/* App Vault/Grid */
.icon-grid {
spacing: 30px;
-shell-grid-horizontal-item-size: 136px;
-shell-grid-vertical-item-size: 136px;
.overview-icon { icon-size: 96px; } //FIXME no effect
}
//.app-display { spacing: 20px; }
.app-view-controls { //favorties | all toggle container
padding-bottom: 32px;
}
.app-view-control { //favorties | all toggle button
padding: 4px 32px;
&:checked { @include button(active); }
&:first-child {
border-right-width: 0;
border-radius: 3px 0 0 3px;
}
&:last-child {
border-radius: 0 3px 3px 0;
}
}
//Icon tile
.search-provider-icon,
.list-search-result {
@extend %icon_tile;
&:active, &:checked { background-color: transparentize(darken($bg_color,10%),.1); }
&:focus, &:selected, &:hover {
background-color: transparentize($fg_color,.9);
transition-duration: 200ms;
}
}
.app-well-app,
.app-well-app.app-folder,
.show-apps,
.grid-search-result {
& > .overview-icon {
@extend %icon_tile;
}
&.running > .overview-icon {
text-shadow: black 0px 2px 2px;
}
&:active > .overview-icon,
&:checked > .overview-icon {
background-color: transparentize(darken($bg_color,10%),.1); //FIXME not working?
box-shadow: inset 0 1px 2px $borders_color;
}
&:hover > .overview-icon,
&.running:hover > .overview-icon,
&:focus > .overview-icon,
&:selected > .overview-icon {
background-color: transparentize($fg_color,.9);
transition-duration: 0ms;
border-image: none;
background-image: none;
}
}
.app-well-app-running-dot { //running apps indicator
width: 10px; height: 3px;
background-color: $selected_bg_color;
margin-bottom: 2px; //FIXME will happen :)
}
%icon_tile {
border-radius: 4px;
padding: 6px;
border: 1px solid transparent;
transition-duration: 100ms;
text-align: center;
}
.app-well-app.app-folder > .overview-icon {
background-color: transparentize($bg_color,.6);
}
.show-apps:checked .show-apps-icon,
.show-apps:focus .show-apps-icon {
color: white;
transition-duration: 100ms;
}
// Collections
.app-folder-popup { //expanded collection
-arrow-border-radius: 8px;
-arrow-background-color: transparentize($bg_color,0.7);
-arrow-base: 24px;
-arrow-rise: 11px;
}
.app-folder-popup-bin { padding: 5px; }
.app-folder-icon {
padding: 5px;
spacing-rows: 5px;
spacing-columns: 5px;
}
.page-indicator {
padding: 15px 20px;
.page-indicator-icon {
width: 18px;
height: 18px;
background-image: url(page-indicator-inactive.svg);
}
&:hover .page-indicator-icon { background-image: url(page-indicator-hover.svg); }
&:active .page-indicator-icon { background-image: url(page-indicator-active.svg); }
&:checked .page-indicator-icon,
&:checked:active { background-image: url(page-indicator-checked.svg); }
}
.no-frequent-applications-label { @extend %status_text; }
.app-well-app > .overview-icon.overview-icon-with-label,
.grid-search-result .overview-icon.overview-icon-with-label {
padding: 10px 8px 5px 8px;
spacing: 4px;
}
// Workspace pager
.workspace-thumbnails { //container ala dash
@extend %overview-panel;
visible-width: 32px; //amount visible before hover
spacing: 11px;
padding: 8px;
border-radius: 9px 0 0 9px;
//border-width: 1px 0 1px 1px; //fixme: can't have non unoform borders :(
&:rtl { border-radius: 0 9px 9px 0;}
}
.workspace-thumbnail-indicator {
border: 4px solid $selected_bg_color;
padding: 1px;
}
//Some hacks I don't even
// FIXME
.search-display > StBoxLayout,
.all-apps,
.frequent-apps > StBoxLayout {
// horizontal padding to make sure scrollbars or dash don't overlap content
padding: 0px 88px 10px 88px;
}
%overview-panel {
color: $fg_color;
background-color: $bg_color;
border: 1px solid transparentize($fg_color,0.8);
}
%status_text {
font-size: 2em;
font-weight: bold;
color: $fg_color;
}
/* NOTIFICATIONS & MESSAGE TRAY */
#message-tray {
background: darken($bg_color,10%) url("noise-texture.png");
background-repeat: repeat;
height: 72px;
box-shadow: inset 0 2px 4px rgba(0,0,0,0.5);
padding: 4px;
.message-tray-summary { height: 72px; }
.message-tray-menu-button {
StIcon {
padding: 0 20px;
color: $fg_color;
icon-size: 24px;
opacity: 1;
}
&:hover StIcon { color: lighten($fg_color, 15%); }
&:active StIcon { color: lighten($selected_bg_color, 10%); }
}
.no-messages-label { color: darken($fg_color,10%); }
}
.url-highlighter { link-color: $selected_bg_color; }
// Banners
.notification {
font-size: 11pt;
width: 34em;
border-radius: 6px 6px 0 0;
background-color: transparentize(darken($bg_color,8%),.05);
border: 1px solid $borders_color;
border-bottom-width: 0;
//box-shadow: 0 1px 4px black;
spacing-rows: 4px;
padding: 8px 8px 4px 8px;
spacing-columns: 10px;
&.multi-line-notification { padding-bottom: 8px; }
}
.notification-unexpanded {
// We want to force the actor at a specific size, irrespective
// of its minimum and preferred size, so we override both
min-height: 36px;
height: 36px;
}
// We use row-span = 2 for the image cell, which prevents its height preferences to be
// taken into account during allocation, so its height ends up being limited by the height
// of the content in the other rows. To avoid showing a stretched image, we set the minimum
// height of the table to be ICON_SIZE + IMAGE_SIZE + spacing-rows = 24 + 125 + 10 = 159
.notification-with-image {
min-height: 159px;
}
.notification-body { spacing: 5px; }
.notification-actions {
paddinf-top: 18px;
spacing: 6px;
}
//Message tray items
.summary-source {
border-radius: 0;
-st-natural-width: 60px; //FIXME left aligned rather than centered
padding: 9px;
transition-duration: 100ms;
}
.summary-source-button {
&:hover .summary-source,
&:selected .summary-source,
&:focus .summary-source { background-color: lighten($bg_color,2%); }
}
.summary-source-counter {
font-size: 10pt;
font-weight: bold;
height: 1.6em; width: 1.6em;
-shell-counter-overlap-x: 3px;
-shell-counter-overlap-y: 3px;
background-color: $selected_bg_color;
border: 2px solid $fg_color;
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%;
}
//Message tray popovers
.summary-boxpointer {
-arrow-border-radius: 15px;
-arrow-background-color: transparentize(darken($bg_color,8%),.05);
-arrow-base: 36px;
-arrow-rise: 18px;
color: $fg_color;
-boxpointer-gap: 4px;
.notification {
border-radius: 9px;
border-width: 0; //temporary workaround for border brokenness
background-color: transparentize(darken($bg_color,8%),.05) !important;
padding-bottom: 12px;
}
#summary-right-click-menu {
padding-top: 12px;
padding-bottom: 12px;
}
}
.summary-notification-stack-scrollview {
max-height: 24em;
padding-top: 8px;
padding-bottom: 8px;
&:ltr { padding-right: 8px; }
&:rtl { padding-left: 8px; }
}
.notification-scrollview {
max-height: 18em;
-st-vfade-offset: 24px;
&:ltr > StScrollBar { padding-left: 6px; }
&:rtl > StScrollBar { padding-right: 6px; }
}
.notification-button { -st-natural-width: 140px; }
.notification-icon-button {
border-radius: 5px;
padding: 5px;
&:focus { }//FIXME
& > StIcon { icons-size: 16px; padding: 8px; }
}
.secondary-icon { icon-size: 1.09em; } //FIXME
//chat bubbles
.chat-log-message { color: darken($fg_color,10%); }
.chat-empty-line { font-size: 4px; }
.chat-received {
padding-left: 4px;
&:rtl { padding-left: 0px; padding-right: 4px; }
}
.chat-sent {
padding-left: 18pt;
color: darken($fg_color, 15%);
&:rtl { padding-left: 0; padding-right: 18pt; }
}
.chat-meta-message {
padding-left: 4px;
font-size: 9pt;
font-weight: bold;
color: darken($fg_color,20%);
&:rtl { padding-left: 0; padding-right: 4px; }
}
.chat-notification-scrollview { max-height: 22em; }
.subscription-message { font-style: italic; }
//hotplug
.hotplug-transient-box {
spacing: 6px;
padding: 2px 72px 2px 12px;//FIXME wat?
}
.hotplug-notification-item {
padding: 2px 10px;
&:focus { padding: 1px 71px 1px 11px; } //FIXME wat?
}
.hotplug-notification-item-icon {
icon-size: 24px;
padding: 2px 5px;
}
.hotplug-resident-box { spacing: 8px; }
.hotplug-resident-mount {
spacing: 8px;
border-radius: 4px;
color: green;
&:hover {
color: red;
background-color: blue;
}
}
.hotplug-resident-mount-label {
color: inherit;
padding-left: 6px;
}
.hotplug-resident-mount-icon {
icon-size: 24px;
padding-left: 6px;
}
.hotplug-resident-eject-icon {
icon-size: 16px;
}
.hotplug-resident-eject-button {
padding: 7px;
border-radius: 5px;
color: pink;
}
/* Eeeky things */
//Mess that is Looking Glass
#LookingGlassDialog {
background-color: rgba(0,0,0,0.80);
spacing: 4px;
padding: 4px;
border: 2px solid grey;
border-radius: 4px;
& > #Toolbar {
border: 1px solid grey;
border-radius: 4px;
}
.labels { spacing: 4px; }
.notebook-tab {
-natural-hpadding: 12px;
-minimum-hpadding: 6px;
font-weight: bold;
color: #ccc;
transition-duration: 100ms;
padding-left: .3em;
padding-right: .3em;
&:hover {
color: white;
text-shadow: black 0px 2px 2px;
}
&:selected {
border-bottom-width: 2px;
border-color: lighten($selected_bg_color,5%);
color: white;
text-shadow: black 0px 2px 2px;
}
}
StBoxLayout#EvalBox { padding: 4px; spacing: 4px; }
StBoxLayout#ResultsArea { spacing: 4px; }
}
.lg-dialog {
StEntry {
selection-background-color: #bbbbbb;
selected-color: #333333;
}
.shell-link {
color: #999999;
&:hover { color: #dddddd; }
}
}
.lg-completions-text {
font-size: .9em;
font-style: italic;
}
.lg-obj-inspector-title {
spacing: 4px;
}
.lg-obj-inspector-button {
border: 1px solid gray;
padding: 4px;
border-radius: 4px;
&:hover { border: 1px solid #ffffff; }
}
#lookingGlassExtensions { padding: 4px; }
.lg-extensions-list {
padding: 4px;
spacing: 6px;
}
.lg-extension {
border: 1px solid #6f6f6f;
border-radius: 4px;
padding: 4px;
}
.lg-extension-name {
font-weight: bold;
}
.lg-extension-meta {
spacing: 6px;
}
#LookingGlassPropertyInspector {
background: rgba(0, 0, 0, 0.8);
border: 2px solid grey;
border-radius: 4px;
padding: 6px;
}

219
data/theme/_drawing.scss Normal file
View File

@@ -0,0 +1,219 @@
// Drawing mixins
// generic drawing of more complex things
@function _widget_edge($c:$borders_edge) {
// outer highlight "used" on most widgets
@return 0 1px $c;
}
// provide font size in rem, with px fallback
@mixin fontsize($size: 24, $base: 16) {
font-size: round($size) + pt;
//font-size: ($size / $base) * 1rem;
}
@mixin _shadows($shadow1, $shadow2:none, $shadow3:none, $shadow4:none) {
//
// Helper function to stack up to 4 box-shadows;
//
@if $shadow4!=none { box-shadow: $shadow1, $shadow2, $shadow3, $shadow4; }
@else if $shadow3!=none { box-shadow: $shadow1, $shadow2, $shadow3; }
@else if $shadow2!=none { box-shadow: $shadow1, $shadow2; }
@else { box-shadow: $shadow1; }
}
// entries
@mixin entry($t, $fc:$selected_bg_color, $edge: $borders_edge) {
//
// Entries drawing function
//
// $t: entry type
// $fc: focus color
// $edge: set to none to not draw the bottom edge or specify a color to not
// use the default one
//
// possible $t values:
// normal, focus, insensitive
//
$_inner_shadows: inset 0 2px 4px transparentize(black, 0.6);
@if $t==normal {
background-color: $base_color;
border-color: $borders_color;
@include _shadows($_inner_shadows);
}
@if $t==focus {
@include _shadows($_inner_shadows);
border-color: if($fc==$selected_bg_color,
$selected_borders_color,
darken($fc,35%));
}
@if $t==hover { }
@if $t==insensitive {
color: $insensitive_fg_color;
border-color: $insensitive_bg_color;
box-shadow: none;
}
}
// buttons
@function _border_color ($c) { @return darken($c,25%); } // colored buttons want
// the border form the
// base color
@function _text_shadow_color ($tc:$fg_color, $bg:$bg_color) {
//
// calculate the color of text shadows
//
// $tc is the text color
// $bg is the background color
//
$_lbg: lightness($bg)/100%;
@if lightness($tc)<50% { @return transparentize(white,1-$_lbg/($_lbg*1.3)); }
@else { @return transparentize(black,$_lbg*0.8); }
}
@function _button_hilight_color($c) {
//
// calculate the right top hilight color for buttons
//
// $c: base color;
//
@if lightness($c)>90% { @return white; }
@else if lightness($c)>80% { @return transparentize(white, 0.3); }
@else if lightness($c)>50% { @return transparentize(white, 0.5); }
@else if lightness($c)>40% { @return transparentize(white, 0.7); }
@else { @return transparentize(white, 0.9); }
}
@mixin _button_text_shadow ($tc:$fg_color, $bg:$bg_color) {
//
// helper function for the text emboss effect
//
// $tc is the optional text color, not the shadow color
//
// TODO: this functions needs a way to deal with special cases
//
$_shadow: _text_shadow_color($tc, $bg);
@if lightness($tc)<50% {
text-shadow: 0 1px $_shadow;
icon-shadow: 0 1px $_shadow;
}
@else {
text-shadow: 0 -1px $_shadow;
icon-shadow: 0 -1px $_shadow;
}
}
@mixin button($t, $c:$osd_bg_color, $tc:$fg_color, $edge: $borders_edge) {
//
// Button drawing function
//
// $t: button type,
// $c: base button color for colored* types
// $tc: optional text color for colored* types
// $edge: set to none to not draw the bottom edge or specify a color to not
// use the default one
//
// possible $t values:
// normal, hover, active, insensitive, insensitive-active,
// backdrop, backdrop-active, backdrop-insensitive, backdrop-insensitive-active,
// osd, osd-hover, osd-active, osd-insensitive, osd-backdrop, undecorated
//
$_hilight_color: _button_hilight_color($c);
$_button_edge: if($edge == none, none, _widget_edge($edge));
$_blank_edge: if($edge == none, none, _widget_edge(transparentize($edge,1)));
@if $t==normal {
//
// normal button
//
$_bg: if($c!=$osd_bg_color, transparentize($c, 0.5),
$osd_bg_color);
color: $osd_fg_color;
background-color: $_bg;
border-color: $osd_borders_color;
box-shadow: inset 0 1px lighten($osd_bg_color,10%);
text-shadow: 0 1px black;
icon-shadow: 0 1px black;
}
@if $t==focus {
//
// focused button
//
$_bg: if($c!=$osd_bg_color, transparentize($c, 0.5),
$osd_bg_color);
color: $osd_fg_color;
border-color: $selected_bg_color;
box-shadow: inset 0 1px lighten($osd_bg_color,10%);
text-shadow: 0 1px black;
icon-shadow: 0 1px black;
}
@else if $t==hover {
//
// active osd button
//
$_bg: if($c!=$osd_bg_color, transparentize($c, 0.3),
lighten($osd_bg_color,10%));
color: white;
border-color: $osd_borders_color;
background-color: $_bg;
box-shadow: inset 0 1px lighten($osd_bg_color,20%);
text-shadow: 0 1px black;
icon-shadow: 0 1px black;
}
@else if $t==active {
//
// active osd button
//
$_bg: if($c!=$bg_color, $c, $osd_borders_color);
color: white;
border-color: $osd_borders_color;
background-color: darken($_bg,5%);
box-shadow: none;
text-shadow: none;
icon-shadow: none;
}
@else if $t==insensitive {
//
// insensitive osd button
//
$_bg: transparentize(mix($insensitive_fg_color,$osd_bg_color,20%),0.3);
color: $insensitive_fg_color;
border-color: $osd_borders_color;
background-color: $_bg;
box-shadow: none;
text-shadow: none;
icon-shadow: none;
}
@else if $t==undecorated {
//
// reset
//
border-color: transparent;
background-color: transparent;
background-image: none;
@include _shadows(inset 0 1px transparentize(white,1),
$_blank_edge);
text-shadow: none;
icon-shadow: none;
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -14,7 +14,7 @@
height="22"
id="svg3199"
version="1.1"
inkscape:version="0.48.1 r9760"
inkscape:version="0.48.5 r10040"
sodipodi:docname="checkbox.svg">
<defs
id="defs3201">
@@ -132,51 +132,54 @@
xlink:href="#linearGradient10597-5"
inkscape:collect="always" />
<linearGradient
y2="-388.72955"
x2="-93.031357"
y1="-396.34738"
x1="-93.031357"
gradientTransform="matrix(1.5918367,0,0,0.85714285,-256.56122,59.685418)"
inkscape:collect="always"
xlink:href="#linearGradient5581-5-2-4-6-8-7-35-8"
id="linearGradient11811"
gradientUnits="userSpaceOnUse"
id="linearGradient14219-6"
xlink:href="#linearGradient15404-9"
inkscape:collect="always" />
gradientTransform="matrix(3.0317573,0,0,1.0053174,-102.66338,-0.82153381)"
x1="63.568954"
y1="127.16142"
x2="63.568954"
y2="152.6618" />
<linearGradient
id="linearGradient15404-9"
inkscape:collect="always">
id="linearGradient5581-5-2-4-6-8-7-35-8">
<stop
id="stop15406-6"
id="stop5583-0-92-8-0-7-6-5-1"
offset="0"
style="stop-color:#515151;stop-opacity:1" />
style="stop-color:#454c4c;stop-opacity:1;" />
<stop
id="stop15408-7"
style="stop-color:#393f3f;stop-opacity:1;"
offset="0.40000001"
id="stop5585-4-7-2-7-9-9-92-0" />
<stop
id="stop5587-6-7-2-0-3-1-21-5"
offset="1"
style="stop-color:#292929;stop-opacity:1" />
style="stop-color:#2d3232;stop-opacity:1;" />
</linearGradient>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#000000"
pagecolor="#a2a2a2"
bordercolor="#2d2d2d"
borderopacity="1"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="71.516955"
inkscape:cy="5.8710559"
inkscape:zoom="22.627417"
inkscape:cx="9.6447897"
inkscape:cy="12.591409"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1412"
inkscape:window-height="1067"
inkscape:window-x="2635"
inkscape:window-y="226"
inkscape:window-x="184"
inkscape:window-y="233"
inkscape:window-maximized="0"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:snap-nodes="false"
inkscape:snap-bbox="true"
showborder="false">
showborder="true">
<inkscape:grid
type="xygrid"
id="grid14843"
@@ -203,87 +206,56 @@
id="layer1"
transform="translate(-342.5,-521.36218)">
<g
transform="matrix(0.80230061,0,0,0.80230061,-87.624044,-453.10297)"
id="g14586-0"
style="stroke-width:2.3714385;stroke-miterlimit:4;stroke-dasharray:none">
<g
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/jimmac/SparkleShare/gnome-mockups/boxes/interactive/img/checkbox-on.png"
transform="matrix(1.9969286,0,0,1.9969286,-397.05491,877.00482)"
id="g15291-9-6"
style="stroke-width:1.18754292;stroke-miterlimit:4;stroke-dasharray:none;display:inline;enable-background:new">
<g
transform="translate(877.50354,-102.83507)"
id="g16853-4-9"
style="stroke-width:1.18754292;stroke-miterlimit:4;stroke-dasharray:none;enable-background:new">
<rect
transform="scale(1,-1)"
style="color:#000000;fill:url(#linearGradient14219-6);fill-opacity:1;fill-rule:nonzero;stroke:#3465a4;stroke-width:1.24833274;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
id="rect6506-6"
width="11.281681"
height="11.26221"
x="-409.59354"
y="-284.40115"
rx="1.0052766"
ry="1.0052764" />
</g>
</g>
<g
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/jimmac/SparkleShare/gnome-mockups/boxes/interactive/img/checkbox-on.png"
transform="translate(343.99999,987.99997)"
id="g5886-5"
style="stroke-width:2.3714385;stroke-miterlimit:4;stroke-dasharray:none;display:inline;enable-background:new" />
</g>
<g
transform="matrix(0.84337,0,0,0.84337,-110.16632,-503.56182)"
id="g14586">
<g
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/jimmac/SparkleShare/gnome-mockups/boxes/interactive/img/checkbox-on.png"
transform="matrix(1.9969286,0,0,1.9969286,-397.05491,877.00482)"
id="g15291-9"
style="display:inline;enable-background:new">
<g
transform="translate(877.50354,-102.83507)"
id="g16853-4"
style="enable-background:new" />
</g>
<g
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/jimmac/SparkleShare/gnome-mockups/boxes/interactive/img/checkbox-on.png"
transform="translate(343.99999,987.99997)"
id="g5886"
style="display:inline;enable-background:new">
<path
style="fill:none;stroke:url(#linearGradient5891-0-4);stroke-width:7.11431503;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 198.5,240 5.25,5.25 13.98616,-14.43081"
id="path5835"
inkscape:path-effect="#path-effect5837-4-6"
inkscape:original-d="m 198.5,240 5.25,5.25 13.98616,-14.43081"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<path
inkscape:connector-curvature="0"
inkscape:original-d="m 198.5,240 5.25,5.25 13.91205,-14.31964"
inkscape:path-effect="#path-effect5837-4-6"
id="path5880"
d="m 198.5,240 5.25,5.25 13.91205,-14.31964"
style="fill:none;stroke:#4787c8;stroke-width:3.55715752;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:nodetypes="ccc" />
<path
style="fill:none;stroke:#7ea7d3;stroke-width:1.18571913px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 197.45937,240.47455 c -0.17828,-0.29362 -0.20087,-0.67548 -0.0603,-0.98892 0.14055,-0.31344 0.43739,-0.54812 0.77144,-0.62817 0.33405,-0.08 0.69314,-0.01 0.99635,0.15175 0.30321,0.16144 0.55146,0.40727 0.79165,0.65284 l 3.66429,3.74643 12.87946,-12.98973 c 0.20796,-0.20974 0.42306,-0.41969 0.68548,-0.55522 0.26242,-0.13553 0.57293,-0.19052 0.85827,-0.11426 0.14267,0.0381 0.27708,0.10787 0.38874,0.20452 0.11167,0.0966 0.20021,0.22004 0.25479,0.35726 0.0546,0.13722 0.075,0.28793 0.0585,0.43468 -0.0165,0.14674 -0.07,0.28919 -0.15422,0.41052"
id="path5882"
inkscape:path-effect="#path-effect5884-4-7"
inkscape:original-d="m 197.45937,240.47455 c 0.65604,-0.56057 2.02485,-1.34847 2.49911,-0.8125 l 3.66429,3.74643 12.87946,-12.98973 c 0.6875,-0.6875 2.09152,0.7375 2.09152,0.7375"
inkscape:connector-curvature="0"
sodipodi:nodetypes="csccc" />
</g>
style="display:inline"
id="use5671"
transform="matrix(1.3594109,0,0,1.3564242,319.2059,481.99447)">
<rect
transform="matrix(0.47304779,0,0,0.4807373,-6.3607039,-29.396216)"
rx="4.4136767"
y="125.3458"
x="50.440369"
height="29.154205"
width="29.559635"
id="rect11803"
style="color:#000000;fill:url(#linearGradient11811);fill-opacity:1;stroke:#3465a4;stroke-width:1.54426003000000001;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
ry="4.4233952" />
<path
inkscape:connector-curvature="0"
id="path11809"
d="m 17.87105,33.844107 0,-0.773112 c 0,-1.031264 0.807171,-1.836142 1.811982,-1.836142 l 9.612456,0 c 1.004811,0 1.787822,0.804878 1.787822,1.836142 l 0,0.773112 c 0,-1.031264 -0.783011,-1.836142 -1.787822,-1.836142 l -9.612456,0 c -1.004811,0 -1.811982,0.804878 -1.811982,1.836142 z"
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.15;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
sodipodi:nodetypes="csssscssc" />
<path
sodipodi:nodetypes="csssscssc"
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.15;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
d="m 17.87105,41.158551 0,0.773112 c 0,1.031264 0.807171,1.836142 1.811982,1.836142 l 9.612456,0 c 1.004811,0 1.787822,-0.804878 1.787822,-1.836142 l 0,-0.773112 c 0,1.031264 -0.783011,1.836142 -1.787822,1.836142 l -9.612456,0 c -1.004811,0 -1.811982,-0.804878 -1.811982,-1.836142 z"
id="path11867"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path11869"
d="m 17.87105,41.895784 0,0.773112 c 0,1.031264 0.644622,1.836142 1.649433,1.836142 l 10.067593,0 c 1.004811,0 1.495234,-0.804878 1.495234,-1.836142 l 0,-0.773112 c 0,1.031264 -0.783011,1.836142 -1.787822,1.836142 l -9.612456,0 c -1.004811,0 -1.811982,-0.804878 -1.811982,-1.836142 z"
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.15;color:#000000;fill:#000000;fill-opacity:0.85253451;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
sodipodi:nodetypes="csssscssc" />
</g>
<rect
style="color:#000000;fill:none;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect17347"
width="21.943846"
height="21.943846"
x="342.29913"
y="521.58435" />
<path
inkscape:connector-curvature="0"
style="opacity:0.8;color:#000000;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.99999994;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 359.97505,524.8252 -7.88606,7.71465 -2.57155,-2.57155 -2.91442,-0.0427 0,2.35727 4.02875,3.98587 c 0.80342,0.80309 2.111,0.80309 2.91442,0 l 8.18609,-8.22894 0,-0.38573 c 0,-1.24128 0.19944,-1.76801 -0.82915,-2.29836 z"
id="rect5147-9-1-5-7-6-5-8-7"
sodipodi:nodetypes="ccccccccscc" />
<path
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#eeeeec;fill-opacity:1;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans-serif;-inkscape-font-specification:sans-serif"
d="m 361.65223,524.52745 -9.5602,9.36735 -2.56345,-2.56344 -2.92846,-0.0214 0.0153,2.32639 4.02203,4.02206 c 0.80341,0.80309 2.10565,0.80309 2.90906,0 l 10.95049,-11.05765 0.003,-2.1502 z"
id="path12830-4-17-0"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccc" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -14,22 +14,10 @@
height="22"
id="svg3199"
version="1.1"
inkscape:version="0.48.1 r9760"
inkscape:version="0.48.5 r10040"
sodipodi:docname="checkbox-off.svg">
<defs
id="defs3201">
<linearGradient
id="linearGradient15404"
inkscape:collect="always">
<stop
id="stop15406"
offset="0"
style="stop-color:#515151;stop-opacity:1" />
<stop
id="stop15408"
offset="1"
style="stop-color:#292929;stop-opacity:1" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
@@ -56,16 +44,6 @@
effect="spiro"
id="path-effect5884-4-7"
is_visible="true" />
<linearGradient
y2="-388.72955"
x2="-93.031357"
y1="-396.34738"
x1="-93.031357"
gradientTransform="matrix(1.5918367,0,0,0.85714285,-256.56122,59.685418)"
gradientUnits="userSpaceOnUse"
id="linearGradient14219"
xlink:href="#linearGradient15404"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
id="linearGradient10013-4-63-6">
@@ -110,30 +88,55 @@
id="linearGradient15376"
xlink:href="#linearGradient10597-5"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5581-5-2-4-6-8-7-35-8"
id="linearGradient11811"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.0317573,0,0,1.0053174,-102.66338,-0.82153381)"
x1="63.568954"
y1="127.16142"
x2="63.568954"
y2="152.6618" />
<linearGradient
id="linearGradient5581-5-2-4-6-8-7-35-8">
<stop
id="stop5583-0-92-8-0-7-6-5-1"
offset="0"
style="stop-color:#454c4c;stop-opacity:1;" />
<stop
style="stop-color:#393f3f;stop-opacity:1;"
offset="0.40000001"
id="stop5585-4-7-2-7-9-9-92-0" />
<stop
id="stop5587-6-7-2-0-3-1-21-5"
offset="1"
style="stop-color:#2d3232;stop-opacity:1;" />
</linearGradient>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#000000"
pagecolor="#a2a2a2"
bordercolor="#2d2d2d"
borderopacity="1"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="6.1225392"
inkscape:cy="3.6003241"
inkscape:zoom="5.6568542"
inkscape:cx="19.79113"
inkscape:cy="11.232334"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1412"
inkscape:window-height="1067"
inkscape:window-x="2116"
inkscape:window-y="261"
inkscape:window-x="184"
inkscape:window-y="233"
inkscape:window-maximized="0"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:snap-nodes="false"
inkscape:snap-bbox="true"
showborder="false">
showborder="true">
<inkscape:grid
type="xygrid"
id="grid14843"
@@ -160,39 +163,44 @@
id="layer1"
transform="translate(-342.5,-521.36218)">
<g
transform="matrix(0.80230061,0,0,0.80230061,-87.624044,-453.10297)"
id="g14586"
style="stroke-width:2.3714385;stroke-miterlimit:4;stroke-dasharray:none">
<g
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/jimmac/SparkleShare/gnome-mockups/boxes/interactive/img/checkbox-on.png"
transform="matrix(1.9969286,0,0,1.9969286,-397.05491,877.00482)"
id="g15291-9"
style="stroke-width:1.18754292;stroke-miterlimit:4;stroke-dasharray:none;display:inline;enable-background:new">
<g
transform="translate(877.50354,-102.83507)"
id="g16853-4"
style="stroke-width:1.18754292;stroke-miterlimit:4;stroke-dasharray:none;enable-background:new">
<rect
transform="scale(1,-1)"
style="color:#000000;fill:url(#linearGradient14219);fill-opacity:1;fill-rule:nonzero;stroke:#3465a4;stroke-width:1.24833274;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
id="rect6506-6"
width="11.281681"
height="11.26221"
x="-409.59354"
y="-284.40115"
rx="1.0052766"
ry="1.0052764" />
</g>
</g>
<g
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/jimmac/SparkleShare/gnome-mockups/boxes/interactive/img/checkbox-on.png"
transform="translate(343.99999,987.99997)"
id="g5886"
style="stroke-width:2.3714385;stroke-miterlimit:4;stroke-dasharray:none;display:inline;enable-background:new" />
style="display:inline"
id="use5671"
transform="matrix(1.3594109,0,0,1.3564242,319.2059,481.99447)">
<rect
transform="matrix(0.47304779,0,0,0.4807373,-6.3607039,-29.396216)"
rx="4.4136767"
y="125.3458"
x="50.440369"
height="29.154205"
width="29.559635"
id="rect11803"
style="color:#000000;fill:url(#linearGradient11811);fill-opacity:1;stroke:#3465a4;stroke-width:1.54426003000000001;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
ry="4.4233952" />
<path
inkscape:connector-curvature="0"
id="path11809"
d="m 17.87105,33.844107 0,-0.773112 c 0,-1.031264 0.807171,-1.836142 1.811982,-1.836142 l 9.612456,0 c 1.004811,0 1.787822,0.804878 1.787822,1.836142 l 0,0.773112 c 0,-1.031264 -0.783011,-1.836142 -1.787822,-1.836142 l -9.612456,0 c -1.004811,0 -1.811982,0.804878 -1.811982,1.836142 z"
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.15;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
sodipodi:nodetypes="csssscssc" />
<path
sodipodi:nodetypes="csssscssc"
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.15;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
d="m 17.87105,41.158551 0,0.773112 c 0,1.031264 0.807171,1.836142 1.811982,1.836142 l 9.612456,0 c 1.004811,0 1.787822,-0.804878 1.787822,-1.836142 l 0,-0.773112 c 0,1.031264 -0.783011,1.836142 -1.787822,1.836142 l -9.612456,0 c -1.004811,0 -1.811982,-0.804878 -1.811982,-1.836142 z"
id="path11867"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path11869"
d="m 17.87105,41.895784 0,0.773112 c 0,1.031264 0.644622,1.836142 1.649433,1.836142 l 10.067593,0 c 1.004811,0 1.495234,-0.804878 1.495234,-1.836142 l 0,-0.773112 c 0,1.031264 -0.783011,1.836142 -1.787822,1.836142 l -9.612456,0 c -1.004811,0 -1.811982,-0.804878 -1.811982,-1.836142 z"
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.15;color:#000000;fill:#000000;fill-opacity:0.85253451;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
sodipodi:nodetypes="csssscssc" />
</g>
<rect
style="color:#000000;fill:none;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect17347"
width="21.943846"
height="21.943846"
x="342.29913"
y="521.58435" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 8.9 KiB

View File

@@ -14,22 +14,10 @@
height="22"
id="svg3199"
version="1.1"
inkscape:version="0.48.1 r9760"
sodipodi:docname="checkbox.svg">
inkscape:version="0.48.5 r10040"
sodipodi:docname="checkbox-focused.svg">
<defs
id="defs3201">
<linearGradient
id="linearGradient15404"
inkscape:collect="always">
<stop
id="stop15406"
offset="0"
style="stop-color:#515151;stop-opacity:1" />
<stop
id="stop15408"
offset="1"
style="stop-color:#292929;stop-opacity:1" />
</linearGradient>
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
@@ -44,27 +32,6 @@
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5872-5-1"
id="linearGradient5891-0-4"
gradientUnits="userSpaceOnUse"
x1="205.84143"
y1="246.7094"
x2="206.74803"
y2="231.24142" />
<linearGradient
inkscape:collect="always"
id="linearGradient5872-5-1">
<stop
style="stop-color:#0b2e52;stop-opacity:1"
offset="0"
id="stop5874-4-4" />
<stop
style="stop-color:#1862af;stop-opacity:1"
offset="1"
id="stop5876-0-5" />
</linearGradient>
<inkscape:path-effect
effect="spiro"
id="path-effect5837-4-6"
@@ -77,16 +44,6 @@
effect="spiro"
id="path-effect5884-4-7"
is_visible="true" />
<linearGradient
y2="-388.72955"
x2="-93.031357"
y1="-396.34738"
x1="-93.031357"
gradientTransform="matrix(1.5918367,0,0,0.85714285,-256.56122,59.685418)"
gradientUnits="userSpaceOnUse"
id="linearGradient14219"
xlink:href="#linearGradient15404"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
id="linearGradient10013-4-63-6">
@@ -131,30 +88,55 @@
id="linearGradient15376"
xlink:href="#linearGradient10597-5"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5581-5-2-4-6-8-7-35-8"
id="linearGradient11811"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.0317573,0,0,1.0053174,-102.66338,-0.82153381)"
x1="63.568954"
y1="127.16142"
x2="63.568954"
y2="152.6618" />
<linearGradient
id="linearGradient5581-5-2-4-6-8-7-35-8">
<stop
id="stop5583-0-92-8-0-7-6-5-1"
offset="0"
style="stop-color:#454c4c;stop-opacity:1;" />
<stop
style="stop-color:#393f3f;stop-opacity:1;"
offset="0.40000001"
id="stop5585-4-7-2-7-9-9-92-0" />
<stop
id="stop5587-6-7-2-0-3-1-21-5"
offset="1"
style="stop-color:#2d3232;stop-opacity:1;" />
</linearGradient>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#000000"
pagecolor="#a2a2a2"
bordercolor="#2d2d2d"
borderopacity="1"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:zoom="4"
inkscape:cx="71.247925"
inkscape:cy="33.339093"
inkscape:zoom="1"
inkscape:cx="9.6447897"
inkscape:cy="12.591409"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1412"
inkscape:window-height="1067"
inkscape:window-x="2116"
inkscape:window-y="261"
inkscape:window-x="184"
inkscape:window-y="233"
inkscape:window-maximized="0"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:snap-nodes="false"
inkscape:snap-bbox="true"
showborder="false">
showborder="true">
<inkscape:grid
type="xygrid"
id="grid14843"
@@ -181,38 +163,44 @@
id="layer1"
transform="translate(-342.5,-521.36218)">
<g
transform="matrix(0.84337,0,0,0.84337,-110.16632,-503.56182)"
id="g14586">
<g
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/jimmac/SparkleShare/gnome-mockups/boxes/interactive/img/checkbox-on.png"
transform="matrix(1.9969286,0,0,1.9969286,-397.05491,877.00482)"
id="g15291-9"
style="display:inline;enable-background:new">
<g
transform="translate(877.50354,-102.83507)"
id="g16853-4"
style="enable-background:new">
<rect
transform="scale(1,-1)"
style="color:#000000;fill:url(#linearGradient14219);fill-opacity:1;fill-rule:nonzero;stroke:#868686;stroke-width:0.59377144999999998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
id="rect6506-6"
width="11.281681"
height="11.26221"
x="-409.59354"
y="-284.40115"
rx="0.95632279"
ry="0.95632273" />
</g>
</g>
<g
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/jimmac/SparkleShare/gnome-mockups/boxes/interactive/img/checkbox-on.png"
transform="translate(343.99999,987.99997)"
id="g5886"
style="display:inline;enable-background:new" />
style="display:inline"
id="use5671"
transform="matrix(1.3594109,0,0,1.3564242,319.2059,481.99447)">
<rect
transform="matrix(0.47304779,0,0,0.4807373,-6.3607039,-29.396216)"
rx="4.4136767"
y="125.3458"
x="50.440369"
height="29.154205"
width="29.559635"
id="rect11803"
style="color:#000000;fill:url(#linearGradient11811);fill-opacity:1;stroke:#1c1f1f;stroke-width:1.54426003;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
ry="4.4233952" />
<path
inkscape:connector-curvature="0"
id="path11809"
d="m 17.87105,33.844107 0,-0.773112 c 0,-1.031264 0.807171,-1.836142 1.811982,-1.836142 l 9.612456,0 c 1.004811,0 1.787822,0.804878 1.787822,1.836142 l 0,0.773112 c 0,-1.031264 -0.783011,-1.836142 -1.787822,-1.836142 l -9.612456,0 c -1.004811,0 -1.811982,0.804878 -1.811982,1.836142 z"
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.15;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
sodipodi:nodetypes="csssscssc" />
<path
sodipodi:nodetypes="csssscssc"
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.15;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
d="m 17.87105,41.158551 0,0.773112 c 0,1.031264 0.807171,1.836142 1.811982,1.836142 l 9.612456,0 c 1.004811,0 1.787822,-0.804878 1.787822,-1.836142 l 0,-0.773112 c 0,1.031264 -0.783011,1.836142 -1.787822,1.836142 l -9.612456,0 c -1.004811,0 -1.811982,-0.804878 -1.811982,-1.836142 z"
id="path11867"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path11869"
d="m 17.87105,41.895784 0,0.773112 c 0,1.031264 0.644622,1.836142 1.649433,1.836142 l 10.067593,0 c 1.004811,0 1.495234,-0.804878 1.495234,-1.836142 l 0,-0.773112 c 0,1.031264 -0.783011,1.836142 -1.787822,1.836142 l -9.612456,0 c -1.004811,0 -1.811982,-0.804878 -1.811982,-1.836142 z"
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.15;color:#000000;fill:#000000;fill-opacity:0.85253451;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
sodipodi:nodetypes="csssscssc" />
</g>
<rect
style="color:#000000;fill:none;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect17347"
width="21.943846"
height="21.943846"
x="342.29913"
y="521.58435" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 8.9 KiB

View File

@@ -14,8 +14,8 @@
height="22"
id="svg3199"
version="1.1"
inkscape:version="0.48.1 r9760"
sodipodi:docname="checkbox-focused.svg">
inkscape:version="0.48.5 r10040"
sodipodi:docname="checkbox.svg">
<defs
id="defs3201">
<linearGradient
@@ -131,30 +131,55 @@
id="linearGradient15376"
xlink:href="#linearGradient10597-5"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5581-5-2-4-6-8-7-35-8"
id="linearGradient11811"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.0317573,0,0,1.0053174,-102.66338,-0.82153381)"
x1="63.568954"
y1="127.16142"
x2="63.568954"
y2="152.6618" />
<linearGradient
id="linearGradient5581-5-2-4-6-8-7-35-8">
<stop
id="stop5583-0-92-8-0-7-6-5-1"
offset="0"
style="stop-color:#454c4c;stop-opacity:1;" />
<stop
style="stop-color:#393f3f;stop-opacity:1;"
offset="0.40000001"
id="stop5585-4-7-2-7-9-9-92-0" />
<stop
id="stop5587-6-7-2-0-3-1-21-5"
offset="1"
style="stop-color:#2d3232;stop-opacity:1;" />
</linearGradient>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#000000"
pagecolor="#a2a2a2"
bordercolor="#2d2d2d"
borderopacity="1"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="64.516955"
inkscape:cy="13.871056"
inkscape:cx="-0.17876005"
inkscape:cy="11.944326"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1412"
inkscape:window-height="1067"
inkscape:window-x="2635"
inkscape:window-y="226"
inkscape:window-maximized="0"
inkscape:window-width="2560"
inkscape:window-height="1375"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:snap-nodes="false"
inkscape:snap-bbox="true"
showborder="false">
showborder="true">
<inkscape:grid
type="xygrid"
id="grid14843"
@@ -171,7 +196,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@@ -181,63 +206,56 @@
id="layer1"
transform="translate(-342.5,-521.36218)">
<g
transform="matrix(0.84337,0,0,0.84337,-110.16632,-503.56182)"
id="g14586">
<g
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/jimmac/SparkleShare/gnome-mockups/boxes/interactive/img/checkbox-on.png"
transform="matrix(1.9969286,0,0,1.9969286,-397.05491,877.00482)"
id="g15291-9"
style="display:inline;enable-background:new">
<g
transform="translate(877.50354,-102.83507)"
id="g16853-4"
style="enable-background:new">
<rect
transform="scale(1,-1)"
style="color:#000000;fill:url(#linearGradient14219);fill-opacity:1;fill-rule:nonzero;stroke:#868686;stroke-width:0.59377144999999998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
id="rect6506-6"
width="11.281681"
height="11.26221"
x="-409.59354"
y="-284.40115"
rx="0.95632279"
ry="0.95632273" />
</g>
</g>
<g
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/jimmac/SparkleShare/gnome-mockups/boxes/interactive/img/checkbox-on.png"
transform="translate(343.99999,987.99997)"
id="g5886"
style="display:inline;enable-background:new">
<path
style="fill:none;stroke:url(#linearGradient5891-0-4);stroke-width:7.11431503;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 198.5,240 5.25,5.25 13.98616,-14.43081"
id="path5835"
inkscape:path-effect="#path-effect5837-4-6"
inkscape:original-d="m 198.5,240 5.25,5.25 13.98616,-14.43081"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccc" />
<path
inkscape:connector-curvature="0"
inkscape:original-d="m 198.5,240 5.25,5.25 13.91205,-14.31964"
inkscape:path-effect="#path-effect5837-4-6"
id="path5880"
d="m 198.5,240 5.25,5.25 13.91205,-14.31964"
style="fill:none;stroke:#4787c8;stroke-width:3.55715752;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
sodipodi:nodetypes="ccc" />
<path
style="fill:none;stroke:#7ea7d3;stroke-width:1.18571913px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 197.45937,240.47455 c -0.17828,-0.29362 -0.20087,-0.67548 -0.0603,-0.98892 0.14055,-0.31344 0.43739,-0.54812 0.77144,-0.62817 0.33405,-0.08 0.69314,-0.01 0.99635,0.15175 0.30321,0.16144 0.55146,0.40727 0.79165,0.65284 l 3.66429,3.74643 12.87946,-12.98973 c 0.20796,-0.20974 0.42306,-0.41969 0.68548,-0.55522 0.26242,-0.13553 0.57293,-0.19052 0.85827,-0.11426 0.14267,0.0381 0.27708,0.10787 0.38874,0.20452 0.11167,0.0966 0.20021,0.22004 0.25479,0.35726 0.0546,0.13722 0.075,0.28793 0.0585,0.43468 -0.0165,0.14674 -0.07,0.28919 -0.15422,0.41052"
id="path5882"
inkscape:path-effect="#path-effect5884-4-7"
inkscape:original-d="m 197.45937,240.47455 c 0.65604,-0.56057 2.02485,-1.34847 2.49911,-0.8125 l 3.66429,3.74643 12.87946,-12.98973 c 0.6875,-0.6875 2.09152,0.7375 2.09152,0.7375"
inkscape:connector-curvature="0"
sodipodi:nodetypes="csccc" />
</g>
style="display:inline"
id="use5671"
transform="matrix(1.3594109,0,0,1.3564242,319.2059,481.99447)">
<rect
transform="matrix(0.47304779,0,0,0.4807373,-6.3607039,-29.396216)"
rx="4.4136767"
y="125.3458"
x="50.440369"
height="29.154205"
width="29.559635"
id="rect11803"
style="color:#000000;fill:url(#linearGradient11811);fill-opacity:1;stroke:#1c1f1f;stroke-width:1.54426003;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
ry="4.4233952" />
<path
inkscape:connector-curvature="0"
id="path11809"
d="m 17.87105,33.844107 0,-0.773112 c 0,-1.031264 0.807171,-1.836142 1.811982,-1.836142 l 9.612456,0 c 1.004811,0 1.787822,0.804878 1.787822,1.836142 l 0,0.773112 c 0,-1.031264 -0.783011,-1.836142 -1.787822,-1.836142 l -9.612456,0 c -1.004811,0 -1.811982,0.804878 -1.811982,1.836142 z"
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.15;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
sodipodi:nodetypes="csssscssc" />
<path
sodipodi:nodetypes="csssscssc"
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.15;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
d="m 17.87105,41.158551 0,0.773112 c 0,1.031264 0.807171,1.836142 1.811982,1.836142 l 9.612456,0 c 1.004811,0 1.787822,-0.804878 1.787822,-1.836142 l 0,-0.773112 c 0,1.031264 -0.783011,1.836142 -1.787822,1.836142 l -9.612456,0 c -1.004811,0 -1.811982,-0.804878 -1.811982,-1.836142 z"
id="path11867"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path11869"
d="m 17.87105,41.895784 0,0.773112 c 0,1.031264 0.644622,1.836142 1.649433,1.836142 l 10.067593,0 c 1.004811,0 1.495234,-0.804878 1.495234,-1.836142 l 0,-0.773112 c 0,1.031264 -0.783011,1.836142 -1.787822,1.836142 l -9.612456,0 c -1.004811,0 -1.811982,-0.804878 -1.811982,-1.836142 z"
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;opacity:0.15;color:#000000;fill:#000000;fill-opacity:0.85253451;fill-rule:nonzero;stroke:none;stroke-width:1.00000012;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans"
sodipodi:nodetypes="csssscssc" />
</g>
<rect
style="color:#000000;fill:none;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect17347"
width="21.943846"
height="21.943846"
x="342.29913"
y="521.58435" />
<path
inkscape:connector-curvature="0"
style="opacity:0.8;color:#000000;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.99999994;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 359.97505,524.8252 -7.88606,7.71465 -2.57155,-2.57155 -2.91442,-0.0427 0,2.35727 4.02875,3.98587 c 0.80342,0.80309 2.111,0.80309 2.91442,0 l 8.18609,-8.22894 0,-0.38573 c 0,-1.24128 0.19944,-1.76801 -0.82915,-2.29836 z"
id="rect5147-9-1-5-7-6-5-8-7"
sodipodi:nodetypes="ccccccccscc" />
<path
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#eeeeec;fill-opacity:1;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:sans-serif;-inkscape-font-specification:sans-serif"
d="m 361.65223,524.52745 -9.5602,9.36735 -2.56345,-2.56344 -2.92846,-0.0214 0.0153,2.32639 4.02203,4.02206 c 0.80341,0.80309 2.10565,0.80309 2.90906,0 l 10.95049,-11.05765 0.003,-2.1502 z"
id="path12830-4-17-0"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccc" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -1,20 +0,0 @@
/* Copyright 2014, Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU Lesser General Public License,
* version 2.1, as published by the Free Software Foundation.
*
* This program is distributed in the hope it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
* more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
*/
@import url("resource:///org/gnome/shell/theme/gnome-shell.css");
stage {
-st-icon-style: symbolic;
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,6 @@
$variant: 'dark';
@import "_gnome-shell-old.scss"; //temporary. sadlu shell crashes when trying to build a theme from scratch
@import "_colors"; //use gtk colors
@import "_drawing";
@import "_common";

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

View File

@@ -1,74 +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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="17"
height="10"
id="svg2"
version="1.1"
inkscape:version="0.48.1 r9760"
sodipodi:docname="panel-button-border.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="44.8"
inkscape:cx="8.6594891"
inkscape:cy="5.7029946"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="1440"
inkscape:window-height="843"
inkscape:window-x="0"
inkscape:window-y="26"
inkscape:window-maximized="1"
guidetolerance="10000"
objecttolerance="10000">
<inkscape:grid
type="xygrid"
id="grid3792"
empspacing="10"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</sodipodi:namedview>
<metadata
id="metadata7">
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="opacity:0.8;fill:#ffffff;fill-opacity:1;stroke-width:0.43599999;stroke-miterlimit:4;stroke-dasharray:none"
id="rect3796"
width="7"
height="2"
x="5"
y="8" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -1,111 +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="30"
height="25"
id="svg10621"
version="1.1"
inkscape:version="0.48.1 r9760"
sodipodi:docname="panel-button-highlight-narrow.svg">
<defs
id="defs10623">
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient34508-1-3"
id="radialGradient99561-1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.72146227,0,0,0.27484277,14.205424,21.754717)"
cx="51"
cy="30"
fx="51"
fy="30"
r="42" />
<linearGradient
inkscape:collect="always"
id="linearGradient34508-1-3">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop34510-1-9" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop34512-4-5" />
</linearGradient>
<radialGradient
r="42"
fy="30"
fx="51"
cy="30"
cx="51"
gradientTransform="matrix(0.72146227,0,0,0.27484277,14.205424,21.754717)"
gradientUnits="userSpaceOnUse"
id="radialGradient10592"
xlink:href="#linearGradient34508-1-3"
inkscape:collect="always" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="1.979899"
inkscape:cx="-171.36384"
inkscape:cy="-53.255157"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1440"
inkscape:window-height="843"
inkscape:window-x="0"
inkscape:window-y="26"
inkscape:window-maximized="1" />
<metadata
id="metadata10626">
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-468.08632,-537.03477)">
<path
sodipodi:type="arc"
style="opacity:0.4625;color:#000000;fill:url(#radialGradient10592);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="path34506-3"
sodipodi:cx="51"
sodipodi:cy="30"
sodipodi:rx="42"
sodipodi:ry="16"
d="M 9,29.999999 C 9.0000011,21.163443 27.804042,14 51.000002,14 74.195961,14 93,21.163444 93,30 l -42,0 z"
sodipodi:start="3.1415927"
sodipodi:end="6.2831853"
transform="matrix(0.35714286,0,0,1.5625,464.87203,515.15977)"
inkscape:export-filename="/home/jimmac/src/cvs/gnome/gnome-shell-design/mockups/motion/textures/panel.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -1,111 +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="84"
height="25"
id="svg10621"
version="1.1"
inkscape:version="0.48.0 r9654"
sodipodi:docname="panel-button-highlight-wide.svg">
<defs
id="defs10623">
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient34508-1-3"
id="radialGradient99561-1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.72146227,0,0,0.27484277,14.205424,21.754717)"
cx="51"
cy="30"
fx="51"
fy="30"
r="42" />
<linearGradient
inkscape:collect="always"
id="linearGradient34508-1-3">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop34510-1-9" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop34512-4-5" />
</linearGradient>
<radialGradient
r="42"
fy="30"
fx="51"
cy="30"
cx="51"
gradientTransform="matrix(0.72146227,0,0,0.27484277,14.205424,21.754717)"
gradientUnits="userSpaceOnUse"
id="radialGradient10592"
xlink:href="#linearGradient34508-1-3"
inkscape:collect="always" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="1.979899"
inkscape:cx="-118.50071"
inkscape:cy="27.304508"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1440"
inkscape:window-height="843"
inkscape:window-x="0"
inkscape:window-y="26"
inkscape:window-maximized="1" />
<metadata
id="metadata10626">
<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 />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-441.08632,-537.03477)">
<path
sodipodi:type="arc"
style="opacity:0.4625;color:#000000;fill:url(#radialGradient10592);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="path34506-3"
sodipodi:cx="51"
sodipodi:cy="30"
sodipodi:rx="42"
sodipodi:ry="16"
d="M 9,29.999999 C 9.0000011,21.163443 27.804042,14 51.000002,14 74.195961,14 93,21.163444 93,30 l -42,0 z"
sodipodi:start="3.1415927"
sodipodi:end="6.2831853"
transform="matrix(1,0,0,1.5625,432.08632,515.15977)"
inkscape:export-filename="/home/jimmac/src/cvs/gnome/gnome-shell-design/mockups/motion/textures/panel.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -12,7 +12,7 @@
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg5369"
version="1.1"
inkscape:version="0.48+devel r10053 custom"
inkscape:version="0.48.5 r10040"
width="96"
height="48"
sodipodi:docname="process-working.svg"
@@ -25,12 +25,597 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs5373" />
id="defs5373">
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient8231-1-4-4-1"
id="radialGradient35326"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.229454,-1.2865389,1.2087442,2.0939897,-228.90301,-208.08725)"
cx="-0.067823187"
cy="188.51917"
fx="-0.067823187"
fy="188.51917"
r="27.330345" />
<linearGradient
id="linearGradient8231-1-4-4-1">
<stop
id="stop8233-28-5-27-1"
offset="0"
style="stop-color:#ffffff;stop-opacity:0" />
<stop
style="stop-color:#ffffff;stop-opacity:0.15428571"
offset="0.31861392"
id="stop8235-7-3-94-3" />
<stop
id="stop8237-7-8-20-2"
offset="0.54270232"
style="stop-color:#ffffff;stop-opacity:0.33714285" />
<stop
id="stop8239-2-9-1-9"
offset="1"
style="stop-color:#ffffff;stop-opacity:1" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient5767-6"
id="radialGradient35230"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1252013,-0.60470548,0.56813832,1.0568583,-107.67128,-11.948108)"
cx="0.053942412"
cy="189.15244"
fx="0.053942412"
fy="189.15244"
r="27.330345" />
<linearGradient
id="linearGradient5767-6">
<stop
id="stop5769-0"
offset="0"
style="stop-color:#bebebe;stop-opacity:0" />
<stop
style="stop-color:#ffffff;stop-opacity:0"
offset="0.31861392"
id="stop5771-1" />
<stop
id="stop5773-7"
offset="0.75051737"
style="stop-color:#ffffff;stop-opacity:0.42857143" />
<stop
id="stop5775-8"
offset="1"
style="stop-color:#ffffff;stop-opacity:1" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient8231-1-4-4-1"
id="radialGradient10255"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.229454,-1.2865389,1.2087442,2.0939897,-228.90301,-208.08725)"
cx="-0.067823187"
cy="188.51917"
fx="-0.067823187"
fy="188.51917"
r="27.330345" />
<linearGradient
id="linearGradient10257">
<stop
id="stop10259"
offset="0"
style="stop-color:#ffffff;stop-opacity:0" />
<stop
style="stop-color:#ffffff;stop-opacity:0.15428571"
offset="0.31861392"
id="stop10261" />
<stop
id="stop10263"
offset="0.54270232"
style="stop-color:#ffffff;stop-opacity:0.33714285" />
<stop
id="stop10265"
offset="1"
style="stop-color:#ffffff;stop-opacity:1" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient5767-6"
id="radialGradient10267"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1252013,-0.60470548,0.56813832,1.0568583,-107.67128,-11.948108)"
cx="0.053942412"
cy="189.15244"
fx="0.053942412"
fy="189.15244"
r="27.330345" />
<linearGradient
id="linearGradient10269">
<stop
id="stop10271"
offset="0"
style="stop-color:#bebebe;stop-opacity:0" />
<stop
style="stop-color:#ffffff;stop-opacity:0"
offset="0.31861392"
id="stop10273" />
<stop
id="stop10275"
offset="0.75051737"
style="stop-color:#ffffff;stop-opacity:0.42857143" />
<stop
id="stop10277"
offset="1"
style="stop-color:#ffffff;stop-opacity:1" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient8231-1-4-4-1"
id="radialGradient10279"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.229454,-1.2865389,1.2087442,2.0939897,-228.90301,-208.08725)"
cx="-0.067823187"
cy="188.51917"
fx="-0.067823187"
fy="188.51917"
r="27.330345" />
<linearGradient
id="linearGradient10281">
<stop
id="stop10283"
offset="0"
style="stop-color:#ffffff;stop-opacity:0" />
<stop
style="stop-color:#ffffff;stop-opacity:0.15428571"
offset="0.31861392"
id="stop10285" />
<stop
id="stop10287"
offset="0.54270232"
style="stop-color:#ffffff;stop-opacity:0.33714285" />
<stop
id="stop10289"
offset="1"
style="stop-color:#ffffff;stop-opacity:1" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient5767-6"
id="radialGradient10291"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1252013,-0.60470548,0.56813832,1.0568583,-107.67128,-11.948108)"
cx="0.053942412"
cy="189.15244"
fx="0.053942412"
fy="189.15244"
r="27.330345" />
<linearGradient
id="linearGradient10293">
<stop
id="stop10295"
offset="0"
style="stop-color:#bebebe;stop-opacity:0" />
<stop
style="stop-color:#ffffff;stop-opacity:0"
offset="0.31861392"
id="stop10297" />
<stop
id="stop10299"
offset="0.75051737"
style="stop-color:#ffffff;stop-opacity:0.42857143" />
<stop
id="stop10301"
offset="1"
style="stop-color:#ffffff;stop-opacity:1" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient8231-1-4-4-1"
id="radialGradient10303"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.229454,-1.2865389,1.2087442,2.0939897,-228.90301,-208.08725)"
cx="-0.067823187"
cy="188.51917"
fx="-0.067823187"
fy="188.51917"
r="27.330345" />
<linearGradient
id="linearGradient10305">
<stop
id="stop10307"
offset="0"
style="stop-color:#ffffff;stop-opacity:0" />
<stop
style="stop-color:#ffffff;stop-opacity:0.15428571"
offset="0.31861392"
id="stop10309" />
<stop
id="stop10311"
offset="0.54270232"
style="stop-color:#ffffff;stop-opacity:0.33714285" />
<stop
id="stop10313"
offset="1"
style="stop-color:#ffffff;stop-opacity:1" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient5767-6"
id="radialGradient10315"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1252013,-0.60470548,0.56813832,1.0568583,-107.67128,-11.948108)"
cx="0.053942412"
cy="189.15244"
fx="0.053942412"
fy="189.15244"
r="27.330345" />
<linearGradient
id="linearGradient10317">
<stop
id="stop10319"
offset="0"
style="stop-color:#bebebe;stop-opacity:0" />
<stop
style="stop-color:#ffffff;stop-opacity:0"
offset="0.31861392"
id="stop10321" />
<stop
id="stop10323"
offset="0.75051737"
style="stop-color:#ffffff;stop-opacity:0.42857143" />
<stop
id="stop10325"
offset="1"
style="stop-color:#ffffff;stop-opacity:1" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient8231-1-4-4-1"
id="radialGradient10327"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.229454,-1.2865389,1.2087442,2.0939897,-228.90301,-208.08725)"
cx="-0.067823187"
cy="188.51917"
fx="-0.067823187"
fy="188.51917"
r="27.330345" />
<linearGradient
id="linearGradient10329">
<stop
id="stop10331"
offset="0"
style="stop-color:#ffffff;stop-opacity:0" />
<stop
style="stop-color:#ffffff;stop-opacity:0.15428571"
offset="0.31861392"
id="stop10333" />
<stop
id="stop10335"
offset="0.54270232"
style="stop-color:#ffffff;stop-opacity:0.33714285" />
<stop
id="stop10337"
offset="1"
style="stop-color:#ffffff;stop-opacity:1" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient5767-6"
id="radialGradient10339"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1252013,-0.60470548,0.56813832,1.0568583,-107.67128,-11.948108)"
cx="0.053942412"
cy="189.15244"
fx="0.053942412"
fy="189.15244"
r="27.330345" />
<linearGradient
id="linearGradient10341">
<stop
id="stop10343"
offset="0"
style="stop-color:#bebebe;stop-opacity:0" />
<stop
style="stop-color:#ffffff;stop-opacity:0"
offset="0.31861392"
id="stop10345" />
<stop
id="stop10347"
offset="0.75051737"
style="stop-color:#ffffff;stop-opacity:0.42857143" />
<stop
id="stop10349"
offset="1"
style="stop-color:#ffffff;stop-opacity:1" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient8231-1-4-4-1"
id="radialGradient10351"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.229454,-1.2865389,1.2087442,2.0939897,-228.90301,-208.08725)"
cx="-0.067823187"
cy="188.51917"
fx="-0.067823187"
fy="188.51917"
r="27.330345" />
<linearGradient
id="linearGradient10353">
<stop
id="stop10355"
offset="0"
style="stop-color:#ffffff;stop-opacity:0" />
<stop
style="stop-color:#ffffff;stop-opacity:0.15428571"
offset="0.31861392"
id="stop10357" />
<stop
id="stop10359"
offset="0.54270232"
style="stop-color:#ffffff;stop-opacity:0.33714285" />
<stop
id="stop10361"
offset="1"
style="stop-color:#ffffff;stop-opacity:1" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient5767-6"
id="radialGradient10363"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1252013,-0.60470548,0.56813832,1.0568583,-107.67128,-11.948108)"
cx="0.053942412"
cy="189.15244"
fx="0.053942412"
fy="189.15244"
r="27.330345" />
<linearGradient
id="linearGradient10365">
<stop
id="stop10367"
offset="0"
style="stop-color:#bebebe;stop-opacity:0" />
<stop
style="stop-color:#ffffff;stop-opacity:0"
offset="0.31861392"
id="stop10369" />
<stop
id="stop10371"
offset="0.75051737"
style="stop-color:#ffffff;stop-opacity:0.42857143" />
<stop
id="stop10373"
offset="1"
style="stop-color:#ffffff;stop-opacity:1" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient8231-1-4-4-1"
id="radialGradient10375"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.229454,-1.2865389,1.2087442,2.0939897,-228.90301,-208.08725)"
cx="-0.067823187"
cy="188.51917"
fx="-0.067823187"
fy="188.51917"
r="27.330345" />
<linearGradient
id="linearGradient10377">
<stop
id="stop10379"
offset="0"
style="stop-color:#ffffff;stop-opacity:0" />
<stop
style="stop-color:#ffffff;stop-opacity:0.15428571"
offset="0.31861392"
id="stop10381" />
<stop
id="stop10383"
offset="0.54270232"
style="stop-color:#ffffff;stop-opacity:0.33714285" />
<stop
id="stop10385"
offset="1"
style="stop-color:#ffffff;stop-opacity:1" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient5767-6"
id="radialGradient10387"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1252013,-0.60470548,0.56813832,1.0568583,-107.67128,-11.948108)"
cx="0.053942412"
cy="189.15244"
fx="0.053942412"
fy="189.15244"
r="27.330345" />
<linearGradient
id="linearGradient10389">
<stop
id="stop10391"
offset="0"
style="stop-color:#bebebe;stop-opacity:0" />
<stop
style="stop-color:#ffffff;stop-opacity:0"
offset="0.31861392"
id="stop10393" />
<stop
id="stop10395"
offset="0.75051737"
style="stop-color:#ffffff;stop-opacity:0.42857143" />
<stop
id="stop10397"
offset="1"
style="stop-color:#ffffff;stop-opacity:1" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient8231-1-4-4-1"
id="radialGradient10399"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.229454,-1.2865389,1.2087442,2.0939897,-228.90301,-208.08725)"
cx="-0.067823187"
cy="188.51917"
fx="-0.067823187"
fy="188.51917"
r="27.330345" />
<linearGradient
id="linearGradient10401">
<stop
id="stop10403"
offset="0"
style="stop-color:#ffffff;stop-opacity:0" />
<stop
style="stop-color:#ffffff;stop-opacity:0.15428571"
offset="0.31861392"
id="stop10405" />
<stop
id="stop10407"
offset="0.54270232"
style="stop-color:#ffffff;stop-opacity:0.33714285" />
<stop
id="stop10409"
offset="1"
style="stop-color:#ffffff;stop-opacity:1" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient5767-6"
id="radialGradient10411"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1252013,-0.60470548,0.56813832,1.0568583,-107.67128,-11.948108)"
cx="0.053942412"
cy="189.15244"
fx="0.053942412"
fy="189.15244"
r="27.330345" />
<linearGradient
id="linearGradient10413">
<stop
id="stop10415"
offset="0"
style="stop-color:#bebebe;stop-opacity:0" />
<stop
style="stop-color:#ffffff;stop-opacity:0"
offset="0.31861392"
id="stop10417" />
<stop
id="stop10419"
offset="0.75051737"
style="stop-color:#ffffff;stop-opacity:0.42857143" />
<stop
id="stop10421"
offset="1"
style="stop-color:#ffffff;stop-opacity:1" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient8231-1-4-4-1"
id="radialGradient10423"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.229454,-1.2865389,1.2087442,2.0939897,-228.90301,-208.08725)"
cx="-0.067823187"
cy="188.51917"
fx="-0.067823187"
fy="188.51917"
r="27.330345" />
<linearGradient
id="linearGradient10425">
<stop
id="stop10427"
offset="0"
style="stop-color:#ffffff;stop-opacity:0" />
<stop
style="stop-color:#ffffff;stop-opacity:0.15428571"
offset="0.31861392"
id="stop10429" />
<stop
id="stop10431"
offset="0.54270232"
style="stop-color:#ffffff;stop-opacity:0.33714285" />
<stop
id="stop10433"
offset="1"
style="stop-color:#ffffff;stop-opacity:1" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient5767-6"
id="radialGradient10435"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1252013,-0.60470548,0.56813832,1.0568583,-107.67128,-11.948108)"
cx="0.053942412"
cy="189.15244"
fx="0.053942412"
fy="189.15244"
r="27.330345" />
<linearGradient
id="linearGradient10437">
<stop
id="stop10439"
offset="0"
style="stop-color:#bebebe;stop-opacity:0" />
<stop
style="stop-color:#ffffff;stop-opacity:0"
offset="0.31861392"
id="stop10441" />
<stop
id="stop10443"
offset="0.75051737"
style="stop-color:#ffffff;stop-opacity:0.42857143" />
<stop
id="stop10445"
offset="1"
style="stop-color:#ffffff;stop-opacity:1" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient8231-1-4-4-1"
id="radialGradient10709"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.229454,-1.2865389,1.2087442,2.0939897,-228.90301,-208.08725)"
cx="-0.067823187"
cy="188.51917"
fx="-0.067823187"
fy="188.51917"
r="27.330345" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient5767-6"
id="radialGradient10711"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1252013,-0.60470548,0.56813832,1.0568583,-107.67128,-11.948108)"
cx="0.053942412"
cy="189.15244"
fx="0.053942412"
fy="189.15244"
r="27.330345" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient8231-1-4-4-1"
id="radialGradient10713"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.229454,-1.2865389,1.2087442,2.0939897,-228.90301,-208.08725)"
cx="-0.067823187"
cy="188.51917"
fx="-0.067823187"
fy="188.51917"
r="27.330345" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient5767-6"
id="radialGradient10715"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.1252013,-0.60470548,0.56813832,1.0568583,-107.67128,-11.948108)"
cx="0.053942412"
cy="189.15244"
fx="0.053942412"
fy="189.15244"
r="27.330345" />
</defs>
<sodipodi:namedview
pagecolor="#808080"
bordercolor="#666666"
@@ -46,13 +631,15 @@
showgrid="true"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:zoom="16"
inkscape:cx="53.997662"
inkscape:cy="22.367695"
inkscape:window-x="1600"
inkscape:zoom="5.6568542"
inkscape:cx="40.82607"
inkscape:cy="30.594699"
inkscape:window-x="2560"
inkscape:window-y="33"
inkscape:window-maximized="0"
inkscape:current-layer="layer2">
inkscape:current-layer="layer2"
inkscape:snap-bbox="true"
inkscape:snap-nodes="false">
<inkscape:grid
type="xygrid"
id="grid11933"
@@ -128,134 +715,97 @@
id="layer2"
inkscape:label="spinner">
<g
transform="matrix(0.28240106,0,0,0.28240106,146.92015,-382.52444)"
id="g10450-5"
transform="matrix(0.43142675,0,0,0.43298814,218.13188,-592.92581)"
id="g10450-5-3"
style="display:inline">
<path
inkscape:connector-curvature="0"
style="opacity:0.6;color:#000000;fill:none;stroke:#ffffff;stroke-width:7.08212566;stroke-linecap:round;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m -477.76072,1373.3569 0,9.4717"
id="path18768"
sodipodi:nodetypes="cc"
inkscape:transform-center-y="-4.6808838" />
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/hbons/Moblin/git/carrick-ng/data/icons/network-connecting.png"
sodipodi:open="true"
sodipodi:end="4.712389"
sodipodi:start="0.23191105"
sodipodi:type="arc"
style="fill:none;stroke:url(#radialGradient10713);stroke-width:12.18051815;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
id="path10452-5"
sodipodi:cx="-25.809397"
sodipodi:cy="179.43886"
sodipodi:rx="22.98097"
sodipodi:ry="22.98097"
d="m -3.4436513,184.72075 c -2.9171108,12.35226 -15.2953817,20.00096 -27.6476417,17.08385 -12.35226,-2.91711 -20.00096,-15.29538 -17.083849,-27.64764 2.449452,-10.372 11.708437,-17.69907 22.365746,-17.69907"
transform="matrix(-0.16397381,0.61157081,-0.61162275,-0.16377992,-372.32298,1442.5061)" />
<path
inkscape:connector-curvature="0"
inkscape:transform-center-y="-3.3099227"
sodipodi:nodetypes="cc"
id="path18770"
d="m -461.0171,1380.2922 -7.23427,7.3824"
style="opacity:0.7;color:#000000;fill:none;stroke:#ffffff;stroke-width:7.08212566;stroke-linecap:round;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
inkscape:transform-center-x="-3.3098966" />
<path
inkscape:connector-curvature="0"
inkscape:transform-center-x="-4.6808962"
style="opacity:0.8;color:#000000;fill:none;stroke:#ffffff;stroke-width:7.08212566;stroke-linecap:round;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m -454.08163,1397.0359 -9.47165,0"
id="path18772"
sodipodi:nodetypes="cc"
inkscape:transform-center-y="-2.6596956e-05" />
<path
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc"
id="path18774"
d="m -461.01709,1413.7796 -6.93831,-7.0864"
style="opacity:0.9;color:#000000;fill:none;stroke:#ffffff;stroke-width:7.08212566;stroke-linecap:round;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
inkscape:transform-center-x="-3.3098966"
inkscape:transform-center-y="3.3098652" />
<path
inkscape:connector-curvature="0"
inkscape:transform-center-y="4.6808757"
style="color:#000000;fill:none;stroke:#ffffff;stroke-width:7.08212566;stroke-linecap:round;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m -477.76074,1420.715 9e-5,-9.4716"
id="path18776"
sodipodi:nodetypes="cc" />
<path
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc"
id="path18778"
d="m -494.50442,1413.7796 6.79048,-6.9384"
style="opacity:0.3;color:#000000;fill:none;stroke:#ffffff;stroke-width:7.08212566;stroke-linecap:round;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
inkscape:transform-center-y="3.3098769"
inkscape:transform-center-x="3.3098883" />
<path
inkscape:connector-curvature="0"
inkscape:transform-center-x="4.6808941"
style="opacity:0.4;color:#000000;fill:none;stroke:#ffffff;stroke-width:7.08212566;stroke-linecap:round;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m -501.43987,1397.0359 9.47174,0"
id="path18780"
sodipodi:nodetypes="cc"
inkscape:transform-center-y="-2.6596956e-05" />
<path
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc"
id="path18782"
d="m -494.5044,1380.2922 6.64243,6.9384"
style="opacity:0.5;color:#000000;fill:none;stroke:#ffffff;stroke-width:7.08212566;stroke-linecap:round;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
inkscape:transform-center-x="3.3098902"
inkscape:transform-center-y="-3.3099302" />
transform="matrix(-0.63300818,0.01438356,-0.01458424,-0.63300359,-491.4014,1510.996)"
d="m -3.4436513,184.72075 c -2.9171108,12.35226 -15.2953817,20.00096 -27.6476417,17.08385 -12.35226,-2.91711 -20.00096,-15.29538 -17.083849,-27.64764 2.449452,-10.372 11.708437,-17.69907 22.365746,-17.69907"
sodipodi:ry="22.98097"
sodipodi:rx="22.98097"
sodipodi:cy="179.43886"
sodipodi:cx="-25.809397"
id="path10454-7"
style="fill:none;stroke:url(#radialGradient10715);stroke-width:12.18051815;stroke-linecap:butt;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
sodipodi:type="arc"
sodipodi:start="0.23191105"
sodipodi:end="4.712389"
sodipodi:open="true"
inkscape:export-filename="/home/hbons/Moblin/git/carrick-ng/data/icons/network-connecting.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
</g>
<use
style="display:inline"
x="0"
y="0"
xlink:href="#g10450-5"
id="use4981"
transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,36,-4.9705636)"
width="400"
height="400" />
xlink:href="#g10450-5-3"
id="use13294"
transform="matrix(0.70710678,0.70710679,-0.70710679,0.70710678,35.986458,-4.9737924)"
width="96"
height="48" />
<use
style="display:inline"
x="0"
y="0"
xlink:href="#use4981"
id="use4983"
transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,43.032478,-21.909695)"
width="400"
height="400" />
xlink:href="#use13294"
id="use13314"
transform="matrix(0.70710678,0.70710679,-0.70710679,0.70710678,43.036943,-21.933639)"
width="96"
height="48" />
<use
style="display:inline"
x="0"
y="0"
xlink:href="#use4983"
id="use4985"
transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,50.081986,-38.904617)"
width="400"
height="400" />
xlink:href="#use13314"
id="use13334"
transform="matrix(0.70710678,0.70710679,-0.70710679,0.70710678,50.085328,-38.904987)"
width="96"
height="48" />
<use
style="display:inline"
x="0"
y="0"
xlink:href="#use4985"
id="use4987"
transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,-38.919996,-31.872139)"
width="400"
height="400" />
xlink:href="#use13334"
id="use13354"
transform="matrix(0.70710678,0.70710679,-0.70710679,0.70710678,-38.894841,-31.888724)"
width="96"
height="48" />
<use
style="display:inline"
x="0"
y="0"
xlink:href="#use4987"
id="use4989"
transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,52.986628,2.0890543)"
width="400"
height="400" />
xlink:href="#use13354"
id="use13374"
transform="matrix(0.70710678,0.70710679,-0.70710679,0.70710678,52.971072,2.0670843)"
width="96"
height="48" />
<use
style="display:inline"
x="0"
y="0"
xlink:href="#use4989"
id="use4991"
transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,60.013026,-14.912936)"
width="400"
height="400" />
xlink:href="#use13374"
id="use13394"
transform="matrix(0.70710678,0.70710679,-0.70710679,0.70710678,60.017834,-14.929741)"
width="96"
height="48" />
<use
style="display:inline"
x="0"
y="0"
xlink:href="#use4991"
id="use4993"
transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,67.022396,-31.859127)"
width="400"
height="400" />
xlink:href="#use13394"
id="use13414"
transform="matrix(0.86602541,0.50000001,-0.50000001,0.86602541,50.044124,-25.16226)"
width="96"
height="48" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -7,51 +7,127 @@
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="65"
height="22"
id="svg3273"
id="svg2857"
version="1.1"
inkscape:version="0.47 r22583"
sodipodi:docname="New document 14">
inkscape:version="0.48.5 r10040"
sodipodi:docname="toggle-off-us.svg">
<defs
id="defs3275">
id="defs2859">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective3281" />
id="perspective2865" />
<inkscape:perspective
id="perspective3261"
id="perspective2843"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient76469-7-7-4"
id="linearGradient38024"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0215462,0,0,1.0322581,717.22867,428.68472)"
x1="6"
y1="102.95528"
x2="6"
y2="84.505203" />
<linearGradient
inkscape:collect="always"
id="linearGradient76469-7-7-4">
<stop
style="stop-color:#2e3232;stop-opacity:1"
offset="0"
id="stop76471-7-1-5" />
<stop
style="stop-color:#3e4545;stop-opacity:1"
offset="1"
id="stop76473-9-0-0" />
</linearGradient>
<inkscape:path-effect
effect="spiro"
id="path-effect77541-4"
is_visible="true" />
<inkscape:path-effect
effect="spiro"
id="path-effect77541-4-0"
is_visible="true" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient37802-8"
id="linearGradient12311-3-1-0-5-4"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.5918367,0,0,0.85714285,-256.56122,59.071426)"
x1="610.13782"
y1="501.43866"
x2="610.13782"
y2="492.52756" />
<linearGradient
id="linearGradient37802-8"
inkscape:collect="always">
<stop
id="stop37804-1"
offset="0"
style="stop-color:#2c2c2c;stop-opacity:1" />
<stop
id="stop37806-8"
offset="1"
style="stop-color:#16191a;stop-opacity:1" />
</linearGradient>
<linearGradient
y2="492.52756"
x2="610.13782"
y1="501.43866"
x1="610.13782"
gradientTransform="matrix(1.5918367,0,0,0.85714285,-900.56122,-423.92857)"
gradientUnits="userSpaceOnUse"
id="linearGradient13602"
xlink:href="#linearGradient37802-8"
inkscape:collect="always" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:zoom="0.35"
inkscape:cx="32.000004"
inkscape:cy="10.999997"
inkscape:zoom="1"
inkscape:cx="-5.0602834"
inkscape:cy="16.473273"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:current-layer="g37994"
showgrid="false"
inkscape:window-width="609"
inkscape:window-height="501"
inkscape:window-width="2560"
inkscape:window-height="1375"
inkscape:window-x="0"
inkscape:window-y="26"
inkscape:window-maximized="0" />
inkscape:window-y="27"
inkscape:window-maximized="1"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:snap-nodes="false"
inkscape:snap-bbox="true"
showborder="false">
<inkscape:grid
type="xygrid"
id="grid12954"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</sodipodi:namedview>
<metadata
id="metadata3278">
id="metadata2862">
<rdf:RDF>
<cc:Work
rdf:about="">
@@ -66,61 +142,68 @@
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-343,-521.36218)">
transform="translate(-444.64286,-781.36218)">
<g
id="g17454"
transform="translate(-453,448.36218)"
style="display:inline">
<rect
transform="scale(-1,1)"
ry="4"
rx="4"
y="74.5"
x="-859.5"
height="19"
width="63.000004"
id="rect17456"
style="color:#000000;fill:none;stroke:#2e3436;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect
transform="scale(-1,1)"
ry="4"
rx="4"
y="74"
x="-828"
height="20"
width="31"
id="rect17458"
style="fill:#000000;fill-opacity:1;stroke:#5f5f5f;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline" />
transform="matrix(0.6526046,0,0,0.80554422,99.592644,-636.32172)"
id="g37994">
<g
transform="matrix(-1,0,0,1,1619.1239,-33.986291)"
id="g17460"
style="display:inline">
<path
style="fill:none;stroke:#5f5f5f;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
d="m 803.6322,115.48629 0,4.29495"
id="path17462"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#5f5f5f;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;display:inline"
d="m 806.62805,115.48629 0,4.29495"
id="path17464"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#5f5f5f;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;display:inline"
d="m 809.6239,115.48629 0,4.29495"
id="path17466"
inkscape:connector-curvature="0" />
id="g37996"
transform="translate(-115,1277)">
<rect
style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1.37920964000000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;opacity:0.19591837"
id="rect13475"
width="98"
height="25"
x="644.5"
y="484.61118"
rx="4.7429576"
ry="3.8424656" />
<rect
ry="3.8424656"
rx="4.7429576"
y="483.5"
x="644.5"
height="25"
width="98"
id="rect38000"
style="color:#000000;fill:url(#linearGradient12311-3-1-0-5-4);fill-opacity:1;fill-rule:nonzero;stroke:#16191a;stroke-width:1.37920942;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new" />
</g>
<g
transform="translate(-49.946213,-1.890275)"
id="g38002">
<g
transform="translate(-115,1247)"
style="display:inline"
id="g38004">
<rect
ry="3.7972314"
rx="4.6871223"
y="515.5"
x="694.53046"
height="25"
width="45.969578"
id="rect38006"
style="color:#000000;fill:url(#linearGradient38024);fill-opacity:1;fill-rule:nonzero;stroke:#1f2020;stroke-width:1.37920964;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
sodipodi:nodetypes="cc"
style="opacity:0.1;color:#000000;fill:none;stroke:#ffffff;stroke-width:1.37920964px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 699.09675,516.7365 36.86904,0"
id="path38016"
inkscape:path-effect="#path-effect77541-4"
inkscape:original-d="m 699.09675,516.7365 36.86904,0"
inkscape:connector-curvature="0" />
</g>
</g>
<path
sodipodi:type="arc"
style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1.96875012;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="path18722"
sodipodi:cx="47.6875"
sodipodi:cy="11.5625"
sodipodi:rx="3.9375"
sodipodi:ry="3.9375"
d="m 51.625,11.5625 c 0,2.174621 -1.762879,3.9375 -3.9375,3.9375 -2.174621,0 -3.9375,-1.762879 -3.9375,-3.9375 0,-2.1746212 1.762879,-3.9375 3.9375,-3.9375 2.174621,0 3.9375,1.7628788 3.9375,3.9375 z"
transform="matrix(1.0158729,0,0,1.0158729,795.55556,72.25399)" />
style="color:#000000;fill:none;stroke:#ffffff;stroke-width:2.15627193;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
id="path13479"
sodipodi:cx="16.4375"
sodipodi:cy="10.8125"
sodipodi:rx="4.3125"
sodipodi:ry="4.3125"
d="m 20.75,10.8125 a 4.3125,4.3125 0 1 1 -8.625,0 4.3125,4.3125 0 1 1 8.625,0 z"
transform="matrix(1.4212691,0,0,1.1514287,577.38488,1761.1138)" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

View File

@@ -7,51 +7,171 @@
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="65"
height="22"
id="svg3012"
id="svg2857"
version="1.1"
inkscape:version="0.47 r22583"
sodipodi:docname="New document 6">
inkscape:version="0.48.5 r10040"
sodipodi:docname="toggle-on-intl.svg">
<defs
id="defs3014">
id="defs2859">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective3020" />
id="perspective2865" />
<inkscape:perspective
id="perspective2997"
id="perspective2843"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient76469-7-7-4"
id="linearGradient38024"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0215462,0,0,1.0322581,717.22867,428.68472)"
x1="6"
y1="102.95528"
x2="6"
y2="84.505203" />
<linearGradient
inkscape:collect="always"
id="linearGradient76469-7-7-4">
<stop
style="stop-color:#2e3232;stop-opacity:1"
offset="0"
id="stop76471-7-1-5" />
<stop
style="stop-color:#3e4545;stop-opacity:1"
offset="1"
id="stop76473-9-0-0" />
</linearGradient>
<inkscape:path-effect
effect="spiro"
id="path-effect77541-4"
is_visible="true" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient37802"
id="linearGradient12311-3-1-0-5"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.5918367,0,0,0.85714285,-256.56122,59.071426)"
x1="610.13782"
y1="501.43866"
x2="610.13782"
y2="492.52756" />
<linearGradient
id="linearGradient37802"
inkscape:collect="always">
<stop
id="stop37804"
offset="0"
style="stop-color:#2c2c2c;stop-opacity:1" />
<stop
id="stop37806"
offset="1"
style="stop-color:#16191a;stop-opacity:1" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient76469-7-7-4-3"
id="linearGradient77680"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.0322581,717.71949,428.68472)"
x1="6"
y1="102.95528"
x2="6"
y2="84.505203" />
<linearGradient
inkscape:collect="always"
id="linearGradient76469-7-7-4-3">
<stop
style="stop-color:#2e3232;stop-opacity:1"
offset="0"
id="stop76471-7-1-5-7" />
<stop
style="stop-color:#3e4545;stop-opacity:1"
offset="1"
id="stop76473-9-0-0-9" />
</linearGradient>
<inkscape:path-effect
effect="spiro"
id="path-effect77541-4-0"
is_visible="true" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient37802-8"
id="linearGradient12311-3-1-0-5-4"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.5918367,0,0,0.85714285,-256.56122,59.071426)"
x1="610.13782"
y1="501.43866"
x2="610.13782"
y2="492.52756" />
<linearGradient
id="linearGradient37802-8"
inkscape:collect="always">
<stop
id="stop37804-1"
offset="0"
style="stop-color:#2c2c2c;stop-opacity:1" />
<stop
id="stop37806-8"
offset="1"
style="stop-color:#16191a;stop-opacity:1" />
</linearGradient>
<linearGradient
y2="492.52756"
x2="610.13782"
y1="501.43866"
x1="610.13782"
gradientTransform="matrix(1.5918367,0,0,0.85714285,-900.56122,-423.92857)"
gradientUnits="userSpaceOnUse"
id="linearGradient13602"
xlink:href="#linearGradient37802-8"
inkscape:collect="always" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:zoom="0.35"
inkscape:cx="32.000004"
inkscape:cy="10.999997"
inkscape:zoom="1"
inkscape:cx="16.760995"
inkscape:cy="21.955673"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:current-layer="g37994"
showgrid="false"
inkscape:window-width="609"
inkscape:window-height="501"
inkscape:window-width="2560"
inkscape:window-height="1375"
inkscape:window-x="0"
inkscape:window-y="26"
inkscape:window-maximized="0" />
inkscape:window-y="27"
inkscape:window-maximized="1"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:snap-nodes="false"
inkscape:snap-bbox="true"
showborder="false">
<inkscape:grid
type="xygrid"
id="grid12954"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</sodipodi:namedview>
<metadata
id="metadata3017">
id="metadata2862">
<rdf:RDF>
<cc:Work
rdf:about="">
@@ -66,73 +186,70 @@
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-343,-521.36218)">
transform="translate(-444.64286,-781.36218)">
<g
id="g17454"
transform="translate(-453,448.36218)"
style="display:inline">
<rect
transform="scale(-1,1)"
ry="4"
rx="4"
y="74.5"
x="-859.5"
height="19"
width="63.000004"
id="rect17456"
style="color:#000000;fill:none;stroke:#2e3436;stroke-width:0.99999994;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<rect
transform="scale(-1,1)"
ry="4"
rx="4"
y="74"
x="-828"
height="20"
width="31"
id="rect17458"
style="fill:#000000;fill-opacity:1;stroke:#5f5f5f;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline" />
transform="matrix(0.6526046,0,0,0.80554422,99.592644,-636.32172)"
id="g37994">
<g
transform="matrix(-1,0,0,1,1619.1239,-33.986291)"
id="g17460"
style="display:inline">
<path
style="fill:none;stroke:#5f5f5f;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
d="m 803.6322,115.48629 0,4.29495"
id="path17462"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#5f5f5f;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;display:inline"
d="m 806.62805,115.48629 0,4.29495"
id="path17464"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#5f5f5f;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;display:inline"
d="m 809.6239,115.48629 0,4.29495"
id="path17466"
inkscape:connector-curvature="0" />
id="g37996"
transform="translate(-115,1277)">
<rect
style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1.37920964000000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;opacity:0.19591837"
id="rect13475"
width="98"
height="25"
x="644.5"
y="484.61118"
rx="4.7429576"
ry="3.8424656" />
<rect
ry="3.8424656"
rx="4.7429576"
y="483.5"
x="644.5"
height="25"
width="98"
id="rect38000"
style="color:#000000;fill:url(#linearGradient12311-3-1-0-5-4);fill-opacity:1;fill-rule:nonzero;stroke:#16191a;stroke-width:1.37920942;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new" />
</g>
<g
style="font-size:8.95877075px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
id="text17468"
transform="translate(0.34375,0)">
<path
d="m 837.28518,80.750726 c 0.63282,6e-6 1.19566,0.123947 1.68852,0.371824 0.49284,0.247888 0.8807,0.609505 1.16359,1.084851 0.28287,0.472439 0.42431,1.022155 0.42431,1.649149 0,0.635748 -0.13853,1.200045 -0.41556,1.692892 -0.27706,0.489934 -0.66638,0.870507 -1.16797,1.141719 -0.5016,0.271213 -1.07756,0.406819 -1.72789,0.406819 -0.42869,0 -0.83551,-0.06562 -1.22045,-0.196848 -0.38495,-0.134148 -0.73053,-0.32808 -1.03674,-0.581795 -0.30329,-0.256631 -0.54534,-0.589085 -0.72615,-0.997363 -0.17789,-0.408276 -0.26684,-0.869045 -0.26683,-1.382311 -10e-6,-0.638658 0.13997,-1.200039 0.41994,-1.684144 0.27996,-0.487011 0.66782,-0.858835 1.16359,-1.115472 0.49576,-0.259541 1.06297,-0.389315 1.70164,-0.389321 m 0.57305,1.089225 c -0.20123,-0.05249 -0.40683,-0.07873 -0.61679,-0.07874 -0.20998,5e-6 -0.41412,0.02625 -0.61242,0.07874 -0.19831,0.04958 -0.38933,0.129779 -0.57305,0.240592 -0.18081,0.107907 -0.33974,0.242055 -0.47681,0.402445 -0.13706,0.160399 -0.24642,0.358705 -0.32808,0.594918 -0.0816,0.233306 -0.12248,0.491395 -0.12248,0.774269 0,0.67366 0.20851,1.214627 0.62554,1.622903 0.41702,0.408278 0.93758,0.612416 1.56166,0.612416 0.25954,0 0.51034,-0.04229 0.7524,-0.126858 0.24496,-0.08457 0.47097,-0.20997 0.67803,-0.376198 0.20705,-0.166226 0.37328,-0.392236 0.49868,-0.678032 0.12539,-0.285792 0.18809,-0.610956 0.1881,-0.975492 -10e-6,-0.297455 -0.0437,-0.568668 -0.13123,-0.813638 -0.0875,-0.247878 -0.20415,-0.453475 -0.34995,-0.61679 -0.14291,-0.163307 -0.31059,-0.301829 -0.50306,-0.415568 -0.18956,-0.11373 -0.38641,-0.195385 -0.59054,-0.244967"
style="line-height:125%;fill:#ffffff;fill-opacity:1;marker:none;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
id="path18599"
inkscape:connector-curvature="0" />
<path
d="m 843.5362,81.831203 0,1.17917 2.94834,0 0,1.014861 -2.94834,0 0,3.00713 -1.10673,0 0,-6.216022 4.31754,0 0,1.014861 -3.21081,0"
style="line-height:125%;fill:#ffffff;fill-opacity:1;marker:none;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
id="path18601"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccc" />
<path
d="m 849.71285,81.831203 0,1.17917 2.94834,0 0,1.014861 -2.94834,0 0,3.00713 -1.10672,0 0,-6.216022 4.31753,0 0,1.014861 -3.21081,0"
style="line-height:125%;fill:#ffffff;fill-opacity:1;marker:none;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
id="path18603"
inkscape:connector-curvature="0"
sodipodi:nodetypes="ccccccccccc" />
transform="translate(-49.946213,-1.890275)"
id="g38002">
<g
transform="translate(-115,1247)"
style="display:inline"
id="g38004">
<rect
ry="3.7972314"
rx="4.6871223"
y="515.5"
x="694.53046"
height="25"
width="45.969578"
id="rect38006"
style="color:#000000;fill:url(#linearGradient38024);fill-opacity:1;fill-rule:nonzero;stroke:#1f2020;stroke-width:1.37920964;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
sodipodi:nodetypes="cc"
style="opacity:0.1;color:#000000;fill:none;stroke:#ffffff;stroke-width:1.37920964px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 699.09675,516.7365 36.86904,0"
id="path38016"
inkscape:path-effect="#path-effect77541-4"
inkscape:original-d="m 699.09675,516.7365 36.86904,0"
inkscape:connector-curvature="0" />
</g>
</g>
<text
xml:space="preserve"
style="font-size:13.79166794px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
x="520.29974"
y="1997.0011"
id="text75614"
sodipodi:linespacing="125%"
transform="scale(1.1236771,0.88993537)"><tspan
sodipodi:role="line"
id="tspan75616"
x="520.29974"
y="1997.0011">OFF</tspan></text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

View File

@@ -7,51 +7,113 @@
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="65"
height="22"
id="svg3199"
id="svg2857"
version="1.1"
inkscape:version="0.48.1 r9760"
inkscape:version="0.48.5 r10040"
sodipodi:docname="toggle-on-intl.svg">
<defs
id="defs3201">
id="defs2859">
<inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 526.18109 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="744.09448 : 526.18109 : 1"
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
id="perspective3207" />
id="perspective2865" />
<inkscape:perspective
id="perspective3187"
id="perspective2843"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient77461"
id="linearGradient77551"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.3066667,0,0,1,-841.64667,-483)"
x1="1164.7644"
y1="962.93695"
x2="1164.7644"
y2="970.51404" />
<linearGradient
id="linearGradient77461"
inkscape:collect="always">
<stop
id="stop77463"
offset="0"
style="stop-color:#182f4c;stop-opacity:1" />
<stop
id="stop77465"
offset="1"
style="stop-color:#204a87;stop-opacity:1" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient76469-7-7-4"
id="linearGradient38024"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0215462,0,0,1.0322581,717.22867,428.68472)"
x1="6"
y1="102.95528"
x2="6"
y2="84.505203" />
<linearGradient
inkscape:collect="always"
id="linearGradient76469-7-7-4">
<stop
style="stop-color:#2e3232;stop-opacity:1"
offset="0"
id="stop76471-7-1-5" />
<stop
style="stop-color:#3e4545;stop-opacity:1"
offset="1"
id="stop76473-9-0-0" />
</linearGradient>
<inkscape:path-effect
effect="spiro"
id="path-effect77541-4"
is_visible="true" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="49.147112"
inkscape:cy="17.532036"
inkscape:zoom="32"
inkscape:cx="17.255148"
inkscape:cy="8.9252639"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1412"
inkscape:window-height="1067"
inkscape:current-layer="g37994"
showgrid="true"
inkscape:window-width="2560"
inkscape:window-height="1375"
inkscape:window-x="0"
inkscape:window-y="26"
inkscape:window-maximized="0" />
inkscape:window-y="27"
inkscape:window-maximized="1"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:snap-nodes="false"
inkscape:snap-bbox="true"
showborder="false">
<inkscape:grid
type="xygrid"
id="grid12954"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</sodipodi:namedview>
<metadata
id="metadata3204">
id="metadata2862">
<rdf:RDF>
<cc:Work
rdf:about="">
@@ -66,57 +128,65 @@
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-342.5,-521.36218)">
transform="translate(-444.64286,-781.36218)">
<g
style="display:inline"
transform="translate(-453.5,448.36218)"
id="g16453">
<rect
style="color:#000000;fill:#4a90d9;fill-opacity:1;fill-rule:nonzero;stroke:#3465a4;stroke-width:0.99999994000000003;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect16256-9-4"
width="63.000004"
height="19"
x="-859.5"
y="74.5"
rx="4"
ry="4"
transform="scale(-1,1)" />
<rect
style="fill:#000000;fill-opacity:1;stroke:#5f5f5f;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
id="rect16258-5-4"
width="31"
height="20"
x="-860"
y="74"
rx="4"
ry="4"
transform="scale(-1,1)" />
transform="matrix(0.6526046,0,0,0.80554422,99.592644,-636.32172)"
id="g37994">
<g
style="display:inline"
id="g16298-3-6"
transform="matrix(-1,0,0,1,1651.1322,-33.986291)">
<path
inkscape:connector-curvature="0"
id="path16265-3-5"
d="m 803.6322,115.48629 0,4.29495"
style="fill:none;stroke:#5f5f5f;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path16265-0-2-0"
d="m 806.62805,115.48629 0,4.29495"
style="fill:none;stroke:#5f5f5f;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
<path
inkscape:connector-curvature="0"
id="path16265-8-7-1"
d="m 809.6239,115.48629 0,4.29495"
style="fill:none;stroke:#5f5f5f;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
id="g37996"
transform="translate(-115,1277)">
<rect
style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1.37920964000000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;opacity:0.19591837"
id="rect13475"
width="98"
height="25"
x="644.5"
y="484.61118"
rx="4.7429576"
ry="3.8424656" />
<rect
ry="3.8424656"
rx="4.7429576"
y="483.5"
x="644.5"
height="25"
width="98"
id="rect38000"
style="color:#000000;fill:url(#linearGradient77551);fill-opacity:1;fill-rule:nonzero;stroke:#182f4c;stroke-width:1.37920964;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
</g>
<path
style="color:#000000;fill:#eeeeec;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 16,27.9375 0,10.125"
id="path19232"
inkscape:connector-curvature="0"
transform="translate(796,51.00002)" />
<g
transform="translate(2.0625,-2)"
id="g38002">
<g
transform="translate(-115,1247)"
style="display:inline"
id="g38004">
<rect
ry="3.7972314"
rx="4.6871223"
y="515.5"
x="694.53046"
height="25"
width="45.969578"
id="rect38006"
style="color:#000000;fill:url(#linearGradient38024);fill-opacity:1;fill-rule:nonzero;stroke:#1f2020;stroke-width:1.37920964;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
sodipodi:nodetypes="cc"
style="opacity:0.1;color:#000000;fill:none;stroke:#ffffff;stroke-width:1.37920964px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 699.09675,516.7365 36.86904,0"
id="path38016"
inkscape:path-effect="#path-effect77541-4"
inkscape:original-d="m 699.09675,516.7365 36.86904,0"
inkscape:connector-curvature="0" />
</g>
</g>
<rect
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
id="rect13678"
width="3.0646207"
height="12.414008"
x="554.77728"
y="1767.3566" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@@ -7,13 +7,14 @@
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="65"
height="22"
id="svg2857"
version="1.1"
inkscape:version="0.48.1 r9760"
inkscape:version="0.48.5 r10040"
sodipodi:docname="toggle-on-us.svg">
<defs
id="defs2859">
@@ -31,27 +32,86 @@
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient77461"
id="linearGradient77551"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.3066667,0,0,1,-841.64667,-483)"
x1="1164.7644"
y1="962.93695"
x2="1164.7644"
y2="970.51404" />
<linearGradient
id="linearGradient77461"
inkscape:collect="always">
<stop
id="stop77463"
offset="0"
style="stop-color:#182f4c;stop-opacity:1" />
<stop
id="stop77465"
offset="1"
style="stop-color:#204a87;stop-opacity:1" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient76469-7-7-4"
id="linearGradient38024"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0215462,0,0,1.0322581,717.22867,428.68472)"
x1="6"
y1="102.95528"
x2="6"
y2="84.505203" />
<linearGradient
inkscape:collect="always"
id="linearGradient76469-7-7-4">
<stop
style="stop-color:#2e3232;stop-opacity:1"
offset="0"
id="stop76471-7-1-5" />
<stop
style="stop-color:#3e4545;stop-opacity:1"
offset="1"
id="stop76473-9-0-0" />
</linearGradient>
<inkscape:path-effect
effect="spiro"
id="path-effect77541-4"
is_visible="true" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
pagecolor="#000000"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="19.689855"
inkscape:cy="2.0517979"
inkscape:cx="33.380898"
inkscape:cy="6.9658271"
inkscape:document-units="px"
inkscape:current-layer="layer1"
inkscape:current-layer="g37994"
showgrid="false"
inkscape:window-width="941"
inkscape:window-height="751"
inkscape:window-x="2577"
inkscape:window-y="206"
inkscape:window-maximized="0"
inkscape:window-width="2560"
inkscape:window-height="1375"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
borderlayer="true"
inkscape:showpageshadow="false" />
inkscape:showpageshadow="false"
inkscape:snap-nodes="false"
inkscape:snap-bbox="true"
showborder="false">
<inkscape:grid
type="xygrid"
id="grid12954"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</sodipodi:namedview>
<metadata
id="metadata2862">
<rdf:RDF>
@@ -70,61 +130,68 @@
id="layer1"
transform="translate(-444.64286,-781.36218)">
<g
style="display:inline"
transform="translate(-351.35714,708.36218)"
id="g16453">
<rect
style="color:#000000;fill:#4a90d9;fill-opacity:1;fill-rule:nonzero;stroke:#3465a4;stroke-width:0.99999994000000003;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
id="rect16256-9-4"
width="63.000004"
height="19"
x="-859.5"
y="74.5"
rx="4"
ry="4"
transform="scale(-1,1)" />
<rect
style="fill:#000000;fill-opacity:1;stroke:#5f5f5f;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
id="rect16258-5-4"
width="31"
height="20"
x="-860"
y="74"
rx="4"
ry="4"
transform="scale(-1,1)" />
transform="matrix(0.6526046,0,0,0.80554422,99.592644,-636.32172)"
id="g37994">
<g
style="display:inline"
id="g16298-3-6"
transform="matrix(-1,0,0,1,1651.1322,-33.986291)">
<path
inkscape:connector-curvature="0"
id="path16265-3-5"
d="m 803.6322,115.48629 0,4.29495"
style="fill:none;stroke:#5f5f5f;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path16265-0-2-0"
d="m 806.62805,115.48629 0,4.29495"
style="fill:none;stroke:#5f5f5f;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
<path
inkscape:connector-curvature="0"
id="path16265-8-7-1"
d="m 809.6239,115.48629 0,4.29495"
style="fill:none;stroke:#5f5f5f;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;display:inline" />
id="g37996"
transform="translate(-115,1277)">
<rect
style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1.37920964000000001;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;opacity:0.19591837"
id="rect13475"
width="98"
height="25"
x="644.5"
y="484.61118"
rx="4.7429576"
ry="3.8424656" />
<rect
ry="3.8424656"
rx="4.7429576"
y="483.5"
x="644.5"
height="25"
width="98"
id="rect38000"
style="color:#000000;fill:url(#linearGradient77551);fill-opacity:1;fill-rule:nonzero;stroke:#182f4c;stroke-width:1.37920964;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
</g>
<g
style="font-size:8.95877075px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
id="text42229-3-0">
<path
d="m 808.01473,80.573953 c 0.63283,6e-6 1.19567,0.123947 1.68852,0.371824 0.49284,0.247888 0.88071,0.609505 1.16359,1.084851 0.28287,0.472439 0.42431,1.022155 0.42432,1.649149 -10e-6,0.635748 -0.13853,1.200045 -0.41557,1.692892 -0.27705,0.489934 -0.66637,0.870506 -1.16796,1.141719 -0.50161,0.271212 -1.07757,0.406819 -1.72789,0.406819 -0.4287,0 -0.83552,-0.06562 -1.22046,-0.196848 -0.38495,-0.134148 -0.73053,-0.32808 -1.03673,-0.581795 -0.3033,-0.256631 -0.54535,-0.589085 -0.72615,-0.997363 -0.1779,-0.408276 -0.26684,-0.869045 -0.26684,-1.382311 0,-0.638658 0.13998,-1.200039 0.41994,-1.684144 0.27996,-0.487011 0.66782,-0.858835 1.16359,-1.115472 0.49576,-0.259541 1.06298,-0.389315 1.70164,-0.389321 m 0.57305,1.089225 c -0.20123,-0.05249 -0.40682,-0.07873 -0.61679,-0.07874 -0.20998,5e-6 -0.41411,0.02625 -0.61242,0.07874 -0.19831,0.04958 -0.38932,0.129779 -0.57304,0.240592 -0.18081,0.107907 -0.33975,0.242055 -0.47681,0.402445 -0.13707,0.160399 -0.24643,0.358705 -0.32808,0.594918 -0.0817,0.233305 -0.12249,0.491395 -0.12249,0.774269 0,0.67366 0.20851,1.214627 0.62554,1.622902 0.41703,0.408279 0.93758,0.612417 1.56166,0.612416 0.25955,10e-7 0.51035,-0.04228 0.7524,-0.126857 0.24496,-0.08457 0.47097,-0.20997 0.67803,-0.376199 0.20705,-0.166225 0.37328,-0.392236 0.49868,-0.678031 0.1254,-0.285792 0.1881,-0.610956 0.1881,-0.975492 0,-0.297455 -0.0437,-0.568668 -0.13123,-0.813638 -0.0875,-0.247878 -0.20414,-0.453475 -0.34995,-0.61679 -0.1429,-0.163307 -0.31059,-0.301829 -0.50306,-0.415568 -0.18956,-0.11373 -0.38641,-0.195385 -0.59054,-0.244967"
style="line-height:125%;fill:#ffffff;fill-opacity:1;marker:none;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
id="path18606" />
<path
d="m 813.15903,80.639569 1.21608,0 3.4689,4.776844 0,-4.776844 1.10235,0 0,6.216022 -1.22921,0 -3.45577,-4.785594 0,4.785594 -1.10235,0 0,-6.216022"
style="line-height:125%;fill:#ffffff;fill-opacity:1;marker:none;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
id="path18608" />
transform="translate(2.0625,-2)"
id="g38002">
<g
transform="translate(-115,1247)"
style="display:inline"
id="g38004">
<rect
ry="3.7972314"
rx="4.6871223"
y="515.5"
x="694.53046"
height="25"
width="45.969578"
id="rect38006"
style="color:#000000;fill:url(#linearGradient38024);fill-opacity:1;fill-rule:nonzero;stroke:#1f2020;stroke-width:1.37920964;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
sodipodi:nodetypes="cc"
style="opacity:0.1;color:#000000;fill:none;stroke:#ffffff;stroke-width:1.37920964px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m 699.09675,516.7365 36.86904,0"
id="path38016"
inkscape:path-effect="#path-effect77541-4"
inkscape:original-d="m 699.09675,516.7365 36.86904,0"
inkscape:connector-curvature="0" />
</g>
</g>
<text
transform="scale(1.1000946,0.90901274)"
sodipodi:linespacing="125%"
id="text38018"
y="1955.5205"
x="495.94223"
style="font-size:13.29953671px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
xml:space="preserve"><tspan
y="1955.5205"
x="495.94223"
id="tspan38020"
sodipodi:role="line">ON</tspan></text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

View File

@@ -261,7 +261,6 @@ const AuthPrompt = new Lang.Class({
_onVerificationComplete: function() {
this.verificationStatus = AuthPromptStatus.VERIFICATION_SUCCEEDED;
this.cancelButton.reactive = false;
},
_onReset: function() {
@@ -433,7 +432,6 @@ const AuthPrompt = new Lang.Class({
reset: function() {
let oldStatus = this.verificationStatus;
this.verificationStatus = AuthPromptStatus.NOT_VERIFYING;
this.cancelButton.reactive = true;
if (oldStatus == AuthPromptStatus.VERIFYING)
this._userVerifier.cancel();
@@ -502,9 +500,6 @@ const AuthPrompt = new Lang.Class({
},
cancel: function() {
if (this.verificationStatus == AuthPromptStatus.NOT_VERIFYING || this.verificationStatus == AuthPromptStatus.VERIFICATION_SUCCEEDED) {
return;
}
this.reset();
this.emit('cancelled');
}

View File

@@ -26,7 +26,6 @@ const Gtk = imports.gi.Gtk;
const Lang = imports.lang;
const Mainloop = imports.mainloop;
const Meta = imports.gi.Meta;
const Pango = imports.gi.Pango;
const Shell = imports.gi.Shell;
const Signals = imports.signals;
const St = imports.gi.St;
@@ -365,12 +364,12 @@ const LoginDialog = new Lang.Class({
Name: 'LoginDialog',
_init: function(parentActor) {
this.actor = new Shell.GenericContainer({ style_class: 'login-dialog',
visible: false });
this.actor.get_accessible().set_role(Atk.Role.WINDOW);
this.actor = new St.Widget({ accessible_role: Atk.Role.WINDOW,
layout_manager: new Clutter.BinLayout(),
style_class: 'login-dialog',
visible: false });
this.actor.add_constraint(new Layout.MonitorConstraint({ primary: true }));
this.actor.connect('allocate', Lang.bind(this, this._onAllocate));
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
parentActor.add_child(this.actor);
@@ -406,10 +405,17 @@ const LoginDialog = new Lang.Class({
this._userSelectionBox = new St.BoxLayout({ style_class: 'login-dialog-user-selection-box',
x_align: Clutter.ActorAlign.CENTER,
y_align: Clutter.ActorAlign.CENTER,
x_expand: true,
y_expand: true,
vertical: true,
visible: false });
this.actor.add_child(this._userSelectionBox);
this._bannerLabel = new St.Label({ style_class: 'login-dialog-banner',
text: '' });
this._userSelectionBox.add(this._bannerLabel);
this._updateBanner();
this._userList = new UserList();
this._userSelectionBox.add(this._userList.actor,
{ expand: true,
@@ -444,25 +450,11 @@ const LoginDialog = new Lang.Class({
x_align: St.Align.START,
x_fill: true });
this._bannerView = new St.ScrollView({ style_class: 'login-dialog-banner-view',
opacity: 0,
vscrollbar_policy: Gtk.PolicyType.AUTOMATIC,
hscrollbar_policy: Gtk.PolicyType.NEVER });
this.actor.add_child(this._bannerView);
let bannerBox = new St.BoxLayout({ vertical: true });
this._bannerView.add_actor(bannerBox);
this._bannerLabel = new St.Label({ style_class: 'login-dialog-banner',
text: '' });
this._bannerLabel.clutter_text.line_wrap = true;
this._bannerLabel.clutter_text.ellipsize = Pango.EllipsizeMode.NONE;
bannerBox.add_child(this._bannerLabel);
this._updateBanner();
this._logoBin = new St.Widget({ style_class: 'login-dialog-logo-bin',
x_align: Clutter.ActorAlign.CENTER,
y_align: Clutter.ActorAlign.END });
y_align: Clutter.ActorAlign.END,
x_expand: true,
y_expand: true });
this.actor.add_child(this._logoBin);
this._updateLogo();
@@ -493,180 +485,6 @@ const LoginDialog = new Lang.Class({
Lang.bind(this, this._updateDisableUserList));
},
_getBannerAllocation: function (dialogBox) {
let actorBox = new Clutter.ActorBox();
let [minWidth, minHeight, natWidth, natHeight] = this._bannerView.get_preferred_size();
let centerX = dialogBox.x1 + (dialogBox.x2 - dialogBox.x1) / 2;
actorBox.x1 = centerX - natWidth / 2;
actorBox.y1 = dialogBox.y1 + Main.layoutManager.panelBox.height;
actorBox.x2 = actorBox.x1 + natWidth;
actorBox.y2 = actorBox.y1 + natHeight;
return actorBox;
},
_getLogoBinAllocation: function (dialogBox) {
let actorBox = new Clutter.ActorBox();
let [minWidth, minHeight, natWidth, natHeight] = this._logoBin.get_preferred_size();
let centerX = dialogBox.x1 + (dialogBox.x2 - dialogBox.x1) / 2;
actorBox.x1 = centerX - natWidth / 2;
actorBox.y1 = dialogBox.y2 - natHeight;
actorBox.x2 = actorBox.x1 + natWidth;
actorBox.y2 = actorBox.y1 + natHeight;
return actorBox;
},
_getCenterActorAllocation: function (dialogBox, actor) {
let actorBox = new Clutter.ActorBox();
let [minWidth, minHeight, natWidth, natHeight] = actor.get_preferred_size();
let centerX = dialogBox.x1 + (dialogBox.x2 - dialogBox.x1) / 2;
let centerY = dialogBox.y1 + (dialogBox.y2 - dialogBox.y1) / 2;
actorBox.x1 = centerX - natWidth / 2;
actorBox.y1 = centerY - natHeight / 2;
actorBox.x2 = actorBox.x1 + natWidth;
actorBox.y2 = actorBox.y1 + natHeight;
return actorBox;
},
_onAllocate: function (actor, dialogBox, flags) {
let dialogWidth = dialogBox.x2 - dialogBox.x1;
let dialogHeight = dialogBox.y2 - dialogBox.y1;
// First find out what space the children require
let bannerAllocation = null;
let bannerHeight = 0;
let bannerWidth = 0;
if (this._bannerView.visible) {
bannerAllocation = this._getBannerAllocation(dialogBox, this._bannerView);
bannerHeight = bannerAllocation.y2 - bannerAllocation.y1;
bannerWidth = bannerAllocation.x2 - bannerAllocation.x1;
}
let authPromptAllocation = null;
let authPromptHeight = 0;
let authPromptWidth = 0;
if (this._authPrompt.actor.visible) {
authPromptAllocation = this._getCenterActorAllocation(dialogBox, this._authPrompt.actor);
authPromptHeight = authPromptAllocation.y2 - authPromptAllocation.y1;
authPromptWidth = authPromptAllocation.x2 - authPromptAllocation.x1;
}
let userSelectionAllocation = null;
let userSelectionHeight = 0;
if (this._userSelectionBox.visible) {
userSelectionAllocation = this._getCenterActorAllocation(dialogBox, this._userSelectionBox);
userSelectionHeight = userSelectionAllocation.y2 - userSelectionAllocation.y1;
}
let logoAllocation = null;
let logoHeight = 0;
if (this._logoBin.visible) {
logoAllocation = this._getLogoBinAllocation(dialogBox);
logoHeight = logoAllocation.y2 - logoAllocation.y1;
}
// Then figure out if we're overly constrained and need to
// try a different layout, or if we have what extra space we
// can hand out
if (bannerAllocation) {
let leftOverYSpace = dialogHeight - bannerHeight - authPromptHeight - logoHeight;
if (leftOverYSpace > 0) {
// First figure out how much left over space is up top
let leftOverTopSpace = leftOverYSpace / 2;
// Then, shift the banner into the middle of that extra space
let yShift = leftOverTopSpace / 2;
bannerAllocation.y1 += yShift;
bannerAllocation.y2 += yShift;
} else {
// Then figure out how much space there would be if we switched to a
// wide layout with banner on one side and authprompt on the other.
let leftOverXSpace = dialogWidth - authPromptWidth;
// In a wide view, half of the available space goes to the banner,
// and the other half goes to the margins.
let wideBannerWidth = leftOverXSpace / 2;
let wideSpacing = leftOverXSpace - wideBannerWidth;
// If we do go with a wide layout, we need there to be at least enough
// space for the banner and the auth prompt to be the same width,
// so it doesn't look unbalanced.
if (authPromptWidth > 0 && wideBannerWidth > authPromptWidth) {
let centerX = dialogBox.x1 + dialogWidth / 2;
let centerY = dialogBox.y1 + dialogHeight / 2;
// A small portion of the spacing goes down the center of the
// screen to help delimit the two columns of the wide view
let centerGap = wideSpacing / 8;
// place the banner along the left edge of the center margin
bannerAllocation.x2 = centerX - centerGap / 2;
bannerAllocation.x1 = bannerAllocation.x2 - wideBannerWidth;
// figure out how tall it would like to be and try to accomodate
// but don't let it get too close to the logo
let [wideMinHeight, wideBannerHeight] = this._bannerView.get_preferred_height(wideBannerWidth);
let maxWideHeight = dialogHeight - 3 * logoHeight;
wideBannerHeight = Math.min(maxWideHeight, wideBannerHeight);
bannerAllocation.y1 = centerY - wideBannerHeight / 2;
bannerAllocation.y2 = bannerAllocation.y1 + wideBannerHeight;
// place the auth prompt along the right edge of the center margin
authPromptAllocation.x1 = centerX + centerGap / 2;
authPromptAllocation.x2 = authPromptAllocation.x1 + authPromptWidth;
} else {
// If we aren't going to do a wide view, then we need to limit
// the height of the banner so it will present scrollbars
// First figure out how much space there is without the banner
leftOverYSpace += bannerHeight;
// Then figure out how much of that space is up top
let availableTopSpace = leftOverYSpace / 2;
// Then give all of that space to the banner
bannerAllocation.y2 = bannerAllocation.y1 + availableTopSpace;
}
}
} else if (userSelectionAllocation) {
// Grow the user list to fill the space
let leftOverYSpace = dialogHeight - userSelectionHeight - logoHeight;
if (leftOverYSpace > 0) {
let topExpansion = leftOverYSpace / 2;
let bottomExpansion = topExpansion;
userSelectionAllocation.y1 -= topExpansion;
userSelectionAllocation.y2 += bottomExpansion;
}
}
// Finally hand out the allocations
if (bannerAllocation) {
this._bannerView.allocate(bannerAllocation, flags);
}
if (authPromptAllocation)
this._authPrompt.actor.allocate(authPromptAllocation, flags);
if (userSelectionAllocation)
this._userSelectionBox.allocate(userSelectionAllocation, flags);
if (logoAllocation)
this._logoBin.allocate(logoAllocation, flags);
},
_ensureUserListLoaded: function() {
if (!this._userManager.is_loaded) {
this._userManagerLoadedId = this._userManager.connect('notify::is-loaded',
@@ -719,18 +537,6 @@ const LoginDialog = new Lang.Class({
}
},
_fadeInBannerView: function() {
Tweener.addTween(this._bannerView,
{ opacity: 255,
time: _FADE_ANIMATION_TIME,
transition: 'easeOutQuad' });
},
_hideBannerView: function() {
Tweener.removeTweens(this._bannerView);
this._bannerView.opacity = 0;
},
_updateLogoTexture: function(cache, file) {
if (this._logoFile && !this._logoFile.equal(file))
return;
@@ -798,7 +604,6 @@ const LoginDialog = new Lang.Class({
{ opacity: 255,
time: _FADE_ANIMATION_TIME,
transition: 'easeOutQuad' });
this._fadeInBannerView();
},
_showRealmLoginHint: function(realmManager, hint) {
@@ -838,8 +643,6 @@ const LoginDialog = new Lang.Class({
realmManager.release();
}));
this._updateCancelButton();
this._authPrompt.updateSensitivity(true);
this._showPrompt();
},
@@ -1055,7 +858,6 @@ const LoginDialog = new Lang.Class({
_showUserList: function() {
this._ensureUserListLoaded();
this._authPrompt.hide();
this._hideBannerView();
this._sessionMenuButton.close();
this._setUserListExpanded(true);
this._notListedButton.show();
@@ -1155,7 +957,7 @@ const LoginDialog = new Lang.Class({
this.actor.show();
this.actor.opacity = 0;
Main.pushModal(this.actor, { actionMode: Shell.ActionMode.LOGIN_SCREEN });
Main.pushModal(this.actor, { keybindingMode: Shell.KeyBindingMode.LOGIN_SCREEN });
Tweener.addTween(this.actor,
{ opacity: 255,

View File

@@ -43,7 +43,7 @@ function getCurrentExtension() {
let path = match[1];
let file = Gio.File.new_for_path(path);
// Walk up the directory tree, looking for an extension with
// Walk up the directory tree, looking for an extesion with
// the same UUID as a directory name.
while (file != null) {
let extension = extensions[file.get_basename()];

View File

@@ -1,14 +1,13 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const Lang = imports.lang;
const Mainloop = imports.mainloop;
const Signals = imports.signals;
try {
var IBus = imports.gi.IBus;
_checkIBusVersion(1, 5, 2);
if (!('new_async' in IBus.Bus))
throw "IBus version is too old";
const IBusCandidatePopup = imports.ui.ibusCandidatePopup;
} catch (e) {
var IBus = null;
@@ -17,18 +16,6 @@ try {
let _ibusManager = null;
function _checkIBusVersion(requiredMajor, requiredMinor, requiredMicro) {
if ((IBus.MAJOR_VERSION > requiredMajor) ||
(IBus.MAJOR_VERSION == requiredMajor && IBus.MINOR_VERSION > requiredMinor) ||
(IBus.MAJOR_VERSION == requiredMajor && IBus.MINOR_VERSION == requiredMinor &&
IBus.MICRO_VERSION >= requiredMicro))
return;
throw "Found IBus version %d.%d.%d but required is %d.%d.%d".
format(IBus.MAJOR_VERSION, IBus.MINOR_VERSION, IBus.MINOR_VERSION,
requiredMajor, requiredMinor, requiredMicro);
}
function getIBusManager() {
if (_ibusManager == null)
_ibusManager = new IBusManager();
@@ -41,7 +28,6 @@ const IBusManager = new Lang.Class({
// This is the longest we'll keep the keyboard frozen until an input
// source is active.
_MAX_INPUT_SOURCE_ACTIVATION_TIME: 4000, // ms
_PRELOAD_ENGINES_DELAY_TIME: 30, // sec
_init: function() {
if (!IBus)
@@ -56,7 +42,6 @@ const IBusManager = new Lang.Class({
this._ready = false;
this._registerPropertiesId = 0;
this._currentEngineName = null;
this._preloadEnginesId = 0;
this._ibus = IBus.Bus.new_async();
this._ibus.connect('connected', Lang.bind(this, this._onConnected));
@@ -121,16 +106,6 @@ const IBusManager = new Lang.Class({
object_path: IBus.PATH_PANEL });
this._candidatePopup.setPanelService(this._panelService);
this._panelService.connect('update-property', Lang.bind(this, this._updateProperty));
try {
// IBus versions older than 1.5.10 have a bug which
// causes spurious set-content-type emissions when
// switching input focus that temporarily lose purpose
// and hints defeating its intended semantics and
// confusing users. We thus don't use it in that case.
_checkIBusVersion(1, 5, 10);
this._panelService.connect('set-content-type', Lang.bind(this, this._setContentType));
} catch (e) {
}
// If an engine is already active we need to get its properties
this._ibus.get_global_engine_async(-1, null, Lang.bind(this, function(i, result) {
let engine;
@@ -180,10 +155,6 @@ const IBusManager = new Lang.Class({
this.emit('property-updated', this._currentEngineName, prop);
},
_setContentType: function(panel, purpose, hints) {
this.emit('set-content-type', purpose, hints);
},
activateProperty: function(key, state) {
this._panelService.property_activate(key, state);
},
@@ -196,10 +167,7 @@ const IBusManager = new Lang.Class({
},
setEngine: function(id, callback) {
// Send id even if id == this._currentEngineName
// because 'properties-registered' signal can be emitted
// while this._ibusSources == null on a lock screen.
if (!IBus || !this._ready) {
if (!IBus || !this._ready || id == this._currentEngineName) {
if (callback)
callback();
return;
@@ -208,27 +176,5 @@ const IBusManager = new Lang.Class({
this._ibus.set_global_engine_async(id, this._MAX_INPUT_SOURCE_ACTIVATION_TIME,
null, callback);
},
preloadEngines: function(ids) {
if (!IBus || !this._ibus || ids.length == 0)
return;
if (this._preloadEnginesId != 0) {
Mainloop.source_remove(this._preloadEnginesId);
this._preloadEnginesId = 0;
}
this._preloadEnginesId =
Mainloop.timeout_add_seconds(this._PRELOAD_ENGINES_DELAY_TIME,
Lang.bind(this, function() {
this._ibus.preload_engines_async(
ids,
-1,
null,
null);
this._preloadEnginesId = 0;
return GLib.SOURCE_REMOVE;
}));
},
});
Signals.addSignalMethods(IBusManager.prototype);

View File

@@ -81,6 +81,7 @@ const AppSwitcherPopup = new Lang.Class({
let leftPadding = this.actor.get_theme_node().get_padding(St.Side.LEFT);
let rightPadding = this.actor.get_theme_node().get_padding(St.Side.RIGHT);
let bottomPadding = this.actor.get_theme_node().get_padding(St.Side.BOTTOM);
let vPadding = this.actor.get_theme_node().get_vertical_padding();
let hPadding = leftPadding + rightPadding;
let icon = this._items[this._selectedIndex].actor;

View File

@@ -1517,13 +1517,33 @@ const AppIcon = new Lang.Class({
this.id = app.get_id();
this.name = app.get_name();
this.actor = new St.Button({ style_class: 'app-well-app',
// We need to make it track_hover so dash item can connect to
// the hover signal of the actor in _hookupLabel to call
// shouldShowTooltip when hovered.
this.actor = new St.Widget({ layout_manager: new Clutter.BinLayout(),
reactive: true,
button_mask: St.ButtonMask.ONE | St.ButtonMask.TWO,
can_focus: true,
x_fill: true,
y_fill: true });
track_hover: true });
this._dot = new St.Widget({ style_class: 'app-well-app-running-dot',
layout_manager: new Clutter.BinLayout(),
x_expand: true, y_expand: true,
x_align: Clutter.ActorAlign.CENTER,
y_align: Clutter.ActorAlign.END });
this._dot.hide();
this._button = new St.Button({ style_class: 'app-well-app',
reactive: true,
button_mask: St.ButtonMask.ONE | St.ButtonMask.TWO,
can_focus: true,
x_fill: true,
y_fill: true });
this.actor.add_actor(this._button);
this.actor.add_actor(this._dot);
this.actor._delegate = this;
this._button._delegate = this;
if (!iconParams)
iconParams = {};
@@ -1531,20 +1551,20 @@ const AppIcon = new Lang.Class({
iconParams['createIcon'] = Lang.bind(this, this._createIcon);
iconParams['setSizeManually'] = true;
this.icon = new IconGrid.BaseIcon(app.get_name(), iconParams);
this.actor.set_child(this.icon.actor);
this._button.set_child(this.icon.actor);
this.actor.label_actor = this.icon.label;
this.actor.connect('leave-event', Lang.bind(this, this._onLeaveEvent));
this.actor.connect('button-press-event', Lang.bind(this, this._onButtonPress));
this.actor.connect('touch-event', Lang.bind(this, this._onTouchEvent));
this.actor.connect('clicked', Lang.bind(this, this._onClicked));
this.actor.connect('popup-menu', Lang.bind(this, this._onKeyboardPopupMenu));
this._button.connect('leave-event', Lang.bind(this, this._onLeaveEvent));
this._button.connect('button-press-event', Lang.bind(this, this._onButtonPress));
this._button.connect('touch-event', Lang.bind(this, this._onTouchEvent));
this._button.connect('clicked', Lang.bind(this, this._onClicked));
this._button.connect('popup-menu', Lang.bind(this, this._onKeyboardPopupMenu));
this._menu = null;
this._menuManager = new PopupMenu.PopupMenuManager(this);
this._draggable = DND.makeDraggable(this.actor);
this._draggable = DND.makeDraggable(this._button);
this._draggable.connect('drag-begin', Lang.bind(this,
function () {
this._removeMenuTimeout();
@@ -1569,6 +1589,18 @@ const AppIcon = new Lang.Class({
this._updateRunningStyle();
},
// Needed for containers that want to track focus of the widget
// for i.e. scroll the container when navigating through items
getFocusReceiver: function () {
return this._button;
},
// Needed for containers that want to change style of the widget
// for i.e. set as selected when searching in shell
getStyleReceiver: function () {
return this._button;
},
_onDestroy: function() {
if (this._stateChangedId > 0)
this.app.disconnect(this._stateChangedId);
@@ -1588,10 +1620,13 @@ const AppIcon = new Lang.Class({
},
_updateRunningStyle: function() {
if (this.app.state != Shell.AppState.STOPPED)
this.actor.add_style_class_name('running');
else
this.actor.remove_style_class_name('running');
if (this.app.state != Shell.AppState.STOPPED) {
this._button.add_style_class_name('running');
this._dot.show();
} else {
this._button.remove_style_class_name('running');
this._dot.hide();
}
},
_setPopupTimeout: function() {
@@ -1606,7 +1641,7 @@ const AppIcon = new Lang.Class({
},
_onLeaveEvent: function(actor, event) {
this.actor.fake_release();
this._button.fake_release();
this._removeMenuTimeout();
},
@@ -1644,7 +1679,7 @@ const AppIcon = new Lang.Class({
popupMenu: function() {
this._removeMenuTimeout();
this.actor.fake_release();
this._button.fake_release();
this._draggable.fakeRelease();
if (!this._menu) {
@@ -1663,7 +1698,7 @@ const AppIcon = new Lang.Class({
this.emit('menu-state-changed', true);
this.actor.set_hover(true);
this._button.set_hover(true);
this._menu.popup();
this._menuManager.ignoreRelease();
this.emit('sync-tooltip');
@@ -1680,7 +1715,7 @@ const AppIcon = new Lang.Class({
},
_onMenuPoppedDown: function() {
this.actor.sync_hover();
this._button.sync_hover();
this.emit('menu-state-changed', false);
},

View File

@@ -88,6 +88,23 @@ function _formatEventTime(event, clockFormat, periodBegin, periodEnd) {
return ret;
}
function _getCalendarWeekForDate(date) {
// Based on the algorithms found here:
// http://en.wikipedia.org/wiki/Talk:ISO_week_date
let midnightDate = new Date(date.getFullYear(), date.getMonth(), date.getDate());
// Need to get Monday to be 1 ... Sunday to be 7
let dayOfWeek = 1 + ((midnightDate.getDay() + 6) % 7);
let nearestThursday = new Date(midnightDate.getFullYear(), midnightDate.getMonth(),
midnightDate.getDate() + (4 - dayOfWeek));
let jan1st = new Date(nearestThursday.getFullYear(), 0, 1);
let diffDate = nearestThursday - jan1st;
let dayNumber = Math.floor(Math.abs(diffDate) / MSECS_IN_DAY);
let weekNumber = Math.floor(dayNumber / 7) + 1;
return weekNumber;
}
function _getCalendarDayAbbreviation(dayNumber) {
let abbreviations = [
/* Translators: Calendar grid abbreviation for Sunday.
@@ -233,24 +250,11 @@ const DBusEventSource = new Lang.Class({
this._initialized = false;
this._dbusProxy = new CalendarServer();
this._dbusProxy.init_async(GLib.PRIORITY_DEFAULT, null, Lang.bind(this, function(object, result) {
let loaded = false;
try {
this._dbusProxy.init_finish(result);
loaded = true;
} catch(e) {
if (e.matches(Gio.DBusError, Gio.DBusError.TIMED_OUT)) {
// Ignore timeouts and install signals as normal, because with high
// probability the service will appear later on, and we will get a
// NameOwnerChanged which will finish loading
//
// (But still _initialized to false, because the proxy does not know
// about the HasCalendars property and would cause an exception trying
// to read it)
} else {
log('Error loading calendars: ' + e.message);
return;
}
log('Error loading calendars: ' + e.message);
return;
}
this._dbusProxy.connectSignal('Changed', Lang.bind(this, this._onChanged));
@@ -266,11 +270,9 @@ const DBusEventSource = new Lang.Class({
this.emit('notify::has-calendars');
}));
this._initialized = loaded;
if (loaded) {
this.emit('notify::has-calendars');
this._onNameAppeared();
}
this._initialized = true;
this.emit('notify::has-calendars');
this._onNameAppeared();
}));
},
@@ -292,7 +294,6 @@ const DBusEventSource = new Lang.Class({
},
_onNameAppeared: function(owner) {
this._initialized = true;
this._resetCache();
this._loadEvents(true);
},
@@ -601,7 +602,6 @@ const Calendar = new Lang.Class({
beginDate.setHours(12);
this._calendarBegin = new Date(beginDate);
this._markedAsToday = now;
let year = beginDate.getYear();
@@ -669,7 +669,7 @@ const Calendar = new Lang.Class({
this._buttons.push(button);
if (this._useWeekdate && iter.getDay() == 4) {
let label = new St.Label({ text: iter.toLocaleFormat('%V'),
let label = new St.Label({ text: _getCalendarWeekForDate(iter).toString(),
style_class: 'calendar-day-base calendar-week-number'});
layout.attach(label, rtl ? 7 : 0, row, 1, 1);
}
@@ -693,7 +693,7 @@ const Calendar = new Lang.Class({
else
this._monthLabel.text = this._selectedDate.toLocaleFormat(this._headerFormat);
if (!this._calendarBegin || !_sameMonth(this._selectedDate, this._calendarBegin) || !_sameDay(now, this._markedAsToday))
if (!this._calendarBegin || !_sameMonth(this._selectedDate, this._calendarBegin))
this._rebuildCalendar();
this._buttons.forEach(Lang.bind(this, function(button) {

View File

@@ -100,7 +100,7 @@ const CtrlAltTabManager = new Lang.Class({
if (app)
icon = app.create_icon_texture(POPUP_APPICON_SIZE);
else
icon = textureCache.bind_cairo_surface_property(windows[i], 'icon');
icon = textureCache.bind_pixbuf_property(windows[i], 'icon');
}
items.push({ name: windows[i].title,

View File

@@ -19,6 +19,8 @@ const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
const Calendar = imports.ui.calendar;
const N_ = function(s) { return s; };
function _onVertSepRepaint(area) {
let cr = area.get_context();
let themeNode = area.get_theme_node();

View File

@@ -6,8 +6,6 @@ const Meta = imports.gi.Meta;
const Clutter = imports.gi.Clutter;
const St = imports.gi.St;
const Main = imports.ui.main;
const EDGE_THRESHOLD = 20;
const DRAG_DISTANCE = 80;
@@ -15,10 +13,9 @@ const EdgeDragAction = new Lang.Class({
Name: 'EdgeDragAction',
Extends: Clutter.GestureAction,
_init : function(side, allowedModes) {
_init : function(side) {
this.parent();
this._side = side;
this._allowedModes = allowedModes;
this.set_n_touch_points(1);
global.display.connect('grab-op-begin', Lang.bind(this, function() {
@@ -37,9 +34,6 @@ const EdgeDragAction = new Lang.Class({
if (this.get_n_current_points() == 0)
return false;
if (!(this._allowedModes & Main.actionMode))
return false;
let [x, y] = this.get_press_coords(0);
let monitorRect = this._getMonitorRect(x, y);

View File

@@ -77,7 +77,6 @@ function init() {
window._ = Gettext.gettext;
window.C_ = Gettext.pgettext;
window.ngettext = Gettext.ngettext;
window.N_ = function(s) { return s; };
// Miscellaneous monkeypatching
_patchContainerClass(St.BoxLayout);

View File

@@ -203,16 +203,14 @@ const InstallExtensionDialog = new Lang.Class({
let message = _("Download and install “%s” from extensions.gnome.org?").format(info.name);
let box = new St.BoxLayout({ style_class: 'prompt-dialog-main-layout',
vertical: false });
let box = new St.BoxLayout();
this.contentLayout.add(box);
let gicon = new Gio.FileIcon({ file: Gio.File.new_for_uri(REPOSITORY_URL_BASE + info.icon) })
let icon = new St.Icon({ gicon: gicon });
box.add(icon);
let label = new St.Label({ style_class: 'prompt-dialog-headline',
text: message });
let label = new St.Label({ text: message });
box.add(label);
},

View File

@@ -278,20 +278,6 @@ const IconGrid = new Lang.Class({
this._grid.connect('get-preferred-width', Lang.bind(this, this._getPreferredWidth));
this._grid.connect('get-preferred-height', Lang.bind(this, this._getPreferredHeight));
this._grid.connect('allocate', Lang.bind(this, this._allocate));
this._grid.connect('actor-added', Lang.bind(this, this._childAdded));
this._grid.connect('actor-removed', Lang.bind(this, this._childRemoved));
},
_keyFocusIn: function(actor) {
this.emit('key-focus-in', actor);
},
_childAdded: function(grid, child) {
child._iconGridKeyFocusInId = child.connect('key-focus-in', Lang.bind(this, this._keyFocusIn));
},
_childRemoved: function(grid, child) {
child.disconnect(child._iconGridKeyFocusInId);
},
_getPreferredWidth: function (grid, forHeight, alloc) {
@@ -682,6 +668,10 @@ const IconGrid = new Lang.Class({
this._grid.destroy_all_children();
},
_keyFocusIn: function(actor) {
this.emit('key-focus-in', actor._associatedItem);
},
addItem: function(item, index) {
if (!item.icon instanceof BaseIcon)
throw new Error('Only items with a BaseIcon icon property can be added to IconGrid');
@@ -691,9 +681,26 @@ const IconGrid = new Lang.Class({
this._grid.insert_child_at_index(item.actor, index);
else
this._grid.add_actor(item.actor);
// Maybe the item actor acts as a container, so ask the item if
// it has a specific actor to track focus
let focusReceiver = item.actor;
if (item.getFocusReceiver)
focusReceiver = item.getFocusReceiver();
focusReceiver._associatedItem = item.actor;
focusReceiver._iconGridKeyFocusInId = focusReceiver.connect('key-focus-in', Lang.bind(this, this._keyFocusIn));
},
removeItem: function(item) {
let focusReceiver = item.actor;
if (item.getFocusReceiver)
focusReceiver = item.getFocusReceiver();
focusReceiver._associatedItem = null;
focusReceiver.disconnect(focusReceiver._iconGridKeyFocusInId);
this._grid.remove_child(item.actor);
},

View File

@@ -458,8 +458,8 @@ const LayoutManager = new Lang.Class({
_setupTrayPressure: function() {
this._trayPressure = new PressureBarrier(MESSAGE_TRAY_PRESSURE_THRESHOLD,
MESSAGE_TRAY_PRESSURE_TIMEOUT,
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW);
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW);
this._trayPressure.setEventFilter(this._trayBarrierEventFilter);
this._trayPressure.connect('trigger', function(barrier) {
if (Main.layoutManager.bottomMonitor.inFullscreen)
@@ -1067,8 +1067,8 @@ const HotCorner = new Lang.Class({
this._pressureBarrier = new PressureBarrier(HOT_CORNER_PRESSURE_THRESHOLD,
HOT_CORNER_PRESSURE_TIMEOUT,
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW);
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW);
this._pressureBarrier.connect('trigger', Lang.bind(this, this._toggleOverview));
// Cache the three ripples instead of dynamically creating and destroying them.
@@ -1245,10 +1245,10 @@ const HotCorner = new Lang.Class({
const PressureBarrier = new Lang.Class({
Name: 'PressureBarrier',
_init: function(threshold, timeout, actionMode) {
_init: function(threshold, timeout, keybindingMode) {
this._threshold = threshold;
this._timeout = timeout;
this._actionMode = actionMode;
this._keybindingMode = keybindingMode;
this._barriers = [];
this._eventFilter = null;
@@ -1351,7 +1351,7 @@ const PressureBarrier = new Lang.Class({
return;
// Throw out all events not in the proper keybinding mode
if (!(this._actionMode & Main.actionMode))
if (!(this._keybindingMode & Main.keybindingMode))
return;
let slide = this._getDistanceAlongBarrier(barrier, event);

View File

@@ -1086,7 +1086,7 @@ const LookingGlass = new Lang.Class({
if (this._open)
return;
if (!Main.pushModal(this._entry, { actionMode: Shell.ActionMode.LOOKING_GLASS }))
if (!Main.pushModal(this._entry, { keybindingMode: Shell.KeyBindingMode.LOOKING_GLASS }))
return;
this._notebook.selectIndex(0);

View File

@@ -4,7 +4,6 @@ const Clutter = imports.gi.Clutter;
const Gdk = imports.gi.Gdk;
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const Gtk = imports.gi.Gtk;
const Lang = imports.lang;
const Mainloop = imports.mainloop;
const Meta = imports.gi.Meta;
@@ -63,7 +62,7 @@ let shellMountOpDBusService = null;
let screenSaverDBus = null;
let screencastService = null;
let modalCount = 0;
let actionMode = Shell.ActionMode.NONE;
let keybindingMode = Shell.KeyBindingMode.NONE;
let modalActorFocusStack = [];
let uiGroup = null;
let magnifier = null;
@@ -76,19 +75,18 @@ let _cssStylesheet = null;
let _a11ySettings = null;
function _sessionUpdated() {
if (sessionMode.isPrimary)
_loadDefaultStylesheet();
_loadDefaultStylesheet();
wm.setCustomKeybindingHandler('panel-main-menu',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW,
sessionMode.hasOverview ? Lang.bind(overview, overview.toggle) : null);
wm.allowKeybinding('overlay-key', Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW);
wm.allowKeybinding('overlay-key', Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW);
wm.setCustomKeybindingHandler('panel-run-dialog',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW,
sessionMode.hasRunDialog ? openRunDialog : null);
if (!sessionMode.hasRunDialog) {
@@ -111,8 +109,6 @@ function start() {
sessionMode = new SessionMode.SessionMode();
sessionMode.connect('updated', _sessionUpdated);
Gtk.Settings.get_default().connect('notify::gtk-theme-name',
_loadDefaultStylesheet);
_initializeUI();
shellDBusService = new ShellDBus.GnomeShell();
@@ -209,8 +205,8 @@ function _initializeUI() {
}
layoutManager.connect('startup-complete', function() {
if (actionMode == Shell.ActionMode.NONE) {
actionMode = Shell.ActionMode.NORMAL;
if (keybindingMode == Shell.KeyBindingMode.NONE) {
keybindingMode = Shell.KeyBindingMode.NORMAL;
}
if (screenShield) {
screenShield.lockIfWasLocked();
@@ -229,36 +225,24 @@ function _initializeUI() {
});
}
function _getStylesheet(name) {
function _getDefaultStylesheet() {
let stylesheet;
stylesheet = Gio.File.new_for_uri('resource:///org/gnome/shell/theme/' + name);
stylesheet = Gio.File.new_for_uri('resource:///org/gnome/shell/theme/' + sessionMode.stylesheetName);
if (stylesheet.query_exists(null))
return stylesheet;
stylesheet = Gio.File.new_for_path(global.datadir + '/theme/' + name);
stylesheet = Gio.File.new_for_path(global.datadir + '/theme/' + sessionMode.stylesheetName);
if (stylesheet.query_exists(null))
return stylesheet;
return null;
}
function _getDefaultStylesheet() {
let stylesheet = null;
let name = sessionMode.stylesheetName;
// Look for a high-contrast variant first when using GTK+'s HighContrast
// theme
if (Gtk.Settings.get_default().gtk_theme_name == 'HighContrast')
stylesheet = _getStylesheet(name.replace('.css', '-high-contrast.css'));
if (stylesheet == null)
stylesheet = _getStylesheet(sessionMode.stylesheetName);
return stylesheet;
}
function _loadDefaultStylesheet() {
if (!sessionMode.isPrimary)
return;
let stylesheet = _getDefaultStylesheet();
if (_defaultCssStylesheet && _defaultCssStylesheet.equal(stylesheet))
return;
@@ -272,7 +256,7 @@ function _loadDefaultStylesheet() {
*
* Get the theme CSS file that the shell will load
*
* Returns: A #GFile that contains the theme CSS,
* Returns: A file path that contains the theme CSS,
* null if using the default
*/
function getThemeStylesheet() {
@@ -287,7 +271,7 @@ function getThemeStylesheet() {
* Set the theme CSS file that the shell will load
*/
function setThemeStylesheet(cssStylesheet) {
_cssStylesheet = cssStylesheet ? Gio.File.new_for_path(cssStylesheet) : null;
_cssStylesheet = Gio.File.new_for_path(cssStylesheet);
}
/**
@@ -372,7 +356,7 @@ function _findModal(actor) {
* - options: Meta.ModalOptions flags to indicate that the pointer is
* already grabbed
*
* - actionMode: used to set the current Shell.ActionMode to filter
* - keybindingMode: used to set the current Shell.KeyBindingMode to filter
* global keybindings; the default of NONE will filter
* out all keybindings
*
@@ -381,7 +365,7 @@ function _findModal(actor) {
function pushModal(actor, params) {
params = Params.parse(params, { timestamp: global.get_current_time(),
options: 0,
actionMode: Shell.ActionMode.NONE });
keybindingMode: Shell.KeyBindingMode.NONE });
if (modalCount == 0) {
if (!global.begin_modal(params.timestamp, params.options)) {
@@ -411,9 +395,9 @@ function pushModal(actor, params) {
destroyId: actorDestroyId,
prevFocus: prevFocus,
prevFocusDestroyId: prevFocusDestroyId,
actionMode: actionMode });
keybindingMode: keybindingMode });
actionMode = params.actionMode;
keybindingMode = params.keybindingMode;
global.stage.set_key_focus(actor);
return true;
}
@@ -439,7 +423,7 @@ function popModal(actor, timestamp) {
if (focusIndex < 0) {
global.stage.set_key_focus(null);
global.end_modal(timestamp);
actionMode = Shell.ActionMode.NORMAL;
keybindingMode = Shell.KeyBindingMode.NORMAL;
throw new Error('incorrect pop');
}
@@ -452,7 +436,7 @@ function popModal(actor, timestamp) {
if (focusIndex == modalActorFocusStack.length - 1) {
if (record.prevFocus)
record.prevFocus.disconnect(record.prevFocusDestroyId);
actionMode = record.actionMode;
keybindingMode = record.keybindingMode;
global.stage.set_key_focus(record.prevFocus);
} else {
// If we have:
@@ -477,7 +461,7 @@ function popModal(actor, timestamp) {
for (let i = modalActorFocusStack.length - 1; i > focusIndex; i--) {
modalActorFocusStack[i].prevFocus = modalActorFocusStack[i - 1].prevFocus;
modalActorFocusStack[i].prevFocusDestroyId = modalActorFocusStack[i - 1].prevFocusDestroyId;
modalActorFocusStack[i].actionMode = modalActorFocusStack[i - 1].actionMode;
modalActorFocusStack[i].keybindingMode = modalActorFocusStack[i - 1].keybindingMode;
}
}
modalActorFocusStack.splice(focusIndex, 1);
@@ -488,7 +472,7 @@ function popModal(actor, timestamp) {
layoutManager.modalEnded();
global.end_modal(timestamp);
Meta.enable_unredirect_for_screen(global.screen);
actionMode = Shell.ActionMode.NORMAL;
keybindingMode = Shell.KeyBindingMode.NORMAL;
}
function createLookingGlass() {

View File

@@ -1852,7 +1852,7 @@ const MessageTray = new Lang.Class({
this.idleMonitor = Meta.IdleMonitor.get_core();
this._grabHelper = new GrabHelper.GrabHelper(this.actor,
{ actionMode: Shell.ActionMode.MESSAGE_TRAY });
{ keybindingMode: Shell.KeyBindingMode.MESSAGE_TRAY });
this._grabHelper.addActor(this._summaryBoxPointer.actor);
this._grabHelper.addActor(this.actor);
@@ -1916,16 +1916,16 @@ const MessageTray = new Lang.Class({
Main.wm.addKeybinding('toggle-message-tray',
new Gio.Settings({ schema_id: SHELL_KEYBINDINGS_SCHEMA }),
Meta.KeyBindingFlags.NONE,
Shell.ActionMode.NORMAL |
Shell.ActionMode.MESSAGE_TRAY |
Shell.ActionMode.OVERVIEW,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.MESSAGE_TRAY |
Shell.KeyBindingMode.OVERVIEW,
Lang.bind(this, this.toggleAndNavigate));
Main.wm.addKeybinding('focus-active-notification',
new Gio.Settings({ schema_id: SHELL_KEYBINDINGS_SCHEMA }),
Meta.KeyBindingFlags.NONE,
Shell.ActionMode.NORMAL |
Shell.ActionMode.MESSAGE_TRAY |
Shell.ActionMode.OVERVIEW,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.MESSAGE_TRAY |
Shell.KeyBindingMode.OVERVIEW,
Lang.bind(this, this._expandActiveNotification));
this._sources = new Map();
@@ -1951,9 +1951,7 @@ const MessageTray = new Lang.Class({
this._messageTrayMenuButton.actor.connect('key-press-event',
Lang.bind(this, this._onTrayButtonKeyPress));
let gesture = new EdgeDragAction.EdgeDragAction(St.Side.BOTTOM,
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW);
let gesture = new EdgeDragAction.EdgeDragAction(St.Side.BOTTOM);
gesture.connect('activated', Lang.bind(this, this.toggle));
global.stage.add_action(gesture);
},

View File

@@ -41,14 +41,14 @@ const ModalDialog = new Lang.Class({
_init: function(params) {
params = Params.parse(params, { shellReactive: false,
styleClass: null,
actionMode: Shell.ActionMode.SYSTEM_MODAL,
keybindingMode: Shell.KeyBindingMode.SYSTEM_MODAL,
shouldFadeIn: true,
shouldFadeOut: true,
destroyOnClose: true });
this.state = State.CLOSED;
this._hasModal = false;
this._actionMode = params.actionMode;
this._keybindingMode = params.keybindingMode;
this._shellReactive = params.shellReactive;
this._shouldFadeIn = params.shouldFadeIn;
this._shouldFadeOut = params.shouldFadeOut;
@@ -362,7 +362,7 @@ const ModalDialog = new Lang.Class({
if (this._hasModal)
return true;
if (!Main.pushModal(this._group, { timestamp: timestamp,
actionMode: this._actionMode }))
keybindingMode: this._keybindingMode }))
return false;
this._hasModal = true;

View File

@@ -509,7 +509,7 @@ const Overview = new Lang.Class({
if (shouldBeModal) {
if (!this._modal) {
if (Main.pushModal(this._overview,
{ actionMode: Shell.ActionMode.OVERVIEW })) {
{ keybindingMode: Shell.KeyBindingMode.OVERVIEW })) {
this._modal = true;
} else {
this.hide();
@@ -605,9 +605,9 @@ const Overview = new Lang.Class({
return;
}
this._shown = false;
this._animateNotVisible();
this._shown = false;
this._syncGrab();
},

View File

@@ -181,7 +181,6 @@ const AppMenuButton = new Lang.Class({
this._targetApp = null;
this._appMenuNotifyId = 0;
this._actionGroupNotifyId = 0;
this._busyNotifyId = 0;
let bin = new St.Bin({ name: 'appMenu' });
bin.connect('style-changed', Lang.bind(this, this._onStyleChanged));
@@ -190,11 +189,8 @@ const AppMenuButton = new Lang.Class({
this.actor.bind_property("reactive", this.actor, "can-focus", 0);
this.actor.reactive = false;
this._container = new Shell.GenericContainer();
this._container = St.BoxLayout({ style_class: 'panel-status-menu-box' });
bin.set_child(this._container);
this._container.connect('get-preferred-width', Lang.bind(this, this._getContentPreferredWidth));
this._container.connect('get-preferred-height', Lang.bind(this, this._getContentPreferredHeight));
this._container.connect('allocate', Lang.bind(this, this._contentAllocate));
let textureCache = St.TextureCache.get_default();
textureCache.connect('icon-theme-changed',
@@ -207,14 +203,11 @@ const AppMenuButton = new Lang.Class({
Lang.bind(this, this._updateIconBoxClip));
this._container.add_actor(this._iconBox);
this._hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' });
this._container.add_actor(this._hbox);
this._label = new TextShadower();
this._label.actor.y_align = Clutter.ActorAlign.CENTER;
this._hbox.add_actor(this._label.actor);
this._container.add_actor(this._label.actor);
this._arrow = PopupMenu.arrowIcon(St.Side.BOTTOM);
this._hbox.add_actor(this._arrow);
this._container.add_actor(this._arrow);
this._iconBottomClip = 0;
@@ -278,7 +271,7 @@ const AppMenuButton = new Lang.Class({
return;
this._spinnerIcon = icon;
this._spinner = new Animation.AnimatedIcon(this._spinnerIcon, PANEL_ICON_SIZE);
this._hbox.add_actor(this._spinner.actor);
this._container.add_actor(this._spinner.actor);
this._spinner.actor.hide();
},
@@ -292,7 +285,7 @@ const AppMenuButton = new Lang.Class({
if (!this._targetApp)
return;
let icon = this._targetApp.get_faded_icon(2 * PANEL_ICON_SIZE, this._iconBox.text_direction);
let icon = this._targetApp.create_icon_texture(2 * PANEL_ICON_SIZE);
this._iconBox.set_child(icon);
},
@@ -345,64 +338,6 @@ const AppMenuButton = new Lang.Class({
this._spinner.actor.show();
},
_getContentPreferredWidth: function(actor, forHeight, alloc) {
let [minSize, naturalSize] = this._iconBox.get_preferred_width(forHeight);
alloc.min_size = minSize;
alloc.natural_size = naturalSize;
[minSize, naturalSize] = this._hbox.get_preferred_width(forHeight);
alloc.min_size = alloc.min_size + Math.max(0, minSize - Math.floor(alloc.min_size / 2));
alloc.natural_size = alloc.natural_size + Math.max(0, naturalSize - Math.floor(alloc.natural_size / 2));
},
_getContentPreferredHeight: function(actor, forWidth, alloc) {
let [minSize, naturalSize] = this._iconBox.get_preferred_height(forWidth);
alloc.min_size = minSize;
alloc.natural_size = naturalSize;
[minSize, naturalSize] = this._hbox.get_preferred_height(forWidth);
if (minSize > alloc.min_size)
alloc.min_size = minSize;
if (naturalSize > alloc.natural_size)
alloc.natural_size = naturalSize;
},
_contentAllocate: function(actor, box, flags) {
let allocWidth = box.x2 - box.x1;
let allocHeight = box.y2 - box.y1;
let childBox = new Clutter.ActorBox();
let [minWidth, minHeight, naturalWidth, naturalHeight] = this._iconBox.get_preferred_size();
let direction = this.actor.get_text_direction();
let yPadding = Math.floor(Math.max(0, allocHeight - naturalHeight) / 2);
childBox.y1 = yPadding;
childBox.y2 = childBox.y1 + Math.min(naturalHeight, allocHeight);
if (direction == Clutter.TextDirection.LTR) {
childBox.x1 = 0;
childBox.x2 = childBox.x1 + Math.min(naturalWidth, allocWidth);
} else {
childBox.x1 = Math.max(0, allocWidth - naturalWidth);
childBox.x2 = allocWidth;
}
this._iconBox.allocate(childBox, flags);
let iconWidth = childBox.x2 - childBox.x1;
[minWidth, naturalWidth] = this._hbox.get_preferred_width(-1);
childBox.y1 = 0;
childBox.y2 = allocHeight;
if (direction == Clutter.TextDirection.LTR) {
childBox.x1 = Math.floor(iconWidth / 2);
childBox.x2 = Math.min(childBox.x1 + naturalWidth, allocWidth);
} else {
childBox.x2 = allocWidth - Math.floor(iconWidth / 2);
childBox.x1 = Math.max(0, childBox.x2 - naturalWidth);
}
this._hbox.allocate(childBox, flags);
},
_onAppStateChanged: function(appSys, app) {
let state = app.state;
if (state != Shell.AppState.STARTING) {
@@ -458,17 +393,12 @@ const AppMenuButton = new Lang.Class({
this._targetApp.disconnect(this._actionGroupNotifyId);
this._actionGroupNotifyId = 0;
}
if (this._busyNotifyId) {
this._targetApp.disconnect(this._busyNotifyId);
this._busyNotifyId = 0;
}
this._targetApp = targetApp;
if (this._targetApp) {
this._appMenuNotifyId = this._targetApp.connect('notify::menu', Lang.bind(this, this._sync));
this._actionGroupNotifyId = this._targetApp.connect('notify::action-group', Lang.bind(this, this._sync));
this._busyNotifyId = this._targetApp.connect('notify::busy', Lang.bind(this, this._sync));
this._label.setText(this._targetApp.get_name());
this.actor.set_accessible_name(this._targetApp.get_name());
}
@@ -482,7 +412,7 @@ const AppMenuButton = new Lang.Class({
let isBusy = (this._targetApp != null &&
(this._targetApp.get_state() == Shell.AppState.STARTING ||
this._targetApp.get_busy()));
this._targetApp.get_state() == Shell.AppState.BUSY));
if (isBusy)
this.startAnimation();
else
@@ -820,7 +750,7 @@ const AggregateMenu = new Lang.Class({
this.menu.actor.add_style_class_name('aggregate-menu');
this._indicators = new St.BoxLayout({ style_class: 'panel-status-indicators-box' });
this.actor.add_child(this._indicators);
this.actor.add_actor(this._indicators);
if (Config.HAVE_NETWORKMANAGER) {
this._network = new imports.ui.status.network.NMApplet();
@@ -893,7 +823,7 @@ const Panel = new Lang.Class({
this.statusArea = {};
this.menuManager = new PopupMenu.PopupMenuManager(this, { actionMode: Shell.ActionMode.TOPBAR_POPUP });
this.menuManager = new PopupMenu.PopupMenuManager(this, { keybindingMode: Shell.KeyBindingMode.TOPBAR_POPUP });
this._leftBox = new St.BoxLayout({ name: 'panelLeft' });
this.actor.add_actor(this._leftBox);
@@ -1106,7 +1036,7 @@ const Panel = new Lang.Class({
continue;
if (indicator.menu)
indicator.menu.close();
indicator.container.hide();
indicator.actor.hide();
}
},
@@ -1138,21 +1068,14 @@ const Panel = new Lang.Class({
},
_addToPanelBox: function(role, indicator, position, box) {
let container = indicator.container;
container.show();
let parent = container.get_parent();
if (parent)
parent.remove_actor(container);
box.insert_child_at_index(container, position);
indicator.actor.show();
box.insert_child_at_index(indicator.actor, position);
if (indicator.menu)
this.menuManager.addMenu(indicator.menu);
this.statusArea[role] = indicator;
let destroyId = indicator.connect('destroy', Lang.bind(this, function(emitter) {
delete this.statusArea[role];
emitter.disconnect(destroyId);
container.destroy();
}));
},

View File

@@ -13,92 +13,16 @@ const Main = imports.ui.main;
const Params = imports.misc.params;
const PopupMenu = imports.ui.popupMenu;
const ButtonBox = new Lang.Class({
Name: 'ButtonBox',
_init: function(params) {
params = Params.parse(params, { style_class: 'panel-button' }, true);
this.actor = new Shell.GenericContainer(params);
this.actor._delegate = this;
this.container = new St.Bin({ y_fill: true,
x_fill: true,
child: this.actor });
this.actor.connect('get-preferred-width', Lang.bind(this, this._getPreferredWidth));
this.actor.connect('get-preferred-height', Lang.bind(this, this._getPreferredHeight));
this.actor.connect('allocate', Lang.bind(this, this._allocate));
this.actor.connect('style-changed', Lang.bind(this, this._onStyleChanged));
this._minHPadding = this._natHPadding = 0.0;
},
_onStyleChanged: function(actor) {
let themeNode = actor.get_theme_node();
this._minHPadding = themeNode.get_length('-minimum-hpadding');
this._natHPadding = themeNode.get_length('-natural-hpadding');
},
_getPreferredWidth: function(actor, forHeight, alloc) {
let child = actor.get_first_child();
if (child) {
[alloc.min_size, alloc.natural_size] = child.get_preferred_width(-1);
} else {
alloc.min_size = alloc.natural_size = 0;
}
alloc.min_size += 2 * this._minHPadding;
alloc.natural_size += 2 * this._natHPadding;
},
_getPreferredHeight: function(actor, forWidth, alloc) {
let child = actor.get_first_child();
if (child) {
[alloc.min_size, alloc.natural_size] = child.get_preferred_height(-1);
} else {
alloc.min_size = alloc.natural_size = 0;
}
},
_allocate: function(actor, box, flags) {
let child = actor.get_first_child();
if (!child)
return;
let [minWidth, natWidth] = child.get_preferred_width(-1);
let availWidth = box.x2 - box.x1;
let availHeight = box.y2 - box.y1;
let childBox = new Clutter.ActorBox();
if (natWidth + 2 * this._natHPadding <= availWidth) {
childBox.x1 = this._natHPadding;
childBox.x2 = availWidth - this._natHPadding;
} else {
childBox.x1 = this._minHPadding;
childBox.x2 = availWidth - this._minHPadding;
}
childBox.y1 = 0;
childBox.y2 = availHeight;
child.allocate(childBox, flags);
},
});
const Button = new Lang.Class({
Name: 'PanelMenuButton',
Extends: ButtonBox,
_init: function(menuAlignment, nameText, dontCreateMenu) {
this.parent({ reactive: true,
can_focus: true,
track_hover: true,
accessible_name: nameText ? nameText : "",
accessible_role: Atk.Role.MENU });
this.actor = new St.Bin({ style_class: 'panel-button',
reactive: true,
can_focus: true,
track_hover: true,
accessible_name: nameText ? nameText : "",
accessible_role: Atk.Role.MENU });
this.actor.connect('event', Lang.bind(this, this._onEvent));
this.actor.connect('notify::visible', Lang.bind(this, this._onVisibilityChanged));
@@ -177,8 +101,6 @@ const Button = new Lang.Class({
},
destroy: function() {
this.actor._delegate = null;
if (this.menu)
this.menu.destroy();
this.actor.destroy();

View File

@@ -647,14 +647,14 @@ const ScreenShield = new Lang.Class({
if (this._isModal)
return true;
this._isModal = Main.pushModal(this.actor, { actionMode: Shell.ActionMode.LOCK_SCREEN });
this._isModal = Main.pushModal(this.actor, { keybindingMode: Shell.KeyBindingMode.LOCK_SCREEN });
if (this._isModal)
return true;
// We failed to get a pointer grab, it means that
// something else has it. Try with a keyboard grab only
this._isModal = Main.pushModal(this.actor, { options: Meta.ModalOptions.POINTER_ALREADY_GRABBED,
actionMode: Shell.ActionMode.LOCK_SCREEN });
keybindingMode: Shell.KeyBindingMode.LOCK_SCREEN });
return this._isModal;
},

View File

@@ -199,9 +199,12 @@ const SearchResultsBase = new Lang.Class({
this._cancellable.reset();
this.provider.getResultMetas(metasNeeded, Lang.bind(this, function(metas) {
if (metas.length == 0) {
callback(false);
return;
}
if (metas.length != metasNeeded.length) {
log('Wrong number of result metas returned by search provider ' + this.provider.id +
': expected ' + metasNeeded.length + ' but got ' + metas.length);
log('Wrong number of result metas returned by search provider');
callback(false);
return;
}
@@ -233,7 +236,6 @@ const SearchResultsBase = new Lang.Class({
this._ensureResultActors(results, Lang.bind(this, function(successful) {
if (!successful) {
this._clearResultDisplay();
callback();
return;
}
@@ -657,11 +659,15 @@ const SearchResults = new Lang.Class({
if (!result)
return;
let styleReceiver = result.actor;
if (result.getStyleReceiver)
styleReceiver = result.getStyleReceiver();
if (selected) {
result.actor.add_style_pseudo_class('selected');
styleReceiver.add_style_pseudo_class('selected');
Util.ensureActorVisibleInScrollView(this._scrollView, result.actor);
} else {
result.actor.remove_style_pseudo_class('selected');
styleReceiver.remove_style_pseudo_class('selected');
}
}
});

View File

@@ -44,7 +44,8 @@ const GnomeShellIface = '<node> \
</method> \
<signal name="AcceleratorActivated"> \
<arg name="action" type="u" /> \
<arg name="parameters" type="a{sv}" /> \
<arg name="deviceid" type="u" /> \
<arg name="timestamp" type="u" /> \
</signal> \
<property name="Mode" type="s" access="read" /> \
<property name="OverviewActive" type="b" access="readwrite" /> \
@@ -89,12 +90,6 @@ const GnomeShell = new Lang.Class({
function(display, action, deviceid, timestamp) {
this._emitAcceleratorActivated(action, deviceid, timestamp);
}));
this._cachedOverviewVisible = false;
Main.overview.connect('showing',
Lang.bind(this, this._checkOverviewVisibleChanged));
Main.overview.connect('hidden',
Lang.bind(this, this._checkOverviewVisibleChanged));
},
/**
@@ -139,7 +134,7 @@ const GnomeShell = new Lang.Class({
params[param] = params[param].deep_unpack();
let monitorIndex = -1;
if (params['monitor'] >= 0)
if (params['monitor'])
monitorIndex = params['monitor'];
let icon = null;
@@ -195,14 +190,11 @@ const GnomeShell = new Lang.Class({
let connection = this._dbusImpl.get_connection();
let info = this._dbusImpl.get_info();
let params = { 'device-id': GLib.Variant.new('u', deviceid),
'timestamp': GLib.Variant.new('u', timestamp),
'action-mode': GLib.Variant.new('u', Main.actionMode) };
connection.emit_signal(destination,
this._dbusImpl.get_object_path(),
info ? info.name : null,
'AcceleratorActivated',
GLib.Variant.new('(ua{sv})', [action, params]));
GLib.Variant.new('(uuu)', [action, deviceid, timestamp]));
},
_grabAcceleratorForSender: function(accelerator, flags, sender) {
@@ -243,15 +235,8 @@ const GnomeShell = new Lang.Class({
Mode: global.session_mode,
_checkOverviewVisibleChanged: function() {
if (Main.overview.visible !== this._cachedOverviewVisible) {
this._cachedOverviewVisible = Main.overview.visible;
this._dbusImpl.emit_property_changed('OverviewActive', new GLib.Variant('b', this._cachedOverviewVisible));
}
},
get OverviewActive() {
return this._cachedOverviewVisible;
return Main.overview.visible;
},
set OverviewActive(visible) {

View File

@@ -7,7 +7,7 @@ const Lang = imports.lang;
const St = imports.gi.St;
const Signals = imports.signals;
const SLIDER_SCROLL_STEP = 0.02; /* Slider scrolling step in % */
const SLIDER_SCROLL_STEP = 0.05; /* Slider scrolling step in % */
const Slider = new Lang.Class({
Name: "Slider",
@@ -197,7 +197,7 @@ const Slider = new Lang.Class({
let [dx, dy] = event.get_scroll_delta();
// Even though the slider is horizontal, use dy to match
// the UP/DOWN above.
delta = -dy * SLIDER_SCROLL_STEP;
delta = -dy / 10;
}
this._value = Math.min(Math.max(0, this._value + delta), 1);

View File

@@ -155,7 +155,6 @@ const InputSourceManager = new Lang.Class({
this._ibusSources = {};
this._currentSource = null;
this._backupSource = null;
// All valid input sources currently in the gsettings
// KEY_INPUT_SOURCES list ordered by most recently used
@@ -164,13 +163,13 @@ const InputSourceManager = new Lang.Class({
Main.wm.addKeybinding('switch-input-source',
new Gio.Settings({ schema_id: "org.gnome.desktop.wm.keybindings" }),
Meta.KeyBindingFlags.NONE,
Shell.ActionMode.ALL,
Shell.KeyBindingMode.ALL,
Lang.bind(this, this._switchInputSource));
this._keybindingActionBackward =
Main.wm.addKeybinding('switch-input-source-backward',
new Gio.Settings({ schema_id: "org.gnome.desktop.wm.keybindings" }),
Meta.KeyBindingFlags.IS_REVERSED,
Shell.ActionMode.ALL,
Shell.KeyBindingMode.ALL,
Lang.bind(this, this._switchInputSource));
this._settings = new Gio.Settings({ schema_id: DESKTOP_INPUT_SOURCES_SCHEMA });
this._settings.connect('changed::' + KEY_INPUT_SOURCES, Lang.bind(this, this._inputSourcesChanged));
@@ -184,7 +183,6 @@ const InputSourceManager = new Lang.Class({
this._ibusManager.connect('ready', Lang.bind(this, this._ibusReadyCallback));
this._ibusManager.connect('properties-registered', Lang.bind(this, this._ibusPropertiesRegistered));
this._ibusManager.connect('property-updated', Lang.bind(this, this._ibusPropertyUpdated));
this._ibusManager.connect('set-content-type', Lang.bind(this, this._ibusSetContentType));
global.display.connect('modifiers-accelerator-activated', Lang.bind(this, this._modifiersSwitcher));
@@ -194,7 +192,6 @@ const InputSourceManager = new Lang.Class({
this._overviewHiddenId = 0;
this._settings.connect('changed::per-window', Lang.bind(this, this._sourcesPerWindowChanged));
this._sourcesPerWindowChanged();
this._disableIBus = false;
},
reload: function() {
@@ -242,8 +239,8 @@ const InputSourceManager = new Lang.Class({
// effect without considerable work to consolidate the usage
// of pushModal/popModal and grabHelper. See
// https://bugzilla.gnome.org/show_bug.cgi?id=695143 .
if (Main.actionMode == Shell.ActionMode.MESSAGE_TRAY ||
Main.actionMode == Shell.ActionMode.TOPBAR_POPUP) {
if (Main.keybindingMode == Shell.KeyBindingMode.MESSAGE_TRAY ||
Main.keybindingMode == Shell.KeyBindingMode.TOPBAR_POPUP) {
this._modifiersSwitcher();
return;
}
@@ -312,8 +309,6 @@ const InputSourceManager = new Lang.Class({
[exists, displayName, shortName, , ] =
this._xkbInfo.get_layout_info(id);
} else if (type == INPUT_SOURCE_TYPE_IBUS) {
if (this._disableIBus)
continue;
let engineDesc = this._ibusManager.getEngineDesc(id);
if (engineDesc) {
let language = IBus.get_language_name(engineDesc.get_language());
@@ -384,24 +379,8 @@ const InputSourceManager = new Lang.Class({
}
this._mruSources = mruSources.concat(sourcesList);
if (this._mruSources.length > 0) {
if (!this._disableIBus && this._backupSource) {
for (let i = 0; i < this._mruSources.length; i++) {
if (this._mruSources[i].type == this._backupSource.type &&
this._mruSources[i].id == this._backupSource.id) {
let currentSource = this._mruSources.splice(i, 1);
this._mruSources = currentSource.concat(this._mruSources);
break;
}
}
this._backupSource = null;
}
if (this._mruSources.length > 0)
this._mruSources[0].activate();
}
// All ibus engines are preloaded here to reduce the launching time
// when users switch the input sources.
this._ibusManager.preloadEngines(Object.keys(this._ibusSources));
},
_makeEngineShortName: function(engineDesc) {
@@ -454,27 +433,6 @@ const InputSourceManager = new Lang.Class({
return false;
},
_ibusSetContentType: function(im, purpose, hints) {
if (purpose == IBus.InputPurpose.PASSWORD) {
if (Object.keys(this._inputSources).length == Object.keys(this._ibusSources).length)
return;
if (this._disableIBus)
return;
this._disableIBus = true;
this._backupSource = this._currentSource;
} else {
if (!this._disableIBus)
return;
this._disableIBus = false;
}
// If this._mruSources is not cleared before this.reload() is called,
// the order is different from the original one as IM sources will
// be appended to XKB sources.
this._mruSources = [];
this.reload();
},
_getNewInputSource: function(current) {
for (let i in this._inputSources) {
let is = this._inputSources[i];

View File

@@ -1867,7 +1867,7 @@ const NMApplet = new Lang.Class({
_connectionRemoved: function(connection) {
let pos = this._connections.indexOf(connection);
if (pos != -1)
this._connections.splice(pos, 1);
this._connections.splice(connection, 1);
let section = connection._section;

View File

@@ -87,6 +87,8 @@ const SwitcherPopup = new Lang.Class({
let leftPadding = this.actor.get_theme_node().get_padding(St.Side.LEFT);
let rightPadding = this.actor.get_theme_node().get_padding(St.Side.RIGHT);
let bottomPadding = this.actor.get_theme_node().get_padding(St.Side.BOTTOM);
let vPadding = this.actor.get_theme_node().get_vertical_padding();
let hPadding = leftPadding + rightPadding;
// Allocate the switcherList

View File

@@ -154,7 +154,7 @@ const UnlockDialog = new Lang.Class({
return true;
if (!Main.pushModal(this.actor, { timestamp: timestamp,
actionMode: Shell.ActionMode.UNLOCK_SCREEN }))
keybindingMode: Shell.KeyBindingMode.UNLOCK_SCREEN }))
return false;
this._isModal = true;

View File

@@ -65,8 +65,7 @@ const ShowOverviewAction = new Lang.Class({
},
vfunc_gesture_prepare : function(action, actor) {
return Main.actionMode == Shell.ActionMode.NORMAL &&
this.get_n_current_points() == this.get_n_touch_points();
return this.get_n_current_points() == this.get_n_touch_points();
},
_getBoundingRect : function(motion) {
@@ -194,30 +193,27 @@ const ViewSelector = new Lang.Class({
// the windows to animate, but now we no longer want to
// show it given that we are now on the apps page or
// search page.
if (this._activePage != this._workspacesPage) {
if (this._activePage != this._workspacesPage)
this._workspacesPage.opacity = 0;
this._workspacesPage.hide();
}
}));
Main.wm.addKeybinding('toggle-application-view',
new Gio.Settings({ schema_id: SHELL_KEYBINDINGS_SCHEMA }),
Meta.KeyBindingFlags.NONE,
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW,
Lang.bind(this, this._toggleAppsPage));
Main.wm.addKeybinding('toggle-overview',
new Gio.Settings({ schema_id: SHELL_KEYBINDINGS_SCHEMA }),
Meta.KeyBindingFlags.NONE,
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW,
Lang.bind(Main.overview, Main.overview.toggle));
let gesture;
gesture = new EdgeDragAction.EdgeDragAction(St.Side.LEFT,
Shell.ActionMode.NORMAL);
gesture = new EdgeDragAction.EdgeDragAction(St.Side.LEFT);
gesture.connect('activated', Lang.bind(this, function() {
if (Main.overview.visible)
Main.overview.hide();

View File

@@ -478,9 +478,7 @@ const WorkspaceSwitchAction = new Lang.Class({
},
vfunc_gesture_prepare : function(action, actor) {
let allowedModes = Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW;
return this.get_n_current_points() == this.get_n_touch_points() &&
(allowedModes & Main.actionMode);
return this.get_n_current_points() == this.get_n_touch_points();
},
vfunc_gesture_end : function(action, actor) {
@@ -528,7 +526,7 @@ const AppSwitchAction = new Lang.Class({
},
vfunc_gesture_prepare : function(action, actor) {
if (Main.actionMode != Shell.ActionMode.NORMAL) {
if (Main.overview.visible) {
this.cancel();
return false;
}
@@ -580,35 +578,6 @@ const AppSwitchAction = new Lang.Class({
});
Signals.addSignalMethods(AppSwitchAction.prototype);
const ResizePopup = new Lang.Class({
Name: 'ResizePopup',
_init: function() {
this._widget = new St.Widget({ layout_manager: new Clutter.BinLayout() });
this._label = new St.Label({ style_class: 'resize-popup',
x_align: Clutter.ActorAlign.CENTER,
y_align: Clutter.ActorAlign.CENTER,
x_expand: true, y_expand: true });
this._widget.add_child(this._label);
Main.uiGroup.add_actor(this._widget);
},
set: function(rect, displayW, displayH) {
/* Translators: This represents the size of a window. The first number is
* the width of the window and the second is the height. */
let text = _("%d x %d").format(displayW, displayH);
this._label.set_text(text);
this._widget.set_position(rect.x, rect.y);
this._widget.set_size(rect.width, rect.height);
},
destroy: function() {
this._widget.destroy();
this._widget = null;
},
});
const WindowManager = new Lang.Class({
Name: 'WindowManager',
@@ -647,182 +616,179 @@ const WindowManager = new Lang.Class({
this._shellwm.connect('destroy', Lang.bind(this, this._destroyWindow));
this._shellwm.connect('filter-keybinding', Lang.bind(this, this._filterKeybinding));
this._shellwm.connect('confirm-display-change', Lang.bind(this, this._confirmDisplayChange));
global.screen.connect('restacked', Lang.bind(this, this._syncStacking));
this._workspaceSwitcherPopup = null;
this._tilePreview = null;
this.setCustomKeybindingHandler('switch-to-workspace-left',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('switch-to-workspace-right',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('switch-to-workspace-up',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('switch-to-workspace-down',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('switch-to-workspace-last',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('move-to-workspace-left',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('move-to-workspace-right',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('move-to-workspace-up',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('move-to-workspace-down',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('switch-to-workspace-1',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('switch-to-workspace-2',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('switch-to-workspace-3',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('switch-to-workspace-4',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('switch-to-workspace-5',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('switch-to-workspace-6',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('switch-to-workspace-7',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('switch-to-workspace-8',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('switch-to-workspace-9',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('switch-to-workspace-10',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('switch-to-workspace-11',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('switch-to-workspace-12',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('move-to-workspace-1',
Shell.ActionMode.NORMAL,
Shell.KeyBindingMode.NORMAL,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('move-to-workspace-2',
Shell.ActionMode.NORMAL,
Shell.KeyBindingMode.NORMAL,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('move-to-workspace-3',
Shell.ActionMode.NORMAL,
Shell.KeyBindingMode.NORMAL,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('move-to-workspace-4',
Shell.ActionMode.NORMAL,
Shell.KeyBindingMode.NORMAL,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('move-to-workspace-5',
Shell.ActionMode.NORMAL,
Shell.KeyBindingMode.NORMAL,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('move-to-workspace-6',
Shell.ActionMode.NORMAL,
Shell.KeyBindingMode.NORMAL,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('move-to-workspace-7',
Shell.ActionMode.NORMAL,
Shell.KeyBindingMode.NORMAL,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('move-to-workspace-8',
Shell.ActionMode.NORMAL,
Shell.KeyBindingMode.NORMAL,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('move-to-workspace-9',
Shell.ActionMode.NORMAL,
Shell.KeyBindingMode.NORMAL,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('move-to-workspace-10',
Shell.ActionMode.NORMAL,
Shell.KeyBindingMode.NORMAL,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('move-to-workspace-11',
Shell.ActionMode.NORMAL,
Shell.KeyBindingMode.NORMAL,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('move-to-workspace-12',
Shell.ActionMode.NORMAL,
Shell.KeyBindingMode.NORMAL,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('move-to-workspace-last',
Shell.ActionMode.NORMAL,
Shell.KeyBindingMode.NORMAL,
Lang.bind(this, this._showWorkspaceSwitcher));
this.setCustomKeybindingHandler('switch-applications',
Shell.ActionMode.NORMAL,
Shell.KeyBindingMode.NORMAL,
Lang.bind(this, this._startAppSwitcher));
this.setCustomKeybindingHandler('switch-group',
Shell.ActionMode.NORMAL,
Shell.KeyBindingMode.NORMAL,
Lang.bind(this, this._startAppSwitcher));
this.setCustomKeybindingHandler('switch-applications-backward',
Shell.ActionMode.NORMAL,
Shell.KeyBindingMode.NORMAL,
Lang.bind(this, this._startAppSwitcher));
this.setCustomKeybindingHandler('switch-group-backward',
Shell.ActionMode.NORMAL,
Shell.KeyBindingMode.NORMAL,
Lang.bind(this, this._startAppSwitcher));
this.setCustomKeybindingHandler('switch-windows',
Shell.ActionMode.NORMAL,
Shell.KeyBindingMode.NORMAL,
Lang.bind(this, this._startWindowSwitcher));
this.setCustomKeybindingHandler('switch-windows-backward',
Shell.ActionMode.NORMAL,
Shell.KeyBindingMode.NORMAL,
Lang.bind(this, this._startWindowSwitcher));
this.setCustomKeybindingHandler('switch-panels',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW |
Shell.ActionMode.LOCK_SCREEN |
Shell.ActionMode.UNLOCK_SCREEN |
Shell.ActionMode.LOGIN_SCREEN,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW |
Shell.KeyBindingMode.LOCK_SCREEN |
Shell.KeyBindingMode.UNLOCK_SCREEN |
Shell.KeyBindingMode.LOGIN_SCREEN,
Lang.bind(this, this._startA11ySwitcher));
this.setCustomKeybindingHandler('switch-panels-backward',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW |
Shell.ActionMode.LOCK_SCREEN |
Shell.ActionMode.UNLOCK_SCREEN |
Shell.ActionMode.LOGIN_SCREEN,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW |
Shell.KeyBindingMode.LOCK_SCREEN |
Shell.KeyBindingMode.UNLOCK_SCREEN |
Shell.KeyBindingMode.LOGIN_SCREEN,
Lang.bind(this, this._startA11ySwitcher));
this.addKeybinding('pause-resume-tweens',
new Gio.Settings({ schema_id: SHELL_KEYBINDINGS_SCHEMA }),
Meta.KeyBindingFlags.NONE,
Shell.ActionMode.ALL,
Shell.KeyBindingMode.ALL,
Lang.bind(this, this._toggleTweens));
this.addKeybinding('open-application-menu',
new Gio.Settings({ schema_id: SHELL_KEYBINDINGS_SCHEMA }),
Meta.KeyBindingFlags.NONE,
Shell.ActionMode.NORMAL |
Shell.ActionMode.TOPBAR_POPUP,
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.TOPBAR_POPUP,
Lang.bind(this, this._toggleAppMenu));
global.display.connect('show-resize-popup', Lang.bind(this, this._showResizePopup));
Main.overview.connect('showing', Lang.bind(this, function() {
for (let i = 0; i < this._dimmedWindows.length; i++)
this._undimWindow(this._dimmedWindows[i]);
@@ -888,44 +854,6 @@ const WindowManager = new Lang.Class({
Main.activateWindow(nextWindow);
},
insertWorkspace: function(pos) {
if (!Meta.prefs_get_dynamic_workspaces())
return;
let windows = global.get_window_actors().map(function(winActor) {
return winActor.meta_window;
});
// To create a new workspace, we slide all the windows on workspaces
// below us to the next workspace, leaving a blank workspace for us
// to recycle.
windows.forEach(function(window) {
// If the window is attached to an ancestor, we don't need/want
// to move it
if (window.get_transient_for() != null)
return;
// Same for OR windows
if (window.is_override_redirect())
return;
// Windows on workspaces below pos don't need moving
let index = window.get_workspace().index();
if (index < pos)
return;
window.change_workspace_by_index(index + 1, true);
});
// If the new workspace was inserted before the active workspace,
// activate the workspace to which its windows went
let activeIndex = global.screen.get_active_workspace_index();
if (activeIndex >= pos) {
let newWs = global.screen.get_workspace_by_index(activeIndex + 1);
this._blockAnimations = true;
newWs.activate(global.get_current_time());
this._blockAnimations = false;
}
},
keepWorkspaceAlive: function(workspace, duration) {
if (!this._workspaceTracker)
return;
@@ -947,7 +875,7 @@ const WindowManager = new Lang.Class({
removeKeybinding: function(name) {
if (global.display.remove_keybinding(name))
this.allowKeybinding(name, Shell.ActionMode.NONE);
this.allowKeybinding(name, Shell.KeyBindingMode.NONE);
},
allowKeybinding: function(name, modes) {
@@ -955,7 +883,7 @@ const WindowManager = new Lang.Class({
},
_shouldAnimate: function() {
return !(Main.overview.visible || this._blockAnimations);
return !Main.overview.visible;
},
_shouldAnimateActor: function(actor, types) {
@@ -1146,8 +1074,10 @@ const WindowManager = new Lang.Class({
return;
}
if (actor.meta_window.is_attached_dialog())
if (actor.meta_window.is_attached_dialog()) {
/* Scale the window from the center of the parent */
this._checkDimming(actor.get_meta_window().get_transient_for());
}
switch (actor._windowType) {
case Meta.WindowType.NORMAL:
@@ -1302,36 +1232,18 @@ const WindowManager = new Lang.Class({
},
_filterKeybinding: function(shellwm, binding) {
if (Main.actionMode == Shell.ActionMode.NONE)
if (Main.keybindingMode == Shell.KeyBindingMode.NONE)
return true;
// There's little sense in implementing a keybinding in mutter and
// not having it work in NORMAL mode; handle this case generically
// so we don't have to explicitly allow all builtin keybindings in
// NORMAL mode.
if (Main.actionMode == Shell.ActionMode.NORMAL &&
if (Main.keybindingMode == Shell.KeyBindingMode.NORMAL &&
binding.is_builtin())
return false;
return !(this._allowedKeybindings[binding.get_name()] & Main.actionMode);
},
_syncStacking: function() {
if (this._switchData == null)
return;
// Update stacking of windows in inGroup (aka the workspace we are
// switching to). Windows in outGroup are about to be hidden anyway,
// so we just ignore them here.
let windows = global.get_window_actors();
let sibling = null;
for (let i = 0; i < windows.length; i++) {
if (windows[i].get_parent() != this._switchData.inGroup)
continue;
this._switchData.inGroup.set_child_above_sibling(windows[i], sibling);
sibling = windows[i];
}
return !(this._allowedKeybindings[binding.get_name()] & Main.keybindingMode);
},
_switchWorkspace : function(shellwm, from, to, direction) {
@@ -1525,11 +1437,6 @@ const WindowManager = new Lang.Class({
direction = Meta.MotionDirection.DOWN;
newWs = screen.get_workspace_by_index(screen.n_workspaces - 1);
} else if (isNaN(target)) {
// Prepend a new workspace dynamically
if (screen.get_active_workspace_index() == 0 &&
action == 'move' && target == 'up')
this.insertWorkspace(0);
direction = Meta.MotionDirection[target.toUpperCase()];
newWs = screen.get_active_workspace().get_neighbor(direction);
} else if (target > 0) {
@@ -1594,18 +1501,4 @@ const WindowManager = new Lang.Class({
let dialog = new DisplayChangeDialog(this._shellwm);
dialog.open();
},
_showResizePopup: function(display, show, rect, displayW, displayH) {
if (show) {
if (!this._resizePopup)
this._resizePopup = new ResizePopup();
this._resizePopup.set(rect, displayW, displayH);
} else {
if (this._resizePopup) {
this._resizePopup.destroy();
this._resizePopup = null;
}
}
},
});

View File

@@ -795,13 +795,35 @@ const ThumbnailsBox = new Lang.Class({
let isWindow = !!source.realWindow;
// To create a new workspace, we first slide all the windows on workspaces
// below us to the next workspace, leaving a blank workspace for us to recycle.
let newWorkspaceIndex;
[newWorkspaceIndex, this._dropPlaceholderPos] = [this._dropPlaceholderPos, -1];
// Nab all the windows below us.
let windows = global.get_window_actors().filter(function(winActor) {
// If the window is attached to an ancestor, we don't need/want to move it
let window = winActor.meta_window;
if (window.get_transient_for() != null)
return false;
if (isWindow)
return window.get_workspace().index() >= newWorkspaceIndex && winActor != source;
else
return window.get_workspace().index() >= newWorkspaceIndex;
});
this._spliceIndex = newWorkspaceIndex;
Main.wm.insertWorkspace(newWorkspaceIndex);
// ... move them down one.
windows.forEach(function(winActor) {
let window = winActor.meta_window;
window.change_workspace_by_index(window.get_workspace().index() + 1, true);
});
if (isWindow) {
// ... and bam, a workspace, good as new.
// Move the window to our monitor first if necessary.
let thumbMonitor = this._thumbnails[newWorkspaceIndex].monitorIndex;
if (source.metaWindow.get_monitor() != thumbMonitor)

View File

@@ -18,6 +18,8 @@ const Workspace = imports.ui.workspace;
const WorkspaceThumbnail = imports.ui.workspaceThumbnail;
const WORKSPACE_SWITCH_TIME = 0.25;
// Note that mutter has a compile-time limit of 36
const MAX_WORKSPACES = 16;
const AnimationType = {
ZOOM: 0,

File diff suppressed because it is too large Load Diff

391
po/cs.po

File diff suppressed because it is too large Load Diff

444
po/de.po

File diff suppressed because it is too large Load Diff

349
po/es.po
View File

@@ -3,15 +3,15 @@
# This file is distributed under the same license as the gnome-shell package.
# Jorge González <jorgegonz@svn.gnome.org>, 2009, 2010, 2011.
# Benjamín Valero Espinosa <benjavalero@gmail.com>, 2011.
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2010, 2011, 2012, 2013, 2014, 2015.
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2010, 2011, 2012, 2013, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell.master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2015-01-12 08:33+0000\n"
"PO-Revision-Date: 2015-01-12 12:05+0100\n"
"POT-Creation-Date: 2014-10-06 07:46+0000\n"
"PO-Revision-Date: 2014-10-06 13:00+0200\n"
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: Español; Castellano <gnome-es-list@gnome.org>\n"
"Language: es\n"
@@ -304,8 +304,8 @@ msgstr ""
"Retardo al cambiar el foco del ratón hasta que el puntero deja de moverse"
#: ../data/org.gnome.Shell.PortalHelper.desktop.in.h:1
msgid "Network Login"
msgstr "Inicio de sesión de la red"
msgid "Captive Portal"
msgstr "Portal captivo"
#: ../js/extensionPrefs/main.js:123
#, javascript-format
@@ -319,7 +319,7 @@ msgstr "Extensiones de GNOME Shell"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:143
#: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916
#: ../js/ui/status/network.js:915
msgid "Cancel"
msgstr "Cancelar"
@@ -337,33 +337,33 @@ msgctxt "button"
msgid "Sign In"
msgstr "Iniciar sesión"
#: ../js/gdm/loginDialog.js:276
#: ../js/gdm/loginDialog.js:269
msgid "Choose Session"
msgstr "Elegir sesión"
#: ../js/gdm/loginDialog.js:428
#: ../js/gdm/loginDialog.js:429
msgid "Not listed?"
msgstr "¿No está en la lista?"
#: ../js/gdm/loginDialog.js:814
#: ../js/gdm/loginDialog.js:614
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(ej., usuario o %s)"
#: ../js/gdm/loginDialog.js:819 ../js/ui/components/networkAgent.js:269
#: ../js/gdm/loginDialog.js:619 ../js/ui/components/networkAgent.js:269
#: ../js/ui/components/networkAgent.js:287
msgid "Username: "
msgstr "Nombre de usuario:"
#: ../js/gdm/loginDialog.js:1151
#: ../js/gdm/loginDialog.js:922
msgid "Login Window"
msgstr "Ventana de inicio de sesión"
#: ../js/gdm/util.js:341
#: ../js/gdm/util.js:323
msgid "Authentication error"
msgstr "Error de autenticación"
#: ../js/gdm/util.js:473
#: ../js/gdm/util.js:453
msgid "(or swipe finger)"
msgstr "(o pase el dedo)"
@@ -384,31 +384,31 @@ msgstr "Falló la ejecución de «%s»:"
msgid "Web Authentication Redirect"
msgstr "Redirección para autenticación web"
#: ../js/ui/appDisplay.js:770
#: ../js/ui/appDisplay.js:772
msgid "Frequently used applications will appear here"
msgstr "Las aplicaciones usadas frecuentemente aparecerán aquí"
#: ../js/ui/appDisplay.js:881
#: ../js/ui/appDisplay.js:883
msgid "Frequent"
msgstr "Frecuentes"
#: ../js/ui/appDisplay.js:888
#: ../js/ui/appDisplay.js:890
msgid "All"
msgstr "Todas"
#: ../js/ui/appDisplay.js:1789
#: ../js/ui/appDisplay.js:1790
msgid "New Window"
msgstr "Ventana nueva"
#: ../js/ui/appDisplay.js:1815 ../js/ui/dash.js:285
#: ../js/ui/appDisplay.js:1816 ../js/ui/dash.js:285
msgid "Remove from Favorites"
msgstr "Quitar de los favoritos"
#: ../js/ui/appDisplay.js:1821
#: ../js/ui/appDisplay.js:1822
msgid "Add to Favorites"
msgstr "Añadir a los favoritos"
#: ../js/ui/appDisplay.js:1830
#: ../js/ui/appDisplay.js:1831
msgid "Show Details"
msgstr "Mostrar detalles"
@@ -422,7 +422,7 @@ msgstr "Se ha añadido %s a sus favoritos."
msgid "%s has been removed from your favorites."
msgstr "Se ha quitado %s de sus favoritos."
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:819
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:813
#: ../js/ui/status/system.js:337
msgid "Settings"
msgstr "Configuración"
@@ -431,23 +431,17 @@ msgstr "Configuración"
msgid "Change Background…"
msgstr "Cambiar el fondo…"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). */
#: ../js/ui/calendar.js:39
msgctxt "calendar-no-work"
msgid "06"
msgstr "06"
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#. */
#: ../js/ui/calendar.js:68
#: ../js/ui/calendar.js:67
msgctxt "event list time"
msgid "All Day"
msgstr "Todo el día"
#. Translators: Shown in calendar event list, if 24h format,
#. \u2236 is a ratio character, similar to : */
#: ../js/ui/calendar.js:75
#: ../js/ui/calendar.js:73
msgctxt "event list time"
msgid "%H%M"
msgstr "%H%M"
@@ -455,7 +449,7 @@ msgstr "%H%M"
#. Translators: Shown in calendar event list, if 12h format,
#. \u2236 is a ratio character, similar to : and \u2009 is
#. a thin space */
#: ../js/ui/calendar.js:84
#: ../js/ui/calendar.js:82
msgctxt "event list time"
msgid "%l%M%p"
msgstr "%l%M%p"
@@ -465,43 +459,43 @@ msgstr "%l%M%p"
#. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S".
#. */
#: ../js/ui/calendar.js:98
#: ../js/ui/calendar.js:113
msgctxt "grid sunday"
msgid "S"
msgstr "D"
#. Translators: Calendar grid abbreviation for Monday */
#: ../js/ui/calendar.js:100
#: ../js/ui/calendar.js:115
msgctxt "grid monday"
msgid "M"
msgstr "L"
#. Translators: Calendar grid abbreviation for Tuesday */
#: ../js/ui/calendar.js:102
#: ../js/ui/calendar.js:117
msgctxt "grid tuesday"
msgid "T"
msgstr "M"
#. Translators: Calendar grid abbreviation for Wednesday */
#: ../js/ui/calendar.js:104
#: ../js/ui/calendar.js:119
msgctxt "grid wednesday"
msgid "W"
msgstr "X"
#. Translators: Calendar grid abbreviation for Thursday */
#: ../js/ui/calendar.js:106
#: ../js/ui/calendar.js:121
msgctxt "grid thursday"
msgid "T"
msgstr "J"
#. Translators: Calendar grid abbreviation for Friday */
#: ../js/ui/calendar.js:108
#: ../js/ui/calendar.js:123
msgctxt "grid friday"
msgid "F"
msgstr "V"
#. Translators: Calendar grid abbreviation for Saturday */
#: ../js/ui/calendar.js:110
#: ../js/ui/calendar.js:125
msgctxt "grid saturday"
msgid "S"
msgstr "S"
@@ -512,83 +506,85 @@ msgstr "S"
#. * so they need to be unique (e.g. Tuesday and Thursday cannot
#. * both be 'T').
#. */
#: ../js/ui/calendar.js:123
#: ../js/ui/calendar.js:138
msgctxt "list sunday"
msgid "Su"
msgstr "Dom"
#. Translators: Event list abbreviation for Monday */
#: ../js/ui/calendar.js:125
#: ../js/ui/calendar.js:140
msgctxt "list monday"
msgid "M"
msgstr "L"
#. Translators: Event list abbreviation for Tuesday */
#: ../js/ui/calendar.js:127
#: ../js/ui/calendar.js:142
msgctxt "list tuesday"
msgid "T"
msgstr "M"
#. Translators: Event list abbreviation for Wednesday */
#: ../js/ui/calendar.js:129
#: ../js/ui/calendar.js:144
msgctxt "list wednesday"
msgid "W"
msgstr "X"
#. Translators: Event list abbreviation for Thursday */
#: ../js/ui/calendar.js:131
#: ../js/ui/calendar.js:146
msgctxt "list thursday"
msgid "Th"
msgstr "J"
#. Translators: Event list abbreviation for Friday */
#: ../js/ui/calendar.js:133
#: ../js/ui/calendar.js:148
msgctxt "list friday"
msgid "F"
msgstr "V"
#. Translators: Event list abbreviation for Saturday */
#: ../js/ui/calendar.js:135
#: ../js/ui/calendar.js:150
msgctxt "list saturday"
msgid "S"
msgstr "S"
#: ../js/ui/calendar.js:460
#: ../js/ui/calendar.js:453
msgid "Previous month"
msgstr "Mes anterior"
#: ../js/ui/calendar.js:470
#: ../js/ui/calendar.js:463
msgid "Next month"
msgstr "Siguiente mes"
#. Translators: Text to show if there are no events */
#: ../js/ui/calendar.js:806
#: ../js/ui/calendar.js:781
msgid "Nothing Scheduled"
msgstr "Nada programado"
#: ../js/ui/calendar.js:825
#. Translators: Shown on calendar heading when selected day occurs on current year */
#: ../js/ui/calendar.js:799
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %d de %B"
#: ../js/ui/calendar.js:829
#. Translators: Shown on calendar heading when selected day occurs on different year */
#: ../js/ui/calendar.js:802
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %d de %B de %Y"
#: ../js/ui/calendar.js:841
#: ../js/ui/calendar.js:813
msgid "Today"
msgstr "Hoy"
#: ../js/ui/calendar.js:845
#: ../js/ui/calendar.js:817
msgid "Tomorrow"
msgstr "Mañana"
#: ../js/ui/calendar.js:856
#: ../js/ui/calendar.js:828
msgid "This week"
msgstr "Esta semana"
#: ../js/ui/calendar.js:864
#: ../js/ui/calendar.js:836
msgid "Next week"
msgstr "La semana que viene"
@@ -622,7 +618,7 @@ msgid "Type again:"
msgstr "Escriba de nuevo:"
#: ../js/ui/components/networkAgent.js:138 ../js/ui/status/network.js:277
#: ../js/ui/status/network.js:359 ../js/ui/status/network.js:919
#: ../js/ui/status/network.js:359 ../js/ui/status/network.js:918
msgid "Connect"
msgstr "Conectar"
@@ -716,102 +712,102 @@ msgstr "Autenticar"
msgid "Sorry, that didn't work. Please try again."
msgstr "Inténtelo de nuevo,"
#: ../js/ui/components/telepathyClient.js:242
#: ../js/ui/components/telepathyClient.js:240
msgid "Invitation"
msgstr "Invitación"
#: ../js/ui/components/telepathyClient.js:302
#: ../js/ui/components/telepathyClient.js:300
msgid "Call"
msgstr "Llamar"
#: ../js/ui/components/telepathyClient.js:318
#: ../js/ui/components/telepathyClient.js:316
msgid "File Transfer"
msgstr "Transferencia de archivos"
#: ../js/ui/components/telepathyClient.js:422
#: ../js/ui/components/telepathyClient.js:420
msgid "Chat"
msgstr "Chat"
#: ../js/ui/components/telepathyClient.js:485
#: ../js/ui/components/telepathyClient.js:483
msgid "Unmute"
msgstr "Dar voz"
#: ../js/ui/components/telepathyClient.js:485
#: ../js/ui/components/telepathyClient.js:483
msgid "Mute"
msgstr "Silenciar"
#. Translators: Time in 24h format */
#: ../js/ui/components/telepathyClient.js:955
#: ../js/ui/components/telepathyClient.js:953
msgid "%H%M"
msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" */
#: ../js/ui/components/telepathyClient.js:962
#: ../js/ui/components/telepathyClient.js:960
msgid "Yesterday, %H%M"
msgstr "Ayer, %H%M"
#. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" */
#: ../js/ui/components/telepathyClient.js:969
#: ../js/ui/components/telepathyClient.js:967
msgid "%A, %H%M"
msgstr "%A, %H%M"
#. Translators: this is the month name and day number
#. followed by a time string in 24h format.
#. i.e. "May 25, 14:30" */
#: ../js/ui/components/telepathyClient.js:976
#: ../js/ui/components/telepathyClient.js:974
msgid "%B %d, %H%M"
msgstr "%d de %B, %H%M"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30" */
#: ../js/ui/components/telepathyClient.js:982
#: ../js/ui/components/telepathyClient.js:980
msgid "%B %d %Y, %H%M"
msgstr "%d de %B de %Y, %H%M"
#. Translators: Time in 24h format */
#: ../js/ui/components/telepathyClient.js:988
#: ../js/ui/components/telepathyClient.js:986
msgid "%l%M %p"
msgstr "%l%M %p"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:995
#: ../js/ui/components/telepathyClient.js:993
msgid "Yesterday, %l%M %p"
msgstr "Ayer a las %l%M %p"
#. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:1002
#: ../js/ui/components/telepathyClient.js:1000
msgid "%A, %l%M %p"
msgstr "%A, %l%M %p"
#. Translators: this is the month name and day number
#. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:1009
#: ../js/ui/components/telepathyClient.js:1007
msgid "%B %d, %l%M %p"
msgstr "%d de %B, %l%M %p"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"*/
#: ../js/ui/components/telepathyClient.js:1015
#: ../js/ui/components/telepathyClient.js:1013
msgid "%B %d %Y, %l%M %p"
msgstr "%d de %B de %Y, %l%M %p"
#. Translators: this is the other person changing their old IM name to their new
#. IM name. */
#: ../js/ui/components/telepathyClient.js:1047
#: ../js/ui/components/telepathyClient.js:1045
#, javascript-format
msgid "%s is now known as %s"
msgstr "Ahora %s se llama %s"
#. translators: argument is a room name like
#. * room@jabber.org for example. */
#: ../js/ui/components/telepathyClient.js:1151
#: ../js/ui/components/telepathyClient.js:1149
#, javascript-format
msgid "Invitation to %s"
msgstr "Invitación a %s"
@@ -819,38 +815,38 @@ msgstr "Invitación a %s"
#. translators: first argument is the name of a contact and the second
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
#. * for example. */
#: ../js/ui/components/telepathyClient.js:1159
#: ../js/ui/components/telepathyClient.js:1157
#, javascript-format
msgid "%s is inviting you to join %s"
msgstr "%s le está invitando a unirse a %s"
#: ../js/ui/components/telepathyClient.js:1161
#: ../js/ui/components/telepathyClient.js:1196
#: ../js/ui/components/telepathyClient.js:1230
#: ../js/ui/components/telepathyClient.js:1287
#: ../js/ui/components/telepathyClient.js:1159
#: ../js/ui/components/telepathyClient.js:1194
#: ../js/ui/components/telepathyClient.js:1228
#: ../js/ui/components/telepathyClient.js:1286
msgid "Decline"
msgstr "Rechazar"
#: ../js/ui/components/telepathyClient.js:1167
#: ../js/ui/components/telepathyClient.js:1236
#: ../js/ui/components/telepathyClient.js:1292
#: ../js/ui/components/telepathyClient.js:1165
#: ../js/ui/components/telepathyClient.js:1234
#: ../js/ui/components/telepathyClient.js:1291
msgid "Accept"
msgstr "Aceptar"
#. translators: argument is a contact name like Alice for example. */
#: ../js/ui/components/telepathyClient.js:1186
#: ../js/ui/components/telepathyClient.js:1184
#, javascript-format
msgid "Video call from %s"
msgstr "Videollamada de %s"
#. translators: argument is a contact name like Alice for example. */
#: ../js/ui/components/telepathyClient.js:1189
#: ../js/ui/components/telepathyClient.js:1187
#, javascript-format
msgid "Call from %s"
msgstr "Llamada de %s"
#. translators: this is a button label (verb), not a noun */
#: ../js/ui/components/telepathyClient.js:1203
#: ../js/ui/components/telepathyClient.js:1201
msgid "Answer"
msgstr "Responder"
@@ -859,112 +855,112 @@ msgstr "Responder"
#. * file name. The string will be something
#. * like: "Alice is sending you test.ogg"
#. */
#: ../js/ui/components/telepathyClient.js:1224
#: ../js/ui/components/telepathyClient.js:1222
#, javascript-format
msgid "%s is sending you %s"
msgstr "%s le está enviando %s"
#. To translators: The parameter is the contact's alias */
#: ../js/ui/components/telepathyClient.js:1253
#: ../js/ui/components/telepathyClient.js:1251
#, javascript-format
msgid "%s would like permission to see when you are online"
msgstr "%s solicita permiso para ver cuándo está en línea"
#: ../js/ui/components/telepathyClient.js:1338
#: ../js/ui/components/telepathyClient.js:1337
msgid "Network error"
msgstr "Error de la red"
#: ../js/ui/components/telepathyClient.js:1340
#: ../js/ui/components/telepathyClient.js:1339
msgid "Authentication failed"
msgstr "Falló la autenticación"
#: ../js/ui/components/telepathyClient.js:1342
#: ../js/ui/components/telepathyClient.js:1341
msgid "Encryption error"
msgstr "Error de cifrado"
#: ../js/ui/components/telepathyClient.js:1344
#: ../js/ui/components/telepathyClient.js:1343
msgid "Certificate not provided"
msgstr "Certificado no proporcionado"
#: ../js/ui/components/telepathyClient.js:1346
#: ../js/ui/components/telepathyClient.js:1345
msgid "Certificate untrusted"
msgstr "No se confía en el certificado"
#: ../js/ui/components/telepathyClient.js:1348
#: ../js/ui/components/telepathyClient.js:1347
msgid "Certificate expired"
msgstr "Certificado caducado"
#: ../js/ui/components/telepathyClient.js:1350
#: ../js/ui/components/telepathyClient.js:1349
msgid "Certificate not activated"
msgstr "Certificado no activado"
#: ../js/ui/components/telepathyClient.js:1352
#: ../js/ui/components/telepathyClient.js:1351
msgid "Certificate hostname mismatch"
msgstr "El nombre del servidor dle certificado no coincide"
#: ../js/ui/components/telepathyClient.js:1354
#: ../js/ui/components/telepathyClient.js:1353
msgid "Certificate fingerprint mismatch"
msgstr "La huella del certificado no coincide"
#: ../js/ui/components/telepathyClient.js:1356
#: ../js/ui/components/telepathyClient.js:1355
msgid "Certificate self-signed"
msgstr "Certificado autofirmado"
#: ../js/ui/components/telepathyClient.js:1358
#: ../js/ui/components/telepathyClient.js:1357
msgid "Status is set to offline"
msgstr "El estado está establecido a «desconectado»"
#: ../js/ui/components/telepathyClient.js:1360
#: ../js/ui/components/telepathyClient.js:1359
msgid "Encryption is not available"
msgstr "El cifrado no está disponible"
#: ../js/ui/components/telepathyClient.js:1362
#: ../js/ui/components/telepathyClient.js:1361
msgid "Certificate is invalid"
msgstr "El certificado no es válido"
#: ../js/ui/components/telepathyClient.js:1364
#: ../js/ui/components/telepathyClient.js:1363
msgid "Connection has been refused"
msgstr "Se ha rechazado la conexión"
#: ../js/ui/components/telepathyClient.js:1366
#: ../js/ui/components/telepathyClient.js:1365
msgid "Connection can't be established"
msgstr "No se puede establecer la conexión"
#: ../js/ui/components/telepathyClient.js:1368
#: ../js/ui/components/telepathyClient.js:1367
msgid "Connection has been lost"
msgstr "Se ha perdido la conexión"
#: ../js/ui/components/telepathyClient.js:1370
#: ../js/ui/components/telepathyClient.js:1369
msgid "This account is already connected to the server"
msgstr "Esta cuenta ya está conectada al servidor"
#: ../js/ui/components/telepathyClient.js:1372
#: ../js/ui/components/telepathyClient.js:1371
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr ""
"Se ha sustituido la conexión por una nueva conexión usando el mismo recurso"
#: ../js/ui/components/telepathyClient.js:1374
#: ../js/ui/components/telepathyClient.js:1373
msgid "The account already exists on the server"
msgstr "La cuenta ya existe en el servidor"
#: ../js/ui/components/telepathyClient.js:1376
#: ../js/ui/components/telepathyClient.js:1375
msgid "Server is currently too busy to handle the connection"
msgstr ""
"Actualmente el servidor está muy ocupado intentando gestionar la conexión"
#: ../js/ui/components/telepathyClient.js:1378
#: ../js/ui/components/telepathyClient.js:1377
msgid "Certificate has been revoked"
msgstr "Se ha revocado el certificado"
#: ../js/ui/components/telepathyClient.js:1380
#: ../js/ui/components/telepathyClient.js:1379
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr ""
"El certificado usa un algoritmo de cifrado inseguro o es criptográficamente "
"débil"
#: ../js/ui/components/telepathyClient.js:1382
#: ../js/ui/components/telepathyClient.js:1381
msgid ""
"The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library"
@@ -973,26 +969,26 @@ msgstr ""
"certificado del servidor exceden los límites impuestos por la biblioteca de "
"criptografía"
#: ../js/ui/components/telepathyClient.js:1384
#: ../js/ui/components/telepathyClient.js:1383
msgid "Internal error"
msgstr "Error interno"
#. translators: argument is the account name, like
#. * name@jabber.org for example. */
#: ../js/ui/components/telepathyClient.js:1394
#: ../js/ui/components/telepathyClient.js:1393
#, javascript-format
msgid "Unable to connect to %s"
msgstr "No se pudo conectar a %s"
#: ../js/ui/components/telepathyClient.js:1399
#: ../js/ui/components/telepathyClient.js:1398
msgid "View account"
msgstr "Ver cuenta"
#: ../js/ui/components/telepathyClient.js:1436
#: ../js/ui/components/telepathyClient.js:1435
msgid "Unknown reason"
msgstr "Razón desconocida"
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:155
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:154
msgid "Windows"
msgstr "Ventanas"
@@ -1163,7 +1159,7 @@ msgstr "Instalar"
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "¿Descargar e instalar «%s» desde extensions.gnome.org?"
#: ../js/ui/keyboard.js:706 ../js/ui/status/keyboard.js:539
#: ../js/ui/keyboard.js:700 ../js/ui/status/keyboard.js:523
msgid "Keyboard"
msgstr "Teclado"
@@ -1219,55 +1215,54 @@ msgstr "Ver fuente"
msgid "Web Page"
msgstr "Página web"
#: ../js/ui/messageTray.js:1332
#: ../js/ui/messageTray.js:1327
msgid "Open"
msgstr "Abrir"
#: ../js/ui/messageTray.js:1339
#: ../js/ui/messageTray.js:1334
msgid "Remove"
msgstr "Quitar"
#: ../js/ui/messageTray.js:1636
#: ../js/ui/messageTray.js:1631
msgid "Notifications"
msgstr "Notificaciones"
#: ../js/ui/messageTray.js:1643
#: ../js/ui/messageTray.js:1638
msgid "Clear Messages"
msgstr "Limpiar mensajes"
#: ../js/ui/messageTray.js:1662
#: ../js/ui/messageTray.js:1657
msgid "Notification Settings"
msgstr "Configuración de las notificaciones"
#: ../js/ui/messageTray.js:1715
#: ../js/ui/messageTray.js:1710
msgid "Tray Menu"
msgstr "Bandeja de menú"
#: ../js/ui/messageTray.js:1939
#: ../js/ui/messageTray.js:1934
msgid "No Messages"
msgstr "No hay mensajes"
#: ../js/ui/messageTray.js:1986
#: ../js/ui/messageTray.js:1979
msgid "Message Tray"
msgstr "Bandeja de mensajes"
#: ../js/ui/messageTray.js:2443 ../js/ui/overviewControls.js:483
#: ../js/ui/screenShield.js:152
#: ../js/ui/messageTray.js:2992
msgid "System Information"
msgstr "Información del sistema"
#: ../js/ui/notificationDaemon.js:513 ../src/shell-app.c:425
msgctxt "program"
msgid "Unknown"
msgstr "Desconocido"
#: ../js/ui/overviewControls.js:482 ../js/ui/screenShield.js:151
#, javascript-format
msgid "%d new message"
msgid_plural "%d new messages"
msgstr[0] "%d mensaje nuevo"
msgstr[1] "%d mensajes nuevos"
#: ../js/ui/messageTray.js:3013
msgid "System Information"
msgstr "Información del sistema"
#: ../js/ui/notificationDaemon.js:513 ../src/shell-app.c:439
msgctxt "program"
msgid "Unknown"
msgstr "Desconocido"
#: ../js/ui/overview.js:84
msgid "Undo"
msgstr "Deshacer"
@@ -1284,17 +1279,17 @@ msgstr "Vista general"
msgid "Type to search…"
msgstr "Escribir para buscar…"
#: ../js/ui/panel.js:521
#: ../js/ui/panel.js:515
msgid "Quit"
msgstr "Salir"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". */
#: ../js/ui/panel.js:573
#: ../js/ui/panel.js:567
msgid "Activities"
msgstr "Actividades"
#: ../js/ui/panel.js:924
#: ../js/ui/panel.js:918
msgid "Top Bar"
msgstr "Barra superior"
@@ -1320,34 +1315,34 @@ msgstr "Reiniciando…"
msgid "%A, %B %d"
msgstr "%A, %d de %B"
#: ../js/ui/screenShield.js:154
#: ../js/ui/screenShield.js:153
#, javascript-format
msgid "%d new notification"
msgid_plural "%d new notifications"
msgstr[0] "%d notificación nueva"
msgstr[1] "%d notificaciones nuevas"
#: ../js/ui/screenShield.js:473 ../js/ui/status/system.js:345
#: ../js/ui/screenShield.js:472 ../js/ui/status/system.js:345
msgid "Lock"
msgstr "Bloquear"
#: ../js/ui/screenShield.js:709
#: ../js/ui/screenShield.js:706
msgid "GNOME needs to lock the screen"
msgstr "GNOME necesita bloquear la pantalla"
#: ../js/ui/screenShield.js:836 ../js/ui/screenShield.js:1312
#: ../js/ui/screenShield.js:833 ../js/ui/screenShield.js:1304
msgid "Unable to lock"
msgstr "No se pudo bloquear"
#: ../js/ui/screenShield.js:837 ../js/ui/screenShield.js:1313
#: ../js/ui/screenShield.js:834 ../js/ui/screenShield.js:1305
msgid "Lock was blocked by an application"
msgstr "Una aplicación impidió el bloqueo"
#: ../js/ui/search.js:609
#: ../js/ui/search.js:611
msgid "Searching…"
msgstr "Buscando…"
#: ../js/ui/search.js:611
#: ../js/ui/search.js:613
msgid "No results."
msgstr "No se encontraron resultados."
@@ -1424,9 +1419,9 @@ msgid "Bluetooth"
msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
#: ../js/ui/status/network.js:360 ../js/ui/status/network.js:1282
#: ../js/ui/status/network.js:1393 ../js/ui/status/rfkill.js:91
#: ../js/ui/status/rfkill.js:118
#: ../js/ui/status/network.js:360 ../js/ui/status/network.js:1281
#: ../js/ui/status/network.js:1392 ../js/ui/status/rfkill.js:86
#: ../js/ui/status/rfkill.js:114
msgid "Turn Off"
msgstr "Apagar"
@@ -1441,7 +1436,7 @@ msgid_plural "%d Connected Devices"
msgstr[0] "%d dispositivo conectado"
msgstr[1] "%d dispositivos conectados"
#: ../js/ui/status/bluetooth.js:106 ../js/ui/status/network.js:1310
#: ../js/ui/status/bluetooth.js:106 ../js/ui/status/network.js:1309
msgid "Not Connected"
msgstr "No conectado"
@@ -1449,7 +1444,7 @@ msgstr "No conectado"
msgid "Brightness"
msgstr "Brillo"
#: ../js/ui/status/keyboard.js:563
#: ../js/ui/status/keyboard.js:547
msgid "Show Keyboard Layout"
msgstr "Mostrar la distribución del teclado"
@@ -1477,8 +1472,8 @@ msgstr "Activar"
msgid "<unknown>"
msgstr "<desconocido>"
#: ../js/ui/status/network.js:457 ../js/ui/status/network.js:1308
#: ../js/ui/status/network.js:1512
#: ../js/ui/status/network.js:457 ../js/ui/status/network.js:1307
#: ../js/ui/status/network.js:1511
msgid "Off"
msgstr "Desconectado"
@@ -1496,7 +1491,7 @@ msgstr "Sin gestionar"
msgid "Disconnecting"
msgstr "Desconectando"
#: ../js/ui/status/network.js:471 ../js/ui/status/network.js:1302
#: ../js/ui/status/network.js:471 ../js/ui/status/network.js:1301
msgid "Connecting"
msgstr "Conectando"
@@ -1517,7 +1512,7 @@ msgstr "Falta el «firmware»"
msgid "Unavailable"
msgstr "No disponible"
#: ../js/ui/status/network.js:488 ../js/ui/status/network.js:1696
#: ../js/ui/status/network.js:488 ../js/ui/status/network.js:1695
msgid "Connection failed"
msgstr "Falló la conexión"
@@ -1529,7 +1524,7 @@ msgstr "Configuración de red cableada"
msgid "Mobile Broadband Settings"
msgstr "Configuración de banda ancha móvil"
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1306
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
msgid "Hardware Disabled"
msgstr "Hardware desactivado"
@@ -1569,60 +1564,60 @@ msgstr "Redes Wi-Fi"
msgid "Select a network"
msgstr "Seleccionar una red"
#: ../js/ui/status/network.js:883
#: ../js/ui/status/network.js:882
msgid "No Networks"
msgstr "No hay redes"
#: ../js/ui/status/network.js:904 ../js/ui/status/rfkill.js:116
#: ../js/ui/status/network.js:903 ../js/ui/status/rfkill.js:112
msgid "Use hardware switch to turn off"
msgstr "Usar el interruptor hardware para apagar"
#: ../js/ui/status/network.js:1174
#: ../js/ui/status/network.js:1173
msgid "Select Network"
msgstr "Seleccionar red"
#: ../js/ui/status/network.js:1180
#: ../js/ui/status/network.js:1179
msgid "Wi-Fi Settings"
msgstr "Configuración de Wi-Fi"
#: ../js/ui/status/network.js:1282
#: ../js/ui/status/network.js:1281
msgid "Turn On"
msgstr "Encender"
#: ../js/ui/status/network.js:1299
#: ../js/ui/status/network.js:1298
msgid "Hotspot Active"
msgstr "Punto de acceso activo"
#: ../js/ui/status/network.js:1410
#: ../js/ui/status/network.js:1409
msgid "connecting..."
msgstr "conectando…"
#. Translators: this is for network connections that require some kind of key or password */
#: ../js/ui/status/network.js:1413
#: ../js/ui/status/network.js:1412
msgid "authentication required"
msgstr "se necesita autenticación"
#: ../js/ui/status/network.js:1415
#: ../js/ui/status/network.js:1414
msgid "connection failed"
msgstr "falló la conexión"
#: ../js/ui/status/network.js:1481 ../js/ui/status/rfkill.js:94
#: ../js/ui/status/network.js:1480 ../js/ui/status/rfkill.js:89
msgid "Network Settings"
msgstr "Configuración de la red"
#: ../js/ui/status/network.js:1483
#: ../js/ui/status/network.js:1482
msgid "VPN Settings"
msgstr "Configuración de VPN"
#: ../js/ui/status/network.js:1502
#: ../js/ui/status/network.js:1501
msgid "VPN"
msgstr "VPN"
#: ../js/ui/status/network.js:1657
#: ../js/ui/status/network.js:1656
msgid "Network Manager"
msgstr "Gestor de la red"
#: ../js/ui/status/network.js:1697
#: ../js/ui/status/network.js:1696
msgid "Activation of network connection failed"
msgstr "Falló la activación de la conexión de red"
@@ -1656,11 +1651,11 @@ msgstr "SAI"
msgid "Battery"
msgstr "Batería"
#: ../js/ui/status/rfkill.js:88
#: ../js/ui/status/rfkill.js:83
msgid "Airplane Mode"
msgstr "Modo avión"
#: ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:85
msgid "On"
msgstr "Encender"
@@ -1704,11 +1699,11 @@ msgstr "Iniciar sesión como otro usuario"
msgid "Unlock Window"
msgstr "Desbloquear ventana"
#: ../js/ui/viewSelector.js:159
#: ../js/ui/viewSelector.js:158
msgid "Applications"
msgstr "Aplicaciones"
#: ../js/ui/viewSelector.js:163
#: ../js/ui/viewSelector.js:162
msgid "Search"
msgstr "Buscar"
@@ -1739,13 +1734,6 @@ msgid_plural "Settings changes will revert in %d seconds"
msgstr[0] "La configuración se revertirá en %d segundo"
msgstr[1] "La configuración se revertirá en %d segundos"
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height. */
#: ../js/ui/windowManager.js:599
#, javascript-format
msgid "%d x %d"
msgstr "%d x %d"
#: ../js/ui/windowMenu.js:34
msgid "Minimize"
msgstr "Minimizar"
@@ -1830,7 +1818,7 @@ msgstr ""
msgid "List possible modes"
msgstr "Listar los modos posibles"
#: ../src/shell-app.c:680
#: ../src/shell-app.c:666
#, c-format
msgid "Failed to launch “%s”"
msgstr "Falló al lanzar «%s»"
@@ -1847,9 +1835,6 @@ msgstr "La contraseña no puede estar vacía"
msgid "Authentication dialog was dismissed by the user"
msgstr "El usuario rechazó el diálogo de autenticación"
#~ msgid "Captive Portal"
#~ msgstr "Portal captivo"
#~ msgid "The maximum accuracy level of location."
#~ msgstr "El nivel máximo de precisión de la ubicación."

587
po/eu.po

File diff suppressed because it is too large Load Diff

540
po/fur.po

File diff suppressed because it is too large Load Diff

326
po/he.po
View File

@@ -10,8 +10,8 @@ msgid ""
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-11-24 20:00+0200\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-09-13 23:32+0300\n"
"PO-Revision-Date: 2014-09-13 23:32+0300\n"
"Last-Translator: Yosef Or Boczko <yoseforb@gmail.com>\n"
"Language-Team: עברית <>\n"
@@ -292,8 +292,8 @@ msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Delay focus changes in mouse mode until the pointer stops moving"
#: ../data/org.gnome.Shell.PortalHelper.desktop.in.h:1
msgid "Network Login"
#: ../data/org.gnome.Shell.PortalHelper.desktop.in.h:1
msgid "Captive Portal"
msgstr "Captive Portal"
#: ../js/extensionPrefs/main.js:123
@@ -307,7 +307,7 @@ msgstr "הרחבות GNOME Shell"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:143
#: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:915
msgid "Cancel"
msgstr "ביטול"
@@ -325,20 +325,20 @@ msgctxt "button"
msgctxt "button"
msgid "Sign In"
msgstr "כניסה"
#: ../js/gdm/loginDialog.js:269
msgid "Choose Session"
msgstr "בחירת הפעלה"
#. translators: this message is shown below the user list on the
#. login screen. It can be activated to reveal an entry for
#. manually entering the username.
#. manually entering the username.
#: ../js/gdm/loginDialog.js:429
msgid "Not listed?"
msgstr "לא רשום?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
#. to clue the user in on how to login to the local network realm
#: ../js/gdm/loginDialog.js:614
#, javascript-format
msgid "(e.g., user or %s)"
@@ -346,16 +346,16 @@ msgstr "(משתמש או %s לדוגמה)"
#. TTLS and PEAP are actually much more complicated, but this complication
#. is not visible here since we only care about phase2 authentication
#. (and don't even care of which one)
#. (and don't even care of which one)
#: ../js/gdm/loginDialog.js:619 ../js/ui/components/networkAgent.js:269
#: ../js/ui/components/networkAgent.js:287
msgid "Username: "
msgstr "שם משתמש:"
#: ../js/gdm/loginDialog.js:922
msgid "Login Window"
msgstr "חלון כניסה"
#: ../js/gdm/util.js:323
msgid "Authentication error"
msgstr "שגיאת אימות"
@@ -364,7 +364,7 @@ msgstr "שגיאת אימות"
#. not the main auth service. Instead we use the messages
#. as a cue to display our own message.
#. Translators: this message is shown below the password entry field
#. to indicate the user can swipe their finger instead
#. to indicate the user can swipe their finger instead
#: ../js/gdm/util.js:453
msgid "(or swipe finger)"
msgstr "(או להעביר אצבע)"
@@ -389,15 +389,15 @@ msgstr "ההרצה של „%s” נכשלה:"
#: ../js/portalHelper/main.js:85
msgid "Web Authentication Redirect"
msgstr "אימות ניתוב הרשת"
#: ../js/ui/appDisplay.js:772
msgid "Frequently used applications will appear here"
msgstr "יישומים בשימוש תדיר יופיעו כאן"
#: ../js/ui/appDisplay.js:883
msgid "Frequent"
msgstr "תדיר"
#: ../js/ui/appDisplay.js:890
msgid "All"
msgstr "הכול"
@@ -417,12 +417,12 @@ msgstr "הוספה למועדפים"
#: ../js/ui/appDisplay.js:1830
msgid "Show Details"
msgstr "הצגת פרטים"
#: ../js/ui/appFavorites.js:124
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s נוסף למועדפים שלך."
#: ../js/ui/appFavorites.js:158
#, javascript-format
msgid "%s has been removed from your favorites."
@@ -436,23 +436,17 @@ msgstr "הגדרות"
#: ../js/ui/backgroundMenu.js:21
msgid "Change Background…"
msgstr "החלפת הרקע…"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday).
#: ../js/ui/calendar.js:39
msgctxt "calendar-no-work"
msgid "06"
msgstr "65"
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#.
#.
#: ../js/ui/calendar.js:67
msgctxt "event list time"
msgid "All Day"
msgstr "יום שלם"
#. Translators: Shown in calendar event list, if 24h format,
#. \u2236 is a ratio character, similar to :
#. \u2236 is a ratio character, similar to :
#: ../js/ui/calendar.js:73
msgctxt "event list time"
msgid "%H%M"
@@ -460,7 +454,7 @@ msgstr "%H:%M"
#. Translators: Shown in calendar event list, if 12h format,
#. \u2236 is a ratio character, similar to : and \u2009 is
#. a thin space
#. a thin space
#: ../js/ui/calendar.js:82
msgctxt "event list time"
msgid "%l%M%p"
@@ -470,43 +464,43 @@ msgstr "%l\\u2236%M%p"
#. *
#. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S".
#.
#.
#: ../js/ui/calendar.js:113
msgctxt "grid sunday"
msgid "S"
msgstr "א"
#. Translators: Calendar grid abbreviation for Monday
#. Translators: Calendar grid abbreviation for Monday
#: ../js/ui/calendar.js:115
msgctxt "grid monday"
msgid "M"
msgstr "ב"
#. Translators: Calendar grid abbreviation for Tuesday
#. Translators: Calendar grid abbreviation for Tuesday
#: ../js/ui/calendar.js:117
msgctxt "grid tuesday"
msgid "T"
msgstr "ג"
#. Translators: Calendar grid abbreviation for Wednesday
#. Translators: Calendar grid abbreviation for Wednesday
#: ../js/ui/calendar.js:119
msgctxt "grid wednesday"
msgid "W"
msgstr "ד"
#. Translators: Calendar grid abbreviation for Thursday
#. Translators: Calendar grid abbreviation for Thursday
#: ../js/ui/calendar.js:121
msgctxt "grid thursday"
msgid "T"
msgstr "ה"
#. Translators: Calendar grid abbreviation for Friday
#. Translators: Calendar grid abbreviation for Friday
#: ../js/ui/calendar.js:123
msgctxt "grid friday"
msgid "F"
msgstr "ו"
#. Translators: Calendar grid abbreviation for Saturday
#. Translators: Calendar grid abbreviation for Saturday
#: ../js/ui/calendar.js:125
msgctxt "grid saturday"
msgid "S"
@@ -517,83 +511,85 @@ msgstr "ש"
#. * NOTE: These list abbreviations are normally not shown together
#. * so they need to be unique (e.g. Tuesday and Thursday cannot
#. * both be 'T').
#.
#.
#: ../js/ui/calendar.js:138
msgctxt "list sunday"
msgid "Su"
msgstr "א׳"
#. Translators: Event list abbreviation for Monday
#. Translators: Event list abbreviation for Monday
#: ../js/ui/calendar.js:140
msgctxt "list monday"
msgid "M"
msgstr "ב׳"
#. Translators: Event list abbreviation for Tuesday
#. Translators: Event list abbreviation for Tuesday
#: ../js/ui/calendar.js:142
msgctxt "list tuesday"
msgid "T"
msgstr "ג׳"
#. Translators: Event list abbreviation for Wednesday
#. Translators: Event list abbreviation for Wednesday
#: ../js/ui/calendar.js:144
msgctxt "list wednesday"
msgid "W"
msgstr "ד׳"
#. Translators: Event list abbreviation for Thursday
#. Translators: Event list abbreviation for Thursday
#: ../js/ui/calendar.js:146
msgctxt "list thursday"
msgid "Th"
msgstr "ה"
#. Translators: Event list abbreviation for Friday
#. Translators: Event list abbreviation for Friday
#: ../js/ui/calendar.js:148
msgctxt "list friday"
msgid "F"
msgstr "ו׳"
#. Translators: Event list abbreviation for Saturday
#. Translators: Event list abbreviation for Saturday
#: ../js/ui/calendar.js:150
msgctxt "list saturday"
msgid "S"
msgstr "ש׳"
#: ../js/ui/calendar.js:453
msgid "Previous month"
msgstr "חודש קודם"
#: ../js/ui/calendar.js:463
msgid "Next month"
msgstr "חודש הבא"
#. Translators: Text to show if there are no events
#. Translators: Text to show if there are no events
#: ../js/ui/calendar.js:781
msgid "Nothing Scheduled"
msgstr "היומן ריק"
#. Translators: Shown on calendar heading when selected day occurs on current year
#: ../js/ui/calendar.js:799
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, ה־%e ב%B"
#. Translators: Shown on calendar heading when selected day occurs on different year
#: ../js/ui/calendar.js:802
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, ה־%e ב%B, %Y"
#: ../js/ui/calendar.js:813
msgid "Today"
msgstr "היום"
#: ../js/ui/calendar.js:817
msgid "Tomorrow"
msgstr "מחר"
#: ../js/ui/calendar.js:828
msgid "This week"
msgstr "השבוע"
#: ../js/ui/calendar.js:836
msgid "Next week"
msgstr "בשבוע הבא"
@@ -627,7 +623,7 @@ msgid "Type again:"
msgid "Type again:"
msgstr "נא להקליד שוב:"
#: ../js/ui/components/networkAgent.js:138 ../js/ui/status/network.js:277
#: ../js/ui/components/networkAgent.js:138 ../js/ui/status/network.js:277
#: ../js/ui/status/network.js:359 ../js/ui/status/network.js:918
msgid "Connect"
msgstr "התחברות"
@@ -723,47 +719,47 @@ msgstr "פעולה זו לא הצליחה, נא לנסות שוב. עמך הסל
msgstr "פעולה זו לא הצליחה, נא לנסות שוב. עמך הסליחה."
#. FIXME: We don't have a 'chat room' icon (bgo #653737) use
#. system-users for now as Empathy does.
#. system-users for now as Empathy does.
#: ../js/ui/components/telepathyClient.js:240
msgid "Invitation"
msgstr "הזמנה"
#. We got the TpContact
#. We got the TpContact
#: ../js/ui/components/telepathyClient.js:300
msgid "Call"
msgstr "התקשרות"
#. We got the TpContact
#. We got the TpContact
#: ../js/ui/components/telepathyClient.js:316
msgid "File Transfer"
msgstr "העברת קבצים"
#: ../js/ui/components/telepathyClient.js:420
msgid "Chat"
msgstr "שיחה"
#: ../js/ui/components/telepathyClient.js:483
msgid "Unmute"
msgstr "ביטול ההשתקה"
#: ../js/ui/components/telepathyClient.js:483
msgid "Mute"
msgstr "השתקה"
#. Translators: Time in 24h format
#. Translators: Time in 24h format
#: ../js/ui/components/telepathyClient.js:953
msgid "%H%M"
msgstr "%H:%M"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30"
#. time string in 24h format. i.e. "Yesterday, 14:30"
#: ../js/ui/components/telepathyClient.js:960
#, no-c-format
msgid "Yesterday, %H%M"
msgstr "אתמול, %H\\u2236%M"
#. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30"
#. string in 24h format. i.e. "Monday, 14:30"
#: ../js/ui/components/telepathyClient.js:967
#, no-c-format
msgid "%A, %H%M"
@@ -771,7 +767,7 @@ msgstr "%A, %H:%M"
#. Translators: this is the month name and day number
#. followed by a time string in 24h format.
#. i.e. "May 25, 14:30"
#. i.e. "May 25, 14:30"
#: ../js/ui/components/telepathyClient.js:974
#, no-c-format
msgid "%B %d, %H%M"
@@ -779,26 +775,26 @@ msgstr "%d ב%B, %H:%M"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30"
#. i.e. "May 25 2012, 14:30"
#: ../js/ui/components/telepathyClient.js:980
#, no-c-format
msgid "%B %d %Y, %H%M"
msgstr "%d ב%B, %H:%M"
#. Translators: Time in 24h format
#. Translators: Time in 24h format
#: ../js/ui/components/telepathyClient.js:986
msgid "%l%M %p"
msgstr "%l:%M %p"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm"
#. time string in 12h format. i.e. "Yesterday, 2:30 pm"
#: ../js/ui/components/telepathyClient.js:993
#, no-c-format
msgid "Yesterday, %l%M %p"
msgstr "אתמול, %l\\u2236%M %p"
#. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm"
#. string in 12h format. i.e. "Monday, 2:30 pm"
#: ../js/ui/components/telepathyClient.js:1000
#, no-c-format
msgid "%A, %l%M %p"
@@ -806,7 +802,7 @@ msgstr "%l:%M %p"
#. Translators: this is the month name and day number
#. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm"
#. i.e. "May 25, 2:30 pm"
#: ../js/ui/components/telepathyClient.js:1007
#, no-c-format
msgid "%B %d, %l%M %p"
@@ -814,21 +810,21 @@ msgstr "%d ב%B, %H:%M"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"
#. i.e. "May 25 2012, 2:30 pm"
#: ../js/ui/components/telepathyClient.js:1013
#, no-c-format
msgid "%B %d %Y, %l%M %p"
msgstr "%d ב%B %Y, %l\\u2236%M %p"
#. Translators: this is the other person changing their old IM name to their new
#. IM name.
#. IM name.
#: ../js/ui/components/telepathyClient.js:1045
#, javascript-format
msgid "%s is now known as %s"
msgstr "השם של %s הוחלף ל־%s"
#. translators: argument is a room name like
#. * room@jabber.org for example.
#. * room@jabber.org for example.
#: ../js/ui/components/telepathyClient.js:1149
#, javascript-format
msgid "Invitation to %s"
@@ -836,38 +832,38 @@ msgstr "הזמנה ל־%s"
#. translators: first argument is the name of a contact and the second
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
#. * for example.
#. * for example.
#: ../js/ui/components/telepathyClient.js:1157
#, javascript-format
msgid "%s is inviting you to join %s"
msgstr "הוזמנת על ידי %s להצטרף אל %s"
#: ../js/ui/components/telepathyClient.js:1161
#: ../js/ui/components/telepathyClient.js:1196
#: ../js/ui/components/telepathyClient.js:1230
#: ../js/ui/components/telepathyClient.js:1159
#: ../js/ui/components/telepathyClient.js:1194
#: ../js/ui/components/telepathyClient.js:1228
#: ../js/ui/components/telepathyClient.js:1286
msgid "Decline"
msgstr "דחייה"
#: ../js/ui/components/telepathyClient.js:1167
#: ../js/ui/components/telepathyClient.js:1236
#: ../js/ui/components/telepathyClient.js:1165
#: ../js/ui/components/telepathyClient.js:1234
#: ../js/ui/components/telepathyClient.js:1291
msgid "Accept"
msgstr "אישור"
#. translators: argument is a contact name like Alice for example.
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/components/telepathyClient.js:1184
#, javascript-format
msgid "Video call from %s"
msgstr "שיחת וידאו מאת %s"
#. translators: argument is a contact name like Alice for example.
#. translators: argument is a contact name like Alice for example.
#: ../js/ui/components/telepathyClient.js:1187
#, javascript-format
msgid "Call from %s"
msgstr "שיחה מאת %s"
#. translators: this is a button label (verb), not a noun
#. translators: this is a button label (verb), not a noun
#: ../js/ui/components/telepathyClient.js:1201
msgid "Answer"
msgstr "מענה"
@@ -876,108 +872,108 @@ msgstr "מענה"
#. * the contact's alias and the second one is the
#. * file name. The string will be something
#. * like: "Alice is sending you test.ogg"
#.
#.
#: ../js/ui/components/telepathyClient.js:1222
#, javascript-format
msgid "%s is sending you %s"
msgstr "%s שולח/ת אליך %s"
#. To translators: The parameter is the contact's alias
#. To translators: The parameter is the contact's alias
#: ../js/ui/components/telepathyClient.js:1251
#, javascript-format
msgid "%s would like permission to see when you are online"
msgstr "%s רוצה לקבל הרשאות כדי לראות מתי מצבך הוא מקוון"
#: ../js/ui/components/telepathyClient.js:1337
msgid "Network error"
msgstr "שגיאת רשת"
#: ../js/ui/components/telepathyClient.js:1339
msgid "Authentication failed"
msgstr "האימות נכשל"
#: ../js/ui/components/telepathyClient.js:1341
msgid "Encryption error"
msgstr "שגיאת הצפנה"
#: ../js/ui/components/telepathyClient.js:1343
msgid "Certificate not provided"
msgstr "לא סופק אישור"
#: ../js/ui/components/telepathyClient.js:1345
msgid "Certificate untrusted"
msgstr "האישור אינו מהימן"
#: ../js/ui/components/telepathyClient.js:1347
msgid "Certificate expired"
msgstr "האישור פג"
#: ../js/ui/components/telepathyClient.js:1349
msgid "Certificate not activated"
msgstr "האישור לא מופעל"
#: ../js/ui/components/telepathyClient.js:1351
msgid "Certificate hostname mismatch"
msgstr "שם המארח באישור אינו תואם"
#: ../js/ui/components/telepathyClient.js:1353
msgid "Certificate fingerprint mismatch"
msgstr "חוסר התאמה בטביעת האצבע של האישור"
#: ../js/ui/components/telepathyClient.js:1355
msgid "Certificate self-signed"
msgstr "אישור בחתימה עצמית"
#: ../js/ui/components/telepathyClient.js:1357
msgid "Status is set to offline"
msgstr "המצב הוגדר ל'מנותק'"
#: ../js/ui/components/telepathyClient.js:1359
msgid "Encryption is not available"
msgstr "ההצפנה אינה זמינה"
#: ../js/ui/components/telepathyClient.js:1361
msgid "Certificate is invalid"
msgstr "האישור אינו תקף"
#: ../js/ui/components/telepathyClient.js:1363
msgid "Connection has been refused"
msgstr "ההתחברות נשללה"
#: ../js/ui/components/telepathyClient.js:1365
msgid "Connection can't be established"
msgstr "לא ניתן להפעיל את החיבור"
#: ../js/ui/components/telepathyClient.js:1367
msgid "Connection has been lost"
msgstr "החיבור אבד"
#: ../js/ui/components/telepathyClient.js:1369
msgid "This account is already connected to the server"
msgstr "חשבון זה כבר מחובר לשרת"
#: ../js/ui/components/telepathyClient.js:1371
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr "החיבור הוחלף בחיבור חדש באמצעות אותו המשאב"
#: ../js/ui/components/telepathyClient.js:1373
msgid "The account already exists on the server"
msgstr "החשבון כבר קיים בשרת"
#: ../js/ui/components/telepathyClient.js:1375
msgid "Server is currently too busy to handle the connection"
msgstr "השרת עסוק ברגע זה מכדי לטפל בחיבור"
#: ../js/ui/components/telepathyClient.js:1377
msgid "Certificate has been revoked"
msgstr "האישור נשלל"
#: ../js/ui/components/telepathyClient.js:1379
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr "האישור משתמש באלגוריתם הצפנה שאינו בטוח או חלש מבחינת הצפנה"
#: ../js/ui/components/telepathyClient.js:1381
msgid ""
"The length of the server certificate, or the depth of the server certificate "
@@ -985,22 +981,22 @@ msgstr ""
msgstr ""
"אורך אישור השרת, או עומק שרשרת אישור השרת, חורגים מהמגבלות שנכפו על ידי "
"ספריית ההצפנה"
#: ../js/ui/components/telepathyClient.js:1383
msgid "Internal error"
msgstr "שגיאה פנימית"
#. translators: argument is the account name, like
#. * name@jabber.org for example.
#. * name@jabber.org for example.
#: ../js/ui/components/telepathyClient.js:1393
#, javascript-format
msgid "Unable to connect to %s"
msgstr "לא ניתן להתחבר אל %s"
#: ../js/ui/components/telepathyClient.js:1398
msgid "View account"
msgstr "צפייה בחשבון"
#: ../js/ui/components/telepathyClient.js:1435
msgid "Unknown reason"
msgstr "סיבה לא ידועה"
@@ -1018,22 +1014,22 @@ msgstr "הצגת יישומים"
#: ../js/ui/dash.js:445
msgid "Dash"
msgstr "חלונית"
#: ../js/ui/dateMenu.js:96
msgid "Open Calendar"
msgstr "פתיחת היומן"
#: ../js/ui/dateMenu.js:100
msgid "Open Clocks"
msgstr "פתיחת השעונים"
#: ../js/ui/dateMenu.js:107
msgid "Date & Time Settings"
msgstr "הגדרות תאריך ושעה"
#. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#.
#.
#: ../js/ui/dateMenu.js:204
msgid "%A %B %e, %Y"
msgstr "%A ה־%e ב%B, %Y"
@@ -1172,7 +1168,7 @@ msgstr "התקנה"
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "הורדה והתקנה של „%s” מ־extensions.gnome.org?"
#: ../js/ui/keyboard.js:692 ../js/ui/status/keyboard.js:523
msgid "Keyboard"
msgstr "מקלדת"
@@ -1228,48 +1224,39 @@ msgstr "צפייה במקור"
#: ../js/ui/lookingGlass.js:758
msgid "Web Page"
msgstr "דף אינטרנט"
#: ../js/ui/messageTray.js:1326
msgid "Open"
msgstr "פתיחה"
#: ../js/ui/messageTray.js:1333
msgid "Remove"
msgstr "הסרה"
#: ../js/ui/messageTray.js:1630
msgid "Notifications"
msgstr "התרעות"
#: ../js/ui/messageTray.js:1637
msgid "Clear Messages"
msgstr "פינוי ההודעות"
#: ../js/ui/messageTray.js:1656
msgid "Notification Settings"
msgstr "הגדרות התרעה"
#: ../js/ui/messageTray.js:1709
msgid "Tray Menu"
msgstr "תפריט מגש"
#: ../js/ui/messageTray.js:1926
msgid "No Messages"
msgstr "אין הודעות"
#: ../js/ui/messageTray.js:1968
msgid "Message Tray"
msgstr "אזור דיווח ההודעות"
# javascript-format
#: ../js/ui/messageTray.js:2441 ../js/ui/overviewControls.js:483
#: ../js/ui/screenShield.js:152
#, c-format
msgid "%d new message"
msgid_plural "%d new messages"
msgstr[0] "הודעה חדשה אחת"
msgstr[1] "%d הודעות חדשות"
#: ../js/ui/messageTray.js:2971
msgid "System Information"
msgstr "פרטי המערכת"
@@ -1278,6 +1265,14 @@ msgctxt "program"
msgctxt "program"
msgid "Unknown"
msgstr "לא ידוע"
# javascript-format
#: ../js/ui/overviewControls.js:482 ../js/ui/screenShield.js:151
#, c-format
msgid "%d new message"
msgid_plural "%d new messages"
msgstr[0] "הודעה חדשה אחת"
msgstr[1] "%d הודעות חדשות"
#: ../js/ui/overview.js:84
msgid "Undo"
@@ -1336,18 +1331,18 @@ msgid "%A, %B %d"
msgid "%A, %B %d"
msgstr "%A, ה־%d ב%B"
# javascript-format
# javascript-format
#: ../js/ui/screenShield.js:153
#, c-format
msgid "%d new notification"
msgid_plural "%d new notifications"
msgstr[0] "התרעה חדשה אחת"
msgstr[1] "%d התרעות חדשות"
#: ../js/ui/screenShield.js:472 ../js/ui/status/system.js:345
msgid "Lock"
msgstr "נעילה"
#: ../js/ui/screenShield.js:706
msgid "GNOME needs to lock the screen"
msgstr "על GNOME לנעול את המסך"
@@ -1358,19 +1353,19 @@ msgstr "על GNOME לנעול את המסך"
#. Just tell him to stop using this app
#.
#. XXX: another option is to kick the user into the gdm login
#. screen, where we're not affected by grabs
#. screen, where we're not affected by grabs
#: ../js/ui/screenShield.js:833 ../js/ui/screenShield.js:1304
msgid "Unable to lock"
msgstr "לא ניתן לנעול"
#: ../js/ui/screenShield.js:834 ../js/ui/screenShield.js:1305
msgid "Lock was blocked by an application"
msgstr "הנעילה נחסמה ע״י היישום"
#: ../js/ui/search.js:594
msgid "Searching…"
msgstr "בחיפוש…"
#: ../js/ui/search.js:596
msgid "No results."
msgstr "אין תוצאות."
@@ -1449,9 +1444,9 @@ msgid "Bluetooth"
msgid "Bluetooth"
msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
#: ../js/ui/status/network.js:360 ../js/ui/status/network.js:1282
#: ../js/ui/status/network.js:1393 ../js/ui/status/rfkill.js:91
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
#: ../js/ui/status/network.js:360 ../js/ui/status/network.js:1281
#: ../js/ui/status/network.js:1392 ../js/ui/status/rfkill.js:86
#: ../js/ui/status/rfkill.js:114
msgid "Turn Off"
msgstr "כיבוי"
@@ -1467,7 +1462,7 @@ msgid_plural "%d Connected Devices"
msgid_plural "%d Connected Devices"
msgstr[0] "התקן אחד מחובר"
msgstr[1] "%d התקנים מחוברים"
#: ../js/ui/status/bluetooth.js:106 ../js/ui/status/network.js:1309
msgid "Not Connected"
msgstr "לא מחובר"
@@ -1475,7 +1470,7 @@ msgstr "לא מחובר"
#: ../js/ui/status/brightness.js:44
msgid "Brightness"
msgstr "בהירות"
#: ../js/ui/status/keyboard.js:547
msgid "Show Keyboard Layout"
msgstr "הצגת פריסת המקלדת"
@@ -1503,8 +1498,8 @@ msgstr "אפשור"
#: ../js/ui/status/network.js:101
msgid "<unknown>"
msgstr "<לא ידוע>"
#: ../js/ui/status/network.js:457 ../js/ui/status/network.js:1308
#: ../js/ui/status/network.js:457 ../js/ui/status/network.js:1307
#: ../js/ui/status/network.js:1511
msgid "Off"
msgstr "כבוי"
@@ -1522,7 +1517,7 @@ msgstr "לא מנוהל"
#: ../js/ui/status/network.js:465
msgid "Disconnecting"
msgstr "בהליכי ניתוק"
#: ../js/ui/status/network.js:471 ../js/ui/status/network.js:1301
msgid "Connecting"
msgstr "בהתחברות"
@@ -1543,7 +1538,7 @@ msgstr "הקושחה חסרה"
#: ../js/ui/status/network.js:486
msgid "Unavailable"
msgstr "לא זמין"
#: ../js/ui/status/network.js:488 ../js/ui/status/network.js:1695
msgid "Connection failed"
msgstr "ההתחברות נכשלה"
@@ -1555,7 +1550,7 @@ msgstr "הגדרות רשת קווית"
#: ../js/ui/status/network.js:546 ../js/ui/status/network.js:624
msgid "Mobile Broadband Settings"
msgstr "הגדרות פס־רחב נייד"
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
msgid "Hardware Disabled"
msgstr "מנוטרל חומרתית"
@@ -1595,60 +1590,60 @@ msgstr "רשתות אלחוטיות"
#: ../js/ui/status/network.js:853
msgid "Select a network"
msgstr "בחירת רשת"
#: ../js/ui/status/network.js:882
msgid "No Networks"
msgstr "אין רשתות"
#: ../js/ui/status/network.js:903 ../js/ui/status/rfkill.js:112
msgid "Use hardware switch to turn off"
msgstr "שימוש במתג של החומרה לכיבוי"
#: ../js/ui/status/network.js:1173
msgid "Select Network"
msgstr "בחירת רשת"
#: ../js/ui/status/network.js:1179
msgid "Wi-Fi Settings"
msgstr "הגדרות רשת אלחוטית"
#: ../js/ui/status/network.js:1281
msgid "Turn On"
msgstr "הפעלה"
#: ../js/ui/status/network.js:1298
msgid "Hotspot Active"
msgstr "נקודה חמה פעילה"
#: ../js/ui/status/network.js:1409
msgid "connecting..."
msgstr "בהתחברות..."
#. Translators: this is for network connections that require some kind of key or password
#. Translators: this is for network connections that require some kind of key or password
#: ../js/ui/status/network.js:1412
msgid "authentication required"
msgstr "נדרש אימות"
#: ../js/ui/status/network.js:1414
msgid "connection failed"
msgstr "ההתחברות נכשלה"
#: ../js/ui/status/network.js:1480 ../js/ui/status/rfkill.js:89
msgid "Network Settings"
msgstr "הגדרות הרשת"
#: ../js/ui/status/network.js:1482
msgid "VPN Settings"
msgstr "הגדרות VPN"
#: ../js/ui/status/network.js:1501
msgid "VPN"
msgstr "VPN"
#: ../js/ui/status/network.js:1656
msgid "Network Manager"
msgstr "מנהל הרשתות"
#: ../js/ui/status/network.js:1696
msgid "Activation of network connection failed"
msgstr "הפעלת חיבור הרשת נכשלה"
@@ -1689,11 +1684,11 @@ msgstr "סוללה"
#. The menu only appears when airplane mode is on, so just
#. statically build it as if it was on, rather than dynamically
#. changing the menu contents.
#. changing the menu contents.
#: ../js/ui/status/rfkill.js:83
msgid "Airplane Mode"
msgstr "מצב טיסה"
#: ../js/ui/status/rfkill.js:85
msgid "On"
msgstr "פועל"
@@ -1872,9 +1867,6 @@ msgstr "הססמה לא יכולה להישאר ריקה"
#: ../src/shell-polkit-authentication-agent.c:346
msgid "Authentication dialog was dismissed by the user"
msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
#~ msgid "Captive Portal"
#~ msgstr "Captive Portal"
#~ msgid "The maximum accuracy level of location."
#~ msgstr "The maximum accuracy level of location."

356
po/hu.po

File diff suppressed because it is too large Load Diff

343
po/id.po
View File

@@ -10,8 +10,8 @@ msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2014-12-23 20:37+0000\n"
"PO-Revision-Date: 2014-12-24 11:51+0700\n"
"POT-Creation-Date: 2014-09-13 07:37+0000\n"
"PO-Revision-Date: 2014-09-13 19:20+0700\n"
"Last-Translator: Andika Triwidada <andika@gmail.com>\n"
"Language-Team: Indonesian <gnome-l10n-id@googlegroups.com>\n"
"Language: id\n"
@@ -20,7 +20,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Generator: Poedit 1.7.1\n"
"X-Generator: Poedit 1.6.9\n"
#: ../data/50-gnome-shell-system.xml.in.h:1
msgid "System"
@@ -301,8 +301,8 @@ msgstr ""
"Tunda perubahan fokus dalam mode tetikus sampai penunjuk berhenti bergerak"
#: ../data/org.gnome.Shell.PortalHelper.desktop.in.h:1
msgid "Network Login"
msgstr "Log Masuk Jaringan"
msgid "Captive Portal"
msgstr "Portal Captive"
#: ../js/extensionPrefs/main.js:123
#, javascript-format
@@ -316,7 +316,7 @@ msgstr "Ekstensi GNOME Shell"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:143
#: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916
#: ../js/ui/status/network.js:915
msgid "Cancel"
msgstr "Batal"
@@ -334,33 +334,33 @@ msgctxt "button"
msgid "Sign In"
msgstr "Masuk"
#: ../js/gdm/loginDialog.js:276
#: ../js/gdm/loginDialog.js:269
msgid "Choose Session"
msgstr "Pilih Sesi"
#: ../js/gdm/loginDialog.js:428
#: ../js/gdm/loginDialog.js:429
msgid "Not listed?"
msgstr "Tak masuk daftar?"
#: ../js/gdm/loginDialog.js:814
#: ../js/gdm/loginDialog.js:614
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(cth., pengguna dari %s)"
#: ../js/gdm/loginDialog.js:819 ../js/ui/components/networkAgent.js:269
#: ../js/gdm/loginDialog.js:619 ../js/ui/components/networkAgent.js:269
#: ../js/ui/components/networkAgent.js:287
msgid "Username: "
msgstr "Nama pengguna: "
#: ../js/gdm/loginDialog.js:1151
#: ../js/gdm/loginDialog.js:922
msgid "Login Window"
msgstr "Jendela Log Masuk"
#: ../js/gdm/util.js:341
#: ../js/gdm/util.js:323
msgid "Authentication error"
msgstr "Galat otentikasi"
#: ../js/gdm/util.js:473
#: ../js/gdm/util.js:453
msgid "(or swipe finger)"
msgstr "(atau gesekkan jari)"
@@ -381,15 +381,15 @@ msgstr "Eksekusi \"%s\" gagal:"
msgid "Web Authentication Redirect"
msgstr "Pengalihan Otentikasi Web"
#: ../js/ui/appDisplay.js:770
#: ../js/ui/appDisplay.js:772
msgid "Frequently used applications will appear here"
msgstr "Aplikasi yang sering dipakai akan muncul di sini"
#: ../js/ui/appDisplay.js:881
#: ../js/ui/appDisplay.js:883
msgid "Frequent"
msgstr "Sering"
#: ../js/ui/appDisplay.js:888
#: ../js/ui/appDisplay.js:890
msgid "All"
msgstr "Semua"
@@ -409,17 +409,17 @@ msgstr "Tambah ke Favorit"
msgid "Show Details"
msgstr "Tampilkan Rincian"
#: ../js/ui/appFavorites.js:132
#: ../js/ui/appFavorites.js:124
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s telah ditambahkan ke favorit Anda."
#: ../js/ui/appFavorites.js:166
#: ../js/ui/appFavorites.js:158
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s telah dihapus dari favorit Anda."
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:819
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:813
#: ../js/ui/status/system.js:337
msgid "Settings"
msgstr "Pengaturan"
@@ -428,23 +428,17 @@ msgstr "Pengaturan"
msgid "Change Background…"
msgstr "Ubah Latar…"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). */
#: ../js/ui/calendar.js:39
msgctxt "calendar-no-work"
msgid "06"
msgstr "06"
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#. */
#: ../js/ui/calendar.js:68
#: ../js/ui/calendar.js:67
msgctxt "event list time"
msgid "All Day"
msgstr "Sepanjang Hari"
#. Translators: Shown in calendar event list, if 24h format,
#. \u2236 is a ratio character, similar to : */
#: ../js/ui/calendar.js:75
#: ../js/ui/calendar.js:73
msgctxt "event list time"
msgid "%H%M"
msgstr "%H%M"
@@ -452,7 +446,7 @@ msgstr "%H%M"
#. Translators: Shown in calendar event list, if 12h format,
#. \u2236 is a ratio character, similar to : and \u2009 is
#. a thin space */
#: ../js/ui/calendar.js:84
#: ../js/ui/calendar.js:82
msgctxt "event list time"
msgid "%l%M%p"
msgstr "%l%M%p"
@@ -462,43 +456,43 @@ msgstr "%l%M%p"
#. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S".
#. */
#: ../js/ui/calendar.js:98
#: ../js/ui/calendar.js:113
msgctxt "grid sunday"
msgid "S"
msgstr "M"
#. Translators: Calendar grid abbreviation for Monday */
#: ../js/ui/calendar.js:100
#: ../js/ui/calendar.js:115
msgctxt "grid monday"
msgid "M"
msgstr "S"
#. Translators: Calendar grid abbreviation for Tuesday */
#: ../js/ui/calendar.js:102
#: ../js/ui/calendar.js:117
msgctxt "grid tuesday"
msgid "T"
msgstr "S"
#. Translators: Calendar grid abbreviation for Wednesday */
#: ../js/ui/calendar.js:104
#: ../js/ui/calendar.js:119
msgctxt "grid wednesday"
msgid "W"
msgstr "R"
#. Translators: Calendar grid abbreviation for Thursday */
#: ../js/ui/calendar.js:106
#: ../js/ui/calendar.js:121
msgctxt "grid thursday"
msgid "T"
msgstr "K"
#. Translators: Calendar grid abbreviation for Friday */
#: ../js/ui/calendar.js:108
#: ../js/ui/calendar.js:123
msgctxt "grid friday"
msgid "F"
msgstr "J"
#. Translators: Calendar grid abbreviation for Saturday */
#: ../js/ui/calendar.js:110
#: ../js/ui/calendar.js:125
msgctxt "grid saturday"
msgid "S"
msgstr "S"
@@ -509,83 +503,85 @@ msgstr "S"
#. * so they need to be unique (e.g. Tuesday and Thursday cannot
#. * both be 'T').
#. */
#: ../js/ui/calendar.js:123
#: ../js/ui/calendar.js:138
msgctxt "list sunday"
msgid "Su"
msgstr "Min"
#. Translators: Event list abbreviation for Monday */
#: ../js/ui/calendar.js:125
#: ../js/ui/calendar.js:140
msgctxt "list monday"
msgid "M"
msgstr "Sen"
#. Translators: Event list abbreviation for Tuesday */
#: ../js/ui/calendar.js:127
#: ../js/ui/calendar.js:142
msgctxt "list tuesday"
msgid "T"
msgstr "Sel"
#. Translators: Event list abbreviation for Wednesday */
#: ../js/ui/calendar.js:129
#: ../js/ui/calendar.js:144
msgctxt "list wednesday"
msgid "W"
msgstr "Rab"
#. Translators: Event list abbreviation for Thursday */
#: ../js/ui/calendar.js:131
#: ../js/ui/calendar.js:146
msgctxt "list thursday"
msgid "Th"
msgstr "Kam"
#. Translators: Event list abbreviation for Friday */
#: ../js/ui/calendar.js:133
#: ../js/ui/calendar.js:148
msgctxt "list friday"
msgid "F"
msgstr "Jum"
#. Translators: Event list abbreviation for Saturday */
#: ../js/ui/calendar.js:135
#: ../js/ui/calendar.js:150
msgctxt "list saturday"
msgid "S"
msgstr "Sab"
#: ../js/ui/calendar.js:460
#: ../js/ui/calendar.js:453
msgid "Previous month"
msgstr "Bulan sebelumnya"
#: ../js/ui/calendar.js:470
#: ../js/ui/calendar.js:463
msgid "Next month"
msgstr "Bulan selanjutnya"
#. Translators: Text to show if there are no events */
#: ../js/ui/calendar.js:805
#: ../js/ui/calendar.js:781
msgid "Nothing Scheduled"
msgstr "Tak Ada Jadwal"
#: ../js/ui/calendar.js:824
#. Translators: Shown on calendar heading when selected day occurs on current year */
#: ../js/ui/calendar.js:799
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %d %B"
#: ../js/ui/calendar.js:828
#. Translators: Shown on calendar heading when selected day occurs on different year */
#: ../js/ui/calendar.js:802
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %d %B %Y"
#: ../js/ui/calendar.js:840
#: ../js/ui/calendar.js:813
msgid "Today"
msgstr "Hari ini"
#: ../js/ui/calendar.js:844
#: ../js/ui/calendar.js:817
msgid "Tomorrow"
msgstr "Besok"
#: ../js/ui/calendar.js:855
#: ../js/ui/calendar.js:828
msgid "This week"
msgstr "Minggu ini"
#: ../js/ui/calendar.js:863
#: ../js/ui/calendar.js:836
msgid "Next week"
msgstr "Minggu depan"
@@ -619,7 +615,7 @@ msgid "Type again:"
msgstr "Ketik lagi:"
#: ../js/ui/components/networkAgent.js:138 ../js/ui/status/network.js:277
#: ../js/ui/status/network.js:359 ../js/ui/status/network.js:919
#: ../js/ui/status/network.js:359 ../js/ui/status/network.js:918
msgid "Connect"
msgstr "Sambung"
@@ -713,102 +709,102 @@ msgstr "Otentikasi"
msgid "Sorry, that didn't work. Please try again."
msgstr "Maaf, tidak berhasil. Silakan coba lagi."
#: ../js/ui/components/telepathyClient.js:242
#: ../js/ui/components/telepathyClient.js:240
msgid "Invitation"
msgstr "Undangan"
#: ../js/ui/components/telepathyClient.js:302
#: ../js/ui/components/telepathyClient.js:300
msgid "Call"
msgstr "Panggil"
#: ../js/ui/components/telepathyClient.js:318
#: ../js/ui/components/telepathyClient.js:316
msgid "File Transfer"
msgstr "Transfer Berkas"
#: ../js/ui/components/telepathyClient.js:422
#: ../js/ui/components/telepathyClient.js:420
msgid "Chat"
msgstr "Obrolan"
#: ../js/ui/components/telepathyClient.js:485
#: ../js/ui/components/telepathyClient.js:483
msgid "Unmute"
msgstr "Bersuara"
#: ../js/ui/components/telepathyClient.js:485
#: ../js/ui/components/telepathyClient.js:483
msgid "Mute"
msgstr "Bisu"
#. Translators: Time in 24h format */
#: ../js/ui/components/telepathyClient.js:955
#: ../js/ui/components/telepathyClient.js:953
msgid "%H%M"
msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" */
#: ../js/ui/components/telepathyClient.js:962
#: ../js/ui/components/telepathyClient.js:960
msgid "Yesterday, %H%M"
msgstr "Kemarin, %H:%M"
#. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" */
#: ../js/ui/components/telepathyClient.js:969
#: ../js/ui/components/telepathyClient.js:967
msgid "%A, %H%M"
msgstr "%A, %H%M"
#. Translators: this is the month name and day number
#. followed by a time string in 24h format.
#. i.e. "May 25, 14:30" */
#: ../js/ui/components/telepathyClient.js:976
#: ../js/ui/components/telepathyClient.js:974
msgid "%B %d, %H%M"
msgstr "%d %B, %H%M"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30" */
#: ../js/ui/components/telepathyClient.js:982
#: ../js/ui/components/telepathyClient.js:980
msgid "%B %d %Y, %H%M"
msgstr "%d %B %Y, %H%M"
#. Translators: Time in 24h format */
#: ../js/ui/components/telepathyClient.js:988
#: ../js/ui/components/telepathyClient.js:986
msgid "%l%M %p"
msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:995
#: ../js/ui/components/telepathyClient.js:993
msgid "Yesterday, %l%M %p"
msgstr "Kemarin, %l%M %p"
#. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:1002
#: ../js/ui/components/telepathyClient.js:1000
msgid "%A, %l%M %p"
msgstr "%A, %l%M %p"
#. Translators: this is the month name and day number
#. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:1009
#: ../js/ui/components/telepathyClient.js:1007
msgid "%B %d, %l%M %p"
msgstr "%d %B, %l%M %p"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"*/
#: ../js/ui/components/telepathyClient.js:1015
#: ../js/ui/components/telepathyClient.js:1013
msgid "%B %d %Y, %l%M %p"
msgstr "%d %B %Y, %l%M %p"
#. Translators: this is the other person changing their old IM name to their new
#. IM name. */
#: ../js/ui/components/telepathyClient.js:1047
#: ../js/ui/components/telepathyClient.js:1045
#, javascript-format
msgid "%s is now known as %s"
msgstr "%s sekarang dikenal sebagai %s"
#. translators: argument is a room name like
#. * room@jabber.org for example. */
#: ../js/ui/components/telepathyClient.js:1151
#: ../js/ui/components/telepathyClient.js:1149
#, javascript-format
msgid "Invitation to %s"
msgstr "Undangan ke %s"
@@ -816,38 +812,38 @@ msgstr "Undangan ke %s"
#. translators: first argument is the name of a contact and the second
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
#. * for example. */
#: ../js/ui/components/telepathyClient.js:1159
#: ../js/ui/components/telepathyClient.js:1157
#, javascript-format
msgid "%s is inviting you to join %s"
msgstr "%s mengundang Anda untuk bergabung dengan %s"
#: ../js/ui/components/telepathyClient.js:1161
#: ../js/ui/components/telepathyClient.js:1196
#: ../js/ui/components/telepathyClient.js:1230
#: ../js/ui/components/telepathyClient.js:1287
#: ../js/ui/components/telepathyClient.js:1159
#: ../js/ui/components/telepathyClient.js:1194
#: ../js/ui/components/telepathyClient.js:1228
#: ../js/ui/components/telepathyClient.js:1286
msgid "Decline"
msgstr "Tolak"
#: ../js/ui/components/telepathyClient.js:1167
#: ../js/ui/components/telepathyClient.js:1236
#: ../js/ui/components/telepathyClient.js:1292
#: ../js/ui/components/telepathyClient.js:1165
#: ../js/ui/components/telepathyClient.js:1234
#: ../js/ui/components/telepathyClient.js:1291
msgid "Accept"
msgstr "Terima"
#. translators: argument is a contact name like Alice for example. */
#: ../js/ui/components/telepathyClient.js:1186
#: ../js/ui/components/telepathyClient.js:1184
#, javascript-format
msgid "Video call from %s"
msgstr "Panggilan video dari %s"
#. translators: argument is a contact name like Alice for example. */
#: ../js/ui/components/telepathyClient.js:1189
#: ../js/ui/components/telepathyClient.js:1187
#, javascript-format
msgid "Call from %s"
msgstr "Panggilan dari %s"
#. translators: this is a button label (verb), not a noun */
#: ../js/ui/components/telepathyClient.js:1203
#: ../js/ui/components/telepathyClient.js:1201
msgid "Answer"
msgstr "Jawab"
@@ -856,111 +852,111 @@ msgstr "Jawab"
#. * file name. The string will be something
#. * like: "Alice is sending you test.ogg"
#. */
#: ../js/ui/components/telepathyClient.js:1224
#: ../js/ui/components/telepathyClient.js:1222
#, javascript-format
msgid "%s is sending you %s"
msgstr "%s sedang mengirimi Anda %s"
#. To translators: The parameter is the contact's alias */
#: ../js/ui/components/telepathyClient.js:1253
#: ../js/ui/components/telepathyClient.js:1251
#, javascript-format
msgid "%s would like permission to see when you are online"
msgstr "%s ingin minta izin melihat Anda ketika Anda daring"
#: ../js/ui/components/telepathyClient.js:1338
#: ../js/ui/components/telepathyClient.js:1337
msgid "Network error"
msgstr "Galat jaringan"
#: ../js/ui/components/telepathyClient.js:1340
#: ../js/ui/components/telepathyClient.js:1339
msgid "Authentication failed"
msgstr "Otentikasi gagal"
#: ../js/ui/components/telepathyClient.js:1342
#: ../js/ui/components/telepathyClient.js:1341
msgid "Encryption error"
msgstr "Galat enkripsi"
#: ../js/ui/components/telepathyClient.js:1344
#: ../js/ui/components/telepathyClient.js:1343
msgid "Certificate not provided"
msgstr "Sertifikat tidak disediakan"
#: ../js/ui/components/telepathyClient.js:1346
#: ../js/ui/components/telepathyClient.js:1345
msgid "Certificate untrusted"
msgstr "Sertifikat tidak dipercaya"
#: ../js/ui/components/telepathyClient.js:1348
#: ../js/ui/components/telepathyClient.js:1347
msgid "Certificate expired"
msgstr "Sertifikat kadaluarsa"
#: ../js/ui/components/telepathyClient.js:1350
#: ../js/ui/components/telepathyClient.js:1349
msgid "Certificate not activated"
msgstr "Sertifikat tidak diaktifkan"
#: ../js/ui/components/telepathyClient.js:1352
#: ../js/ui/components/telepathyClient.js:1351
msgid "Certificate hostname mismatch"
msgstr "Nama host sertifikat tidak cocok"
#: ../js/ui/components/telepathyClient.js:1354
#: ../js/ui/components/telepathyClient.js:1353
msgid "Certificate fingerprint mismatch"
msgstr "Sidik jari sertifikat tidak cocok"
#: ../js/ui/components/telepathyClient.js:1356
#: ../js/ui/components/telepathyClient.js:1355
msgid "Certificate self-signed"
msgstr "Sertifikat ditandatangani sendiri"
#: ../js/ui/components/telepathyClient.js:1358
#: ../js/ui/components/telepathyClient.js:1357
msgid "Status is set to offline"
msgstr "Status diatur ke luring"
#: ../js/ui/components/telepathyClient.js:1360
#: ../js/ui/components/telepathyClient.js:1359
msgid "Encryption is not available"
msgstr "Enkripsi tidak tersedia"
#: ../js/ui/components/telepathyClient.js:1362
#: ../js/ui/components/telepathyClient.js:1361
msgid "Certificate is invalid"
msgstr "Sertifikat tidak valid"
#: ../js/ui/components/telepathyClient.js:1364
#: ../js/ui/components/telepathyClient.js:1363
msgid "Connection has been refused"
msgstr "Koneksi telah ditolak"
#: ../js/ui/components/telepathyClient.js:1366
#: ../js/ui/components/telepathyClient.js:1365
msgid "Connection can't be established"
msgstr "Koneksi tak dapat dijalin"
#: ../js/ui/components/telepathyClient.js:1368
#: ../js/ui/components/telepathyClient.js:1367
msgid "Connection has been lost"
msgstr "Koneksi telah terputus"
#: ../js/ui/components/telepathyClient.js:1370
#: ../js/ui/components/telepathyClient.js:1369
msgid "This account is already connected to the server"
msgstr "Akun ini telah tersambung pada server"
#: ../js/ui/components/telepathyClient.js:1372
#: ../js/ui/components/telepathyClient.js:1371
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr ""
"Koneksi telah digantikan oleh koneksi baru memakai sumberdaya yang sama"
#: ../js/ui/components/telepathyClient.js:1374
#: ../js/ui/components/telepathyClient.js:1373
msgid "The account already exists on the server"
msgstr "Akun ini sudah ada di server"
#: ../js/ui/components/telepathyClient.js:1376
#: ../js/ui/components/telepathyClient.js:1375
msgid "Server is currently too busy to handle the connection"
msgstr "Server kini terlalu sibuk untuk menangani koneksi"
#: ../js/ui/components/telepathyClient.js:1378
#: ../js/ui/components/telepathyClient.js:1377
msgid "Certificate has been revoked"
msgstr "Sertifikat telah dicabut"
#: ../js/ui/components/telepathyClient.js:1380
#: ../js/ui/components/telepathyClient.js:1379
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr ""
"Sertifikat memakai algorima cipher yang tak aman atau lemah secara "
"kriptografi"
#: ../js/ui/components/telepathyClient.js:1382
#: ../js/ui/components/telepathyClient.js:1381
msgid ""
"The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library"
@@ -968,26 +964,26 @@ msgstr ""
"Panjang sertifikat server, atau kedalaman rantai sertifikat server, "
"melampaui batas yang diberlakukan oleh pustaka kriptografi"
#: ../js/ui/components/telepathyClient.js:1384
#: ../js/ui/components/telepathyClient.js:1383
msgid "Internal error"
msgstr "Galat internal"
#. translators: argument is the account name, like
#. * name@jabber.org for example. */
#: ../js/ui/components/telepathyClient.js:1394
#: ../js/ui/components/telepathyClient.js:1393
#, javascript-format
msgid "Unable to connect to %s"
msgstr "Tak bisa menyambung ke %s"
#: ../js/ui/components/telepathyClient.js:1399
#: ../js/ui/components/telepathyClient.js:1398
msgid "View account"
msgstr "Tilik akun"
#: ../js/ui/components/telepathyClient.js:1436
#: ../js/ui/components/telepathyClient.js:1435
msgid "Unknown reason"
msgstr "Alasan yang tidak diketahui"
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:155
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:154
msgid "Windows"
msgstr "Jendela"
@@ -999,22 +995,22 @@ msgstr "Tampilkan Aplikasi"
msgid "Dash"
msgstr "Dash"
#: ../js/ui/dateMenu.js:97
#: ../js/ui/dateMenu.js:96
msgid "Open Calendar"
msgstr "Buka Kalender"
#: ../js/ui/dateMenu.js:101
#: ../js/ui/dateMenu.js:100
msgid "Open Clocks"
msgstr "Buka Jam"
#: ../js/ui/dateMenu.js:108
#: ../js/ui/dateMenu.js:107
msgid "Date & Time Settings"
msgstr "Pengaturan Waktu & Tanggal"
#. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#. */
#: ../js/ui/dateMenu.js:132
#: ../js/ui/dateMenu.js:204
msgid "%A %B %e, %Y"
msgstr "%A, %e %B %Y"
@@ -1151,7 +1147,7 @@ msgstr "Pasang"
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Unduh dan pasang \"%s\" dari extensions.gnome.org?"
#: ../js/ui/keyboard.js:706 ../js/ui/status/keyboard.js:539
#: ../js/ui/keyboard.js:692 ../js/ui/status/keyboard.js:523
msgid "Keyboard"
msgstr "Papan Ketik"
@@ -1207,54 +1203,53 @@ msgstr "Tilik Sumber"
msgid "Web Page"
msgstr "Halaman Web"
#: ../js/ui/messageTray.js:1332
#: ../js/ui/messageTray.js:1326
msgid "Open"
msgstr "Buka"
#: ../js/ui/messageTray.js:1339
#: ../js/ui/messageTray.js:1333
msgid "Remove"
msgstr "Hapus"
#: ../js/ui/messageTray.js:1636
#: ../js/ui/messageTray.js:1630
msgid "Notifications"
msgstr "Pemberitahuan"
#: ../js/ui/messageTray.js:1643
#: ../js/ui/messageTray.js:1637
msgid "Clear Messages"
msgstr "Bersihkan Pesan"
#: ../js/ui/messageTray.js:1662
#: ../js/ui/messageTray.js:1656
msgid "Notification Settings"
msgstr "Pengaturan Pemberitahuan"
#: ../js/ui/messageTray.js:1715
#: ../js/ui/messageTray.js:1709
msgid "Tray Menu"
msgstr "Menu Baki"
#: ../js/ui/messageTray.js:1939
#: ../js/ui/messageTray.js:1926
msgid "No Messages"
msgstr "Tiada Pesan"
#: ../js/ui/messageTray.js:1986
#: ../js/ui/messageTray.js:1968
msgid "Message Tray"
msgstr "Baki Pesan"
#: ../js/ui/messageTray.js:2443 ../js/ui/overviewControls.js:483
#: ../js/ui/screenShield.js:152
#: ../js/ui/messageTray.js:2971
msgid "System Information"
msgstr "Informasi Sistem"
#: ../js/ui/notificationDaemon.js:513 ../src/shell-app.c:425
msgctxt "program"
msgid "Unknown"
msgstr "Tak dikenal"
#: ../js/ui/overviewControls.js:482 ../js/ui/screenShield.js:151
#, javascript-format
msgid "%d new message"
msgid_plural "%d new messages"
msgstr[0] "%d pesan baru"
#: ../js/ui/messageTray.js:3013
msgid "System Information"
msgstr "Informasi Sistem"
#: ../js/ui/notificationDaemon.js:513 ../src/shell-app.c:439
msgctxt "program"
msgid "Unknown"
msgstr "Tak dikenal"
#: ../js/ui/overview.js:84
msgid "Undo"
msgstr "Batal"
@@ -1271,17 +1266,17 @@ msgstr "Gambaran"
msgid "Type to search…"
msgstr "Ketik untuk mencari…"
#: ../js/ui/panel.js:521
#: ../js/ui/panel.js:515
msgid "Quit"
msgstr "Keluar"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". */
#: ../js/ui/panel.js:573
#: ../js/ui/panel.js:567
msgid "Activities"
msgstr "Aktivitas"
#: ../js/ui/panel.js:924
#: ../js/ui/panel.js:918
msgid "Top Bar"
msgstr "Bar Atas"
@@ -1308,33 +1303,33 @@ msgstr "Memulai ulang..."
msgid "%A, %B %d"
msgstr "%A, %d %B"
#: ../js/ui/screenShield.js:154
#: ../js/ui/screenShield.js:153
#, javascript-format
msgid "%d new notification"
msgid_plural "%d new notifications"
msgstr[0] "%d pemberitahuan baru"
#: ../js/ui/screenShield.js:473 ../js/ui/status/system.js:345
#: ../js/ui/screenShield.js:472 ../js/ui/status/system.js:345
msgid "Lock"
msgstr "Kunci"
#: ../js/ui/screenShield.js:709
#: ../js/ui/screenShield.js:706
msgid "GNOME needs to lock the screen"
msgstr "GNOME perlu mengunci layar"
#: ../js/ui/screenShield.js:836 ../js/ui/screenShield.js:1312
#: ../js/ui/screenShield.js:833 ../js/ui/screenShield.js:1304
msgid "Unable to lock"
msgstr "Tak bisa mengunci"
#: ../js/ui/screenShield.js:837 ../js/ui/screenShield.js:1313
#: ../js/ui/screenShield.js:834 ../js/ui/screenShield.js:1305
msgid "Lock was blocked by an application"
msgstr "Kunci diblokir oleh suatu aplikasi"
#: ../js/ui/search.js:611
#: ../js/ui/search.js:594
msgid "Searching…"
msgstr "Mencari…"
#: ../js/ui/search.js:613
#: ../js/ui/search.js:596
msgid "No results."
msgstr "Tak ada yang cocok."
@@ -1411,9 +1406,9 @@ msgid "Bluetooth"
msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
#: ../js/ui/status/network.js:360 ../js/ui/status/network.js:1282
#: ../js/ui/status/network.js:1393 ../js/ui/status/rfkill.js:91
#: ../js/ui/status/rfkill.js:118
#: ../js/ui/status/network.js:360 ../js/ui/status/network.js:1281
#: ../js/ui/status/network.js:1392 ../js/ui/status/rfkill.js:86
#: ../js/ui/status/rfkill.js:114
msgid "Turn Off"
msgstr "Matikan"
@@ -1427,7 +1422,7 @@ msgid "%d Connected Device"
msgid_plural "%d Connected Devices"
msgstr[0] "%d Perangkat Tersambung"
#: ../js/ui/status/bluetooth.js:106 ../js/ui/status/network.js:1310
#: ../js/ui/status/bluetooth.js:106 ../js/ui/status/network.js:1309
msgid "Not Connected"
msgstr "Tak Tersambung"
@@ -1435,7 +1430,7 @@ msgstr "Tak Tersambung"
msgid "Brightness"
msgstr "Kecerahan"
#: ../js/ui/status/keyboard.js:563
#: ../js/ui/status/keyboard.js:547
msgid "Show Keyboard Layout"
msgstr "Tampilkan Tata Letak Papan Tik"
@@ -1463,8 +1458,8 @@ msgstr "Fungsikan"
msgid "<unknown>"
msgstr "<tak dikenal>"
#: ../js/ui/status/network.js:457 ../js/ui/status/network.js:1308
#: ../js/ui/status/network.js:1512
#: ../js/ui/status/network.js:457 ../js/ui/status/network.js:1307
#: ../js/ui/status/network.js:1511
msgid "Off"
msgstr "Mati"
@@ -1482,7 +1477,7 @@ msgstr "Tak Dikelola"
msgid "Disconnecting"
msgstr "Memutus"
#: ../js/ui/status/network.js:471 ../js/ui/status/network.js:1302
#: ../js/ui/status/network.js:471 ../js/ui/status/network.js:1301
msgid "Connecting"
msgstr "Menyambung"
@@ -1503,7 +1498,7 @@ msgstr "Firmware hilang"
msgid "Unavailable"
msgstr "Tak tersedia"
#: ../js/ui/status/network.js:488 ../js/ui/status/network.js:1696
#: ../js/ui/status/network.js:488 ../js/ui/status/network.js:1695
msgid "Connection failed"
msgstr "Koneksi gagal"
@@ -1515,7 +1510,7 @@ msgstr "Pengaturan Kabel"
msgid "Mobile Broadband Settings"
msgstr "Pengaturan Data Seluler"
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1306
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
msgid "Hardware Disabled"
msgstr "Perangkat Keras Dinonaktifkan"
@@ -1555,60 +1550,60 @@ msgstr "Jaringan Wi-Fi"
msgid "Select a network"
msgstr "Pilih jaringan"
#: ../js/ui/status/network.js:883
#: ../js/ui/status/network.js:882
msgid "No Networks"
msgstr "Tiada Jaringan"
#: ../js/ui/status/network.js:904 ../js/ui/status/rfkill.js:116
#: ../js/ui/status/network.js:903 ../js/ui/status/rfkill.js:112
msgid "Use hardware switch to turn off"
msgstr "Pakai saklar perangkat keras untuk mematikan"
#: ../js/ui/status/network.js:1174
#: ../js/ui/status/network.js:1173
msgid "Select Network"
msgstr "Pilih Jaringan"
#: ../js/ui/status/network.js:1180
#: ../js/ui/status/network.js:1179
msgid "Wi-Fi Settings"
msgstr "Pengaturan Wi-Fi"
#: ../js/ui/status/network.js:1282
#: ../js/ui/status/network.js:1281
msgid "Turn On"
msgstr "Nyalakan"
#: ../js/ui/status/network.js:1299
#: ../js/ui/status/network.js:1298
msgid "Hotspot Active"
msgstr "Hotspot Aktif"
#: ../js/ui/status/network.js:1410
#: ../js/ui/status/network.js:1409
msgid "connecting..."
msgstr "menghubungi..."
#. Translators: this is for network connections that require some kind of key or password */
#: ../js/ui/status/network.js:1413
#: ../js/ui/status/network.js:1412
msgid "authentication required"
msgstr "diperlukan otentikasi"
#: ../js/ui/status/network.js:1415
#: ../js/ui/status/network.js:1414
msgid "connection failed"
msgstr "koneksi gagal"
#: ../js/ui/status/network.js:1481 ../js/ui/status/rfkill.js:94
#: ../js/ui/status/network.js:1480 ../js/ui/status/rfkill.js:89
msgid "Network Settings"
msgstr "Pengaturan Jaringan"
#: ../js/ui/status/network.js:1483
#: ../js/ui/status/network.js:1482
msgid "VPN Settings"
msgstr "Pengaturan VPN"
#: ../js/ui/status/network.js:1502
#: ../js/ui/status/network.js:1501
msgid "VPN"
msgstr "VPN"
#: ../js/ui/status/network.js:1657
#: ../js/ui/status/network.js:1656
msgid "Network Manager"
msgstr "Manajer Jaringan"
#: ../js/ui/status/network.js:1697
#: ../js/ui/status/network.js:1696
msgid "Activation of network connection failed"
msgstr "Aktivasi koneksi jaringan gagal"
@@ -1642,11 +1637,11 @@ msgstr "UPS"
msgid "Battery"
msgstr "Baterai"
#: ../js/ui/status/rfkill.js:88
#: ../js/ui/status/rfkill.js:83
msgid "Airplane Mode"
msgstr "Mode Pesawat Terbang"
#: ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:85
msgid "On"
msgstr "Nyala"
@@ -1690,11 +1685,11 @@ msgstr "Masuk sebagai pengguna lain"
msgid "Unlock Window"
msgstr "Buka Kunci Jendela"
#: ../js/ui/viewSelector.js:159
#: ../js/ui/viewSelector.js:158
msgid "Applications"
msgstr "Aplikasi"
#: ../js/ui/viewSelector.js:163
#: ../js/ui/viewSelector.js:162
msgid "Search"
msgstr "Cari"
@@ -1804,7 +1799,7 @@ msgstr "Menggunakan mode tertentu, mis. \"gdm\" untuk layar masuk"
msgid "List possible modes"
msgstr "Menampilkan mode yang mungkin"
#: ../src/shell-app.c:680
#: ../src/shell-app.c:666
#, c-format
msgid "Failed to launch “%s”"
msgstr "Gagal meluncurkan \"%s\""

468
po/kk.po

File diff suppressed because it is too large Load Diff

View File

@@ -19,7 +19,7 @@ msgstr ""
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2014-09-13 07:37+0000\n"
"PO-Revision-Date: 2014-11-16 03:54+0900\n"
"PO-Revision-Date: 2014-09-18 01:41+0900\n"
"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
"Language-Team: GNOME Korea <gnome-kr@googlegroups.com>\n"
"Language: Korean\n"
@@ -1444,7 +1444,7 @@ msgstr "<알 수 없음>"
#: ../js/ui/status/network.js:457 ../js/ui/status/network.js:1307
#: ../js/ui/status/network.js:1511
msgid "Off"
msgstr ""
msgstr "끄기"
#: ../js/ui/status/network.js:459
msgid "Connected"
@@ -1626,7 +1626,7 @@ msgstr "비행기 모드"
#: ../js/ui/status/rfkill.js:85
msgid "On"
msgstr ""
msgstr "켜기"
#: ../js/ui/status/system.js:317
msgid "Switch User"

354
po/nb.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

361
po/ru.po

File diff suppressed because it is too large Load Diff

166
po/sl.po
View File

@@ -9,8 +9,8 @@ msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2014-12-19 16:26+0000\n"
"PO-Revision-Date: 2014-12-25 19:18+0100\n"
"POT-Creation-Date: 2014-09-13 16:14+0000\n"
"PO-Revision-Date: 2014-09-13 21:02+0100\n"
"Last-Translator: Matej Urbančič <mateju@svn.gnome.org>\n"
"Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
"Language: Slovenian\n"
@@ -125,11 +125,11 @@ msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:9
msgid "App Picker View"
msgstr "Pogled izbirnika programov"
msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:10
msgid "Index of the currently selected view in the application picker."
msgstr "Kazalo trenutno izbranega pogleda v izbirniku programa."
msgstr ""
#: ../data/org.gnome.shell.gschema.xml.in.in.h:11
msgid "History for command (Alt-F2) dialog"
@@ -224,8 +224,6 @@ msgstr "Tipkovna bližnjica za prikaz dejavnega obvestila."
msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr ""
"Tipkovna bližnjica, ki omogoča ustavljanje in ponovni zagon vseh zagnanih "
"programov za razhroščevanje."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
msgid "Which keyboard to use"
@@ -244,9 +242,6 @@ msgid ""
"If true, only applications that have windows on the current workspace are "
"shown in the switcher. Otherwise, all applications are included."
msgstr ""
"Izbrana možnost določa, da bodo v trenutnem pogledu prikazana le okna, ki so "
"v izbrani delovni površini v preklopniku. V nasprotnem primeru so prikazana "
"vsa okna."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
msgid "The application icon mode."
@@ -267,8 +262,6 @@ msgid ""
"If true, only windows from the current workspace are shown in the switcher. "
"Otherwise, all windows are included."
msgstr ""
"Izbrana možnost določa, da bodo v trenutnem pogledu prikazana le okna v "
"preklopniku. V nasprotnem primeru so prikazana vsa okna."
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
msgid "Attach modal dialog to the parent window"
@@ -300,7 +293,7 @@ msgstr ""
#: ../data/org.gnome.Shell.PortalHelper.desktop.in.h:1
msgid "Captive Portal"
msgstr "Združen pogled"
msgstr ""
#: ../js/extensionPrefs/main.js:123
#, javascript-format
@@ -311,54 +304,54 @@ msgstr "Prišlo je do napake med nalaganjem pogovornega okna z možnosti za %s:"
msgid "GNOME Shell Extensions"
msgstr "Razširitve lupine Gnome"
#: ../js/gdm/authPrompt.js:146 ../js/ui/components/networkAgent.js:143
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:143
#: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:915
msgid "Cancel"
msgstr "Prekliči"
#: ../js/gdm/authPrompt.js:168 ../js/gdm/authPrompt.js:216
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:217
msgid "Next"
msgstr "Naslednji"
#: ../js/gdm/authPrompt.js:212 ../js/ui/shellMountOperation.js:403
#: ../js/gdm/authPrompt.js:213 ../js/ui/shellMountOperation.js:403
#: ../js/ui/unlockDialog.js:59
msgid "Unlock"
msgstr "Odkleni"
#: ../js/gdm/authPrompt.js:214
#: ../js/gdm/authPrompt.js:215
msgctxt "button"
msgid "Sign In"
msgstr "Prijava"
#: ../js/gdm/loginDialog.js:275
#: ../js/gdm/loginDialog.js:269
msgid "Choose Session"
msgstr "Izbor seje"
#: ../js/gdm/loginDialog.js:434
#: ../js/gdm/loginDialog.js:429
msgid "Not listed?"
msgstr "Ali je ni na seznamu?"
#: ../js/gdm/loginDialog.js:619
#: ../js/gdm/loginDialog.js:614
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(na primer, uporabnika ali %s)"
#: ../js/gdm/loginDialog.js:624 ../js/ui/components/networkAgent.js:269
#: ../js/gdm/loginDialog.js:619 ../js/ui/components/networkAgent.js:269
#: ../js/ui/components/networkAgent.js:287
msgid "Username: "
msgstr "Uporabniško ime: "
#: ../js/gdm/loginDialog.js:955
#: ../js/gdm/loginDialog.js:922
msgid "Login Window"
msgstr "Prijavno okno"
#: ../js/gdm/util.js:341
#: ../js/gdm/util.js:323
msgid "Authentication error"
msgstr "Napaka overitve"
#: ../js/gdm/util.js:473
#: ../js/gdm/util.js:453
msgid "(or swipe finger)"
msgstr "(ali pa povlecite prst)"
@@ -391,28 +384,28 @@ msgstr "Pogosto"
msgid "All"
msgstr "Vse"
#: ../js/ui/appDisplay.js:1791
#: ../js/ui/appDisplay.js:1789
msgid "New Window"
msgstr "Novo okno"
#: ../js/ui/appDisplay.js:1817 ../js/ui/dash.js:285
#: ../js/ui/appDisplay.js:1815 ../js/ui/dash.js:285
msgid "Remove from Favorites"
msgstr "Odstrani iz priljubljenih"
#: ../js/ui/appDisplay.js:1823
#: ../js/ui/appDisplay.js:1821
msgid "Add to Favorites"
msgstr "Dodaj med priljubljene"
#: ../js/ui/appDisplay.js:1832
#: ../js/ui/appDisplay.js:1830
msgid "Show Details"
msgstr "Pokaži besedilo"
#: ../js/ui/appFavorites.js:132
#: ../js/ui/appFavorites.js:124
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "Program \"%s\" je dodan med priljubljeno."
#: ../js/ui/appFavorites.js:166
#: ../js/ui/appFavorites.js:158
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "Program \"%s\" je odstranjen iz priljubljenih."
@@ -429,14 +422,14 @@ msgstr "Spremeni ozadje ..."
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#. */
#: ../js/ui/calendar.js:70
#: ../js/ui/calendar.js:67
msgctxt "event list time"
msgid "All Day"
msgstr "Celodnevno"
#. Translators: Shown in calendar event list, if 24h format,
#. \u2236 is a ratio character, similar to : */
#: ../js/ui/calendar.js:77
#: ../js/ui/calendar.js:73
msgctxt "event list time"
msgid "%H%M"
msgstr "%H%M"
@@ -444,7 +437,7 @@ msgstr "%H%M"
#. Translators: Shown in calendar event list, if 12h format,
#. \u2236 is a ratio character, similar to : and \u2009 is
#. a thin space */
#: ../js/ui/calendar.js:86
#: ../js/ui/calendar.js:82
msgctxt "event list time"
msgid "%l%M%p"
msgstr "%l%M%p"
@@ -454,43 +447,43 @@ msgstr "%l%M%p"
#. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S".
#. */
#: ../js/ui/calendar.js:100
#: ../js/ui/calendar.js:113
msgctxt "grid sunday"
msgid "S"
msgstr "N"
#. Translators: Calendar grid abbreviation for Monday */
#: ../js/ui/calendar.js:102
#: ../js/ui/calendar.js:115
msgctxt "grid monday"
msgid "M"
msgstr "P"
#. Translators: Calendar grid abbreviation for Tuesday */
#: ../js/ui/calendar.js:104
#: ../js/ui/calendar.js:117
msgctxt "grid tuesday"
msgid "T"
msgstr "T"
#. Translators: Calendar grid abbreviation for Wednesday */
#: ../js/ui/calendar.js:106
#: ../js/ui/calendar.js:119
msgctxt "grid wednesday"
msgid "W"
msgstr "S"
#. Translators: Calendar grid abbreviation for Thursday */
#: ../js/ui/calendar.js:108
#: ../js/ui/calendar.js:121
msgctxt "grid thursday"
msgid "T"
msgstr "Č"
#. Translators: Calendar grid abbreviation for Friday */
#: ../js/ui/calendar.js:110
#: ../js/ui/calendar.js:123
msgctxt "grid friday"
msgid "F"
msgstr "P"
#. Translators: Calendar grid abbreviation for Saturday */
#: ../js/ui/calendar.js:112
#: ../js/ui/calendar.js:125
msgctxt "grid saturday"
msgid "S"
msgstr "S"
@@ -501,85 +494,85 @@ msgstr "S"
#. * so they need to be unique (e.g. Tuesday and Thursday cannot
#. * both be 'T').
#. */
#: ../js/ui/calendar.js:125
#: ../js/ui/calendar.js:138
msgctxt "list sunday"
msgid "Su"
msgstr "Ne"
#. Translators: Event list abbreviation for Monday */
#: ../js/ui/calendar.js:127
#: ../js/ui/calendar.js:140
msgctxt "list monday"
msgid "M"
msgstr "P"
#. Translators: Event list abbreviation for Tuesday */
#: ../js/ui/calendar.js:129
#: ../js/ui/calendar.js:142
msgctxt "list tuesday"
msgid "T"
msgstr "T"
#. Translators: Event list abbreviation for Wednesday */
#: ../js/ui/calendar.js:131
#: ../js/ui/calendar.js:144
msgctxt "list wednesday"
msgid "W"
msgstr "S"
#. Translators: Event list abbreviation for Thursday */
#: ../js/ui/calendar.js:133
#: ../js/ui/calendar.js:146
msgctxt "list thursday"
msgid "Th"
msgstr "Če"
#. Translators: Event list abbreviation for Friday */
#: ../js/ui/calendar.js:135
#: ../js/ui/calendar.js:148
msgctxt "list friday"
msgid "F"
msgstr "Pe"
#. Translators: Event list abbreviation for Saturday */
#: ../js/ui/calendar.js:137
#: ../js/ui/calendar.js:150
msgctxt "list saturday"
msgid "S"
msgstr "S"
#: ../js/ui/calendar.js:462
#: ../js/ui/calendar.js:453
msgid "Previous month"
msgstr "Predhodni mesec"
#: ../js/ui/calendar.js:472
#: ../js/ui/calendar.js:463
msgid "Next month"
msgstr "Naslednji mesec"
#. Translators: Text to show if there are no events */
#: ../js/ui/calendar.js:810
#: ../js/ui/calendar.js:781
msgid "Nothing Scheduled"
msgstr "Nič ni razporejeno"
#. Translators: Shown on calendar heading when selected day occurs on current year */
#: ../js/ui/calendar.js:826
#: ../js/ui/calendar.js:799
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %d. %m."
#. Translators: Shown on calendar heading when selected day occurs on different year */
#: ../js/ui/calendar.js:829
#: ../js/ui/calendar.js:802
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %d %B %Y"
#: ../js/ui/calendar.js:839
#: ../js/ui/calendar.js:813
msgid "Today"
msgstr "Danes"
#: ../js/ui/calendar.js:843
#: ../js/ui/calendar.js:817
msgid "Tomorrow"
msgstr "Jutri"
#: ../js/ui/calendar.js:854
#: ../js/ui/calendar.js:828
msgid "This week"
msgstr "Ta teden"
#: ../js/ui/calendar.js:862
#: ../js/ui/calendar.js:836
msgid "Next week"
msgstr "Naslednji teden"
@@ -979,7 +972,7 @@ msgstr "Poglej račun"
msgid "Unknown reason"
msgstr "Neznan vzrok"
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:155
#: ../js/ui/ctrlAltTab.js:29 ../js/ui/viewSelector.js:154
msgid "Windows"
msgstr "Okna"
@@ -991,22 +984,22 @@ msgstr "Pokaži programe"
msgid "Dash"
msgstr "Pregledna plošča"
#: ../js/ui/dateMenu.js:97
#: ../js/ui/dateMenu.js:96
msgid "Open Calendar"
msgstr "Odpri koledar"
#: ../js/ui/dateMenu.js:101
#: ../js/ui/dateMenu.js:100
msgid "Open Clocks"
msgstr "Odpri ure"
#: ../js/ui/dateMenu.js:108
#: ../js/ui/dateMenu.js:107
msgid "Date & Time Settings"
msgstr "Nastavitve časa in datuma"
#. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#. */
#: ../js/ui/dateMenu.js:132
#: ../js/ui/dateMenu.js:204
msgid "%A %B %e, %Y"
msgstr "%a, %e. %b., %R"
@@ -1162,7 +1155,7 @@ msgstr "Namesti"
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Prejmi in namesti “%s” preko povezave na extensions.gnome.org?"
#: ../js/ui/keyboard.js:700 ../js/ui/status/keyboard.js:535
#: ../js/ui/keyboard.js:692 ../js/ui/status/keyboard.js:523
msgid "Keyboard"
msgstr "Tipkovnica"
@@ -1218,49 +1211,39 @@ msgstr "Poglej vir"
msgid "Web Page"
msgstr "Spletna stran"
#: ../js/ui/messageTray.js:1332
#: ../js/ui/messageTray.js:1326
msgid "Open"
msgstr "Odpri"
#: ../js/ui/messageTray.js:1339
#: ../js/ui/messageTray.js:1333
msgid "Remove"
msgstr "Odstrani"
#: ../js/ui/messageTray.js:1636
#: ../js/ui/messageTray.js:1630
msgid "Notifications"
msgstr "Obvestila"
#: ../js/ui/messageTray.js:1643
#: ../js/ui/messageTray.js:1637
msgid "Clear Messages"
msgstr "Počisti sporočila"
#: ../js/ui/messageTray.js:1662
#: ../js/ui/messageTray.js:1656
msgid "Notification Settings"
msgstr "Nastavitve obvestil"
#: ../js/ui/messageTray.js:1715
#: ../js/ui/messageTray.js:1709
msgid "Tray Menu"
msgstr "Meni sistemske vrstice"
#: ../js/ui/messageTray.js:1939
#: ../js/ui/messageTray.js:1926
msgid "No Messages"
msgstr "Ni sporočil"
#: ../js/ui/messageTray.js:1986
#: ../js/ui/messageTray.js:1968
msgid "Message Tray"
msgstr "Sporočilna vrstica"
#: ../js/ui/messageTray.js:2443 ../js/ui/overviewControls.js:483
#: ../js/ui/screenShield.js:151
#, javascript-format
msgid "%d new message"
msgid_plural "%d new messages"
msgstr[0] "%d novih sporočil"
msgstr[1] "%d novo sporočilo"
msgstr[2] "%d novi sporočili"
msgstr[3] "%d nova sporočila"
#: ../js/ui/messageTray.js:3013
#: ../js/ui/messageTray.js:2971
msgid "System Information"
msgstr "Podrobnosti sistema"
@@ -1269,6 +1252,15 @@ msgctxt "program"
msgid "Unknown"
msgstr "Neznano"
#: ../js/ui/overviewControls.js:482 ../js/ui/screenShield.js:151
#, javascript-format
msgid "%d new message"
msgid_plural "%d new messages"
msgstr[0] "%d novih sporočil"
msgstr[1] "%d novo sporočilo"
msgstr[2] "%d novi sporočili"
msgstr[3] "%d nova sporočila"
#: ../js/ui/overview.js:84
msgid "Undo"
msgstr "Razveljavi"
@@ -1338,19 +1330,19 @@ msgstr "Zakleni"
msgid "GNOME needs to lock the screen"
msgstr "Zakleniti je treba zaslon"
#: ../js/ui/screenShield.js:833 ../js/ui/screenShield.js:1309
#: ../js/ui/screenShield.js:833 ../js/ui/screenShield.js:1304
msgid "Unable to lock"
msgstr "Zaklep ni mogoč"
#: ../js/ui/screenShield.js:834 ../js/ui/screenShield.js:1310
#: ../js/ui/screenShield.js:834 ../js/ui/screenShield.js:1305
msgid "Lock was blocked by an application"
msgstr "Zaklep je preprečil program"
#: ../js/ui/search.js:611
#: ../js/ui/search.js:594
msgid "Searching…"
msgstr "Iskanje ..."
#: ../js/ui/search.js:613
#: ../js/ui/search.js:596
msgid "No results."
msgstr "Ni najdenih zadetkov."
@@ -1454,7 +1446,7 @@ msgstr "Ni vzpostavljene povezave"
msgid "Brightness"
msgstr "Svetlost"
#: ../js/ui/status/keyboard.js:559
#: ../js/ui/status/keyboard.js:547
msgid "Show Keyboard Layout"
msgstr "Pokaži razporeditev tipkovnice"
@@ -1709,11 +1701,11 @@ msgstr "Prijava kot drug uporabnik"
msgid "Unlock Window"
msgstr "Odkleni okno"
#: ../js/ui/viewSelector.js:159
#: ../js/ui/viewSelector.js:158
msgid "Applications"
msgstr "Programi"
#: ../js/ui/viewSelector.js:163
#: ../js/ui/viewSelector.js:162
msgid "Search"
msgstr "Poišči"

348
po/sv.po
View File

@@ -3,23 +3,22 @@
# This file is distributed under the same license as the gnome-shell package.
# Daniel Nylander <po@danielnylander.se>, 2009, 2010, 2011, 2012.
# Marcus Lundblad <ml@update.uu.se>, 2014.
# Åke Engelbrektson <eson57@gmail.com, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2014-12-11 08:30+0000\n"
"PO-Revision-Date: 2014-12-11 08:57+0100\n"
"Last-Translator: Åke Engelbrektson <eson57@gmail.com>\n"
"POT-Creation-Date: 2014-09-12 21:57+0000\n"
"PO-Revision-Date: 2014-09-15 09:47+0100\n"
"Last-Translator: Mattias Eriksson <snaggen@gmail.com>\n"
"Language-Team: svenska <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.7.1\n"
"X-Generator: Poedit 1.5.4\n"
#: ../data/50-gnome-shell-system.xml.in.h:1
msgid "System"
@@ -293,8 +292,8 @@ msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Fördröj fokusändringar i musläge tills pekare slutar röra sig"
#: ../data/org.gnome.Shell.PortalHelper.desktop.in.h:1
msgid "Network Login"
msgstr "Nätverksinloggning"
msgid "Captive Portal"
msgstr "Fångstportal"
#: ../js/extensionPrefs/main.js:123
#, javascript-format
@@ -308,7 +307,7 @@ msgstr "Tillägg för GNOME-skal"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:143
#: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916
#: ../js/ui/status/network.js:915
msgid "Cancel"
msgstr "Avbryt"
@@ -326,33 +325,33 @@ msgctxt "button"
msgid "Sign In"
msgstr "Logga in"
#: ../js/gdm/loginDialog.js:275
#: ../js/gdm/loginDialog.js:269
msgid "Choose Session"
msgstr "Välj session"
#: ../js/gdm/loginDialog.js:434
#: ../js/gdm/loginDialog.js:429
msgid "Not listed?"
msgstr "Inte listad?"
#: ../js/gdm/loginDialog.js:619
#: ../js/gdm/loginDialog.js:614
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(till exempel användare eller %s)"
#: ../js/gdm/loginDialog.js:624 ../js/ui/components/networkAgent.js:269
#: ../js/gdm/loginDialog.js:619 ../js/ui/components/networkAgent.js:269
#: ../js/ui/components/networkAgent.js:287
msgid "Username: "
msgstr "Användarnamn: "
#: ../js/gdm/loginDialog.js:955
#: ../js/gdm/loginDialog.js:922
msgid "Login Window"
msgstr "Inloggningsfönster"
#: ../js/gdm/util.js:341
#: ../js/gdm/util.js:323
msgid "Authentication error"
msgstr "Autentiseringsfel"
#: ../js/gdm/util.js:473
#: ../js/gdm/util.js:453
msgid "(or swipe finger)"
msgstr "(eller dra fingret)"
@@ -373,15 +372,15 @@ msgstr "Körning av ”%s” misslyckades:"
msgid "Web Authentication Redirect"
msgstr "Omdirigering för webautentisering"
#: ../js/ui/appDisplay.js:770
#: ../js/ui/appDisplay.js:772
msgid "Frequently used applications will appear here"
msgstr "Ofta använda program kommer visas här"
#: ../js/ui/appDisplay.js:881
#: ../js/ui/appDisplay.js:883
msgid "Frequent"
msgstr "Ofta använda"
#: ../js/ui/appDisplay.js:888
#: ../js/ui/appDisplay.js:890
msgid "All"
msgstr "Alla"
@@ -401,17 +400,17 @@ msgstr "Lägg till som favorit"
msgid "Show Details"
msgstr "Visa detaljer"
#: ../js/ui/appFavorites.js:132
#: ../js/ui/appFavorites.js:124
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s har lagts till i dina favoriter."
#: ../js/ui/appFavorites.js:166
#: ../js/ui/appFavorites.js:158
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s har tagits bort från dina favoriter."
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:819
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:813
#: ../js/ui/status/system.js:337
msgid "Settings"
msgstr "Inställningar"
@@ -420,23 +419,17 @@ msgstr "Inställningar"
msgid "Change Background…"
msgstr "Ändra bakgrund…"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0" (Sunday) "6" (Saturday) "06" (Sunday and Saturday). */
#: ../js/ui/calendar.js:39
msgctxt "calendar-no-work"
msgid "06"
msgstr ""
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#. */
#: ../js/ui/calendar.js:68
#: ../js/ui/calendar.js:67
msgctxt "event list time"
msgid "All Day"
msgstr "Hela dagen"
#. Translators: Shown in calendar event list, if 24h format,
#. \u2236 is a ratio character, similar to : */
#: ../js/ui/calendar.js:75
#: ../js/ui/calendar.js:73
msgctxt "event list time"
msgid "%H%M"
msgstr "%H%M"
@@ -444,7 +437,7 @@ msgstr "%H%M"
#. Translators: Shown in calendar event list, if 12h format,
#. \u2236 is a ratio character, similar to : and \u2009 is
#. a thin space */
#: ../js/ui/calendar.js:84
#: ../js/ui/calendar.js:82
msgctxt "event list time"
msgid "%l%M%p"
msgstr "%l%M%p"
@@ -454,43 +447,43 @@ msgstr "%l%M%p"
#. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S".
#. */
#: ../js/ui/calendar.js:98
#: ../js/ui/calendar.js:113
msgctxt "grid sunday"
msgid "S"
msgstr "S"
#. Translators: Calendar grid abbreviation for Monday */
#: ../js/ui/calendar.js:100
#: ../js/ui/calendar.js:115
msgctxt "grid monday"
msgid "M"
msgstr "M"
#. Translators: Calendar grid abbreviation for Tuesday */
#: ../js/ui/calendar.js:102
#: ../js/ui/calendar.js:117
msgctxt "grid tuesday"
msgid "T"
msgstr "T"
#. Translators: Calendar grid abbreviation for Wednesday */
#: ../js/ui/calendar.js:104
#: ../js/ui/calendar.js:119
msgctxt "grid wednesday"
msgid "W"
msgstr "O"
#. Translators: Calendar grid abbreviation for Thursday */
#: ../js/ui/calendar.js:106
#: ../js/ui/calendar.js:121
msgctxt "grid thursday"
msgid "T"
msgstr "T"
#. Translators: Calendar grid abbreviation for Friday */
#: ../js/ui/calendar.js:108
#: ../js/ui/calendar.js:123
msgctxt "grid friday"
msgid "F"
msgstr "F"
#. Translators: Calendar grid abbreviation for Saturday */
#: ../js/ui/calendar.js:110
#: ../js/ui/calendar.js:125
msgctxt "grid saturday"
msgid "S"
msgstr "L"
@@ -501,83 +494,85 @@ msgstr "L"
#. * so they need to be unique (e.g. Tuesday and Thursday cannot
#. * both be 'T').
#. */
#: ../js/ui/calendar.js:123
#: ../js/ui/calendar.js:138
msgctxt "list sunday"
msgid "Su"
msgstr "Sö"
#. Translators: Event list abbreviation for Monday */
#: ../js/ui/calendar.js:125
#: ../js/ui/calendar.js:140
msgctxt "list monday"
msgid "M"
msgstr "Må"
#. Translators: Event list abbreviation for Tuesday */
#: ../js/ui/calendar.js:127
#: ../js/ui/calendar.js:142
msgctxt "list tuesday"
msgid "T"
msgstr "Ti"
#. Translators: Event list abbreviation for Wednesday */
#: ../js/ui/calendar.js:129
#: ../js/ui/calendar.js:144
msgctxt "list wednesday"
msgid "W"
msgstr "On"
#. Translators: Event list abbreviation for Thursday */
#: ../js/ui/calendar.js:131
#: ../js/ui/calendar.js:146
msgctxt "list thursday"
msgid "Th"
msgstr "To"
#. Translators: Event list abbreviation for Friday */
#: ../js/ui/calendar.js:133
#: ../js/ui/calendar.js:148
msgctxt "list friday"
msgid "F"
msgstr "Fr"
#. Translators: Event list abbreviation for Saturday */
#: ../js/ui/calendar.js:135
#: ../js/ui/calendar.js:150
msgctxt "list saturday"
msgid "S"
msgstr "Lö"
#: ../js/ui/calendar.js:444
#: ../js/ui/calendar.js:453
msgid "Previous month"
msgstr "Föregående månad"
#: ../js/ui/calendar.js:454
#: ../js/ui/calendar.js:463
msgid "Next month"
msgstr "Nästa månad"
#. Translators: Text to show if there are no events */
#: ../js/ui/calendar.js:789
#: ../js/ui/calendar.js:781
msgid "Nothing Scheduled"
msgstr "Ingenting i schemat"
#: ../js/ui/calendar.js:808
#. Translators: Shown on calendar heading when selected day occurs on current year */
#: ../js/ui/calendar.js:799
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %d %B"
#: ../js/ui/calendar.js:812
#. Translators: Shown on calendar heading when selected day occurs on different year */
#: ../js/ui/calendar.js:802
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %d %B, %Y"
#: ../js/ui/calendar.js:824
#: ../js/ui/calendar.js:813
msgid "Today"
msgstr "Idag"
#: ../js/ui/calendar.js:828
#: ../js/ui/calendar.js:817
msgid "Tomorrow"
msgstr "Imorgon"
#: ../js/ui/calendar.js:839
#: ../js/ui/calendar.js:828
msgid "This week"
msgstr "Denna vecka"
#: ../js/ui/calendar.js:847
#: ../js/ui/calendar.js:836
msgid "Next week"
msgstr "Nästa vecka"
@@ -611,7 +606,7 @@ msgid "Type again:"
msgstr "Skriv igen:"
#: ../js/ui/components/networkAgent.js:138 ../js/ui/status/network.js:277
#: ../js/ui/status/network.js:359 ../js/ui/status/network.js:919
#: ../js/ui/status/network.js:359 ../js/ui/status/network.js:918
msgid "Connect"
msgstr "Anslut"
@@ -705,102 +700,102 @@ msgstr "Autentisera"
msgid "Sorry, that didn't work. Please try again."
msgstr "Tyvärr, det fungerade inte. Försök igen."
#: ../js/ui/components/telepathyClient.js:242
#: ../js/ui/components/telepathyClient.js:240
msgid "Invitation"
msgstr "Inbjudan"
#: ../js/ui/components/telepathyClient.js:302
#: ../js/ui/components/telepathyClient.js:300
msgid "Call"
msgstr "Samtal"
#: ../js/ui/components/telepathyClient.js:318
#: ../js/ui/components/telepathyClient.js:316
msgid "File Transfer"
msgstr "Filöverföring"
#: ../js/ui/components/telepathyClient.js:422
#: ../js/ui/components/telepathyClient.js:420
msgid "Chat"
msgstr "Chatt"
#: ../js/ui/components/telepathyClient.js:485
#: ../js/ui/components/telepathyClient.js:483
msgid "Unmute"
msgstr "Aktivera ljud"
#: ../js/ui/components/telepathyClient.js:485
#: ../js/ui/components/telepathyClient.js:483
msgid "Mute"
msgstr "Tyst"
#. Translators: Time in 24h format */
#: ../js/ui/components/telepathyClient.js:955
#: ../js/ui/components/telepathyClient.js:953
msgid "%H%M"
msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" */
#: ../js/ui/components/telepathyClient.js:962
#: ../js/ui/components/telepathyClient.js:960
msgid "Yesterday, %H%M"
msgstr "Igår, %H%M"
#. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" */
#: ../js/ui/components/telepathyClient.js:969
#: ../js/ui/components/telepathyClient.js:967
msgid "%A, %H%M"
msgstr "%A, %H%M"
#. Translators: this is the month name and day number
#. followed by a time string in 24h format.
#. i.e. "May 25, 14:30" */
#: ../js/ui/components/telepathyClient.js:976
#: ../js/ui/components/telepathyClient.js:974
msgid "%B %d, %H%M"
msgstr "%d %B, %H%M"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30" */
#: ../js/ui/components/telepathyClient.js:982
#: ../js/ui/components/telepathyClient.js:980
msgid "%B %d %Y, %H%M"
msgstr "%d %B %Y, %H%M"
#. Translators: Time in 24h format */
#: ../js/ui/components/telepathyClient.js:988
#: ../js/ui/components/telepathyClient.js:986
msgid "%l%M %p"
msgstr "%l%M%p"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:995
#: ../js/ui/components/telepathyClient.js:993
msgid "Yesterday, %l%M %p"
msgstr "Igår, %l%M%p"
#. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:1002
#: ../js/ui/components/telepathyClient.js:1000
msgid "%A, %l%M %p"
msgstr "%A, %I%M%p"
#. Translators: this is the month name and day number
#. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:1009
#: ../js/ui/components/telepathyClient.js:1007
msgid "%B %d, %l%M %p"
msgstr "%d %B, %l%M%p"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"*/
#: ../js/ui/components/telepathyClient.js:1015
#: ../js/ui/components/telepathyClient.js:1013
msgid "%B %d %Y, %l%M %p"
msgstr "%d %B %Y, %l%M%p"
#. Translators: this is the other person changing their old IM name to their new
#. IM name. */
#: ../js/ui/components/telepathyClient.js:1047
#: ../js/ui/components/telepathyClient.js:1045
#, javascript-format
msgid "%s is now known as %s"
msgstr "%s är nu känd som %s"
#. translators: argument is a room name like
#. * room@jabber.org for example. */
#: ../js/ui/components/telepathyClient.js:1151
#: ../js/ui/components/telepathyClient.js:1149
#, javascript-format
msgid "Invitation to %s"
msgstr "Inbjudan till %s"
@@ -808,38 +803,38 @@ msgstr "Inbjudan till %s"
#. translators: first argument is the name of a contact and the second
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
#. * for example. */
#: ../js/ui/components/telepathyClient.js:1159
#: ../js/ui/components/telepathyClient.js:1157
#, javascript-format
msgid "%s is inviting you to join %s"
msgstr "%s bjuder in dig till %s"
#: ../js/ui/components/telepathyClient.js:1161
#: ../js/ui/components/telepathyClient.js:1196
#: ../js/ui/components/telepathyClient.js:1230
#: ../js/ui/components/telepathyClient.js:1287
#: ../js/ui/components/telepathyClient.js:1159
#: ../js/ui/components/telepathyClient.js:1194
#: ../js/ui/components/telepathyClient.js:1228
#: ../js/ui/components/telepathyClient.js:1286
msgid "Decline"
msgstr "Neka"
#: ../js/ui/components/telepathyClient.js:1167
#: ../js/ui/components/telepathyClient.js:1236
#: ../js/ui/components/telepathyClient.js:1292
#: ../js/ui/components/telepathyClient.js:1165
#: ../js/ui/components/telepathyClient.js:1234
#: ../js/ui/components/telepathyClient.js:1291
msgid "Accept"
msgstr "Acceptera"
#. translators: argument is a contact name like Alice for example. */
#: ../js/ui/components/telepathyClient.js:1186
#: ../js/ui/components/telepathyClient.js:1184
#, javascript-format
msgid "Video call from %s"
msgstr "Videosamtal från %s"
#. translators: argument is a contact name like Alice for example. */
#: ../js/ui/components/telepathyClient.js:1189
#: ../js/ui/components/telepathyClient.js:1187
#, javascript-format
msgid "Call from %s"
msgstr "Samtal från %s"
#. translators: this is a button label (verb), not a noun */
#: ../js/ui/components/telepathyClient.js:1203
#: ../js/ui/components/telepathyClient.js:1201
msgid "Answer"
msgstr "Svara"
@@ -848,109 +843,109 @@ msgstr "Svara"
#. * file name. The string will be something
#. * like: "Alice is sending you test.ogg"
#. */
#: ../js/ui/components/telepathyClient.js:1224
#: ../js/ui/components/telepathyClient.js:1222
#, javascript-format
msgid "%s is sending you %s"
msgstr "%s skickar dig %s"
#. To translators: The parameter is the contact's alias */
#: ../js/ui/components/telepathyClient.js:1253
#: ../js/ui/components/telepathyClient.js:1251
#, javascript-format
msgid "%s would like permission to see when you are online"
msgstr "%s vill få behörighet att se när du är ansluten"
#: ../js/ui/components/telepathyClient.js:1338
#: ../js/ui/components/telepathyClient.js:1337
msgid "Network error"
msgstr "Nätverksfel"
#: ../js/ui/components/telepathyClient.js:1340
#: ../js/ui/components/telepathyClient.js:1339
msgid "Authentication failed"
msgstr "Autentisering misslyckades"
#: ../js/ui/components/telepathyClient.js:1342
#: ../js/ui/components/telepathyClient.js:1341
msgid "Encryption error"
msgstr "Krypteringsfel"
#: ../js/ui/components/telepathyClient.js:1344
#: ../js/ui/components/telepathyClient.js:1343
msgid "Certificate not provided"
msgstr "Certifikat tillhandahålls inte"
#: ../js/ui/components/telepathyClient.js:1346
#: ../js/ui/components/telepathyClient.js:1345
msgid "Certificate untrusted"
msgstr "Certifikatet är inte pålitligt"
#: ../js/ui/components/telepathyClient.js:1348
#: ../js/ui/components/telepathyClient.js:1347
msgid "Certificate expired"
msgstr "Certifikatet är utgånget"
#: ../js/ui/components/telepathyClient.js:1350
#: ../js/ui/components/telepathyClient.js:1349
msgid "Certificate not activated"
msgstr "Certifikatet är inte aktiverat"
#: ../js/ui/components/telepathyClient.js:1352
#: ../js/ui/components/telepathyClient.js:1351
msgid "Certificate hostname mismatch"
msgstr "Certifikatets värdnamn stämmer inte"
#: ../js/ui/components/telepathyClient.js:1354
#: ../js/ui/components/telepathyClient.js:1353
msgid "Certificate fingerprint mismatch"
msgstr "Certifikatets fingeravtryck stämmer inte"
#: ../js/ui/components/telepathyClient.js:1356
#: ../js/ui/components/telepathyClient.js:1355
msgid "Certificate self-signed"
msgstr "Certifikatet är självsignerat"
#: ../js/ui/components/telepathyClient.js:1358
#: ../js/ui/components/telepathyClient.js:1357
msgid "Status is set to offline"
msgstr "Status är inställd till frånkopplad"
#: ../js/ui/components/telepathyClient.js:1360
#: ../js/ui/components/telepathyClient.js:1359
msgid "Encryption is not available"
msgstr "Kryptering är inte tillgänglig"
#: ../js/ui/components/telepathyClient.js:1362
#: ../js/ui/components/telepathyClient.js:1361
msgid "Certificate is invalid"
msgstr "Certifikatet är ogiltigt"
#: ../js/ui/components/telepathyClient.js:1364
#: ../js/ui/components/telepathyClient.js:1363
msgid "Connection has been refused"
msgstr "Anslutningen har nekats"
#: ../js/ui/components/telepathyClient.js:1366
#: ../js/ui/components/telepathyClient.js:1365
msgid "Connection can't be established"
msgstr "Anslutningen kan inte etableras"
#: ../js/ui/components/telepathyClient.js:1368
#: ../js/ui/components/telepathyClient.js:1367
msgid "Connection has been lost"
msgstr "Anslutningen har förlorats"
#: ../js/ui/components/telepathyClient.js:1370
#: ../js/ui/components/telepathyClient.js:1369
msgid "This account is already connected to the server"
msgstr "Detta konto är redan anslutet till servern"
#: ../js/ui/components/telepathyClient.js:1372
#: ../js/ui/components/telepathyClient.js:1371
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr "Anslutningen har ersatts av en ny anslutning med samma resurs"
#: ../js/ui/components/telepathyClient.js:1374
#: ../js/ui/components/telepathyClient.js:1373
msgid "The account already exists on the server"
msgstr "Kontot finns redan på servern"
#: ../js/ui/components/telepathyClient.js:1376
#: ../js/ui/components/telepathyClient.js:1375
msgid "Server is currently too busy to handle the connection"
msgstr "Servern är för närvarande för upptagen för att hantera anslutningen"
#: ../js/ui/components/telepathyClient.js:1378
#: ../js/ui/components/telepathyClient.js:1377
msgid "Certificate has been revoked"
msgstr "Certifikatet har spärrats"
#: ../js/ui/components/telepathyClient.js:1380
#: ../js/ui/components/telepathyClient.js:1379
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr ""
"Certifikatet använder en osäker skifferalgoritm eller är kryptografiskt svagt"
#: ../js/ui/components/telepathyClient.js:1382
#: ../js/ui/components/telepathyClient.js:1381
msgid ""
"The length of the server certificate, or the depth of the server certificate "
"chain, exceed the limits imposed by the cryptography library"
@@ -958,22 +953,22 @@ msgstr ""
"Längden på serverns certifikat, eller djupet av serverns certifikatkedja, "
"överstiger gränserna som satts av det kryptografiska biblioteket"
#: ../js/ui/components/telepathyClient.js:1384
#: ../js/ui/components/telepathyClient.js:1383
msgid "Internal error"
msgstr "Internt fel"
#. translators: argument is the account name, like
#. * name@jabber.org for example. */
#: ../js/ui/components/telepathyClient.js:1394
#: ../js/ui/components/telepathyClient.js:1393
#, javascript-format
msgid "Unable to connect to %s"
msgstr "Misslyckades att ansluta till %s"
#: ../js/ui/components/telepathyClient.js:1399
#: ../js/ui/components/telepathyClient.js:1398
msgid "View account"
msgstr "Visa konto"
#: ../js/ui/components/telepathyClient.js:1436
#: ../js/ui/components/telepathyClient.js:1435
msgid "Unknown reason"
msgstr "Okänd anledning"
@@ -987,24 +982,24 @@ msgstr "Visa program"
#: ../js/ui/dash.js:445
msgid "Dash"
msgstr "Snabbstartspanel"
msgstr "Favoriter"
#: ../js/ui/dateMenu.js:97
#: ../js/ui/dateMenu.js:96
msgid "Open Calendar"
msgstr "Öppna kalender"
#: ../js/ui/dateMenu.js:101
#: ../js/ui/dateMenu.js:100
msgid "Open Clocks"
msgstr "Öppna klockor"
#: ../js/ui/dateMenu.js:108
#: ../js/ui/dateMenu.js:107
msgid "Date & Time Settings"
msgstr "Inställningar för datum och tid"
#. Translators: This is the date format to use when the calendar popup is
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
#. */
#: ../js/ui/dateMenu.js:132
#: ../js/ui/dateMenu.js:204
msgid "%A %B %e, %Y"
msgstr "%A %e %B, %Y"
@@ -1149,7 +1144,7 @@ msgstr "Installera"
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Hämta och installera ”%s” från extensions.gnome.org?"
#: ../js/ui/keyboard.js:706 ../js/ui/status/keyboard.js:539
#: ../js/ui/keyboard.js:692 ../js/ui/status/keyboard.js:523
msgid "Keyboard"
msgstr "Tangentbord"
@@ -1205,55 +1200,54 @@ msgstr "Visa källa"
msgid "Web Page"
msgstr "Webbsida"
#: ../js/ui/messageTray.js:1332
#: ../js/ui/messageTray.js:1326
msgid "Open"
msgstr "Öppna"
#: ../js/ui/messageTray.js:1339
#: ../js/ui/messageTray.js:1333
msgid "Remove"
msgstr "Ta bort"
#: ../js/ui/messageTray.js:1636
#: ../js/ui/messageTray.js:1630
msgid "Notifications"
msgstr "Notifieringar"
#: ../js/ui/messageTray.js:1643
#: ../js/ui/messageTray.js:1637
msgid "Clear Messages"
msgstr "Rensa meddelanden"
#: ../js/ui/messageTray.js:1662
#: ../js/ui/messageTray.js:1656
msgid "Notification Settings"
msgstr "Inställningar för notifieringar"
#: ../js/ui/messageTray.js:1715
#: ../js/ui/messageTray.js:1709
msgid "Tray Menu"
msgstr "Fältmeny"
#: ../js/ui/messageTray.js:1939
#: ../js/ui/messageTray.js:1926
msgid "No Messages"
msgstr "Inga meddelanden"
#: ../js/ui/messageTray.js:1984
#: ../js/ui/messageTray.js:1968
msgid "Message Tray"
msgstr "Meddelandefält"
#: ../js/ui/messageTray.js:2441 ../js/ui/overviewControls.js:483
#: ../js/ui/screenShield.js:152
#: ../js/ui/messageTray.js:2971
msgid "System Information"
msgstr "Systeminformation"
#: ../js/ui/notificationDaemon.js:513 ../src/shell-app.c:425
msgctxt "program"
msgid "Unknown"
msgstr "Okänt"
#: ../js/ui/overviewControls.js:482 ../js/ui/screenShield.js:151
#, javascript-format
msgid "%d new message"
msgid_plural "%d new messages"
msgstr[0] "%d nytt meddelande"
msgstr[1] "%d nya meddelanden"
#: ../js/ui/messageTray.js:3011
msgid "System Information"
msgstr "Systeminformation"
#: ../js/ui/notificationDaemon.js:513 ../src/shell-app.c:439
msgctxt "program"
msgid "Unknown"
msgstr "Okänt"
#: ../js/ui/overview.js:84
msgid "Undo"
msgstr "Ångra"
@@ -1270,17 +1264,17 @@ msgstr "Översikt"
msgid "Type to search…"
msgstr "Skriv för att söka…"
#: ../js/ui/panel.js:521
#: ../js/ui/panel.js:515
msgid "Quit"
msgstr "Avsluta"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". */
#: ../js/ui/panel.js:573
#: ../js/ui/panel.js:567
msgid "Activities"
msgstr "Aktiviteter"
#: ../js/ui/panel.js:924
#: ../js/ui/panel.js:918
msgid "Top Bar"
msgstr "Systemrad"
@@ -1306,34 +1300,34 @@ msgstr "Startar om…"
msgid "%A, %B %d"
msgstr "%A, %d %B"
#: ../js/ui/screenShield.js:154
#: ../js/ui/screenShield.js:153
#, javascript-format
msgid "%d new notification"
msgid_plural "%d new notifications"
msgstr[0] "%d ny notifiering"
msgstr[1] "%d nya notifieringar"
#: ../js/ui/screenShield.js:473 ../js/ui/status/system.js:345
#: ../js/ui/screenShield.js:472 ../js/ui/status/system.js:345
msgid "Lock"
msgstr "Lås"
#: ../js/ui/screenShield.js:709
#: ../js/ui/screenShield.js:706
msgid "GNOME needs to lock the screen"
msgstr "GNOME behöver låsa skärmen"
#: ../js/ui/screenShield.js:836 ../js/ui/screenShield.js:1312
#: ../js/ui/screenShield.js:833 ../js/ui/screenShield.js:1304
msgid "Unable to lock"
msgstr "Kunde inte låsa"
#: ../js/ui/screenShield.js:837 ../js/ui/screenShield.js:1313
#: ../js/ui/screenShield.js:834 ../js/ui/screenShield.js:1305
msgid "Lock was blocked by an application"
msgstr "Låsning hindrades av ett program"
#: ../js/ui/search.js:611
#: ../js/ui/search.js:594
msgid "Searching…"
msgstr "Söker…"
#: ../js/ui/search.js:613
#: ../js/ui/search.js:596
msgid "No results."
msgstr "Inga sökträffar."
@@ -1410,9 +1404,9 @@ msgid "Bluetooth"
msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
#: ../js/ui/status/network.js:360 ../js/ui/status/network.js:1282
#: ../js/ui/status/network.js:1393 ../js/ui/status/rfkill.js:91
#: ../js/ui/status/rfkill.js:118
#: ../js/ui/status/network.js:360 ../js/ui/status/network.js:1281
#: ../js/ui/status/network.js:1392 ../js/ui/status/rfkill.js:86
#: ../js/ui/status/rfkill.js:114
msgid "Turn Off"
msgstr "Stäng av"
@@ -1427,7 +1421,7 @@ msgid_plural "%d Connected Devices"
msgstr[0] "%d ansluten enhet"
msgstr[1] "%d anslutna enheter"
#: ../js/ui/status/bluetooth.js:106 ../js/ui/status/network.js:1310
#: ../js/ui/status/bluetooth.js:106 ../js/ui/status/network.js:1309
msgid "Not Connected"
msgstr "Ej ansluten"
@@ -1435,7 +1429,7 @@ msgstr "Ej ansluten"
msgid "Brightness"
msgstr "Ljusstyrka"
#: ../js/ui/status/keyboard.js:563
#: ../js/ui/status/keyboard.js:547
msgid "Show Keyboard Layout"
msgstr "Visa tangentbordslayout"
@@ -1448,6 +1442,7 @@ msgid "Disable"
msgstr "Inaktivera"
#: ../js/ui/status/location.js:73
#| msgid "Power Settings"
msgid "Privacy Settings"
msgstr "Sekretessinställningar"
@@ -1463,8 +1458,8 @@ msgstr "Aktivera"
msgid "<unknown>"
msgstr "<okänd>"
#: ../js/ui/status/network.js:457 ../js/ui/status/network.js:1308
#: ../js/ui/status/network.js:1512
#: ../js/ui/status/network.js:457 ../js/ui/status/network.js:1307
#: ../js/ui/status/network.js:1511
msgid "Off"
msgstr "Frånkopplad"
@@ -1482,7 +1477,7 @@ msgstr "Ohanterade"
msgid "Disconnecting"
msgstr "Kopplar från"
#: ../js/ui/status/network.js:471 ../js/ui/status/network.js:1302
#: ../js/ui/status/network.js:471 ../js/ui/status/network.js:1301
msgid "Connecting"
msgstr "Ansluter"
@@ -1503,7 +1498,7 @@ msgstr "Fast programvara saknas"
msgid "Unavailable"
msgstr "Inte tillgänglig"
#: ../js/ui/status/network.js:488 ../js/ui/status/network.js:1696
#: ../js/ui/status/network.js:488 ../js/ui/status/network.js:1695
msgid "Connection failed"
msgstr "Anslutningen misslyckades"
@@ -1515,7 +1510,7 @@ msgstr "Trådbundna inställningar"
msgid "Mobile Broadband Settings"
msgstr "Inställningar för mobilt bredband"
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1306
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
msgid "Hardware Disabled"
msgstr "Maskinvara inaktiverad"
@@ -1556,60 +1551,60 @@ msgstr "Trådlösa nätverk"
msgid "Select a network"
msgstr "Välj ett nätverk"
#: ../js/ui/status/network.js:883
#: ../js/ui/status/network.js:882
msgid "No Networks"
msgstr "Inga nätverk"
#: ../js/ui/status/network.js:904 ../js/ui/status/rfkill.js:116
#: ../js/ui/status/network.js:903 ../js/ui/status/rfkill.js:112
msgid "Use hardware switch to turn off"
msgstr "Använd hårdvarubrytare för att slå av"
#: ../js/ui/status/network.js:1174
#: ../js/ui/status/network.js:1173
msgid "Select Network"
msgstr "Välj nätverk"
#: ../js/ui/status/network.js:1180
#: ../js/ui/status/network.js:1179
msgid "Wi-Fi Settings"
msgstr "Inställningar för trådlösa nätverk"
#: ../js/ui/status/network.js:1282
#: ../js/ui/status/network.js:1281
msgid "Turn On"
msgstr "Slå på"
#: ../js/ui/status/network.js:1299
#: ../js/ui/status/network.js:1298
msgid "Hotspot Active"
msgstr "Surfzon aktiv"
msgstr "Surfpunkt Aktiv"
#: ../js/ui/status/network.js:1410
#: ../js/ui/status/network.js:1409
msgid "connecting..."
msgstr "ansluter..."
#. Translators: this is for network connections that require some kind of key or password */
#: ../js/ui/status/network.js:1413
#: ../js/ui/status/network.js:1412
msgid "authentication required"
msgstr "autentisering krävs"
#: ../js/ui/status/network.js:1415
#: ../js/ui/status/network.js:1414
msgid "connection failed"
msgstr "anslutningen misslyckades"
#: ../js/ui/status/network.js:1481 ../js/ui/status/rfkill.js:94
#: ../js/ui/status/network.js:1480 ../js/ui/status/rfkill.js:89
msgid "Network Settings"
msgstr "Nätverksinställningar"
#: ../js/ui/status/network.js:1483
#: ../js/ui/status/network.js:1482
msgid "VPN Settings"
msgstr "VPN-inställningar"
#: ../js/ui/status/network.js:1502
#: ../js/ui/status/network.js:1501
msgid "VPN"
msgstr "VPN"
#: ../js/ui/status/network.js:1657
#: ../js/ui/status/network.js:1656
msgid "Network Manager"
msgstr "Nätverkshanterare"
#: ../js/ui/status/network.js:1697
#: ../js/ui/status/network.js:1696
msgid "Activation of network connection failed"
msgstr "Aktivering av nätverksanslutning misslyckades"
@@ -1643,11 +1638,11 @@ msgstr "Avbrottsfri kraftförsörjning (UPS)"
msgid "Battery"
msgstr "Batteri"
#: ../js/ui/status/rfkill.js:88
#: ../js/ui/status/rfkill.js:83
msgid "Airplane Mode"
msgstr "Flygplansläge"
#: ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:85
msgid "On"
msgstr "På"
@@ -1808,7 +1803,7 @@ msgstr "Använd ett specifikt läge, t.ex. ”gdm” för inloggningsskärm"
msgid "List possible modes"
msgstr "Lista möjliga lägen"
#: ../src/shell-app.c:680
#: ../src/shell-app.c:666
#, c-format
msgid "Failed to launch “%s”"
msgstr "Misslyckades med att starta ”%s”"
@@ -1825,9 +1820,6 @@ msgstr "Lösenordet får inte vara blankt"
msgid "Authentication dialog was dismissed by the user"
msgstr "Autentiseringsdialogen stängdes av användaren"
#~ msgid "Captive Portal"
#~ msgstr "Fångstportal"
#~ msgid "The maximum accuracy level of location."
#~ msgstr "Högsta grad av noggrannhet för plats."

343
po/tr.po
View File

@@ -7,15 +7,14 @@
# Osman Karagöz <osmank3@gmail.com>, 2013.
# Bayram Güçlü <byrmgcl@yandex.com.tr>, 2014.
# sabri ünal <yakushabb@gmail.com>, 2014.
# Gökhan Gurbetoğlu <ggurbet@gmail.com>, 2014.
# Muhammet Kara <muhammetk@gmail.com>, 2011, 2012, 2013, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2014-12-13 08:33+0000\n"
"PO-Revision-Date: 2014-12-13 17:43+0000\n"
"POT-Creation-Date: 2014-09-15 09:30+0000\n"
"PO-Revision-Date: 2014-09-16 09:01+0000\n"
"Last-Translator: Muhammet Kara <muhammetk@gmail.com>\n"
"Language-Team: Türkçe <gnome-turk@gnome.org>\n"
"MIME-Version: 1.0\n"
@@ -268,8 +267,8 @@ msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Fare kipinde odak değişikliklerini işaretçi hareketi durana kadar beklet"
#: ../data/org.gnome.Shell.PortalHelper.desktop.in.h:1
msgid "Network Login"
msgstr "Ağ Girişi"
msgid "Captive Portal"
msgstr "Esir Portal"
#: ../js/extensionPrefs/main.js:123
#, javascript-format
@@ -283,7 +282,7 @@ msgstr "GNOME Kabuğu Uzantıları"
#: ../js/gdm/authPrompt.js:147 ../js/ui/components/networkAgent.js:143
#: ../js/ui/components/polkitAgent.js:166 ../js/ui/endSessionDialog.js:452
#: ../js/ui/extensionDownloader.js:195 ../js/ui/shellMountOperation.js:399
#: ../js/ui/status/network.js:916
#: ../js/ui/status/network.js:915
msgid "Cancel"
msgstr "İptal"
@@ -301,33 +300,33 @@ msgctxt "button"
msgid "Sign In"
msgstr "Giriş"
#: ../js/gdm/loginDialog.js:275
#: ../js/gdm/loginDialog.js:269
msgid "Choose Session"
msgstr "Oturum Seçin"
#: ../js/gdm/loginDialog.js:434
#: ../js/gdm/loginDialog.js:429
msgid "Not listed?"
msgstr "Listede yok mu?"
#: ../js/gdm/loginDialog.js:619
#: ../js/gdm/loginDialog.js:614
#, javascript-format
msgid "(e.g., user or %s)"
msgstr "(örneğin, kullanıcı veya %s)"
#: ../js/gdm/loginDialog.js:624 ../js/ui/components/networkAgent.js:269
#: ../js/gdm/loginDialog.js:619 ../js/ui/components/networkAgent.js:269
#: ../js/ui/components/networkAgent.js:287
msgid "Username: "
msgstr "Kullanıcı Adı: "
#: ../js/gdm/loginDialog.js:955
#: ../js/gdm/loginDialog.js:922
msgid "Login Window"
msgstr "Oturum Açma Penceresi"
#: ../js/gdm/util.js:341
#: ../js/gdm/util.js:323
msgid "Authentication error"
msgstr "Kimlik doğrulama hatası"
#: ../js/gdm/util.js:473
#: ../js/gdm/util.js:453
msgid "(or swipe finger)"
msgstr "(ya da parmak izi okutun)"
@@ -348,15 +347,15 @@ msgstr "“%s” çalıştırılması başarısız:"
msgid "Web Authentication Redirect"
msgstr "Web Kimlik Doğrulama Yönlendirmesi"
#: ../js/ui/appDisplay.js:770
#: ../js/ui/appDisplay.js:772
msgid "Frequently used applications will appear here"
msgstr "Sık kullanılan uygulamalar burada yer alacak"
#: ../js/ui/appDisplay.js:881
#: ../js/ui/appDisplay.js:883
msgid "Frequent"
msgstr "Sık sık"
#: ../js/ui/appDisplay.js:888
#: ../js/ui/appDisplay.js:890
msgid "All"
msgstr "Hepsi"
@@ -376,17 +375,17 @@ msgstr "Sık Kullanılanlara Ekle"
msgid "Show Details"
msgstr "Ayrıntıları Göster"
#: ../js/ui/appFavorites.js:132
#: ../js/ui/appFavorites.js:124
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s sık kullanılanlarınıza eklendi."
#: ../js/ui/appFavorites.js:166
#: ../js/ui/appFavorites.js:158
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s sık kullanılanlarınızdan çıkarıldı."
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:819
#: ../js/ui/backgroundMenu.js:19 ../js/ui/panel.js:813
#: ../js/ui/status/system.js:337
msgid "Settings"
msgstr "Ayarlar"
@@ -395,24 +394,17 @@ msgstr "Ayarlar"
msgid "Change Background…"
msgstr "Arkaplanı Değiştir…"
#. Translators: Enter 0-6 (Sunday-Saturday) for non-work days. Examples: "0"
#. (Sunday) "6" (Saturday) "06" (Sunday and Saturday). */
#: ../js/ui/calendar.js:39
msgctxt "calendar-no-work"
msgid "06"
msgstr "06"
#. Translators: Shown in calendar event list for all day events
#. * Keep it short, best if you can use less then 10 characters
#. */
#: ../js/ui/calendar.js:68
#: ../js/ui/calendar.js:67
msgctxt "event list time"
msgid "All Day"
msgstr "Tüm Gün"
#. Translators: Shown in calendar event list, if 24h format,
#. \u2236 is a ratio character, similar to : */
#: ../js/ui/calendar.js:75
#: ../js/ui/calendar.js:73
msgctxt "event list time"
msgid "%H%M"
msgstr "%H%M"
@@ -420,7 +412,7 @@ msgstr "%H%M"
#. Translators: Shown in calendar event list, if 12h format,
#. \u2236 is a ratio character, similar to : and \u2009 is
#. a thin space */
#: ../js/ui/calendar.js:84
#: ../js/ui/calendar.js:82
msgctxt "event list time"
msgid "%l%M%p"
msgstr "%l%M%p"
@@ -430,43 +422,43 @@ msgstr "%l%M%p"
#. * NOTE: These grid abbreviations are always shown together
#. * and in order, e.g. "S M T W T F S".
#. */
#: ../js/ui/calendar.js:98
#: ../js/ui/calendar.js:113
msgctxt "grid sunday"
msgid "S"
msgstr "P"
#. Translators: Calendar grid abbreviation for Monday */
#: ../js/ui/calendar.js:100
#: ../js/ui/calendar.js:115
msgctxt "grid monday"
msgid "M"
msgstr "P"
#. Translators: Calendar grid abbreviation for Tuesday */
#: ../js/ui/calendar.js:102
#: ../js/ui/calendar.js:117
msgctxt "grid tuesday"
msgid "T"
msgstr "S"
#. Translators: Calendar grid abbreviation for Wednesday */
#: ../js/ui/calendar.js:104
#: ../js/ui/calendar.js:119
msgctxt "grid wednesday"
msgid "W"
msgstr "Ç"
#. Translators: Calendar grid abbreviation for Thursday */
#: ../js/ui/calendar.js:106
#: ../js/ui/calendar.js:121
msgctxt "grid thursday"
msgid "T"
msgstr "P"
#. Translators: Calendar grid abbreviation for Friday */
#: ../js/ui/calendar.js:108
#: ../js/ui/calendar.js:123
msgctxt "grid friday"
msgid "F"
msgstr "C"
#. Translators: Calendar grid abbreviation for Saturday */
#: ../js/ui/calendar.js:110
#: ../js/ui/calendar.js:125
msgctxt "grid saturday"
msgid "S"
msgstr "C"
@@ -477,83 +469,87 @@ msgstr "C"
#. * so they need to be unique (e.g. Tuesday and Thursday cannot
#. * both be 'T').
#. */
#: ../js/ui/calendar.js:123
#: ../js/ui/calendar.js:138
msgctxt "list sunday"
msgid "Su"
msgstr "Pa"
#. Translators: Event list abbreviation for Monday */
#: ../js/ui/calendar.js:125
#: ../js/ui/calendar.js:140
msgctxt "list monday"
msgid "M"
msgstr "Pz"
#. Translators: Event list abbreviation for Tuesday */
#: ../js/ui/calendar.js:127
#: ../js/ui/calendar.js:142
msgctxt "list tuesday"
msgid "T"
msgstr "S"
#. Translators: Event list abbreviation for Wednesday */
#: ../js/ui/calendar.js:129
#: ../js/ui/calendar.js:144
msgctxt "list wednesday"
msgid "W"
msgstr "Ç"
#. Translators: Event list abbreviation for Thursday */
#: ../js/ui/calendar.js:131
#: ../js/ui/calendar.js:146
msgctxt "list thursday"
msgid "Th"
msgstr "Pe"
#. Translators: Event list abbreviation for Friday */
#: ../js/ui/calendar.js:133
#: ../js/ui/calendar.js:148
msgctxt "list friday"
msgid "F"
msgstr "C"
#. Translators: Event list abbreviation for Saturday */
#: ../js/ui/calendar.js:135
#: ../js/ui/calendar.js:150
msgctxt "list saturday"
msgid "S"
msgstr "Ct"
#: ../js/ui/calendar.js:444
#: ../js/ui/calendar.js:453
msgid "Previous month"
msgstr "Önceki ay"
#: ../js/ui/calendar.js:454
#: ../js/ui/calendar.js:463
msgid "Next month"
msgstr "Gelecek ay"
#. Translators: Text to show if there are no events */
#: ../js/ui/calendar.js:789
#: ../js/ui/calendar.js:781
msgid "Nothing Scheduled"
msgstr "Planınız Boş"
#: ../js/ui/calendar.js:808
#. Translators: Shown on calendar heading when selected day occurs on current
#. year */
#: ../js/ui/calendar.js:799
msgctxt "calendar heading"
msgid "%A, %B %d"
msgstr "%A, %d %B"
#: ../js/ui/calendar.js:812
#. Translators: Shown on calendar heading when selected day occurs on
#. different year */
#: ../js/ui/calendar.js:802
msgctxt "calendar heading"
msgid "%A, %B %d, %Y"
msgstr "%A, %d %B, %Y"
#: ../js/ui/calendar.js:824
#: ../js/ui/calendar.js:813
msgid "Today"
msgstr "Bugün"
#: ../js/ui/calendar.js:828
#: ../js/ui/calendar.js:817
msgid "Tomorrow"
msgstr "Yarın"
#: ../js/ui/calendar.js:839
#: ../js/ui/calendar.js:828
msgid "This week"
msgstr "Bu hafta"
#: ../js/ui/calendar.js:847
#: ../js/ui/calendar.js:836
msgid "Next week"
msgstr "Gelecek hafta"
@@ -587,7 +583,7 @@ msgid "Type again:"
msgstr "Terkar yazın:"
#: ../js/ui/components/networkAgent.js:138 ../js/ui/status/network.js:277
#: ../js/ui/status/network.js:359 ../js/ui/status/network.js:919
#: ../js/ui/status/network.js:359 ../js/ui/status/network.js:918
msgid "Connect"
msgstr "Bağlan"
@@ -679,103 +675,103 @@ msgstr "Doğrula"
msgid "Sorry, that didn't work. Please try again."
msgstr "Üzgünüm ama işe yaramadı. Lütfen tekrar deneyin."
#: ../js/ui/components/telepathyClient.js:242
#: ../js/ui/components/telepathyClient.js:240
msgid "Invitation"
msgstr "Davet"
#: ../js/ui/components/telepathyClient.js:302
#: ../js/ui/components/telepathyClient.js:300
msgid "Call"
msgstr "Çağrı"
#: ../js/ui/components/telepathyClient.js:318
#: ../js/ui/components/telepathyClient.js:316
msgid "File Transfer"
msgstr "Dosya Aktarımı"
#: ../js/ui/components/telepathyClient.js:422
#: ../js/ui/components/telepathyClient.js:420
msgid "Chat"
msgstr "Sohbet"
#: ../js/ui/components/telepathyClient.js:485
#: ../js/ui/components/telepathyClient.js:483
msgid "Unmute"
msgstr "Sesi Aç"
#: ../js/ui/components/telepathyClient.js:485
#: ../js/ui/components/telepathyClient.js:483
msgid "Mute"
msgstr "Sesi Kapat"
#. Translators: Time in 24h format */
#: ../js/ui/components/telepathyClient.js:955
#: ../js/ui/components/telepathyClient.js:953
msgid "%H%M"
msgstr "%H%M"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 24h format. i.e. "Yesterday, 14:30" */
#: ../js/ui/components/telepathyClient.js:962
#: ../js/ui/components/telepathyClient.js:960
msgid "Yesterday, %H%M"
msgstr "Dün, %H%M"
#. Translators: this is the week day name followed by a time
#. string in 24h format. i.e. "Monday, 14:30" */
#: ../js/ui/components/telepathyClient.js:969
#: ../js/ui/components/telepathyClient.js:967
msgid "%A, %H%M"
msgstr "%A, %H%M"
#. Translators: this is the month name and day number
#. followed by a time string in 24h format.
#. i.e. "May 25, 14:30" */
#: ../js/ui/components/telepathyClient.js:976
#: ../js/ui/components/telepathyClient.js:974
msgid "%B %d, %H%M"
msgstr "%d %B, %H%M"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 24h format.
#. i.e. "May 25 2012, 14:30" */
#: ../js/ui/components/telepathyClient.js:982
#: ../js/ui/components/telepathyClient.js:980
msgid "%B %d %Y, %H%M"
msgstr "%d %B %Y, %H%M"
#. Translators: Time in 24h format */
#: ../js/ui/components/telepathyClient.js:988
#: ../js/ui/components/telepathyClient.js:986
msgid "%l%M %p"
msgstr "%l%M %p"
#. Translators: this is the word "Yesterday" followed by a
#. time string in 12h format. i.e. "Yesterday, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:995
#: ../js/ui/components/telepathyClient.js:993
msgid "Yesterday, %l%M %p"
msgstr "Dün, %l%M %p"
#. Translators: this is the week day name followed by a time
#. string in 12h format. i.e. "Monday, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:1002
#: ../js/ui/components/telepathyClient.js:1000
msgid "%A, %l%M %p"
msgstr "%A, %l%M %p"
#. Translators: this is the month name and day number
#. followed by a time string in 12h format.
#. i.e. "May 25, 2:30 pm" */
#: ../js/ui/components/telepathyClient.js:1009
#: ../js/ui/components/telepathyClient.js:1007
msgid "%B %d, %l%M %p"
msgstr "%d %B, %l%M %p"
#. Translators: this is the month name, day number, year
#. number followed by a time string in 12h format.
#. i.e. "May 25 2012, 2:30 pm"*/
#: ../js/ui/components/telepathyClient.js:1015
#: ../js/ui/components/telepathyClient.js:1013
msgid "%B %d %Y, %l%M %p"
msgstr "%d %B %Y, %l%M %p"
#. Translators: this is the other person changing their old IM name to their
#. new
#. IM name. */
#: ../js/ui/components/telepathyClient.js:1047
#: ../js/ui/components/telepathyClient.js:1045
#, javascript-format
msgid "%s is now known as %s"
msgstr "%s, şimdi %s olarak biliniyor"
#. translators: argument is a room name like
#. * room@jabber.org for example. */
#: ../js/ui/components/telepathyClient.js:1151
#: ../js/ui/components/telepathyClient.js:1149
#, javascript-format
msgid "Invitation to %s"
msgstr "%s'e Davet"
@@ -783,38 +779,38 @@ msgstr "%s'e Davet"
#. translators: first argument is the name of a contact and the second
#. * one the name of a room. "Alice is inviting you to join room@jabber.org
#. * for example. */
#: ../js/ui/components/telepathyClient.js:1159
#: ../js/ui/components/telepathyClient.js:1157
#, javascript-format
msgid "%s is inviting you to join %s"
msgstr "%s, sizi %s'e katılmanız için davet ediyor"
#: ../js/ui/components/telepathyClient.js:1161
#: ../js/ui/components/telepathyClient.js:1196
#: ../js/ui/components/telepathyClient.js:1230
#: ../js/ui/components/telepathyClient.js:1287
#: ../js/ui/components/telepathyClient.js:1159
#: ../js/ui/components/telepathyClient.js:1194
#: ../js/ui/components/telepathyClient.js:1228
#: ../js/ui/components/telepathyClient.js:1286
msgid "Decline"
msgstr "Reddet"
#: ../js/ui/components/telepathyClient.js:1167
#: ../js/ui/components/telepathyClient.js:1236
#: ../js/ui/components/telepathyClient.js:1292
#: ../js/ui/components/telepathyClient.js:1165
#: ../js/ui/components/telepathyClient.js:1234
#: ../js/ui/components/telepathyClient.js:1291
msgid "Accept"
msgstr "Kabul Et"
#. translators: argument is a contact name like Alice for example. */
#: ../js/ui/components/telepathyClient.js:1186
#: ../js/ui/components/telepathyClient.js:1184
#, javascript-format
msgid "Video call from %s"
msgstr "%s'den görüntülü arama"
#. translators: argument is a contact name like Alice for example. */
#: ../js/ui/components/telepathyClient.js:1189
#: ../js/ui/components/telepathyClient.js:1187
#, javascript-format
msgid "Call from %s"
msgstr "%s'den çağrı"
#. translators: this is a button label (verb), not a noun */
#: ../js/ui/components/telepathyClient.js:1203
#: ../js/ui/components/telepathyClient.js:1201
msgid "Answer"
msgstr "Cevapla"
@@ -823,129 +819,129 @@ msgstr "Cevapla"
#. * file name. The string will be something
#. * like: "Alice is sending you test.ogg"
#. */
#: ../js/ui/components/telepathyClient.js:1224
#: ../js/ui/components/telepathyClient.js:1222
#, javascript-format
msgid "%s is sending you %s"
msgstr "%s, size %s dosyasını gönderiyor"
#. To translators: The parameter is the contact's alias */
#: ../js/ui/components/telepathyClient.js:1253
#: ../js/ui/components/telepathyClient.js:1251
#, javascript-format
msgid "%s would like permission to see when you are online"
msgstr "%s, ne zaman çevrimiçi olduğunuzu görmek için izin istiyor"
#: ../js/ui/components/telepathyClient.js:1338
#: ../js/ui/components/telepathyClient.js:1337
msgid "Network error"
msgstr "Ağ hatası"
#: ../js/ui/components/telepathyClient.js:1340
#: ../js/ui/components/telepathyClient.js:1339
msgid "Authentication failed"
msgstr "Kimlik doğrulama başarısız"
#: ../js/ui/components/telepathyClient.js:1342
#: ../js/ui/components/telepathyClient.js:1341
msgid "Encryption error"
msgstr "Şifreleme hatası"
#: ../js/ui/components/telepathyClient.js:1344
#: ../js/ui/components/telepathyClient.js:1343
msgid "Certificate not provided"
msgstr "Sertifika sağlanmamış"
#: ../js/ui/components/telepathyClient.js:1346
#: ../js/ui/components/telepathyClient.js:1345
msgid "Certificate untrusted"
msgstr "Sertifika güvenilmez"
#: ../js/ui/components/telepathyClient.js:1348
#: ../js/ui/components/telepathyClient.js:1347
msgid "Certificate expired"
msgstr "Sertifikanın süresi dolmuş"
#: ../js/ui/components/telepathyClient.js:1350
#: ../js/ui/components/telepathyClient.js:1349
msgid "Certificate not activated"
msgstr "Sertifika etkinleştirilmemiş"
#: ../js/ui/components/telepathyClient.js:1352
#: ../js/ui/components/telepathyClient.js:1351
msgid "Certificate hostname mismatch"
msgstr "Sertifikanın makine adı uyuşmuyor"
#: ../js/ui/components/telepathyClient.js:1354
#: ../js/ui/components/telepathyClient.js:1353
msgid "Certificate fingerprint mismatch"
msgstr "Sertifikanın parmak izi uyuşmuyor"
#: ../js/ui/components/telepathyClient.js:1356
#: ../js/ui/components/telepathyClient.js:1355
msgid "Certificate self-signed"
msgstr "Sertifika kendinden-imzalı"
#: ../js/ui/components/telepathyClient.js:1358
#: ../js/ui/components/telepathyClient.js:1357
msgid "Status is set to offline"
msgstr "Durum çevrimdıına ayarlı"
#: ../js/ui/components/telepathyClient.js:1360
#: ../js/ui/components/telepathyClient.js:1359
msgid "Encryption is not available"
msgstr "Şifreleme kullanılabilir değil"
#: ../js/ui/components/telepathyClient.js:1362
#: ../js/ui/components/telepathyClient.js:1361
msgid "Certificate is invalid"
msgstr "Sertifika geçersiz"
#: ../js/ui/components/telepathyClient.js:1364
#: ../js/ui/components/telepathyClient.js:1363
msgid "Connection has been refused"
msgstr "Bağlantı reddedildi"
#: ../js/ui/components/telepathyClient.js:1366
#: ../js/ui/components/telepathyClient.js:1365
msgid "Connection can't be established"
msgstr "Bağlantı kurulamıyor"
#: ../js/ui/components/telepathyClient.js:1368
#: ../js/ui/components/telepathyClient.js:1367
msgid "Connection has been lost"
msgstr "Bağlantı koptu"
#: ../js/ui/components/telepathyClient.js:1370
#: ../js/ui/components/telepathyClient.js:1369
msgid "This account is already connected to the server"
msgstr "Bu hesap zaten sunucuya bağlı"
#: ../js/ui/components/telepathyClient.js:1372
#: ../js/ui/components/telepathyClient.js:1371
msgid ""
"Connection has been replaced by a new connection using the same resource"
msgstr "Bağlantı, aynı kaynağı kullanan yeni bir bağlantı ile değiştirildi"
#: ../js/ui/components/telepathyClient.js:1374
#: ../js/ui/components/telepathyClient.js:1373
msgid "The account already exists on the server"
msgstr "Sunucuda böyle bir hesap zaten var"
#: ../js/ui/components/telepathyClient.js:1376
#: ../js/ui/components/telepathyClient.js:1375
msgid "Server is currently too busy to handle the connection"
msgstr "Sunucu, şu anda bağlantıyı işleyemeyecek kadar meşgul"
#: ../js/ui/components/telepathyClient.js:1378
#: ../js/ui/components/telepathyClient.js:1377
msgid "Certificate has been revoked"
msgstr "Sertifika hükümsüz kılınmış"
#: ../js/ui/components/telepathyClient.js:1380
#: ../js/ui/components/telepathyClient.js:1379
msgid ""
"Certificate uses an insecure cipher algorithm or is cryptographically weak"
msgstr "Sertifika güvensiz bir şifreleme algoritması kullanıyor ya da kriptografik olarak zayıf"
#: ../js/ui/components/telepathyClient.js:1382
#: ../js/ui/components/telepathyClient.js:1381
msgid ""
"The length of the server certificate, or the depth of the server certificate"
" chain, exceed the limits imposed by the cryptography library"
msgstr "Sunucu sertifikasının uzunluğu ya da sunucu sertifikası zincirinin derinliği, şifreleme kütüphanesi tarafından koyulan sınırlarııyor"
#: ../js/ui/components/telepathyClient.js:1384
#: ../js/ui/components/telepathyClient.js:1383
msgid "Internal error"
msgstr "İç hata"
#. translators: argument is the account name, like
#. * name@jabber.org for example. */
#: ../js/ui/components/telepathyClient.js:1394
#: ../js/ui/components/telepathyClient.js:1393
#, javascript-format
msgid "Unable to connect to %s"
msgstr "%s bağlantısı sağlanamadı"
#: ../js/ui/components/telepathyClient.js:1399
#: ../js/ui/components/telepathyClient.js:1398
msgid "View account"
msgstr "Hesabı göster"
#: ../js/ui/components/telepathyClient.js:1436
#: ../js/ui/components/telepathyClient.js:1435
msgid "Unknown reason"
msgstr "Bilinmeyen sebep"
@@ -961,15 +957,15 @@ msgstr "Uygulamaları Göster"
msgid "Dash"
msgstr "Konsol"
#: ../js/ui/dateMenu.js:97
#: ../js/ui/dateMenu.js:96
msgid "Open Calendar"
msgstr "Takvimi Aç"
#: ../js/ui/dateMenu.js:101
#: ../js/ui/dateMenu.js:100
msgid "Open Clocks"
msgstr "Saati Aç"
#: ../js/ui/dateMenu.js:108
#: ../js/ui/dateMenu.js:107
msgid "Date & Time Settings"
msgstr "Tarih ve Saat Ayarları"
@@ -977,9 +973,9 @@ msgstr "Tarih ve Saat Ayarları"
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29
#. AM").
#. */
#: ../js/ui/dateMenu.js:132
#: ../js/ui/dateMenu.js:204
msgid "%A %B %e, %Y"
msgstr "%e %B %Y %A"
msgstr "%e %B %A, %Y"
#: ../js/ui/endSessionDialog.js:64
#, javascript-format
@@ -1112,7 +1108,7 @@ msgstr "Kur"
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "extensions.gnome.org adresinden “%s” indirilip kurulsun mu?"
#: ../js/ui/keyboard.js:706 ../js/ui/status/keyboard.js:539
#: ../js/ui/keyboard.js:692 ../js/ui/status/keyboard.js:523
msgid "Keyboard"
msgstr "Klavye"
@@ -1168,54 +1164,53 @@ msgstr "Kaynağı Görüntüle"
msgid "Web Page"
msgstr "Web Sayfası"
#: ../js/ui/messageTray.js:1332
#: ../js/ui/messageTray.js:1326
msgid "Open"
msgstr "Aç"
#: ../js/ui/messageTray.js:1339
#: ../js/ui/messageTray.js:1333
msgid "Remove"
msgstr "Sil"
#: ../js/ui/messageTray.js:1636
#: ../js/ui/messageTray.js:1630
msgid "Notifications"
msgstr "Bildirimler"
#: ../js/ui/messageTray.js:1643
#: ../js/ui/messageTray.js:1637
msgid "Clear Messages"
msgstr "Mesajları Temizle"
#: ../js/ui/messageTray.js:1662
#: ../js/ui/messageTray.js:1656
msgid "Notification Settings"
msgstr "Bildirim Ayarları"
#: ../js/ui/messageTray.js:1715
#: ../js/ui/messageTray.js:1709
msgid "Tray Menu"
msgstr "Tepsi Menüsü"
#: ../js/ui/messageTray.js:1939
#: ../js/ui/messageTray.js:1926
msgid "No Messages"
msgstr "Mesaj Yok"
#: ../js/ui/messageTray.js:1984
#: ../js/ui/messageTray.js:1968
msgid "Message Tray"
msgstr "Mesaj Tepsisi"
#: ../js/ui/messageTray.js:2441 ../js/ui/overviewControls.js:483
#: ../js/ui/screenShield.js:152
#: ../js/ui/messageTray.js:2971
msgid "System Information"
msgstr "Sistem Bilgisi"
#: ../js/ui/notificationDaemon.js:513 ../src/shell-app.c:425
msgctxt "program"
msgid "Unknown"
msgstr "Bilinmeyen"
#: ../js/ui/overviewControls.js:482 ../js/ui/screenShield.js:151
#, javascript-format
msgid "%d new message"
msgid_plural "%d new messages"
msgstr[0] "%d yeni mesaj"
#: ../js/ui/messageTray.js:3011
msgid "System Information"
msgstr "Sistem Bilgisi"
#: ../js/ui/notificationDaemon.js:513 ../src/shell-app.c:439
msgctxt "program"
msgid "Unknown"
msgstr "Bilinmeyen"
#: ../js/ui/overview.js:84
msgid "Undo"
msgstr "Geri Al"
@@ -1232,17 +1227,17 @@ msgstr "Genel Görünüm"
msgid "Type to search…"
msgstr "Aramak için buraya yazın..."
#: ../js/ui/panel.js:521
#: ../js/ui/panel.js:515
msgid "Quit"
msgstr "Kapat"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview". */
#: ../js/ui/panel.js:573
#: ../js/ui/panel.js:567
msgid "Activities"
msgstr "Etkinlikler"
#: ../js/ui/panel.js:924
#: ../js/ui/panel.js:918
msgid "Top Bar"
msgstr "Tepe Çubuğu"
@@ -1266,35 +1261,35 @@ msgstr "Yeniden başlatılıyor..."
#. long format */
#: ../js/ui/screenShield.js:88
msgid "%A, %B %d"
msgstr "%d %B %A"
msgstr "%d %B, %A"
#: ../js/ui/screenShield.js:154
#: ../js/ui/screenShield.js:153
#, javascript-format
msgid "%d new notification"
msgid_plural "%d new notifications"
msgstr[0] "%d yeni bildirim"
#: ../js/ui/screenShield.js:473 ../js/ui/status/system.js:345
#: ../js/ui/screenShield.js:472 ../js/ui/status/system.js:345
msgid "Lock"
msgstr "Kilitle"
#: ../js/ui/screenShield.js:709
#: ../js/ui/screenShield.js:706
msgid "GNOME needs to lock the screen"
msgstr "GNOME'un ekranı kilitlemesi gerekiyor"
#: ../js/ui/screenShield.js:836 ../js/ui/screenShield.js:1312
#: ../js/ui/screenShield.js:833 ../js/ui/screenShield.js:1304
msgid "Unable to lock"
msgstr "Kilitlenemedi"
#: ../js/ui/screenShield.js:837 ../js/ui/screenShield.js:1313
#: ../js/ui/screenShield.js:834 ../js/ui/screenShield.js:1305
msgid "Lock was blocked by an application"
msgstr "Kilitleme bir uygulama tarafından engellendi"
#: ../js/ui/search.js:611
#: ../js/ui/search.js:594
msgid "Searching…"
msgstr "Aranıyor…"
#: ../js/ui/search.js:613
#: ../js/ui/search.js:596
msgid "No results."
msgstr "Sonuç yok."
@@ -1371,9 +1366,9 @@ msgid "Bluetooth"
msgstr "Bluetooth"
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
#: ../js/ui/status/network.js:360 ../js/ui/status/network.js:1282
#: ../js/ui/status/network.js:1393 ../js/ui/status/rfkill.js:91
#: ../js/ui/status/rfkill.js:118
#: ../js/ui/status/network.js:360 ../js/ui/status/network.js:1281
#: ../js/ui/status/network.js:1392 ../js/ui/status/rfkill.js:86
#: ../js/ui/status/rfkill.js:114
msgid "Turn Off"
msgstr "Kapat"
@@ -1387,7 +1382,7 @@ msgid "%d Connected Device"
msgid_plural "%d Connected Devices"
msgstr[0] "%d Bağlı Cihaz"
#: ../js/ui/status/bluetooth.js:106 ../js/ui/status/network.js:1310
#: ../js/ui/status/bluetooth.js:106 ../js/ui/status/network.js:1309
msgid "Not Connected"
msgstr "Bağlı Değil"
@@ -1395,7 +1390,7 @@ msgstr "Bağlı Değil"
msgid "Brightness"
msgstr "Parlaklık"
#: ../js/ui/status/keyboard.js:563
#: ../js/ui/status/keyboard.js:547
msgid "Show Keyboard Layout"
msgstr "Klavye Düzenini Göster"
@@ -1423,8 +1418,8 @@ msgstr "Etkinleştir"
msgid "<unknown>"
msgstr "<bilinmeyen>"
#: ../js/ui/status/network.js:457 ../js/ui/status/network.js:1308
#: ../js/ui/status/network.js:1512
#: ../js/ui/status/network.js:457 ../js/ui/status/network.js:1307
#: ../js/ui/status/network.js:1511
msgid "Off"
msgstr "Kapalı"
@@ -1443,7 +1438,7 @@ msgstr "Yönetilmeyen"
msgid "Disconnecting"
msgstr "Bağlantı Kesiliyor"
#: ../js/ui/status/network.js:471 ../js/ui/status/network.js:1302
#: ../js/ui/status/network.js:471 ../js/ui/status/network.js:1301
msgid "Connecting"
msgstr "Bağlantı Kuruluyor"
@@ -1467,7 +1462,7 @@ msgstr "Ürün Bilgisi eksik"
msgid "Unavailable"
msgstr "Kullanılamaz"
#: ../js/ui/status/network.js:488 ../js/ui/status/network.js:1696
#: ../js/ui/status/network.js:488 ../js/ui/status/network.js:1695
msgid "Connection failed"
msgstr "Bağlantı başarısız oldu"
@@ -1479,7 +1474,7 @@ msgstr "Kablolu Ağ Ayarları"
msgid "Mobile Broadband Settings"
msgstr "Mobil Geniş Bant Ayarları"
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1306
#: ../js/ui/status/network.js:588 ../js/ui/status/network.js:1305
msgid "Hardware Disabled"
msgstr "Donanım Devre Dışı"
@@ -1519,61 +1514,61 @@ msgstr "Kablosuz Ağlar"
msgid "Select a network"
msgstr "Bir ağ seçin"
#: ../js/ui/status/network.js:883
#: ../js/ui/status/network.js:882
msgid "No Networks"
msgstr "Ağ Yok"
#: ../js/ui/status/network.js:904 ../js/ui/status/rfkill.js:116
#: ../js/ui/status/network.js:903 ../js/ui/status/rfkill.js:112
msgid "Use hardware switch to turn off"
msgstr "Kapatmak için donanım anahtarını kullanın."
#: ../js/ui/status/network.js:1174
#: ../js/ui/status/network.js:1173
msgid "Select Network"
msgstr "Ağ Seç"
#: ../js/ui/status/network.js:1180
#: ../js/ui/status/network.js:1179
msgid "Wi-Fi Settings"
msgstr "Kablosuz Ağ Ayarları"
#: ../js/ui/status/network.js:1282
#: ../js/ui/status/network.js:1281
msgid "Turn On"
msgstr "Aç"
#: ../js/ui/status/network.js:1299
#: ../js/ui/status/network.js:1298
msgid "Hotspot Active"
msgstr "Hotspot Etkin"
#: ../js/ui/status/network.js:1410
#: ../js/ui/status/network.js:1409
msgid "connecting..."
msgstr "bağlanıyor..."
#. Translators: this is for network connections that require some kind of key
#. or password */
#: ../js/ui/status/network.js:1413
#: ../js/ui/status/network.js:1412
msgid "authentication required"
msgstr "kimlik doğrulaması gerekli"
#: ../js/ui/status/network.js:1415
#: ../js/ui/status/network.js:1414
msgid "connection failed"
msgstr "bağlantı başarısız"
#: ../js/ui/status/network.js:1481 ../js/ui/status/rfkill.js:94
#: ../js/ui/status/network.js:1480 ../js/ui/status/rfkill.js:89
msgid "Network Settings"
msgstr "Ağ Ayarları"
#: ../js/ui/status/network.js:1483
#: ../js/ui/status/network.js:1482
msgid "VPN Settings"
msgstr "VPN Ayarları"
#: ../js/ui/status/network.js:1502
#: ../js/ui/status/network.js:1501
msgid "VPN"
msgstr "VPN"
#: ../js/ui/status/network.js:1657
#: ../js/ui/status/network.js:1656
msgid "Network Manager"
msgstr "Ağ Yöneticisi"
#: ../js/ui/status/network.js:1697
#: ../js/ui/status/network.js:1696
msgid "Activation of network connection failed"
msgstr "Ağ bağlantısının etkinleştirilmesi başarısız oldu"
@@ -1607,11 +1602,11 @@ msgstr "UPS"
msgid "Battery"
msgstr "Pil"
#: ../js/ui/status/rfkill.js:88
#: ../js/ui/status/rfkill.js:83
msgid "Airplane Mode"
msgstr "Uçak Kipi"
#: ../js/ui/status/rfkill.js:90
#: ../js/ui/status/rfkill.js:85
msgid "On"
msgstr "Açık"
@@ -1769,7 +1764,7 @@ msgstr "Oturum açma için -\"gdm\" gibi- özel bir kip kullan"
msgid "List possible modes"
msgstr "Mevcut kipleri listele"
#: ../src/shell-app.c:680
#: ../src/shell-app.c:666
#, c-format
msgid "Failed to launch “%s”"
msgstr "“%s” başlatılamadı"

2114
po/vi.po

File diff suppressed because it is too large Load Diff

View File

@@ -51,13 +51,6 @@ gnome-shell-extension-tool: gnome-shell-extension-tool.in Makefile
gnome-shell-perf-tool: gnome-shell-perf-tool.in Makefile
$(AM_V_GEN) sed $(generated_script_substitutions) $< > $@.tmp && mv $@.tmp $@ && chmod a+x $@
org-gtk-application.c org-gtk-application.h: org.gtk.Application.xml Makefile
$(AM_V_GEN) $(GDBUS_CODEGEN) \
--generate-c-code org-gtk-application \
--c-namespace Shell \
$<
EXTRA_DIST += org.gtk.Application.xml
CLEANFILES += gnome-shell $(bin_SCRIPTS)
include Makefile-st.am
@@ -82,8 +75,6 @@ privlib_LTLIBRARIES = libgnome-shell-js.la libgnome-shell-menu.la libgnome-shell
noinst_LTLIBRARIES += libgnome-shell-base.la
shell_built_sources = \
org-gtk-application.h \
org-gtk-application.c \
shell-enum-types.h \
shell-enum-types.c
@@ -99,7 +90,7 @@ shell_public_headers_h = \
shell-gtk-embed.h \
shell-global.h \
shell-invert-lightness-effect.h \
shell-action-modes.h \
shell-keybinding-modes.h \
shell-mount-operation.h \
shell-perf-log.h \
shell-screenshot.h \
@@ -187,12 +178,8 @@ libgnome_shell_built_sources = \
libgnome_shell_la_SOURCES = $(libgnome_shell_sources)
nodist_libgnome_shell_la_SOURCES = $(libgnome_shell_built_sources)
shell_no_gir_sources = \
org-gtk-application.h \
org-gtk-application.c
libgnome_shell_la_gir_sources = \
$(filter-out %-private.h $(shell_private_sources) $(shell_no_gir_sources), $(shell_public_headers_h) $(libgnome_shell_base_la_SOURCES) $(libgnome_shell_sources) $(libgnome_shell_built_sources))
$(filter-out %-private.h $(shell_private_sources), $(shell_public_headers_h) $(libgnome_shell_base_la_SOURCES) $(libgnome_shell_sources) $(libgnome_shell_built_sources))
gnome_shell_SOURCES = main.c
gnome_shell_CPPFLAGS = \

View File

@@ -176,54 +176,18 @@ static void
calendar_sources_init (CalendarSources *sources)
{
GError *error = NULL;
GDBusConnection *session_bus;
GVariant *result;
sources->priv = CALENDAR_SOURCES_GET_PRIVATE (sources);
/* WORKAROUND: the hardcoded timeout for e_source_registry_new_sync()
(and other library calls that eventually call g_dbus_proxy_new[_sync]())
is 25 seconds. This has been shown to be too small for
evolution-source-registry in certain cases (slow disk, concurrent IO,
many configured sources), so we first ensure that the service
starts with a manual call and a higher timeout.
HACK: every time the DBus API is bumped in e-d-s we need
to update this!
*/
session_bus = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
if (session_bus == NULL)
{
g_error ("Failed to connect to the session bus: %s", error->message);
}
result = g_dbus_connection_call_sync (session_bus, "org.freedesktop.DBus",
"/", "org.freedesktop.DBus",
"StartServiceByName",
g_variant_new ("(su)",
"org.gnome.evolution.dataserver.Sources3",
0),
NULL,
G_DBUS_CALL_FLAGS_NONE,
60 * 1000,
NULL, &error);
if (result != NULL)
{
g_variant_unref (result);
sources->priv->registry = e_source_registry_new_sync (NULL, &error);
}
/* XXX Not sure what to do if this fails.
* Should this class implement GInitable or pass the
* registry in as a G_PARAM_CONSTRUCT_ONLY property? */
sources->priv->registry = e_source_registry_new_sync (NULL, &error);
if (error != NULL)
{
/* Any error is fatal, but we don't want to crash gnome-shell-calendar-server
because of e-d-s problems. So just exit here.
*/
g_warning ("Failed to start evolution-source-registry: %s", error->message);
exit(EXIT_FAILURE);
g_error ("%s: %s", G_STRFUNC, error->message);
}
g_object_unref (session_bus);
sources->priv->source_added_id = g_signal_connect (sources->priv->registry,
"source-added",
G_CALLBACK (calendar_sources_registry_source_changed_cb),

View File

@@ -1,19 +0,0 @@
<node>
<interface name='org.gtk.Application'>
<method name='Activate'>
<arg type='a{sv}' name='platform_data' direction='in'/>
</method>
<method name='Open'>
<arg type='as' name='uris' direction='in'/>
<arg type='s' name='hint' direction='in'/>
<arg type='a{sv}' name='platform_data' direction='in'/>
</method>
<method name='CommandLine'>
<arg type='o' name='path' direction='in'/>
<arg type='aay' name='arguments' direction='in'/>
<arg type='a{sv}' name='platform_data' direction='in'/>
<arg type='i' name='exit_status' direction='out'/>
</method>
<property name='Busy' type='b' access='read'/>
</interface>
</node>

View File

@@ -1,39 +0,0 @@
/**
* ShellActionMode:
* @SHELL_ACTION_MODE_NONE: block action
* @SHELL_ACTION_MODE_NORMAL: allow action when in window mode,
* e.g. when the focus is in an application window
* @SHELL_ACTION_MODE_OVERVIEW: allow action while the overview
* is active
* @SHELL_ACTION_MODE_LOCK_SCREEN: allow action when the screen
* is locked, e.g. when the screen shield is shown
* @SHELL_ACTION_MODE_UNLOCK_SCREEN: allow action in the unlock
* dialog
* @SHELL_ACTION_MODE_LOGIN_SCREEN: allow action in the login screen
* @SHELL_ACTION_MODE_MESSAGE_TRAY: allow action while the message
* tray is popped up
* @SHELL_ACTION_MODE_SYSTEM_MODAL: allow action when a system modal
* dialog (e.g. authentification or session dialogs) is open
* @SHELL_ACTION_MODE_LOOKING_GLASS: allow action in looking glass
* @SHELL_ACTION_MODE_TOPBAR_POPUP: allow action while a top bar menu
* is open
* @SHELL_ACTION_MODE_ALL: always allow action
*
* Controls in which GNOME Shell states an action (like keybindings and gestures)
* should be handled.
*/
typedef enum {
SHELL_ACTION_MODE_NONE = 0,
SHELL_ACTION_MODE_NORMAL = 1 << 0,
SHELL_ACTION_MODE_OVERVIEW = 1 << 1,
SHELL_ACTION_MODE_LOCK_SCREEN = 1 << 2,
SHELL_ACTION_MODE_UNLOCK_SCREEN = 1 << 3,
SHELL_ACTION_MODE_LOGIN_SCREEN = 1 << 4,
SHELL_ACTION_MODE_MESSAGE_TRAY = 1 << 5,
SHELL_ACTION_MODE_SYSTEM_MODAL = 1 << 6,
SHELL_ACTION_MODE_LOOKING_GLASS = 1 << 7,
SHELL_ACTION_MODE_TOPBAR_POPUP = 1 << 8,
SHELL_ACTION_MODE_ALL = ~0,
} ShellActionMode;

View File

@@ -335,6 +335,7 @@ _shell_app_system_notify_app_state_changed (ShellAppSystem *self,
switch (state)
{
case SHELL_APP_STATE_RUNNING:
case SHELL_APP_STATE_BUSY:
g_hash_table_insert (self->priv->running_apps, g_object_ref (app), NULL);
break;
case SHELL_APP_STATE_STARTING:

View File

@@ -16,7 +16,6 @@
#include "shell-window-tracker-private.h"
#include "st.h"
#include "gtkactionmuxer.h"
#include "org-gtk-application.h"
#ifdef HAVE_SYSTEMD
#include <systemd/sd-journal.h>
@@ -48,16 +47,14 @@ typedef struct {
/* Whether or not we need to resort the windows; this is done on demand */
guint window_sort_stale : 1;
/* DBus property notification subscription */
guint properties_changed_id : 1;
/* See GApplication documentation */
GDBusMenuModel *remote_menu;
GtkActionMuxer *muxer;
char *unique_bus_name;
GDBusConnection *session;
/* GDBus Proxy for getting application busy state */
ShellOrgGtkApplication *application_proxy;
GCancellable *cancellable;
} ShellAppRunningState;
/**
@@ -92,7 +89,6 @@ struct _ShellApp
enum {
PROP_0,
PROP_STATE,
PROP_BUSY,
PROP_ID,
PROP_DBUS_ID,
PROP_ACTION_GROUP,
@@ -124,9 +120,6 @@ shell_app_get_property (GObject *gobject,
case PROP_STATE:
g_value_set_enum (value, app->state);
break;
case PROP_BUSY:
g_value_set_boolean (value, shell_app_get_busy (app));
break;
case PROP_ID:
g_value_set_string (value, shell_app_get_id (app));
break;
@@ -189,9 +182,9 @@ window_backed_app_get_icon (ShellApp *app,
}
window = window_backed_app_get_window (app);
actor = st_texture_cache_bind_cairo_surface_property (st_texture_cache_get_default (),
G_OBJECT (window),
"icon");
actor = st_texture_cache_bind_pixbuf_property (st_texture_cache_get_default (),
G_OBJECT (window),
"icon");
g_object_set (actor, "width", (float) size, "height", (float) size, NULL);
return actor;
}
@@ -209,23 +202,27 @@ shell_app_create_icon_texture (ShellApp *app,
int size)
{
GIcon *icon;
gint scale;
ClutterActor *ret;
ShellGlobal *global;
StThemeContext *context;
global = shell_global_get ();
context = st_theme_context_get_for_stage (shell_global_get_stage (global));
g_object_get (context, "scale-factor", &scale, NULL);
ret = NULL;
if (app->info == NULL)
return window_backed_app_get_icon (app, size);
ret = st_icon_new ();
st_icon_set_icon_size (ST_ICON (ret), size);
icon = g_app_info_get_icon (G_APP_INFO (app->info));
if (icon != NULL)
{
st_icon_set_gicon (ST_ICON (ret), icon);
}
else
ret = st_texture_cache_load_gicon (st_texture_cache_get_default (), NULL, icon, size, scale);
if (ret == NULL)
{
icon = g_themed_icon_new ("application-x-executable");
st_icon_set_gicon (ST_ICON (ret), icon);
ret = st_texture_cache_load_gicon (st_texture_cache_get_default (), NULL, icon, size, scale);
g_object_unref (icon);
}
@@ -237,7 +234,6 @@ typedef struct {
int size;
int scale;
ClutterTextDirection direction;
StThemeNode *theme_node;
} CreateFadedIconData;
static CoglHandle
@@ -265,28 +261,19 @@ shell_app_create_faded_icon_cpu (StTextureCache *cache,
guint8 *pixels;
GIcon *icon;
GtkIconInfo *info;
GtkIconLookupFlags lookup_flags;
StIconStyle icon_style;
app = data->app;
size = data->size;
scale = data->scale;
icon_style = st_theme_node_get_icon_style (data->theme_node);
info = NULL;
lookup_flags = GTK_ICON_LOOKUP_FORCE_SIZE;
if (icon_style == ST_ICON_STYLE_REGULAR)
lookup_flags |= GTK_ICON_LOOKUP_FORCE_REGULAR;
else if (icon_style == ST_ICON_STYLE_SYMBOLIC)
lookup_flags |= GTK_ICON_LOOKUP_FORCE_SYMBOLIC;
icon = g_app_info_get_icon (G_APP_INFO (app->info));
if (icon != NULL)
{
info = gtk_icon_theme_lookup_by_gicon_for_scale (gtk_icon_theme_get_default (),
icon, size, scale,
lookup_flags);
GTK_ICON_LOOKUP_FORCE_SIZE);
}
if (info == NULL)
@@ -294,7 +281,7 @@ shell_app_create_faded_icon_cpu (StTextureCache *cache,
icon = g_themed_icon_new ("application-x-executable");
info = gtk_icon_theme_lookup_by_gicon_for_scale (gtk_icon_theme_get_default (),
icon, size, scale,
lookup_flags);
GTK_ICON_LOOKUP_FORCE_SIZE);
g_object_unref (icon);
}
@@ -401,7 +388,6 @@ shell_app_get_faded_icon (ShellApp *app, int size, ClutterTextDirection directio
data.size = size;
data.scale = scale;
data.direction = direction;
data.theme_node = st_theme_context_get_root_node (context);
texture = st_texture_cache_load (st_texture_cache_get_default (),
cache_key,
ST_TEXTURE_CACHE_POLICY_FOREVER,
@@ -689,6 +675,7 @@ shell_app_activate_full (ShellApp *app,
case SHELL_APP_STATE_STARTING:
break;
case SHELL_APP_STATE_RUNNING:
case SHELL_APP_STATE_BUSY:
shell_app_activate_window (app, NULL, timestamp);
break;
}
@@ -1070,55 +1057,38 @@ shell_app_on_ws_switch (MetaScreen *screen,
g_signal_emit (app, shell_app_signals[WINDOWS_CHANGED], 0);
}
gboolean
shell_app_get_busy (ShellApp *app)
{
if (app->running_state != NULL &&
app->running_state->application_proxy != NULL &&
shell_org_gtk_application_get_busy (app->running_state->application_proxy))
return TRUE;
return FALSE;
}
static void
busy_changed_cb (GObject *object,
GParamSpec *pspec,
gpointer user_data)
application_properties_changed (GDBusConnection *connection,
const gchar *sender_name,
const gchar *object_path,
const gchar *interface_name,
const gchar *signal_name,
GVariant *parameters,
gpointer user_data)
{
ShellApp *app = user_data;
GVariant *changed_properties;
gboolean busy = FALSE;
const gchar *interface_name_for_signal;
g_assert (SHELL_IS_APP (app));
g_variant_get (parameters,
"(&s@a{sv}as)",
&interface_name_for_signal,
&changed_properties,
NULL);
g_object_notify (G_OBJECT (app), "busy");
}
if (g_strcmp0 (interface_name_for_signal, "org.gtk.Application") != 0)
return;
static void
get_application_proxy (GObject *source,
GAsyncResult *result,
gpointer user_data)
{
ShellApp *app = user_data;
ShellOrgGtkApplication *proxy;
g_variant_lookup (changed_properties, "Busy", "b", &busy);
g_assert (SHELL_IS_APP (app));
if (busy)
shell_app_state_transition (app, SHELL_APP_STATE_BUSY);
else
shell_app_state_transition (app, SHELL_APP_STATE_RUNNING);
proxy = shell_org_gtk_application_proxy_new_finish (result, NULL);
if (proxy != NULL)
{
app->running_state->application_proxy = proxy;
g_signal_connect (proxy,
"notify::busy",
G_CALLBACK (busy_changed_cb),
app);
if (shell_org_gtk_application_get_busy (proxy))
g_object_notify (G_OBJECT (app), "busy");
}
if (app->running_state != NULL)
g_clear_object (&app->running_state->cancellable);
g_object_unref (app);
if (changed_properties != NULL)
g_variant_unref (changed_properties);
}
static void
@@ -1128,8 +1098,7 @@ shell_app_ensure_busy_watch (ShellApp *app)
MetaWindow *window;
const gchar *object_path;
if (running_state->application_proxy != NULL ||
running_state->cancellable != NULL)
if (running_state->properties_changed_id != 0)
return;
if (running_state->unique_bus_name == NULL)
@@ -1141,16 +1110,15 @@ shell_app_ensure_busy_watch (ShellApp *app)
if (object_path == NULL)
return;
running_state->cancellable = g_cancellable_new();
/* Take a reference to app to make sure it isn't finalized before
get_application_proxy runs */
shell_org_gtk_application_proxy_new (running_state->session,
G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
running_state->unique_bus_name,
object_path,
running_state->cancellable,
get_application_proxy,
g_object_ref (app));
running_state->properties_changed_id =
g_dbus_connection_signal_subscribe (running_state->session,
running_state->unique_bus_name,
"org.freedesktop.DBus.Properties",
"PropertiesChanged",
object_path,
"org.gtk.Application",
G_DBUS_SIGNAL_FLAGS_NONE,
application_properties_changed, app, NULL);
}
void
@@ -1300,6 +1268,24 @@ shell_app_request_quit (ShellApp *app)
return TRUE;
}
static void
_gather_pid_callback (GDesktopAppInfo *gapp,
GPid pid,
gpointer data)
{
ShellApp *app;
ShellWindowTracker *tracker;
g_return_if_fail (data != NULL);
app = SHELL_APP (data);
tracker = shell_window_tracker_get_default ();
_shell_window_tracker_add_child_process_app (tracker,
pid,
app);
}
#ifdef HAVE_SYSTEMD
/* This sets up the launched application to log to the journal
* using its own identifier, instead of just "gnome-session".
@@ -1351,13 +1337,13 @@ shell_app_launch (ShellApp *app,
ret = g_desktop_app_info_launch_uris_as_manager (app->info, NULL,
context,
G_SPAWN_SEARCH_PATH,
G_SPAWN_SEARCH_PATH | G_SPAWN_DO_NOT_REAP_CHILD,
#ifdef HAVE_SYSTEMD
app_child_setup, (gpointer)shell_app_get_id (app),
#else
NULL, NULL,
#endif
NULL, NULL,
_gather_pid_callback, app,
error);
g_object_unref (context);
@@ -1475,13 +1461,8 @@ unref_running_state (ShellAppRunningState *state)
screen = shell_global_get_screen (shell_global_get ());
g_signal_handler_disconnect (screen, state->workspace_switch_id);
g_clear_object (&state->application_proxy);
if (state->cancellable != NULL)
{
g_cancellable_cancel (state->cancellable);
g_clear_object (&state->cancellable);
}
if (state->properties_changed_id != 0)
g_dbus_connection_signal_unsubscribe (state->session, state->properties_changed_id);
g_clear_object (&state->remote_menu);
g_clear_object (&state->muxer);
@@ -1574,19 +1555,6 @@ shell_app_class_init(ShellAppClass *klass)
SHELL_APP_STATE_STOPPED,
G_PARAM_READABLE));
/**
* ShellApp:busy:
*
* Whether the application has marked itself as busy.
*/
g_object_class_install_property (gobject_class,
PROP_BUSY,
g_param_spec_boolean ("busy",
"Busy",
"Busy state",
FALSE,
G_PARAM_READABLE));
/**
* ShellApp:id:
*

View File

@@ -30,7 +30,8 @@ struct _ShellAppClass
typedef enum {
SHELL_APP_STATE_STOPPED,
SHELL_APP_STATE_STARTING,
SHELL_APP_STATE_RUNNING
SHELL_APP_STATE_RUNNING,
SHELL_APP_STATE_BUSY
} ShellAppState;
GType shell_app_get_type (void) G_GNUC_CONST;
@@ -86,8 +87,6 @@ int shell_app_compare (ShellApp *app, ShellApp *other);
void shell_app_update_window_actions (ShellApp *app, MetaWindow *window);
void shell_app_update_app_menu (ShellApp *app, MetaWindow *window);
gboolean shell_app_get_busy (ShellApp *app);
G_END_DECLS
#endif /* __SHELL_APP_H__ */

View File

@@ -106,6 +106,9 @@ shell_gtk_embed_window_created_cb (MetaDisplay *display,
0, 0 /* offset x/y */);
cairo_region_destroy (empty_region);
/* Set the actor as unreative so Clutter doesn't pick it, either */
clutter_actor_set_reactive (window_actor, FALSE);
gdk_window_lower (gdk_window);
/* Now that we've found the window we don't need to listen for

View File

@@ -0,0 +1,38 @@
/**
* ShellKeyBindingMode:
* @SHELL_KEYBINDING_MODE_NONE: block keybinding
* @SHELL_KEYBINDING_MODE_NORMAL: allow keybinding when in window mode,
* e.g. when the focus is in an application window
* @SHELL_KEYBINDING_MODE_OVERVIEW: allow keybinding while the overview
* is active
* @SHELL_KEYBINDING_MODE_LOCK_SCREEN: allow keybinding when the screen
* is locked, e.g. when the screen shield is shown
* @SHELL_KEYBINDING_MODE_UNLOCK_SCREEN: allow keybinding in the unlock
* dialog
* @SHELL_KEYBINDING_MODE_LOGIN_SCREEN: allow keybinding in the login screen
* @SHELL_KEYBINDING_MODE_MESSAGE_TRAY: allow keybinding while the message
* tray is popped up
* @SHELL_KEYBINDING_MODE_SYSTEM_MODAL: allow keybinding when a system modal
* dialog (e.g. authentification or session dialogs) is open
* @SHELL_KEYBINDING_MODE_LOOKING_GLASS: allow keybinding in looking glass
* @SHELL_KEYBINDING_MODE_TOPBAR_POPUP: allow keybinding while a top bar menu
* is open
* @SHELL_KEYBINDING_MODE_ALL: always allow keybinding
*
* Controls in which GNOME Shell states a keybinding should be handled.
*/
typedef enum {
SHELL_KEYBINDING_MODE_NONE = 0,
SHELL_KEYBINDING_MODE_NORMAL = 1 << 0,
SHELL_KEYBINDING_MODE_OVERVIEW = 1 << 1,
SHELL_KEYBINDING_MODE_LOCK_SCREEN = 1 << 2,
SHELL_KEYBINDING_MODE_UNLOCK_SCREEN = 1 << 3,
SHELL_KEYBINDING_MODE_LOGIN_SCREEN = 1 << 4,
SHELL_KEYBINDING_MODE_MESSAGE_TRAY = 1 << 5,
SHELL_KEYBINDING_MODE_SYSTEM_MODAL = 1 << 6,
SHELL_KEYBINDING_MODE_LOOKING_GLASS = 1 << 7,
SHELL_KEYBINDING_MODE_TOPBAR_POPUP = 1 << 8,
SHELL_KEYBINDING_MODE_ALL = ~0,
} ShellKeyBindingMode;

View File

@@ -156,7 +156,7 @@ G_DEFINE_TYPE(ShellRecorder, shell_recorder, G_TYPE_OBJECT);
* (Theora does have some support for frames at non-uniform times, but
* things seem to break down if there are large gaps.)
*/
#define DEFAULT_PIPELINE "vp9enc min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! queue ! webmmux"
#define DEFAULT_PIPELINE "vp8enc min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! queue ! webmmux"
/* If we can find the amount of memory on the machine, we use half
* of that for memory_target, otherwise, we use this value, in kB.
@@ -437,14 +437,14 @@ recorder_record_frame (ShellRecorder *recorder)
size = recorder->area.width * recorder->area.height * 4;
data = g_malloc (size);
cogl_framebuffer_read_pixels (cogl_get_draw_framebuffer (),
recorder->area.x,
recorder->area.y,
recorder->area.width,
recorder->area.height,
CLUTTER_CAIRO_FORMAT_ARGB32,
data);
data = g_malloc (recorder->area.width * 4 * recorder->area.height);
cogl_read_pixels (recorder->area.x,
recorder->area.y,
recorder->area.width,
recorder->area.height,
COGL_READ_PIXELS_COLOR_BUFFER,
CLUTTER_CAIRO_FORMAT_ARGB32,
data);
buffer = gst_buffer_new();
gst_buffer_insert_memory (buffer, -1,
@@ -1261,7 +1261,7 @@ recorder_pipeline_closed (RecorderPipeline *pipeline)
/*
* Replaces '%T' in the passed pipeline with the thread count,
* the maximum possible value is 64 (limit of what vp9enc supports)
* the maximum possible value is 64 (limit of what vp8enc supports)
*
* It is assumes that %T occurs only once.
*/
@@ -1291,7 +1291,7 @@ substitute_thread_count (const char *pipeline)
g_string_append_printf (result, "%d", n_threads);
g_string_append (result, tmp + 2);
return g_string_free (result, FALSE);
return g_string_free (result, FALSE);;
}
static gboolean
@@ -1303,7 +1303,7 @@ recorder_open_pipeline (ShellRecorder *recorder)
GError *error = NULL;
GstBus *bus;
pipeline = g_new0 (RecorderPipeline, 1);
pipeline = g_new0(RecorderPipeline, 1);
pipeline->recorder = g_object_ref (recorder);
pipeline->outfile = - 1;
@@ -1459,7 +1459,7 @@ shell_recorder_set_draw_cursor (ShellRecorder *recorder,
* might be used to send the output to an icecast server
* via shout2send or similar.
*
* The default value is 'vp9enc min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! queue ! webmmux'
* The default value is 'vp8enc min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! queue ! webmmux'
*/
void
shell_recorder_set_pipeline (ShellRecorder *recorder,

View File

@@ -37,7 +37,6 @@ struct _ShellScreenshotPrivate
cairo_rectangle_int_t screenshot_area;
gboolean include_cursor;
gboolean include_frame;
ShellScreenshotCallback callback;
};
@@ -74,8 +73,6 @@ on_screenshot_written (GObject *source,
g_clear_pointer (&priv->image, cairo_surface_destroy);
g_clear_pointer (&priv->filename, g_free);
g_clear_pointer (&priv->filename_used, g_free);
meta_enable_unredirect_for_screen (shell_global_get_screen (priv->global));
}
/* called in an I/O thread */
@@ -410,56 +407,6 @@ grab_area_screenshot (ClutterActor *stage,
g_object_unref (result);
}
static void
grab_window_screenshot (ClutterActor *stage,
ShellScreenshot *screenshot)
{
ShellScreenshotPrivate *priv = screenshot->priv;
GSimpleAsyncResult *result;
GSettings *settings;
MetaScreen *screen = shell_global_get_screen (priv->global);
MetaCursorTracker *tracker;
MetaDisplay *display = meta_screen_get_display (screen);
MetaWindow *window = meta_display_get_focus_window (display);
ClutterActor *window_actor;
gfloat actor_x, actor_y;
MetaShapedTexture *stex;
MetaRectangle rect;
cairo_rectangle_int_t clip;
window_actor = CLUTTER_ACTOR (meta_window_get_compositor_private (window));
clutter_actor_get_position (window_actor, &actor_x, &actor_y);
meta_window_get_frame_rect (window, &rect);
if (!priv->include_frame)
meta_window_frame_rect_to_client_rect (window, &rect, &rect);
priv->screenshot_area.x = rect.x;
priv->screenshot_area.y = rect.y;
clip.x = rect.x - (gint) actor_x;
clip.y = rect.y - (gint) actor_y;
clip.width = priv->screenshot_area.width = rect.width;
clip.height = priv->screenshot_area.height = rect.height;
stex = META_SHAPED_TEXTURE (meta_window_actor_get_texture (META_WINDOW_ACTOR (window_actor)));
priv->image = meta_shaped_texture_get_image (stex, &clip);
settings = g_settings_new (A11Y_APPS_SCHEMA);
if (priv->include_cursor && !g_settings_get_boolean (settings, MAGNIFIER_ACTIVE_KEY))
{
tracker = meta_cursor_tracker_get_for_screen (screen);
_draw_cursor_image (tracker, priv->image, priv->screenshot_area);
}
g_object_unref (settings);
g_signal_handlers_disconnect_by_func (stage, (void *)grab_window_screenshot, (gpointer)screenshot);
result = g_simple_async_result_new (G_OBJECT (screenshot), on_screenshot_written, NULL, grab_window_screenshot);
g_simple_async_result_run_in_thread (result, write_screenshot_thread, G_PRIORITY_DEFAULT, NULL);
g_object_unref (result);
}
/**
* shell_screenshot_screenshot:
* @screenshot: the #ShellScreenshot
@@ -493,8 +440,6 @@ shell_screenshot_screenshot (ShellScreenshot *screenshot,
stage = CLUTTER_ACTOR (shell_global_get_stage (priv->global));
meta_disable_unredirect_for_screen (shell_global_get_screen (priv->global));
g_signal_connect_after (stage, "paint", G_CALLBACK (grab_screenshot), (gpointer)screenshot);
clutter_actor_queue_redraw (stage);
@@ -542,8 +487,6 @@ shell_screenshot_screenshot_area (ShellScreenshot *screenshot,
stage = CLUTTER_ACTOR (shell_global_get_stage (priv->global));
meta_disable_unredirect_for_screen (shell_global_get_screen (shell_global_get ()));
g_signal_connect_after (stage, "paint", G_CALLBACK (grab_area_screenshot), (gpointer)screenshot);
clutter_actor_queue_redraw (stage);
@@ -569,11 +512,19 @@ shell_screenshot_screenshot_window (ShellScreenshot *screenshot,
const char *filename,
ShellScreenshotCallback callback)
{
GSimpleAsyncResult *result;
GSettings *settings;
ShellScreenshotPrivate *priv = screenshot->priv;
MetaScreen *screen = shell_global_get_screen (priv->global);
ClutterActor *stage;
MetaCursorTracker *tracker;
MetaDisplay *display = meta_screen_get_display (screen);
MetaWindow *window = meta_display_get_focus_window (display);
ClutterActor *window_actor;
gfloat actor_x, actor_y;
MetaShapedTexture *stex;
MetaRectangle rect;
cairo_rectangle_int_t clip;
if (priv->filename != NULL || !window) {
if (callback)
@@ -583,16 +534,37 @@ shell_screenshot_screenshot_window (ShellScreenshot *screenshot,
priv->filename = g_strdup (filename);
priv->callback = callback;
priv->include_frame = include_frame;
priv->include_cursor = include_cursor;
stage = CLUTTER_ACTOR (shell_global_get_stage (priv->global));
window_actor = CLUTTER_ACTOR (meta_window_get_compositor_private (window));
clutter_actor_get_position (window_actor, &actor_x, &actor_y);
meta_disable_unredirect_for_screen (shell_global_get_screen (shell_global_get ()));
meta_window_get_frame_rect (window, &rect);
g_signal_connect_after (stage, "paint", G_CALLBACK (grab_window_screenshot), (gpointer)screenshot);
if (!include_frame)
meta_window_frame_rect_to_client_rect (window, &rect, &rect);
clutter_actor_queue_redraw (stage);
priv->screenshot_area.x = rect.x;
priv->screenshot_area.y = rect.y;
clip.x = rect.x - (gint) actor_x;
clip.y = rect.y - (gint) actor_y;
clip.width = priv->screenshot_area.width = rect.width;
clip.height = priv->screenshot_area.height = rect.height;
stex = META_SHAPED_TEXTURE (meta_window_actor_get_texture (META_WINDOW_ACTOR (window_actor)));
priv->image = meta_shaped_texture_get_image (stex, &clip);
settings = g_settings_new (A11Y_APPS_SCHEMA);
if (include_cursor && !g_settings_get_boolean (settings, MAGNIFIER_ACTIVE_KEY))
{
tracker = meta_cursor_tracker_get_for_screen (screen);
_draw_cursor_image (tracker, priv->image, priv->screenshot_area);
}
g_object_unref (settings);
result = g_simple_async_result_new (G_OBJECT (screenshot), on_screenshot_written, NULL, shell_screenshot_screenshot_window);
g_simple_async_result_run_in_thread (result, write_screenshot_thread, G_PRIORITY_DEFAULT, NULL);
g_object_unref (result);
}
ShellScreenshot *

View File

@@ -10,6 +10,7 @@
#include <gtk/gtk.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <gdk/gdkx.h>
#include <X11/extensions/XTest.h>
#include <locale.h>
#ifdef HAVE__NL_TIME_FIRST_WEEKDAY

View File

@@ -47,6 +47,9 @@ struct _ShellWindowTracker
/* <MetaWindow * window, ShellApp *app> */
GHashTable *window_to_app;
/* <int, ShellApp *app> */
GHashTable *launched_pid_to_app;
};
G_DEFINE_TYPE (ShellWindowTracker, shell_window_tracker, G_TYPE_OBJECT);
@@ -290,7 +293,7 @@ get_app_from_window_group (ShellWindowTracker *tracker,
* @window: a #MetaWindow
*
* Check if the pid associated with @window corresponds to an
* application.
* application we launched.
*
* Return value: (transfer full): A newly-referenced #ShellApp, or %NULL
*/
@@ -309,7 +312,7 @@ get_app_from_window_pid (ShellWindowTracker *tracker,
if (pid == -1)
return NULL;
result = shell_window_tracker_get_app_from_pid (tracker, pid);
result = g_hash_table_lookup (tracker->launched_pid_to_app, GINT_TO_POINTER (pid));
if (result != NULL)
g_object_ref (result);
@@ -628,6 +631,8 @@ shell_window_tracker_init (ShellWindowTracker *self)
self->window_to_app = g_hash_table_new_full (g_direct_hash, g_direct_equal,
NULL, (GDestroyNotify) g_object_unref);
self->launched_pid_to_app = g_hash_table_new_full (NULL, NULL, NULL, (GDestroyNotify) g_object_unref);
screen = shell_global_get_screen (shell_global_get ());
g_signal_connect (G_OBJECT (screen), "startup-sequence-changed",
@@ -643,6 +648,7 @@ shell_window_tracker_finalize (GObject *object)
ShellWindowTracker *self = SHELL_WINDOW_TRACKER (object);
g_hash_table_destroy (self->window_to_app);
g_hash_table_destroy (self->launched_pid_to_app);
G_OBJECT_CLASS (shell_window_tracker_parent_class)->finalize(object);
}
@@ -711,6 +717,40 @@ shell_window_tracker_get_app_from_pid (ShellWindowTracker *tracker,
return result;
}
static void
on_child_exited (GPid pid,
gint status,
gpointer unused_data)
{
ShellWindowTracker *tracker;
tracker = shell_window_tracker_get_default ();
g_hash_table_remove (tracker->launched_pid_to_app, GINT_TO_POINTER((gint)pid));
}
void
_shell_window_tracker_add_child_process_app (ShellWindowTracker *tracker,
GPid pid,
ShellApp *app)
{
gpointer pid_ptr = GINT_TO_POINTER((int)pid);
if (g_hash_table_lookup (tracker->launched_pid_to_app,
&pid_ptr))
return;
g_hash_table_insert (tracker->launched_pid_to_app,
pid_ptr,
g_object_ref (app));
g_child_watch_add (pid, on_child_exited, NULL);
/* TODO: rescan unassociated windows
* Unlikely in practice that the launched app gets ahead of us
* enough to map an X window before we get scheduled after the fork(),
* but adding this note for future reference.
*/
}
static void
set_focus_app (ShellWindowTracker *tracker,
ShellApp *new_focus_app)

View File

@@ -628,26 +628,18 @@ static void
st_texture_cache_reset_texture (StTextureCachePropertyBind *bind,
const char *propname)
{
cairo_surface_t *surface;
GdkPixbuf *pixbuf;
CoglTexture *texdata;
ClutterBackend *backend = clutter_get_default_backend ();
CoglContext *ctx = clutter_backend_get_cogl_context (backend);
g_object_get (bind->source, propname, &surface, NULL);
g_object_get (bind->source, propname, &pixbuf, NULL);
if (surface != NULL &&
cairo_surface_get_type (surface) == CAIRO_SURFACE_TYPE_IMAGE &&
(cairo_image_surface_get_format (surface) == CAIRO_FORMAT_ARGB32 ||
cairo_image_surface_get_format (surface) == CAIRO_FORMAT_RGB24))
g_return_if_fail (pixbuf == NULL || GDK_IS_PIXBUF (pixbuf));
if (pixbuf != NULL)
{
texdata = COGL_TEXTURE (cogl_texture_2d_new_from_data (ctx,
cairo_image_surface_get_width (surface),
cairo_image_surface_get_height (surface),
cairo_image_surface_get_format (surface) == CAIRO_FORMAT_ARGB32 ?
COGL_PIXEL_FORMAT_BGRA_8888 : COGL_PIXEL_FORMAT_BGR_888,
cairo_image_surface_get_stride (surface),
cairo_image_surface_get_data (surface),
NULL));
texdata = pixbuf_to_cogl_texture (pixbuf);
g_object_unref (pixbuf);
clutter_texture_set_cogl_texture (bind->texture, texdata);
cogl_object_unref (texdata);
@@ -685,12 +677,12 @@ st_texture_cache_free_bind (gpointer data)
}
/**
* st_texture_cache_bind_cairo_surface_property:
* st_texture_cache_bind_pixbuf_property:
* @cache:
* @object: A #GObject with a property @property_name of type #GdkPixbuf
* @property_name: Name of a property
*
* Create a #ClutterTexture which tracks the #cairo_surface_t value of a GObject property
* Create a #ClutterTexture which tracks the #GdkPixbuf value of a GObject property
* named by @property_name. Unlike other methods in StTextureCache, the underlying
* #CoglTexture is not shared by default with other invocations to this method.
*
@@ -700,9 +692,9 @@ st_texture_cache_free_bind (gpointer data)
* Return value: (transfer none): A new #ClutterActor
*/
ClutterActor *
st_texture_cache_bind_cairo_surface_property (StTextureCache *cache,
GObject *object,
const char *property_name)
st_texture_cache_bind_pixbuf_property (StTextureCache *cache,
GObject *object,
const char *property_name)
{
ClutterTexture *texture;
gchar *notify_key;
@@ -820,27 +812,12 @@ ensure_request (StTextureCache *cache,
return had_pending;
}
/**
* st_texture_cache_load_gicon:
* @cache: The texture cache instance
* @theme_node: (nullable): The #StThemeNode to use for colors, or NULL
* if the icon must not be recolored
* @icon: the #GIcon to load
* @size: Size of themed
* @scale: Scale factor of display
*
* This method returns a new #ClutterActor for a given #GIcon. If the
* icon isn't loaded already, the texture will be filled
* asynchronously.
*
* Return Value: (transfer none): A new #ClutterActor for the icon, or %NULL if not found
*/
ClutterActor *
st_texture_cache_load_gicon (StTextureCache *cache,
StThemeNode *theme_node,
GIcon *icon,
gint size,
gint scale)
static ClutterActor *
load_gicon_with_colors (StTextureCache *cache,
GIcon *icon,
gint size,
gint scale,
StIconColors *colors)
{
AsyncTextureLoadData *request;
ClutterActor *texture;
@@ -849,26 +826,13 @@ st_texture_cache_load_gicon (StTextureCache *cache,
GtkIconTheme *theme;
GtkIconInfo *info;
StTextureCachePolicy policy;
StIconColors *colors = NULL;
StIconStyle icon_style = ST_ICON_STYLE_REQUESTED;
GtkIconLookupFlags lookup_flags;
if (theme_node)
{
colors = st_theme_node_get_icon_colors (theme_node);
icon_style = st_theme_node_get_icon_style (theme_node);
}
/* Do theme lookups in the main thread to avoid thread-unsafety */
theme = cache->priv->icon_theme;
lookup_flags = GTK_ICON_LOOKUP_USE_BUILTIN;
if (icon_style == ST_ICON_STYLE_REGULAR)
lookup_flags |= GTK_ICON_LOOKUP_FORCE_REGULAR;
else if (icon_style == ST_ICON_STYLE_SYMBOLIC)
lookup_flags |= GTK_ICON_LOOKUP_FORCE_SYMBOLIC;
if (clutter_get_default_text_direction () == CLUTTER_TEXT_DIRECTION_RTL)
lookup_flags |= GTK_ICON_LOOKUP_DIR_RTL;
else
@@ -888,8 +852,8 @@ st_texture_cache_load_gicon (StTextureCache *cache,
if (colors)
{
/* This raises some doubts about the practice of using string keys */
key = g_strdup_printf (CACHE_PREFIX_ICON "%s,size=%d,scale=%d,style=%d,colors=%2x%2x%2x%2x,%2x%2x%2x%2x,%2x%2x%2x%2x,%2x%2x%2x%2x",
gicon_string, size, scale, icon_style,
key = g_strdup_printf (CACHE_PREFIX_ICON "%s,size=%d,scale=%d,colors=%2x%2x%2x%2x,%2x%2x%2x%2x,%2x%2x%2x%2x,%2x%2x%2x%2x",
gicon_string, size, scale,
colors->foreground.red, colors->foreground.blue, colors->foreground.green, colors->foreground.alpha,
colors->warning.red, colors->warning.blue, colors->warning.green, colors->warning.alpha,
colors->error.red, colors->error.blue, colors->error.green, colors->error.alpha,
@@ -897,8 +861,8 @@ st_texture_cache_load_gicon (StTextureCache *cache,
}
else
{
key = g_strdup_printf (CACHE_PREFIX_ICON "%s,size=%d,scale=%d,style=%d",
gicon_string, size, scale, icon_style);
key = g_strdup_printf (CACHE_PREFIX_ICON "%s,size=%d,scale=%d",
gicon_string, size, scale);
}
g_free (gicon_string);
@@ -930,6 +894,31 @@ st_texture_cache_load_gicon (StTextureCache *cache,
return CLUTTER_ACTOR (texture);
}
/**
* st_texture_cache_load_gicon:
* @cache: The texture cache instance
* @theme_node: (nullable): The #StThemeNode to use for colors, or NULL
* if the icon must not be recolored
* @icon: the #GIcon to load
* @size: Size of themed
* @scale: Scale factor of display
*
* This method returns a new #ClutterActor for a given #GIcon. If the
* icon isn't loaded already, the texture will be filled
* asynchronously.
*
* Return Value: (transfer none): A new #ClutterActor for the icon, or %NULL if not found
*/
ClutterActor *
st_texture_cache_load_gicon (StTextureCache *cache,
StThemeNode *theme_node,
GIcon *icon,
gint size,
gint scale)
{
return load_gicon_with_colors (cache, icon, size, scale, theme_node ? st_theme_node_get_icon_colors (theme_node) : NULL);
}
static ClutterActor *
load_from_pixbuf (GdkPixbuf *pixbuf)
{

View File

@@ -28,6 +28,7 @@
#include <gio/gio.h>
#include <gtk/gtk.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <clutter/clutter.h>
#include <st/st-types.h>
@@ -76,9 +77,9 @@ st_texture_cache_load_sliced_image (StTextureCache *cache,
GFunc load_callback,
gpointer user_data);
ClutterActor *st_texture_cache_bind_cairo_surface_property (StTextureCache *cache,
GObject *object,
const char *property_name);
ClutterActor *st_texture_cache_bind_pixbuf_property (StTextureCache *cache,
GObject *object,
const char *property_name);
ClutterActor *st_texture_cache_load_gicon (StTextureCache *cache,
StThemeNode *theme_node,

View File

@@ -25,7 +25,6 @@
#include <gdk/gdk.h>
#include "st-theme-node.h"
#include <libcroco/libcroco.h>
#include "st-types.h"
G_BEGIN_DECLS
@@ -59,7 +58,6 @@ struct _StThemeNode {
int border_radius[4];
int outline_width;
guint padding[4];
guint margin[4];
int width;
int height;
@@ -92,8 +90,6 @@ struct _StThemeNode {
guint background_position_set : 1;
guint background_repeat : 1;
gboolean margin_set : 4;
guint properties_computed : 1;
guint geometry_computed : 1;
guint background_computed : 1;
@@ -125,8 +121,6 @@ struct _StThemeNodeClass {
void _st_theme_node_ensure_background (StThemeNode *node);
void _st_theme_node_ensure_geometry (StThemeNode *node);
void _st_theme_node_apply_margins (StThemeNode *node,
ClutterActor *actor);
G_END_DECLS

View File

@@ -1657,100 +1657,6 @@ do_padding_property (StThemeNode *node,
}
}
static void
do_margin_property_term (StThemeNode *node,
CRTerm *term,
gboolean left,
gboolean right,
gboolean top,
gboolean bottom)
{
int value;
if (get_length_from_term_int (node, term, FALSE, &value) != VALUE_FOUND)
return;
if (left)
{
node->margin[ST_SIDE_LEFT] = value;
node->margin_set |= 1 << ST_SIDE_LEFT;
}
if (right)
{
node->margin[ST_SIDE_RIGHT] = value;
node->margin_set |= 1 << ST_SIDE_RIGHT;
}
if (top)
{
node->margin[ST_SIDE_TOP] = value;
node->margin_set |= 1 << ST_SIDE_TOP;
}
if (bottom)
{
node->margin[ST_SIDE_BOTTOM] = value;
node->margin_set |= 1 << ST_SIDE_BOTTOM;
}
}
static void
do_margin_property (StThemeNode *node,
CRDeclaration *decl)
{
const char *property_name = decl->property->stryng->str + 6; /* Skip 'margin' */
if (strcmp (property_name, "") == 0)
{
/* Slight deviation ... if we don't understand some of the terms and understand others,
* then we set the ones we understand and ignore the others instead of ignoring the
* whole thing
*/
if (decl->value == NULL) /* 0 values */
return;
else if (decl->value->next == NULL) /* 1 value */
{
do_margin_property_term (node, decl->value, TRUE, TRUE, TRUE, TRUE); /* left/right/top/bottom */
return;
}
else if (decl->value->next->next == NULL) /* 2 values */
{
do_margin_property_term (node, decl->value, FALSE, FALSE, TRUE, TRUE); /* top/bottom */
do_margin_property_term (node, decl->value->next, TRUE, TRUE, FALSE, FALSE); /* left/right */
}
else if (decl->value->next->next->next == NULL) /* 3 values */
{
do_margin_property_term (node, decl->value, FALSE, FALSE, TRUE, FALSE); /* top */
do_margin_property_term (node, decl->value->next, TRUE, TRUE, FALSE, FALSE); /* left/right */
do_margin_property_term (node, decl->value->next->next, FALSE, FALSE, FALSE, TRUE); /* bottom */
}
else if (decl->value->next->next->next->next == NULL) /* 4 values */
{
do_margin_property_term (node, decl->value, FALSE, FALSE, TRUE, FALSE); /* top */
do_margin_property_term (node, decl->value->next, FALSE, TRUE, FALSE, FALSE); /* right */
do_margin_property_term (node, decl->value->next->next, FALSE, FALSE, FALSE, TRUE); /* bottom */
do_margin_property_term (node, decl->value->next->next->next, TRUE, FALSE, FALSE, FALSE); /* left */
}
else
{
g_warning ("Too many values for margin property");
return;
}
}
else
{
if (decl->value == NULL || decl->value->next != NULL)
return;
if (strcmp (property_name, "-left") == 0)
do_margin_property_term (node, decl->value, TRUE, FALSE, FALSE, FALSE);
else if (strcmp (property_name, "-right") == 0)
do_margin_property_term (node, decl->value, FALSE, TRUE, FALSE, FALSE);
else if (strcmp (property_name, "-top") == 0)
do_margin_property_term (node, decl->value, FALSE, FALSE, TRUE, FALSE);
else if (strcmp (property_name, "-bottom") == 0)
do_margin_property_term (node, decl->value, FALSE, FALSE, FALSE, TRUE);
}
}
static void
do_size_property (StThemeNode *node,
CRDeclaration *decl,
@@ -1801,8 +1707,6 @@ _st_theme_node_ensure_geometry (StThemeNode *node)
do_outline_property (node, decl);
else if (g_str_has_prefix (property_name, "padding"))
do_padding_property (node, decl);
else if (g_str_has_prefix (property_name, "margin"))
do_margin_property (node, decl);
else if (strcmp (property_name, "width") == 0)
do_size_property (node, decl, &width);
else if (strcmp (property_name, "height") == 0)
@@ -2353,18 +2257,6 @@ st_theme_node_get_padding (StThemeNode *node,
return node->padding[side];
}
double
st_theme_node_get_margin (StThemeNode *node,
StSide side)
{
g_return_val_if_fail (ST_IS_THEME_NODE (node), 0.);
g_return_val_if_fail (side >= ST_SIDE_TOP && side <= ST_SIDE_LEFT, 0.);
_st_theme_node_ensure_geometry (node);
return node->margin[side];
}
/**
* st_theme_node_get_transition_duration:
* @node: an #StThemeNode
@@ -2392,48 +2284,6 @@ st_theme_node_get_transition_duration (StThemeNode *node)
return st_slow_down_factor * node->transition_duration;
}
StIconStyle
st_theme_node_get_icon_style (StThemeNode *node)
{
int i;
ensure_properties (node);
for (i = node->n_properties - 1; i >= 0; i--)
{
CRDeclaration *decl = node->properties[i];
if (strcmp (decl->property->stryng->str, "-st-icon-style") == 0)
{
CRTerm *term;
for (term = decl->value; term; term = term->next)
{
if (term->type != TERM_IDENT)
goto next_decl;
if (strcmp (term->content.str->stryng->str, "requested") == 0)
return ST_ICON_STYLE_REQUESTED;
else if (strcmp (term->content.str->stryng->str, "regular") == 0)
return ST_ICON_STYLE_REGULAR;
else if (strcmp (term->content.str->stryng->str, "symbolic") == 0)
return ST_ICON_STYLE_SYMBOLIC;
else
g_warning ("Unknown -st-icon-style \"%s\"",
term->content.str->stryng->str);
}
}
next_decl:
;
}
if (node->parent_node)
return st_theme_node_get_icon_style (node->parent_node);
return ST_ICON_STYLE_REQUESTED;
}
StTextDecoration
st_theme_node_get_text_decoration (StThemeNode *node)
{
@@ -3179,28 +3029,6 @@ st_theme_node_get_vertical_padding (StThemeNode *node)
return padding;
}
void
_st_theme_node_apply_margins (StThemeNode *node,
ClutterActor *actor)
{
g_return_if_fail (ST_IS_THEME_NODE (node));
_st_theme_node_ensure_geometry (node);
// In the case that a CSS margin is not specified, we don't to set a value
// of 0 to the clutter actor margin. In this manner it allows to use Clutter
// margin values set in the code. However, the margins that are set both in
// the code and in the CSS on the same side, the result is unpredictable.
if (node->margin_set & 1 << ST_SIDE_LEFT)
clutter_actor_set_margin_left (actor, st_theme_node_get_margin(node, ST_SIDE_LEFT));
if (node->margin_set & 1 << ST_SIDE_RIGHT)
clutter_actor_set_margin_right (actor, st_theme_node_get_margin(node, ST_SIDE_RIGHT));
if (node->margin_set & 1 << ST_SIDE_TOP)
clutter_actor_set_margin_top (actor, st_theme_node_get_margin(node, ST_SIDE_TOP));
if (node->margin_set & 1 << ST_SIDE_BOTTOM)
clutter_actor_set_margin_bottom (actor, st_theme_node_get_margin(node, ST_SIDE_BOTTOM));
}
static GetFromTermResult
parse_shadow_property (StThemeNode *node,
CRDeclaration *decl,

View File

@@ -94,12 +94,6 @@ typedef enum {
ST_GRADIENT_RADIAL
} StGradientType;
typedef enum {
ST_ICON_STYLE_REQUESTED,
ST_ICON_STYLE_REGULAR,
ST_ICON_STYLE_SYMBOLIC
} StIconStyle;
typedef struct _StThemeNodePaintState StThemeNodePaintState;
struct _StThemeNodePaintState {
@@ -214,9 +208,6 @@ double st_theme_node_get_padding (StThemeNode *node,
double st_theme_node_get_horizontal_padding (StThemeNode *node);
double st_theme_node_get_vertical_padding (StThemeNode *node);
double st_theme_node_get_margin (StThemeNode *node,
StSide side);
int st_theme_node_get_width (StThemeNode *node);
int st_theme_node_get_height (StThemeNode *node);
int st_theme_node_get_min_width (StThemeNode *node);
@@ -226,8 +217,6 @@ int st_theme_node_get_max_height (StThemeNode *node);
int st_theme_node_get_transition_duration (StThemeNode *node);
StIconStyle st_theme_node_get_icon_style (StThemeNode *node);
StTextDecoration st_theme_node_get_text_decoration (StThemeNode *node);
StTextAlign st_theme_node_get_text_align (StThemeNode *node);

View File

@@ -40,7 +40,6 @@
#include "st-texture-cache.h"
#include "st-theme-context.h"
#include "st-theme-node-transition.h"
#include "st-theme-node-private.h"
#include "st-widget-accessible.h"
@@ -1541,8 +1540,6 @@ st_widget_recompute_style (StWidget *widget,
return;
}
_st_theme_node_apply_margins (new_theme_node, CLUTTER_ACTOR (widget));
if (!old_theme_node ||
!st_theme_node_geometry_equal (old_theme_node, new_theme_node))
clutter_actor_queue_relayout ((ClutterActor *) widget);

View File

@@ -34,9 +34,6 @@ static StThemeNode *group2;
static StThemeNode *text3;
static StThemeNode *text4;
static StThemeNode *group3;
static StThemeNode *group4;
static StThemeNode *group5;
static StThemeNode *group6;
static StThemeNode *cairo_texture;
static gboolean fail;
@@ -236,19 +233,6 @@ test_lengths (void)
/* 1in == 72pt == 96px, at 96dpi */
assert_length ("group1", "padding-left", 96.,
st_theme_node_get_padding (group1, ST_SIDE_LEFT));
/* 12pt == 16px at 96dpi */
assert_length ("group1", "margin-top", 16.,
st_theme_node_get_margin (group1, ST_SIDE_TOP));
/* 12px == 12px */
assert_length ("group1", "margin-right", 12.,
st_theme_node_get_margin (group1, ST_SIDE_RIGHT));
/* 2em == 32px (with a 12pt font) */
assert_length ("group1", "margin-bottom", 32.,
st_theme_node_get_margin (group1, ST_SIDE_BOTTOM));
/* 1in == 72pt == 96px, at 96dpi */
assert_length ("group1", "margin-left", 96.,
st_theme_node_get_margin (group1, ST_SIDE_LEFT));
}
static void
@@ -298,54 +282,6 @@ test_padding (void)
st_theme_node_get_padding (group2, ST_SIDE_LEFT));
}
static void
test_margin (void)
{
test = "margin";
/* Test that a 4-sided margin property assigns the right margin to
* all sides */
assert_length ("group2", "margin-top", 1.,
st_theme_node_get_margin (group2, ST_SIDE_TOP));
assert_length ("group2", "margin-right", 2.,
st_theme_node_get_margin (group2, ST_SIDE_RIGHT));
assert_length ("group2", "margin-bottom", 3.,
st_theme_node_get_margin (group2, ST_SIDE_BOTTOM));
assert_length ("group2", "margin-left", 4.,
st_theme_node_get_margin (group2, ST_SIDE_LEFT));
/* Test that a 3-sided margin property assigns the right margin to
* all sides */
assert_length ("group4", "margin-top", 1.,
st_theme_node_get_margin (group4, ST_SIDE_TOP));
assert_length ("group4", "margin-right", 2.,
st_theme_node_get_margin (group4, ST_SIDE_RIGHT));
assert_length ("group4", "margin-bottom", 3.,
st_theme_node_get_margin (group4, ST_SIDE_BOTTOM));
assert_length ("group4", "margin-left", 2.,
st_theme_node_get_margin (group4, ST_SIDE_LEFT));
/* Test that a 2-sided margin property assigns the right margin to
* all sides */
assert_length ("group5", "margin-top", 1.,
st_theme_node_get_margin (group5, ST_SIDE_TOP));
assert_length ("group5", "margin-right", 2.,
st_theme_node_get_margin (group5, ST_SIDE_RIGHT));
assert_length ("group5", "margin-bottom", 1.,
st_theme_node_get_margin (group5, ST_SIDE_BOTTOM));
assert_length ("group5", "margin-left", 2.,
st_theme_node_get_margin (group5, ST_SIDE_LEFT));
/* Test that all sides have a margin of 0 when not specified */
assert_length ("group6", "margin-top", 0.,
st_theme_node_get_margin (group6, ST_SIDE_TOP));
assert_length ("group6", "margin-right", 0.,
st_theme_node_get_margin (group6, ST_SIDE_RIGHT));
assert_length ("group6", "margin-bottom", 0.,
st_theme_node_get_margin (group6, ST_SIDE_BOTTOM));
assert_length ("group6", "margin-left", 0.,
st_theme_node_get_margin (group6, ST_SIDE_LEFT));
}
static void
test_border (void)
{
@@ -522,12 +458,6 @@ main (int argc, char **argv)
CLUTTER_TYPE_TEXT, "text2", NULL, NULL, NULL);
group2 = st_theme_node_new (context, root, NULL,
CLUTTER_TYPE_GROUP, "group2", NULL, NULL, NULL);
group4 = st_theme_node_new (context, root, NULL,
CLUTTER_TYPE_GROUP, "group4", NULL, NULL, NULL);
group5 = st_theme_node_new (context, root, NULL,
CLUTTER_TYPE_GROUP, "group5", NULL, NULL, NULL);
group6 = st_theme_node_new (context, root, NULL,
CLUTTER_TYPE_GROUP, "group6", NULL, NULL, NULL);
text3 = st_theme_node_new (context, group2, NULL,
CLUTTER_TYPE_TEXT, "text3", NULL, NULL,
"color: #0000ff; padding-bottom: 12px;");
@@ -544,7 +474,6 @@ main (int argc, char **argv)
test_type_inheritance ();
test_adjacent_selector ();
test_padding ();
test_margin ();
test_border ();
test_background ();
test_font ();
@@ -555,9 +484,6 @@ main (int argc, char **argv)
g_object_unref (group1);
g_object_unref (group2);
g_object_unref (group3);
g_object_unref (group4);
g_object_unref (group5);
g_object_unref (group6);
g_object_unref (text1);
g_object_unref (text2);
g_object_unref (text3);

View File

@@ -7,11 +7,6 @@ stage {
padding-bottom: 2em;
padding-left: 1in;
margin: 12pt;
margin-right: 12px;
margin-bottom: 2em;
margin-left: 1in;
background: #ff0000 url('some-background.png');
}
@@ -63,7 +58,6 @@ stage > #text2 {
#group2 {
background-image: url('other-background.png');
padding: 1px 2px 3px 4px;
margin: 1px 2px 3px 4px;
border: 2px solid #000000;
border-bottom: 5px solid #0000ff;
@@ -81,15 +75,3 @@ ClutterText:visited, StLabel:visited {
StLabel:boxed {
border: 1px;
}
#group4 {
margin: 1px 2px 3px;
}
#group5 {
margin: 1px 2px;
}
#group6 {
padding: 5px;
}