Compare commits

..

14 Commits

Author SHA1 Message Date
Florian Müllner
8c496fd1a6 Bump version to 3.15.3
To go along GNOME Shell 3.15.3
2014-12-19 15:17:35 +01:00
Florian Müllner
8b59c031d5 window-list: Do not hardcode overrides schema
Classic mode uses a different overrides schema, so make sure we use the
correct setting instead of hardcoding the usual org.gnome.shell.overrides
schema.

https://bugzilla.gnome.org/show_bug.cgi?id=737486
2014-12-19 15:15:44 +01:00
Sylvain Pasche
a3f352d0c3 window-list: Option to show the window list on all monitors
A new setting "show-on-all-monitors" (false by default) is available to
show window lists on all connected monitors.
The Extension object monitors conditions that require the list of
windows to be rebuilt. The WindowList and Button classes have a new
"perMonitor" property that indicates they should handle windows on
their own monitor only.

https://bugzilla.gnome.org/show_bug.cgi?id=737486
2014-12-19 15:15:44 +01:00
Sylvain Pasche
e80b790b78 window-list: Refactor {Window,App}Button shared code into BaseButton
BaseButton is a new class that shares the common logic of WindowButton
and AppButton. AppButton is passed to AppContextMenu so that it can reuse
code from the now public getWindowList() method.

https://bugzilla.gnome.org/show_bug.cgi?id=737486
2014-12-19 15:15:44 +01:00
Piotr Drąg
0dfc4e9fbc Updated POTFILES.in 2014-12-17 18:36:03 +01:00
Matthias Clasen
43c4e7fa2e Clean up classic session definition
The gnome-shell-classic desktop file just launches gnome-shell
without options these days, so we don't need a separate desktop file.

https://bugzilla.gnome.org/show_bug.cgi?id=741660
2014-12-17 10:59:51 -05:00
Inaki Larranaga Murgoitio
5688cea552 Updated Basque language 2014-12-17 16:35:08 +01:00
Baurzhan Muftakhidinov
6d2b588740 Updated Kazakh translation 2014-12-14 14:10:25 +00:00
Muhammet Kara
72dc3234a7 Updated Turkish translation 2014-12-04 09:07:20 +00:00
Balázs Úr
c8f9b23636 Updated Hungarian translation 2014-12-03 15:55:58 +00:00
Maxime Henrion
768bad6e1e Skip over XDG directories that cannot be found.
This fixes loading the places menu gnome-shell extension when the XDG
directories have not been configured.

https://bugzilla.gnome.org/show_bug.cgi?id=741033
2014-12-02 18:59:30 +01:00
Daniel Șerbănescu
bfe60bd2d9 Added Romanian Translation 2014-11-30 12:19:47 +01:00
Florian Müllner
5ba4e68f17 classic: Install high-contrast theme variant
The classic style is decidedly lower contrast than the default
style, so the high-contrast variant could prove really useful
here. However for now, just override the default icon style as
in the default session.

https://bugzilla.gnome.org/show_bug.cgi?id=740447
2014-11-29 18:13:58 +01:00
Florian Müllner
8c6644f1be Revert "user-theme: Temporarily work around a gnome-shell regression"
The issue has been fixed in gnome-shell master, so we can revert the
workaround.
2014-11-27 14:49:43 +00:00
18 changed files with 716 additions and 258 deletions

7
NEWS
View File

@@ -1,3 +1,10 @@
3.15.3
======
* classic-mode: Add high-contrast theme variant, drop .desktop file
* places-menu: Fix error when XDG user directories are not set up
* window-list: Add option to show on all monitors
* updated translations (eu, hu, kk, ro, tr)
3.15.2
======
* removable-drive, user-theme, window-list: Update for gnome-shell changes

View File

@@ -1,5 +1,5 @@
AC_PREREQ(2.63)
AC_INIT([gnome-shell-extensions],[3.15.2],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&component=extensions])
AC_INIT([gnome-shell-extensions],[3.15.3],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&component=extensions])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_AUX_DIR([config])

View File

@@ -1,10 +1,5 @@
include $(top_srcdir)/include.mk
desktopdir = $(datadir)/applications
desktop_in_in_files = gnome-shell-classic.desktop.in.in
desktop_in_files = $(desktop_in_in_files:.desktop.in.in=.desktop.in)
desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
sessiondir = $(datadir)/gnome-session/sessions
session_in_in_files = gnome-classic.session.desktop.in.in
session_in_files = $(session_in_in_files:.session.desktop.in.in=.session.desktop.in)
@@ -20,12 +15,13 @@ mode_DATA = $(mode_in_files:.json.in=.json)
themedir = $(datadir)/gnome-shell/theme
theme_DATA = \
$(srcdir)/classic-process-working.svg \
$(srcdir)/classic-toggle-off-intl.svg \
$(srcdir)/classic-toggle-off-us.svg \
$(srcdir)/classic-toggle-on-intl.svg \
$(srcdir)/classic-toggle-on-us.svg \
$(srcdir)/gnome-classic.css \
$(srcdir)/classic-process-working.svg \
$(srcdir)/classic-toggle-off-intl.svg \
$(srcdir)/classic-toggle-off-us.svg \
$(srcdir)/classic-toggle-on-intl.svg \
$(srcdir)/classic-toggle-on-us.svg \
$(srcdir)/gnome-classic.css \
$(srcdir)/gnome-classic-high-contrast.css \
$(NULL)
gsettings_in_files = org.gnome.shell.extensions.classic-overrides.gschema.xml.in
@@ -55,7 +51,6 @@ extension_list:=$(subst $(space),$(comma),$(extensions))
@INTLTOOL_DESKTOP_RULE@
EXTRA_DIST = \
$(desktop_in_in_files) \
$(session_in_in_files) \
$(xsession_in_files) \
$(mode_in_files) \
@@ -64,7 +59,6 @@ EXTRA_DIST = \
$(NULL)
CLEANFILES = \
$(desktop_DATA) \
$(session_DATA) \
$(xsession_DATA) \
$(mode_DATA) \

View File

@@ -0,0 +1,5 @@
@import url("gnome-classic.css");
stage {
-st-icon-style: symbolic;
}

View File

@@ -1,3 +1,3 @@
[GNOME Session]
_Name=GNOME Classic
RequiredComponents=gnome-shell-classic;gnome-settings-daemon;nautilus-classic;
RequiredComponents=gnome-shell;gnome-settings-daemon;nautilus-classic;

View File

@@ -1,17 +0,0 @@
[Desktop Entry]
Type=Application
_Name=GNOME Shell Classic
_Comment=Window management and application launching
Exec=@bindir@/gnome-shell
TryExec=@bindir@/gnome-shell
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=gnome-shell
X-GNOME-Bugzilla-Component=general
X-GNOME-Bugzilla-Version=@VERSION@
Categories=GNOME;GTK;Core;
OnlyShowIn=GNOME;
NoDisplay=true
X-GNOME-Autostart-Phase=WindowManager
X-GNOME-Provides=panel;windowmanager;
X-GNOME-Autostart-Notify=true
X-GNOME-AutoRestart=false

View File

