Compare commits

...

18 Commits

Author SHA1 Message Date
Allan Day
34e9513e1f adjust UI to new text styles
With the new text styles, some UI needs to adjusted, primarily to
accommodate larger heading text.
2019-06-27 13:52:40 +01:00
Allan Day
40a772c884 theme: Standardise text styles
Initial attempt to use standard text styles, in line with what's
being done for GTK (https://gitlab.gnome.org/GNOME/gtk/issues/1808).

This is just changing the sizes and weights for now. Spacing
adjustments will be required further down the line.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/594
2019-06-27 13:51:14 +01:00
Allan Day
2ccd87ae44 theme: Remove unused message tray counters 2019-06-27 13:51:14 +01:00
Florian Müllner
2f5086efaf extensionDownloader: Use common message dialog layout
While the confirmation dialog for extension installation is simpler
than - say - authentication dialogs, it still makes sense to re-use
the common content layout instead of duplicating it.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/600
2019-06-26 20:49:46 +02:00
Florian Müllner
68e580e394 dialog: Use GObject.set() over Object.assign()
gjs has provided that as a more idiomatic replacement for a while.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/600
2019-06-26 20:49:46 +02:00
Jonas Dreßler
b143869d5d main: Fix some typos and style inconsistencies in comments
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/599
2019-06-26 16:39:36 +00:00
Jonas Dreßler
6a477be874 windowManager: Use own variables for each gesture
Using one variable to initialize all gestures will update the address of
the "gesture" pointer with every newly initialized object. This means
that event handlers which also use the "gesture" pointer like the
'keyboard-visible-changed' handler will update a different gesture as
soon as the pointer is changed.

This lead to a bug where the handler of 'keyboard-visible-changed'
wrongly nabled the unfullscreen gesture. Fix that by assigning each
gesture its own variable.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/598
2019-06-26 18:18:28 +02:00
Jakub Steiner
03bb8cdcbd theme: darken sliders to match gtk
- match gtk a bit more closely, but avoid the gradients (change will
  happen on gtk side for this one).
2019-06-26 12:34:42 +02:00
Florian Müllner
8864816b94 Bump version to 3.33.3
Update NEWS.
2019-06-24 19:19:04 +02:00
Christian Hergert
751cd2f1c1 main: setup GJS profiler when GJS_TRACE_FD is set
This is the same environment variable that will be used in GJS to auto-
connect Sysprof to the GJS profiler when the gjs binary is used.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/573
2019-06-24 15:05:46 +00:00
Jakub Steiner
6f6b6fb9d6 Merge branch 'wip/jimmac/sync-with-adwaita' 2019-06-24 15:39:26 +02:00
Jordi Mas
fe346b89f0 Update Catalan translation 2019-06-23 09:48:21 +02:00
Goran Vidović
0744c6af2e Update Croatian translation 2019-06-21 23:56:14 +00:00
Florian Müllner
2e070ab834 panel: Center-align menu arrows
Center alignment looks more balanced and makes it more likely that
the menu opens below the pointer position.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1351
2019-06-21 21:09:56 +00:00
Jonas Dreßler
00f9b7bf69 layout: Use addChrome instead of addTopChrome for screenShieldGroup
Make sure the panel is visible above the login and screen shield actors
by adding the screenShieldGroup to the uiGroup underneath the panelBox.

This fixes a regression introduced with 2bd80579ed

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/1330

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/571
2019-06-21 20:57:23 +00:00
Will Thompson
94ba52af0c network: don't assume NMActiveConnection has a device
In practice this has been seen to fail:

    JS ERROR: TypeError: active.get_devices(...)[0] is undefined
    ensureActiveConnectionProps@resource:///org/gnome/shell/ui/status/network.js:73:22
    _getMainConnection@resource:///org/gnome/shell/ui/status/network.js:1791:13
    _syncMainConnection@resource:///org/gnome/shell/ui/status/network.js:1809:32

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1406
2019-06-21 11:26:53 +01:00
Frederik Feichtmeier
44e1a6ce06 Theme: update to sync with gtk Adwaita
- consistent OSD colors
- consistent fg/bg colors
- updated rounded corners
- switches

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/841
2019-06-21 10:44:08 +02:00
Niels De Graef
ccf646f54a Drop CoglError for GError
From https://gitlab.gnome.org/GNOME/mutter/merge_requests/631

```
CoglError was added at a certain point to remove the hard dependency on
GLib, but since this can't be avoided inside mutter, let's remove this
whole abstraction.
```

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/586
2019-06-20 16:30:40 +02:00
33 changed files with 1333 additions and 1265 deletions

27
NEWS
View File

@@ -1,3 +1,30 @@
3.33.3
======
* Prepare for optional X11 [Carlos; !378]
* Fix opening window menu [Marco; !557]
* Reload search providers when installed applications change [Cosimo; !562]
* Implement locate-pointer accessibility feature [Olivier; #981]
* Allow to disable window menus via session mode [Cosimo; !569]
* Implement mouse accessibility [Olivier; !474]
* Call GDM's RegisterSession() after startup [Iain; !570]
* Fix extended keys popups being hidden by on-screen keyboard [Marco; !583]
* Fix top bar being hidden by lock screen [Jonas; !571]
* Update theme to better match GTK's Adwaita [Frederik; #841]
* Set up GJS profiler when GJS_TRACE_FD is set [Christian; !573]
* Misc. bug fixes and cleanups [Jonas, Cosimo, Robert, Florian, Marco, Simon,
Laurent, Niels, Will; !551, !555, !464, #1333, !565, !572, !568, !558, #1205,
#1336, !579, !576, #1392, !582, !586, #1406, #1351]
Contributors:
Laurent Bigonville, Cosimo Cecchi, Piotr Drąg, Jonas Dreßler,
Frederik Feichtmeier, Olivier Fourdan, Carlos Garnacho, Niels De Graef,
Christian Hergert, Iain Lane, Robert Mader, Florian Müllner, Simon Schampijer,
Jakub Steiner, Will Thompson, Marco Trevisan (Treviño)
Translators:
Kukuh Syafaat [id], Balázs Meskó [hu], Daniel Mustieles [es],
Fabio Tomat [fur], Nathan Follens [nl], Goran Vidović [hr], Jordi Mas [ca]
3.33.2
======
* Fix keeping actors visible in scrollviews [Marco; #1061]

View File

@@ -25,9 +25,11 @@
<file alias="icons/pointer-primary-click-symbolic.svg">pointer-primary-click-symbolic.svg</file>
<file alias="icons/pointer-secondary-click-symbolic.svg">pointer-secondary-click-symbolic.svg</file>
<file>process-working.svg</file>
<file>toggle-off-intl.svg</file>
<file>toggle-off.svg</file>
<file>toggle-off-dark.svg</file>
<file>toggle-off-hc.svg</file>
<file>toggle-on-intl.svg</file>
<file>toggle-on.svg</file>
<file>toggle-on-dark.svg</file>
<file>toggle-on-hc.svg</file>
</gresource>
</gresources>

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -37,16 +37,13 @@
// 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%));
@@ -111,7 +108,7 @@
}
}
@mixin button($t, $c:$osd_bg_color, $tc:$fg_color, $edge: $borders_edge) {
@mixin button($t, $c:$bg_color, $tc:$fg_color, $edge: $borders_edge) {
//
// Button drawing function
//
@@ -130,46 +127,39 @@
$_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)));
$_button_shadow: 0 1px 2px transparentize($shadow_color, 0.03);
@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%);
color: $tc;
background-color: $c;
border-color: $borders_color;
box-shadow: $_button_shadow;
text-shadow: 0 1px black;
icon-shadow: 0 1px black;
}
@if $t==focus {
//
// focused button
//
$_bg: if($c!=$osd_bg_color, transparentize($c, 0.3),
lighten($osd_bg_color,3%));
color: $osd_fg_color;
//
color: $tc;
text-shadow: 0 1px black;
icon-shadow: 0 1px black;
box-shadow: inset 0px 0px 0px 1px $selected_bg_color;
box-shadow: inset 0px 0px 0px 2px $selected_bg_color;
//border-color: $selected_bg_color;
}
@else if $t==hover {
//
// active osd button
//
$_bg: if($c!=$osd_bg_color, transparentize($c, 0.3),
lighten($osd_bg_color,3%));
color: white;
border-color: $osd_borders_color;
background-color: $_bg;
box-shadow: inset 0 1px lighten($osd_bg_color,20%);
color: $tc;
border-color: $borders_color;
background-color: $c;
box-shadow: $_button_shadow;
text-shadow: 0 1px black;
icon-shadow: 0 1px black;
@@ -178,27 +168,18 @@
//
// active osd button
//
$_bg: if($c!=$bg_color, $c, $osd_borders_color);
color: white;
border-color: $osd_borders_color;
background-color: $selected_bg_color;
// This should be none, but it's creating some issues with borders, so to
// workaround it for now, use inset wich goes through a different code path.
// see https://bugzilla.gnome.org/show_bug.cgi?id=752934
box-shadow: inset 0 0 black;
color: $tc;
border-color: $borders_color;
background-color: $c;
text-shadow: none;
icon-shadow: none;
box-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;
border-color: $insensitive_borders_color;
background-color: $insensitive_bg_color;
box-shadow: none;
text-shadow: none;
icon-shadow: none;

View File

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

View File

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

After

Width:  |  Height:  |  Size: 725 B

View File

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

Before

Width:  |  Height:  |  Size: 3.3 KiB

View File

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

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

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

After

Width:  |  Height:  |  Size: 707 B

View File

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

Before

Width:  |  Height:  |  Size: 3.3 KiB

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

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

After

Width:  |  Height:  |  Size: 473 B

View File

@@ -310,7 +310,7 @@ class NetworkSecretDialog extends ModalDialog.ModalDialog {
case '802-11-wireless':
wirelessSetting = this._connection.get_setting_wireless();
ssid = NM.utils_ssid_to_utf8(wirelessSetting.get_ssid().get_data());
content.title = _("Authentication required by wireless network");
content.title = _("Authentication required");
content.message = _("Passwords or encryption keys are required to access the wireless network “%s”.").format(ssid);
this._getWirelessSecrets(content.secrets, wirelessSetting);
break;
@@ -338,7 +338,7 @@ class NetworkSecretDialog extends ModalDialog.ModalDialog {
// fall through
case 'cdma':
case 'bluetooth':
content.title = _("Mobile broadband network password");
content.title = _("Mobile broadband password");
content.message = _("A password is required to connect to “%s”.").format(connectionSetting.get_id());
this._getMobileSecrets(content.secrets, connectionType);
break;
@@ -683,7 +683,7 @@ var NetworkAgent = class {
case '802-11-wireless':
let wirelessSetting = connection.get_setting_wireless();
let ssid = NM.utils_ssid_to_utf8(wirelessSetting.get_ssid().get_data());
title = _("Authentication required by wireless network");
title = _("Authentication required");
body = _("Passwords or encryption keys are required to access the wireless network “%s”.").format(ssid);
break;
case '802-3-ethernet':

View File

@@ -214,7 +214,10 @@ var MessageDialogContent = GObject.registerClass({
}
set icon(icon) {
Object.assign(this._icon, { gicon: icon, visible: icon != null });
this._icon.set({
gicon: icon,
visible: icon != null
});
this.notify('icon');
}
@@ -231,7 +234,10 @@ var MessageDialogContent = GObject.registerClass({
}
_setLabel(label, prop, value) {
Object.assign(label, { text: value || '', visible: value != null });
label.set({
text: value || '',
visible: value != null
});
this.notify(prop);
}

View File

@@ -1,8 +1,9 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const { Clutter, Gio, GLib, GObject, Soup, St } = imports.gi;
const { Clutter, Gio, GLib, GObject, Pango, Soup, St } = imports.gi;
const Config = imports.misc.config;
const Dialog = imports.ui.dialog;
const ExtensionUtils = imports.misc.extensionUtils;
const ExtensionSystem = imports.ui.extensionSystem;
const FileUtils = imports.misc.fileUtils;
@@ -194,19 +195,14 @@ class InstallExtensionDialog extends ModalDialog.ModalDialog {
default: true
}]);
let message = _("Download and install “%s” from extensions.gnome.org?").format(info.name);
let content = new Dialog.MessageDialogContent({
title: _("Download and install “%s” from extensions.gnome.org?").format(info.name),
icon: new Gio.FileIcon({
file: Gio.File.new_for_uri(`${REPOSITORY_URL_BASE}${info.icon}`)
})
});
let box = new St.BoxLayout({ style_class: 'message-dialog-main-layout',
vertical: false });
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: 'message-dialog-title headline',
text: message });
box.add(label);
this.contentLayout.add(content);
}
_onCancelButtonPressed(button, event) {

View File

@@ -239,7 +239,7 @@ var LayoutManager = GObject.registerClass({
clip_to_allocation: true,
layout_manager: new Clutter.BinLayout(),
});
this.addTopChrome(this.screenShieldGroup);
this.addChrome(this.screenShieldGroup);
this.panelBox = new St.BoxLayout({ name: 'panelBox',
vertical: true });

View File

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

View File

@@ -140,12 +140,12 @@ function start() {
function _initializeUI() {
// Ensure ShellWindowTracker and ShellAppUsage are initialized; this will
// also initialize ShellAppSystem first. ShellAppSystem
// also initialize ShellAppSystem first. ShellAppSystem
// needs to load all the .desktop files, and ShellWindowTracker
// will use those to associate with windows. Right now
// will use those to associate with windows. Right now
// the Monitor doesn't listen for installed app changes
// and recalculate application associations, so to avoid
// races for now we initialize it here. It's better to
// races for now we initialize it here. It's better to
// be predictable anyways.
Shell.WindowTracker.get_default();
Shell.AppUsage.get_default();
@@ -157,8 +157,8 @@ function _initializeUI() {
// Setup the stage hierarchy early
layoutManager = new Layout.LayoutManager();
// Various parts of the codebase still refers to Main.uiGroup
// instead using the layoutManager. This keeps that code
// Various parts of the codebase still refer to Main.uiGroup
// instead of using the layoutManager. This keeps that code
// working until it's updated.
uiGroup = layoutManager.uiGroup;
@@ -322,7 +322,7 @@ function getThemeStylesheet() {
/**
* setThemeStylesheet:
* @cssStylesheet: A file path that contains the theme CSS,
* set it to null to use the default
* set it to null to use the default
*
* Set the theme CSS file that the shell will load
*/
@@ -422,15 +422,15 @@ function _findModal(actor) {
*
* @params may be used to provide the following parameters:
* - timestamp: used to associate the call with a specific user initiated
* event. If not provided then the value of
* event. If not provided then the value of
* global.get_current_time() is assumed.
*
* - options: Meta.ModalOptions flags to indicate that the pointer is
* already grabbed
*
* - actionMode: used to set the current Shell.ActionMode to filter
* global keybindings; the default of NONE will filter
* out all keybindings
* global keybindings; the default of NONE will filter
* out all keybindings
*
* Returns: true iff we successfully acquired a grab or already had one
*/
@@ -476,15 +476,15 @@ function pushModal(actor, params) {
/**
* popModal:
* @actor: #ClutterActor passed to original invocation of pushModal().
* @actor: #ClutterActor passed to original invocation of pushModal()
* @timestamp: optional timestamp
*
* Reverse the effect of pushModal(). If this invocation is undoing
* Reverse the effect of pushModal(). If this invocation is undoing
* the topmost invocation, then the focus will be restored to the
* previous focus at the time when pushModal() was invoked.
*
* @timestamp is optionally used to associate the call with a specific user
* initiated event. If not provided then the value of
* initiated event. If not provided then the value of
* global.get_current_time() is assumed.
*/
function popModal(actor, timestamp) {
@@ -646,7 +646,7 @@ function _queueBeforeRedraw(workId) {
*
* This function sets up a callback to be invoked when either the
* given actor is mapped, or after some period of time when the machine
* is idle. This is useful if your actor isn't always visible on the
* is idle. This is useful if your actor isn't always visible on the
* screen (for example, all actors in the overview), and you don't want
* to consume resources updating if the actor isn't actually going to be
* displaying to the user.
@@ -682,7 +682,7 @@ function initializeDeferredWork(actor, callback, props) {
* @workId: work identifier
*
* Ensure that the work identified by @workId will be
* run on map or timeout. You should call this function
* run on map or timeout. You should call this function
* for example when data being displayed by the actor has
* changed.
*/

View File

@@ -616,77 +616,6 @@ class SourceActor extends St.Widget {
}
});
var SourceActorWithLabel = GObject.registerClass(
class SourceActorWithLabel extends SourceActor {
_init(source, size) {
super._init(source, size);
this._counterLabel = new St.Label({ x_align: Clutter.ActorAlign.CENTER,
x_expand: true,
y_align: Clutter.ActorAlign.CENTER,
y_expand: true });
this._counterBin = new St.Bin({ style_class: 'summary-source-counter',
child: this._counterLabel,
layout_manager: new Clutter.BinLayout() });
this._counterBin.hide();
this._counterBin.connect('style-changed', () => {
let themeNode = this._counterBin.get_theme_node();
this._counterBin.translation_x = themeNode.get_length('-shell-counter-overlap-x');
this._counterBin.translation_y = themeNode.get_length('-shell-counter-overlap-y');
});
this.add_actor(this._counterBin);
this._countUpdatedId = this._source.connect('count-updated', this._updateCount.bind(this));
this._updateCount();
this.connect('destroy', () => {
this._source.disconnect(this._countUpdatedId);
});
}
vfunc_allocate(box, flags) {
super.vfunc_allocate(box, flags);
let childBox = new Clutter.ActorBox();
let [minWidth, minHeight, naturalWidth, naturalHeight] = this._counterBin.get_preferred_size();
let direction = this.get_text_direction();
if (direction == Clutter.TextDirection.LTR) {
// allocate on the right in LTR
childBox.x1 = box.x2 - naturalWidth;
childBox.x2 = box.x2;
} else {
// allocate on the left in RTL
childBox.x1 = 0;
childBox.x2 = naturalWidth;
}
childBox.y1 = box.y2 - naturalHeight;
childBox.y2 = box.y2;
this._counterBin.allocate(childBox, flags);
}
_updateCount() {
if (this._actorDestroyed)
return;
this._counterBin.visible = this._source.countVisible;
let text;
if (this._source.count < 100)
text = this._source.count.toString();
else
text = String.fromCharCode(0x22EF); // midline horizontal ellipsis
this._counterLabel.set_text(text);
}
});
var Source = class Source {
constructor(title, iconName) {
this.SOURCE_ICON_SIZE = 48;

View File

@@ -66,7 +66,7 @@ function _unpremultiply(color) {
class AppMenu extends PopupMenu.PopupMenu {
constructor(sourceActor) {
super(sourceActor, 0.0, St.Side.TOP);
super(sourceActor, 0.5, St.Side.TOP);
this.actor.add_style_class_name('app-menu');

View File

@@ -32,7 +32,7 @@ const HIGH_CONTRAST_THEME = 'HighContrast';
var ATIndicator = GObject.registerClass(
class ATIndicator extends PanelMenu.Button {
_init() {
super._init(0.0, _("Accessibility"));
super._init(0.5, _("Accessibility"));
this._hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' });
this._hbox.add_child(new St.Icon({ style_class: 'system-status-icon',

View File

@@ -34,7 +34,7 @@ const DWELL_CLICK_MODES = {
var DwellClickIndicator = GObject.registerClass(
class DwellClickIndicator extends PanelMenu.Button {
_init() {
super._init(0.0, _("Dwell Click"));
super._init(0.5, _("Dwell Click"));
this._hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' });
this._icon = new St.Icon({ style_class: 'system-status-icon',

View File

@@ -810,7 +810,7 @@ class InputSourceIndicatorContainer extends St.Widget {
var InputSourceIndicator = GObject.registerClass(
class InputSourceIndicator extends PanelMenu.Button {
_init() {
super._init(0.0, _("Keyboard"));
super._init(0.5, _("Keyboard"));
this.connect('destroy', this._onDestroy.bind(this));

View File

@@ -69,9 +69,12 @@ function ssidToLabel(ssid) {
function ensureActiveConnectionProps(active, client) {
if (!active._primaryDevice) {
// This list is guaranteed to have only one device in it.
let device = active.get_devices()[0]._delegate;
active._primaryDevice = device;
let devices = active.get_devices();
if (devices.length > 0) {
// This list is guaranteed to have at most one device in it.
let device = devices[0]._delegate;
active._primaryDevice = device;
}
}
}

View File

@@ -1060,35 +1060,35 @@ var WindowManager = class {
false, -1, 1);
let allowedModes = Shell.ActionMode.NORMAL;
let gesture = new WorkspaceSwitchAction(allowedModes);
gesture.connect('motion', this._switchWorkspaceMotion.bind(this));
gesture.connect('activated', this._actionSwitchWorkspace.bind(this));
gesture.connect('cancel', this._switchWorkspaceCancel.bind(this));
global.stage.add_action(gesture);
let workspaceSwitchAction = new WorkspaceSwitchAction(allowedModes);
workspaceSwitchAction.connect('motion', this._switchWorkspaceMotion.bind(this));
workspaceSwitchAction.connect('activated', this._actionSwitchWorkspace.bind(this));
workspaceSwitchAction.connect('cancel', this._switchWorkspaceCancel.bind(this));
global.stage.add_action(workspaceSwitchAction);
// This is not a normal Clutter.GestureAction, doesn't need add_action()
gesture = new TouchpadWorkspaceSwitchAction(global.stage, allowedModes);
gesture.connect('motion', this._switchWorkspaceMotion.bind(this));
gesture.connect('activated', this._actionSwitchWorkspace.bind(this));
gesture.connect('cancel', this._switchWorkspaceCancel.bind(this));
let touchpadSwitchAction = new TouchpadWorkspaceSwitchAction(global.stage, allowedModes);
touchpadSwitchAction.connect('motion', this._switchWorkspaceMotion.bind(this));
touchpadSwitchAction.connect('activated', this._actionSwitchWorkspace.bind(this));
touchpadSwitchAction.connect('cancel', this._switchWorkspaceCancel.bind(this));
gesture = new AppSwitchAction();
gesture.connect('activated', this._switchApp.bind(this));
global.stage.add_action(gesture);
let appSwitchAction = new AppSwitchAction();
appSwitchAction.connect('activated', this._switchApp.bind(this));
global.stage.add_action(appSwitchAction);
let mode = Shell.ActionMode.ALL & ~Shell.ActionMode.LOCK_SCREEN;
gesture = new EdgeDragAction.EdgeDragAction(St.Side.BOTTOM, mode);
gesture.connect('activated', () => {
let bottomDragAction = new EdgeDragAction.EdgeDragAction(St.Side.BOTTOM, mode);
bottomDragAction.connect('activated', () => {
Main.keyboard.show(Main.layoutManager.bottomIndex);
});
Main.layoutManager.connect('keyboard-visible-changed', (manager, visible) => {
gesture.cancel();
gesture.set_enabled(!visible);
bottomDragAction.cancel();
bottomDragAction.set_enabled(!visible);
});
global.stage.add_action(gesture);
global.stage.add_action(bottomDragAction);
gesture = new EdgeDragAction.EdgeDragAction(St.Side.TOP, mode);
gesture.connect('activated', () => {
let topDragAction = new EdgeDragAction.EdgeDragAction(St.Side.TOP, mode);
topDragAction.connect('activated', () => {
let currentWindow = global.display.focus_window;
if (currentWindow)
currentWindow.unmake_fullscreen();
@@ -1096,13 +1096,13 @@ var WindowManager = class {
let updateUnfullscreenGesture = () => {
let currentWindow = global.display.focus_window;
gesture.enabled = currentWindow && currentWindow.is_fullscreen();
topDragAction.enabled = currentWindow && currentWindow.is_fullscreen();
}
global.display.connect('notify::focus-window', updateUnfullscreenGesture);
global.display.connect('in-fullscreen-changed', updateUnfullscreenGesture);
global.stage.add_action(gesture);
global.stage.add_action(topDragAction);
}
_showPadOsd(display, device, settings, imagePath, editionMode, monitorIndex) {

View File

@@ -1,5 +1,5 @@
project('gnome-shell', 'c',
version: '3.33.2',
version: '3.33.3',
meson_version: '>= 0.47.0',
license: 'GPLv2+'
)
@@ -20,10 +20,10 @@ gcr_req = '>= 3.7.5'
gdesktop_req = '>= 3.7.90'
gio_req = '>= 2.56.0'
gi_req = '>= 1.49.1'
gjs_req = '>= 1.57.2'
gjs_req = '>= 1.57.3'
gtk_req = '>= 3.15.0'
json_glib_req = '>= 0.13.2'
mutter_req = '>= 3.33.2'
mutter_req = '>= 3.33.3'
polkit_req = '>= 0.100'
schemas_req = '>= 3.27.90'
startup_req = '>= 0.11'

1031
po/ca.po

File diff suppressed because it is too large Load Diff

371
po/hr.po
View File

@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
"POT-Creation-Date: 2019-03-24 17:37+0000\n"
"PO-Revision-Date: 2019-03-26 12:33+0100\n"
"POT-Creation-Date: 2019-06-15 10:38+0000\n"
"PO-Revision-Date: 2019-06-22 01:55+0200\n"
"Last-Translator: gogo <trebelnik2@gmail.com>\n"
"Language-Team: Croatian <hr@li.org>\n"
"Language: hr\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 2.0.6\n"
"X-Generator: Poedit 2.2.1\n"
#: data/50-gnome-shell-system.xml:6
msgid "System"
@@ -418,10 +418,11 @@ msgstr ""
msgid "Browse in Software"
msgstr "Pregledaj u Softveru"
#: js/gdm/authPrompt.js:140 js/ui/audioDeviceSelection.js:55
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:136
#: js/ui/endSessionDialog.js:430 js/ui/extensionDownloader.js:188
#: js/ui/shellMountOperation.js:325 js/ui/status/network.js:888
#: js/gdm/authPrompt.js:140 js/ui/audioDeviceSelection.js:52
#: js/ui/components/networkAgent.js:118 js/ui/components/polkitAgent.js:138
#: js/ui/endSessionDialog.js:431 js/ui/extensionDownloader.js:188
#: js/ui/shellMountOperation.js:404 js/ui/shellMountOperation.js:413
#: js/ui/status/network.js:894
msgid "Cancel"
msgstr "Odustani"
@@ -429,7 +430,7 @@ msgstr "Odustani"
msgid "Next"
msgstr "Sljedeće"
#: js/gdm/authPrompt.js:198 js/ui/shellMountOperation.js:329
#: js/gdm/authPrompt.js:198 js/ui/shellMountOperation.js:408
#: js/ui/unlockDialog.js:41
msgid "Unlock"
msgstr "Otključaj"
@@ -460,8 +461,8 @@ msgstr "(npr., korisnik ili %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)
#: js/gdm/loginDialog.js:889 js/ui/components/networkAgent.js:243
#: js/ui/components/networkAgent.js:263 js/ui/components/networkAgent.js:281
#: js/gdm/loginDialog.js:889 js/ui/components/networkAgent.js:244
#: js/ui/components/networkAgent.js:264 js/ui/components/networkAgent.js:282
msgid "Username: "
msgstr "Korisničko ime: "
@@ -512,8 +513,8 @@ msgstr "Odjava"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:105
msgid "logout;sign off"
msgstr "odjava:odjavljivanje"
msgid "logout;log out;sign off"
msgstr "odjava;odjavljivanje"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:109
@@ -705,11 +706,11 @@ msgstr ""
#. No support for non-modal system dialogs, so ignore the option
#. let modal = options['modal'] || true;
#: js/ui/accessDialog.js:37 js/ui/status/location.js:360
#: js/ui/accessDialog.js:38 js/ui/status/location.js:362
msgid "Deny Access"
msgstr "Zabrani pristup"
#: js/ui/accessDialog.js:38 js/ui/status/location.js:363
#: js/ui/accessDialog.js:39 js/ui/status/location.js:365
msgid "Grant Access"
msgstr "Dopusti pristup"
@@ -725,53 +726,58 @@ msgstr "Najčešće"
msgid "All"
msgstr "Sve"
#: js/ui/appDisplay.js:1737 js/ui/panel.js:83
#. Translators: This is the heading of a list of open windows
#: js/ui/appDisplay.js:1713 js/ui/panel.js:79
msgid "Open Windows"
msgstr "Otvaranje prozora"
#: js/ui/appDisplay.js:1732 js/ui/panel.js:86
msgid "New Window"
msgstr "Novi prozor"
#: js/ui/appDisplay.js:1751
#: js/ui/appDisplay.js:1746
msgid "Launch using Dedicated Graphics Card"
msgstr "Pokreni pomoću namjenske grafičke kartice"
#: js/ui/appDisplay.js:1778 js/ui/dash.js:239
#: js/ui/appDisplay.js:1773 js/ui/dash.js:239
msgid "Remove from Favorites"
msgstr "Ukloni iz omiljenih"
#: js/ui/appDisplay.js:1784
#: js/ui/appDisplay.js:1779
msgid "Add to Favorites"
msgstr "Dodaj u omiljene"
#: js/ui/appDisplay.js:1794 js/ui/panel.js:94
#: js/ui/appDisplay.js:1789 js/ui/panel.js:97
msgid "Show Details"
msgstr "Prikaži pojedinosti"
#: js/ui/appFavorites.js:141
#: js/ui/appFavorites.js:149
#, javascript-format
msgid "%s has been added to your favorites."
msgstr "%s je dodan u omiljene."
#: js/ui/appFavorites.js:175
#: js/ui/appFavorites.js:183
#, javascript-format
msgid "%s has been removed from your favorites."
msgstr "%s je uklonjen iz omiljenih."
#: js/ui/audioDeviceSelection.js:42
#: js/ui/audioDeviceSelection.js:39
msgid "Select Audio Device"
msgstr "Odaberi zvučni uređaj"
#: js/ui/audioDeviceSelection.js:53
#: js/ui/audioDeviceSelection.js:50
msgid "Sound Settings"
msgstr "Postavke zvuka"
#: js/ui/audioDeviceSelection.js:62
#: js/ui/audioDeviceSelection.js:59
msgid "Headphones"
msgstr "Slušalice"
#: js/ui/audioDeviceSelection.js:64
#: js/ui/audioDeviceSelection.js:61
msgid "Headset"
msgstr "Slušalice s mikrofonom"
#: js/ui/audioDeviceSelection.js:66 js/ui/status/volume.js:247
#: js/ui/audioDeviceSelection.js:63 js/ui/status/volume.js:247
msgid "Microphone"
msgstr "Mikrofon"
@@ -932,67 +938,75 @@ msgstr "Prisilno zatvori"
msgid "Wait"
msgstr "Čekaj"
#: js/ui/components/automountManager.js:86
#: js/ui/components/automountManager.js:87
msgid "External drive connected"
msgstr "Vanjski uređaj povezan"
#: js/ui/components/automountManager.js:98
#: js/ui/components/automountManager.js:99
msgid "External drive disconnected"
msgstr "Vanjski uređaj odspojen"
#: js/ui/components/automountManager.js:211
msgid "Unable to unlock volume"
msgstr "Nemoguće otključavanje uređaja"
#: js/ui/components/automountManager.js:212
msgid "The installed udisks version does not support the PIM setting"
msgstr "Instalirana udisks inačica ne podržava PIM postavku"
#: js/ui/components/autorunManager.js:334
#, javascript-format
msgid "Open with %s"
msgstr "Otvori s(a) %s"
#: js/ui/components/keyring.js:77 js/ui/components/polkitAgent.js:255
#: js/ui/components/keyring.js:66 js/ui/components/polkitAgent.js:257
msgid "Password:"
msgstr "Lozinka:"
#: js/ui/components/keyring.js:108
#: js/ui/components/keyring.js:97
msgid "Type again:"
msgstr "Pokušaj ponovno:"
#: js/ui/components/networkAgent.js:102
#: js/ui/components/networkAgent.js:103
msgid ""
"Alternatively you can connect by pushing the “WPS” button on your router."
msgstr ""
"Alternativno se možete povezati pritiskom na “WPS” tipku vašeg usmjernika."
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:219
#: js/ui/status/network.js:309 js/ui/status/network.js:891
#: js/ui/components/networkAgent.js:113 js/ui/status/network.js:219
#: js/ui/status/network.js:310 js/ui/status/network.js:897
msgid "Connect"
msgstr "Povezivanje"
#. Cisco LEAP
#: js/ui/components/networkAgent.js:211 js/ui/components/networkAgent.js:223
#: js/ui/components/networkAgent.js:246 js/ui/components/networkAgent.js:265
#: js/ui/components/networkAgent.js:285 js/ui/components/networkAgent.js:295
#: js/ui/components/networkAgent.js:212 js/ui/components/networkAgent.js:224
#: js/ui/components/networkAgent.js:247 js/ui/components/networkAgent.js:266
#: js/ui/components/networkAgent.js:286 js/ui/components/networkAgent.js:296
msgid "Password: "
msgstr "Lozinka: "
#. static WEP
#: js/ui/components/networkAgent.js:216
#: js/ui/components/networkAgent.js:217
msgid "Key: "
msgstr "Ključ: "
#: js/ui/components/networkAgent.js:249 js/ui/components/networkAgent.js:271
#: js/ui/components/networkAgent.js:250 js/ui/components/networkAgent.js:272
msgid "Private key password: "
msgstr "Lozinka privatnog ključa: "
#: js/ui/components/networkAgent.js:269
#: js/ui/components/networkAgent.js:270
msgid "Identity: "
msgstr "Identitet: "
#: js/ui/components/networkAgent.js:283
#: js/ui/components/networkAgent.js:284
msgid "Service: "
msgstr "Usluga: "
#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:685
#: js/ui/components/networkAgent.js:313 js/ui/components/networkAgent.js:686
msgid "Authentication required by wireless network"
msgstr "Potrebna je ovjera za bežičnu mrežu"
#: js/ui/components/networkAgent.js:313 js/ui/components/networkAgent.js:686
#: js/ui/components/networkAgent.js:314 js/ui/components/networkAgent.js:687
#, javascript-format
msgid ""
"Passwords or encryption keys are required to access the wireless network "
@@ -1000,53 +1014,53 @@ msgid ""
msgstr ""
"Lozinka ili ključevi šifriranja su potrebni za pristup bežičnoj mreži “%s”."
#: js/ui/components/networkAgent.js:317 js/ui/components/networkAgent.js:689
#: js/ui/components/networkAgent.js:318 js/ui/components/networkAgent.js:690
msgid "Wired 802.1X authentication"
msgstr "Wired 802.1X ovjera"
#: js/ui/components/networkAgent.js:319
#: js/ui/components/networkAgent.js:320
msgid "Network name: "
msgstr "Naziv mreže: "
#: js/ui/components/networkAgent.js:324 js/ui/components/networkAgent.js:693
#: js/ui/components/networkAgent.js:325 js/ui/components/networkAgent.js:694
msgid "DSL authentication"
msgstr "DSL ovjera"
#: js/ui/components/networkAgent.js:331 js/ui/components/networkAgent.js:699
#: js/ui/components/networkAgent.js:332 js/ui/components/networkAgent.js:700
msgid "PIN code required"
msgstr "PIN kôd je potreban"
#: js/ui/components/networkAgent.js:332 js/ui/components/networkAgent.js:700
#: js/ui/components/networkAgent.js:333 js/ui/components/networkAgent.js:701
msgid "PIN code is needed for the mobile broadband device"
msgstr "PIN kôd je potreban za uređaj mobilnog interneta"
#: js/ui/components/networkAgent.js:333
#: js/ui/components/networkAgent.js:334
msgid "PIN: "
msgstr "PIN: "
#: js/ui/components/networkAgent.js:340 js/ui/components/networkAgent.js:706
#: js/ui/components/networkAgent.js:341 js/ui/components/networkAgent.js:707
msgid "Mobile broadband network password"
msgstr "Lozinka mreže mobilnog interneta"
#: js/ui/components/networkAgent.js:341 js/ui/components/networkAgent.js:690
#: js/ui/components/networkAgent.js:694 js/ui/components/networkAgent.js:707
#: js/ui/components/networkAgent.js:342 js/ui/components/networkAgent.js:691
#: js/ui/components/networkAgent.js:695 js/ui/components/networkAgent.js:708
#, javascript-format
msgid "A password is required to connect to “%s”."
msgstr "Potrebna je lozinka za povezivanje s “%s”."
#: js/ui/components/networkAgent.js:674 js/ui/status/network.js:1664
#: js/ui/components/networkAgent.js:675 js/ui/status/network.js:1670
msgid "Network Manager"
msgstr "Mrežni upravitelj"
#: js/ui/components/polkitAgent.js:34
#: js/ui/components/polkitAgent.js:36
msgid "Authentication Required"
msgstr "Potrebna je ovjera"
#: js/ui/components/polkitAgent.js:62
#: js/ui/components/polkitAgent.js:64
msgid "Administrator"
msgstr "Administrator"
#: js/ui/components/polkitAgent.js:139
#: js/ui/components/polkitAgent.js:141
msgid "Authenticate"
msgstr "Ovjeri"
@@ -1054,7 +1068,7 @@ msgstr "Ovjeri"
#. * requested authentication was not gained; this can happen
#. * because of an authentication error (like invalid password),
#. * for instance.
#: js/ui/components/polkitAgent.js:241 js/ui/shellMountOperation.js:309
#: js/ui/components/polkitAgent.js:243 js/ui/shellMountOperation.js:389
msgid "Sorry, that didnt work. Please try again."
msgstr "Nažalost, to ne radi. Pokušajte ponovno."
@@ -1104,23 +1118,23 @@ msgstr "Dodaj satove iz svijeta…"
msgid "World Clocks"
msgstr "Svjetski satovi"
#: js/ui/dateMenu.js:222
#: js/ui/dateMenu.js:228
msgid "Weather"
msgstr "Vrijeme"
#: js/ui/dateMenu.js:305
#: js/ui/dateMenu.js:311
msgid "Select a location…"
msgstr "Odaberi lokaciju…"
#: js/ui/dateMenu.js:313
#: js/ui/dateMenu.js:319
msgid "Loading…"
msgstr "Pretraživanje…"
#: js/ui/dateMenu.js:323
#: js/ui/dateMenu.js:329
msgid "Go online for weather information"
msgstr "Posjetite za opširnije vremenske informacije"
#: js/ui/dateMenu.js:325
#: js/ui/dateMenu.js:331
msgid "Weather information is currently unavailable"
msgstr "Vremenske informacije su trenutno nedostupne"
@@ -1255,28 +1269,28 @@ msgstr ""
"može potrajati duže vrijeme: pobrinite se da ste spremili svoj rad i "
"računalo je priključeno na izvor napajanja."
#: js/ui/endSessionDialog.js:309
#: js/ui/endSessionDialog.js:310
msgid "Running on battery power: please plug in before installing updates."
msgstr ""
"Koristi se energija baterije: računalo priključite na izvor napajanja prije "
"instalacije nadopuna."
#: js/ui/endSessionDialog.js:326
#: js/ui/endSessionDialog.js:327
msgid "Some applications are busy or have unsaved work."
msgstr "Neke aplikacije su zauzete ili imaju nespremljeni rad."
#: js/ui/endSessionDialog.js:333
#: js/ui/endSessionDialog.js:334
msgid "Other users are logged in."
msgstr "Drugi korisnici su prijavljeni."
#. Translators: Remote here refers to a remote session, like a ssh login
#: js/ui/endSessionDialog.js:614
#: js/ui/endSessionDialog.js:615
#, javascript-format
msgid "%s (remote)"
msgstr "%s (udaljeno)"
#. Translators: Console here refers to a tty like a VT console
#: js/ui/endSessionDialog.js:617
#: js/ui/endSessionDialog.js:618
#, javascript-format
msgid "%s (console)"
msgstr "%s (konzola)"
@@ -1361,13 +1375,13 @@ msgid "Leave On"
msgstr "Ostavi"
#: js/ui/kbdA11yDialog.js:57 js/ui/status/bluetooth.js:133
#: js/ui/status/network.js:1263
#: js/ui/status/network.js:1269
msgid "Turn On"
msgstr "Uključi"
#: js/ui/kbdA11yDialog.js:65 js/ui/status/bluetooth.js:133
#: js/ui/status/network.js:128 js/ui/status/network.js:310
#: js/ui/status/network.js:1263 js/ui/status/network.js:1375
#: js/ui/status/network.js:128 js/ui/status/network.js:311
#: js/ui/status/network.js:1269 js/ui/status/network.js:1381
#: js/ui/status/nightLight.js:39 js/ui/status/rfkill.js:79
#: js/ui/status/rfkill.js:106
msgid "Turn Off"
@@ -1429,7 +1443,7 @@ msgstr "Pogledaj izvor"
msgid "Web Page"
msgstr "Web stranica"
#: js/ui/messageTray.js:1480
#: js/ui/messageTray.js:1479
msgid "System Information"
msgstr "Informacije sustava"
@@ -1507,47 +1521,38 @@ msgstr "Pritisni Esc za prekidanje"
msgid "Press any key to exit"
msgstr "Pritisni bilo koju tipku za prekidanje"
#: js/ui/panel.js:108
#: js/ui/panel.js:113
msgid "Quit"
msgstr "Zatvori"
#. Translators: If there is no suitable word for "Activities"
#. in your language, you can use the word for "Overview".
#: js/ui/panel.js:471
#: js/ui/panel.js:468
msgid "Activities"
msgstr "Aktivnosti"
#: js/ui/panel.js:746
#: js/ui/panel.js:743
msgctxt "System menu in the top bar"
msgid "System"
msgstr "Sustav"
#: js/ui/panel.js:867
#: js/ui/panel.js:862
msgid "Top Bar"
msgstr "Gornja traka"
#. Translators: this MUST be either "toggle-switch-us"
#. (for toggle switches containing the English words
#. "ON" and "OFF") or "toggle-switch-intl" (for toggle
#. switches containing "◯" and "|"). Other values will
#. simply result in invisible toggle switches.
#: js/ui/popupMenu.js:285
msgid "toggle-switch-us"
msgstr "toggle-switch-us"
#: js/ui/runDialog.js:64
#: js/ui/runDialog.js:65
msgid "Enter a Command"
msgstr "Upiši naredbu"
#: js/ui/runDialog.js:104 js/ui/windowMenu.js:166
#: js/ui/runDialog.js:105 js/ui/windowMenu.js:166
msgid "Close"
msgstr "Zatvori"
#: js/ui/runDialog.js:266
#: js/ui/runDialog.js:267
msgid "Restart is not available on Wayland"
msgstr "Ponovno pokretanje nije dostupno na Waylandu"
#: js/ui/runDialog.js:271
#: js/ui/runDialog.js:272
msgid "Restarting…"
msgstr "Ponovno pokretanje…"
@@ -1594,17 +1599,17 @@ msgstr "Nemoguće zaključavanje"
#: js/ui/screenShield.js:827 js/ui/screenShield.js:1300
msgid "Lock was blocked by an application"
msgstr "Zaključavanje je blokirala apliakcija"
msgstr "Zaključavanje je blokirala aplikacija"
#: js/ui/search.js:635
#: js/ui/search.js:638
msgid "Searching…"
msgstr "Pretraživanje…"
#: js/ui/search.js:637
#: js/ui/search.js:640
msgid "No results."
msgstr "Nema rezultata."
#: js/ui/search.js:761
#: js/ui/search.js:764
#, javascript-format
msgid "%d more"
msgid_plural "%d more"
@@ -1628,14 +1633,61 @@ msgstr "Prikaži tekst"
msgid "Hide Text"
msgstr "Sakrij tekst"
#: js/ui/shellMountOperation.js:296
#: js/ui/shellMountOperation.js:318
msgid "Hidden Volume"
msgstr "Skriveni uređaj"
#: js/ui/shellMountOperation.js:321
msgid "Windows System Volume"
msgstr "Uređaj Windows sustava"
#: js/ui/shellMountOperation.js:324
msgid "Uses Keyfiles"
msgstr "Koristi datoteke ključa"
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:330
#, javascript-format
msgid ""
"To unlock a volume that uses keyfiles, use the <i>%s</i> utility instead."
msgstr ""
"Za otključavanje uređaja koji koristi datoteke ključa, koristite <i>%s</i> "
"pomagalo."
#: js/ui/shellMountOperation.js:337
msgid "PIM Number"
msgstr "PIM broj"
#: js/ui/shellMountOperation.js:355
msgid "The PIM must be a number or empty."
msgstr "PIM mora biti broj ili prazan."
#: js/ui/shellMountOperation.js:366
msgid "Password"
msgstr "Lozinka"
#: js/ui/shellMountOperation.js:317
#: js/ui/shellMountOperation.js:396
msgid "Remember Password"
msgstr "Zapamti lozinku"
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:418
#, javascript-format
msgid "Open %s"
msgstr "Otvori %s"
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:490
#, javascript-format
msgid "Unable to start %s"
msgstr "Nemoguće pokretanje %s"
#. Translators: %s is the Disks application
#: js/ui/shellMountOperation.js:492
#, javascript-format
msgid "Couldnt find the %s application"
msgstr "Nemoguć pronalazak %s aplikacije"
#: js/ui/status/accessibility.js:35
msgid "Accessibility"
msgstr "Pristupačnost"
@@ -1672,11 +1724,11 @@ msgstr "Odbijanje tipki"
msgid "Mouse Keys"
msgstr "Tipke miša"
#: js/ui/status/accessibility.js:151
#: js/ui/status/accessibility.js:135
msgid "High Contrast"
msgstr "Visok kontrast"
#: js/ui/status/accessibility.js:182
#: js/ui/status/accessibility.js:177
msgid "Large Text"
msgstr "Velik tekst"
@@ -1684,7 +1736,7 @@ msgstr "Velik tekst"
msgid "Bluetooth"
msgstr "Bluetooth"
#: js/ui/status/bluetooth.js:47 js/ui/status/network.js:585
#: js/ui/status/bluetooth.js:47 js/ui/status/network.js:586
msgid "Bluetooth Settings"
msgstr "Bluetooth postavke"
@@ -1709,11 +1761,31 @@ msgstr "Uključeno"
msgid "Brightness"
msgstr "Svjetlina"
#: js/ui/status/keyboard.js:812
#: js/ui/status/dwellClick.js:13
msgid "Single Click"
msgstr "Jednostruki klik"
#: js/ui/status/dwellClick.js:18
msgid "Double Click"
msgstr "Dvostruki klik"
#: js/ui/status/dwellClick.js:23
msgid "Drag"
msgstr "Povlačenje"
#: js/ui/status/dwellClick.js:28
msgid "Secondary Click"
msgstr "Pomoćni klik"
#: js/ui/status/dwellClick.js:37
msgid "Dwell Click"
msgstr "Zadržani klik"
#: js/ui/status/keyboard.js:813
msgid "Keyboard"
msgstr "Tipkovnica"
#: js/ui/status/keyboard.js:834
#: js/ui/status/keyboard.js:835
msgid "Show Keyboard Layout"
msgstr "Prikaži raspored tipkovnice"
@@ -1742,12 +1814,12 @@ msgid "Enable"
msgstr "Omogući"
#. Translators: %s is an application name
#: js/ui/status/location.js:353
#: js/ui/status/location.js:355
#, javascript-format
msgid "Give %s access to your location?"
msgstr "Dopustite %s pristup vašoj lokaciji?"
#: js/ui/status/location.js:354
#: js/ui/status/location.js:356
msgid "Location access can be changed at any time from the privacy settings."
msgstr ""
"Pristup lokaciji može se promijeniti u svako vrijeme iz postavka privatnosti."
@@ -1757,13 +1829,13 @@ msgid "<unknown>"
msgstr "<nepoznato>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:416 js/ui/status/network.js:1292
#: js/ui/status/network.js:417 js/ui/status/network.js:1298
#, javascript-format
msgid "%s Off"
msgstr "%s isključena"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:419
#: js/ui/status/network.js:420
#, javascript-format
msgid "%s Connected"
msgstr "%s povezana"
@@ -1771,164 +1843,164 @@ msgstr "%s povezana"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier
#: js/ui/status/network.js:424
#: js/ui/status/network.js:425
#, javascript-format
msgid "%s Unmanaged"
msgstr "%s neupravljana"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:427
#: js/ui/status/network.js:428
#, javascript-format
msgid "%s Disconnecting"
msgstr "%s prekidanje povezivanja"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:434 js/ui/status/network.js:1284
#: js/ui/status/network.js:435 js/ui/status/network.js:1290
#, javascript-format
msgid "%s Connecting"
msgstr "%s povezivanje"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: js/ui/status/network.js:437
#: js/ui/status/network.js:438
#, javascript-format
msgid "%s Requires Authentication"
msgstr "%s zahtijeva ovjeru"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier
#: js/ui/status/network.js:445
#: js/ui/status/network.js:446
#, javascript-format
msgid "Firmware Missing For %s"
msgstr "Nedostaje firmver za %s"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: js/ui/status/network.js:449
#: js/ui/status/network.js:450
#, javascript-format
msgid "%s Unavailable"
msgstr "%s nedostupna"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:452
#: js/ui/status/network.js:453
#, javascript-format
msgid "%s Connection Failed"
msgstr "%s neuspješno povezivanje"
#: js/ui/status/network.js:464
#: js/ui/status/network.js:465
msgid "Wired Settings"
msgstr "Postavke žične mreže"
#: js/ui/status/network.js:506
#: js/ui/status/network.js:507
msgid "Mobile Broadband Settings"
msgstr "Mobilni internet"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:553 js/ui/status/network.js:1289
#: js/ui/status/network.js:554 js/ui/status/network.js:1295
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s hardverski onemogućena"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: js/ui/status/network.js:557
#: js/ui/status/network.js:558
#, javascript-format
msgid "%s Disabled"
msgstr "%s onemogućeno"
#: js/ui/status/network.js:597
#: js/ui/status/network.js:598
msgid "Connect to Internet"
msgstr "Povežite se na internet"
#: js/ui/status/network.js:786
#: js/ui/status/network.js:792
msgid "Airplane Mode is On"
msgstr "Zrakoplovni način rada je omogućen"
#: js/ui/status/network.js:787
#: js/ui/status/network.js:793
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "Bežična mreža je onemogućena u zrakoplovnom načinu rada."
#: js/ui/status/network.js:788
#: js/ui/status/network.js:794
msgid "Turn Off Airplane Mode"
msgstr "Isključi zrakoplovni način rada"
#: js/ui/status/network.js:797
#: js/ui/status/network.js:803
msgid "Wi-Fi is Off"
msgstr "Bežična mreža isključena"
#: js/ui/status/network.js:798
#: js/ui/status/network.js:804
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "Bežična mreža se mora uključiti kako bi se povezala s internetom."
#: js/ui/status/network.js:799
#: js/ui/status/network.js:805
msgid "Turn On Wi-Fi"
msgstr "Uključi bežičnu mrežu"
#: js/ui/status/network.js:824
#: js/ui/status/network.js:830
msgid "Wi-Fi Networks"
msgstr "Bežične mreže"
#: js/ui/status/network.js:826
#: js/ui/status/network.js:832
msgid "Select a network"
msgstr "Odaberi mrežu"
#: js/ui/status/network.js:855
#: js/ui/status/network.js:861
msgid "No Networks"
msgstr "Nema mreža"
#: js/ui/status/network.js:876 js/ui/status/rfkill.js:104
#: js/ui/status/network.js:882 js/ui/status/rfkill.js:104
msgid "Use hardware switch to turn off"
msgstr "Koristi hardverski prekidač za isključivanje"
#: js/ui/status/network.js:1152
#: js/ui/status/network.js:1158
msgid "Select Network"
msgstr "Odaberi mrežu"
#: js/ui/status/network.js:1158
#: js/ui/status/network.js:1164
msgid "Wi-Fi Settings"
msgstr "Postavke bežične mreže"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1280
#: js/ui/status/network.js:1286
#, javascript-format
msgid "%s Hotspot Active"
msgstr "%s pristupna točka aktivna"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1295
#: js/ui/status/network.js:1301
#, javascript-format
msgid "%s Not Connected"
msgstr "%s nije povezana"
#: js/ui/status/network.js:1392
#: js/ui/status/network.js:1398
msgid "connecting…"
msgstr "povezivanje…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1395
#: js/ui/status/network.js:1401
msgid "authentication required"
msgstr "potrebna je ovjera"
#: js/ui/status/network.js:1397
#: js/ui/status/network.js:1403
msgid "connection failed"
msgstr "neuspješno povezivanje"
#: js/ui/status/network.js:1447
#: js/ui/status/network.js:1453
msgid "VPN Settings"
msgstr "VPN postavke"
#: js/ui/status/network.js:1464
#: js/ui/status/network.js:1470
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1474
#: js/ui/status/network.js:1480
msgid "VPN Off"
msgstr "VPN isključen"
#: js/ui/status/network.js:1535 js/ui/status/rfkill.js:82
#: js/ui/status/network.js:1541 js/ui/status/rfkill.js:82
msgid "Network Settings"
msgstr "Mrežne postavke"
#: js/ui/status/network.js:1564
#: js/ui/status/network.js:1570
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
@@ -1936,7 +2008,7 @@ msgstr[0] "%s žično povezivanje"
msgstr[1] "%s žična povezivanja"
msgstr[2] "%s žičnih povezivanja"
#: js/ui/status/network.js:1568
#: js/ui/status/network.js:1574
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
@@ -1944,7 +2016,7 @@ msgstr[0] "%s bežično povezivanje"
msgstr[1] "%s bežična povezivanja"
msgstr[2] "%s bežičnih povezivanja"
#: js/ui/status/network.js:1572
#: js/ui/status/network.js:1578
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
@@ -1952,11 +2024,11 @@ msgstr[0] "%s modemsko povezivanje"
msgstr[1] "%s modemska povezivanja"
msgstr[2] "%s modemskih povezivanja"
#: js/ui/status/network.js:1701
#: js/ui/status/network.js:1711
msgid "Connection failed"
msgstr "Neuspješno povezivanje"
#: js/ui/status/network.js:1702
#: js/ui/status/network.js:1712
msgid "Activation of network connection failed"
msgstr "Aktiviranje mrežnog povezivanja je neuspjelo"
@@ -2137,22 +2209,22 @@ msgstr "Pretraži"
msgid "“%s” is ready"
msgstr "“%s” je spreman"
#: js/ui/windowManager.js:53
#: js/ui/windowManager.js:54
msgid "Do you want to keep these display settings?"
msgstr "Želite li zadržati ove postavke zaslona?"
#. Translators: this and the following message should be limited in lenght,
#. Translators: this and the following message should be limited in length,
#. to avoid ellipsizing the labels.
#.
#: js/ui/windowManager.js:65
#: js/ui/windowManager.js:66
msgid "Revert Settings"
msgstr "Vrati postavke"
#: js/ui/windowManager.js:68
#: js/ui/windowManager.js:69
msgid "Keep Changes"
msgstr "Zadrži promjene"
#: js/ui/windowManager.js:86
#: js/ui/windowManager.js:87
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -2162,7 +2234,7 @@ msgstr[2] "Promjene postavka će se vratiti za %d sekundi"
#. 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:662
#: js/ui/windowManager.js:678
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2261,11 +2333,11 @@ msgstr "Nepoznat"
msgid "Failed to launch “%s”"
msgstr "Neuspješno pokretanje “%s”"
#: src/shell-keyring-prompt.c:730
#: src/shell-keyring-prompt.c:731
msgid "Passwords do not match."
msgstr "Lozinke se ne podudaraju."
#: src/shell-keyring-prompt.c:738
#: src/shell-keyring-prompt.c:739
msgid "Password cannot be blank"
msgstr "Lozinka ne može biti prazna"
@@ -2297,6 +2369,9 @@ msgstr[2] "%u ulaza"
msgid "System Sounds"
msgstr "Zvukovi sustava"
#~ msgid "toggle-switch-us"
#~ msgstr "toggle-switch-us"
#~ msgid "network-workgroup"
#~ msgstr "network-workgroup"

View File

@@ -198,6 +198,62 @@ shell_fonts_init (void)
cogl_pango_font_map_set_use_mipmapping (fontmap, FALSE);
}
static void
shell_profiler_init (void)
{
ShellGlobal *global;
GjsProfiler *profiler;
GjsContext *context;
const char *enabled;
const char *fd_str;
int fd = -1;
/* Sysprof uses the "GJS_TRACE_FD=N" environment variable to connect GJS
* profiler data to the combined Sysprof capture. Since we are in control of
* the GjsContext, we need to proxy this FD across to the GJS profiler.
*/
fd_str = g_getenv ("GJS_TRACE_FD");
enabled = g_getenv ("GJS_ENABLE_PROFILER");
if (fd_str == NULL || enabled == NULL)
return;
global = shell_global_get ();
g_return_if_fail (global);
context = _shell_global_get_gjs_context (global);
g_return_if_fail (context);
profiler = gjs_context_get_profiler (context);
g_return_if_fail (profiler);
if (fd_str)
{
fd = atoi (fd_str);
if (fd > 2)
{
gjs_profiler_set_fd (profiler, fd);
gjs_profiler_start (profiler);
}
}
}
static void
shell_profiler_shutdown (void)
{
ShellGlobal *global;
GjsProfiler *profiler;
GjsContext *context;
global = shell_global_get ();
context = _shell_global_get_gjs_context (global);
profiler = gjs_context_get_profiler (context);
if (profiler)
gjs_profiler_stop (profiler);
}
static void
malloc_statistics_callback (ShellPerfLog *perf_log,
gpointer data)
@@ -496,7 +552,9 @@ main (int argc, char **argv)
dump_gjs_stack_on_signal (SIGSEGV);
}
shell_profiler_init ();
ecode = meta_run ();
shell_profiler_shutdown ();
g_debug ("Doing final cleanup");
_shell_global_destroy_gjs_context (shell_global_get ());

View File

@@ -362,7 +362,7 @@ _st_create_shadow_pipeline (StShadow *shadow_spec,
{
ClutterBackend *backend = clutter_get_default_backend ();
CoglContext *ctx = clutter_backend_get_cogl_context (backend);
CoglError *error = NULL;
GError *error = NULL;
static CoglPipeline *shadow_pipeline_template = NULL;
@@ -398,7 +398,7 @@ _st_create_shadow_pipeline (StShadow *shadow_spec,
if (error)
{
g_warning ("Failed to allocate texture: %s", error->message);
cogl_error_free (error);
g_error_free (error);
}
g_free (pixels_out);
@@ -466,7 +466,7 @@ _st_create_shadow_pipeline_from_actor (StShadow *shadow_spec,
CoglFramebuffer *fb;
CoglContext *ctx;
CoglColor clear_color;
CoglError *catch_error = NULL;
GError *catch_error = NULL;
float x, y;
ctx = clutter_backend_get_cogl_context (clutter_get_default_backend ());
@@ -480,7 +480,7 @@ _st_create_shadow_pipeline_from_actor (StShadow *shadow_spec,
if (!cogl_framebuffer_allocate (fb, &catch_error))
{
cogl_error_free (catch_error);
g_error_free (catch_error);
cogl_object_unref (offscreen);
cogl_object_unref (buffer);
return NULL;

View File

@@ -72,7 +72,7 @@ create_corner_material (StCornerSpec *corner)
{
ClutterBackend *backend = clutter_get_default_backend ();
CoglContext *ctx = clutter_backend_get_cogl_context (backend);
CoglError *error = NULL;
GError *error = NULL;
CoglTexture *texture;
cairo_t *cr;
cairo_surface_t *surface;
@@ -184,7 +184,7 @@ create_corner_material (StCornerSpec *corner)
if (error)
{
g_warning ("Failed to allocate texture: %s", error->message);
cogl_error_free (error);
g_error_free (error);
}
g_free (data);
@@ -1007,7 +1007,7 @@ st_theme_node_prerender_background (StThemeNode *node,
{
ClutterBackend *backend = clutter_get_default_backend ();
CoglContext *ctx = clutter_backend_get_cogl_context (backend);
CoglError *error = NULL;
GError *error = NULL;
StBorderImage *border_image;
CoglTexture *texture;
guint radius[4];
@@ -1344,7 +1344,7 @@ st_theme_node_prerender_background (StThemeNode *node,
if (error)
{
g_warning ("Failed to allocate texture: %s", error->message);
cogl_error_free (error);
g_error_free (error);
}
cairo_destroy (cr);
@@ -2288,7 +2288,7 @@ st_theme_node_prerender_shadow (StThemeNodePaintState *state)
int fb_width, fb_height;
CoglTexture *buffer;
CoglFramebuffer *offscreen = NULL;
CoglError *error = NULL;
GError *error = NULL;
ctx = clutter_backend_get_cogl_context (clutter_get_default_backend ());
@@ -2351,11 +2351,8 @@ st_theme_node_prerender_shadow (StThemeNodePaintState *state)
state->box_shadow_pipeline = _st_create_shadow_pipeline (st_theme_node_get_box_shadow (node),
buffer, state->resource_scale);
}
else
{
cogl_error_free (error);
}
g_clear_error (&error);
cogl_clear_object (&offscreen);
cogl_clear_object (&buffer);
}

View File

@@ -249,7 +249,7 @@ setup_framebuffers (StThemeNodeTransition *transition,
StThemeNodeTransitionPrivate *priv = transition->priv;
CoglContext *ctx;
guint width, height;
CoglError *catch_error = NULL;
GError *catch_error = NULL;
/* template material to avoid unnecessary shader compilation */
static CoglPipeline *material_template = NULL;
@@ -277,7 +277,7 @@ setup_framebuffers (StThemeNodeTransition *transition,
priv->old_offscreen = COGL_FRAMEBUFFER (cogl_offscreen_new_with_texture (priv->old_texture));
if (!cogl_framebuffer_allocate (priv->old_offscreen, &catch_error))
{
cogl_error_free (catch_error);
g_error_free (catch_error);
cogl_clear_object (&priv->old_offscreen);
return FALSE;
}
@@ -286,7 +286,7 @@ setup_framebuffers (StThemeNodeTransition *transition,
priv->new_offscreen = COGL_FRAMEBUFFER (cogl_offscreen_new_with_texture (priv->new_texture));
if (!cogl_framebuffer_allocate (priv->new_offscreen, &catch_error))
{
cogl_error_free (catch_error);
g_error_free (catch_error);
cogl_clear_object (&priv->new_offscreen);
return FALSE;
}