@@ -202,7 +202,7 @@ const PlacesManager = new Lang.Class({
let specials = [];
for (let i = 0; i < DEFAULT_DIRECTORIES.length; i++) {
let specialPath = GLib.get_user_special_dir(DEFAULT_DIRECTORIES[i]);
if (specialPath == homePath)
if (specialPath == null || specialPath == homePath)
continue;
let file = Gio.File.new_for_path(specialPath), info;

View File

@@ -30,7 +30,7 @@ const ThemeManager = new Lang.Class({
this._changedId = 0;
}
Main._cssStylesheet = null;
Main.setThemeStylesheet(null);
Main.loadTheme();
},
@@ -57,13 +57,11 @@ const ThemeManager = new Lang.Class({
}
}
if (_stylesheet) {
if (_stylesheet)
global.log('loading user theme: ' + _stylesheet);
Main.setThemeStylesheet(_stylesheet);
} else {
else
global.log('loading default theme (Adwaita)');
Main._cssStylesheet = null;
}
Main.setThemeStylesheet(_stylesheet);
Main.loadTheme();
}
});

View File

@@ -53,7 +53,7 @@ function _onMenuStateChanged(menu, isOpen) {
let [x, y,] = global.get_pointer();
let actor = global.stage.get_actor_at_pos(Clutter.PickMode.REACTIVE, x, y);
if (Me.stateObj.windowListContains(actor))
if (Me.stateObj.someWindowListContains(actor))
actor.sync_hover();
}
@@ -186,46 +186,41 @@ const WindowTitle = new Lang.Class({
});
const WindowButton = new Lang.Class({
Name: 'WindowButton',
const BaseButton = new Lang.Class({
Name: 'BaseButton',
Abstract: true,
_init: function(metaWindow) {
this.metaWindow = metaWindow;
_init: function(perMonitor, monitorIndex) {
this._perMonitor = perMonitor;
this._monitorIndex = monitorIndex;
this._windowTitle = new WindowTitle(this.metaWindow);
this.actor = new St.Button({ style_class: 'window-button',
x_fill: true,
can_focus: true,
button_mask: St.ButtonMask.ONE |
St.ButtonMask.THREE,
child: this._windowTitle.actor });
St.ButtonMask.THREE });
this.actor._delegate = this;
this._menuManager = new PopupMenu.PopupMenuManager(this);
this._contextMenu = new WindowContextMenu(this.actor, this.metaWindow);
this._contextMenu.connect('open-state-changed', _onMenuStateChanged);
this._contextMenu.actor.hide();
this._menuManager.addMenu(this._contextMenu);
Main.uiGroup.add_actor(this._contextMenu.actor);
this.actor.connect('allocation-changed',
Lang.bind(this, this._updateIconGeometry));
this.actor.connect('clicked', Lang.bind(this, this._onClicked));
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
this.actor.connect('popup-menu', Lang.bind(this, this._onPopupMenu));
this._contextMenuManager = new PopupMenu.PopupMenuManager(this);
this._switchWorkspaceId =
global.window_manager.connect('switch-workspace',
Lang.bind(this, this._updateVisibility));
this._workspaceChangedId =
this.metaWindow.connect('workspace-changed',
Lang.bind(this, this._updateVisibility));
this._updateVisibility();
this._notifyFocusId =
global.display.connect('notify::focus-window',
Lang.bind(this, this._updateStyle));
this._updateStyle();
if (this._perMonitor) {
this._windowEnteredMonitorId =
global.screen.connect('window-entered-monitor',
Lang.bind(this, this._windowEnteredOrLeftMonitor));
this._windowLeftMonitorId =
global.screen.connect('window-left-monitor',
Lang.bind(this, this._windowEnteredOrLeftMonitor));
}
},
get active() {
@@ -239,6 +234,103 @@ const WindowButton = new Lang.Class({
this._onClicked(this.actor, 1);
},
_onClicked: function(actor, button) {
throw new Error('Not implemented');
},
_canOpenPopupMenu: function() {
return true;
},
_onPopupMenu: function(actor) {
if (!this._canOpenPopupMenu() || this._contextMenu.isOpen)
return;
_openMenu(this._contextMenu);
},
_isFocused: function() {
throw new Error('Not implemented');
},
_updateStyle: function() {
if (this._isFocused())
this.actor.add_style_class_name('focused');
else
this.actor.remove_style_class_name('focused');
},
_windowEnteredOrLeftMonitor: function(metaScreen, monitorIndex, metaWindow) {
throw new Error('Not implemented');
},
_isWindowVisible: function(window) {
let workspace = global.screen.get_active_workspace();
return !window.skip_taskbar &&
window.located_on_workspace(workspace) &&
(!this._perMonitor || window.get_monitor() == this._monitorIndex);
},
_updateVisibility: function() {
throw new Error('Not implemented');
},
_getIconGeometry: function() {
let rect = new Meta.Rectangle();
[rect.x, rect.y] = this.actor.get_transformed_position();
[rect.width, rect.height] = this.actor.get_transformed_size();
return rect;
},
_updateIconGeometry: function() {
throw new Error('Not implemented');
},
_onDestroy: function() {
global.window_manager.disconnect(this._switchWorkspaceId);
if (this._windowEnteredMonitorId)
global.screen.disconnect(this._windowEnteredMonitorId);
this._windowEnteredMonitorId = 0;
if (this._windowLeftMonitorId)
global.screen.disconnect(this._windowLeftMonitorId);
this._windowLeftMonitorId = 0;
}
});
const WindowButton = new Lang.Class({
Name: 'WindowButton',
Extends: BaseButton,
_init: function(metaWindow, perMonitor, monitorIndex) {
this.parent(perMonitor, monitorIndex);
this.metaWindow = metaWindow;
this._updateVisibility();
this._windowTitle = new WindowTitle(this.metaWindow);
this.actor.set_child(this._windowTitle.actor);
this._contextMenu = new WindowContextMenu(this.actor, this.metaWindow);
this._contextMenu.connect('open-state-changed', _onMenuStateChanged);
this._contextMenu.actor.hide();
this._contextMenuManager.addMenu(this._contextMenu);
Main.uiGroup.add_actor(this._contextMenu.actor);
this._workspaceChangedId =
this.metaWindow.connect('workspace-changed',
Lang.bind(this, this._updateVisibility));
this._notifyFocusId =
global.display.connect('notify::focus-window',
Lang.bind(this, this._updateStyle));
this._updateStyle();
},
_onClicked: function(actor, button) {
if (this._contextMenu.isOpen) {
this._contextMenu.close();
@@ -251,41 +343,35 @@ const WindowButton = new Lang.Class({
_openMenu(this._contextMenu);
},
_onPopupMenu: function(actor) {
if (this._contextMenu.isOpen)
return;
_openMenu(this._contextMenu);
_isFocused: function() {
return global.display.focus_window == this.metaWindow;
},
_updateStyle: function() {
this.parent();
if (this.metaWindow.minimized)
this.actor.add_style_class_name('minimized');
else
this.actor.remove_style_class_name('minimized');
},
if (global.display.focus_window == this.metaWindow)
this.actor.add_style_class_name('focused');
else
this.actor.remove_style_class_name('focused');
_windowEnteredOrLeftMonitor: function(metaScreen, monitorIndex, metaWindow) {
if (monitorIndex == this._monitorIndex && metaWindow == this.metaWindow)
this._updateVisibility();
},
_updateVisibility: function() {
let workspace = global.screen.get_active_workspace();
this.actor.visible = this.metaWindow.located_on_workspace(workspace);
this.actor.visible = this._isWindowVisible(this.metaWindow);
},
_updateIconGeometry: function() {
let rect = new Meta.Rectangle();
[rect.x, rect.y] = this.actor.get_transformed_position();
[rect.width, rect.height] = this.actor.get_transformed_size();
this.metaWindow.set_icon_geometry(rect);
this.metaWindow.set_icon_geometry(this._getIconGeometry());
},
_onDestroy: function() {
this.parent();
this.metaWindow.disconnect(this._workspaceChangedId);
global.window_manager.disconnect(this._switchWorkspaceId);
global.display.disconnect(this._notifyFocusId);
this._contextMenu.destroy();
}
@@ -296,14 +382,14 @@ const AppContextMenu = new Lang.Class({
Name: 'AppContextMenu',
Extends: PopupMenu.PopupMenu,
_init: function(source, app) {
_init: function(source, appButton) {
this.parent(source, 0.5, St.Side.BOTTOM);
this._app = app;
this._appButton = appButton;
this._minimizeItem = new PopupMenu.PopupMenuItem(_("Minimize all"));
this._minimizeItem.connect('activate', Lang.bind(this, function() {
this._getWindowList().forEach(function(w) {
this._appButton.getWindowList().forEach(function(w) {
w.minimize();
});
}));
@@ -311,7 +397,7 @@ const AppContextMenu = new Lang.Class({
this._unminimizeItem = new PopupMenu.PopupMenuItem(_("Unminimize all"));
this._unminimizeItem.connect('activate', Lang.bind(this, function() {
this._getWindowList().forEach(function(w) {
this._appButton.getWindowList().forEach(function(w) {
w.unminimize();
});
}));
@@ -319,7 +405,7 @@ const AppContextMenu = new Lang.Class({
this._maximizeItem = new PopupMenu.PopupMenuItem(_("Maximize all"));
this._maximizeItem.connect('activate', Lang.bind(this, function() {
this._getWindowList().forEach(function(w) {
this._appButton.getWindowList().forEach(function(w) {
w.maximize(Meta.MaximizeFlags.HORIZONTAL |
Meta.MaximizeFlags.VERTICAL);
});
@@ -328,7 +414,7 @@ const AppContextMenu = new Lang.Class({
this._unmaximizeItem = new PopupMenu.PopupMenuItem(_("Unmaximize all"));
this._unmaximizeItem.connect('activate', Lang.bind(this, function() {
this._getWindowList().forEach(function(w) {
this._appButton.getWindowList().forEach(function(w) {
w.unmaximize(Meta.MaximizeFlags.HORIZONTAL |
Meta.MaximizeFlags.VERTICAL);
});
@@ -337,22 +423,15 @@ const AppContextMenu = new Lang.Class({
let item = new PopupMenu.PopupMenuItem(_("Close all"));
item.connect('activate', Lang.bind(this, function() {
this._getWindowList().forEach(function(w) {
this._appButton.getWindowList().forEach(function(w) {
w.delete(global.get_current_time());
});
}));
this.addMenuItem(item);
},
_getWindowList: function() {
let workspace = global.screen.get_active_workspace();
return this._app.get_windows().filter(function(win) {
return !win.skip_taskbar && win.located_on_workspace(workspace);
});
},
open: function(animate) {
let windows = this._getWindowList();
let windows = this._appButton.getWindowList();
this._minimizeItem.actor.visible = windows.some(function(w) {
return !w.minimized;
});
@@ -372,21 +451,16 @@ const AppContextMenu = new Lang.Class({
const AppButton = new Lang.Class({
Name: 'AppButton',
Extends: BaseButton,
_init: function(app, perMonitor, monitorIndex) {
this.parent(perMonitor, monitorIndex);
_init: function(app) {
this.app = app;
this._updateVisibility();
let stack = new St.Widget({ layout_manager: new Clutter.BinLayout() });
this.actor = new St.Button({ style_class: 'window-button',
x_fill: true,
can_focus: true,
button_mask: St.ButtonMask.ONE |
St.ButtonMask.THREE,
child: stack });
this.actor._delegate = this;
this.actor.connect('allocation-changed',
Lang.bind(this, this._updateIconGeometry));
this.actor.set_child(stack);
this._singleWindowTitle = new St.Bin({ x_expand: true,
x_align: St.Align.START });
@@ -409,8 +483,7 @@ const AppButton = new Lang.Class({
this._menuManager.addMenu(this._menu);
Main.uiGroup.add_actor(this._menu.actor);
this._contextMenuManager = new PopupMenu.PopupMenuManager(this);
this._appContextMenu = new AppContextMenu(this.actor, this.app);
this._appContextMenu = new AppContextMenu(this.actor, this);
this._appContextMenu.connect('open-state-changed', _onMenuStateChanged);
this._appContextMenu.actor.hide();
Main.uiGroup.add_actor(this._appContextMenu.actor);
@@ -421,14 +494,6 @@ const AppButton = new Lang.Class({
function() {
this._icon.child = app.create_icon_texture(ICON_TEXTURE_SIZE);
}));
this.actor.connect('clicked', Lang.bind(this, this._onClicked));
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
this.actor.connect('popup-menu', Lang.bind(this, this._onPopupMenu));
this._switchWorkspaceId =
global.window_manager.connect('switch-workspace',
Lang.bind(this, this._updateVisibility));
this._updateVisibility();
this._windowsChangedId =
this.app.connect('windows-changed',
@@ -442,23 +507,30 @@ const AppButton = new Lang.Class({
this._updateStyle();
},
_updateVisibility: function() {
let workspace = global.screen.get_active_workspace();
this.actor.visible = this.app.is_on_workspace(workspace);
_windowEnteredOrLeftMonitor: function(metaScreen, monitorIndex, metaWindow) {
if (this._windowTracker.get_window_app(metaWindow) == this.app &&
monitorIndex == this._monitorIndex) {
this._updateVisibility();
this._windowsChanged();
}
},
_updateStyle: function() {
if (this._windowTracker.focus_app == this.app)
this.actor.add_style_class_name('focused');
else
this.actor.remove_style_class_name('focused');
_updateVisibility: function() {
if (!this._perMonitor) {
// fast path: use ShellApp API to avoid iterating over all windows.
let workspace = global.screen.get_active_workspace();
this.actor.visible = this.app.is_on_workspace(workspace);
} else {
this.actor.visible = this.getWindowList().length >= 1;
}
},
_isFocused: function() {
return this._windowTracker.focus_app == this.app;
},
_updateIconGeometry: function() {
let rect = new Meta.Rectangle();
[rect.x, rect.y] = this.actor.get_transformed_position();
[rect.width, rect.height] = this.actor.get_transformed_size();
let rect = this._getIconGeometry();
let windows = this.app.get_windows();
windows.forEach(function(w) {
@@ -467,15 +539,14 @@ const AppButton = new Lang.Class({
},
_getWindowList: function() {
let workspace = global.screen.get_active_workspace();
return this.app.get_windows().filter(function(win) {
return !win.skip_taskbar && win.located_on_workspace(workspace);
});
getWindowList: function() {
return this.app.get_windows().filter(Lang.bind(this, function(win) {
return this._isWindowVisible(win);
}));
},
_windowsChanged: function() {
let windows = this._getWindowList();
let windows = this.getWindowList();
this._singleWindowTitle.visible = windows.length == 1;
this._multiWindowTitle.visible = !this._singleWindowTitle.visible;
@@ -507,17 +578,6 @@ const AppButton = new Lang.Class({
},
get active() {
return this.actor.has_style_class_name('focused');
},
activate: function() {
if (this.active)
return;
this._onClicked(this.actor, 1);
},
_onClicked: function(actor, button) {
let menuWasOpen = this._menu.isOpen;
if (menuWasOpen)
@@ -531,7 +591,7 @@ const AppButton = new Lang.Class({
if (menuWasOpen)
return;
let windows = this._getWindowList();
let windows = this.getWindowList();
if (windows.length == 1) {
if (contextMenuWasOpen)
return;
@@ -555,20 +615,17 @@ const AppButton = new Lang.Class({
}
},
_onPopupMenu: function(actor) {
if (this._menu.isOpen || this._contextMenu.isOpen)
return;
_openMenu(this._contextMenu);
_canOpenPopupMenu: function() {
return !this._menu.isOpen;
},
_onMenuActivate: function(menu, child) {
child._window.activate(global.get_current_time());
},
_onDestroy: function() {
this.parent();
this._textureCache.disconnect(this._iconThemeChangedId);
global.window_manager.disconnect(this._switchWorkspaceId);
this._windowTracker.disconnect(this._notifyFocusId);
this.app.disconnect(this._windowsChangedId);
this._menu.destroy();
@@ -754,7 +811,10 @@ const WorkspaceIndicator = new Lang.Class({
const WindowList = new Lang.Class({
Name: 'WindowList',
_init: function() {
_init: function(perMonitor, monitor) {
this._perMonitor = perMonitor;
this._monitor = monitor;
this.actor = new St.Widget({ name: 'panel',
style_class: 'bottom-panel',
reactive: true,
@@ -788,26 +848,35 @@ const WindowList = new Lang.Class({
this._workspaceIndicator = new WorkspaceIndicator();
indicatorsBox.add(this._workspaceIndicator.container, { expand: false, y_fill: true });
this._workspaceSettings = this._getWorkspaceSettings();
this._workspacesOnlyOnPrimaryChangedId =
this._workspaceSettings.connect('changed::workspaces-only-on-primary',
Lang.bind(this, this._updateWorkspaceIndicatorVisibility));
this._updateWorkspaceIndicatorVisibility();
this._menuManager = new PopupMenu.PopupMenuManager(this);
this._menuManager.addMenu(this._workspaceIndicator.menu);
this._trayButton = new TrayButton();
indicatorsBox.add(this._trayButton.actor, { expand: false });
this._isOnBottomMonitor = this._monitor == Main.layoutManager.bottomMonitor;
if (this._isOnBottomMonitor) {
this._trayButton = new TrayButton();
indicatorsBox.add(this._trayButton.actor, { expand: false });
}
Main.layoutManager.addChrome(this.actor, { affectsStruts: true,
trackFullscreen: true });
Main.ctrlAltTabManager.addGroup(this.actor, _("Window List"), 'start-here-symbolic');
this.actor.width = this._monitor.width;
this.actor.set_position(this._monitor.x,
this._monitor.y + this._monitor.height - this.actor.height);
this._appSystem = Shell.AppSystem.get_default();
this._appStateChangedId =
this._appSystem.connect('app-state-changed',
Lang.bind(this, this._onAppStateChanged));
this._monitorsChangedId =
Main.layoutManager.connect('monitors-changed',
Lang.bind(this, this._updatePosition));
this._updatePosition();
this._keyboardVisiblechangedId =
Main.layoutManager.connect('keyboard-visible-changed',
Lang.bind(this, function(o, state) {
@@ -841,8 +910,6 @@ const WindowList = new Lang.Class({
this._updateMessageTrayAnchor();
}));
this._isOnBottomMonitor = Main.layoutManager.primaryIndex == Main.layoutManager.bottomIndex;
if (this._isOnBottomMonitor) {
let actor = this.actor;
this._bottomHoverChangedId =
@@ -887,6 +954,13 @@ const WindowList = new Lang.Class({
this._groupingModeChanged();
},
_getWorkspaceSettings: function() {
let settings = global.get_overrides_settings();
if (settings.list_keys().indexOf('workspaces-only-on-primary') > -1)
return settings;
return new Gio.Settings({ schema_id: 'org.gnome.mutter' });
},
_onScrollEvent: function(actor, event) {
let direction = event.get_scroll_direction();
let diff = 0;
@@ -912,6 +986,12 @@ const WindowList = new Lang.Class({
children[active].activate();
},
_updateWorkspaceIndicatorVisibility: function() {
this._workspaceIndicator.actor.visible =
this._monitor == Main.layoutManager.primaryMonitor ||
!this._workspaceSettings.get_boolean('workspaces-only-on-primary');
},
_getPreferredUngroupedWindowListWidth: function() {
if (this._windowList.get_n_children() == 0)
return this._windowList.get_preferred_width(-1)[1];
@@ -921,13 +1001,21 @@ const WindowList = new Lang.Class({
let spacing = this._windowList.layout_manager.spacing;
let workspace = global.screen.get_active_workspace();
let nWindows = global.display.get_tab_list(Meta.TabList.NORMAL, workspace).length;
let windows = global.display.get_tab_list(Meta.TabList.NORMAL, workspace);
if (this._perMonitor) {
windows = windows.filter(Lang.bind(this, function(window) {
return window.get_monitor() == this._monitor.index;
}));
}
let nWindows = windows.length;
if (nWindows == 0)
return this._windowList.get_preferred_width(-1)[1];
return nWindows * childWidth + (nWindows - 1) * spacing;
},
_getMaxWindowListWidth: function() {
let indicatorsBox = this._trayButton.actor.get_parent();
let indicatorsBox = this._workspaceIndicator.actor.get_parent();
return this.actor.width - indicatorsBox.get_preferred_width(-1)[1];
},
@@ -978,12 +1066,6 @@ const WindowList = new Lang.Class({
}
},
_updatePosition: function() {
let monitor = Main.layoutManager.primaryMonitor;
this.actor.width = monitor.width;
this.actor.set_position(monitor.x, monitor.y + monitor.height - this.actor.height);
},
_updateKeyboardAnchor: function() {
if (!Main.keyboard.actor)
return;
@@ -1013,7 +1095,7 @@ const WindowList = new Lang.Class({
},
_addApp: function(app) {
let button = new AppButton(app);
let button = new AppButton(app, this._perMonitor, this._monitor.index);
this._windowList.layout_manager.pack(button.actor,
true, true, true,
Clutter.BoxAlignment.START,
@@ -1046,7 +1128,7 @@ const WindowList = new Lang.Class({
return;
}
let button = new WindowButton(win);
let button = new WindowButton(win, this._perMonitor, this._monitor.index);
this._windowList.layout_manager.pack(button.actor,
true, true, true,
Clutter.BoxAlignment.START,
@@ -1155,6 +1237,8 @@ const WindowList = new Lang.Class({
},
_onDestroy: function() {
this._workspaceSettings.disconnect(this._workspacesOnlyOnPrimaryChangedId);
this._workspaceIndicator.destroy();
Main.ctrlAltTabManager.removeGroup(this.actor);
@@ -1162,9 +1246,6 @@ const WindowList = new Lang.Class({
this._appSystem.disconnect(this._appStateChangedId);
this._appStateChangedId = 0;
Main.layoutManager.disconnect(this._monitorsChangedId);
this._monitorsChangedId = 0;
Main.layoutManager.disconnect(this._keyboardVisiblechangedId);
this._keyboardVisiblechangedId = 0;
@@ -1211,34 +1292,69 @@ const Extension = new Lang.Class({
Name: 'Extension',
_init: function() {
this._windowList = null;
this._windowLists = null;
this._injections = {};
},
enable: function() {
this._windowList = new WindowList();
this._windowLists = [];
this._injections['_trayDwellTimeout'] =
MessageTray.MessageTray.prototype._trayDwellTimeout;
MessageTray.MessageTray.prototype._trayDwellTimeout = function() {
return false;
};
this._settings = Convenience.getSettings();
this._showOnAllMonitorsChangedId =
this._settings.connect('changed::show-on-all-monitors',
Lang.bind(this, this._buildWindowLists));
this._monitorsChangedId =
Main.layoutManager.connect('monitors-changed',
Lang.bind(this, this._buildWindowLists));
this._buildWindowLists();
},
_buildWindowLists: function() {
this._windowLists.forEach(function(windowList) {
windowList.actor.destroy();
});
this._windowLists = [];
let showOnAllMonitors = this._settings.get_boolean('show-on-all-monitors');
Main.layoutManager.monitors.forEach(Lang.bind(this, function(monitor) {
if (showOnAllMonitors || monitor == Main.layoutManager.primaryMonitor)
this._windowLists.push(new WindowList(showOnAllMonitors, monitor));
}));
},
disable: function() {
if (!this._windowList)
if (!this._windowLists)
return;
this._windowList.actor.hide();
this._windowList.actor.destroy();
this._windowList = null;
this._settings.disconnect(this._showOnAllMonitorsChangedId);
this._showOnAllMonitorsChangedId = 0;
Main.layoutManager.disconnect(this._monitorsChangedId);
this._monitorsChangedId = 0;
this._windowLists.forEach(function(windowList) {
windowList.actor.hide();
windowList.actor.destroy();
});
this._windowLists = null;
for (let prop in this._injections)
MessageTray.MessageTray.prototype[prop] = this._injections[prop];
},
windowListContains: function(actor) {
return this._windowList.actor.contains(actor);
someWindowListContains: function(actor) {
return this._windowLists.some(function(windowList) {
return windowList.actor.contains(actor);
});
}
});

View File

@@ -15,5 +15,13 @@
window list. Possible values are "never", "auto" and "always".
</_description>
</key>
<key name="show-on-all-monitors" type="b">
<default>false</default>
<_summary>Show the window list on all monitors</_summary>
<_description>
Whether to show the window list on all connected monitors or
only on the primary one.
</_description>
</key>
</schema>
</schemalist>

View File

@@ -1,5 +1,6 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
const Gio = imports.gi.Gio;
const GObject = imports.gi.GObject;
const Gtk = imports.gi.Gtk;
const Lang = imports.lang;
@@ -19,25 +20,25 @@ function init() {
const WindowListPrefsWidget = new GObject.Class({
Name: 'WindowList.Prefs.Widget',
GTypeName: 'WindowListPrefsWidget',
Extends: Gtk.Frame,
Extends: Gtk.Grid,
_init: function(params) {
this.parent(params);
this.shadow_type = Gtk.ShadowType.NONE;
this.margin = 24;
this.row_spacing = 6;
this.orientation = Gtk.Orientation.VERTICAL;
let title = '<b>' + _("Window Grouping") + '</b>';
let titleLabel = new Gtk.Label({ use_markup: true, label: title });
this.set_label_widget(titleLabel);
let groupingLabel = '<b>' + _("Window Grouping") + '</b>';
this.add(new Gtk.Label({ label: groupingLabel, use_markup: true,
halign: Gtk.Align.START }));
let align = new Gtk.Alignment({ left_padding: 12 });
this.add(align);
let grid = new Gtk.Grid({ orientation: Gtk.Orientation.VERTICAL,
row_spacing: 6,
column_spacing: 6,
margin_top: 6 });
column_spacing: 6 });
align.add(grid);
this._settings = Convenience.getSettings();
@@ -70,6 +71,11 @@ const WindowListPrefsWidget = new GObject.Class({
this._settings.set_string('grouping-mode', mode);
}));
}
let check = new Gtk.CheckButton({ label: _("Show on all monitors"),
margin_top: 6 });
this._settings.bind('show-on-all-monitors', check, 'active', Gio.SettingsBindFlags.DEFAULT);
this.add(check);
}
});

View File

@@ -44,6 +44,7 @@ pa
pl
pt
pt_BR
ro
ru
sk
sl

View File

@@ -1,6 +1,5 @@
data/gnome-classic.desktop.in
data/gnome-classic.session.desktop.in.in
data/gnome-shell-classic.desktop.in.in
data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in
extensions/alternate-tab/prefs.js
extensions/apps-menu/extension.js

View File

@@ -7,10 +7,9 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2014-08-07 12:27+0200\n"
"PO-Revision-Date: 2014-07-29 19:37+0200\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-12-17 16:32+0100\n"
"PO-Revision-Date: 2014-12-05 23:43+0100\n"
"Last-Translator: Iñaki Larrañaga Murgoitio <dooteo@zundan.com>\n"
"Language-Team: Basque <librezale@librezale.org>\n"
"Language: eu\n"
@@ -18,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Lokalize 1.4\n"
"X-Generator: Lokalize 1.5\n"
"X-Project-Style: gnome\n"
#: ../data/gnome-classic.desktop.in.h:1
@@ -100,11 +99,11 @@ msgstr "Erakutsi leihoak bakarrik uneko laneko arean"
msgid "Activities Overview"
msgstr "Jardueren ikuspegi orokorra"
#: ../extensions/apps-menu/extension.js:113
#: ../extensions/apps-menu/extension.js:114
msgid "Favorites"
msgstr "Gogokoak"
#: ../extensions/apps-menu/extension.js:282
#: ../extensions/apps-menu/extension.js:283
msgid "Applications"
msgstr "Aplikazioak"
@@ -146,11 +145,11 @@ msgstr "Gehitu"
msgid "Ejecting drive '%s' failed:"
msgstr "Huts egin du '%s' unitatea egoztean: "
#: ../extensions/drive-menu/extension.js:123
#: ../extensions/drive-menu/extension.js:124
msgid "Removable devices"
msgstr "Gailu aldagarriak"
#: ../extensions/drive-menu/extension.js:150
#: ../extensions/drive-menu/extension.js:151
msgid "Open File"
msgstr "Ireki fitxategia"
@@ -236,6 +235,10 @@ msgstr "Karpeta nagusia"
msgid "Browse Network"
msgstr "Arakatu sarea"
#: ../extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml.in.h:1
msgid "Cycle Screenshot Sizes"
msgstr "Pantaila-argazkien tamainak begiztan"
#: ../extensions/systemMonitor/extension.js:214
msgid "CPU"
msgstr "PUZ"
@@ -272,32 +275,32 @@ msgstr "Desmaximizatu"
msgid "Maximize"
msgstr "Maximizatu"
#: ../extensions/window-list/extension.js:300
#: ../extensions/window-list/extension.js:304
msgid "Minimize all"
msgstr "Minimizatu denak"
#: ../extensions/window-list/extension.js:308
#: ../extensions/window-list/extension.js:312
msgid "Unminimize all"
msgstr "Leheneratu denak"
#: ../extensions/window-list/extension.js:316
#: ../extensions/window-list/extension.js:320
msgid "Maximize all"
msgstr "Maximizatu denak"
#: ../extensions/window-list/extension.js:325
#: ../extensions/window-list/extension.js:329
msgid "Unmaximize all"
msgstr "Desmaximizatu denak"
#: ../extensions/window-list/extension.js:334
#: ../extensions/window-list/extension.js:338
msgid "Close all"
msgstr "Itxi denak"
#: ../extensions/window-list/extension.js:644
#: ../extensions/window-list/extension.js:649
#: ../extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Lan arearen adierazlea"
#: ../extensions/window-list/extension.js:798
#: ../extensions/window-list/extension.js:799
msgid "Window List"
msgstr "Leihoen zerrenda"

View File

@@ -4,15 +4,14 @@
#
# Biró Balázs <arch.scar at gmail dot com>, 2011.
# Gabor Kelemen <kelemeng at gnome dot hu>, 2011, 2012, 2013.
# Balázs Úr <urbalazs at gmail dot com>, 2013.
# Balázs Úr <urbalazs@gmail.com>, 2014.
# Balázs Úr <urbalazs at gmail dot com>, 2013, 2014.
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2014-06-16 19:32+0000\n"
"PO-Revision-Date: 2014-06-16 23:36+0200\n"
"POT-Creation-Date: 2014-11-30 11:20+0000\n"
"PO-Revision-Date: 2014-12-03 16:55+0100\n"
"Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
"Language-Team: Hungarian <openscope at googlegroups dot com>\n"
"Language: hu\n"
@@ -55,8 +54,6 @@ msgid "Arrangement of buttons on the titlebar"
msgstr "A gombok elrendezése az ablak címsorában"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:4
#| msgid ""
#| "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgid ""
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
"GNOME Shell."
@@ -101,11 +98,11 @@ msgstr "Csak az aktuális munkaterület ablakainak megjelenítése"
msgid "Activities Overview"
msgstr "Tevékenységek áttekintés"
#: ../extensions/apps-menu/extension.js:113
#: ../extensions/apps-menu/extension.js:114
msgid "Favorites"
msgstr "Kedvencek"
#: ../extensions/apps-menu/extension.js:282
#: ../extensions/apps-menu/extension.js:283
msgid "Applications"
msgstr "Alkalmazások"
@@ -131,7 +128,6 @@ msgid "Workspace"
msgstr "Munkaterület"
#: ../extensions/auto-move-windows/prefs.js:85
#| msgid "Add rule"
msgid "Add Rule"
msgstr "Szabály hozzáadása"
@@ -148,11 +144,11 @@ msgstr "Hozzáadás"
msgid "Ejecting drive '%s' failed:"
msgstr "A(z) „%s” meghajtó kiadása nem sikerült:"
#: ../extensions/drive-menu/extension.js:123
#: ../extensions/drive-menu/extension.js:124
msgid "Removable devices"
msgstr "Cserélhető eszközök"
#: ../extensions/drive-menu/extension.js:150
#: ../extensions/drive-menu/extension.js:151
msgid "Open File"
msgstr "Fájl megnyitása"
@@ -172,7 +168,6 @@ msgstr ""
"Ha nem üres, akkor a panelre kattintáskor megjelenő szöveget tartalmazza."
#: ../extensions/example/prefs.js:30
#| msgid "Message:"
msgid "Message"
msgstr "Üzenet"
@@ -238,6 +233,10 @@ msgstr "Saját mappa"
msgid "Browse Network"
msgstr "Hálózat tallózása"
#: ../extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml.in.h:1
msgid "Cycle Screenshot Sizes"
msgstr "Képernyőképméretek végigléptetése"
#: ../extensions/systemMonitor/extension.js:214
msgid "CPU"
msgstr "CPU"
@@ -274,32 +273,32 @@ msgstr "Maximalizálás megszüntetése"
msgid "Maximize"
msgstr "Maximalizálás"
#: ../extensions/window-list/extension.js:300
#: ../extensions/window-list/extension.js:304
msgid "Minimize all"
msgstr "Minden minimalizálása"
#: ../extensions/window-list/extension.js:308
#: ../extensions/window-list/extension.js:312
msgid "Unminimize all"
msgstr "Minden minimalizálásának megszüntetése"
#: ../extensions/window-list/extension.js:316
#: ../extensions/window-list/extension.js:320
msgid "Maximize all"
msgstr "Minden maximalizálása"
#: ../extensions/window-list/extension.js:325
#: ../extensions/window-list/extension.js:329
msgid "Unmaximize all"
msgstr "Minden maximalizálásának megszüntetése"
#: ../extensions/window-list/extension.js:334
#: ../extensions/window-list/extension.js:338
msgid "Close all"
msgstr "Minden bezárása"
#: ../extensions/window-list/extension.js:644
#: ../extensions/window-list/extension.js:649
#: ../extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Munkaterület indikátor"
#: ../extensions/window-list/extension.js:798
#: ../extensions/window-list/extension.js:799
msgid "Window List"
msgstr "Ablaklista"
@@ -333,7 +332,6 @@ msgid "Always group windows"
msgstr "Mindig csoportosítsa az ablakokat"
#: ../extensions/workspace-indicator/prefs.js:141
#| msgid "Workspace names:"
msgid "Workspace Names"
msgstr "Munkaterületnevek"

View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2014-08-23 19:38+0000\n"
"PO-Revision-Date: 2014-08-24 10:22+0600\n"
"POT-Creation-Date: 2014-12-14 08:37+0000\n"
"PO-Revision-Date: 2014-12-14 20:07+0600\n"
"Last-Translator: Baurzhan Muftakhidinov <baurthefirst@gmail.com>\n"
"Language-Team: Kazakh <kk@li.org>\n"
"Language: kk\n"
@@ -50,8 +50,6 @@ msgid "Arrangement of buttons on the titlebar"
msgstr "Атау жолағындағы батырмалар орналасуы"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:4
#| msgid ""
#| "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgid ""
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
"GNOME Shell."
@@ -97,11 +95,11 @@ msgstr "Тек ағымдағы жұмыс орнынан терезелерді
msgid "Activities Overview"
msgstr "Шолу көрінісі"
#: ../extensions/apps-menu/extension.js:113
#: ../extensions/apps-menu/extension.js:114
msgid "Favorites"
msgstr "Таңдамалылар"
#: ../extensions/apps-menu/extension.js:282
#: ../extensions/apps-menu/extension.js:283
msgid "Applications"
msgstr "Қолданбалар"
@@ -127,7 +125,6 @@ msgid "Workspace"
msgstr "Жұмыс орны"
#: ../extensions/auto-move-windows/prefs.js:85
#| msgid "Add rule"
msgid "Add Rule"
msgstr "Ережені қосу"
@@ -144,11 +141,11 @@ msgstr "Қосу"
msgid "Ejecting drive '%s' failed:"
msgstr "'%s' дискін шығару сәтсіз аяқталды:"
#: ../extensions/drive-menu/extension.js:123
#: ../extensions/drive-menu/extension.js:124
msgid "Removable devices"
msgstr "Алынатын құрылғылар"
#: ../extensions/drive-menu/extension.js:150
#: ../extensions/drive-menu/extension.js:151
msgid "Open File"
msgstr "Файлды ашу"
@@ -167,7 +164,6 @@ msgid ""
msgstr "Бос болмаса, панельге шерту кезінде көрсетілетін мәтінді сақтайды."
#: ../extensions/example/prefs.js:30
#| msgid "Message:"
msgid "Message"
msgstr "Хабарлама"
@@ -233,6 +229,10 @@ msgstr "Үй бумасы"
msgid "Browse Network"
msgstr "Желіні шолу"
#: ../extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml.in.h:1
msgid "Cycle Screenshot Sizes"
msgstr "Скриншоттар өлшемдерін ауыстырып көрсету"
#: ../extensions/systemMonitor/extension.js:214
msgid "CPU"
msgstr "Процессор"
@@ -269,32 +269,32 @@ msgstr "Жазық емес қылу"
msgid "Maximize"
msgstr "Жазық қылу"
#: ../extensions/window-list/extension.js:300
#: ../extensions/window-list/extension.js:304
msgid "Minimize all"
msgstr "Барлығын қайыру"
#: ../extensions/window-list/extension.js:308
#: ../extensions/window-list/extension.js:312
msgid "Unminimize all"
msgstr "Барлығын қайырылған емес қылу"
#: ../extensions/window-list/extension.js:316
#: ../extensions/window-list/extension.js:320
msgid "Maximize all"
msgstr "Барлығын жазық қылу"
#: ../extensions/window-list/extension.js:325
#: ../extensions/window-list/extension.js:329
msgid "Unmaximize all"
msgstr "Барлығын жазық емес қылу"
#: ../extensions/window-list/extension.js:334
#: ../extensions/window-list/extension.js:338
msgid "Close all"
msgstr "Барлығын жабу"
#: ../extensions/window-list/extension.js:644
#: ../extensions/window-list/extension.js:649
#: ../extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Жұмыс орын индикаторы"
#: ../extensions/window-list/extension.js:798
#: ../extensions/window-list/extension.js:799
msgid "Window List"
msgstr "Терезелер тізімі"
@@ -327,7 +327,6 @@ msgid "Always group windows"
msgstr "Терезелерді әрқашан топтау"
#: ../extensions/workspace-indicator/prefs.js:141
#| msgid "Workspace names:"
msgid "Workspace Names"
msgstr "Жұмыс орын атаулары"

336
po/ro.po Normal file
View File

@@ -0,0 +1,336 @@
# Romanian translation for gnome-shell-extensions.
# Copyright (C) 2014 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Bogdan Mințoi <mintoi.bogdan@gmail.com>, 2014.
# Daniel Șerbănescu <daniel [at] serbanescu [dot] dk>, 2014.
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2014-11-26 18:07+0000\n"
"PO-Revision-Date: 2014-11-30 12:18+0200\n"
"Last-Translator: Daniel Șerbănescu <daniel [at] serbanescu [dot] dk>\n"
"Language-Team: Gnome Romanian Translation Team\n"
"Language: ro\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
"20)) ? 1 : 2);;\n"
"X-Generator: Virtaal 0.7.1\n"
"X-Project-Style: gnome\n"
#: ../data/gnome-classic.desktop.in.h:1
#: ../data/gnome-classic.session.desktop.in.in.h:1
msgid "GNOME Classic"
msgstr "GNOME Clasic"
#: ../data/gnome-classic.desktop.in.h:2
msgid "This session logs you into GNOME Classic"
msgstr "Această sesiune vă autentifică în GNOME Clasic"
#: ../data/gnome-shell-classic.desktop.in.in.h:1
msgid "GNOME Shell Classic"
msgstr "Interfața clasică GNOME"
#: ../data/gnome-shell-classic.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Gestionarea ferestrei și lansarea aplicației"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:1
msgid "Attach modal dialog to the parent window"
msgstr "Atașează dialogul modal la fereastra părinte"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:2
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"Această cheie înlocuiește cheia corespondentă din org.gnome.mutter când "
"interfața GNOME rulează."
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:3
msgid "Arrangement of buttons on the titlebar"
msgstr "Aranjamentul butoanelor din bara de titlu"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:4
msgid ""
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
"GNOME Shell."
msgstr ""
"Această cheie înlocuiește cheia corespondentă din "
"org.gnome.desktop.wm.preferences când interfața GNOME rulează."
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:5
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "Activează mozaic lateral la plasarea ferestrelor pe marginile ecranului"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:6
msgid "Workspaces only on primary monitor"
msgstr "Spații de lucru doar pe monitorul principal"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:7
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr ""
#: ../extensions/alternate-tab/prefs.js:20
msgid "Thumbnail only"
msgstr "Doar miniatură"
#: ../extensions/alternate-tab/prefs.js:21
msgid "Application icon only"
msgstr "Doar pictograma aplicației"
#: ../extensions/alternate-tab/prefs.js:22
msgid "Thumbnail and application icon"
msgstr "Miniatură și pictograma aplicației"
#: ../extensions/alternate-tab/prefs.js:38
msgid "Present windows as"
msgstr "Prezintă ferestrele ca"
#: ../extensions/alternate-tab/prefs.js:69
msgid "Show only windows in the current workspace"
msgstr "Arată doar ferestrele aflate în spațiul de lucru actual"
#: ../extensions/apps-menu/extension.js:39
msgid "Activities Overview"
msgstr "Panoramă activități"
#: ../extensions/apps-menu/extension.js:114
msgid "Favorites"
msgstr "Favorite"
#: ../extensions/apps-menu/extension.js:283
msgid "Applications"
msgstr "Aplicații"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid "Application and workspace list"
msgstr "Lista de aplicații și spații de lucru"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"O listă de șiruri de caractere, fiecare conținând un id de aplicație (numele "
"fișierului de birou) urmat de simbolul „două puncte” și un număr al "
"spațiului de lucru"
#: ../extensions/auto-move-windows/prefs.js:60
msgid "Application"
msgstr "Aplicație"
#: ../extensions/auto-move-windows/prefs.js:69
#: ../extensions/auto-move-windows/prefs.js:127
msgid "Workspace"
msgstr "Spațiu de lucru"
#: ../extensions/auto-move-windows/prefs.js:85
msgid "Add Rule"
msgstr "Adaugă o regulă"
#: ../extensions/auto-move-windows/prefs.js:106
msgid "Create new matching rule"
msgstr "Creează o regulă nouă de potrivire"
#: ../extensions/auto-move-windows/prefs.js:111
msgid "Add"
msgstr "Adaugă"
#: ../extensions/drive-menu/extension.js:106
#, javascript-format
msgid "Ejecting drive '%s' failed:"
msgstr "Scoaterea unității „%s” a eșuat:"
#: ../extensions/drive-menu/extension.js:124
msgid "Removable devices"
msgstr "Dispozitive detașabile"
#: ../extensions/drive-menu/extension.js:151
msgid "Open File"
msgstr "Deschide fișier"
#: ../extensions/example/extension.js:17
msgid "Hello, world!"
msgstr "Bună ziua, lume!"
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:1
msgid "Alternative greeting text."
msgstr "Text alternativ de salut."
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:2
msgid ""
"If not empty, it contains the text that will be shown when clicking on the "
"panel."
msgstr ""
#: ../extensions/example/prefs.js:30
msgid "Message"
msgstr "Mesaj"
#: ../extensions/example/prefs.js:43
msgid ""
"Example aims to show how to build well behaved extensions for the Shell and "
"as such it has little functionality on its own.\n"
"Nevertheless it's possible to customize the greeting message."
msgstr ""
"Exemplul are ca scop să prezinte cum anume să construiți extensii pentru "
"Shell, ce se comportă corect, și are o funcționalitate proprie redusă.\n"
"Cu toate acestea, este posibil să personalizați mesajul de întâmpinare."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
msgid "Use more screen for windows"
msgstr "Folosește mai mult din ecran pentru ferestre"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:2
msgid ""
"Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy."
msgstr ""
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3
msgid "Place window captions on top"
msgstr "Plasează titlul ferestrelor deasupra"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:4
msgid ""
"If true, place window captions on top the respective thumbnail, overriding "
"shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect."
msgstr ""
#: ../extensions/places-menu/extension.js:78
#: ../extensions/places-menu/extension.js:81
msgid "Places"
msgstr "Locații"
#: ../extensions/places-menu/placeDisplay.js:57
#, javascript-format
msgid "Failed to launch \"%s\""
msgstr "Nu s-a putut lansa „%s”"
#: ../extensions/places-menu/placeDisplay.js:99
#: ../extensions/places-menu/placeDisplay.js:122
msgid "Computer"
msgstr "Calculator"
#: ../extensions/places-menu/placeDisplay.js:200
msgid "Home"
msgstr "Acasă"
#: ../extensions/places-menu/placeDisplay.js:287
msgid "Browse Network"
msgstr "Navighează rețeaua"
#: ../extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml.in.h:1
msgid "Cycle Screenshot Sizes"
msgstr ""
#: ../extensions/systemMonitor/extension.js:214
msgid "CPU"
msgstr "CPU"
#: ../extensions/systemMonitor/extension.js:267
msgid "Memory"
msgstr "Memorie"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "Theme name"
msgstr "Numele temei"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Numele temei, ce va fi încărcată din ~/.themes/name/gnome-shell"
#: ../extensions/window-list/extension.js:110
msgid "Close"
msgstr "Închide"
#: ../extensions/window-list/extension.js:120
msgid "Unminimize"
msgstr "Deminimizează"
#: ../extensions/window-list/extension.js:121
msgid "Minimize"
msgstr "Minimizează"
#: ../extensions/window-list/extension.js:127
msgid "Unmaximize"
msgstr "Demaximizează"
#: ../extensions/window-list/extension.js:128
msgid "Maximize"
msgstr "Maximizează"
#: ../extensions/window-list/extension.js:304
msgid "Minimize all"
msgstr "Minimizează tot"
#: ../extensions/window-list/extension.js:312
msgid "Unminimize all"
msgstr "Deminimizează tot"
#: ../extensions/window-list/extension.js:320
msgid "Maximize all"
msgstr "Maximizează tot"
#: ../extensions/window-list/extension.js:329
msgid "Unmaximize all"
msgstr "Demaximizează tot"
#: ../extensions/window-list/extension.js:338
msgid "Close all"
msgstr "Închide tot"
#: ../extensions/window-list/extension.js:649
#: ../extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Indicator al spațiului de lucru"
#: ../extensions/window-list/extension.js:799
msgid "Window List"
msgstr "Lista ferestrelor"
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:1
msgid "When to group windows"
msgstr "Când să fie grupate ferestrele"
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:2
msgid ""
"Decides when to group windows from the same application on the window list. "
"Possible values are \"never\", \"auto\" and \"always\"."
msgstr ""
"Decide când să fie grupate ferestrele aceleiași aplicații în lista "
"ferestrei. Valorile posibile sunt „niciodată”, „auto” și „întotdeauna”."
#: ../extensions/window-list/prefs.js:30
msgid "Window Grouping"
msgstr "Gruparea ferestrelor"
#: ../extensions/window-list/prefs.js:49
msgid "Never group windows"
msgstr "Nu grupa ferestrele niciodată"
#: ../extensions/window-list/prefs.js:50
msgid "Group windows when space is limited"
msgstr "Grupează ferestrele când spațiul e limitat"
#: ../extensions/window-list/prefs.js:51
msgid "Always group windows"
msgstr "Grupează ferestrele întotdeauna"
#: ../extensions/workspace-indicator/prefs.js:141
msgid "Workspace Names"
msgstr "Numele spațiilor de lucru"
#: ../extensions/workspace-indicator/prefs.js:157
msgid "Name"
msgstr "Nume"
#: ../extensions/workspace-indicator/prefs.js:198
#, javascript-format
msgid "Workspace %d"
msgstr "Spațiu de lucru %d"

View File

@@ -2,15 +2,16 @@
# Copyright (C) 2012 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Osman Karagöz <osmank3@gmail.com>, 2012.
# sabri ünal <yakushabb@gmail.com>, 2014
# sabri ünal <yakushabb@gmail.com>, 2014.
# Gökhan Gurbetoğlu <ggurbet@gmail.com>, 2014.
# Muhammet Kara <muhammetk@gmail.com>, 2013, 2014.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2014-09-16 07:39+0000\n"
"PO-Revision-Date: 2014-09-16 11:34+0000\n"
"POT-Creation-Date: 2014-12-03 08:34+0000\n"
"PO-Revision-Date: 2014-12-04 09:02+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"
@@ -91,11 +92,11 @@ msgstr "Sadece geçerli çalışma alanındaki pencereleri göster"
msgid "Activities Overview"
msgstr "Etkinlikler Genel Görünümü"
#: ../extensions/apps-menu/extension.js:113
#: ../extensions/apps-menu/extension.js:114
msgid "Favorites"
msgstr "Gözdeler"
#: ../extensions/apps-menu/extension.js:282
#: ../extensions/apps-menu/extension.js:283
msgid "Applications"
msgstr "Uygulamalar"
@@ -135,11 +136,11 @@ msgstr "Ekle"
msgid "Ejecting drive '%s' failed:"
msgstr "'%s' sürücüsü çıkarılamadı:"
#: ../extensions/drive-menu/extension.js:123
#: ../extensions/drive-menu/extension.js:124
msgid "Removable devices"
msgstr "Çıkarılabilir cihazlar"
#: ../extensions/drive-menu/extension.js:150
#: ../extensions/drive-menu/extension.js:151
msgid "Open File"
msgstr "Dosya Aç"
@@ -212,6 +213,10 @@ msgstr "Başlangıç"
msgid "Browse Network"
msgstr "Ağa Gözat"
#: ../extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml.in.h:1
msgid "Cycle Screenshot Sizes"
msgstr "Ekran Görüntüsü Boyutları Arasında Geçiş Yap"
#: ../extensions/systemMonitor/extension.js:214
msgid "CPU"
msgstr "İşlemci"
@@ -248,32 +253,32 @@ msgstr "Önceki Boyut"
msgid "Maximize"
msgstr "En büyük duruma getir"
#: ../extensions/window-list/extension.js:300
#: ../extensions/window-list/extension.js:304
msgid "Minimize all"
msgstr "Tümünü simge durumuna küçült"
#: ../extensions/window-list/extension.js:308
#: ../extensions/window-list/extension.js:312
msgid "Unminimize all"
msgstr "Tümünü Önceki Boyutuna Getir"
#: ../extensions/window-list/extension.js:316
#: ../extensions/window-list/extension.js:320
msgid "Maximize all"
msgstr "Tümünü en büyük duruma getir"
#: ../extensions/window-list/extension.js:325
#: ../extensions/window-list/extension.js:329
msgid "Unmaximize all"
msgstr "Tümünü Önceki Boyutuna Getir"
#: ../extensions/window-list/extension.js:334
#: ../extensions/window-list/extension.js:338
msgid "Close all"
msgstr "Hepsini kapat"
#: ../extensions/window-list/extension.js:644
#: ../extensions/window-list/extension.js:649
#: ../extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Çalışma Alanı Belirteci"
#: ../extensions/window-list/extension.js:808
#: ../extensions/window-list/extension.js:799
msgid "Window List"
msgstr "Pencere Listesi"