Compare commits
81 Commits
Author | SHA1 | Date | |
---|---|---|---|
a1c091d98d | |||
e1e08f0a68 | |||
1a4f629554 | |||
4113be770b | |||
cf3f4850b8 | |||
14f374096a | |||
6fef5c37f7 | |||
6e7455aa1e | |||
03bf6fa399 | |||
f777e761c0 | |||
31201d9618 | |||
d95d78ac15 | |||
bef4f17c49 | |||
f4b7ab0cb6 | |||
a180dde01c | |||
385c918e2e | |||
d7401c8646 | |||
a456d5eb19 | |||
6c08799c7b | |||
8d7bb6496c | |||
f0496a2d3c | |||
6664553b7e | |||
2a950ca3b3 | |||
463cd6382c | |||
78db025b10 | |||
f3265c28a9 | |||
a6e5e459d3 | |||
9ba399bf18 | |||
a52c91e9e5 | |||
9a7b47c23f | |||
18f7d20006 | |||
3f0ee88657 | |||
c634718dfa | |||
df6b31de05 | |||
b8e29ae8c7 | |||
cdba8e5cea | |||
4fccdaafb7 | |||
df0b465e76 | |||
aacdd4fd5e | |||
5f68c3a324 | |||
8ceae3b054 | |||
3fc5afaff1 | |||
8b7464c648 | |||
3e602b1765 | |||
5858028411 | |||
2c682ace81 | |||
45f3106814 | |||
aa947f9948 | |||
0c72d1fcbd | |||
6d22670307 | |||
0b9e68e305 | |||
da8155cbe5 | |||
5b7a052e18 | |||
6f26e39082 | |||
489b96a310 | |||
e65d90d624 | |||
9c74e22313 | |||
48a1fce151 | |||
83e7f6f496 | |||
3c5c3a6597 | |||
1c3ea1649f | |||
48a54e8ac4 | |||
113a854048 | |||
882f5fa79e | |||
9acdb8012c | |||
731d64e0e4 | |||
ccf1bd9f27 | |||
c164a8fe03 | |||
1a39666f7c | |||
f2731d4d6a | |||
3e63fb7abe | |||
8b4249ef26 | |||
bf0be6ef12 | |||
294702d3f1 | |||
58f3b7c748 | |||
e25502aeb2 | |||
ffe4eaf00d | |||
2f88a7a1e1 | |||
cd7d564125 | |||
ede81017ec | |||
a539e6236a |
6
.gitignore
vendored
6
.gitignore
vendored
@ -17,10 +17,8 @@ config.status
|
||||
config
|
||||
configure
|
||||
data/50-gnome-shell-*.xml
|
||||
data/gnome-shell.desktop
|
||||
data/gnome-shell.desktop.in
|
||||
data/gnome-shell-wayland.desktop
|
||||
data/gnome-shell-wayland.desktop.in
|
||||
data/org.gnome.Shell.desktop
|
||||
data/org.gnome.Shell.desktop.in
|
||||
data/gnome-shell-extension-prefs.desktop
|
||||
data/gnome-shell-extension-prefs.desktop.in
|
||||
data/gnome-shell-theme.gresource
|
||||
|
34
NEWS
34
NEWS
@ -1,3 +1,37 @@
|
||||
3.19.2
|
||||
======
|
||||
* Make gnome-shell DBus activatable [Ray; #741666]
|
||||
* Fix browser plugin crash in Firefox [Carlos; #737932, #757940]
|
||||
* Optionally show battery percentage in system status area [Bastien; #735771]
|
||||
* Misc. bug fixes [Kalev, Florian, Bastien; #757418, #757668, #757779, #757816,
|
||||
#745626, #758220]
|
||||
|
||||
Contributors:
|
||||
Michael Biebl, Michael Catanzaro, Piotr Drąg, Carlos Garcia Campos,
|
||||
Kalev Lember, Florian Müllner, Bastien Nocera, Ray Strode
|
||||
|
||||
Translations:
|
||||
Pedro Albuquerque [pt], liushuyu [zh_CN], Yosef Or Boczko [he],
|
||||
Jiri Grönroos [fi], Kjartan Maraas [nb], GNOME Translation Robot [gd],
|
||||
Daniel Mustieles [es], Marek Černocký [cs], Kristjan SCHMIDT [eo],
|
||||
Stas Solovey [ru]
|
||||
|
||||
3.19.1
|
||||
======
|
||||
* Respect text-scaling factor under wayland [Owen; #756447]
|
||||
* Show the Bluetooth submenu when there were setup devices [Bastien; #723848]
|
||||
* Misc. bug fixes [Florian, Cosimo, Rui, Ray, Owen, Jakub, Bastien;
|
||||
#756697, #756714, #756605, #754814, #738942, #756983, #756925,
|
||||
#757011, #673235, #757150]
|
||||
|
||||
Contributors:
|
||||
Cosimo Cecchi, Rui Matos, Florian Müllner, Bastien Nocera, Jakub Steiner,
|
||||
Ray Strode, Owen W. Taylor
|
||||
|
||||
Translations:
|
||||
Kjartan Maraas [nb], Khaled Hosny [ar], Balázs Meskó [hu],
|
||||
Daniel Șerbănescu [ro], Marek Černocký [cs]
|
||||
|
||||
3.18.1
|
||||
======
|
||||
* Fix screen freezes when a notification is pushed [Carlos; #755425]
|
||||
|
@ -3,7 +3,10 @@ mozillalibdir = $(BROWSER_PLUGIN_DIR)
|
||||
|
||||
mozillalib_LTLIBRARIES = libgnome-shell-browser-plugin.la
|
||||
|
||||
libgnome_shell_browser_plugin_la_LDFLAGS = -module -avoid-version -no-undefined
|
||||
# Browsers can unload and reload the module while browsing, which is not supported by GObject.
|
||||
# We pass -Wl,-z,nodelete to the linker to ensure the module is never unloaded.
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=737932
|
||||
libgnome_shell_browser_plugin_la_LDFLAGS = -module -avoid-version -no-undefined -Wl,-z,nodelete
|
||||
|
||||
libgnome_shell_browser_plugin_la_LIBADD = \
|
||||
$(BROWSER_PLUGIN_LIBS)
|
||||
|
@ -33,20 +33,16 @@
|
||||
#include <json-glib/json-glib.h>
|
||||
|
||||
#define ORIGIN "extensions.gnome.org"
|
||||
#define PLUGIN_NAME "Gnome Shell Integration"
|
||||
#define PLUGIN_DESCRIPTION "This plugin provides integration with Gnome Shell " \
|
||||
#define PLUGIN_NAME "GNOME Shell Integration"
|
||||
#define PLUGIN_DESCRIPTION "This plugin provides integration with GNOME Shell " \
|
||||
"for live extension enabling and disabling. " \
|
||||
"It can be used only by extensions.gnome.org"
|
||||
#define PLUGIN_MIME_STRING "application/x-gnome-shell-integration::Gnome Shell Integration Dummy Content-Type";
|
||||
#define PLUGIN_MIME_STRING "application/x-gnome-shell-integration::GNOME Shell Integration Dummy Content-Type";
|
||||
|
||||
#define PLUGIN_API_VERSION 5
|
||||
|
||||
#define EXTENSION_DISABLE_VERSION_CHECK_KEY "disable-extension-version-validation"
|
||||
|
||||
typedef struct {
|
||||
GDBusProxy *proxy;
|
||||
} PluginData;
|
||||
|
||||
static NPNetscapeFuncs funcs;
|
||||
|
||||
static inline gchar *
|
||||
@ -145,121 +141,6 @@ check_origin_and_protocol (NPP instance)
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* =============== public entry points =================== */
|
||||
|
||||
NPError
|
||||
NP_Initialize(NPNetscapeFuncs *pfuncs, NPPluginFuncs *plugin)
|
||||
{
|
||||
/* global initialization routine, called once when plugin
|
||||
is loaded */
|
||||
|
||||
g_debug ("plugin loaded");
|
||||
|
||||
memcpy (&funcs, pfuncs, sizeof (funcs));
|
||||
|
||||
plugin->size = sizeof(NPPluginFuncs);
|
||||
plugin->newp = NPP_New;
|
||||
plugin->destroy = NPP_Destroy;
|
||||
plugin->getvalue = NPP_GetValue;
|
||||
plugin->setwindow = NPP_SetWindow;
|
||||
|
||||
return NPERR_NO_ERROR;
|
||||
}
|
||||
|
||||
NPError
|
||||
NP_Shutdown(void)
|
||||
{
|
||||
return NPERR_NO_ERROR;
|
||||
}
|
||||
|
||||
const char*
|
||||
NP_GetMIMEDescription(void)
|
||||
{
|
||||
return PLUGIN_MIME_STRING;
|
||||
}
|
||||
|
||||
NPError
|
||||
NP_GetValue(void *instance,
|
||||
NPPVariable variable,
|
||||
void *value)
|
||||
{
|
||||
switch (variable) {
|
||||
case NPPVpluginNameString:
|
||||
*(char**)value = PLUGIN_NAME;
|
||||
break;
|
||||
case NPPVpluginDescriptionString:
|
||||
*(char**)value = PLUGIN_DESCRIPTION;
|
||||
break;
|
||||
default:
|
||||
;
|
||||
}
|
||||
|
||||
return NPERR_NO_ERROR;
|
||||
}
|
||||
|
||||
NPError
|
||||
NPP_New(NPMIMEType mimetype,
|
||||
NPP instance,
|
||||
uint16_t mode,
|
||||
int16_t argc,
|
||||
char **argn,
|
||||
char **argv,
|
||||
NPSavedData *saved)
|
||||
{
|
||||
/* instance initialization function */
|
||||
PluginData *data;
|
||||
GError *error = NULL;
|
||||
|
||||
g_debug ("plugin created");
|
||||
|
||||
if (!check_origin_and_protocol (instance))
|
||||
return NPERR_GENERIC_ERROR;
|
||||
|
||||
data = g_slice_new (PluginData);
|
||||
instance->pdata = data;
|
||||
|
||||
data->proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
|
||||
G_DBUS_PROXY_FLAGS_NONE,
|
||||
NULL, /* interface info */
|
||||
"org.gnome.Shell",
|
||||
"/org/gnome/Shell",
|
||||
"org.gnome.Shell.Extensions",
|
||||
NULL, /* GCancellable */
|
||||
&error);
|
||||
if (!data->proxy)
|
||||
{
|
||||
/* ignore error if the shell is not running, otherwise warn */
|
||||
if (error->domain != G_DBUS_ERROR ||
|
||||
error->code != G_DBUS_ERROR_NAME_HAS_NO_OWNER)
|
||||
{
|
||||
g_warning ("Failed to set up Shell proxy: %s", error->message);
|
||||
}
|
||||
g_clear_error (&error);
|
||||
return NPERR_GENERIC_ERROR;
|
||||
}
|
||||
|
||||
g_debug ("plugin created successfully");
|
||||
|
||||
return NPERR_NO_ERROR;
|
||||
}
|
||||
|
||||
NPError
|
||||
NPP_Destroy(NPP instance,
|
||||
NPSavedData **saved)
|
||||
{
|
||||
/* instance finalization function */
|
||||
|
||||
PluginData *data = instance->pdata;
|
||||
|
||||
g_debug ("plugin destroyed");
|
||||
|
||||
g_object_unref (data->proxy);
|
||||
|
||||
g_slice_free (PluginData, data);
|
||||
|
||||
return NPERR_NO_ERROR;
|
||||
}
|
||||
|
||||
/* =================== scripting interface =================== */
|
||||
|
||||
typedef struct {
|
||||
@ -282,14 +163,6 @@ on_shell_signal (GDBusProxy *proxy,
|
||||
{
|
||||
PluginObject *obj = user_data;
|
||||
|
||||
/* FIXME: We have half a dozen bug reports in which this function crashes in
|
||||
* WebKit due to a null NPObject. This should never happen, but since it is
|
||||
* happening, let's turn the crash into a critical.
|
||||
*
|
||||
* https://bugzilla.gnome.org/show_bug.cgi?id=737932
|
||||
*/
|
||||
g_return_if_fail (obj->instance);
|
||||
|
||||
if (strcmp (signal_name, "ExtensionStatusChanged") == 0)
|
||||
{
|
||||
gchar *uuid;
|
||||
@ -320,12 +193,6 @@ on_shell_appeared (GDBusConnection *connection,
|
||||
{
|
||||
PluginObject *obj = (PluginObject*) user_data;
|
||||
|
||||
/* FIXME: Not sure if this is ever hit or not, but let's play it safe.
|
||||
*
|
||||
* https://bugzilla.gnome.org/show_bug.cgi?id=737932
|
||||
*/
|
||||
g_return_if_fail (obj->instance);
|
||||
|
||||
if (obj->restart_listener)
|
||||
{
|
||||
NPVariant result = { NPVariantType_Void };
|
||||
@ -344,45 +211,18 @@ static NPObject *
|
||||
plugin_object_allocate (NPP instance,
|
||||
NPClass *klass)
|
||||
{
|
||||
PluginData *data = instance->pdata;
|
||||
PluginObject *obj = g_slice_new0 (PluginObject);
|
||||
PluginObject *obj = (PluginObject *) funcs.memalloc (sizeof (PluginObject));
|
||||
|
||||
memset (obj, 0, sizeof (PluginObject));
|
||||
obj->instance = instance;
|
||||
obj->proxy = g_object_ref (data->proxy);
|
||||
obj->settings = g_settings_new (SHELL_SCHEMA);
|
||||
obj->signal_id = g_signal_connect (obj->proxy, "g-signal",
|
||||
G_CALLBACK (on_shell_signal), obj);
|
||||
|
||||
obj->watch_name_id = g_bus_watch_name (G_BUS_TYPE_SESSION,
|
||||
"org.gnome.Shell",
|
||||
G_BUS_NAME_WATCHER_FLAGS_NONE,
|
||||
on_shell_appeared,
|
||||
NULL,
|
||||
obj,
|
||||
NULL);
|
||||
|
||||
g_debug ("plugin object created");
|
||||
|
||||
return (NPObject*)obj;
|
||||
return (NPObject*) obj;
|
||||
}
|
||||
|
||||
static void
|
||||
plugin_object_deallocate (NPObject *npobj)
|
||||
{
|
||||
PluginObject *obj = (PluginObject*)npobj;
|
||||
|
||||
g_signal_handler_disconnect (obj->proxy, obj->signal_id);
|
||||
g_object_unref (obj->proxy);
|
||||
|
||||
if (obj->listener)
|
||||
funcs.releaseobject (obj->listener);
|
||||
|
||||
if (obj->watch_name_id)
|
||||
g_bus_unwatch_name (obj->watch_name_id);
|
||||
|
||||
g_debug ("plugin object destroyed");
|
||||
|
||||
g_slice_free (PluginObject, obj);
|
||||
funcs.memfree (npobj);
|
||||
}
|
||||
|
||||
static inline gboolean
|
||||
@ -1033,6 +873,149 @@ init_methods_and_properties (void)
|
||||
onextension_changed_id = funcs.getstringidentifier ("onchange");
|
||||
}
|
||||
|
||||
/* =============== public entry points =================== */
|
||||
|
||||
NPError
|
||||
NP_Initialize(NPNetscapeFuncs *pfuncs, NPPluginFuncs *plugin)
|
||||
{
|
||||
/* global initialization routine, called once when plugin
|
||||
is loaded */
|
||||
|
||||
g_debug ("plugin loaded");
|
||||
|
||||
memcpy (&funcs, pfuncs, sizeof (funcs));
|
||||
|
||||
plugin->size = sizeof(NPPluginFuncs);
|
||||
plugin->newp = NPP_New;
|
||||
plugin->destroy = NPP_Destroy;
|
||||
plugin->getvalue = NPP_GetValue;
|
||||
plugin->setwindow = NPP_SetWindow;
|
||||
plugin->event = NPP_HandleEvent;
|
||||
|
||||
return NPERR_NO_ERROR;
|
||||
}
|
||||
|
||||
NPError
|
||||
NP_Shutdown(void)
|
||||
{
|
||||
return NPERR_NO_ERROR;
|
||||
}
|
||||
|
||||
const char*
|
||||
NP_GetMIMEDescription(void)
|
||||
{
|
||||
return PLUGIN_MIME_STRING;
|
||||
}
|
||||
|
||||
NPError
|
||||
NP_GetValue(void *instance,
|
||||
NPPVariable variable,
|
||||
void *value)
|
||||
{
|
||||
switch (variable) {
|
||||
case NPPVpluginNameString:
|
||||
*(char**)value = PLUGIN_NAME;
|
||||
break;
|
||||
case NPPVpluginDescriptionString:
|
||||
*(char**)value = PLUGIN_DESCRIPTION;
|
||||
break;
|
||||
default:
|
||||
;
|
||||
}
|
||||
|
||||
return NPERR_NO_ERROR;
|
||||
}
|
||||
|
||||
NPError
|
||||
NPP_New(NPMIMEType mimetype,
|
||||
NPP instance,
|
||||
uint16_t mode,
|
||||
int16_t argc,
|
||||
char **argn,
|
||||
char **argv,
|
||||
NPSavedData *saved)
|
||||
{
|
||||
/* instance initialization function */
|
||||
PluginObject *obj;
|
||||
GError *error = NULL;
|
||||
|
||||
g_debug ("plugin created");
|
||||
|
||||
if (!check_origin_and_protocol (instance))
|
||||
return NPERR_GENERIC_ERROR;
|
||||
|
||||
/* set windowless mode */
|
||||
funcs.setvalue(instance, NPPVpluginWindowBool, NULL);
|
||||
|
||||
g_debug ("creating scriptable object");
|
||||
init_methods_and_properties ();
|
||||
obj = (PluginObject *) funcs.createobject (instance, &plugin_class);
|
||||
instance->pdata = obj;
|
||||
|
||||
obj->proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
|
||||
G_DBUS_PROXY_FLAGS_NONE,
|
||||
NULL, /* interface info */
|
||||
"org.gnome.Shell",
|
||||
"/org/gnome/Shell",
|
||||
"org.gnome.Shell.Extensions",
|
||||
NULL, /* GCancellable */
|
||||
&error);
|
||||
if (!obj->proxy)
|
||||
{
|
||||
/* ignore error if the shell is not running, otherwise warn */
|
||||
if (!g_error_matches (error, G_DBUS_ERROR, G_DBUS_ERROR_NAME_HAS_NO_OWNER))
|
||||
{
|
||||
g_warning ("Failed to set up Shell proxy: %s", error->message);
|
||||
}
|
||||
g_clear_error (&error);
|
||||
return NPERR_GENERIC_ERROR;
|
||||
}
|
||||
|
||||
obj->settings = g_settings_new (SHELL_SCHEMA);
|
||||
obj->signal_id = g_signal_connect (obj->proxy, "g-signal",
|
||||
G_CALLBACK (on_shell_signal), obj);
|
||||
obj->watch_name_id = g_bus_watch_name (G_BUS_TYPE_SESSION,
|
||||
"org.gnome.Shell",
|
||||
G_BUS_NAME_WATCHER_FLAGS_NONE,
|
||||
on_shell_appeared,
|
||||
NULL,
|
||||
obj,
|
||||
NULL);
|
||||
|
||||
g_debug ("plugin created successfully");
|
||||
|
||||
return NPERR_NO_ERROR;
|
||||
}
|
||||
|
||||
NPError
|
||||
NPP_Destroy(NPP instance,
|
||||
NPSavedData **saved)
|
||||
{
|
||||
/* instance finalization function */
|
||||
PluginObject *obj = (PluginObject *) instance->pdata;
|
||||
|
||||
if (!obj)
|
||||
return NPERR_INVALID_INSTANCE_ERROR;
|
||||
|
||||
g_debug ("plugin destroyed");
|
||||
|
||||
g_signal_handler_disconnect (obj->proxy, obj->signal_id);
|
||||
g_object_unref (obj->proxy);
|
||||
|
||||
if (obj->listener)
|
||||
funcs.releaseobject (obj->listener);
|
||||
|
||||
if (obj->restart_listener)
|
||||
funcs.releaseobject (obj->restart_listener);
|
||||
|
||||
if (obj->watch_name_id)
|
||||
g_bus_unwatch_name (obj->watch_name_id);
|
||||
|
||||
funcs.releaseobject((NPObject *)obj);
|
||||
|
||||
return NPERR_NO_ERROR;
|
||||
}
|
||||
|
||||
NPError
|
||||
NPP_GetValue(NPP instance,
|
||||
NPPVariable variable,
|
||||
@ -1043,13 +1026,10 @@ NPP_GetValue(NPP instance,
|
||||
switch (variable) {
|
||||
case NPPVpluginScriptableNPObject:
|
||||
g_debug ("creating scriptable object");
|
||||
init_methods_and_properties ();
|
||||
if (!instance->pdata)
|
||||
return NPERR_INVALID_INSTANCE_ERROR;
|
||||
|
||||
*(NPObject**)value = funcs.createobject (instance, &plugin_class);
|
||||
break;
|
||||
|
||||
case NPPVpluginNeedsXEmbed:
|
||||
*(bool *)value = TRUE;
|
||||
*(NPObject**)value = instance->pdata;
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -1067,3 +1047,11 @@ NPP_SetWindow(NPP instance,
|
||||
{
|
||||
return NPERR_NO_ERROR;
|
||||
}
|
||||
|
||||
int16_t
|
||||
NPP_HandleEvent(NPP instance,
|
||||
void *event)
|
||||
{
|
||||
/* Ignore the event */
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
AC_PREREQ(2.63)
|
||||
AC_INIT([gnome-shell],[3.18.1],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
|
||||
AC_INIT([gnome-shell],[3.19.2],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
|
||||
AX_IS_RELEASE([git-directory])
|
||||
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
@ -77,7 +77,7 @@ AC_MSG_RESULT($enable_systemd)
|
||||
CLUTTER_MIN_VERSION=1.21.5
|
||||
GOBJECT_INTROSPECTION_MIN_VERSION=1.45.4
|
||||
GJS_MIN_VERSION=1.39.0
|
||||
MUTTER_MIN_VERSION=3.18.1
|
||||
MUTTER_MIN_VERSION=3.19.2
|
||||
GTK_MIN_VERSION=3.15.0
|
||||
GIO_MIN_VERSION=2.45.3
|
||||
LIBECAL_MIN_VERSION=3.5.3
|
||||
@ -117,7 +117,7 @@ PKG_CHECK_MODULES(GNOME_SHELL_JS, gio-2.0 gjs-internals-1.0 >= $GJS_MIN_VERSION)
|
||||
PKG_CHECK_MODULES(ST, clutter-1.0 gtk+-3.0 libcroco-0.6 >= 0.6.8 x11)
|
||||
PKG_CHECK_MODULES(SHELL_PERF_HELPER, gtk+-3.0 gio-2.0)
|
||||
PKG_CHECK_MODULES(SHELL_HOTPLUG_SNIFFER, gio-2.0 gdk-pixbuf-2.0)
|
||||
PKG_CHECK_MODULES(TRAY, gtk+-3.0)
|
||||
PKG_CHECK_MODULES(TRAY, clutter-1.0 gtk+-3.0)
|
||||
PKG_CHECK_MODULES(GVC, libpulse >= $PULSE_MIN_VERS libpulse-mainloop-glib gobject-2.0)
|
||||
PKG_CHECK_MODULES(DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 3.13.1)
|
||||
|
||||
|
@ -2,7 +2,7 @@ CLEANFILES =
|
||||
NULL =
|
||||
|
||||
desktopdir=$(datadir)/applications
|
||||
desktop_DATA = gnome-shell.desktop gnome-shell-wayland.desktop gnome-shell-extension-prefs.desktop
|
||||
desktop_DATA = org.gnome.Shell.desktop gnome-shell-extension-prefs.desktop
|
||||
|
||||
if HAVE_NETWORKMANAGER
|
||||
desktop_DATA += org.gnome.Shell.PortalHelper.desktop
|
||||
@ -104,8 +104,7 @@ convertdir = $(datadir)/GConf/gsettings
|
||||
convert_DATA = gnome-shell-overrides.convert
|
||||
|
||||
EXTRA_DIST = \
|
||||
gnome-shell.desktop.in.in \
|
||||
gnome-shell-wayland.desktop.in.in \
|
||||
org.gnome.Shell.desktop.in.in \
|
||||
gnome-shell-extension-prefs.desktop.in.in \
|
||||
$(introspection_DATA) \
|
||||
$(menu_DATA) \
|
||||
@ -121,8 +120,7 @@ EXTRA_DIST = \
|
||||
$(NULL)
|
||||
|
||||
CLEANFILES += \
|
||||
gnome-shell.desktop.in \
|
||||
gnome-shell-wayland.desktop.in \
|
||||
org.gnome.Shell.desktop.in \
|
||||
gnome-shell-extension-prefs.in \
|
||||
$(desktop_DATA) \
|
||||
$(keys_DATA) \
|
||||
|
@ -1,15 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
_Name=GNOME Shell (wayland compositor)
|
||||
_Comment=Window management and application launching
|
||||
Exec=@bindir@/gnome-shell --wayland --display-server
|
||||
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=DisplayServer
|
||||
X-GNOME-Autostart-Notify=true
|
||||
X-GNOME-AutoRestart=false
|
@ -10,7 +10,7 @@ X-GNOME-Bugzilla-Version=@VERSION@
|
||||
Categories=GNOME;GTK;Core;
|
||||
OnlyShowIn=GNOME;
|
||||
NoDisplay=true
|
||||
X-GNOME-Autostart-Phase=WindowManager
|
||||
X-GNOME-Autostart-Phase=DisplayServer
|
||||
X-GNOME-Provides=panel;windowmanager;
|
||||
X-GNOME-Autostart-Notify=true
|
||||
X-GNOME-AutoRestart=false
|
@ -72,6 +72,16 @@
|
||||
This key sets the default state of the checkbox.
|
||||
</_description>
|
||||
</key>
|
||||
<key name="had-bluetooth-devices-setup" type="b">
|
||||
<default>false</default>
|
||||
<_summary>Whether the default Bluetooth adapter had set up devices associated to it</_summary>
|
||||
<_description>
|
||||
The shell will only show a Bluetooth menu item if a Bluetooth
|
||||
adapter is powered, or if there were devices set up associated
|
||||
with the default adapter. This will be reset if the default
|
||||
adapter is ever seen not to have devices associated to it.
|
||||
</_description>
|
||||
</key>
|
||||
<child name="calendar" schema="org.gnome.shell.calendar"/>
|
||||
<child name="keybindings" schema="org.gnome.shell.keybindings"/>
|
||||
<child name="keyboard" schema="org.gnome.shell.keyboard"/>
|
||||
|
@ -41,9 +41,9 @@ stage {
|
||||
icon-shadow: 0 1px black;
|
||||
box-shadow: inset 0px 0px 0px 1px #215d9c; }
|
||||
.button:insensitive {
|
||||
color: #7f7f7f;
|
||||
color: gray;
|
||||
border-color: rgba(0, 0, 0, 0.7);
|
||||
background-color: rgba(62, 67, 68, 0.7);
|
||||
background-color: rgba(62, 67, 69, 0.7);
|
||||
box-shadow: none;
|
||||
text-shadow: none;
|
||||
icon-shadow: none; }
|
||||
@ -65,9 +65,9 @@ stage {
|
||||
icon-shadow: 0 1px black;
|
||||
padding: 12px; }
|
||||
.modal-dialog-linked-button:insensitive {
|
||||
color: #7f7f7f;
|
||||
color: gray;
|
||||
border-color: rgba(0, 0, 0, 0.7);
|
||||
background-color: rgba(62, 67, 68, 0.7);
|
||||
background-color: rgba(62, 67, 69, 0.7);
|
||||
box-shadow: none;
|
||||
text-shadow: none;
|
||||
icon-shadow: none; }
|
||||
@ -107,8 +107,8 @@ StEntry {
|
||||
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.4);
|
||||
border-color: rgba(166, 166, 166, 0.5); }
|
||||
StEntry:insensitive {
|
||||
color: #7f7f7f;
|
||||
border-color: #0d0d0d;
|
||||
color: gray;
|
||||
border-color: #0e0e0e;
|
||||
box-shadow: none; }
|
||||
StEntry StIcon.capslock-warning {
|
||||
icon-size: 16px;
|
||||
@ -142,7 +142,7 @@ StScrollBar {
|
||||
.slider {
|
||||
height: 1em;
|
||||
-slider-height: 0.3em;
|
||||
-slider-background-color: #0d0d0d;
|
||||
-slider-background-color: #0e0e0e;
|
||||
-slider-border-color: black;
|
||||
-slider-active-background-color: #215d9c;
|
||||
-slider-active-border-color: #184472;
|
||||
@ -625,6 +625,8 @@ StScrollBar {
|
||||
#panel .panel-status-indicators-box,
|
||||
#panel .panel-status-menu-box {
|
||||
spacing: 2px; }
|
||||
#panel .power-status.panel-status-indicators-box {
|
||||
spacing: 0; }
|
||||
#panel .screencast-indicator {
|
||||
color: #f57900; }
|
||||
|
||||
@ -735,7 +737,7 @@ StScrollBar {
|
||||
border-left-width: 1px; }
|
||||
|
||||
.calendar-nonwork-day {
|
||||
color: #7f7f7f; }
|
||||
color: gray; }
|
||||
|
||||
.calendar-today {
|
||||
font-weight: bold;
|
||||
@ -960,10 +962,14 @@ StScrollBar {
|
||||
.search-entry {
|
||||
width: 320px;
|
||||
padding: 7px 9px;
|
||||
border-radius: 6px; }
|
||||
border-radius: 6px;
|
||||
border-color: #747467;
|
||||
color: #eeeeec;
|
||||
background-color: #2e3436; }
|
||||
.search-entry:focus {
|
||||
padding: 6px 8px;
|
||||
border-width: 2px; }
|
||||
border-width: 2px;
|
||||
border-color: #215d9c; }
|
||||
.search-entry .search-entry-icon {
|
||||
icon-size: 1em;
|
||||
padding: 0 4px;
|
||||
@ -1491,9 +1497,9 @@ StScrollBar {
|
||||
text-shadow: none;
|
||||
icon-shadow: none; }
|
||||
.login-dialog .modal-dialog-button:default:insensitive {
|
||||
color: #7f7f7f;
|
||||
color: gray;
|
||||
border-color: rgba(0, 0, 0, 0.7);
|
||||
background-color: rgba(62, 67, 68, 0.7);
|
||||
background-color: rgba(62, 67, 69, 0.7);
|
||||
box-shadow: none;
|
||||
text-shadow: none;
|
||||
icon-shadow: none; }
|
||||
|
Submodule data/theme/gnome-shell-sass updated: d85e53fbd9...63e059c923
@ -41,9 +41,9 @@ stage {
|
||||
icon-shadow: 0 1px black;
|
||||
box-shadow: inset 0px 0px 0px 1px #215d9c; }
|
||||
.button:insensitive {
|
||||
color: #939695;
|
||||
color: #949796;
|
||||
border-color: rgba(0, 0, 0, 0.7);
|
||||
background-color: rgba(66, 71, 73, 0.7);
|
||||
background-color: rgba(66, 72, 73, 0.7);
|
||||
box-shadow: none;
|
||||
text-shadow: none;
|
||||
icon-shadow: none; }
|
||||
@ -65,9 +65,9 @@ stage {
|
||||
icon-shadow: 0 1px black;
|
||||
padding: 12px; }
|
||||
.modal-dialog-linked-button:insensitive {
|
||||
color: #939695;
|
||||
color: #949796;
|
||||
border-color: rgba(0, 0, 0, 0.7);
|
||||
background-color: rgba(66, 71, 73, 0.7);
|
||||
background-color: rgba(66, 72, 73, 0.7);
|
||||
box-shadow: none;
|
||||
text-shadow: none;
|
||||
icon-shadow: none; }
|
||||
@ -107,8 +107,8 @@ StEntry {
|
||||
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.4);
|
||||
border-color: rgba(154, 154, 142, 0.5); }
|
||||
StEntry:insensitive {
|
||||
color: #939695;
|
||||
border-color: #323636;
|
||||
color: #949796;
|
||||
border-color: #333636;
|
||||
box-shadow: none; }
|
||||
StEntry StIcon.capslock-warning {
|
||||
icon-size: 16px;
|
||||
@ -131,10 +131,10 @@ StScrollBar {
|
||||
background-color: transparent; }
|
||||
StScrollBar StButton#vhandle, StScrollBar StButton#hhandle {
|
||||
border-radius: 8px;
|
||||
background-color: #a5a8a6;
|
||||
background-color: #a6a8a7;
|
||||
margin: 3px; }
|
||||
StScrollBar StButton#vhandle:hover, StScrollBar StButton#hhandle:hover {
|
||||
background-color: #c9cbc9; }
|
||||
background-color: #cacbc9; }
|
||||
StScrollBar StButton#vhandle:active, StScrollBar StButton#hhandle:active {
|
||||
background-color: #215d9c; }
|
||||
|
||||
@ -142,7 +142,7 @@ StScrollBar {
|
||||
.slider {
|
||||
height: 1em;
|
||||
-slider-height: 0.3em;
|
||||
-slider-background-color: #323636;
|
||||
-slider-background-color: #333636;
|
||||
-slider-border-color: #1c1f1f;
|
||||
-slider-active-background-color: #215d9c;
|
||||
-slider-active-border-color: #184472;
|
||||
@ -625,6 +625,8 @@ StScrollBar {
|
||||
#panel .panel-status-indicators-box,
|
||||
#panel .panel-status-menu-box {
|
||||
spacing: 2px; }
|
||||
#panel .power-status.panel-status-indicators-box {
|
||||
spacing: 0; }
|
||||
#panel .screencast-indicator {
|
||||
color: #f57900; }
|
||||
|
||||
@ -735,7 +737,7 @@ StScrollBar {
|
||||
border-left-width: 1px; }
|
||||
|
||||
.calendar-nonwork-day {
|
||||
color: #939695; }
|
||||
color: #949796; }
|
||||
|
||||
.calendar-today {
|
||||
font-weight: bold;
|
||||
@ -960,10 +962,14 @@ StScrollBar {
|
||||
.search-entry {
|
||||
width: 320px;
|
||||
padding: 7px 9px;
|
||||
border-radius: 6px; }
|
||||
border-radius: 6px;
|
||||
border-color: #747467;
|
||||
color: #eeeeec;
|
||||
background-color: #2e3436; }
|
||||
.search-entry:focus {
|
||||
padding: 6px 8px;
|
||||
border-width: 2px; }
|
||||
border-width: 2px;
|
||||
border-color: #215d9c; }
|
||||
.search-entry .search-entry-icon {
|
||||
icon-size: 1em;
|
||||
padding: 0 4px;
|
||||
@ -1491,9 +1497,9 @@ StScrollBar {
|
||||
text-shadow: none;
|
||||
icon-shadow: none; }
|
||||
.login-dialog .modal-dialog-button:default:insensitive {
|
||||
color: #939695;
|
||||
color: #949796;
|
||||
border-color: rgba(0, 0, 0, 0.7);
|
||||
background-color: rgba(66, 71, 73, 0.7);
|
||||
background-color: rgba(66, 72, 73, 0.7);
|
||||
box-shadow: none;
|
||||
text-shadow: none;
|
||||
icon-shadow: none; }
|
||||
|
@ -96,7 +96,7 @@ const UserListItem = new Lang.Class({
|
||||
},
|
||||
|
||||
_onDestroy: function() {
|
||||
this._user.disconnect(this._userChangedId);
|
||||
this.user.disconnect(this._userChangedId);
|
||||
},
|
||||
|
||||
_onClicked: function() {
|
||||
@ -924,11 +924,7 @@ const LoginDialog = new Lang.Class({
|
||||
},
|
||||
onUpdateScope: this,
|
||||
onComplete: function() {
|
||||
let id = Mainloop.idle_add(Lang.bind(this, function() {
|
||||
this._greeter.call_start_session_when_ready_sync(serviceName, true, null);
|
||||
return GLib.SOURCE_REMOVE;
|
||||
}));
|
||||
GLib.Source.set_name_by_id(id, '[gnome-shell] this._greeter.call_start_session_when_ready_sync');
|
||||
this._greeter.call_start_session_when_ready_sync(serviceName, true, null);
|
||||
},
|
||||
onCompleteScope: this });
|
||||
},
|
||||
|
@ -7,7 +7,7 @@ const St = imports.gi.St;
|
||||
const Signals = imports.signals;
|
||||
const Atk = imports.gi.Atk;
|
||||
|
||||
const ANIMATED_ICON_UPDATE_TIMEOUT = 14;
|
||||
const ANIMATED_ICON_UPDATE_TIMEOUT = 16;
|
||||
|
||||
const Animation = new Lang.Class({
|
||||
Name: 'Animation',
|
||||
@ -33,7 +33,7 @@ const Animation = new Lang.Class({
|
||||
if (this._frame == 0)
|
||||
this._showFrame(0);
|
||||
|
||||
this._timeoutId = Mainloop.timeout_add(this._speed, Lang.bind(this, this._update));
|
||||
this._timeoutId = GLib.timeout_add(GLib.PRIORITY_LOW, this._speed, Lang.bind(this, this._update));
|
||||
GLib.Source.set_name_by_id(this._timeoutId, '[gnome-shell] this._update');
|
||||
}
|
||||
|
||||
|
@ -26,6 +26,7 @@ const RENAMED_DESKTOP_IDS = {
|
||||
'gnome-photos.desktop': 'org.gnome.Photos.desktop',
|
||||
'gnome-screenshot.desktop': 'org.gnome.Screenshot.desktop',
|
||||
'gnome-software.desktop': 'org.gnome.Software.desktop',
|
||||
'gnome-terminal.desktop': 'org.gnome.Terminal.desktop',
|
||||
'gnome-weather.desktop': 'org.gnome.Weather.Application.desktop',
|
||||
'gnomine.desktop': 'gnome-mines.desktop',
|
||||
'gnotravex.desktop': 'gnome-tetravex.desktop',
|
||||
|
@ -725,7 +725,7 @@ const Calendar = new Lang.Class({
|
||||
// nRows here means 6 weeks + one header + one navbar
|
||||
let nRows = 8;
|
||||
while (row < 8) {
|
||||
let button = new St.Button({ label: iter.getDate().toString(),
|
||||
let button = new St.Button({ label: iter.toLocaleFormat(C_("date day number format", "%d")),
|
||||
can_focus: true });
|
||||
let rtl = button.get_text_direction() == Clutter.TextDirection.RTL;
|
||||
|
||||
|
@ -313,6 +313,10 @@ const AutorunSource = new Lang.Class({
|
||||
|
||||
getIcon: function() {
|
||||
return this.mount.get_icon();
|
||||
},
|
||||
|
||||
_createPolicy: function() {
|
||||
return new MessageTray.NotificationApplicationPolicy('org.gnome.Nautilus');
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -78,6 +78,7 @@ let _startDate;
|
||||
let _defaultCssStylesheet = null;
|
||||
let _cssStylesheet = null;
|
||||
let _a11ySettings = null;
|
||||
let _themeResource = null;
|
||||
|
||||
function _sessionUpdated() {
|
||||
if (sessionMode.isPrimary)
|
||||
@ -137,9 +138,7 @@ function _initializeUI() {
|
||||
Shell.WindowTracker.get_default();
|
||||
Shell.AppUsage.get_default();
|
||||
|
||||
let resource = Gio.Resource.load(global.datadir + '/gnome-shell-theme.gresource');
|
||||
resource._register();
|
||||
|
||||
reloadThemeResource();
|
||||
_loadDefaultStylesheet();
|
||||
|
||||
// Setup the stage hierarchy early
|
||||
@ -290,6 +289,14 @@ function setThemeStylesheet(cssStylesheet) {
|
||||
_cssStylesheet = cssStylesheet ? Gio.File.new_for_path(cssStylesheet) : null;
|
||||
}
|
||||
|
||||
function reloadThemeResource() {
|
||||
if (_themeResource)
|
||||
_themeResource._unregister();
|
||||
|
||||
_themeResource = Gio.Resource.load(global.datadir + '/gnome-shell-theme.gresource');
|
||||
_themeResource._register();
|
||||
}
|
||||
|
||||
/**
|
||||
* loadTheme:
|
||||
*
|
||||
|
@ -459,7 +459,8 @@ const ActivitiesButton = new Lang.Class({
|
||||
|
||||
if (event.type() == Clutter.EventType.TOUCH_END ||
|
||||
event.type() == Clutter.EventType.BUTTON_RELEASE)
|
||||
Main.overview.toggle();
|
||||
if (Main.overview.shouldToggleByCornerOrButton())
|
||||
Main.overview.toggle();
|
||||
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
},
|
||||
@ -467,7 +468,8 @@ const ActivitiesButton = new Lang.Class({
|
||||
_onKeyRelease: function(actor, event) {
|
||||
let symbol = event.get_key_symbol();
|
||||
if (symbol == Clutter.KEY_Return || symbol == Clutter.KEY_space) {
|
||||
Main.overview.toggle();
|
||||
if (Main.overview.shouldToggleByCornerOrButton())
|
||||
Main.overview.toggle();
|
||||
}
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
},
|
||||
|
@ -61,6 +61,7 @@ const RunDialog = new Lang.Class({
|
||||
|
||||
// rt is short for "reload theme"
|
||||
'rt': Lang.bind(this, function() {
|
||||
Main.reloadThemeResource();
|
||||
Main.loadTheme();
|
||||
})
|
||||
};
|
||||
|
@ -1,11 +1,8 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
|
||||
const Clutter = imports.gi.Clutter;
|
||||
const GLib = imports.gi.GLib;
|
||||
const Gio = imports.gi.Gio;
|
||||
const GnomeBluetooth = imports.gi.GnomeBluetooth;
|
||||
const Lang = imports.lang;
|
||||
const St = imports.gi.St;
|
||||
|
||||
const Main = imports.ui.main;
|
||||
const PanelMenu = imports.ui.panelMenu;
|
||||
@ -23,6 +20,8 @@ const RfkillManagerInterface = '<node> \
|
||||
|
||||
const RfkillManagerProxy = Gio.DBusProxy.makeProxyWrapper(RfkillManagerInterface);
|
||||
|
||||
const HAD_BLUETOOTH_DEVICES_SETUP = 'had-bluetooth-devices-setup';
|
||||
|
||||
const Indicator = new Lang.Class({
|
||||
Name: 'BTIndicator',
|
||||
Extends: PanelMenu.SystemIndicator,
|
||||
@ -32,6 +31,7 @@ const Indicator = new Lang.Class({
|
||||
|
||||
this._indicator = this._addIndicator();
|
||||
this._indicator.icon_name = 'bluetooth-active-symbolic';
|
||||
this._hadSetupDevices = global.settings.get_boolean(HAD_BLUETOOTH_DEVICES_SETUP);
|
||||
|
||||
this._proxy = new RfkillManagerProxy(Gio.DBus.session, BUS_NAME, OBJECT_PATH,
|
||||
Lang.bind(this, function(proxy, error) {
|
||||
@ -44,13 +44,15 @@ const Indicator = new Lang.Class({
|
||||
}));
|
||||
this._proxy.connect('g-properties-changed', Lang.bind(this, this._sync));
|
||||
|
||||
// The Bluetooth menu only appears when Bluetooth is in use,
|
||||
// so just statically build it with a "Turn Off" menu item.
|
||||
this._item = new PopupMenu.PopupSubMenuMenuItem('', true);
|
||||
this._item = new PopupMenu.PopupSubMenuMenuItem(_("Bluetooth"), true);
|
||||
this._item.icon.icon_name = 'bluetooth-active-symbolic';
|
||||
this._item.menu.addAction(_("Turn Off"), Lang.bind(this, function() {
|
||||
this._proxy.BluetoothAirplaneMode = true;
|
||||
|
||||
this._toggleItem = new PopupMenu.PopupMenuItem('');
|
||||
this._toggleItem.connect('activate', Lang.bind(this, function() {
|
||||
this._proxy.BluetoothAirplaneMode = !this._proxy.BluetoothAirplaneMode;
|
||||
}));
|
||||
this._item.menu.addMenuItem(this._toggleItem);
|
||||
|
||||
this._item.menu.addSettingsAction(_("Bluetooth Settings"), 'gnome-bluetooth-panel.desktop');
|
||||
this.menu.addMenuItem(this._item);
|
||||
|
||||
@ -68,42 +70,75 @@ const Indicator = new Lang.Class({
|
||||
while (ret) {
|
||||
let isDefault = this._model.get_value(iter,
|
||||
GnomeBluetooth.Column.DEFAULT);
|
||||
if (isDefault)
|
||||
let isPowered = this._model.get_value(iter,
|
||||
GnomeBluetooth.Column.POWERED);
|
||||
if (isDefault && isPowered)
|
||||
return iter;
|
||||
ret = this._model.iter_next(iter);
|
||||
}
|
||||
return null;
|
||||
},
|
||||
|
||||
_getNConnectedDevices: function() {
|
||||
// nDevices is the number of devices setup for the current default
|
||||
// adapter if one exists and is powered. If unpowered or unavailable,
|
||||
// nDevice is "1" if it had setup devices associated to it the last
|
||||
// time it was seen, and "-1" if not.
|
||||
//
|
||||
// nConnectedDevices is the number of devices connected to the default
|
||||
// adapter if one exists and is powered, or -1 if it's not available.
|
||||
_getNDevices: function() {
|
||||
let adapter = this._getDefaultAdapter();
|
||||
if (!adapter)
|
||||
return 0;
|
||||
return [ this._hadSetupDevices ? 1 : -1, -1 ];
|
||||
|
||||
let nConnectedDevices = 0;
|
||||
let nDevices = 0;
|
||||
let [ret, iter] = this._model.iter_children(adapter);
|
||||
while (ret) {
|
||||
let isConnected = this._model.get_value(iter,
|
||||
GnomeBluetooth.Column.CONNECTED);
|
||||
if (isConnected)
|
||||
nConnectedDevices++;
|
||||
|
||||
let isPaired = this._model.get_value(iter,
|
||||
GnomeBluetooth.Column.PAIRED);
|
||||
let isTrusted = this._model.get_value(iter,
|
||||
GnomeBluetooth.Column.TRUSTED);
|
||||
if (isPaired || isTrusted)
|
||||
nDevices++;
|
||||
ret = this._model.iter_next(iter);
|
||||
}
|
||||
return nDevices;
|
||||
|
||||
if (this._hadSetupDevices != (nDevices > 0)) {
|
||||
this._hadSetupDevices = !this._hadSetupDevices;
|
||||
global.settings.set_boolean(HAD_BLUETOOTH_DEVICES_SETUP, this._hadSetupDevices);
|
||||
}
|
||||
|
||||
return [ nDevices, nConnectedDevices];
|
||||
},
|
||||
|
||||
_sync: function() {
|
||||
let nDevices = this._getNConnectedDevices();
|
||||
let [ nDevices, nConnectedDevices ] = this._getNDevices();
|
||||
let sensitive = !Main.sessionMode.isLocked && !Main.sessionMode.isGreeter;
|
||||
|
||||
this.menu.setSensitive(sensitive);
|
||||
this._indicator.visible = nDevices > 0;
|
||||
this._item.actor.visible = this._proxy.BluetoothHasAirplaneMode && !this._proxy.BluetoothAirplaneMode;
|
||||
this._indicator.visible = nConnectedDevices > 0;
|
||||
|
||||
// Remember if there were setup devices and show the menu
|
||||
// if we've seen setup devices and we're not hard blocked
|
||||
if (nDevices > 0)
|
||||
this._item.actor.visible = !this._proxy.BluetoothHardwareAirplaneMode;
|
||||
else
|
||||
this._item.actor.visible = this._proxy.BluetoothHasAirplaneMode && !this._proxy.BluetoothAirplaneMode;
|
||||
|
||||
if (nConnectedDevices > 0)
|
||||
/* Translators: this is the number of connected bluetooth devices */
|
||||
this._item.label.text = ngettext("%d Connected", "%d Connected", nDevices).format(nDevices);
|
||||
this._item.label.text = ngettext("%d Connected", "%d Connected", nConnectedDevices).format(nConnectedDevices);
|
||||
else if (nConnectedDevices == -1)
|
||||
this._item.label.text = _("Off");
|
||||
else
|
||||
this._item.label.text = _("Not In Use");
|
||||
|
||||
this._toggleItem.label.text = this._proxy.BluetoothAirplaneMode ? _("Turn On") : _("Turn Off");
|
||||
},
|
||||
});
|
||||
|
@ -1,6 +1,8 @@
|
||||
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
||||
|
||||
const Gio = imports.gi.Gio;
|
||||
const Clutter = imports.gi.Clutter;
|
||||
const St = imports.gi.St;
|
||||
const Lang = imports.lang;
|
||||
const UPower = imports.gi.UPowerGlib;
|
||||
|
||||
@ -25,6 +27,8 @@ const DisplayDeviceInterface = '<node> \
|
||||
|
||||
const PowerManagerProxy = Gio.DBusProxy.makeProxyWrapper(DisplayDeviceInterface);
|
||||
|
||||
const SHOW_BATTERY_PERCENTAGE = 'show-battery-percentage';
|
||||
|
||||
const Indicator = new Lang.Class({
|
||||
Name: 'PowerIndicator',
|
||||
Extends: PanelMenu.SystemIndicator,
|
||||
@ -32,7 +36,15 @@ const Indicator = new Lang.Class({
|
||||
_init: function() {
|
||||
this.parent();
|
||||
|
||||
this._desktopSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.interface' });
|
||||
this._desktopSettings.connect('changed::' + SHOW_BATTERY_PERCENTAGE,
|
||||
Lang.bind(this, this._sync));
|
||||
|
||||
this._indicator = this._addIndicator();
|
||||
this._percentageLabel = new St.Label({ y_expand: true,
|
||||
y_align: Clutter.ActorAlign.CENTER });
|
||||
this.indicators.add(this._percentageLabel, { expand: true, y_fill: true });
|
||||
this.indicators.add_style_class_name('power-status');
|
||||
|
||||
this._proxy = new PowerManagerProxy(Gio.DBus.system, BUS_NAME, OBJECT_PATH,
|
||||
Lang.bind(this, function(proxy, error) {
|
||||
@ -83,12 +95,12 @@ const Indicator = new Lang.Class({
|
||||
|
||||
if (this._proxy.State == UPower.DeviceState.DISCHARGING) {
|
||||
// Translators: this is <hours>:<minutes> Remaining (<percentage>)
|
||||
return _("%d\u2236%02d Remaining (%d%%)").format(hours, minutes, this._proxy.Percentage);
|
||||
return _("%d\u2236%02d Remaining (%d\u2009%%)").format(hours, minutes, this._proxy.Percentage);
|
||||
}
|
||||
|
||||
if (this._proxy.State == UPower.DeviceState.CHARGING) {
|
||||
// Translators: this is <hours>:<minutes> Until Full (<percentage>)
|
||||
return _("%d\u2236%02d Until Full (%d%%)").format(hours, minutes, this._proxy.Percentage);
|
||||
return _("%d\u2236%02d Until Full (%d\u2009%%)").format(hours, minutes, this._proxy.Percentage);
|
||||
}
|
||||
|
||||
return null;
|
||||
@ -99,10 +111,12 @@ const Indicator = new Lang.Class({
|
||||
let visible = this._proxy.IsPresent;
|
||||
if (visible) {
|
||||
this._item.actor.show();
|
||||
this._percentageLabel.visible = this._desktopSettings.get_boolean(SHOW_BATTERY_PERCENTAGE);
|
||||
} else {
|
||||
// If there's no battery, then we use the power icon.
|
||||
this._item.actor.hide();
|
||||
this._indicator.icon_name = 'system-shutdown-symbolic';
|
||||
this._percentageLabel.hide();
|
||||
return;
|
||||
}
|
||||
|
||||
@ -111,6 +125,14 @@ const Indicator = new Lang.Class({
|
||||
this._indicator.icon_name = icon;
|
||||
this._item.icon.icon_name = icon;
|
||||
|
||||
// The icon label
|
||||
let label
|
||||
if (this._proxy.State == UPower.DeviceState.FULLY_CHARGED)
|
||||
label = _("%d\u2009%%").format(100);
|
||||
else
|
||||
label = _("%d\u2009%%").format(this._proxy.Percentage);
|
||||
this._percentageLabel.clutter_text.set_markup('<span size="smaller">' + label + '</span>');
|
||||
|
||||
// The status label
|
||||
this._item.label.text = this._getStatus();
|
||||
},
|
||||
|
@ -1235,15 +1235,17 @@ const WindowManager = new Lang.Class({
|
||||
},
|
||||
|
||||
_fullscreenWindow: function(shellwm, actor, oldFrameRect, oldBufferRect) {
|
||||
actor.translation_x = oldFrameRect.x;
|
||||
actor.translation_y = oldFrameRect.y;
|
||||
let monitor = Main.layoutManager.monitors[actor.meta_window.get_monitor()];
|
||||
actor.translation_x = oldFrameRect.x - monitor.x;
|
||||
actor.translation_y = oldFrameRect.y - monitor.y;
|
||||
this._fullscreenAnimation(shellwm, actor, oldFrameRect);
|
||||
},
|
||||
|
||||
_unfullscreenWindow: function(shellwm, actor, oldFrameRect, oldBufferRect) {
|
||||
let targetRect = actor.meta_window.get_frame_rect();
|
||||
actor.translation_x = -targetRect.x;
|
||||
actor.translation_y = -targetRect.y;
|
||||
let monitor = Main.layoutManager.monitors[actor.meta_window.get_monitor()];
|
||||
actor.translation_x = -(targetRect.x - monitor.x);
|
||||
actor.translation_y = -(targetRect.y - monitor.y);
|
||||
this._fullscreenAnimation(shellwm, actor, oldFrameRect);
|
||||
},
|
||||
|
||||
@ -1294,7 +1296,10 @@ const WindowManager = new Lang.Class({
|
||||
transition: 'easeOutQuad',
|
||||
onComplete: this._sizeChangeWindowDone,
|
||||
onCompleteScope: this,
|
||||
onCompleteParams: [shellwm, actor]
|
||||
onCompleteParams: [shellwm, actor],
|
||||
onOverwrite: this._sizeChangeWindowOverwritten,
|
||||
onOverwriteScope: this,
|
||||
onOverwriteParams: [shellwm, actor]
|
||||
});
|
||||
|
||||
// Now unfreeze actor updates, to get it to the new size.
|
||||
@ -1319,6 +1324,16 @@ const WindowManager = new Lang.Class({
|
||||
}
|
||||
},
|
||||
|
||||
_sizeChangeWindowOverwritten: function(shellwm, actor) {
|
||||
if (this._removeEffect(this._resizing, actor)) {
|
||||
let actorClone = actor.__fullscreenClone;
|
||||
if (actorClone) {
|
||||
actorClone.destroy();
|
||||
delete actor.__fullscreenClone;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_hasAttachedDialogs: function(window, ignoreWindow) {
|
||||
var count = 0;
|
||||
window.foreach_transient(function(win) {
|
||||
|
@ -214,7 +214,7 @@ const WindowMenuManager = new Lang.Class({
|
||||
menu.close();
|
||||
});
|
||||
|
||||
this._sourceActor.set_size(rect.width, rect.height);
|
||||
this._sourceActor.set_size(Math.max(1, rect.width), Math.max(1, rect.height));
|
||||
this._sourceActor.set_position(rect.x, rect.y);
|
||||
this._sourceActor.show();
|
||||
|
||||
|
@ -140,7 +140,7 @@
|
||||
|
||||
<para>
|
||||
<filename>/usr/share/gnome-session/sessions/gnome.session</filename>,
|
||||
<filename>/usr/share/applications/gnome-shell.desktop</filename>.</para>
|
||||
<filename>/usr/share/applications/org.gnome.Shell.desktop</filename>.</para>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
|
@ -24,6 +24,7 @@ fi
|
||||
fr
|
||||
fur
|
||||
ga
|
||||
gd
|
||||
gl
|
||||
gu
|
||||
he
|
||||
|
@ -2,9 +2,8 @@
|
||||
# Please keep this file sorted alphabetically.
|
||||
[encoding: UTF-8]
|
||||
data/50-gnome-shell-system.xml.in
|
||||
data/gnome-shell.desktop.in.in
|
||||
data/gnome-shell-extension-prefs.desktop.in.in
|
||||
data/gnome-shell-wayland.desktop.in.in
|
||||
data/org.gnome.Shell.desktop.in.in
|
||||
data/org.gnome.shell.gschema.xml.in.in
|
||||
data/org.gnome.Shell.PortalHelper.desktop.in
|
||||
js/extensionPrefs/main.js
|
||||
|
16
po/ar.po
16
po/ar.po
@ -1223,13 +1223,13 @@ msgstr "<غير معروفة>"
|
||||
#: ../js/ui/status/network.js:451 ../js/ui/status/network.js:1308
|
||||
#, javascript-format
|
||||
msgid "%s Off"
|
||||
msgstr "%s مغلق"
|
||||
msgstr "%s مغلق"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:454
|
||||
#, javascript-format
|
||||
msgid "%s Connected"
|
||||
msgstr "%s مُتصل"
|
||||
msgstr "%s مُتصل"
|
||||
|
||||
#. 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);
|
||||
@ -1237,19 +1237,19 @@ msgstr "%s مُتصل"
|
||||
#: ../js/ui/status/network.js:459
|
||||
#, javascript-format
|
||||
msgid "%s Unmanaged"
|
||||
msgstr "%s غير مُدار"
|
||||
msgstr "%s غير مُدار"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:462
|
||||
#, javascript-format
|
||||
msgid "%s Disconnecting"
|
||||
msgstr "%s يقطع الاتّصال"
|
||||
msgstr "%s يقطع الاتّصال"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:469 ../js/ui/status/network.js:1300
|
||||
#, javascript-format
|
||||
msgid "%s Connecting"
|
||||
msgstr "%s يتّصل"
|
||||
msgstr "%s يتّصل"
|
||||
|
||||
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
|
||||
#: ../js/ui/status/network.js:472
|
||||
@ -1269,7 +1269,7 @@ msgstr "برمجيات %s المغروسة (Firmware) غير متاحة"
|
||||
#: ../js/ui/status/network.js:484
|
||||
#, javascript-format
|
||||
msgid "%s Unavailable"
|
||||
msgstr "%s غير متاح"
|
||||
msgstr "%s غير متاح"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:487
|
||||
@ -1296,7 +1296,7 @@ msgstr "عتاد %s مُعَطَّل"
|
||||
#: ../js/ui/status/network.js:592
|
||||
#, javascript-format
|
||||
msgid "%s Disabled"
|
||||
msgstr "%s معطّل"
|
||||
msgstr "%s معطّل"
|
||||
|
||||
#: ../js/ui/status/network.js:632
|
||||
msgid "Use as Internet connection"
|
||||
@ -1364,7 +1364,7 @@ msgstr "نقطة اتصال %s نشطة"
|
||||
#: ../js/ui/status/network.js:1311
|
||||
#, javascript-format
|
||||
msgid "%s Not Connected"
|
||||
msgstr "%s غير متّصل"
|
||||
msgstr "%s غير متّصل"
|
||||
|
||||
#: ../js/ui/status/network.js:1411
|
||||
msgid "connecting..."
|
||||
|
42
po/cs.po
42
po/cs.po
@ -12,8 +12,8 @@ msgstr ""
|
||||
"Project-Id-Version: gnome-shell\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||
"shell&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2015-10-05 08:41+0000\n"
|
||||
"PO-Revision-Date: 2015-10-04 11:42-0400\n"
|
||||
"POT-Creation-Date: 2015-10-27 22:11+0000\n"
|
||||
"PO-Revision-Date: 2015-10-28 10:56+0100\n"
|
||||
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
|
||||
"Language-Team: Czech <gnome-cs-list@gnome.org>\n"
|
||||
"Language: cs\n"
|
||||
@ -21,7 +21,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||
"X-Generator: Virtaal 0.7.1\n"
|
||||
"X-Generator: Gtranslator 2.91.7\n"
|
||||
"X-Project-Style: gnome\n"
|
||||
|
||||
#: ../data/50-gnome-shell-system.xml.in.h:1
|
||||
@ -357,7 +357,7 @@ msgstr "(např. uživatel nebo %s)"
|
||||
msgid "Username: "
|
||||
msgstr "Uživatelské jméno: "
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1184
|
||||
#: ../js/gdm/loginDialog.js:1180
|
||||
msgid "Login Window"
|
||||
msgstr "Přihlašovací okno"
|
||||
|
||||
@ -575,6 +575,12 @@ msgstr "Předchozí měsíc"
|
||||
msgid "Next month"
|
||||
msgstr "Následující měsíc"
|
||||
|
||||
#: ../js/ui/calendar.js:728
|
||||
#, javascript-format
|
||||
msgctxt "date day number format"
|
||||
msgid "%d"
|
||||
msgstr "%e"
|
||||
|
||||
#: ../js/ui/calendar.js:783
|
||||
msgid "Week %V"
|
||||
msgstr "Týden %V"
|
||||
@ -625,7 +631,7 @@ msgstr "Externí svazek připojen"
|
||||
msgid "External drive disconnected"
|
||||
msgstr "Externí svazek odpojen"
|
||||
|
||||
#: ../js/ui/components/autorunManager.js:354
|
||||
#: ../js/ui/components/autorunManager.js:351
|
||||
#, javascript-format
|
||||
msgid "Open with %s"
|
||||
msgstr "Otevřít s %s"
|
||||
@ -1021,24 +1027,24 @@ msgstr "Přehled"
|
||||
#. characters.
|
||||
#: ../js/ui/overview.js:244
|
||||
msgid "Type to search…"
|
||||
msgstr "Vyhledávejte psaním…"
|
||||
msgstr "vyhledávejte psaním…"
|
||||
|
||||
#: ../js/ui/panel.js:352
|
||||
#: ../js/ui/panel.js:358
|
||||
msgid "Quit"
|
||||
msgstr "Ukončit"
|
||||
|
||||
#. Translators: If there is no suitable word for "Activities"
|
||||
#. in your language, you can use the word for "Overview".
|
||||
#: ../js/ui/panel.js:404
|
||||
#: ../js/ui/panel.js:414
|
||||
msgid "Activities"
|
||||
msgstr "Činnosti"
|
||||
|
||||
#: ../js/ui/panel.js:650
|
||||
#: ../js/ui/panel.js:695
|
||||
msgctxt "System menu in the top bar"
|
||||
msgid "System"
|
||||
msgstr "Systém"
|
||||
|
||||
#: ../js/ui/panel.js:754
|
||||
#: ../js/ui/panel.js:807
|
||||
msgid "Top Bar"
|
||||
msgstr "Horní lišta"
|
||||
|
||||
@ -1051,15 +1057,15 @@ msgstr "Horní lišta"
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-intl"
|
||||
|
||||
#: ../js/ui/runDialog.js:70
|
||||
#: ../js/ui/runDialog.js:71
|
||||
msgid "Enter a Command"
|
||||
msgstr "Zadejte příkaz:"
|
||||
|
||||
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
|
||||
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
|
||||
msgid "Close"
|
||||
msgstr "Zavřít"
|
||||
|
||||
#: ../js/ui/runDialog.js:281
|
||||
#: ../js/ui/runDialog.js:282
|
||||
msgid "Restarting…"
|
||||
msgstr "Restartuje se…"
|
||||
|
||||
@ -1656,24 +1662,24 @@ msgstr "Použít pro přihlašovací obrazovku zadaný režim, např. „gdm“.
|
||||
msgid "List possible modes"
|
||||
msgstr "Vypsat možné režimy"
|
||||
|
||||
#: ../src/shell-app.c:239
|
||||
#: ../src/shell-app.c:246
|
||||
msgctxt "program"
|
||||
msgid "Unknown"
|
||||
msgstr "Neznámé"
|
||||
|
||||
#: ../src/shell-app.c:480
|
||||
#: ../src/shell-app.c:487
|
||||
#, c-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Nelze spustit „%s“"
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:742
|
||||
#: ../src/shell-keyring-prompt.c:730
|
||||
msgid "Passwords do not match."
|
||||
msgstr "Hesla si neodpovídají."
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:750
|
||||
#: ../src/shell-keyring-prompt.c:738
|
||||
msgid "Password cannot be blank"
|
||||
msgstr "Heslo nemůže být prázdné."
|
||||
|
||||
#: ../src/shell-polkit-authentication-agent.c:346
|
||||
#: ../src/shell-polkit-authentication-agent.c:353
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "Dialogové okno ověření bylo uživatelem zrušeno"
|
||||
|
199
po/es.po
199
po/es.po
@ -11,8 +11,8 @@ msgstr ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell.master\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||
"shell&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2015-10-04 20:38+0000\n"
|
||||
"shell&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2015-11-22 22:13+0000\n"
|
||||
"PO-Revision-Date: 2015-11-23 10:21+0100\n"
|
||||
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
|
||||
"Language-Team: Español; Castellano <gnome-es-list@gnome.org>\n"
|
||||
@ -46,15 +46,6 @@ msgstr "Mostrar todas las aplicaciones"
|
||||
#: ../data/50-gnome-shell-system.xml.in.h:6
|
||||
msgid "Open the application menu"
|
||||
msgstr "Abrir el menú de la aplicación"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "GNOME Shell"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:2
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Gestión de ventanas e inicio de aplicaciones"
|
||||
|
||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
|
||||
msgid "GNOME Shell Extension Preferences"
|
||||
@ -63,9 +54,13 @@ msgstr "Preferencias de las extensiones de GNOME Shell"
|
||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:2
|
||||
msgid "Configure GNOME Shell Extensions"
|
||||
msgstr "Configurar las extensiones de GNOME Shell"
|
||||
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
|
||||
msgid "GNOME Shell (wayland compositor)"
|
||||
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "GNOME Shell"
|
||||
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Gestión de ventanas e inicio de aplicaciones"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
|
||||
@ -176,80 +171,99 @@ msgstr ""
|
||||
"en un futuro, se mostrará la casilla «Recordar contraseña». Esta clave "
|
||||
"establece el valor predeterminado de la casilla."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
msgid ""
|
||||
"Whether the default Bluetooth adapter had set up devices associated to it"
|
||||
msgstr ""
|
||||
"Indica si el adaptador Bluetooth predeterminado tiene dispositivos asociados "
|
||||
"configurados"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
msgid ""
|
||||
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
|
||||
"powered, or if there were devices set up associated with the default "
|
||||
"adapter. This will be reset if the default adapter is ever seen not to have "
|
||||
"devices associated to it."
|
||||
msgstr ""
|
||||
"La shell sólo mostrará un menú de Bluetooth si hay conectado un adaptador de "
|
||||
"Bluetooth, o si hay dispositivos asociados configurados con el adaptador "
|
||||
"predeterminado. Esto se restablecerá si se ve que el adaptador "
|
||||
"predeterminado no tiene dispositivos asociados."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
msgid "Show the week date in the calendar"
|
||||
msgstr "Mostrar la fecha de la semana en el calendario"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
msgid "If true, display the ISO week date in the calendar."
|
||||
msgstr "Si es cierta, muestra la fecha de semana ISO en el calendario."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
msgid "Keybinding to open the application menu"
|
||||
msgstr "Asociación de teclas para abrir el menú de la aplicación"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
msgid "Keybinding to open the application menu."
|
||||
msgstr "Asociación de teclas para abrir el menú de la aplicación."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
msgid "Keybinding to open the \"Show Applications\" view"
|
||||
msgstr "Asociación de teclas para la vista «Mostrar aplicaciones»"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
msgid ""
|
||||
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
|
||||
msgstr ""
|
||||
"Asociación de teclas para abrir la vista «Mostrar aplicaciones» de la vista "
|
||||
"de actividades."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
msgid "Keybinding to open the overview"
|
||||
msgstr "Asociación de teclas para la vista general"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
msgid "Keybinding to open the Activities Overview."
|
||||
msgstr "Asociación de teclas para abrir la Vista de actividades"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
msgid "Keybinding to toggle the visibility of the notification list"
|
||||
msgstr ""
|
||||
"Asociación de teclas para cambiar la visibilidad de la lista de "
|
||||
"notificaciones"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
msgid "Keybinding to toggle the visibility of the notification list."
|
||||
msgstr ""
|
||||
"Asociación de teclas para cambiar la visibilidad de la lista de "
|
||||
"notificaciones."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
msgid "Keybinding to focus the active notification"
|
||||
msgstr "Asociación de teclas para dar el foco a la notificación activa"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
msgid "Keybinding to focus the active notification."
|
||||
msgstr "Asociación de teclas para dar el foco a la notificación activa."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
msgid ""
|
||||
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
|
||||
msgstr ""
|
||||
"Asociación de teclas que pausa y reanuda los «tweens» en ejecución, para "
|
||||
"depuración."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
msgid "Which keyboard to use"
|
||||
msgstr "Qué teclado usar"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
msgid "The type of keyboard to use."
|
||||
msgstr "El tipo de teclado que usar."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
msgid "Limit switcher to current workspace."
|
||||
msgstr "Limitar el intercambiador al área de trabajo actual."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
msgid ""
|
||||
"If true, only applications that have windows on the current workspace are "
|
||||
@ -258,11 +272,11 @@ msgstr ""
|
||||
"Si es cierto, sólo las aplicaciones que tengan ventanas en el área de "
|
||||
"trabajo actual se muestran en el selector. Si no, se incluyen todas las "
|
||||
"aplicaciones."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
msgid "The application icon mode."
|
||||
msgstr "El modo de icono de la aplicación."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
msgid ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
@ -272,7 +286,7 @@ msgstr ""
|
||||
"Configura cómo se muestran las ventanas en el selector. Los valore posibles "
|
||||
"son «thumbnail-only» (muestra una miniatura de la ventana), «app-icon-"
|
||||
"only» (sólo muestra el icono de la aplicación) «both»."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
msgid ""
|
||||
"If true, only windows from the current workspace are shown in the switcher. "
|
||||
@ -280,31 +294,31 @@ msgstr ""
|
||||
msgstr ""
|
||||
"Si es cierto, sólo se muestran en el selector las ventanas del área de "
|
||||
"trabajo actual. Si no, se incluyen todas las ventanas."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
msgid "Attach modal dialog to the parent window"
|
||||
msgstr "Acoplar un diálogo modal a la ventana padre"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
msgstr ""
|
||||
"Esta clave sobrescribe la clave en org.gnome.mutter al ejecutar GNOME Shell."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
msgstr ""
|
||||
"Activar el mosaico en los bordes al arrastrar ventanas a los bordes de la "
|
||||
"ventana"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
msgid "Workspaces are managed dynamically"
|
||||
msgstr "Las áreas de trabajo se gestionan dinámicamente"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
||||
msgid "Workspaces only on primary monitor"
|
||||
msgstr "Áreas de trabajo solo en la pantalla principal"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
|
||||
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
msgstr ""
|
||||
@ -370,7 +384,7 @@ msgstr "(ej., usuario o %s)"
|
||||
#: ../js/ui/components/networkAgent.js:289
|
||||
msgid "Username: "
|
||||
msgstr "Nombre de usuario:"
|
||||
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1180
|
||||
msgid "Login Window"
|
||||
msgstr "Ventana de inicio de sesión"
|
||||
@ -506,12 +520,12 @@ msgstr "Añadir a los favoritos"
|
||||
#: ../js/ui/appDisplay.js:1897
|
||||
msgid "Show Details"
|
||||
msgstr "Mostrar detalles"
|
||||
|
||||
|
||||
#: ../js/ui/appFavorites.js:133
|
||||
#, javascript-format
|
||||
msgid "%s has been added to your favorites."
|
||||
msgstr "Se ha añadido %s a sus favoritos."
|
||||
|
||||
|
||||
#: ../js/ui/appFavorites.js:167
|
||||
#, javascript-format
|
||||
msgid "%s has been removed from your favorites."
|
||||
@ -588,6 +602,12 @@ msgstr "Mes anterior"
|
||||
#: ../js/ui/calendar.js:576
|
||||
msgid "Next month"
|
||||
msgstr "Siguiente mes"
|
||||
|
||||
#: ../js/ui/calendar.js:728
|
||||
#, javascript-format
|
||||
msgctxt "date day number format"
|
||||
msgid "%d"
|
||||
msgstr "%d"
|
||||
|
||||
#: ../js/ui/calendar.js:783
|
||||
msgid "Week %V"
|
||||
@ -638,7 +658,7 @@ msgstr "Dispositivo externo conectado"
|
||||
#: ../js/ui/components/automountManager.js:102
|
||||
msgid "External drive disconnected"
|
||||
msgstr "Dispositivo externo desconectado"
|
||||
|
||||
|
||||
#: ../js/ui/components/autorunManager.js:355
|
||||
#, javascript-format
|
||||
msgid "Open with %s"
|
||||
@ -1027,23 +1047,22 @@ msgstr "Vista general"
|
||||
#: ../js/ui/overview.js:244
|
||||
msgid "Type to search…"
|
||||
msgstr "Escribir para buscar…"
|
||||
|
||||
|
||||
#: ../js/ui/panel.js:358
|
||||
msgid "Quit"
|
||||
msgstr "Salir"
|
||||
|
||||
#. Translators: If there is no suitable word for "Activities"
|
||||
#. in your language, you can use the word for "Overview".
|
||||
#. in your language, you can use the word for "Overview".
|
||||
#: ../js/ui/panel.js:414
|
||||
msgid "Activities"
|
||||
msgstr "Actividades"
|
||||
|
||||
#: ../js/ui/panel.js:650
|
||||
|
||||
#: ../js/ui/panel.js:695
|
||||
msgctxt "System menu in the top bar"
|
||||
msgid "System"
|
||||
msgstr "Sistema"
|
||||
|
||||
|
||||
#: ../js/ui/panel.js:807
|
||||
msgid "Top Bar"
|
||||
msgstr "Barra superior"
|
||||
@ -1056,15 +1075,15 @@ msgstr "Barra superior"
|
||||
#: ../js/ui/popupMenu.js:289
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-intl"
|
||||
|
||||
|
||||
#: ../js/ui/runDialog.js:71
|
||||
msgid "Enter a Command"
|
||||
msgstr "Introducir un comando"
|
||||
|
||||
|
||||
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
|
||||
msgid "Close"
|
||||
msgstr "Cerrar"
|
||||
|
||||
|
||||
#: ../js/ui/runDialog.js:282
|
||||
msgid "Restarting…"
|
||||
msgstr "Reiniciando…"
|
||||
@ -1187,29 +1206,41 @@ msgstr "Contraste alto"
|
||||
#: ../js/ui/status/accessibility.js:202
|
||||
msgid "Large Text"
|
||||
msgstr "Texto grande"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:47
|
||||
msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:56
|
||||
msgid "Bluetooth Settings"
|
||||
msgstr "Configuración de Bluetooth"
|
||||
|
||||
#. Translators: this is the number of connected bluetooth devices
|
||||
#. Translators: this is the number of connected bluetooth devices
|
||||
#: ../js/ui/status/bluetooth.js:136
|
||||
#, javascript-format
|
||||
msgid "%d Connected"
|
||||
msgid_plural "%d Connected"
|
||||
msgstr[0] "%d conectado"
|
||||
msgstr[1] "%d conectados"
|
||||
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:138
|
||||
msgid "Off"
|
||||
msgstr "Desconectado"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:140
|
||||
msgid "Not In Use"
|
||||
msgstr "No está en uso"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "Encender"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Apagar"
|
||||
|
||||
#: ../js/ui/status/brightness.js:44
|
||||
msgid "Brightness"
|
||||
@ -1377,10 +1408,6 @@ msgstr "Seleccionar red"
|
||||
#: ../js/ui/status/network.js:1177
|
||||
msgid "Wi-Fi Settings"
|
||||
msgstr "Configuración de Wi-Fi"
|
||||
|
||||
#: ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "Encender"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:1296
|
||||
@ -1430,31 +1457,36 @@ msgstr "Falló la conexión"
|
||||
#: ../js/ui/status/network.js:1698
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "Falló la activación de la conexión de red"
|
||||
|
||||
|
||||
#: ../js/ui/status/power.js:61
|
||||
msgid "Power Settings"
|
||||
msgstr "Configuración de energía"
|
||||
|
||||
|
||||
#: ../js/ui/status/power.js:77
|
||||
msgid "Fully Charged"
|
||||
msgstr "Cargada completamente"
|
||||
|
||||
#. 0 is reported when UPower does not have enough data
|
||||
#. to estimate battery life
|
||||
#. to estimate battery life
|
||||
#: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
|
||||
msgid "Estimating…"
|
||||
msgstr "Estimando…"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
|
||||
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
|
||||
#: ../js/ui/status/power.js:98
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Remaining (%d%%)"
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Remaining (%d %%)"
|
||||
msgstr "%d∶%02d queda (%d %%)"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
|
||||
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
|
||||
#: ../js/ui/status/power.js:103
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Until Full (%d%%)"
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Until Full (%d %%)"
|
||||
msgstr "%d∶%02d para la carga completa (%d %%)"
|
||||
|
||||
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
|
||||
#, javascript-format
|
||||
msgid "%d %%"
|
||||
msgstr "%d %%"
|
||||
|
||||
#. The menu only appears when airplane mode is on, so just
|
||||
@ -1657,39 +1689,36 @@ msgstr ""
|
||||
#: ../src/main.c:399
|
||||
msgid "List possible modes"
|
||||
msgstr "Listar los modos posibles"
|
||||
|
||||
|
||||
#: ../src/shell-app.c:246
|
||||
msgctxt "program"
|
||||
msgid "Unknown"
|
||||
msgstr "Desconocido"
|
||||
|
||||
|
||||
#: ../src/shell-app.c:487
|
||||
#, c-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Falló al lanzar «%s»"
|
||||
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:730
|
||||
msgid "Passwords do not match."
|
||||
msgstr "Las contraseñas no coinciden."
|
||||
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:738
|
||||
msgid "Password cannot be blank"
|
||||
msgstr "La contraseña no puede estar vacía"
|
||||
|
||||
|
||||
#: ../src/shell-polkit-authentication-agent.c:353
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "El usuario rechazó el diálogo de autenticación"
|
||||
|
||||
#~ msgid "Bluetooth"
|
||||
|
||||
#~ msgid "GNOME Shell (wayland compositor)"
|
||||
#~ msgstr "GNOME Shell (composición wayland)"
|
||||
|
||||
#~ msgid "%d Connected Device"
|
||||
#~ msgid_plural "%d Connected Devices"
|
||||
#~ msgstr[0] "%d dispositivo conectado"
|
||||
#~ msgstr[1] "%d dispositivos conectados"
|
||||
|
||||
#~ msgid "Off"
|
||||
#~ msgstr "Desconectado"
|
||||
|
||||
#~ msgid "Authentication required"
|
||||
#~ msgstr "Autenticación requerida"
|
||||
@ -2229,10 +2258,6 @@ msgstr "El usuario rechazó el diálogo de autenticación"
|
||||
#~ msgid_plural "%d minutes remaining"
|
||||
#~ msgstr[0] "Queda %d minuto"
|
||||
#~ msgstr[1] "Quedan %d minutos"
|
||||
|
||||
#~ msgctxt "percent of battery remaining"
|
||||
#~ msgid "%d%%"
|
||||
#~ msgstr "%d%%"
|
||||
|
||||
#~ msgid "AC Adapter"
|
||||
#~ msgstr "Adaptador de corriente"
|
||||
|
184
po/fi.po
184
po/fi.po
@ -26,8 +26,8 @@ msgstr ""
|
||||
"Project-Id-Version: gnome-shell\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||
"shell&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2015-10-03 20:41+0000\n"
|
||||
"PO-Revision-Date: 2015-09-05 13:11+0300\n"
|
||||
"POT-Creation-Date: 2015-11-15 10:15+0000\n"
|
||||
"PO-Revision-Date: 2015-11-15 18:52+0200\n"
|
||||
"Last-Translator: Jiri Grönroos <jiri.gronroos+l10n@iki.fi>\n"
|
||||
"Language-Team: suomi <gnome-fi-laatu@lists.sourceforge.net>\n"
|
||||
"Language: fi\n"
|
||||
@ -35,7 +35,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: Gtranslator 2.91.6\n"
|
||||
"X-Generator: Gtranslator 2.91.7\n"
|
||||
"X-DamnedLies-Scope: partial\n"
|
||||
"X-Project-Style: gnome\n"
|
||||
"X-POT-Import-Date: 2012-03-05 15:06:10+0000\n"
|
||||
@ -64,15 +64,6 @@ msgstr "Näytä kaikki sovellukset"
|
||||
msgid "Open the application menu"
|
||||
msgstr "Avaa sovellusvalikko"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "Gnome Shell"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:2
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Ikkunanhallinta ja sovelluksien käynnistäminen"
|
||||
|
||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
|
||||
msgid "GNOME Shell Extension Preferences"
|
||||
msgstr "Gnome Shell -laajennusten asetukset"
|
||||
@ -81,9 +72,13 @@ msgstr "Gnome Shell -laajennusten asetukset"
|
||||
msgid "Configure GNOME Shell Extensions"
|
||||
msgstr "Hallitse Gnome Shell -laajennuksia"
|
||||
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
|
||||
msgid "GNOME Shell (wayland compositor)"
|
||||
msgstr "Gnome Shell (Wayland-komposiointi)"
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "Gnome Shell"
|
||||
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Ikkunanhallinta ja sovelluksien käynnistäminen"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
|
||||
msgid "Enable internal tools useful for developers and testers from Alt-F2"
|
||||
@ -194,73 +189,86 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
msgid ""
|
||||
"Whether the default Bluetooth adapter had set up devices associated to it"
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
msgid ""
|
||||
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
|
||||
"powered, or if there were devices set up associated with the default "
|
||||
"adapter. This will be reset if the default adapter is ever seen not to have "
|
||||
"devices associated to it."
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
msgid "Show the week date in the calendar"
|
||||
msgstr "Näytä viikonpäivä kalenterissa"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
msgid "If true, display the ISO week date in the calendar."
|
||||
msgstr "Jos tosi, näytä ISO-viikonpäivät kalenterissa."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
msgid "Keybinding to open the application menu"
|
||||
msgstr "Sovellusvalikon avaukseen käytettävä pikanäppäin"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
msgid "Keybinding to open the application menu."
|
||||
msgstr "Sovellusvalikon avaukseen käytettävä pikanäppäin."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
msgid "Keybinding to open the \"Show Applications\" view"
|
||||
msgstr "Näytä sovellukset -näkymän avaukseen käytettävä pikanäppäin"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
msgid ""
|
||||
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
|
||||
msgstr ""
|
||||
"Yleisnäkymän Näytä sovellukset -näkymän avaukseen käytettävä pikanäppäin."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
msgid "Keybinding to open the overview"
|
||||
msgstr "Yleisnäkymän avaukseen käytettävä pikanäppäin"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
msgid "Keybinding to open the Activities Overview."
|
||||
msgstr "Yleisnäkymän avaukseen käytettävä pikanäppäin."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
msgid "Keybinding to toggle the visibility of the notification list"
|
||||
msgstr "Ilmoitusalueen näyttämiseen/piilottamiseen tarkoitettu pikanäppäin"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
msgid "Keybinding to toggle the visibility of the notification list."
|
||||
msgstr "Ilmoitusluettelon näyttämiseen/piilottamiseen tarkoitettu pikanäppäin."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
msgid "Keybinding to focus the active notification"
|
||||
msgstr "Aktiiviseen ilmoitukseen kohdistava pikanäppäin"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
msgid "Keybinding to focus the active notification."
|
||||
msgstr "Aktiiviseen ilmoitukseen kohdistava pikanäppäin."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
msgid ""
|
||||
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
msgid "Which keyboard to use"
|
||||
msgstr "Mitä näppäimistöä käytetään"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
msgid "The type of keyboard to use."
|
||||
msgstr "Käytettävän näppäimistön tyyppi."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
msgid "Limit switcher to current workspace."
|
||||
msgstr "Rajoita vaihtaja nykyiseen työtilaan."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
msgid ""
|
||||
"If true, only applications that have windows on the current workspace are "
|
||||
"shown in the switcher. Otherwise, all applications are included."
|
||||
@ -269,11 +277,11 @@ msgstr ""
|
||||
"sijaitsevat nykyisessä työtilassa. Muussa tapauksessa kaikki sovellukset "
|
||||
"sisällytetään."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
msgid "The application icon mode."
|
||||
msgstr "Sovelluskuvakkeen tila."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
msgid ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
@ -283,7 +291,7 @@ msgstr ""
|
||||
"'thumbnail-only' (näyttää ikkunan pienoiskuvan), 'app-icon-only' (näyttää "
|
||||
"vain sovelluksen kuvakkeen) tai 'both'."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
msgid ""
|
||||
"If true, only windows from the current workspace are shown in the switcher. "
|
||||
"Otherwise, all windows are included."
|
||||
@ -291,29 +299,29 @@ msgstr ""
|
||||
"Jos tosi,vain nykyisessä työtilassa olevat ikkunat näytetään vaihtajassa. "
|
||||
"Muussa tapauksessa kaikki ikkunat näytetään."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
msgid "Attach modal dialog to the parent window"
|
||||
msgstr "Kiinnitä modaali-ikkuna isäntäikkunaan"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
msgstr ""
|
||||
"Tämä avain syrjäyttää avaimen org.gnome.mutter Gnome Shelliä käyttäessä."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
msgstr "Käytä reunakiinnitystä tiputtaessa ikkunoita näytön reunoille"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
msgid "Workspaces are managed dynamically"
|
||||
msgstr "Työtilojen hallinta on dynaamista"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
||||
msgid "Workspaces only on primary monitor"
|
||||
msgstr "Työtilat ainoastaan ensisijaisella näytöllä"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
|
||||
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
msgstr ""
|
||||
"Viivästytä kohdistuksen vaihtumista hiiritilassa, kunnes osoitin lopettaa "
|
||||
@ -380,7 +388,7 @@ msgstr "(esim. käyttäjä tai %s)"
|
||||
msgid "Username: "
|
||||
msgstr "Käyttäjänimi: "
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1184
|
||||
#: ../js/gdm/loginDialog.js:1180
|
||||
msgid "Login Window"
|
||||
msgstr "Kirjautumisikkuna"
|
||||
|
||||
@ -516,12 +524,12 @@ msgstr "Lisää suosikkeihin"
|
||||
msgid "Show Details"
|
||||
msgstr "Näytä tiedot"
|
||||
|
||||
#: ../js/ui/appFavorites.js:132
|
||||
#: ../js/ui/appFavorites.js:133
|
||||
#, javascript-format
|
||||
msgid "%s has been added to your favorites."
|
||||
msgstr "%s on lisätty suosikkeihin."
|
||||
|
||||
#: ../js/ui/appFavorites.js:166
|
||||
#: ../js/ui/appFavorites.js:167
|
||||
#, javascript-format
|
||||
msgid "%s has been removed from your favorites."
|
||||
msgstr "%s on poistettu suosikeista."
|
||||
@ -598,6 +606,14 @@ msgstr "Edellinen kuukausi"
|
||||
msgid "Next month"
|
||||
msgstr "Seuraava kuukausi"
|
||||
|
||||
#: ../js/ui/calendar.js:728
|
||||
#, fuzzy, javascript-format
|
||||
#| msgctxt "percent of battery remaining"
|
||||
#| msgid "%d%%"
|
||||
msgctxt "date day number format"
|
||||
msgid "%d"
|
||||
msgstr "%d %%"
|
||||
|
||||
#: ../js/ui/calendar.js:783
|
||||
msgid "Week %V"
|
||||
msgstr "Viikko %V"
|
||||
@ -648,7 +664,7 @@ msgstr "Erillinen asema yhdistetty"
|
||||
msgid "External drive disconnected"
|
||||
msgstr "Erillinen asema irrotettu"
|
||||
|
||||
#: ../js/ui/components/autorunManager.js:354
|
||||
#: ../js/ui/components/autorunManager.js:351
|
||||
#, javascript-format
|
||||
msgid "Open with %s"
|
||||
msgstr "Avaa käyttäen sovellusta %s"
|
||||
@ -1038,23 +1054,22 @@ msgstr "Yleisnäkymä"
|
||||
msgid "Type to search…"
|
||||
msgstr "Kirjoita hakeaksesi…"
|
||||
|
||||
#: ../js/ui/panel.js:352
|
||||
#: ../js/ui/panel.js:358
|
||||
msgid "Quit"
|
||||
msgstr "Lopeta"
|
||||
|
||||
#. Translators: If there is no suitable word for "Activities"
|
||||
#. in your language, you can use the word for "Overview".
|
||||
#: ../js/ui/panel.js:404
|
||||
#: ../js/ui/panel.js:414
|
||||
msgid "Activities"
|
||||
msgstr "Toiminnot"
|
||||
|
||||
#: ../js/ui/panel.js:650
|
||||
#| msgid "System"
|
||||
#: ../js/ui/panel.js:695
|
||||
msgctxt "System menu in the top bar"
|
||||
msgid "System"
|
||||
msgstr "Järjestelmä"
|
||||
|
||||
#: ../js/ui/panel.js:754
|
||||
#: ../js/ui/panel.js:807
|
||||
msgid "Top Bar"
|
||||
msgstr "Yläpalkki"
|
||||
|
||||
@ -1067,15 +1082,15 @@ msgstr "Yläpalkki"
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-intl"
|
||||
|
||||
#: ../js/ui/runDialog.js:70
|
||||
#: ../js/ui/runDialog.js:71
|
||||
msgid "Enter a Command"
|
||||
msgstr "Syötä komento"
|
||||
|
||||
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
|
||||
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
|
||||
msgid "Close"
|
||||
msgstr "Sulje"
|
||||
|
||||
#: ../js/ui/runDialog.js:281
|
||||
#: ../js/ui/runDialog.js:282
|
||||
msgid "Restarting…"
|
||||
msgstr "Käynnistetään uudelleen…"
|
||||
|
||||
@ -1198,29 +1213,41 @@ msgstr "Korkea kontrasti"
|
||||
msgid "Large Text"
|
||||
msgstr "Suuri tekstin koko"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Sammuta"
|
||||
#: ../js/ui/status/bluetooth.js:50
|
||||
msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:54
|
||||
#: ../js/ui/status/bluetooth.js:59
|
||||
msgid "Bluetooth Settings"
|
||||
msgstr "Bluetooth-asetukset"
|
||||
|
||||
#. Translators: this is the number of connected bluetooth devices
|
||||
#: ../js/ui/status/bluetooth.js:105
|
||||
#: ../js/ui/status/bluetooth.js:139
|
||||
#, javascript-format
|
||||
msgid "%d Connected"
|
||||
msgid_plural "%d Connected"
|
||||
msgstr[0] "%d yhdistetty"
|
||||
msgstr[1] "%d yhdistetty"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:107
|
||||
#: ../js/ui/status/bluetooth.js:141
|
||||
msgid "Off"
|
||||
msgstr "Pois"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:143
|
||||
msgid "Not In Use"
|
||||
msgstr "Ei käytössä"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:145 ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "Ota käyttöön"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:145 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Sammuta"
|
||||
|
||||
#: ../js/ui/status/brightness.js:44
|
||||
msgid "Brightness"
|
||||
msgstr "Kirkkaus"
|
||||
@ -1388,10 +1415,6 @@ msgstr "Valitse verkko"
|
||||
msgid "Wi-Fi Settings"
|
||||
msgstr "Wifin asetukset"
|
||||
|
||||
#: ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "Ota käyttöön"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:1296
|
||||
#, javascript-format
|
||||
@ -1458,14 +1481,16 @@ msgstr "Arvioidaan…"
|
||||
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
|
||||
#: ../js/ui/status/power.js:86
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Remaining (%d%%)"
|
||||
msgstr "%d∶%02d jäljellä (%d%%)"
|
||||
#| msgid "%d∶%02d Remaining (%d%%)"
|
||||
msgid "%d∶%02d Remaining (%d %%)"
|
||||
msgstr "%d∶%02d jäljellä (%d %%)"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
|
||||
#: ../js/ui/status/power.js:91
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Until Full (%d%%)"
|
||||
msgstr "%d∶%02d kunnes täynnä (%d%%)"
|
||||
#| msgid "%d∶%02d Until Full (%d%%)"
|
||||
msgid "%d∶%02d Until Full (%d %%)"
|
||||
msgstr "%d∶%02d kunnes täynnä (%d %%)"
|
||||
|
||||
#. The menu only appears when airplane mode is on, so just
|
||||
#. statically build it as if it was on, rather than dynamically
|
||||
@ -1666,39 +1691,36 @@ msgstr "Käytä tiettyä tilaa (esim. \"gdm\") kirjautumisnäkymää varten"
|
||||
msgid "List possible modes"
|
||||
msgstr "Listaa mahdolliset tilat"
|
||||
|
||||
#: ../src/shell-app.c:239
|
||||
#: ../src/shell-app.c:246
|
||||
msgctxt "program"
|
||||
msgid "Unknown"
|
||||
msgstr "Tuntematon"
|
||||
|
||||
#: ../src/shell-app.c:480
|
||||
#: ../src/shell-app.c:487
|
||||
#, c-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Sovelluksen ”%s” käynnistäminen epäonnistui"
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:742
|
||||
#: ../src/shell-keyring-prompt.c:730
|
||||
msgid "Passwords do not match."
|
||||
msgstr "Salasanat eivät täsmää."
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:750
|
||||
#: ../src/shell-keyring-prompt.c:738
|
||||
msgid "Password cannot be blank"
|
||||
msgstr "Salasana ei voi olla tyhjä"
|
||||
|
||||
#: ../src/shell-polkit-authentication-agent.c:346
|
||||
#: ../src/shell-polkit-authentication-agent.c:353
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "Käyttäjä poistui tunnistautumisvalintaikkunasta"
|
||||
|
||||
#~ msgid "Bluetooth"
|
||||
#~ msgstr "Bluetooth"
|
||||
#~ msgid "GNOME Shell (wayland compositor)"
|
||||
#~ msgstr "Gnome Shell (Wayland-komposiointi)"
|
||||
|
||||
#~ msgid "%d Connected Device"
|
||||
#~ msgid_plural "%d Connected Devices"
|
||||
#~ msgstr[0] "%d yhdistetty laite"
|
||||
#~ msgstr[1] "%d yhdistettyä laitetta"
|
||||
|
||||
#~ msgid "Off"
|
||||
#~ msgstr "Pois"
|
||||
|
||||
#~ msgid "Authentication required"
|
||||
#~ msgstr "tunnistautuminen vaaditaan"
|
||||
|
||||
@ -2239,10 +2261,6 @@ msgstr "Käyttäjä poistui tunnistautumisvalintaikkunasta"
|
||||
#~ msgstr[0] "%d minuutti jäljellä"
|
||||
#~ msgstr[1] "%d minuuttia jäljellä"
|
||||
|
||||
#~ msgctxt "percent of battery remaining"
|
||||
#~ msgid "%d%%"
|
||||
#~ msgstr "%d %%"
|
||||
|
||||
#~| msgid "AC adapter"
|
||||
#~ msgid "AC Adapter"
|
||||
#~ msgstr "Virtalähde"
|
||||
|
267
po/he.po
267
po/he.po
@ -10,8 +10,8 @@ msgid ""
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell master\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-08-30 21:15+0300\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-11-19 20:37+0200\n"
|
||||
"PO-Revision-Date: 2015-11-19 20:37+0200\n"
|
||||
"Last-Translator: Yosef Or Boczko <yoseforb@gmail.com>\n"
|
||||
"Language-Team: עברית <>\n"
|
||||
@ -47,15 +47,6 @@ msgstr "הצגת כל היישומים"
|
||||
#: ../data/50-gnome-shell-system.xml.in.h:6
|
||||
msgid "Open the application menu"
|
||||
msgstr "פתיחת תפריט היישום"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "מעטפת GNOME"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:2
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "ניהול חלונות והרצת יישומים"
|
||||
|
||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
|
||||
msgid "GNOME Shell Extension Preferences"
|
||||
@ -64,9 +55,13 @@ msgstr "העדפות ההרחבות של GNOME Shell"
|
||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:2
|
||||
msgid "Configure GNOME Shell Extensions"
|
||||
msgstr "הגדרת הרחבות GNOME Shell"
|
||||
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
|
||||
msgid "GNOME Shell (wayland compositor)"
|
||||
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "מעטפת GNOME"
|
||||
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "ניהול חלונות והרצת יישומים"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
|
||||
@ -170,74 +165,92 @@ msgstr ""
|
||||
"'Remember Password' checkbox will be present. This key sets the default "
|
||||
"state of the checkbox."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
msgid ""
|
||||
"Whether the default Bluetooth adapter had set up devices associated to it"
|
||||
msgstr ""
|
||||
"Whether the default Bluetooth adapter had set up devices associated to it"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
msgid ""
|
||||
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
|
||||
"powered, or if there were devices set up associated with the default "
|
||||
"adapter. This will be reset if the default adapter is ever seen not to have "
|
||||
"devices associated to it."
|
||||
msgstr ""
|
||||
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
|
||||
"powered, or if there were devices set up associated with the default "
|
||||
"adapter. This will be reset if the default adapter is ever seen not to have "
|
||||
"devices associated to it."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
msgid "Show the week date in the calendar"
|
||||
msgstr "Show the week date in the calendar"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
msgid "If true, display the ISO week date in the calendar."
|
||||
msgstr "If true, display the ISO week date in the calendar."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
msgid "Keybinding to open the application menu"
|
||||
msgstr "Keybinding to open the application menu"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
msgid "Keybinding to open the application menu."
|
||||
msgstr "Keybinding to open the application menu."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
msgid "Keybinding to open the \"Show Applications\" view"
|
||||
msgstr "Keybinding to open the \"Show Applications\" view"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
msgid ""
|
||||
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
|
||||
msgstr ""
|
||||
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
msgid "Keybinding to open the overview"
|
||||
msgstr "Keybinding to open the overview"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
msgid "Keybinding to open the Activities Overview."
|
||||
msgstr "Keybinding to open the Activities Overview."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
msgid "Keybinding to toggle the visibility of the notification list"
|
||||
msgstr "Keybinding to toggle the visibility of the notification list"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
msgid "Keybinding to toggle the visibility of the notification list."
|
||||
msgstr "Keybinding to toggle the visibility of the notification list."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
msgid "Keybinding to focus the active notification"
|
||||
msgstr "Keybinding to focus the active notification"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
msgid "Keybinding to focus the active notification."
|
||||
msgstr "Keybinding to focus the active notification."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
msgid ""
|
||||
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
|
||||
msgstr ""
|
||||
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
msgid "Which keyboard to use"
|
||||
msgstr "Which keyboard to use"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
msgid "The type of keyboard to use."
|
||||
msgstr "The type of keyboard to use."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
msgid "Limit switcher to current workspace."
|
||||
msgstr "Limit switcher to current workspace."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
msgid ""
|
||||
"If true, only applications that have windows on the current workspace are "
|
||||
@ -245,51 +258,51 @@ msgstr ""
|
||||
msgstr ""
|
||||
"If true, only applications that have windows on the current workspace are "
|
||||
"shown in the switcher. Otherwise, all applications are included."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
msgid "The application icon mode."
|
||||
msgstr "The application icon mode."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
msgid ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
"only' (shows only the application icon) or 'both'."
|
||||
msgstr ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
"only' (shows only the application icon) or 'both'."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
msgid ""
|
||||
"If true, only windows from the current workspace are shown in the switcher. "
|
||||
"Otherwise, all windows are included."
|
||||
msgstr ""
|
||||
"If true, only windows from the current workspace are shown in the switcher. "
|
||||
"Otherwise, all windows are included."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
msgid "Attach modal dialog to the parent window"
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
msgid ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
"only' (shows only the application icon) or 'both'."
|
||||
msgstr ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
"only' (shows only the application icon) or 'both'."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
msgid ""
|
||||
"If true, only windows from the current workspace are shown in the switcher. "
|
||||
"Otherwise, all windows are included."
|
||||
msgstr ""
|
||||
"If true, only windows from the current workspace are shown in the switcher. "
|
||||
"Otherwise, all windows are included."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
msgid "Attach modal dialog to the parent window"
|
||||
msgstr "Attach modal dialog to the parent window"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
msgstr ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
msgstr "Enable edge tiling when dropping windows on screen edges"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
msgid "Workspaces are managed dynamically"
|
||||
msgstr "Workspaces are managed dynamically"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
||||
msgid "Workspaces only on primary monitor"
|
||||
msgstr "Workspaces only on primary monitor"
|
||||
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
|
||||
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
msgstr "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
@ -314,7 +327,7 @@ msgid "Cancel"
|
||||
msgid "Cancel"
|
||||
msgstr "ביטול"
|
||||
|
||||
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
|
||||
#: ../js/gdm/authPrompt.js:169 ../js/gdm/authPrompt.js:215
|
||||
#: ../js/gdm/authPrompt.js:447
|
||||
msgid "Next"
|
||||
msgstr "הבא"
|
||||
@ -341,7 +354,7 @@ msgstr "לא רשום?"
|
||||
msgstr "לא רשום?"
|
||||
|
||||
#. Translators: this message is shown below the username entry field
|
||||
#. to clue the user in on how to login to the local network realm
|
||||
#. to clue the user in on how to login to the local network realm
|
||||
#: ../js/gdm/loginDialog.js:850
|
||||
#, javascript-format
|
||||
msgid "(e.g., user or %s)"
|
||||
@ -349,12 +362,12 @@ msgstr "(משתמש או %s לדוגמה)"
|
||||
|
||||
#. TTLS and PEAP are actually much more complicated, but this complication
|
||||
#. is not visible here since we only care about phase2 authentication
|
||||
#. (and don't even care of which one)
|
||||
#. (and don't even care of which one)
|
||||
#: ../js/gdm/loginDialog.js:855 ../js/ui/components/networkAgent.js:271
|
||||
#: ../js/ui/components/networkAgent.js:289
|
||||
msgid "Username: "
|
||||
msgstr "שם משתמש:"
|
||||
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1180
|
||||
msgid "Login Window"
|
||||
msgstr "חלון כניסה"
|
||||
@ -490,12 +503,12 @@ msgstr "הוספה למועדפים"
|
||||
#: ../js/ui/appDisplay.js:1897
|
||||
msgid "Show Details"
|
||||
msgstr "הצגת פרטים"
|
||||
|
||||
|
||||
#: ../js/ui/appFavorites.js:133
|
||||
#, javascript-format
|
||||
msgid "%s has been added to your favorites."
|
||||
msgstr "%s נוסף למועדפים שלך."
|
||||
|
||||
|
||||
#: ../js/ui/appFavorites.js:167
|
||||
#, javascript-format
|
||||
msgid "%s has been removed from your favorites."
|
||||
@ -508,8 +521,7 @@ msgstr "החלפת הרקע…"
|
||||
#: ../js/ui/backgroundMenu.js:21
|
||||
msgid "Display Settings"
|
||||
msgstr "הגדרות תצוגה"
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
|
||||
msgid "Settings"
|
||||
msgstr "הגדרות"
|
||||
@ -573,6 +585,12 @@ msgstr "חודש קודם"
|
||||
#: ../js/ui/calendar.js:576
|
||||
msgid "Next month"
|
||||
msgstr "חודש הבא"
|
||||
|
||||
#: ../js/ui/calendar.js:728
|
||||
#, javascript-format
|
||||
msgctxt "date day number format"
|
||||
msgid "%d"
|
||||
msgstr "%d"
|
||||
|
||||
#: ../js/ui/calendar.js:783
|
||||
msgid "Week %V"
|
||||
@ -585,33 +603,33 @@ msgctxt "event list time"
|
||||
msgctxt "event list time"
|
||||
msgid "All Day"
|
||||
msgstr "יום שלם"
|
||||
|
||||
|
||||
#: ../js/ui/calendar.js:1295
|
||||
msgid "Clear section"
|
||||
msgstr "ניקוי מקטע"
|
||||
|
||||
|
||||
#: ../js/ui/calendar.js:1522
|
||||
msgid "Events"
|
||||
msgstr "אירועים"
|
||||
|
||||
|
||||
#: ../js/ui/calendar.js:1531
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A, ה־%e ב%B"
|
||||
|
||||
|
||||
#: ../js/ui/calendar.js:1535
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d, %Y"
|
||||
msgstr "%A, ה־%e ב%B, %Y"
|
||||
|
||||
|
||||
#: ../js/ui/calendar.js:1620
|
||||
msgid "Notifications"
|
||||
msgstr "התרעות"
|
||||
|
||||
|
||||
#: ../js/ui/calendar.js:1771
|
||||
msgid "No Notifications"
|
||||
msgstr "אין התרעות"
|
||||
|
||||
|
||||
#: ../js/ui/calendar.js:1774
|
||||
msgid "No Events"
|
||||
msgstr "אין אירועים"
|
||||
@ -623,7 +641,7 @@ msgstr "חובר כונן חיצוני"
|
||||
#: ../js/ui/components/automountManager.js:102
|
||||
msgid "External drive disconnected"
|
||||
msgstr "נותק כונן חיצוני"
|
||||
|
||||
|
||||
#: ../js/ui/components/autorunManager.js:355
|
||||
#, javascript-format
|
||||
msgid "Open with %s"
|
||||
@ -961,7 +979,7 @@ msgstr "פעיל"
|
||||
msgstr "פעיל"
|
||||
|
||||
#. translators:
|
||||
#. * The device has been disabled
|
||||
#. * The device has been disabled
|
||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
|
||||
msgid "Disabled"
|
||||
msgstr "מנוטרל"
|
||||
@ -1005,17 +1023,22 @@ msgstr "סקירה"
|
||||
#: ../js/ui/overview.js:244
|
||||
msgid "Type to search…"
|
||||
msgstr "יש להקליד כדי לחפש…"
|
||||
|
||||
|
||||
#: ../js/ui/panel.js:358
|
||||
msgid "Quit"
|
||||
msgstr "יציאה"
|
||||
|
||||
#. Translators: If there is no suitable word for "Activities"
|
||||
#. in your language, you can use the word for "Overview".
|
||||
#. in your language, you can use the word for "Overview".
|
||||
#: ../js/ui/panel.js:414
|
||||
msgid "Activities"
|
||||
msgstr "פעילויות"
|
||||
|
||||
|
||||
#: ../js/ui/panel.js:695
|
||||
msgctxt "System menu in the top bar"
|
||||
msgid "System"
|
||||
msgstr "מערכת"
|
||||
|
||||
#: ../js/ui/panel.js:807
|
||||
msgid "Top Bar"
|
||||
msgstr "הסרגל העליון"
|
||||
@ -1028,15 +1051,15 @@ msgstr "הסרגל העליון"
|
||||
#: ../js/ui/popupMenu.js:289
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-intl"
|
||||
|
||||
|
||||
#: ../js/ui/runDialog.js:71
|
||||
msgid "Enter a Command"
|
||||
msgstr "נא להזין פקודה"
|
||||
|
||||
|
||||
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
|
||||
msgid "Close"
|
||||
msgstr "סגירה"
|
||||
|
||||
|
||||
#: ../js/ui/runDialog.js:282
|
||||
msgid "Restarting…"
|
||||
msgstr "מופעל מחדש…"
|
||||
@ -1161,29 +1184,41 @@ msgstr "ניגודיות גבוהה"
|
||||
#: ../js/ui/status/accessibility.js:202
|
||||
msgid "Large Text"
|
||||
msgstr "טקסט גדול"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:47
|
||||
msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:56
|
||||
msgid "Bluetooth Settings"
|
||||
msgstr "הגדרות Bluetooth"
|
||||
|
||||
#. Translators: this is the number of connected bluetooth devices
|
||||
#. Translators: this is the number of connected bluetooth devices
|
||||
#: ../js/ui/status/bluetooth.js:136
|
||||
#, c-format
|
||||
msgid "%d Connected"
|
||||
msgid_plural "%d Connected"
|
||||
msgstr[0] "אחד מחובר"
|
||||
msgstr[1] "%d מחוברים"
|
||||
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:138
|
||||
msgid "Off"
|
||||
msgstr "כבוי"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:140
|
||||
msgid "Not In Use"
|
||||
msgstr "לא בשימוש"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "הפעלה"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "כיבוי"
|
||||
|
||||
#: ../js/ui/status/brightness.js:44
|
||||
msgid "Brightness"
|
||||
@ -1351,10 +1386,6 @@ msgstr "בחירת רשת"
|
||||
#: ../js/ui/status/network.js:1177
|
||||
msgid "Wi-Fi Settings"
|
||||
msgstr "הגדרות רשת אלחוטית"
|
||||
|
||||
#: ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "הפעלה"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:1296
|
||||
@ -1404,32 +1435,37 @@ msgstr "ההתחברות נכשלה"
|
||||
#: ../js/ui/status/network.js:1698
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "הפעלת חיבור הרשת נכשלה"
|
||||
|
||||
|
||||
#: ../js/ui/status/power.js:61
|
||||
msgid "Power Settings"
|
||||
msgstr "הגדרות צריכת החשמל"
|
||||
|
||||
|
||||
#: ../js/ui/status/power.js:77
|
||||
msgid "Fully Charged"
|
||||
msgstr "בטעינה מלאה"
|
||||
|
||||
#. 0 is reported when UPower does not have enough data
|
||||
#. to estimate battery life
|
||||
#. to estimate battery life
|
||||
#: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
|
||||
msgid "Estimating…"
|
||||
msgstr "מתבצע שערוך…"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
|
||||
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
|
||||
#: ../js/ui/status/power.js:98
|
||||
#, javascript-format
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Remaining (%d %%)"
|
||||
msgstr "%d∶%02d נותרו (%d%%)"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
|
||||
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
|
||||
#: ../js/ui/status/power.js:103
|
||||
#, javascript-format
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Until Full (%d %%)"
|
||||
msgstr "%d:%02d עד לטעינה מלאה (%d%%)"
|
||||
|
||||
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
|
||||
#, javascript-format
|
||||
msgid "%d %%"
|
||||
msgstr "%d %%"
|
||||
|
||||
#. The menu only appears when airplane mode is on, so just
|
||||
#. statically build it as if it was on, rather than dynamically
|
||||
@ -1594,7 +1630,7 @@ msgstr "יומן אבולושן"
|
||||
msgstr "יומן אבולושן"
|
||||
|
||||
#. translators:
|
||||
#. * The number of sound outputs on a particular device
|
||||
#. * The number of sound outputs on a particular device
|
||||
#: ../src/gvc/gvc-mixer-control.c:1835
|
||||
#, c-format
|
||||
msgid "%u Output"
|
||||
@ -1603,57 +1639,57 @@ msgstr[1] "%u פלטים"
|
||||
msgstr[1] "%u פלטים"
|
||||
|
||||
#. translators:
|
||||
#. * The number of sound inputs on a particular device
|
||||
#. * The number of sound inputs on a particular device
|
||||
#: ../src/gvc/gvc-mixer-control.c:1845
|
||||
#, c-format
|
||||
msgid "%u Input"
|
||||
msgid_plural "%u Inputs"
|
||||
msgstr[0] "קלט אחד"
|
||||
msgstr[1] "%u קלטים"
|
||||
|
||||
|
||||
#: ../src/gvc/gvc-mixer-control.c:2371
|
||||
msgid "System Sounds"
|
||||
msgstr "צלילי מערכת"
|
||||
|
||||
|
||||
#: ../src/main.c:381
|
||||
msgid "Print version"
|
||||
msgstr "Print version"
|
||||
|
||||
|
||||
#: ../src/main.c:387
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "המצב בו GDM יעשה שימוש לצורך מסך הכניסה"
|
||||
|
||||
|
||||
#: ../src/main.c:393
|
||||
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
|
||||
msgstr "שימוש במצב מסוים, לדוגמה: „gdm“ למסך הכניסה"
|
||||
|
||||
|
||||
#: ../src/main.c:399
|
||||
msgid "List possible modes"
|
||||
msgstr "הצגת המצבים האפשריים"
|
||||
|
||||
|
||||
#: ../src/shell-app.c:246
|
||||
msgctxt "program"
|
||||
msgid "Unknown"
|
||||
msgstr "לא ידוע"
|
||||
|
||||
|
||||
#: ../src/shell-app.c:487
|
||||
#, c-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "אירע כשל בטעינת „%s”"
|
||||
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:730
|
||||
msgid "Passwords do not match."
|
||||
msgstr "הססמאות אינן תואמות."
|
||||
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:738
|
||||
msgid "Password cannot be blank"
|
||||
msgstr "הססמה אינה יכולה להישאר ריקה"
|
||||
|
||||
|
||||
#: ../src/shell-polkit-authentication-agent.c:353
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
|
||||
|
||||
#~ msgid "Bluetooth"
|
||||
|
||||
#~ msgid "GNOME Shell (wayland compositor)"
|
||||
#~ msgstr "GNOME Shell (מסדר wayland)"
|
||||
|
||||
# javascript-format
|
||||
@ -1661,9 +1697,6 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
|
||||
#~ msgid_plural "%d Connected Devices"
|
||||
#~ msgstr[0] "התקן אחד מחובר"
|
||||
#~ msgstr[1] "%d התקנים מחוברים"
|
||||
|
||||
#~ msgid "Off"
|
||||
#~ msgstr "כבוי"
|
||||
|
||||
#~ msgid "Authentication required"
|
||||
#~ msgstr "נדרש אימות"
|
||||
@ -2257,10 +2290,6 @@ msgstr "המשתמש בחר להתעלם מתיבת דו־שיח האימות"
|
||||
#~ msgstr[0] "דקה אחת נותרה"
|
||||
#~ msgstr[1] "%d דקות נותרו"
|
||||
#~ msgstr[2] "שתי דקות נותרו"
|
||||
|
||||
#~ msgctxt "percent of battery remaining"
|
||||
#~ msgid "%d%%"
|
||||
#~ msgstr "%d%%"
|
||||
|
||||
#~ msgid "AC Adapter"
|
||||
#~ msgstr "מתאם חשמל"
|
||||
|
212
po/nb.po
212
po/nb.po
@ -7,10 +7,10 @@
|
||||
# Torstein Adolf Winterseth <kvikende@fsfe.org>, 2010.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell 3.17.x\n"
|
||||
"Project-Id-Version: gnome-shell 3.19.x\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-09-07 19:22+0200\n"
|
||||
"PO-Revision-Date: 2015-09-07 19:31+0200\n"
|
||||
"POT-Creation-Date: 2015-11-15 19:59+0100\n"
|
||||
"PO-Revision-Date: 2015-11-15 20:00+0100\n"
|
||||
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
|
||||
"Language-Team: Norwegian bokmål <i18n-nb@lister.ping.uio.no>\n"
|
||||
"Language: Norwegian bokmål\n"
|
||||
@ -44,15 +44,6 @@ msgstr "Vis alle programmer"
|
||||
msgid "Open the application menu"
|
||||
msgstr "Åpne programmenyen"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "GNOME Shell"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:2
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Vindushåndtering og oppstart av programmer"
|
||||
|
||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
|
||||
msgid "GNOME Shell Extension Preferences"
|
||||
msgstr "Brukervalg for GNOME Shell-utvidelser"
|
||||
@ -61,9 +52,13 @@ msgstr "Brukervalg for GNOME Shell-utvidelser"
|
||||
msgid "Configure GNOME Shell Extensions"
|
||||
msgstr "Sett opp utvidelser for GNOME Shell"
|
||||
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
|
||||
msgid "GNOME Shell (wayland compositor)"
|
||||
msgstr "GNOME Shell (Wayland-kompositør)"
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "GNOME Shell"
|
||||
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Vindushåndtering og oppstart av programmer"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
|
||||
msgid "Enable internal tools useful for developers and testers from Alt-F2"
|
||||
@ -166,75 +161,88 @@ msgstr ""
|
||||
"standardverdien for avkryssingsboksen."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
msgid ""
|
||||
"Whether the default Bluetooth adapter had set up devices associated to it"
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
msgid ""
|
||||
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
|
||||
"powered, or if there were devices set up associated with the default "
|
||||
"adapter. This will be reset if the default adapter is ever seen not to have "
|
||||
"devices associated to it."
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
msgid "Show the week date in the calendar"
|
||||
msgstr "Vis ukedato/ukenummer i kalender"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
msgid "If true, display the ISO week date in the calendar."
|
||||
msgstr "Viser ISO-ukedato i kalenderen hvis «true»."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
msgid "Keybinding to open the application menu"
|
||||
msgstr "Tastaturbinding som åpner programmenyen"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
msgid "Keybinding to open the application menu."
|
||||
msgstr "Tastaturbinding som åpner programmenyen."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
msgid "Keybinding to open the \"Show Applications\" view"
|
||||
msgstr "Tastaturbinding som åpner visningen «Vis programmer»"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
msgid ""
|
||||
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
|
||||
msgstr ""
|
||||
"Tastaturbinding som åpner visningen «Vis programmer» i aktivitetsoversikten."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
msgid "Keybinding to open the overview"
|
||||
msgstr "Tastaturbinding som åpner oversikten"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
msgid "Keybinding to open the Activities Overview."
|
||||
msgstr "Tastaturbinding som åpner aktivitetsoversikten."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
msgid "Keybinding to toggle the visibility of the notification list"
|
||||
msgstr "Tastaturbinding som slår av/på visning av varslingsliste"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
msgid "Keybinding to toggle the visibility of the notification list."
|
||||
msgstr "Tastaturbinding som slår av/på visning av varslingsliste."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
msgid "Keybinding to focus the active notification"
|
||||
msgstr "Tastaturbinding som fokuserer aktiv varsling"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
msgid "Keybinding to focus the active notification."
|
||||
msgstr "Tastaturbinding som fokuserer aktiv varsling."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
msgid ""
|
||||
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
|
||||
msgstr ""
|
||||
"Hurtigtast som stanser og fortsetter pågående bevegelser til "
|
||||
"feilsøkingsformål"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
msgid "Which keyboard to use"
|
||||
msgstr "Tastatur som skal brukes"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
msgid "The type of keyboard to use."
|
||||
msgstr "Type tastatur som skal brukes."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
msgid "Limit switcher to current workspace."
|
||||
msgstr "Begrens programveksling til gjeldende arbeidsområde."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
msgid ""
|
||||
"If true, only applications that have windows on the current workspace are "
|
||||
"shown in the switcher. Otherwise, all applications are included."
|
||||
@ -243,11 +251,11 @@ msgstr ""
|
||||
"gjeldende arbeidsområder som vises i programveksleren. I motsatt fall kan du "
|
||||
"veksle mellom programmer på tvers av arbeidsområder."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
msgid "The application icon mode."
|
||||
msgstr "Ikonmodus for programmet."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
msgid ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
@ -257,7 +265,7 @@ msgstr ""
|
||||
"valgalternativer er «thumbnail-only» (viser miniatyrbilde av vinduet), «app-"
|
||||
"icon-only» (viser bare programikonet) og «both» (viser begge forannevnte)."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
msgid ""
|
||||
"If true, only windows from the current workspace are shown in the switcher. "
|
||||
"Otherwise, all windows are included."
|
||||
@ -266,30 +274,30 @@ msgstr ""
|
||||
"arbeidsområder som vises i programveksleren. I motsatt fall vises vinduer "
|
||||
"fra alle arbeidsområder."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
msgid "Attach modal dialog to the parent window"
|
||||
msgstr "Fest modal dialog til opphavsvinduet"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
msgstr ""
|
||||
"Denne nøkkelen overstyrer nøkkelen i org.gnome.mutter når GNOME Shell kjøres."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
msgstr ""
|
||||
"Del opp skjermkantene i fliser når brukeren drar og slipper vinduer på dem"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
msgid "Workspaces are managed dynamically"
|
||||
msgstr "Arbeidsområder håndteres dynamisk"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
||||
msgid "Workspaces only on primary monitor"
|
||||
msgstr "Arbeidsområder vises kun på hovedskjerm"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
|
||||
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
msgstr "Utsett fokusendringer i musmodus til peker slutter å bevege seg"
|
||||
|
||||
@ -354,7 +362,7 @@ msgstr "(f.eks. bruker eller %s)"
|
||||
msgid "Username: "
|
||||
msgstr "Brukernavn: "
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1184
|
||||
#: ../js/gdm/loginDialog.js:1180
|
||||
msgid "Login Window"
|
||||
msgstr "Innloggingsvindu"
|
||||
|
||||
@ -490,12 +498,12 @@ msgstr "Legg til i favoritter"
|
||||
msgid "Show Details"
|
||||
msgstr "Vis detaljer"
|
||||
|
||||
#: ../js/ui/appFavorites.js:132
|
||||
#: ../js/ui/appFavorites.js:133
|
||||
#, javascript-format
|
||||
msgid "%s has been added to your favorites."
|
||||
msgstr "%s ble lagt til i favoritter."
|
||||
|
||||
#: ../js/ui/appFavorites.js:166
|
||||
#: ../js/ui/appFavorites.js:167
|
||||
#, javascript-format
|
||||
msgid "%s has been removed from your favorites."
|
||||
msgstr "%s ble fjernet fra favoritter."
|
||||
@ -508,8 +516,7 @@ msgstr "Bytt bakgrunn …"
|
||||
msgid "Display Settings"
|
||||
msgstr "Innstillinger for skjerm"
|
||||
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/panel.js:650
|
||||
#: ../js/ui/status/system.js:366
|
||||
#: ../js/ui/backgroundMenu.js:22 ../js/ui/status/system.js:366
|
||||
msgid "Settings"
|
||||
msgstr "Innstillinger"
|
||||
|
||||
@ -573,6 +580,12 @@ msgstr "Forrige måned"
|
||||
msgid "Next month"
|
||||
msgstr "Neste måned"
|
||||
|
||||
#: ../js/ui/calendar.js:728
|
||||
#, javascript-format
|
||||
msgctxt "date day number format"
|
||||
msgid "%d"
|
||||
msgstr "%d"
|
||||
|
||||
#: ../js/ui/calendar.js:783
|
||||
msgid "Week %V"
|
||||
msgstr "Uke %V"
|
||||
@ -585,33 +598,33 @@ msgctxt "event list time"
|
||||
msgid "All Day"
|
||||
msgstr "Hele dagen"
|
||||
|
||||
#: ../js/ui/calendar.js:1291
|
||||
#: ../js/ui/calendar.js:1295
|
||||
msgid "Clear section"
|
||||
msgstr "Tøm seksjon"
|
||||
|
||||
#: ../js/ui/calendar.js:1518
|
||||
#: ../js/ui/calendar.js:1522
|
||||
msgid "Events"
|
||||
msgstr "Hendelser"
|
||||
|
||||
#: ../js/ui/calendar.js:1527
|
||||
#: ../js/ui/calendar.js:1531
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A %B %d"
|
||||
|
||||
#: ../js/ui/calendar.js:1531
|
||||
#: ../js/ui/calendar.js:1535
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d, %Y"
|
||||
msgstr "%A %B %d, %Y"
|
||||
|
||||
#: ../js/ui/calendar.js:1616
|
||||
#: ../js/ui/calendar.js:1620
|
||||
msgid "Notifications"
|
||||
msgstr "Varslinger"
|
||||
|
||||
#: ../js/ui/calendar.js:1767
|
||||
#: ../js/ui/calendar.js:1771
|
||||
msgid "No Notifications"
|
||||
msgstr "Ingen varslinger"
|
||||
|
||||
#: ../js/ui/calendar.js:1770
|
||||
#: ../js/ui/calendar.js:1774
|
||||
msgid "No Events"
|
||||
msgstr "Ingen hendelser"
|
||||
|
||||
@ -623,7 +636,7 @@ msgstr "Ekstern stasjon koblet til"
|
||||
msgid "External drive disconnected"
|
||||
msgstr "Ekstern stasjon koblet fra"
|
||||
|
||||
#: ../js/ui/components/autorunManager.js:354
|
||||
#: ../js/ui/components/autorunManager.js:351
|
||||
#, javascript-format
|
||||
msgid "Open with %s"
|
||||
msgstr "Åpne med %s"
|
||||
@ -968,7 +981,7 @@ msgstr "Slått på"
|
||||
|
||||
#. translators:
|
||||
#. * The device has been disabled
|
||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1830
|
||||
#: ../js/ui/lookingGlass.js:719 ../src/gvc/gvc-mixer-control.c:1828
|
||||
msgid "Disabled"
|
||||
msgstr "Slått av"
|
||||
|
||||
@ -1012,17 +1025,22 @@ msgstr "Oversikt"
|
||||
msgid "Type to search…"
|
||||
msgstr "Skriv for å søke …"
|
||||
|
||||
#: ../js/ui/panel.js:352
|
||||
#: ../js/ui/panel.js:358
|
||||
msgid "Quit"
|
||||
msgstr "Avslutt"
|
||||
|
||||
#. Translators: If there is no suitable word for "Activities"
|
||||
#. in your language, you can use the word for "Overview".
|
||||
#: ../js/ui/panel.js:404
|
||||
#: ../js/ui/panel.js:414
|
||||
msgid "Activities"
|
||||
msgstr "Aktiviteter"
|
||||
|
||||
#: ../js/ui/panel.js:754
|
||||
#: ../js/ui/panel.js:695
|
||||
msgctxt "System menu in the top bar"
|
||||
msgid "System"
|
||||
msgstr "System"
|
||||
|
||||
#: ../js/ui/panel.js:807
|
||||
msgid "Top Bar"
|
||||
msgstr "Topp-panel"
|
||||
|
||||
@ -1035,15 +1053,15 @@ msgstr "Topp-panel"
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-intl"
|
||||
|
||||
#: ../js/ui/runDialog.js:70
|
||||
#: ../js/ui/runDialog.js:71
|
||||
msgid "Enter a Command"
|
||||
msgstr "Skriv inn en kommando"
|
||||
|
||||
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
|
||||
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
|
||||
msgid "Close"
|
||||
msgstr "Lukk"
|
||||
|
||||
#: ../js/ui/runDialog.js:281
|
||||
#: ../js/ui/runDialog.js:282
|
||||
msgid "Restarting…"
|
||||
msgstr "Starter på nytt …"
|
||||
|
||||
@ -1166,29 +1184,41 @@ msgstr "Høy kontrast"
|
||||
msgid "Large Text"
|
||||
msgstr "Stor tekst"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Slå av"
|
||||
#: ../js/ui/status/bluetooth.js:50
|
||||
msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:54
|
||||
#: ../js/ui/status/bluetooth.js:59
|
||||
msgid "Bluetooth Settings"
|
||||
msgstr "Bluetooth-innstillinger"
|
||||
|
||||
#. Translators: this is the number of connected bluetooth devices
|
||||
#: ../js/ui/status/bluetooth.js:105
|
||||
#: ../js/ui/status/bluetooth.js:139
|
||||
#, javascript-format
|
||||
msgid "%d Connected"
|
||||
msgid_plural "%d Connected"
|
||||
msgstr[0] "%d koblet til"
|
||||
msgstr[1] "%d koblet til"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:107
|
||||
#: ../js/ui/status/bluetooth.js:141
|
||||
msgid "Off"
|
||||
msgstr "Av"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:143
|
||||
msgid "Not In Use"
|
||||
msgstr "Ikke i bruk"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:145 ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "Slå på"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:145 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Slå av"
|
||||
|
||||
#: ../js/ui/status/brightness.js:44
|
||||
msgid "Brightness"
|
||||
msgstr "Lysstyrke"
|
||||
@ -1356,10 +1386,6 @@ msgstr "Velg nettverk"
|
||||
msgid "Wi-Fi Settings"
|
||||
msgstr "Innstillinger"
|
||||
|
||||
#: ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "Slå på"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:1296
|
||||
#, javascript-format
|
||||
@ -1426,14 +1452,14 @@ msgstr "Estimerer …"
|
||||
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
|
||||
#: ../js/ui/status/power.js:86
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Remaining (%d%%)"
|
||||
msgstr "%d:%02d gjenstår (%d%%)"
|
||||
msgid "%d∶%02d Remaining (%d %%)"
|
||||
msgstr "%d:%02d gjenstår (%d %%)"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
|
||||
#: ../js/ui/status/power.js:91
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Until Full (%d%%)"
|
||||
msgstr "%d:%02d til batteriet er fullt (%d%%)"
|
||||
msgid "%d∶%02d Until Full (%d %%)"
|
||||
msgstr "%d:%02d til batteriet er fullt (%d %%)"
|
||||
|
||||
#. The menu only appears when airplane mode is on, so just
|
||||
#. statically build it as if it was on, rather than dynamically
|
||||
@ -1562,19 +1588,19 @@ msgstr "Alltid på synlig arbeidsområde"
|
||||
|
||||
#: ../js/ui/windowMenu.js:105
|
||||
msgid "Move to Workspace Left"
|
||||
msgstr "Gå til arbeidsområdet til venstre"
|
||||
msgstr "Flytt til arbeidsområdet til venstre"
|
||||
|
||||
#: ../js/ui/windowMenu.js:110
|
||||
msgid "Move to Workspace Right"
|
||||
msgstr "Gå til arbeidsområdet til høyre"
|
||||
msgstr "Flytt til arbeidsområdet til høyre"
|
||||
|
||||
#: ../js/ui/windowMenu.js:115
|
||||
msgid "Move to Workspace Up"
|
||||
msgstr "Gå til arbeidsområdet over"
|
||||
msgstr "Flytt til arbeidsområdet over"
|
||||
|
||||
#: ../js/ui/windowMenu.js:120
|
||||
msgid "Move to Workspace Down"
|
||||
msgstr "Gå til arbeidsområdet under"
|
||||
msgstr "Flytt til arbeidsområdet under"
|
||||
|
||||
#: ../js/ui/windowMenu.js:136
|
||||
msgid "Move to Monitor Up"
|
||||
@ -1598,7 +1624,7 @@ msgstr "Evolution kalender"
|
||||
|
||||
#. translators:
|
||||
#. * The number of sound outputs on a particular device
|
||||
#: ../src/gvc/gvc-mixer-control.c:1837
|
||||
#: ../src/gvc/gvc-mixer-control.c:1835
|
||||
#, c-format
|
||||
msgid "%u Output"
|
||||
msgid_plural "%u Outputs"
|
||||
@ -1607,51 +1633,51 @@ msgstr[1] "%u utganger"
|
||||
|
||||
#. translators:
|
||||
#. * The number of sound inputs on a particular device
|
||||
#: ../src/gvc/gvc-mixer-control.c:1847
|
||||
#: ../src/gvc/gvc-mixer-control.c:1845
|
||||
#, c-format
|
||||
msgid "%u Input"
|
||||
msgid_plural "%u Inputs"
|
||||
msgstr[0] "%u inngang"
|
||||
msgstr[1] "%u innganger"
|
||||
|
||||
#: ../src/gvc/gvc-mixer-control.c:2373
|
||||
#: ../src/gvc/gvc-mixer-control.c:2371
|
||||
msgid "System Sounds"
|
||||
msgstr "Systemlyder"
|
||||
|
||||
#: ../src/main.c:373
|
||||
#: ../src/main.c:381
|
||||
msgid "Print version"
|
||||
msgstr "Vis versjon"
|
||||
|
||||
#: ../src/main.c:379
|
||||
#: ../src/main.c:387
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "Modus som brukes av GDM for innloggingsskjermen"
|
||||
|
||||
#: ../src/main.c:385
|
||||
#: ../src/main.c:393
|
||||
msgid "Use a specific mode, e.g. \"gdm\" for login screen"
|
||||
msgstr "Bruk spesifikt modus, f.eks «gdm» for innloggingsskjerm"
|
||||
|
||||
#: ../src/main.c:391
|
||||
#: ../src/main.c:399
|
||||
msgid "List possible modes"
|
||||
msgstr "Vis mulige modi"
|
||||
|
||||
#: ../src/shell-app.c:239
|
||||
#: ../src/shell-app.c:246
|
||||
msgctxt "program"
|
||||
msgid "Unknown"
|
||||
msgstr "Ukjent"
|
||||
|
||||
#: ../src/shell-app.c:480
|
||||
#: ../src/shell-app.c:487
|
||||
#, c-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Klarte ikke å starte «%s»"
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:742
|
||||
#: ../src/shell-keyring-prompt.c:730
|
||||
msgid "Passwords do not match."
|
||||
msgstr "Passordene er ikke like."
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:750
|
||||
#: ../src/shell-keyring-prompt.c:738
|
||||
msgid "Password cannot be blank"
|
||||
msgstr "Passordet kan ikke være tomt"
|
||||
|
||||
#: ../src/shell-polkit-authentication-agent.c:346
|
||||
#: ../src/shell-polkit-authentication-agent.c:353
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "Autentiseringsdialogen ble lukket av brukeren"
|
||||
|
206
po/pt.po
206
po/pt.po
@ -7,23 +7,24 @@
|
||||
# Tiago S. <almosthumane@portugalmail.pt>, 2014.
|
||||
# Bruno Ramalhete <bram.512@gmail.com>, 2015.
|
||||
# Pedro Albuquerque <palbuquerque73@gmail.com>, 2014, 2015.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: 3.14\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||
"shell&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2015-10-03 20:41+0000\n"
|
||||
"PO-Revision-Date: 2015-10-07 07:06+0100\n"
|
||||
"Last-Translator: Pedro Albuquerque <palbuquerque73o@gmail.com>\n"
|
||||
"Language-Team: Português <palbuquerque73@gmail.com>\n"
|
||||
"POT-Creation-Date: 2015-11-20 22:14+0000\n"
|
||||
"PO-Revision-Date: 2015-11-21 09:02+0100\n"
|
||||
"Last-Translator: Pedro Albuquerque <palbuquerque73@gmail.com>\n"
|
||||
"Language-Team: Pedro Albuquerque\n"
|
||||
"Language: pt\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\\n\n"
|
||||
"X-Generator: Gtranslator 2.91.6\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Virtaal 0.7.1\n"
|
||||
"X-Project-Style: gnome\n"
|
||||
"X-Language: pt_PT\n"
|
||||
"X-Source-Language: C\n"
|
||||
|
||||
#: ../data/50-gnome-shell-system.xml.in.h:1
|
||||
msgid "System"
|
||||
@ -49,15 +50,6 @@ msgstr "Mostrar todas as aplicações"
|
||||
msgid "Open the application menu"
|
||||
msgstr "Abrir o menu de aplicações"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "Shell GNOME"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:2
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Gestão de janelas e iniciação de aplicações"
|
||||
|
||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
|
||||
msgid "GNOME Shell Extension Preferences"
|
||||
msgstr "Preferências das extensões á interface GNOME"
|
||||
@ -66,9 +58,13 @@ msgstr "Preferências das extensões á interface GNOME"
|
||||
msgid "Configure GNOME Shell Extensions"
|
||||
msgstr "Configurar extensões à interface GNOME"
|
||||
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
|
||||
msgid "GNOME Shell (wayland compositor)"
|
||||
msgstr "Interface GNOME (compositor wayland)"
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "Shell GNOME"
|
||||
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Gestão de janelas e iniciação de aplicações"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
|
||||
msgid "Enable internal tools useful for developers and testers from Alt-F2"
|
||||
@ -176,77 +172,96 @@ msgstr ""
|
||||
"define o estado predefinido dessa caixa de seleção."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
msgid ""
|
||||
"Whether the default Bluetooth adapter had set up devices associated to it"
|
||||
msgstr ""
|
||||
"Se o adaptador padrão Bluetooth tem dispositivos configurados associados a "
|
||||
"ele"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
msgid ""
|
||||
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
|
||||
"powered, or if there were devices set up associated with the default "
|
||||
"adapter. This will be reset if the default adapter is ever seen not to have "
|
||||
"devices associated to it."
|
||||
msgstr ""
|
||||
"A shell só vai mostrar um item de menu do adaptador Bluetooth se este "
|
||||
"estiver ligado ou se existirem dispositivos associados configurados com o "
|
||||
"adaptador predefinido. Isto será reposto se se verificar que o adaptador "
|
||||
"predefinido não tem dispositivos associados a ele."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
msgid "Show the week date in the calendar"
|
||||
msgstr "Mostrar o número da semana no calendário"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
msgid "If true, display the ISO week date in the calendar."
|
||||
msgstr "Se verdadeiro, mostra o número ISO da semana no calendário."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
msgid "Keybinding to open the application menu"
|
||||
msgstr "Atalho de teclado para abrir o menu de aplicações"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
msgid "Keybinding to open the application menu."
|
||||
msgstr "Atalho de teclado para abrir o menu de aplicações."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
msgid "Keybinding to open the \"Show Applications\" view"
|
||||
msgstr "Atalho de teclado para abrir a vista \"Mostrar aplicações\""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
msgid ""
|
||||
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
|
||||
msgstr ""
|
||||
"Atalho de teclado para abrir a vista \"Mostrar aplicações\" da vista geral "
|
||||
"de atividades."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
msgid "Keybinding to open the overview"
|
||||
msgstr "Atalho de teclado para abrir a vista geral"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
msgid "Keybinding to open the Activities Overview."
|
||||
msgstr "Atalho de teclado para abrir a vista geral de atividades."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
msgid "Keybinding to toggle the visibility of the notification list"
|
||||
msgstr "Atalho de teclado para alternar a visibilidade da lista de notificação"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
msgid "Keybinding to toggle the visibility of the notification list."
|
||||
msgstr ""
|
||||
"Atalho de teclado para alternar a visibilidade da lista de notificação."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
msgid "Keybinding to focus the active notification"
|
||||
msgstr "Atalho de teclado para focar a notificação ativa"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
msgid "Keybinding to focus the active notification."
|
||||
msgstr "Atalho de teclado para focar a notificação ativa."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
msgid ""
|
||||
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
|
||||
msgstr ""
|
||||
"Atalho de teclado que pausa e retoma todos os tweens em execução, para "
|
||||
"depuração de erros"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
msgid "Which keyboard to use"
|
||||
msgstr "Que teclado utilizar"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
msgid "The type of keyboard to use."
|
||||
msgstr "O tipo de teclado a utilizar."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
msgid "Limit switcher to current workspace."
|
||||
msgstr "Limitar troca à área de trabalho atual."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
msgid ""
|
||||
"If true, only applications that have windows on the current workspace are "
|
||||
"shown in the switcher. Otherwise, all applications are included."
|
||||
@ -254,11 +269,11 @@ msgstr ""
|
||||
"Se verdadeiro, só as aplicações com janelas na área de trabalho atual são "
|
||||
"mostradas para troca. Senão, são incluídas todas as aplicações."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
msgid "The application icon mode."
|
||||
msgstr "O modo do ícone da aplicação."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
msgid ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
@ -268,7 +283,7 @@ msgstr ""
|
||||
"válidas são 'thumbnail-only' (mostra uma miniatura da janela), 'app-icon-"
|
||||
"only' (mostra só o ícone da aplicação) ou 'both' (ambas)."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
msgid ""
|
||||
"If true, only windows from the current workspace are shown in the switcher. "
|
||||
"Otherwise, all windows are included."
|
||||
@ -276,29 +291,29 @@ msgstr ""
|
||||
"Se verdadeiro, só janelas da área de trabalho atual são apresentadas para "
|
||||
"troca. Senão, são incluídas todas as janelas."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
msgid "Attach modal dialog to the parent window"
|
||||
msgstr "Anexar diálogo modal à janela mãe"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
msgstr ""
|
||||
"Esta chave ignora a chave em org.gnome.mutter ao executar a interface GNOME."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
msgstr "Ativar anexar nas margens ao largar janelas junto às margens do ecrã"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
msgid "Workspaces are managed dynamically"
|
||||
msgstr "Áreas de trabalho são geridas dinamicamente"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
||||
msgid "Workspaces only on primary monitor"
|
||||
msgstr "Áreas de trabalho só no monitor principal"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
|
||||
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
msgstr ""
|
||||
"Atrasar alterações de foco nos modos de rato até que o ponteiro pare de se "
|
||||
@ -365,7 +380,7 @@ msgstr "(por ex., utilizador ou %s)"
|
||||
msgid "Username: "
|
||||
msgstr "Utilizador: "
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1184
|
||||
#: ../js/gdm/loginDialog.js:1180
|
||||
msgid "Login Window"
|
||||
msgstr "Janela de início de sessão"
|
||||
|
||||
@ -501,12 +516,12 @@ msgstr "Adicionar aos favoritos"
|
||||
msgid "Show Details"
|
||||
msgstr "Mostrar detalhes"
|
||||
|
||||
#: ../js/ui/appFavorites.js:132
|
||||
#: ../js/ui/appFavorites.js:133
|
||||
#, javascript-format
|
||||
msgid "%s has been added to your favorites."
|
||||
msgstr "%s foi adicionada aos seus favoritos."
|
||||
|
||||
#: ../js/ui/appFavorites.js:166
|
||||
#: ../js/ui/appFavorites.js:167
|
||||
#, javascript-format
|
||||
msgid "%s has been removed from your favorites."
|
||||
msgstr "%s foi removida dos seus favoritos."
|
||||
@ -583,6 +598,12 @@ msgstr "Mês anterior"
|
||||
msgid "Next month"
|
||||
msgstr "Mês seguinte"
|
||||
|
||||
#: ../js/ui/calendar.js:728
|
||||
#, javascript-format
|
||||
msgctxt "date day number format"
|
||||
msgid "%d"
|
||||
msgstr "%d"
|
||||
|
||||
#: ../js/ui/calendar.js:783
|
||||
msgid "Week %V"
|
||||
msgstr "Semana %V"
|
||||
@ -633,7 +654,7 @@ msgstr "Dispositivo externo ligado"
|
||||
msgid "External drive disconnected"
|
||||
msgstr "Dispositivo externo desligado"
|
||||
|
||||
#: ../js/ui/components/autorunManager.js:354
|
||||
#: ../js/ui/components/autorunManager.js:355
|
||||
#, javascript-format
|
||||
msgid "Open with %s"
|
||||
msgstr "Abrir com %s"
|
||||
@ -1023,23 +1044,22 @@ msgstr "Visão geral"
|
||||
msgid "Type to search…"
|
||||
msgstr "Escreva para procurar…"
|
||||
|
||||
#: ../js/ui/panel.js:352
|
||||
#: ../js/ui/panel.js:358
|
||||
msgid "Quit"
|
||||
msgstr "Sair"
|
||||
|
||||
#. Translators: If there is no suitable word for "Activities"
|
||||
#. in your language, you can use the word for "Overview".
|
||||
#: ../js/ui/panel.js:404
|
||||
#: ../js/ui/panel.js:414
|
||||
msgid "Activities"
|
||||
msgstr "Atividades"
|
||||
|
||||
#: ../js/ui/panel.js:650
|
||||
#| msgid "System"
|
||||
#: ../js/ui/panel.js:695
|
||||
msgctxt "System menu in the top bar"
|
||||
msgid "System"
|
||||
msgstr "Sistema"
|
||||
|
||||
#: ../js/ui/panel.js:754
|
||||
#: ../js/ui/panel.js:807
|
||||
msgid "Top Bar"
|
||||
msgstr "Barra superior"
|
||||
|
||||
@ -1052,15 +1072,15 @@ msgstr "Barra superior"
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-intl"
|
||||
|
||||
#: ../js/ui/runDialog.js:70
|
||||
#: ../js/ui/runDialog.js:71
|
||||
msgid "Enter a Command"
|
||||
msgstr "Insira um comando"
|
||||
|
||||
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
|
||||
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
|
||||
msgid "Close"
|
||||
msgstr "Fechar"
|
||||
|
||||
#: ../js/ui/runDialog.js:281
|
||||
#: ../js/ui/runDialog.js:282
|
||||
msgid "Restarting…"
|
||||
msgstr "A reiniciar…"
|
||||
|
||||
@ -1183,29 +1203,41 @@ msgstr "Alto contraste"
|
||||
msgid "Large Text"
|
||||
msgstr "Texto grande"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Desligar"
|
||||
#: ../js/ui/status/bluetooth.js:47
|
||||
msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:54
|
||||
#: ../js/ui/status/bluetooth.js:56
|
||||
msgid "Bluetooth Settings"
|
||||
msgstr "Definições Bluetooth"
|
||||
|
||||
#. Translators: this is the number of connected bluetooth devices
|
||||
#: ../js/ui/status/bluetooth.js:105
|
||||
#: ../js/ui/status/bluetooth.js:136
|
||||
#, javascript-format
|
||||
msgid "%d Connected"
|
||||
msgid_plural "%d Connected"
|
||||
msgstr[0] "%d ligado"
|
||||
msgstr[1] "%d ligados"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:107
|
||||
#: ../js/ui/status/bluetooth.js:138
|
||||
msgid "Off"
|
||||
msgstr "Desligado"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:140
|
||||
msgid "Not In Use"
|
||||
msgstr "Não em uso"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "Ligar"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Desligar"
|
||||
|
||||
#: ../js/ui/status/brightness.js:44
|
||||
msgid "Brightness"
|
||||
msgstr "Luminosidade"
|
||||
@ -1373,10 +1405,6 @@ msgstr "Selecionar rede"
|
||||
msgid "Wi-Fi Settings"
|
||||
msgstr "Definições de Wi-Fi"
|
||||
|
||||
#: ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "Ligar"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:1296
|
||||
#, javascript-format
|
||||
@ -1426,31 +1454,36 @@ msgstr "Falha na ligação"
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "Falha na ativação da ligação à rede"
|
||||
|
||||
#: ../js/ui/status/power.js:49
|
||||
#: ../js/ui/status/power.js:61
|
||||
msgid "Power Settings"
|
||||
msgstr "Definições de energia"
|
||||
|
||||
#: ../js/ui/status/power.js:65
|
||||
#: ../js/ui/status/power.js:77
|
||||
msgid "Fully Charged"
|
||||
msgstr "Totalmente carregado"
|
||||
|
||||
#. 0 is reported when UPower does not have enough data
|
||||
#. to estimate battery life
|
||||
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
|
||||
#: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
|
||||
msgid "Estimating…"
|
||||
msgstr "A estimar…"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
|
||||
#: ../js/ui/status/power.js:86
|
||||
#: ../js/ui/status/power.js:98
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Remaining (%d%%)"
|
||||
msgstr "%d∶%02d remanescentes (%d%%)"
|
||||
msgid "%d∶%02d Remaining (%d %%)"
|
||||
msgstr "%d∶%02d restantes (%d%%)"
|
||||
|
||||
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
|
||||
#: ../js/ui/status/power.js:91
|
||||
#: ../js/ui/status/power.js:103
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Until Full (%d%%)"
|
||||
msgstr "%d∶%02d Até estar cheio (%d%%)"
|
||||
msgid "%d∶%02d Until Full (%d %%)"
|
||||
msgstr "%d∶%02d até estar cheio (%d%%)"
|
||||
|
||||
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
|
||||
#, javascript-format
|
||||
msgid "%d %%"
|
||||
msgstr "%d %%"
|
||||
|
||||
#. The menu only appears when airplane mode is on, so just
|
||||
#. statically build it as if it was on, rather than dynamically
|
||||
@ -1652,39 +1685,36 @@ msgstr ""
|
||||
msgid "List possible modes"
|
||||
msgstr "Listar modos possíveis"
|
||||
|
||||
#: ../src/shell-app.c:239
|
||||
#: ../src/shell-app.c:246
|
||||
msgctxt "program"
|
||||
msgid "Unknown"
|
||||
msgstr "Desconhecida"
|
||||
|
||||
#: ../src/shell-app.c:480
|
||||
#: ../src/shell-app.c:487
|
||||
#, c-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Falha ao iniciar “%s”"
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:742
|
||||
#: ../src/shell-keyring-prompt.c:730
|
||||
msgid "Passwords do not match."
|
||||
msgstr "As senhas não coincidem."
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:750
|
||||
#: ../src/shell-keyring-prompt.c:738
|
||||
msgid "Password cannot be blank"
|
||||
msgstr "A senha não pode estar vazia"
|
||||
|
||||
#: ../src/shell-polkit-authentication-agent.c:346
|
||||
#: ../src/shell-polkit-authentication-agent.c:353
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "O diálogo de autenticação foi fechado pelo utilizador"
|
||||
|
||||
#~ msgid "Bluetooth"
|
||||
#~ msgstr "Bluetooth"
|
||||
#~ msgid "GNOME Shell (wayland compositor)"
|
||||
#~ msgstr "Interface GNOME (compositor wayland)"
|
||||
|
||||
#~ msgid "%d Connected Device"
|
||||
#~ msgid_plural "%d Connected Devices"
|
||||
#~ msgstr[0] "%d Dispositivo ligado"
|
||||
#~ msgstr[1] "%d Dispositivos ligados"
|
||||
|
||||
#~ msgid "Off"
|
||||
#~ msgstr "Desligado"
|
||||
|
||||
#~ msgid "Authentication required"
|
||||
#~ msgstr "Autenticação necessária"
|
||||
|
||||
|
205
po/ru.po
205
po/ru.po
@ -19,16 +19,16 @@ msgstr ""
|
||||
"Project-Id-Version: gnome-shell\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||
"shell&keywords=I18N+L10N&component=general\n"
|
||||
"POT-Creation-Date: 2015-09-29 08:39+0000\n"
|
||||
"PO-Revision-Date: 2015-09-29 22:06+0300\n"
|
||||
"POT-Creation-Date: 2015-11-23 10:13+0000\n"
|
||||
"PO-Revision-Date: 2015-11-23 22:19+0300\n"
|
||||
"Last-Translator: Stas Solovey <whats_up@tut.by>\n"
|
||||
"Language-Team: Русский <gnome-cyr@gnome.org>\n"
|
||||
"Language-Team: Russian <gnome-cyr@gnome.org>\n"
|
||||
"Language: ru\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%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"X-Generator: Gtranslator 2.91.7\n"
|
||||
|
||||
#: ../data/50-gnome-shell-system.xml.in.h:1
|
||||
@ -55,15 +55,6 @@ msgstr "Показать все приложения"
|
||||
msgid "Open the application menu"
|
||||
msgstr "Открыть меню приложений"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "GNOME Shell"
|
||||
|
||||
#: ../data/gnome-shell.desktop.in.in.h:2
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Управление окнами и запуск приложений"
|
||||
|
||||
#: ../data/gnome-shell-extension-prefs.desktop.in.in.h:1
|
||||
msgid "GNOME Shell Extension Preferences"
|
||||
msgstr "Параметры расширений GNOME Shell"
|
||||
@ -72,9 +63,13 @@ msgstr "Параметры расширений GNOME Shell"
|
||||
msgid "Configure GNOME Shell Extensions"
|
||||
msgstr "Настроить расширения GNOME Shell"
|
||||
|
||||
#: ../data/gnome-shell-wayland.desktop.in.in.h:1
|
||||
msgid "GNOME Shell (wayland compositor)"
|
||||
msgstr "GNOME Shell (компоновщик wayland)"
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:1
|
||||
msgid "GNOME Shell"
|
||||
msgstr "GNOME Shell"
|
||||
|
||||
#: ../data/org.gnome.Shell.desktop.in.in.h:2
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Управление окнами и запуск приложений"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:1
|
||||
msgid "Enable internal tools useful for developers and testers from Alt-F2"
|
||||
@ -179,76 +174,94 @@ msgstr ""
|
||||
"устанавливает состояние по умолчание для этой флаговой кнопки."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:18
|
||||
msgid ""
|
||||
"Whether the default Bluetooth adapter had set up devices associated to it"
|
||||
msgstr ""
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
|
||||
"powered, or if there were devices set up associated with the default "
|
||||
"adapter. This will be reset if the default adapter is ever seen not to have "
|
||||
"devices associated to it."
|
||||
msgstr ""
|
||||
"Пункт меню Bluetooth будет отображаться только в случае включённого адаптера "
|
||||
"Bluetooth или если имеются установленные устройства связанные с адаптером по "
|
||||
"умолчанию. Параметр будет сброшен, если адаптер по умолчанию не имеет "
|
||||
"связанных с ним устройств."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
msgid "Show the week date in the calendar"
|
||||
msgstr "Показывать в календаре нумерацию недель"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:19
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
msgid "If true, display the ISO week date in the calendar."
|
||||
msgstr ""
|
||||
"Если включено, календарь будет показывать нумерацию недель в формате ISO."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:20
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
msgid "Keybinding to open the application menu"
|
||||
msgstr "Комбинация клавиш для открытия меню приложения"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:21
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
msgid "Keybinding to open the application menu."
|
||||
msgstr "Комбинация клавиш для открытия меню приложения."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:22
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
msgid "Keybinding to open the \"Show Applications\" view"
|
||||
msgstr "Комбинация клавиш для перехода в режим просмотра приложений"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:23
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
msgid ""
|
||||
"Keybinding to open the \"Show Applications\" view of the Activities Overview."
|
||||
msgstr "Комбинация клавиш для перехода в режим просмотра приложений."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:24
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
msgid "Keybinding to open the overview"
|
||||
msgstr "Комбинация клавиш для перехода в режим обзора"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:25
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
msgid "Keybinding to open the Activities Overview."
|
||||
msgstr "Комбинация клавиш для перехода в режим обзора."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:26
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
msgid "Keybinding to toggle the visibility of the notification list"
|
||||
msgstr "Комбинация клавиш для отображения или скрытия списка уведомлений"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:27
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
msgid "Keybinding to toggle the visibility of the notification list."
|
||||
msgstr "Комбинация клавиш для отображения или скрытия списка уведомлений."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:28
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
msgid "Keybinding to focus the active notification"
|
||||
msgstr "Комбинация клавиш для перевода фокуса на текущее уведомление"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:29
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
msgid "Keybinding to focus the active notification."
|
||||
msgstr "Комбинация клавиш для перевода фокуса на текущее уведомление."
|
||||
|
||||
# tweens — что-то типа анимации
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:30
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
msgid ""
|
||||
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
|
||||
msgstr ""
|
||||
"Комбинация клавиш, которая приостанавливает и возобновляет все запущенные "
|
||||
"анимации (для отладки)"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:31
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
msgid "Which keyboard to use"
|
||||
msgstr "Какую клавиатуру использовать"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:32
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
msgid "The type of keyboard to use."
|
||||
msgstr "Тип используемой клавиатуры."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:33
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
msgid "Limit switcher to current workspace."
|
||||
msgstr "Ограничить переключатель текущим рабочим местом."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:34
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
msgid ""
|
||||
"If true, only applications that have windows on the current workspace are "
|
||||
"shown in the switcher. Otherwise, all applications are included."
|
||||
@ -257,11 +270,11 @@ msgstr ""
|
||||
"чьи окна находятся на текущем рабочем месте. Иначе все приложения будут "
|
||||
"включены."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:35
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
msgid "The application icon mode."
|
||||
msgstr "Режим значка приложения."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:36
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
msgid ""
|
||||
"Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
@ -271,7 +284,7 @@ msgstr ""
|
||||
"«thumbnail-only» (показывать миниатюру окна), «app-icon-only» (показывать "
|
||||
"только значок приложения), «both» (показывать миниатюру и значок)."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:37
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
msgid ""
|
||||
"If true, only windows from the current workspace are shown in the switcher. "
|
||||
"Otherwise, all windows are included."
|
||||
@ -279,31 +292,31 @@ msgstr ""
|
||||
"Если выбрано, то в переключателе будут показываться только окна из текущего "
|
||||
"рабочего места. Иначе все окна будут включены."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:38
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
msgid "Attach modal dialog to the parent window"
|
||||
msgstr "Прикреплять модальное диалоговое окно к родительскому окну"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:39
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
msgstr ""
|
||||
"Этот ключ переопределяет ключ в org.gnome.mutter при запуске GNOME Shell."
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:40
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
msgstr ""
|
||||
"Включить автоматическое изменение размеров окон при перемещении окон к краям "
|
||||
"экрана"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:41
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
msgid "Workspaces are managed dynamically"
|
||||
msgstr "Рабочие места управляются динамически"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:42
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:44
|
||||
msgid "Workspaces only on primary monitor"
|
||||
msgstr "Рабочие места только на основном мониторе"
|
||||
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:43
|
||||
#: ../data/org.gnome.shell.gschema.xml.in.in.h:45
|
||||
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
msgstr "Задержка изменения фокуса в режиме мыши после остановки указателя"
|
||||
|
||||
@ -368,7 +381,7 @@ msgstr "(например, пользователь или %s)"
|
||||
msgid "Username: "
|
||||
msgstr "Имя пользователя: "
|
||||
|
||||
#: ../js/gdm/loginDialog.js:1184
|
||||
#: ../js/gdm/loginDialog.js:1180
|
||||
msgid "Login Window"
|
||||
msgstr "Окно входа в систему"
|
||||
|
||||
@ -509,12 +522,12 @@ msgstr "Добавить в избранное"
|
||||
msgid "Show Details"
|
||||
msgstr "Показать подробности"
|
||||
|
||||
#: ../js/ui/appFavorites.js:132
|
||||
#: ../js/ui/appFavorites.js:133
|
||||
#, javascript-format
|
||||
msgid "%s has been added to your favorites."
|
||||
msgstr "Приложение %s добавлено в избранное."
|
||||
|
||||
#: ../js/ui/appFavorites.js:166
|
||||
#: ../js/ui/appFavorites.js:167
|
||||
#, javascript-format
|
||||
msgid "%s has been removed from your favorites."
|
||||
msgstr "Приложение %s удалено из избранного."
|
||||
@ -591,6 +604,12 @@ msgstr "Предыдущий месяц"
|
||||
msgid "Next month"
|
||||
msgstr "Следующий месяц"
|
||||
|
||||
#: ../js/ui/calendar.js:728
|
||||
#, javascript-format
|
||||
msgctxt "date day number format"
|
||||
msgid "%d"
|
||||
msgstr "%d"
|
||||
|
||||
#: ../js/ui/calendar.js:783
|
||||
msgid "Week %V"
|
||||
msgstr "%V неделя"
|
||||
@ -643,7 +662,7 @@ msgstr "Внешний диск подключён"
|
||||
msgid "External drive disconnected"
|
||||
msgstr "Внешний диск отключён"
|
||||
|
||||
#: ../js/ui/components/autorunManager.js:354
|
||||
#: ../js/ui/components/autorunManager.js:355
|
||||
#, javascript-format
|
||||
msgid "Open with %s"
|
||||
msgstr "Открыть с помощью %s"
|
||||
@ -1040,23 +1059,22 @@ msgstr "Обзор"
|
||||
msgid "Type to search…"
|
||||
msgstr "Найти…"
|
||||
|
||||
#: ../js/ui/panel.js:352
|
||||
#: ../js/ui/panel.js:358
|
||||
msgid "Quit"
|
||||
msgstr "Завершить"
|
||||
|
||||
#. Translators: If there is no suitable word for "Activities"
|
||||
#. in your language, you can use the word for "Overview".
|
||||
#: ../js/ui/panel.js:404
|
||||
#: ../js/ui/panel.js:414
|
||||
msgid "Activities"
|
||||
msgstr "Обзор"
|
||||
|
||||
#: ../js/ui/panel.js:650
|
||||
#| msgid "System"
|
||||
#: ../js/ui/panel.js:695
|
||||
msgctxt "System menu in the top bar"
|
||||
msgid "System"
|
||||
msgstr "Система"
|
||||
|
||||
#: ../js/ui/panel.js:754
|
||||
#: ../js/ui/panel.js:807
|
||||
msgid "Top Bar"
|
||||
msgstr "Верхняя панель"
|
||||
|
||||
@ -1069,15 +1087,15 @@ msgstr "Верхняя панель"
|
||||
msgid "toggle-switch-us"
|
||||
msgstr "toggle-switch-intl"
|
||||
|
||||
#: ../js/ui/runDialog.js:70
|
||||
#: ../js/ui/runDialog.js:71
|
||||
msgid "Enter a Command"
|
||||
msgstr "Введите команду"
|
||||
|
||||
#: ../js/ui/runDialog.js:110 ../js/ui/windowMenu.js:162
|
||||
#: ../js/ui/runDialog.js:111 ../js/ui/windowMenu.js:162
|
||||
msgid "Close"
|
||||
msgstr "Закрыть"
|
||||
|
||||
#: ../js/ui/runDialog.js:281
|
||||
#: ../js/ui/runDialog.js:282
|
||||
msgid "Restarting…"
|
||||
msgstr "Перезапуск…"
|
||||
|
||||
@ -1203,19 +1221,16 @@ msgstr "Высокая контрастность"
|
||||
msgid "Large Text"
|
||||
msgstr "Крупный текст"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:51 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Выключить"
|
||||
#: ../js/ui/status/bluetooth.js:47
|
||||
msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:54
|
||||
#: ../js/ui/status/bluetooth.js:56
|
||||
msgid "Bluetooth Settings"
|
||||
msgstr "Настроить Bluetooth"
|
||||
|
||||
#. Translators: this is the number of connected bluetooth devices
|
||||
#: ../js/ui/status/bluetooth.js:105
|
||||
#: ../js/ui/status/bluetooth.js:136
|
||||
#, javascript-format
|
||||
msgid "%d Connected"
|
||||
msgid_plural "%d Connected"
|
||||
@ -1223,10 +1238,25 @@ msgstr[0] "Подключено %d"
|
||||
msgstr[1] "Подключено %d"
|
||||
msgstr[2] "Подключено %d"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:107
|
||||
#: ../js/ui/status/bluetooth.js:138
|
||||
msgid "Off"
|
||||
msgstr "Выключено"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:140
|
||||
msgid "Not In Use"
|
||||
msgstr "Не используется"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "Включить"
|
||||
|
||||
#: ../js/ui/status/bluetooth.js:142 ../js/ui/status/network.js:178
|
||||
#: ../js/ui/status/network.js:353 ../js/ui/status/network.js:1279
|
||||
#: ../js/ui/status/network.js:1394 ../js/ui/status/rfkill.js:90
|
||||
#: ../js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Выключить"
|
||||
|
||||
#: ../js/ui/status/brightness.js:44
|
||||
msgid "Brightness"
|
||||
msgstr "Яркость"
|
||||
@ -1394,10 +1424,6 @@ msgstr "Выбрать сеть"
|
||||
msgid "Wi-Fi Settings"
|
||||
msgstr "Параметры Wi-Fi"
|
||||
|
||||
#: ../js/ui/status/network.js:1279
|
||||
msgid "Turn On"
|
||||
msgstr "Включить"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: ../js/ui/status/network.js:1296
|
||||
#, javascript-format
|
||||
@ -1447,44 +1473,52 @@ msgstr "Сбой подключения"
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "Не удалось активировать сетевое подключение"
|
||||
|
||||
#: ../js/ui/status/power.js:49
|
||||
#: ../js/ui/status/power.js:61
|
||||
msgid "Power Settings"
|
||||
msgstr "Параметры электропитания"
|
||||
|
||||
#: ../js/ui/status/power.js:65
|
||||
#: ../js/ui/status/power.js:77
|
||||
msgid "Fully Charged"
|
||||
msgstr "Полностью заряжена"
|
||||
|
||||
#. 0 is reported when UPower does not have enough data
|
||||
#. to estimate battery life
|
||||
#: ../js/ui/status/power.js:72 ../js/ui/status/power.js:78
|
||||
#: ../js/ui/status/power.js:84 ../js/ui/status/power.js:90
|
||||
msgid "Estimating…"
|
||||
msgstr "Выполняется подсчёт…"
|
||||
|
||||
# нужно в две строки, иначе не влезает в выпадающую панель
|
||||
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
|
||||
#: ../js/ui/status/power.js:86
|
||||
#: ../js/ui/status/power.js:98
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Remaining (%d%%)"
|
||||
#| msgid "%d∶%02d Remaining (%d%%)"
|
||||
msgid "%d∶%02d Remaining (%d %%)"
|
||||
msgstr ""
|
||||
"Осталось %02d ч. %d мин.\n"
|
||||
"Разряжается (%d%%)"
|
||||
"Разряжается (%d %%)"
|
||||
|
||||
# нужно в две строки, иначе не влезает в выпадающую панель
|
||||
#. Translators: this is <hours>:<minutes> Until Full (<percentage>)
|
||||
#: ../js/ui/status/power.js:91
|
||||
#: ../js/ui/status/power.js:103
|
||||
#, javascript-format
|
||||
msgid "%d∶%02d Until Full (%d%%)"
|
||||
#| msgid "%d∶%02d Until Full (%d%%)"
|
||||
msgid "%d∶%02d Until Full (%d %%)"
|
||||
msgstr ""
|
||||
"До полной %02d ч. %d мин.\n"
|
||||
"Заряжается (%d%%)"
|
||||
"Заряжается (%d %%)"
|
||||
|
||||
#: ../js/ui/status/power.js:131 ../js/ui/status/power.js:133
|
||||
#, javascript-format
|
||||
msgid "%d %%"
|
||||
msgstr "%d %%"
|
||||
|
||||
# Нужно максимально коротко, иначе не влазит в меню gnome shell
|
||||
#. The menu only appears when airplane mode is on, so just
|
||||
#. statically build it as if it was on, rather than dynamically
|
||||
#. changing the menu contents.
|
||||
#: ../js/ui/status/rfkill.js:88
|
||||
msgid "Airplane Mode On"
|
||||
msgstr "Включён режим авиаперелёта"
|
||||
msgstr "Включён авиарежим"
|
||||
|
||||
#: ../js/ui/status/system.js:343
|
||||
msgid "Switch User"
|
||||
@ -1545,7 +1579,7 @@ msgstr "Окно «%s» ожидает"
|
||||
|
||||
#: ../js/ui/windowManager.js:63
|
||||
msgid "Do you want to keep these display settings?"
|
||||
msgstr "Хотите сохранить эти параметры дисплея?"
|
||||
msgstr "Сохранить эти параметры дисплея?"
|
||||
|
||||
#. Translators: this and the following message should be limited in lenght,
|
||||
#. to avoid ellipsizing the labels.
|
||||
@ -1682,30 +1716,30 @@ msgstr ""
|
||||
msgid "List possible modes"
|
||||
msgstr "Список возможных режимов"
|
||||
|
||||
#: ../src/shell-app.c:239
|
||||
#: ../src/shell-app.c:246
|
||||
msgctxt "program"
|
||||
msgid "Unknown"
|
||||
msgstr "Неизвестное приложение"
|
||||
|
||||
#: ../src/shell-app.c:480
|
||||
#: ../src/shell-app.c:487
|
||||
#, c-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Не удалось запустить «%s»"
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:742
|
||||
#: ../src/shell-keyring-prompt.c:730
|
||||
msgid "Passwords do not match."
|
||||
msgstr "Пароли не совпадают."
|
||||
|
||||
#: ../src/shell-keyring-prompt.c:750
|
||||
#: ../src/shell-keyring-prompt.c:738
|
||||
msgid "Password cannot be blank"
|
||||
msgstr "Пароль не может быть пустым"
|
||||
|
||||
#: ../src/shell-polkit-authentication-agent.c:346
|
||||
#: ../src/shell-polkit-authentication-agent.c:353
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "Аутентификация отклонена пользователем"
|
||||
|
||||
#~ msgid "Bluetooth"
|
||||
#~ msgstr "Bluetooth"
|
||||
#~ msgid "GNOME Shell (wayland compositor)"
|
||||
#~ msgstr "GNOME Shell (компоновщик wayland)"
|
||||
|
||||
#~ msgid "%d Connected Device"
|
||||
#~ msgid_plural "%d Connected Devices"
|
||||
@ -1713,9 +1747,6 @@ msgstr "Аутентификация отклонена пользователе
|
||||
#~ msgstr[1] "Подключено %d устройства"
|
||||
#~ msgstr[2] "Подключено %d устройств"
|
||||
|
||||
#~ msgid "Off"
|
||||
#~ msgstr "Выключено"
|
||||
|
||||
#~ msgid "Authentication required"
|
||||
#~ msgstr "Требуется подтверждение подлинности"
|
||||
|
||||
|
680
po/zh_CN.po
680
po/zh_CN.po
File diff suppressed because it is too large
Load Diff
@ -41,8 +41,6 @@
|
||||
#define N_(x) x
|
||||
#endif
|
||||
|
||||
#define CALENDAR_SOURCES_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CALENDAR_TYPE_SOURCES, CalendarSourcesPrivate))
|
||||
|
||||
typedef struct _ClientData ClientData;
|
||||
typedef struct _CalendarSourceData CalendarSourceData;
|
||||
|
||||
@ -66,6 +64,14 @@ struct _CalendarSourceData
|
||||
guint loaded : 1;
|
||||
};
|
||||
|
||||
typedef struct _CalendarSourcesPrivate CalendarSourcesPrivate;
|
||||
|
||||
struct _CalendarSources
|
||||
{
|
||||
GObject parent;
|
||||
CalendarSourcesPrivate *priv;
|
||||
};
|
||||
|
||||
struct _CalendarSourcesPrivate
|
||||
{
|
||||
ESourceRegistry *registry;
|
||||
@ -77,8 +83,8 @@ struct _CalendarSourcesPrivate
|
||||
CalendarSourceData task_sources;
|
||||
};
|
||||
|
||||
static void calendar_sources_class_init (CalendarSourcesClass *klass);
|
||||
static void calendar_sources_init (CalendarSources *sources);
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (CalendarSources, calendar_sources, G_TYPE_OBJECT)
|
||||
|
||||
static void calendar_sources_finalize (GObject *object);
|
||||
|
||||
static void backend_died_cb (EClient *client, CalendarSourceData *source_data);
|
||||
@ -108,34 +114,6 @@ client_data_free (ClientData *data)
|
||||
g_slice_free (ClientData, data);
|
||||
}
|
||||
|
||||
GType
|
||||
calendar_sources_get_type (void)
|
||||
{
|
||||
static GType sources_type = 0;
|
||||
|
||||
if (!sources_type)
|
||||
{
|
||||
static const GTypeInfo sources_info =
|
||||
{
|
||||
sizeof (CalendarSourcesClass),
|
||||
NULL, /* base_init */
|
||||
NULL, /* base_finalize */
|
||||
(GClassInitFunc) calendar_sources_class_init,
|
||||
NULL, /* class_finalize */
|
||||
NULL, /* class_data */
|
||||
sizeof (CalendarSources),
|
||||
0, /* n_preallocs */
|
||||
(GInstanceInitFunc) calendar_sources_init,
|
||||
};
|
||||
|
||||
sources_type = g_type_register_static (G_TYPE_OBJECT,
|
||||
"CalendarSources",
|
||||
&sources_info, 0);
|
||||
}
|
||||
|
||||
return sources_type;
|
||||
}
|
||||
|
||||
static void
|
||||
calendar_sources_class_init (CalendarSourcesClass *klass)
|
||||
{
|
||||
@ -145,14 +123,11 @@ calendar_sources_class_init (CalendarSourcesClass *klass)
|
||||
|
||||
gobject_class->finalize = calendar_sources_finalize;
|
||||
|
||||
g_type_class_add_private (klass, sizeof (CalendarSourcesPrivate));
|
||||
|
||||
signals [APPOINTMENT_SOURCES_CHANGED] =
|
||||
g_signal_new ("appointment-sources-changed",
|
||||
G_TYPE_FROM_CLASS (gobject_class),
|
||||
G_SIGNAL_RUN_LAST,
|
||||
G_STRUCT_OFFSET (CalendarSourcesClass,
|
||||
appointment_sources_changed),
|
||||
0,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
@ -163,8 +138,7 @@ calendar_sources_class_init (CalendarSourcesClass *klass)
|
||||
g_signal_new ("task-sources-changed",
|
||||
G_TYPE_FROM_CLASS (gobject_class),
|
||||
G_SIGNAL_RUN_LAST,
|
||||
G_STRUCT_OFFSET (CalendarSourcesClass,
|
||||
task_sources_changed),
|
||||
0,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
@ -179,7 +153,7 @@ calendar_sources_init (CalendarSources *sources)
|
||||
GDBusConnection *session_bus;
|
||||
GVariant *result;
|
||||
|
||||
sources->priv = CALENDAR_SOURCES_GET_PRIVATE (sources);
|
||||
sources->priv = calendar_sources_get_instance_private (sources);
|
||||
|
||||
/* WORKAROUND: the hardcoded timeout for e_source_registry_new_sync()
|
||||
(and other library calls that eventually call g_dbus_proxy_new[_sync]())
|
||||
|
@ -28,33 +28,10 @@
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define CALENDAR_TYPE_SOURCES (calendar_sources_get_type ())
|
||||
#define CALENDAR_SOURCES(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CALENDAR_TYPE_SOURCES, CalendarSources))
|
||||
#define CALENDAR_SOURCES_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), CALENDAR_TYPE_SOURCES, CalendarSourcesClass))
|
||||
#define CALENDAR_IS_SOURCES(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CALENDAR_TYPE_SOURCES))
|
||||
#define CALENDAR_IS_SOURCES_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CALENDAR_TYPE_SOURCES))
|
||||
#define CALENDAR_SOURCES_GET_CLASS(o)(G_TYPE_INSTANCE_GET_CLASS ((o), CALENDAR_TYPE_SOURCES, CalendarSourcesClass))
|
||||
#define CALENDAR_TYPE_SOURCES (calendar_sources_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (CalendarSources, calendar_sources,
|
||||
CALENDAR, SOURCES, GObject)
|
||||
|
||||
typedef struct _CalendarSources CalendarSources;
|
||||
typedef struct _CalendarSourcesClass CalendarSourcesClass;
|
||||
typedef struct _CalendarSourcesPrivate CalendarSourcesPrivate;
|
||||
|
||||
struct _CalendarSources
|
||||
{
|
||||
GObject parent;
|
||||
CalendarSourcesPrivate *priv;
|
||||
};
|
||||
|
||||
struct _CalendarSourcesClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
|
||||
void (* appointment_sources_changed) (CalendarSources *sources);
|
||||
void (* task_sources_changed) (CalendarSources *sources);
|
||||
};
|
||||
|
||||
|
||||
GType calendar_sources_get_type (void) G_GNUC_CONST;
|
||||
CalendarSources *calendar_sources_get (void);
|
||||
GList *calendar_sources_get_appointment_clients (CalendarSources *sources);
|
||||
GList *calendar_sources_get_task_clients (CalendarSources *sources);
|
||||
|
@ -43,8 +43,6 @@
|
||||
#define DIRECTORY_LOAD_ITEMS_PER_CALLBACK 100
|
||||
#define HIGH_SCORE_RATIO 0.10
|
||||
|
||||
G_DEFINE_TYPE (ShellMimeSniffer, shell_mime_sniffer, G_TYPE_OBJECT);
|
||||
|
||||
enum {
|
||||
PROP_FILE = 1,
|
||||
NUM_PROPERTIES
|
||||
@ -72,16 +70,26 @@ typedef struct {
|
||||
gint total_items;
|
||||
} DeepCountState;
|
||||
|
||||
typedef struct _ShellMimeSnifferPrivate ShellMimeSnifferPrivate;
|
||||
|
||||
struct _ShellMimeSniffer
|
||||
{
|
||||
GObject parent_instance;
|
||||
|
||||
ShellMimeSnifferPrivate *priv;
|
||||
};
|
||||
|
||||
struct _ShellMimeSnifferPrivate {
|
||||
GFile *file;
|
||||
|
||||
GCancellable *cancellable;
|
||||
guint watchdog_id;
|
||||
|
||||
GSimpleAsyncResult *async_result;
|
||||
gchar **sniffed_mime;
|
||||
GTask *task;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (ShellMimeSniffer, shell_mime_sniffer, G_TYPE_OBJECT);
|
||||
|
||||
static void deep_count_load (DeepCountState *state,
|
||||
GFile *file);
|
||||
|
||||
@ -179,6 +187,7 @@ prepare_async_result (DeepCountState *state)
|
||||
GArray *results;
|
||||
GPtrArray *sniffed_mime;
|
||||
SniffedResult result;
|
||||
char **mimes;
|
||||
|
||||
sniffed_mime = g_ptr_array_new ();
|
||||
results = g_array_new (TRUE, TRUE, sizeof (SniffedResult));
|
||||
@ -220,10 +229,10 @@ prepare_async_result (DeepCountState *state)
|
||||
|
||||
out:
|
||||
g_ptr_array_add (sniffed_mime, NULL);
|
||||
self->priv->sniffed_mime = (gchar **) g_ptr_array_free (sniffed_mime, FALSE);
|
||||
mimes = (gchar **) g_ptr_array_free (sniffed_mime, FALSE);
|
||||
|
||||
g_array_free (results, TRUE);
|
||||
g_simple_async_result_complete_in_idle (self->priv->async_result);
|
||||
g_task_return_pointer (self->priv->task, mimes, (GDestroyNotify)g_strfreev);
|
||||
}
|
||||
|
||||
/* adapted from nautilus/libnautilus-private/nautilus-directory-async.c */
|
||||
@ -416,20 +425,17 @@ query_info_async_ready_cb (GObject *source,
|
||||
|
||||
if (error != NULL)
|
||||
{
|
||||
g_simple_async_result_take_error (self->priv->async_result,
|
||||
error);
|
||||
g_simple_async_result_complete_in_idle (self->priv->async_result);
|
||||
g_task_return_error (self->priv->task, error);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (g_file_info_get_file_type (info) != G_FILE_TYPE_DIRECTORY)
|
||||
{
|
||||
g_simple_async_result_set_error (self->priv->async_result,
|
||||
G_IO_ERROR,
|
||||
G_IO_ERROR_NOT_DIRECTORY,
|
||||
"Not a directory");
|
||||
g_simple_async_result_complete_in_idle (self->priv->async_result);
|
||||
g_task_return_new_error (self->priv->task,
|
||||
G_IO_ERROR,
|
||||
G_IO_ERROR_NOT_DIRECTORY,
|
||||
"Not a directory");
|
||||
|
||||
return;
|
||||
}
|
||||
@ -475,7 +481,7 @@ shell_mime_sniffer_dispose (GObject *object)
|
||||
|
||||
g_clear_object (&self->priv->file);
|
||||
g_clear_object (&self->priv->cancellable);
|
||||
g_clear_object (&self->priv->async_result);
|
||||
g_clear_object (&self->priv->task);
|
||||
|
||||
if (self->priv->watchdog_id != 0)
|
||||
{
|
||||
@ -486,16 +492,6 @@ shell_mime_sniffer_dispose (GObject *object)
|
||||
G_OBJECT_CLASS (shell_mime_sniffer_parent_class)->dispose (object);
|
||||
}
|
||||
|
||||
static void
|
||||
shell_mime_sniffer_finalize (GObject *object)
|
||||
{
|
||||
ShellMimeSniffer *self = SHELL_MIME_SNIFFER (object);
|
||||
|
||||
g_strfreev (self->priv->sniffed_mime);
|
||||
|
||||
G_OBJECT_CLASS (shell_mime_sniffer_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
shell_mime_sniffer_get_property (GObject *object,
|
||||
guint prop_id,
|
||||
@ -539,7 +535,6 @@ shell_mime_sniffer_class_init (ShellMimeSnifferClass *klass)
|
||||
|
||||
oclass = G_OBJECT_CLASS (klass);
|
||||
oclass->dispose = shell_mime_sniffer_dispose;
|
||||
oclass->finalize = shell_mime_sniffer_finalize;
|
||||
oclass->get_property = shell_mime_sniffer_get_property;
|
||||
oclass->set_property = shell_mime_sniffer_set_property;
|
||||
|
||||
@ -550,17 +545,13 @@ shell_mime_sniffer_class_init (ShellMimeSnifferClass *klass)
|
||||
G_TYPE_FILE,
|
||||
G_PARAM_READWRITE);
|
||||
|
||||
g_type_class_add_private (klass, sizeof (ShellMimeSnifferPrivate));
|
||||
g_object_class_install_properties (oclass, NUM_PROPERTIES, properties);
|
||||
}
|
||||
|
||||
static void
|
||||
shell_mime_sniffer_init (ShellMimeSniffer *self)
|
||||
{
|
||||
self->priv =
|
||||
G_TYPE_INSTANCE_GET_PRIVATE (self,
|
||||
SHELL_TYPE_MIME_SNIFFER,
|
||||
ShellMimeSnifferPrivate);
|
||||
self->priv = shell_mime_sniffer_get_instance_private (self);
|
||||
init_mimetypes ();
|
||||
}
|
||||
|
||||
@ -578,14 +569,11 @@ shell_mime_sniffer_sniff_async (ShellMimeSniffer *self,
|
||||
gpointer user_data)
|
||||
{
|
||||
g_assert (self->priv->watchdog_id == 0);
|
||||
g_assert (self->priv->async_result == NULL);
|
||||
g_assert (self->priv->task == NULL);
|
||||
|
||||
self->priv->async_result =
|
||||
g_simple_async_result_new (G_OBJECT (self),
|
||||
callback, user_data,
|
||||
shell_mime_sniffer_sniff_finish);
|
||||
|
||||
self->priv->cancellable = g_cancellable_new ();
|
||||
self->priv->task = g_task_new (self, self->priv->cancellable,
|
||||
callback, user_data);
|
||||
|
||||
self->priv->watchdog_id =
|
||||
g_timeout_add (WATCHDOG_TIMEOUT,
|
||||
@ -600,8 +588,5 @@ shell_mime_sniffer_sniff_finish (ShellMimeSniffer *self,
|
||||
GAsyncResult *res,
|
||||
GError **error)
|
||||
{
|
||||
if (g_simple_async_result_propagate_error (self->priv->async_result, error))
|
||||
return NULL;
|
||||
|
||||
return g_strdupv (self->priv->sniffed_mime);
|
||||
return g_task_propagate_pointer (self->priv->task, error);
|
||||
}
|
||||
|
@ -27,30 +27,9 @@
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define SHELL_TYPE_MIME_SNIFFER (shell_mime_sniffer_get_type ())
|
||||
#define SHELL_MIME_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SHELL_TYPE_MIME_SNIFFER, ShellMimeSniffer))
|
||||
#define SHELL_IS_MIME_SNIFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SHELL_TYPE_MIME_SNIFFER))
|
||||
#define SHELL_MIME_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_MIME_SNIFFER, ShellMimeSnifferClass))
|
||||
#define SHELL_IS_MIME_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_MIME_SNIFFER))
|
||||
#define SHELL_MIME_SNIFFER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_MIME_SNIFFER, ShellMimeSnifferClass))
|
||||
|
||||
typedef struct _ShellMimeSniffer ShellMimeSniffer;
|
||||
typedef struct _ShellMimeSnifferPrivate ShellMimeSnifferPrivate;
|
||||
typedef struct _ShellMimeSnifferClass ShellMimeSnifferClass;
|
||||
|
||||
struct _ShellMimeSniffer
|
||||
{
|
||||
GObject parent_instance;
|
||||
|
||||
ShellMimeSnifferPrivate *priv;
|
||||
};
|
||||
|
||||
struct _ShellMimeSnifferClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
};
|
||||
|
||||
GType shell_mime_sniffer_get_type (void) G_GNUC_CONST;
|
||||
#define SHELL_TYPE_MIME_SNIFFER (shell_mime_sniffer_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (ShellMimeSniffer, shell_mime_sniffer,
|
||||
SHELL, MIME_SNIFFER, GObject)
|
||||
|
||||
ShellMimeSniffer *shell_mime_sniffer_new (GFile *file);
|
||||
|
||||
|
@ -37,6 +37,15 @@ enum {
|
||||
|
||||
static guint signals[LAST_SIGNAL] = { 0 };
|
||||
|
||||
typedef struct _ShellAppSystemPrivate ShellAppSystemPrivate;
|
||||
|
||||
struct _ShellAppSystem
|
||||
{
|
||||
GObject parent;
|
||||
|
||||
ShellAppSystemPrivate *priv;
|
||||
};
|
||||
|
||||
struct _ShellAppSystemPrivate {
|
||||
GHashTable *running_apps;
|
||||
GHashTable *id_to_app;
|
||||
@ -45,7 +54,7 @@ struct _ShellAppSystemPrivate {
|
||||
|
||||
static void shell_app_system_finalize (GObject *object);
|
||||
|
||||
G_DEFINE_TYPE(ShellAppSystem, shell_app_system, G_TYPE_OBJECT);
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (ShellAppSystem, shell_app_system, G_TYPE_OBJECT);
|
||||
|
||||
static void shell_app_system_class_init(ShellAppSystemClass *klass)
|
||||
{
|
||||
@ -64,11 +73,9 @@ static void shell_app_system_class_init(ShellAppSystemClass *klass)
|
||||
g_signal_new ("installed-changed",
|
||||
SHELL_TYPE_APP_SYSTEM,
|
||||
G_SIGNAL_RUN_LAST,
|
||||
G_STRUCT_OFFSET (ShellAppSystemClass, installed_changed),
|
||||
NULL, NULL, NULL,
|
||||
0,
|
||||
NULL, NULL, NULL,
|
||||
G_TYPE_NONE, 0);
|
||||
|
||||
g_type_class_add_private (gobject_class, sizeof (ShellAppSystemPrivate));
|
||||
}
|
||||
|
||||
static void
|
||||
@ -147,9 +154,7 @@ shell_app_system_init (ShellAppSystem *self)
|
||||
ShellAppSystemPrivate *priv;
|
||||
GAppInfoMonitor *monitor;
|
||||
|
||||
self->priv = priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
|
||||
SHELL_TYPE_APP_SYSTEM,
|
||||
ShellAppSystemPrivate);
|
||||
self->priv = priv = shell_app_system_get_instance_private (self);
|
||||
|
||||
priv->running_apps = g_hash_table_new_full (NULL, NULL, (GDestroyNotify) g_object_unref, NULL);
|
||||
priv->id_to_app = g_hash_table_new_full (g_str_hash, g_str_equal,
|
||||
|
@ -8,33 +8,10 @@
|
||||
|
||||
#include "shell-app.h"
|
||||
|
||||
#define SHELL_TYPE_APP_SYSTEM (shell_app_system_get_type ())
|
||||
#define SHELL_APP_SYSTEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SHELL_TYPE_APP_SYSTEM, ShellAppSystem))
|
||||
#define SHELL_APP_SYSTEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_APP_SYSTEM, ShellAppSystemClass))
|
||||
#define SHELL_IS_APP_SYSTEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SHELL_TYPE_APP_SYSTEM))
|
||||
#define SHELL_IS_APP_SYSTEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_APP_SYSTEM))
|
||||
#define SHELL_APP_SYSTEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_APP_SYSTEM, ShellAppSystemClass))
|
||||
#define SHELL_TYPE_APP_SYSTEM (shell_app_system_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (ShellAppSystem, shell_app_system,
|
||||
SHELL, APP_SYSTEM, GObject)
|
||||
|
||||
typedef struct _ShellAppSystem ShellAppSystem;
|
||||
typedef struct _ShellAppSystemClass ShellAppSystemClass;
|
||||
typedef struct _ShellAppSystemPrivate ShellAppSystemPrivate;
|
||||
|
||||
struct _ShellAppSystem
|
||||
{
|
||||
GObject parent;
|
||||
|
||||
ShellAppSystemPrivate *priv;
|
||||
};
|
||||
|
||||
struct _ShellAppSystemClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
|
||||
void (*installed_changed)(ShellAppSystem *appsys, gpointer user_data);
|
||||
void (*favorites_changed)(ShellAppSystem *appsys, gpointer user_data);
|
||||
};
|
||||
|
||||
GType shell_app_system_get_type (void) G_GNUC_CONST;
|
||||
ShellAppSystem *shell_app_system_get_default (void);
|
||||
|
||||
ShellApp *shell_app_system_lookup_app (ShellAppSystem *system,
|
||||
|
@ -7,23 +7,9 @@
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
typedef struct _ShellAppUsage ShellAppUsage;
|
||||
typedef struct _ShellAppUsageClass ShellAppUsageClass;
|
||||
typedef struct _ShellAppUsagePrivate ShellAppUsagePrivate;
|
||||
|
||||
#define SHELL_TYPE_APP_USAGE (shell_app_usage_get_type ())
|
||||
#define SHELL_APP_USAGE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), SHELL_TYPE_APP_USAGE, ShellAppUsage))
|
||||
#define SHELL_APP_USAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_APP_USAGE, ShellAppUsageClass))
|
||||
#define SHELL_IS_APP_USAGE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), SHELL_TYPE_APP_USAGE))
|
||||
#define SHELL_IS_APP_USAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_APP_USAGE))
|
||||
#define SHELL_APP_USAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_APP_USAGE, ShellAppUsageClass))
|
||||
|
||||
struct _ShellAppUsageClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
};
|
||||
|
||||
GType shell_app_usage_get_type (void) G_GNUC_CONST;
|
||||
G_DECLARE_FINAL_TYPE (ShellAppUsage, shell_app_usage,
|
||||
SHELL, APP_USAGE, GObject)
|
||||
|
||||
ShellAppUsage* shell_app_usage_get_default(void);
|
||||
|
||||
|
@ -9,23 +9,8 @@
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
typedef struct _ShellApp ShellApp;
|
||||
typedef struct _ShellAppClass ShellAppClass;
|
||||
typedef struct _ShellAppPrivate ShellAppPrivate;
|
||||
typedef struct _ShellAppAction ShellAppAction;
|
||||
|
||||
#define SHELL_TYPE_APP (shell_app_get_type ())
|
||||
#define SHELL_APP(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), SHELL_TYPE_APP, ShellApp))
|
||||
#define SHELL_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_APP, ShellAppClass))
|
||||
#define SHELL_IS_APP(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), SHELL_TYPE_APP))
|
||||
#define SHELL_IS_APP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_APP))
|
||||
#define SHELL_APP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_APP, ShellAppClass))
|
||||
|
||||
struct _ShellAppClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
|
||||
};
|
||||
#define SHELL_TYPE_APP (shell_app_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (ShellApp, shell_app, SHELL, APP, GObject)
|
||||
|
||||
typedef enum {
|
||||
SHELL_APP_STATE_STOPPED,
|
||||
@ -33,8 +18,6 @@ typedef enum {
|
||||
SHELL_APP_STATE_RUNNING
|
||||
} ShellAppState;
|
||||
|
||||
GType shell_app_get_type (void) G_GNUC_CONST;
|
||||
|
||||
const char *shell_app_get_id (ShellApp *app);
|
||||
|
||||
GDesktopAppInfo *shell_app_get_app_info (ShellApp *app);
|
||||
|
@ -23,18 +23,22 @@
|
||||
* - Actor is mapped [actor and all parents visible, actor in stage]
|
||||
*/
|
||||
|
||||
G_DEFINE_TYPE (ShellEmbeddedWindow, shell_embedded_window, GTK_TYPE_WINDOW);
|
||||
|
||||
enum {
|
||||
PROP_0
|
||||
};
|
||||
|
||||
typedef struct _ShellEmbeddedWindowPrivate ShellEmbeddedWindowPrivate;
|
||||
|
||||
struct _ShellEmbeddedWindowPrivate {
|
||||
ShellGtkEmbed *actor;
|
||||
|
||||
GdkRectangle position;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (ShellEmbeddedWindow,
|
||||
shell_embedded_window,
|
||||
GTK_TYPE_WINDOW);
|
||||
|
||||
/*
|
||||
* The normal gtk_window_show() starts all of the complicated asynchronous
|
||||
* window resizing code running; we don't want or need any of that.
|
||||
@ -47,19 +51,22 @@ static void
|
||||
shell_embedded_window_show (GtkWidget *widget)
|
||||
{
|
||||
ShellEmbeddedWindow *window = SHELL_EMBEDDED_WINDOW (widget);
|
||||
ShellEmbeddedWindowPrivate *priv;
|
||||
GtkWidgetClass *widget_class;
|
||||
|
||||
priv = shell_embedded_window_get_instance_private (window);
|
||||
|
||||
/* Skip GtkWindow, but run the default GtkWidget handling which
|
||||
* marks the widget visible */
|
||||
widget_class = g_type_class_peek (GTK_TYPE_WIDGET);
|
||||
widget_class->show (widget);
|
||||
|
||||
if (window->priv->actor)
|
||||
if (priv->actor)
|
||||
{
|
||||
/* Size is 0x0 if the GtkWindow is not shown */
|
||||
clutter_actor_queue_relayout (CLUTTER_ACTOR (window->priv->actor));
|
||||
clutter_actor_queue_relayout (CLUTTER_ACTOR (priv->actor));
|
||||
|
||||
if (clutter_actor_is_realized (CLUTTER_ACTOR (window->priv->actor)))
|
||||
if (clutter_actor_is_realized (CLUTTER_ACTOR (priv->actor)))
|
||||
gtk_widget_map (widget);
|
||||
}
|
||||
}
|
||||
@ -68,9 +75,12 @@ static void
|
||||
shell_embedded_window_hide (GtkWidget *widget)
|
||||
{
|
||||
ShellEmbeddedWindow *window = SHELL_EMBEDDED_WINDOW (widget);
|
||||
ShellEmbeddedWindowPrivate *priv;
|
||||
|
||||
if (window->priv->actor)
|
||||
clutter_actor_queue_relayout (CLUTTER_ACTOR (window->priv->actor));
|
||||
priv = shell_embedded_window_get_instance_private (window);
|
||||
|
||||
if (priv->actor)
|
||||
clutter_actor_queue_relayout (CLUTTER_ACTOR (priv->actor));
|
||||
|
||||
GTK_WIDGET_CLASS (shell_embedded_window_parent_class)->hide (widget);
|
||||
}
|
||||
@ -90,6 +100,9 @@ static void
|
||||
shell_embedded_window_check_resize (GtkContainer *container)
|
||||
{
|
||||
ShellEmbeddedWindow *window = SHELL_EMBEDDED_WINDOW (container);
|
||||
ShellEmbeddedWindowPrivate *priv;
|
||||
|
||||
priv = shell_embedded_window_get_instance_private (window);
|
||||
|
||||
/* Check resize is called when a resize is queued on something
|
||||
* inside the GtkWindow; we need to make sure that in response
|
||||
@ -97,8 +110,8 @@ shell_embedded_window_check_resize (GtkContainer *container)
|
||||
* gtk_widget_size_allocate() are called; we defer to the Clutter
|
||||
* logic and assume it will do the right thing.
|
||||
*/
|
||||
if (window->priv->actor)
|
||||
clutter_actor_queue_relayout (CLUTTER_ACTOR (window->priv->actor));
|
||||
if (priv->actor)
|
||||
clutter_actor_queue_relayout (CLUTTER_ACTOR (priv->actor));
|
||||
}
|
||||
|
||||
static GObject *
|
||||
@ -134,8 +147,6 @@ shell_embedded_window_class_init (ShellEmbeddedWindowClass *klass)
|
||||
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
|
||||
GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass);
|
||||
|
||||
g_type_class_add_private (klass, sizeof (ShellEmbeddedWindowPrivate));
|
||||
|
||||
object_class->constructor = shell_embedded_window_constructor;
|
||||
|
||||
widget_class->show = shell_embedded_window_show;
|
||||
@ -148,8 +159,6 @@ shell_embedded_window_class_init (ShellEmbeddedWindowClass *klass)
|
||||
static void
|
||||
shell_embedded_window_init (ShellEmbeddedWindow *window)
|
||||
{
|
||||
window->priv = G_TYPE_INSTANCE_GET_PRIVATE (window, SHELL_TYPE_EMBEDDED_WINDOW,
|
||||
ShellEmbeddedWindowPrivate);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -161,9 +170,12 @@ _shell_embedded_window_set_actor (ShellEmbeddedWindow *window,
|
||||
ShellGtkEmbed *actor)
|
||||
|
||||
{
|
||||
ShellEmbeddedWindowPrivate *priv;
|
||||
|
||||
g_return_if_fail (SHELL_IS_EMBEDDED_WINDOW (window));
|
||||
|
||||
window->priv->actor = actor;
|
||||
priv = shell_embedded_window_get_instance_private (window);
|
||||
priv->actor = actor;
|
||||
|
||||
if (actor &&
|
||||
clutter_actor_is_mapped (CLUTTER_ACTOR (actor)) &&
|
||||
@ -178,20 +190,23 @@ _shell_embedded_window_allocate (ShellEmbeddedWindow *window,
|
||||
int width,
|
||||
int height)
|
||||
{
|
||||
ShellEmbeddedWindowPrivate *priv;
|
||||
GtkAllocation allocation;
|
||||
|
||||
g_return_if_fail (SHELL_IS_EMBEDDED_WINDOW (window));
|
||||
|
||||
if (window->priv->position.x == x &&
|
||||
window->priv->position.y == y &&
|
||||
window->priv->position.width == width &&
|
||||
window->priv->position.height == height)
|
||||
priv = shell_embedded_window_get_instance_private (window);
|
||||
|
||||
if (priv->position.x == x &&
|
||||
priv->position.y == y &&
|
||||
priv->position.width == width &&
|
||||
priv->position.height == height)
|
||||
return;
|
||||
|
||||
window->priv->position.x = x;
|
||||
window->priv->position.y = y;
|
||||
window->priv->position.width = width;
|
||||
window->priv->position.height = height;
|
||||
priv->position.x = x;
|
||||
priv->position.y = y;
|
||||
priv->position.width = width;
|
||||
priv->position.height = height;
|
||||
|
||||
if (gtk_widget_get_realized (GTK_WIDGET (window)))
|
||||
gdk_window_move_resize (gtk_widget_get_window (GTK_WIDGET (window)),
|
||||
|
@ -5,31 +5,15 @@
|
||||
#include <gtk/gtk.h>
|
||||
#include <clutter/clutter.h>
|
||||
|
||||
#define SHELL_TYPE_EMBEDDED_WINDOW (shell_embedded_window_get_type ())
|
||||
#define SHELL_EMBEDDED_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SHELL_TYPE_EMBEDDED_WINDOW, ShellEmbeddedWindow))
|
||||
#define SHELL_EMBEDDED_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_EMBEDDED_WINDOW, ShellEmbeddedWindowClass))
|
||||
#define SHELL_IS_EMBEDDED_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SHELL_TYPE_EMBEDDED_WINDOW))
|
||||
#define SHELL_IS_EMBEDDED_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_EMBEDDED_WINDOW))
|
||||
#define SHELL_EMBEDDED_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_EMBEDDED_WINDOW, ShellEmbeddedWindowClass))
|
||||
|
||||
typedef struct _ShellEmbeddedWindow ShellEmbeddedWindow;
|
||||
typedef struct _ShellEmbeddedWindowClass ShellEmbeddedWindowClass;
|
||||
|
||||
typedef struct _ShellEmbeddedWindowPrivate ShellEmbeddedWindowPrivate;
|
||||
|
||||
struct _ShellEmbeddedWindow
|
||||
{
|
||||
GtkWindow parent;
|
||||
|
||||
ShellEmbeddedWindowPrivate *priv;
|
||||
};
|
||||
#define SHELL_TYPE_EMBEDDED_WINDOW (shell_embedded_window_get_type ())
|
||||
G_DECLARE_DERIVABLE_TYPE (ShellEmbeddedWindow, shell_embedded_window,
|
||||
SHELL, EMBEDDED_WINDOW, GtkWindow)
|
||||
|
||||
struct _ShellEmbeddedWindowClass
|
||||
{
|
||||
GtkWindowClass parent_class;
|
||||
};
|
||||
|
||||
GType shell_embedded_window_get_type (void) G_GNUC_CONST;
|
||||
GtkWidget *shell_embedded_window_new (void);
|
||||
|
||||
#endif /* __SHELL_EMBEDDED_WINDOW_H__ */
|
||||
|
@ -23,16 +23,26 @@
|
||||
|
||||
static void shell_generic_container_iface_init (ClutterContainerIface *iface);
|
||||
|
||||
G_DEFINE_TYPE_WITH_CODE(ShellGenericContainer,
|
||||
shell_generic_container,
|
||||
ST_TYPE_WIDGET,
|
||||
G_IMPLEMENT_INTERFACE (CLUTTER_TYPE_CONTAINER,
|
||||
shell_generic_container_iface_init));
|
||||
typedef struct _ShellGenericContainerPrivate ShellGenericContainerPrivate;
|
||||
|
||||
struct _ShellGenericContainer
|
||||
{
|
||||
StWidget parent;
|
||||
|
||||
ShellGenericContainerPrivate *priv;
|
||||
};
|
||||
|
||||
struct _ShellGenericContainerPrivate {
|
||||
GHashTable *skip_paint;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE_WITH_CODE(ShellGenericContainer,
|
||||
shell_generic_container,
|
||||
ST_TYPE_WIDGET,
|
||||
G_ADD_PRIVATE (ShellGenericContainer)
|
||||
G_IMPLEMENT_INTERFACE (CLUTTER_TYPE_CONTAINER,
|
||||
shell_generic_container_iface_init));
|
||||
|
||||
/* Signals */
|
||||
enum
|
||||
{
|
||||
@ -385,8 +395,6 @@ shell_generic_container_class_init (ShellGenericContainerClass *klass)
|
||||
0,
|
||||
NULL, NULL, NULL,
|
||||
G_TYPE_NONE, 2, CLUTTER_TYPE_ACTOR_BOX, CLUTTER_TYPE_ALLOCATION_FLAGS);
|
||||
|
||||
g_type_class_add_private (gobject_class, sizeof (ShellGenericContainerPrivate));
|
||||
}
|
||||
|
||||
static void
|
||||
@ -407,8 +415,7 @@ shell_generic_container_iface_init (ClutterContainerIface *iface)
|
||||
static void
|
||||
shell_generic_container_init (ShellGenericContainer *area)
|
||||
{
|
||||
area->priv = G_TYPE_INSTANCE_GET_PRIVATE (area, SHELL_TYPE_GENERIC_CONTAINER,
|
||||
ShellGenericContainerPrivate);
|
||||
area->priv = shell_generic_container_get_instance_private (area);
|
||||
area->priv->skip_paint = g_hash_table_new (NULL, NULL);
|
||||
}
|
||||
|
||||
|
@ -4,12 +4,9 @@
|
||||
|
||||
#include "st.h"
|
||||
|
||||
#define SHELL_TYPE_GENERIC_CONTAINER (shell_generic_container_get_type ())
|
||||
#define SHELL_GENERIC_CONTAINER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SHELL_TYPE_GENERIC_CONTAINER, ShellGenericContainer))
|
||||
#define SHELL_GENERIC_CONTAINER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_GENERIC_CONTAINER, ShellGenericContainerClass))
|
||||
#define SHELL_IS_GENERIC_CONTAINER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SHELL_TYPE_GENERIC_CONTAINER))
|
||||
#define SHELL_IS_GENERIC_CONTAINER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_GENERIC_CONTAINER))
|
||||
#define SHELL_GENERIC_CONTAINER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_GENERIC_CONTAINER, ShellGenericContainerClass))
|
||||
#define SHELL_TYPE_GENERIC_CONTAINER (shell_generic_container_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (ShellGenericContainer, shell_generic_container,
|
||||
SHELL, GENERIC_CONTAINER, StWidget)
|
||||
|
||||
typedef struct {
|
||||
float min_size;
|
||||
@ -22,25 +19,6 @@ typedef struct {
|
||||
#define SHELL_TYPE_GENERIC_CONTAINER_ALLOCATION (shell_generic_container_allocation_get_type ())
|
||||
GType shell_generic_container_allocation_get_type (void);
|
||||
|
||||
typedef struct _ShellGenericContainer ShellGenericContainer;
|
||||
typedef struct _ShellGenericContainerClass ShellGenericContainerClass;
|
||||
|
||||
typedef struct _ShellGenericContainerPrivate ShellGenericContainerPrivate;
|
||||
|
||||
struct _ShellGenericContainer
|
||||
{
|
||||
StWidget parent;
|
||||
|
||||
ShellGenericContainerPrivate *priv;
|
||||
};
|
||||
|
||||
struct _ShellGenericContainerClass
|
||||
{
|
||||
StWidgetClass parent_class;
|
||||
};
|
||||
|
||||
GType shell_generic_container_get_type (void) G_GNUC_CONST;
|
||||
|
||||
guint shell_generic_container_get_n_skip_paint (ShellGenericContainer *self);
|
||||
|
||||
gboolean shell_generic_container_get_skip_paint (ShellGenericContainer *self,
|
||||
|
@ -867,7 +867,12 @@ update_scale_factor (GtkSettings *settings,
|
||||
{
|
||||
g_object_set (context, "scale-factor", g_value_get_int (&value), NULL);
|
||||
if (meta_is_wayland_compositor ())
|
||||
g_object_set (clutter_settings_get_default (), "font-dpi", 96 * 1024 * g_value_get_int (&value), NULL);
|
||||
{
|
||||
int xft_dpi;
|
||||
g_object_get (settings, "gtk-xft-dpi", &xft_dpi, NULL);
|
||||
|
||||
g_object_set (clutter_settings_get_default (), "font-dpi", xft_dpi, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
/* Make sure clutter and gdk scaling stays disabled */
|
||||
|
@ -10,22 +10,8 @@
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
typedef struct _ShellGlobal ShellGlobal;
|
||||
typedef struct _ShellGlobalClass ShellGlobalClass;
|
||||
|
||||
#define SHELL_TYPE_GLOBAL (shell_global_get_type ())
|
||||
#define SHELL_GLOBAL(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), SHELL_TYPE_GLOBAL, ShellGlobal))
|
||||
#define SHELL_GLOBAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_GLOBAL, ShellGlobalClass))
|
||||
#define SHELL_IS_GLOBAL(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), SHELL_TYPE_GLOBAL))
|
||||
#define SHELL_IS_GLOBAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_GLOBAL))
|
||||
#define SHELL_GLOBAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_GLOBAL, ShellGlobalClass))
|
||||
|
||||
struct _ShellGlobalClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
};
|
||||
|
||||
GType shell_global_get_type (void) G_GNUC_CONST;
|
||||
#define SHELL_TYPE_GLOBAL (shell_global_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (ShellGlobal, shell_global, SHELL, GLOBAL, GObject)
|
||||
|
||||
ShellGlobal *shell_global_get (void);
|
||||
|
||||
|
@ -16,13 +16,14 @@
|
||||
#include <cogl/cogl.h>
|
||||
#include "shell-glsl-quad.h"
|
||||
|
||||
G_DEFINE_TYPE (ShellGLSLQuad, shell_glsl_quad, CLUTTER_TYPE_ACTOR);
|
||||
|
||||
typedef struct _ShellGLSLQuadPrivate ShellGLSLQuadPrivate;
|
||||
struct _ShellGLSLQuadPrivate
|
||||
{
|
||||
CoglPipeline *pipeline;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (ShellGLSLQuad, shell_glsl_quad, CLUTTER_TYPE_ACTOR);
|
||||
|
||||
static gboolean
|
||||
shell_glsl_quad_get_paint_volume (ClutterActor *actor,
|
||||
ClutterPaintVolume *volume)
|
||||
@ -38,7 +39,7 @@ shell_glsl_quad_paint (ClutterActor *actor)
|
||||
guint8 paint_opacity;
|
||||
ClutterActorBox box;
|
||||
|
||||
priv = self->priv;
|
||||
priv = shell_glsl_quad_get_instance_private (self);
|
||||
|
||||
paint_opacity = clutter_actor_get_paint_opacity (actor);
|
||||
clutter_actor_get_allocation_box (actor, &box);
|
||||
@ -106,7 +107,7 @@ shell_glsl_quad_dispose (GObject *gobject)
|
||||
ShellGLSLQuad *self = SHELL_GLSL_QUAD (gobject);
|
||||
ShellGLSLQuadPrivate *priv;
|
||||
|
||||
priv = self->priv;
|
||||
priv = shell_glsl_quad_get_instance_private (self);
|
||||
|
||||
g_clear_pointer (&priv->pipeline, cogl_object_unref);
|
||||
|
||||
@ -116,7 +117,6 @@ shell_glsl_quad_dispose (GObject *gobject)
|
||||
static void
|
||||
shell_glsl_quad_init (ShellGLSLQuad *quad)
|
||||
{
|
||||
quad->priv = G_TYPE_INSTANCE_GET_PRIVATE (quad, SHELL_TYPE_GLSL_QUAD, ShellGLSLQuadPrivate);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -124,6 +124,7 @@ shell_glsl_quad_constructed (GObject *object)
|
||||
{
|
||||
ShellGLSLQuad *self;
|
||||
ShellGLSLQuadClass *klass;
|
||||
ShellGLSLQuadPrivate *priv;
|
||||
CoglContext *ctx =
|
||||
clutter_backend_get_cogl_context (clutter_get_default_backend ());
|
||||
|
||||
@ -135,6 +136,7 @@ shell_glsl_quad_constructed (GObject *object)
|
||||
*/
|
||||
klass = SHELL_GLSL_QUAD_GET_CLASS (object);
|
||||
self = SHELL_GLSL_QUAD (object);
|
||||
priv = shell_glsl_quad_get_instance_private (self);
|
||||
|
||||
if (G_UNLIKELY (klass->base_pipeline == NULL))
|
||||
{
|
||||
@ -145,9 +147,9 @@ shell_glsl_quad_constructed (GObject *object)
|
||||
klass->build_pipeline (self);
|
||||
}
|
||||
|
||||
self->priv->pipeline = cogl_pipeline_copy (klass->base_pipeline);
|
||||
priv->pipeline = cogl_pipeline_copy (klass->base_pipeline);
|
||||
|
||||
cogl_pipeline_set_layer_null_texture (self->priv->pipeline, 0, COGL_TEXTURE_TYPE_2D);
|
||||
cogl_pipeline_set_layer_null_texture (priv->pipeline, 0, COGL_TEXTURE_TYPE_2D);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -161,8 +163,6 @@ shell_glsl_quad_class_init (ShellGLSLQuadClass *klass)
|
||||
|
||||
actor_class->get_paint_volume = shell_glsl_quad_get_paint_volume;
|
||||
actor_class->paint = shell_glsl_quad_paint;
|
||||
|
||||
g_type_class_add_private (klass, sizeof (ShellGLSLQuadPrivate));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -177,7 +177,8 @@ int
|
||||
shell_glsl_quad_get_uniform_location (ShellGLSLQuad *quad,
|
||||
const char *name)
|
||||
{
|
||||
return cogl_pipeline_get_uniform_location (quad->priv->pipeline, name);
|
||||
ShellGLSLQuadPrivate *priv = shell_glsl_quad_get_instance_private (quad);
|
||||
return cogl_pipeline_get_uniform_location (priv->pipeline, name);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -195,7 +196,8 @@ shell_glsl_quad_set_uniform_float (ShellGLSLQuad *quad,
|
||||
int total_count,
|
||||
const float *value)
|
||||
{
|
||||
cogl_pipeline_set_uniform_float (quad->priv->pipeline, uniform,
|
||||
ShellGLSLQuadPrivate *priv = shell_glsl_quad_get_instance_private (quad);
|
||||
cogl_pipeline_set_uniform_float (priv->pipeline, uniform,
|
||||
n_components, total_count / n_components,
|
||||
value);
|
||||
}
|
||||
|
@ -26,23 +26,9 @@ typedef enum {
|
||||
SHELL_SNIPPET_HOOK_TEXTURE_LOOKUP
|
||||
} ShellSnippetHook;
|
||||
|
||||
#define SHELL_TYPE_GLSL_QUAD (shell_glsl_quad_get_type ())
|
||||
#define SHELL_GLSL_QUAD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SHELL_TYPE_GLSL_QUAD, ShellGLSLQuad))
|
||||
#define SHELL_GLSL_QUAD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_GLSL_QUAD, ShellGLSLQuadClass))
|
||||
#define SHELL_IS_GLSL_QUAD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SHELL_TYPE_GLSL_QUAD))
|
||||
#define SHELL_IS_GLSL_QUAD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_GLSL_QUAD))
|
||||
#define SHELL_GLSL_QUAD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_GLSL_QUAD, ShellGLSLQuadClass))
|
||||
|
||||
typedef struct _ShellGLSLQuad ShellGLSLQuad;
|
||||
typedef struct _ShellGLSLQuadClass ShellGLSLQuadClass;
|
||||
typedef struct _ShellGLSLQuadPrivate ShellGLSLQuadPrivate;
|
||||
|
||||
struct _ShellGLSLQuad
|
||||
{
|
||||
ClutterActor parent;
|
||||
|
||||
ShellGLSLQuadPrivate *priv;
|
||||
};
|
||||
#define SHELL_TYPE_GLSL_QUAD (shell_glsl_quad_get_type ())
|
||||
G_DECLARE_DERIVABLE_TYPE (ShellGLSLQuad, shell_glsl_quad,
|
||||
SHELL, GLSL_QUAD, ClutterActor)
|
||||
|
||||
struct _ShellGLSLQuadClass
|
||||
{
|
||||
@ -53,8 +39,6 @@ struct _ShellGLSLQuadClass
|
||||
void (*build_pipeline) (ShellGLSLQuad *effect);
|
||||
};
|
||||
|
||||
GType shell_glsl_quad_get_type (void) G_GNUC_CONST;
|
||||
|
||||
void shell_glsl_quad_add_glsl_snippet (ShellGLSLQuad *quad,
|
||||
ShellSnippetHook hook,
|
||||
const char *declarations,
|
||||
|
@ -15,6 +15,8 @@ enum {
|
||||
PROP_WINDOW
|
||||
};
|
||||
|
||||
typedef struct _ShellGtkEmbedPrivate ShellGtkEmbedPrivate;
|
||||
|
||||
struct _ShellGtkEmbedPrivate
|
||||
{
|
||||
ShellEmbeddedWindow *window;
|
||||
@ -25,7 +27,7 @@ struct _ShellGtkEmbedPrivate
|
||||
guint window_created_handler;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE (ShellGtkEmbed, shell_gtk_embed, CLUTTER_TYPE_CLONE);
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (ShellGtkEmbed, shell_gtk_embed, CLUTTER_TYPE_CLONE);
|
||||
|
||||
static void shell_gtk_embed_set_window (ShellGtkEmbed *embed,
|
||||
ShellEmbeddedWindow *window);
|
||||
@ -40,7 +42,7 @@ shell_gtk_embed_on_window_destroy (GtkWidget *object,
|
||||
static void
|
||||
shell_gtk_embed_remove_window_actor (ShellGtkEmbed *embed)
|
||||
{
|
||||
ShellGtkEmbedPrivate *priv = embed->priv;
|
||||
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
|
||||
|
||||
if (priv->window_actor)
|
||||
{
|
||||
@ -60,7 +62,7 @@ shell_gtk_embed_window_created_cb (MetaDisplay *display,
|
||||
MetaWindow *window,
|
||||
ShellGtkEmbed *embed)
|
||||
{
|
||||
ShellGtkEmbedPrivate *priv = embed->priv;
|
||||
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
|
||||
Window xwindow = meta_window_get_xwindow (window);
|
||||
GdkWindow *gdk_window = gtk_widget_get_window (GTK_WIDGET (priv->window));
|
||||
|
||||
@ -119,11 +121,12 @@ static void
|
||||
shell_gtk_embed_on_window_mapped (GtkWidget *object,
|
||||
ShellGtkEmbed *embed)
|
||||
{
|
||||
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
|
||||
MetaDisplay *display = shell_global_get_display (shell_global_get ());
|
||||
|
||||
/* Listen for new windows so we can detect when Mutter has
|
||||
created a MutterWindow for this window */
|
||||
embed->priv->window_created_handler =
|
||||
priv->window_created_handler =
|
||||
g_signal_connect (display,
|
||||
"window-created",
|
||||
G_CALLBACK (shell_gtk_embed_window_created_cb),
|
||||
@ -134,44 +137,45 @@ static void
|
||||
shell_gtk_embed_set_window (ShellGtkEmbed *embed,
|
||||
ShellEmbeddedWindow *window)
|
||||
{
|
||||
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
|
||||
MetaDisplay *display = shell_global_get_display (shell_global_get ());
|
||||
|
||||
if (embed->priv->window)
|
||||
if (priv->window)
|
||||
{
|
||||
if (embed->priv->window_created_handler)
|
||||
if (priv->window_created_handler)
|
||||
{
|
||||
g_signal_handler_disconnect (display,
|
||||
embed->priv->window_created_handler);
|
||||
embed->priv->window_created_handler = 0;
|
||||
priv->window_created_handler);
|
||||
priv->window_created_handler = 0;
|
||||
}
|
||||
|
||||
shell_gtk_embed_remove_window_actor (embed);
|
||||
|
||||
_shell_embedded_window_set_actor (embed->priv->window, NULL);
|
||||
_shell_embedded_window_set_actor (priv->window, NULL);
|
||||
|
||||
g_object_unref (embed->priv->window);
|
||||
g_object_unref (priv->window);
|
||||
|
||||
g_signal_handlers_disconnect_by_func (embed->priv->window,
|
||||
g_signal_handlers_disconnect_by_func (priv->window,
|
||||
(gpointer)shell_gtk_embed_on_window_destroy,
|
||||
embed);
|
||||
|
||||
g_signal_handlers_disconnect_by_func (embed->priv->window,
|
||||
g_signal_handlers_disconnect_by_func (priv->window,
|
||||
(gpointer)shell_gtk_embed_on_window_mapped,
|
||||
embed);
|
||||
}
|
||||
|
||||
embed->priv->window = window;
|
||||
priv->window = window;
|
||||
|
||||
if (embed->priv->window)
|
||||
if (priv->window)
|
||||
{
|
||||
g_object_ref (embed->priv->window);
|
||||
g_object_ref (priv->window);
|
||||
|
||||
_shell_embedded_window_set_actor (embed->priv->window, embed);
|
||||
_shell_embedded_window_set_actor (priv->window, embed);
|
||||
|
||||
g_signal_connect (embed->priv->window, "destroy",
|
||||
g_signal_connect (priv->window, "destroy",
|
||||
G_CALLBACK (shell_gtk_embed_on_window_destroy), embed);
|
||||
|
||||
g_signal_connect (embed->priv->window, "map",
|
||||
g_signal_connect (priv->window, "map",
|
||||
G_CALLBACK (shell_gtk_embed_on_window_mapped), embed);
|
||||
}
|
||||
|
||||
@ -205,11 +209,12 @@ shell_gtk_embed_get_property (GObject *object,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
ShellGtkEmbed *embed = SHELL_GTK_EMBED (object);
|
||||
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_WINDOW:
|
||||
g_value_set_object (value, embed->priv->window);
|
||||
g_value_set_object (value, priv->window);
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -225,12 +230,13 @@ shell_gtk_embed_get_preferred_width (ClutterActor *actor,
|
||||
float *natural_width_p)
|
||||
{
|
||||
ShellGtkEmbed *embed = SHELL_GTK_EMBED (actor);
|
||||
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
|
||||
|
||||
if (embed->priv->window
|
||||
&& gtk_widget_get_visible (GTK_WIDGET (embed->priv->window)))
|
||||
if (priv->window
|
||||
&& gtk_widget_get_visible (GTK_WIDGET (priv->window)))
|
||||
{
|
||||
GtkRequisition min_req, natural_req;
|
||||
gtk_widget_get_preferred_size (GTK_WIDGET (embed->priv->window), &min_req, &natural_req);
|
||||
gtk_widget_get_preferred_size (GTK_WIDGET (priv->window), &min_req, &natural_req);
|
||||
|
||||
*min_width_p = min_req.width;
|
||||
*natural_width_p = natural_req.width;
|
||||
@ -246,12 +252,13 @@ shell_gtk_embed_get_preferred_height (ClutterActor *actor,
|
||||
float *natural_height_p)
|
||||
{
|
||||
ShellGtkEmbed *embed = SHELL_GTK_EMBED (actor);
|
||||
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
|
||||
|
||||
if (embed->priv->window
|
||||
&& gtk_widget_get_visible (GTK_WIDGET (embed->priv->window)))
|
||||
if (priv->window
|
||||
&& gtk_widget_get_visible (GTK_WIDGET (priv->window)))
|
||||
{
|
||||
GtkRequisition min_req, natural_req;
|
||||
gtk_widget_get_preferred_size (GTK_WIDGET (embed->priv->window), &min_req, &natural_req);
|
||||
gtk_widget_get_preferred_size (GTK_WIDGET (priv->window), &min_req, &natural_req);
|
||||
|
||||
*min_height_p = min_req.height;
|
||||
*natural_height_p = natural_req.height;
|
||||
@ -266,6 +273,7 @@ shell_gtk_embed_allocate (ClutterActor *actor,
|
||||
ClutterAllocationFlags flags)
|
||||
{
|
||||
ShellGtkEmbed *embed = SHELL_GTK_EMBED (actor);
|
||||
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
|
||||
float wx = 0.0, wy = 0.0, x, y, ax, ay;
|
||||
|
||||
CLUTTER_ACTOR_CLASS (shell_gtk_embed_parent_class)->
|
||||
@ -285,7 +293,7 @@ shell_gtk_embed_allocate (ClutterActor *actor,
|
||||
actor = clutter_actor_get_parent (actor);
|
||||
}
|
||||
|
||||
_shell_embedded_window_allocate (embed->priv->window,
|
||||
_shell_embedded_window_allocate (priv->window,
|
||||
(int)(0.5 + wx), (int)(0.5 + wy),
|
||||
box->x2 - box->x1,
|
||||
box->y2 - box->y1);
|
||||
@ -295,8 +303,9 @@ static void
|
||||
shell_gtk_embed_map (ClutterActor *actor)
|
||||
{
|
||||
ShellGtkEmbed *embed = SHELL_GTK_EMBED (actor);
|
||||
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
|
||||
|
||||
_shell_embedded_window_map (embed->priv->window);
|
||||
_shell_embedded_window_map (priv->window);
|
||||
|
||||
CLUTTER_ACTOR_CLASS (shell_gtk_embed_parent_class)->map (actor);
|
||||
}
|
||||
@ -305,8 +314,9 @@ static void
|
||||
shell_gtk_embed_unmap (ClutterActor *actor)
|
||||
{
|
||||
ShellGtkEmbed *embed = SHELL_GTK_EMBED (actor);
|
||||
ShellGtkEmbedPrivate *priv = shell_gtk_embed_get_instance_private (embed);
|
||||
|
||||
_shell_embedded_window_unmap (embed->priv->window);
|
||||
_shell_embedded_window_unmap (priv->window);
|
||||
|
||||
CLUTTER_ACTOR_CLASS (shell_gtk_embed_parent_class)->unmap (actor);
|
||||
}
|
||||
@ -327,8 +337,6 @@ shell_gtk_embed_class_init (ShellGtkEmbedClass *klass)
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
ClutterActorClass *actor_class = CLUTTER_ACTOR_CLASS (klass);
|
||||
|
||||
g_type_class_add_private (klass, sizeof (ShellGtkEmbedPrivate));
|
||||
|
||||
object_class->get_property = shell_gtk_embed_get_property;
|
||||
object_class->set_property = shell_gtk_embed_set_property;
|
||||
object_class->dispose = shell_gtk_embed_dispose;
|
||||
@ -351,8 +359,6 @@ shell_gtk_embed_class_init (ShellGtkEmbedClass *klass)
|
||||
static void
|
||||
shell_gtk_embed_init (ShellGtkEmbed *embed)
|
||||
{
|
||||
embed->priv = G_TYPE_INSTANCE_GET_PRIVATE (embed, SHELL_TYPE_GTK_EMBED,
|
||||
ShellGtkEmbedPrivate);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -6,30 +6,15 @@
|
||||
|
||||
#include "shell-embedded-window.h"
|
||||
|
||||
#define SHELL_TYPE_GTK_EMBED (shell_gtk_embed_get_type ())
|
||||
#define SHELL_GTK_EMBED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SHELL_TYPE_GTK_EMBED, ShellGtkEmbed))
|
||||
#define SHELL_GTK_EMBED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_GTK_EMBED, ShellGtkEmbedClass))
|
||||
#define SHELL_IS_GTK_EMBED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SHELL_TYPE_GTK_EMBED))
|
||||
#define SHELL_IS_GTK_EMBED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_GTK_EMBED))
|
||||
#define SHELL_GTK_EMBED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_GTK_EMBED, ShellGtkEmbedClass))
|
||||
|
||||
typedef struct _ShellGtkEmbed ShellGtkEmbed;
|
||||
typedef struct _ShellGtkEmbedClass ShellGtkEmbedClass;
|
||||
typedef struct _ShellGtkEmbedPrivate ShellGtkEmbedPrivate;
|
||||
|
||||
struct _ShellGtkEmbed
|
||||
{
|
||||
ClutterClone parent;
|
||||
|
||||
ShellGtkEmbedPrivate *priv;
|
||||
};
|
||||
#define SHELL_TYPE_GTK_EMBED (shell_gtk_embed_get_type ())
|
||||
G_DECLARE_DERIVABLE_TYPE (ShellGtkEmbed, shell_gtk_embed,
|
||||
SHELL, GTK_EMBED, ClutterClone)
|
||||
|
||||
struct _ShellGtkEmbedClass
|
||||
{
|
||||
ClutterCloneClass parent_class;
|
||||
};
|
||||
|
||||
GType shell_gtk_embed_get_type (void) G_GNUC_CONST;
|
||||
ClutterActor *shell_gtk_embed_new (ShellEmbeddedWindow *window);
|
||||
|
||||
#endif /* __SHELL_GTK_EMBED_H__ */
|
||||
|
@ -32,7 +32,6 @@
|
||||
|
||||
#include <string.h>
|
||||
|
||||
typedef struct _ShellPasswordPromptClass ShellPasswordPromptClass;
|
||||
typedef struct _ShellPasswordPromptPrivate ShellPasswordPromptPrivate;
|
||||
|
||||
typedef enum
|
||||
@ -57,19 +56,13 @@ struct _ShellKeyringPrompt
|
||||
gchar *continue_label;
|
||||
gchar *cancel_label;
|
||||
|
||||
GcrPromptReply last_reply;
|
||||
GSimpleAsyncResult *async_result;
|
||||
GTask *task;
|
||||
ClutterText *password_actor;
|
||||
ClutterText *confirm_actor;
|
||||
PromptingMode mode;
|
||||
gboolean shown;
|
||||
};
|
||||
|
||||
typedef struct _ShellKeyringPromptClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
} ShellKeyringPromptClass;
|
||||
|
||||
enum {
|
||||
PROP_0,
|
||||
PROP_TITLE,
|
||||
@ -288,9 +281,9 @@ shell_keyring_prompt_dispose (GObject *obj)
|
||||
if (self->shown)
|
||||
gcr_prompt_close (GCR_PROMPT (self));
|
||||
|
||||
if (self->async_result)
|
||||
if (self->task)
|
||||
shell_keyring_prompt_cancel (self);
|
||||
g_assert (self->async_result == NULL);
|
||||
g_assert (self->task == NULL);
|
||||
|
||||
shell_keyring_prompt_set_password_actor (self, NULL);
|
||||
shell_keyring_prompt_set_confirm_actor (self, NULL);
|
||||
@ -420,14 +413,14 @@ shell_keyring_prompt_password_async (GcrPrompt *prompt,
|
||||
ShellKeyringPrompt *self = SHELL_KEYRING_PROMPT (prompt);
|
||||
GObject *obj;
|
||||
|
||||
if (self->async_result != NULL) {
|
||||
if (self->task != NULL) {
|
||||
g_warning ("this prompt can only show one prompt at a time");
|
||||
return;
|
||||
}
|
||||
|
||||
self->mode = PROMPTING_FOR_PASSWORD;
|
||||
self->async_result = g_simple_async_result_new (G_OBJECT (self), callback, user_data,
|
||||
shell_keyring_prompt_password_async);
|
||||
self->task = g_task_new (self, NULL, callback, user_data);
|
||||
g_task_set_source_tag (self->task, shell_keyring_prompt_password_async);
|
||||
|
||||
obj = G_OBJECT (self);
|
||||
g_object_notify (obj, "password-visible");
|
||||
@ -444,18 +437,11 @@ shell_keyring_prompt_password_finish (GcrPrompt *prompt,
|
||||
GAsyncResult *result,
|
||||
GError **error)
|
||||
{
|
||||
ShellKeyringPrompt *self = SHELL_KEYRING_PROMPT (prompt);
|
||||
|
||||
g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (prompt),
|
||||
g_return_val_if_fail (g_task_get_source_object (G_TASK (result)) == prompt, NULL);
|
||||
g_return_val_if_fail (g_async_result_is_tagged (result,
|
||||
shell_keyring_prompt_password_async), NULL);
|
||||
|
||||
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), error))
|
||||
return NULL;
|
||||
|
||||
if (self->last_reply == GCR_PROMPT_REPLY_CONTINUE)
|
||||
return clutter_text_get_text (self->password_actor);
|
||||
|
||||
return NULL;
|
||||
return g_task_propagate_pointer (G_TASK (result), error);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -467,14 +453,14 @@ shell_keyring_prompt_confirm_async (GcrPrompt *prompt,
|
||||
ShellKeyringPrompt *self = SHELL_KEYRING_PROMPT (prompt);
|
||||
GObject *obj;
|
||||
|
||||
if (self->async_result != NULL) {
|
||||
if (self->task != NULL) {
|
||||
g_warning ("this prompt is already prompting");
|
||||
return;
|
||||
}
|
||||
|
||||
self->mode = PROMPTING_FOR_CONFIRM;
|
||||
self->async_result = g_simple_async_result_new (G_OBJECT (self), callback, user_data,
|
||||
shell_keyring_prompt_confirm_async);
|
||||
self->task = g_task_new (self, NULL, callback, user_data);
|
||||
g_task_set_source_tag (self->task, shell_keyring_prompt_confirm_async);
|
||||
|
||||
obj = G_OBJECT (self);
|
||||
g_object_notify (obj, "password-visible");
|
||||
@ -491,15 +477,16 @@ shell_keyring_prompt_confirm_finish (GcrPrompt *prompt,
|
||||
GAsyncResult *result,
|
||||
GError **error)
|
||||
{
|
||||
ShellKeyringPrompt *self = SHELL_KEYRING_PROMPT (prompt);
|
||||
GTask *task = G_TASK (result);
|
||||
gssize res;
|
||||
|
||||
g_return_val_if_fail (g_simple_async_result_is_valid (result, G_OBJECT (prompt),
|
||||
g_return_val_if_fail (g_task_get_source_object (task) == prompt,
|
||||
GCR_PROMPT_REPLY_CANCEL);
|
||||
g_return_val_if_fail (g_async_result_is_tagged (result,
|
||||
shell_keyring_prompt_confirm_async), GCR_PROMPT_REPLY_CANCEL);
|
||||
|
||||
if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (result), error))
|
||||
return GCR_PROMPT_REPLY_CANCEL;
|
||||
|
||||
return self->last_reply;
|
||||
res = g_task_propagate_int (task, error);
|
||||
return res == -1 ? GCR_PROMPT_REPLY_CANCEL : (GcrPromptReply)res;
|
||||
}
|
||||
|
||||
static void
|
||||
@ -718,19 +705,20 @@ shell_keyring_prompt_set_confirm_actor (ShellKeyringPrompt *self,
|
||||
gboolean
|
||||
shell_keyring_prompt_complete (ShellKeyringPrompt *self)
|
||||
{
|
||||
GSimpleAsyncResult *res;
|
||||
GTask *res;
|
||||
PromptingMode mode;
|
||||
const gchar *password;
|
||||
const gchar *confirm;
|
||||
const gchar *env;
|
||||
|
||||
g_return_val_if_fail (SHELL_IS_KEYRING_PROMPT (self), FALSE);
|
||||
g_return_val_if_fail (self->mode != PROMPTING_NONE, FALSE);
|
||||
g_return_val_if_fail (self->async_result != NULL, FALSE);
|
||||
g_return_val_if_fail (self->task != NULL, FALSE);
|
||||
|
||||
password = clutter_text_get_text (self->password_actor);
|
||||
|
||||
if (self->mode == PROMPTING_FOR_PASSWORD)
|
||||
{
|
||||
password = clutter_text_get_text (self->password_actor);
|
||||
|
||||
/* Is it a new password? */
|
||||
if (self->password_new)
|
||||
{
|
||||
@ -756,13 +744,15 @@ shell_keyring_prompt_complete (ShellKeyringPrompt *self)
|
||||
g_object_notify (G_OBJECT (self), "password-strength");
|
||||
}
|
||||
|
||||
self->last_reply = GCR_PROMPT_REPLY_CONTINUE;
|
||||
|
||||
res = self->async_result;
|
||||
self->async_result = NULL;
|
||||
res = self->task;
|
||||
mode = self->mode;
|
||||
self->task = NULL;
|
||||
self->mode = PROMPTING_NONE;
|
||||
|
||||
g_simple_async_result_complete (res);
|
||||
if (mode == PROMPTING_FOR_CONFIRM)
|
||||
g_task_return_int (res, (gssize)GCR_PROMPT_REPLY_CONTINUE);
|
||||
else
|
||||
g_task_return_pointer (res, (gpointer)password, NULL);
|
||||
g_object_unref (res);
|
||||
|
||||
return TRUE;
|
||||
@ -777,7 +767,8 @@ shell_keyring_prompt_complete (ShellKeyringPrompt *self)
|
||||
void
|
||||
shell_keyring_prompt_cancel (ShellKeyringPrompt *self)
|
||||
{
|
||||
GSimpleAsyncResult *res;
|
||||
GTask *res;
|
||||
PromptingMode mode;
|
||||
|
||||
g_return_if_fail (SHELL_IS_KEYRING_PROMPT (self));
|
||||
|
||||
@ -792,13 +783,16 @@ shell_keyring_prompt_cancel (ShellKeyringPrompt *self)
|
||||
return;
|
||||
}
|
||||
|
||||
g_return_if_fail (self->async_result != NULL);
|
||||
self->last_reply = GCR_PROMPT_REPLY_CANCEL;
|
||||
g_return_if_fail (self->task != NULL);
|
||||
|
||||
res = self->async_result;
|
||||
self->async_result = NULL;
|
||||
res = self->task;
|
||||
mode = self->mode;
|
||||
self->task = NULL;
|
||||
self->mode = PROMPTING_NONE;
|
||||
|
||||
g_simple_async_result_complete_in_idle (res);
|
||||
if (mode == PROMPTING_FOR_CONFIRM)
|
||||
g_task_return_int (res, (gssize) GCR_PROMPT_REPLY_CANCEL);
|
||||
else
|
||||
g_task_return_pointer (res, NULL, NULL);
|
||||
g_object_unref (res);
|
||||
}
|
||||
|
@ -32,11 +32,9 @@ G_BEGIN_DECLS
|
||||
|
||||
typedef struct _ShellKeyringPrompt ShellKeyringPrompt;
|
||||
|
||||
#define SHELL_TYPE_KEYRING_PROMPT (shell_keyring_prompt_get_type ())
|
||||
#define SHELL_KEYRING_PROMPT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SHELL_TYPE_KEYRING_PROMPT, ShellKeyringPrompt))
|
||||
#define SHELL_IS_KEYRING_PROMPT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SHELL_TYPE_KEYRING_PROMPT))
|
||||
|
||||
GType shell_keyring_prompt_get_type (void) G_GNUC_CONST;
|
||||
#define SHELL_TYPE_KEYRING_PROMPT (shell_keyring_prompt_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (ShellKeyringPrompt, shell_keyring_prompt,
|
||||
SHELL, KEYRING_PROMPT, GObject)
|
||||
|
||||
ShellKeyringPrompt * shell_keyring_prompt_new (void);
|
||||
|
||||
|
@ -33,7 +33,6 @@
|
||||
* the GPid array to JS).
|
||||
* See https://bugzilla.gnome.org/show_bug.cgi?id=645978
|
||||
*/
|
||||
G_DEFINE_TYPE (ShellMountOperation, shell_mount_operation, G_TYPE_MOUNT_OPERATION);
|
||||
|
||||
enum {
|
||||
SHOW_PROCESSES_2,
|
||||
@ -42,17 +41,27 @@ enum {
|
||||
|
||||
static guint signals[NUM_SIGNALS] = { 0, };
|
||||
|
||||
typedef struct _ShellMountOperationPrivate ShellMountOperationPrivate;
|
||||
|
||||
struct _ShellMountOperation
|
||||
{
|
||||
GMountOperation parent_instance;
|
||||
|
||||
ShellMountOperationPrivate *priv;
|
||||
};
|
||||
|
||||
struct _ShellMountOperationPrivate {
|
||||
GArray *pids;
|
||||
gchar **choices;
|
||||
gchar *message;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (ShellMountOperation, shell_mount_operation, G_TYPE_MOUNT_OPERATION);
|
||||
|
||||
static void
|
||||
shell_mount_operation_init (ShellMountOperation *self)
|
||||
{
|
||||
self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, SHELL_TYPE_MOUNT_OPERATION,
|
||||
ShellMountOperationPrivate);
|
||||
self->priv = shell_mount_operation_get_instance_private (self);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -135,8 +144,6 @@ shell_mount_operation_class_init (ShellMountOperationClass *klass)
|
||||
G_SIGNAL_RUN_LAST,
|
||||
0, NULL, NULL, NULL,
|
||||
G_TYPE_NONE, 0);
|
||||
|
||||
g_type_class_add_private (klass, sizeof (ShellMountOperationPrivate));
|
||||
}
|
||||
|
||||
GMountOperation *
|
||||
|
@ -26,31 +26,10 @@
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define SHELL_TYPE_MOUNT_OPERATION (shell_mount_operation_get_type ())
|
||||
#define SHELL_MOUNT_OPERATION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SHELL_TYPE_MOUNT_OPERATION, ShellMountOperation))
|
||||
#define SHELL_MOUNT_OPERATION_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), SHELL_TYPE_MOUNT_OPERATION, ShellMountOperationClass))
|
||||
#define SHELL_IS_MOUNT_OPERATION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SHELL_TYPE_MOUNT_OPERATION))
|
||||
#define SHELL_IS_MOUNT_OPERATION_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), SHELL_TYPE_MOUNT_OPERATION))
|
||||
#define SHELL_MOUNT_OPERATION_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), SHELL_TYPE_MOUNT_OPERATION, ShellMountOperationClass))
|
||||
#define SHELL_TYPE_MOUNT_OPERATION (shell_mount_operation_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (ShellMountOperation, shell_mount_operation,
|
||||
SHELL, MOUNT_OPERATION, GMountOperation)
|
||||
|
||||
typedef struct _ShellMountOperation ShellMountOperation;
|
||||
typedef struct _ShellMountOperationClass ShellMountOperationClass;
|
||||
typedef struct _ShellMountOperationPrivate ShellMountOperationPrivate;
|
||||
|
||||
struct _ShellMountOperation
|
||||
{
|
||||
GMountOperation parent_instance;
|
||||
|
||||
ShellMountOperationPrivate *priv;
|
||||
};
|
||||
|
||||
struct _ShellMountOperationClass
|
||||
{
|
||||
GMountOperationClass parent_class;
|
||||
};
|
||||
|
||||
|
||||
GType shell_mount_operation_get_type (void);
|
||||
GMountOperation *shell_mount_operation_new (void);
|
||||
|
||||
GArray * shell_mount_operation_get_show_processes_pids (ShellMountOperation *self);
|
||||
|
@ -60,7 +60,7 @@ struct _ShellNetworkAgentPrivate {
|
||||
GHashTable *requests;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE (ShellNetworkAgent, shell_network_agent, NM_TYPE_SECRET_AGENT)
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (ShellNetworkAgent, shell_network_agent, NM_TYPE_SECRET_AGENT)
|
||||
|
||||
static const SecretSchema network_agent_schema = {
|
||||
"org.freedesktop.NetworkManager.Connection",
|
||||
@ -114,8 +114,7 @@ shell_network_agent_init (ShellNetworkAgent *agent)
|
||||
{
|
||||
ShellNetworkAgentPrivate *priv;
|
||||
|
||||
priv = agent->priv = G_TYPE_INSTANCE_GET_PRIVATE (agent, SHELL_TYPE_NETWORK_AGENT, ShellNetworkAgentPrivate);
|
||||
|
||||
priv = agent->priv = shell_network_agent_get_instance_private (agent);
|
||||
priv->requests = g_hash_table_new_full (g_str_hash, g_str_equal,
|
||||
g_free, shell_agent_request_free);
|
||||
}
|
||||
@ -853,6 +852,4 @@ shell_network_agent_class_init (ShellNetworkAgentClass *klass)
|
||||
G_TYPE_NONE,
|
||||
1, /* n_params */
|
||||
G_TYPE_STRING);
|
||||
|
||||
g_type_class_add_private (klass, sizeof (ShellNetworkAgentPrivate));
|
||||
}
|
||||
|
@ -53,11 +53,6 @@ struct _ShellPerfLog
|
||||
guint enabled : 1;
|
||||
};
|
||||
|
||||
struct _ShellPerfLogClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
};
|
||||
|
||||
struct _ShellPerfEvent
|
||||
{
|
||||
guint16 id;
|
||||
|
@ -7,17 +7,8 @@
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
typedef struct _ShellPerfLog ShellPerfLog;
|
||||
typedef struct _ShellPerfLogClass ShellPerfLogClass;
|
||||
|
||||
#define SHELL_TYPE_PERF_LOG (shell_perf_log_get_type ())
|
||||
#define SHELL_PERF_LOG(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), SHELL_TYPE_PERF_LOG, ShellPerfLog))
|
||||
#define SHELL_PERF_LOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_PERF_LOG, ShellPerfLogClass))
|
||||
#define SHELL_IS_PERF_LOG(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), SHELL_TYPE_PERF_LOG))
|
||||
#define SHELL_IS_PERF_LOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_PERF_LOG))
|
||||
#define SHELL_PERF_LOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_PERF_LOG, ShellPerfLogClass))
|
||||
|
||||
GType shell_perf_log_get_type (void) G_GNUC_CONST;
|
||||
#define SHELL_TYPE_PERF_LOG (shell_perf_log_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (ShellPerfLog, shell_perf_log, SHELL, PERF_LOG, GObject)
|
||||
|
||||
ShellPerfLog *shell_perf_log_get_default (void);
|
||||
|
||||
|
@ -201,13 +201,12 @@ struct _AuthRequest {
|
||||
gchar *cookie;
|
||||
GList *identities;
|
||||
|
||||
GSimpleAsyncResult *simple;
|
||||
GTask *simple;
|
||||
};
|
||||
|
||||
static void
|
||||
auth_request_free (AuthRequest *request)
|
||||
{
|
||||
g_cancellable_disconnect (request->cancellable, request->handler_id);
|
||||
g_free (request->action_id);
|
||||
g_free (request->message);
|
||||
g_free (request->icon_name);
|
||||
@ -338,30 +337,29 @@ auth_request_complete (AuthRequest *request,
|
||||
gboolean dismissed)
|
||||
{
|
||||
ShellPolkitAuthenticationAgent *agent = request->agent;
|
||||
gboolean is_current = agent->current_request == request;
|
||||
|
||||
print_debug ("COMPLETING %s %s cookie %s", is_current ? "CURRENT" : "SCHEDULED",
|
||||
request->action_id, request->cookie);
|
||||
|
||||
if (!is_current)
|
||||
agent->scheduled_requests = g_list_remove (agent->scheduled_requests, request);
|
||||
g_cancellable_disconnect (request->cancellable, request->handler_id);
|
||||
|
||||
if (dismissed)
|
||||
g_simple_async_result_set_error (request->simple,
|
||||
POLKIT_ERROR,
|
||||
POLKIT_ERROR_CANCELLED,
|
||||
_("Authentication dialog was dismissed by the user"));
|
||||
|
||||
if (agent->current_request == request)
|
||||
{
|
||||
print_debug ("COMPLETING CURRENT %s cookie %s", request->action_id, request->cookie);
|
||||
|
||||
g_simple_async_result_complete_in_idle (request->simple);
|
||||
auth_request_free (request);
|
||||
|
||||
agent->current_request = NULL;
|
||||
|
||||
maybe_process_next_request (agent);
|
||||
}
|
||||
g_task_return_new_error (request->simple,
|
||||
POLKIT_ERROR,
|
||||
POLKIT_ERROR_CANCELLED,
|
||||
_("Authentication dialog was dismissed by the user"));
|
||||
else
|
||||
g_task_return_boolean (request->simple, TRUE);
|
||||
|
||||
auth_request_free (request);
|
||||
|
||||
if (is_current)
|
||||
{
|
||||
print_debug ("COMPLETING SCHEDULED %s cookie %s", request->action_id, request->cookie);
|
||||
agent->scheduled_requests = g_list_remove (agent->scheduled_requests, request);
|
||||
g_simple_async_result_complete_in_idle (request->simple);
|
||||
auth_request_free (request);
|
||||
agent->current_request = NULL;
|
||||
maybe_process_next_request (agent);
|
||||
}
|
||||
}
|
||||
|
||||
@ -408,10 +406,7 @@ initiate_authentication (PolkitAgentListener *listener,
|
||||
request->cookie = g_strdup (cookie);
|
||||
request->identities = g_list_copy (identities);
|
||||
g_list_foreach (request->identities, (GFunc) g_object_ref, NULL);
|
||||
request->simple = g_simple_async_result_new (G_OBJECT (listener),
|
||||
callback,
|
||||
user_data,
|
||||
initiate_authentication);
|
||||
request->simple = g_task_new (listener, NULL, callback, user_data);
|
||||
request->cancellable = cancellable;
|
||||
request->handler_id = g_cancellable_connect (request->cancellable,
|
||||
G_CALLBACK (on_request_cancelled),
|
||||
@ -429,11 +424,7 @@ initiate_authentication_finish (PolkitAgentListener *listener,
|
||||
GAsyncResult *res,
|
||||
GError **error)
|
||||
{
|
||||
GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (res);
|
||||
if (g_simple_async_result_propagate_error (simple, error))
|
||||
return FALSE;
|
||||
else
|
||||
return TRUE;
|
||||
return g_task_propagate_boolean (G_TASK (res), error);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -33,11 +33,6 @@ typedef enum {
|
||||
|
||||
typedef struct _RecorderPipeline RecorderPipeline;
|
||||
|
||||
struct _ShellRecorderClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
};
|
||||
|
||||
struct _ShellRecorder {
|
||||
GObject parent;
|
||||
|
||||
|
@ -16,17 +16,8 @@ G_BEGIN_DECLS
|
||||
* directory named after the date, but the encoding and output can
|
||||
* be configured.
|
||||
*/
|
||||
typedef struct _ShellRecorder ShellRecorder;
|
||||
typedef struct _ShellRecorderClass ShellRecorderClass;
|
||||
|
||||
#define SHELL_TYPE_RECORDER (shell_recorder_get_type ())
|
||||
#define SHELL_RECORDER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), SHELL_TYPE_RECORDER, ShellRecorder))
|
||||
#define SHELL_RECORDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_RECORDER, ShellRecorderClass))
|
||||
#define SHELL_IS_RECORDER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), SHELL_TYPE_RECORDER))
|
||||
#define SHELL_IS_RECORDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_RECORDER))
|
||||
#define SHELL_RECORDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_RECORDER, ShellRecorderClass))
|
||||
|
||||
GType shell_recorder_get_type (void) G_GNUC_CONST;
|
||||
#define SHELL_TYPE_RECORDER (shell_recorder_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (ShellRecorder, shell_recorder, SHELL, RECORDER, GObject)
|
||||
|
||||
ShellRecorder *shell_recorder_new (ClutterStage *stage);
|
||||
|
||||
|
@ -14,10 +14,7 @@
|
||||
#define A11Y_APPS_SCHEMA "org.gnome.desktop.a11y.applications"
|
||||
#define MAGNIFIER_ACTIVE_KEY "screen-magnifier-enabled"
|
||||
|
||||
struct _ShellScreenshotClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
};
|
||||
typedef struct _ShellScreenshotPrivate ShellScreenshotPrivate;
|
||||
|
||||
struct _ShellScreenshot
|
||||
{
|
||||
@ -58,16 +55,16 @@ shell_screenshot_init (ShellScreenshot *screenshot)
|
||||
}
|
||||
|
||||
static void
|
||||
on_screenshot_written (GObject *source,
|
||||
on_screenshot_written (GObject *source,
|
||||
GAsyncResult *result,
|
||||
gpointer user_data)
|
||||
gpointer user_data)
|
||||
{
|
||||
ShellScreenshot *screenshot = SHELL_SCREENSHOT (source);
|
||||
ShellScreenshotPrivate *priv = screenshot->priv;
|
||||
|
||||
if (priv->callback)
|
||||
priv->callback (screenshot,
|
||||
g_simple_async_result_get_op_res_gboolean (G_SIMPLE_ASYNC_RESULT (result)),
|
||||
g_task_propagate_boolean (G_TASK (result), NULL),
|
||||
&priv->screenshot_area,
|
||||
priv->filename_used);
|
||||
|
||||
@ -168,8 +165,9 @@ prepare_write_stream (const gchar *filename,
|
||||
}
|
||||
|
||||
static void
|
||||
write_screenshot_thread (GSimpleAsyncResult *result,
|
||||
GObject *object,
|
||||
write_screenshot_thread (GTask *result,
|
||||
gpointer object,
|
||||
gpointer task_data,
|
||||
GCancellable *cancellable)
|
||||
{
|
||||
cairo_status_t status;
|
||||
@ -205,7 +203,7 @@ write_screenshot_thread (GSimpleAsyncResult *result,
|
||||
}
|
||||
|
||||
|
||||
g_simple_async_result_set_op_res_gboolean (result, status == CAIRO_STATUS_SUCCESS);
|
||||
g_task_return_boolean (result, status == CAIRO_STATUS_SUCCESS);
|
||||
|
||||
g_clear_object (&stream);
|
||||
}
|
||||
@ -307,7 +305,7 @@ grab_screenshot (ClutterActor *stage,
|
||||
MetaScreen *screen;
|
||||
MetaCursorTracker *tracker;
|
||||
int width, height;
|
||||
GSimpleAsyncResult *result;
|
||||
GTask *result;
|
||||
GSettings *settings;
|
||||
ShellScreenshotPrivate *priv = screenshot->priv;
|
||||
|
||||
@ -370,8 +368,8 @@ grab_screenshot (ClutterActor *stage,
|
||||
|
||||
g_signal_handlers_disconnect_by_func (stage, (void *)grab_screenshot, (gpointer)screenshot);
|
||||
|
||||
result = g_simple_async_result_new (G_OBJECT (screenshot), on_screenshot_written, NULL, grab_screenshot);
|
||||
g_simple_async_result_run_in_thread (result, write_screenshot_thread, G_PRIORITY_DEFAULT, NULL);
|
||||
result = g_task_new (screenshot, NULL, on_screenshot_written, NULL);
|
||||
g_task_run_in_thread (result, write_screenshot_thread);
|
||||
g_object_unref (result);
|
||||
}
|
||||
|
||||
@ -379,7 +377,7 @@ static void
|
||||
grab_area_screenshot (ClutterActor *stage,
|
||||
ShellScreenshot *screenshot)
|
||||
{
|
||||
GSimpleAsyncResult *result;
|
||||
GTask *result;
|
||||
ShellScreenshotPrivate *priv = screenshot->priv;
|
||||
|
||||
do_grab_screenshot (screenshot,
|
||||
@ -389,8 +387,8 @@ grab_area_screenshot (ClutterActor *stage,
|
||||
priv->screenshot_area.height);
|
||||
|
||||
g_signal_handlers_disconnect_by_func (stage, (void *)grab_area_screenshot, (gpointer)screenshot);
|
||||
result = g_simple_async_result_new (G_OBJECT (screenshot), on_screenshot_written, NULL, grab_area_screenshot);
|
||||
g_simple_async_result_run_in_thread (result, write_screenshot_thread, G_PRIORITY_DEFAULT, NULL);
|
||||
result = g_task_new (screenshot, NULL, on_screenshot_written, NULL);
|
||||
g_task_run_in_thread (result, write_screenshot_thread);
|
||||
g_object_unref (result);
|
||||
}
|
||||
|
||||
@ -399,7 +397,7 @@ grab_window_screenshot (ClutterActor *stage,
|
||||
ShellScreenshot *screenshot)
|
||||
{
|
||||
ShellScreenshotPrivate *priv = screenshot->priv;
|
||||
GSimpleAsyncResult *result;
|
||||
GTask *result;
|
||||
GSettings *settings;
|
||||
MetaScreen *screen = shell_global_get_screen (priv->global);
|
||||
MetaCursorTracker *tracker;
|
||||
@ -439,8 +437,8 @@ grab_window_screenshot (ClutterActor *stage,
|
||||
g_object_unref (settings);
|
||||
|
||||
g_signal_handlers_disconnect_by_func (stage, (void *)grab_window_screenshot, (gpointer)screenshot);
|
||||
result = g_simple_async_result_new (G_OBJECT (screenshot), on_screenshot_written, NULL, grab_window_screenshot);
|
||||
g_simple_async_result_run_in_thread (result, write_screenshot_thread, G_PRIORITY_DEFAULT, NULL);
|
||||
result = g_task_new (screenshot, NULL, on_screenshot_written, NULL);
|
||||
g_task_run_in_thread (result, write_screenshot_thread);
|
||||
g_object_unref (result);
|
||||
}
|
||||
|
||||
|
@ -10,19 +10,9 @@
|
||||
* areas or windows and write them out as png files.
|
||||
*
|
||||
*/
|
||||
|
||||
typedef struct _ShellScreenshot ShellScreenshot;
|
||||
typedef struct _ShellScreenshotPrivate ShellScreenshotPrivate;
|
||||
typedef struct _ShellScreenshotClass ShellScreenshotClass;
|
||||
|
||||
#define SHELL_TYPE_SCREENSHOT (shell_screenshot_get_type ())
|
||||
#define SHELL_SCREENSHOT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), SHELL_TYPE_SCREENSHOT, ShellScreenshot))
|
||||
#define SHELL_SCREENSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_SCREENSHOT, ShellScreenshotClass))
|
||||
#define SHELL_IS_SCREENSHOT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), SHELL_TYPE_SCREENSHOT))
|
||||
#define SHELL_IS_SCREENSHOT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_SCREENSHOT))
|
||||
#define SHELL_SCREENSHOT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_SCREENSHOT, ShellScreenshotClass))
|
||||
|
||||
GType shell_screenshot_get_type (void) G_GNUC_CONST;
|
||||
#define SHELL_TYPE_SCREENSHOT (shell_screenshot_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (ShellScreenshot, shell_screenshot,
|
||||
SHELL, SCREENSHOT, GObject)
|
||||
|
||||
ShellScreenshot *shell_screenshot_new (void);
|
||||
|
||||
|
@ -30,9 +30,6 @@
|
||||
|
||||
#include <string.h>
|
||||
|
||||
typedef struct _ShellSecureTextBuffer ShellSecureTextBuffer;
|
||||
typedef struct _ShellSecureTextBufferClass ShellSecureTextBufferClass;
|
||||
|
||||
struct _ShellSecureTextBuffer {
|
||||
ClutterTextBuffer parent;
|
||||
gchar *text;
|
||||
@ -41,10 +38,6 @@ struct _ShellSecureTextBuffer {
|
||||
guint text_chars;
|
||||
};
|
||||
|
||||
struct _ShellSecureTextBufferClass {
|
||||
ClutterTextBufferClass parent_class;
|
||||
};
|
||||
|
||||
/* Initial size of buffer, in bytes */
|
||||
#define MIN_SIZE 16
|
||||
|
||||
|
@ -28,11 +28,9 @@
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define SHELL_TYPE_SECURE_TEXT_BUFFER (shell_secure_text_buffer_get_type ())
|
||||
#define SHELL_SECURE_TEXT_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SHELL_TYPE_SECURE_TEXT_BUFFER, ShellSecureTextBuffer))
|
||||
#define SHELL_IS_SECURE_TEXT_BUFFER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SHELL_TYPE_SECURE_TEXT_BUFFER))
|
||||
|
||||
GType shell_secure_text_buffer_get_type (void) G_GNUC_CONST;
|
||||
#define SHELL_TYPE_SECURE_TEXT_BUFFER (shell_secure_text_buffer_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (ShellSecureTextBuffer, shell_secure_text_buffer,
|
||||
SHELL, SECURE_TEXT_BUFFER, ClutterTextBuffer)
|
||||
|
||||
ClutterTextBuffer * shell_secure_text_buffer_new (void);
|
||||
|
||||
|
@ -16,9 +16,12 @@
|
||||
|
||||
#include "shell-stack.h"
|
||||
|
||||
G_DEFINE_TYPE (ShellStack,
|
||||
shell_stack,
|
||||
ST_TYPE_WIDGET);
|
||||
struct _ShellStack
|
||||
{
|
||||
StWidget parent;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE (ShellStack, shell_stack, ST_TYPE_WIDGET);
|
||||
|
||||
static void
|
||||
shell_stack_allocate (ClutterActor *self,
|
||||
|
@ -5,30 +5,7 @@
|
||||
#include "st.h"
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#define SHELL_TYPE_STACK (shell_stack_get_type ())
|
||||
#define SHELL_STACK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SHELL_TYPE_STACK, ShellStack))
|
||||
#define SHELL_STACK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_STACK, ShellStackClass))
|
||||
#define SHELL_IS_STACK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SHELL_TYPE_STACK))
|
||||
#define SHELL_IS_STACK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_STACK))
|
||||
#define SHELL_STACK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_STACK, ShellStackClass))
|
||||
|
||||
typedef struct _ShellStack ShellStack;
|
||||
typedef struct _ShellStackClass ShellStackClass;
|
||||
|
||||
typedef struct _ShellStackPrivate ShellStackPrivate;
|
||||
|
||||
struct _ShellStack
|
||||
{
|
||||
StWidget parent;
|
||||
|
||||
ShellStackPrivate *priv;
|
||||
};
|
||||
|
||||
struct _ShellStackClass
|
||||
{
|
||||
StWidgetClass parent_class;
|
||||
};
|
||||
|
||||
GType shell_stack_get_type (void) G_GNUC_CONST;
|
||||
#define SHELL_TYPE_STACK (shell_stack_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (ShellStack, shell_stack, SHELL, STACK, StWidget)
|
||||
|
||||
#endif /* __SHELL_STACK_H__ */
|
||||
|
@ -6,8 +6,6 @@
|
||||
|
||||
#include <telepathy-glib/telepathy-glib.h>
|
||||
|
||||
G_DEFINE_TYPE(ShellTpClient, shell_tp_client, TP_TYPE_BASE_CLIENT)
|
||||
|
||||
struct _ShellTpClientPrivate
|
||||
{
|
||||
ShellTpClientObserveChannelsImpl observe_impl;
|
||||
@ -23,6 +21,8 @@ struct _ShellTpClientPrivate
|
||||
GDestroyNotify destroy_handle_channels;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (ShellTpClient, shell_tp_client, TP_TYPE_BASE_CLIENT)
|
||||
|
||||
/**
|
||||
* ShellTpClientObserveChannelsImpl:
|
||||
* @client: a #ShellTpClient instance
|
||||
@ -84,8 +84,7 @@ shell_tp_client_init (ShellTpClient *self)
|
||||
{
|
||||
GHashTable *filter;
|
||||
|
||||
self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, SHELL_TYPE_TP_CLIENT,
|
||||
ShellTpClientPrivate);
|
||||
self->priv = shell_tp_client_get_instance_private (self);
|
||||
|
||||
/* We only care about single-user text-based chats */
|
||||
filter = tp_asv_new (
|
||||
@ -198,8 +197,6 @@ shell_tp_client_class_init (ShellTpClientClass *cls)
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (cls);
|
||||
TpBaseClientClass *base_clt_cls = TP_BASE_CLIENT_CLASS (cls);
|
||||
|
||||
g_type_class_add_private (cls, sizeof (ShellTpClientPrivate));
|
||||
|
||||
object_class->dispose = shell_tp_client_dispose;
|
||||
|
||||
base_clt_cls->observe_channels = observe_channels;
|
||||
|
@ -17,6 +17,15 @@ enum {
|
||||
PROP_WM_CLASS
|
||||
};
|
||||
|
||||
typedef struct _ShellTrayIconPrivate ShellTrayIconPrivate;
|
||||
|
||||
struct _ShellTrayIcon
|
||||
{
|
||||
ShellGtkEmbed parent;
|
||||
|
||||
ShellTrayIconPrivate *priv;
|
||||
};
|
||||
|
||||
struct _ShellTrayIconPrivate
|
||||
{
|
||||
NaTrayChild *socket;
|
||||
@ -25,7 +34,7 @@ struct _ShellTrayIconPrivate
|
||||
char *title, *wm_class;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE (ShellTrayIcon, shell_tray_icon, SHELL_TYPE_GTK_EMBED);
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (ShellTrayIcon, shell_tray_icon, SHELL_TYPE_GTK_EMBED);
|
||||
|
||||
static void
|
||||
shell_tray_icon_finalize (GObject *object)
|
||||
@ -117,8 +126,6 @@ shell_tray_icon_class_init (ShellTrayIconClass *klass)
|
||||
{
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
g_type_class_add_private (klass, sizeof (ShellTrayIconPrivate));
|
||||
|
||||
object_class->get_property = shell_tray_icon_get_property;
|
||||
object_class->constructed = shell_tray_icon_constructed;
|
||||
object_class->finalize = shell_tray_icon_finalize;
|
||||
@ -149,8 +156,7 @@ shell_tray_icon_class_init (ShellTrayIconClass *klass)
|
||||
static void
|
||||
shell_tray_icon_init (ShellTrayIcon *icon)
|
||||
{
|
||||
icon->priv = G_TYPE_INSTANCE_GET_PRIVATE (icon, SHELL_TYPE_TRAY_ICON,
|
||||
ShellTrayIconPrivate);
|
||||
icon->priv = shell_tray_icon_get_instance_private (icon);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -4,31 +4,10 @@
|
||||
|
||||
#include "shell-gtk-embed.h"
|
||||
|
||||
#define SHELL_TYPE_TRAY_ICON (shell_tray_icon_get_type ())
|
||||
#define SHELL_TRAY_ICON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SHELL_TYPE_TRAY_ICON, ShellTrayIcon))
|
||||
#define SHELL_TRAY_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_TRAY_ICON, ShellTrayIconClass))
|
||||
#define SHELL_IS_TRAY_ICON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SHELL_TYPE_TRAY_ICON))
|
||||
#define SHELL_IS_TRAY_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_TRAY_ICON))
|
||||
#define SHELL_TRAY_ICON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_TRAY_ICON, ShellTrayIconClass))
|
||||
#define SHELL_TYPE_TRAY_ICON (shell_tray_icon_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (ShellTrayIcon, shell_tray_icon,
|
||||
SHELL, TRAY_ICON, ShellGtkEmbed)
|
||||
|
||||
typedef struct _ShellTrayIcon ShellTrayIcon;
|
||||
typedef struct _ShellTrayIconClass ShellTrayIconClass;
|
||||
typedef struct _ShellTrayIconPrivate ShellTrayIconPrivate;
|
||||
|
||||
struct _ShellTrayIcon
|
||||
{
|
||||
ShellGtkEmbed parent;
|
||||
|
||||
ShellTrayIconPrivate *priv;
|
||||
};
|
||||
|
||||
struct _ShellTrayIconClass
|
||||
{
|
||||
ShellGtkEmbedClass parent_class;
|
||||
};
|
||||
|
||||
|
||||
GType shell_tray_icon_get_type (void) G_GNUC_CONST;
|
||||
ClutterActor *shell_tray_icon_new (ShellEmbeddedWindow *window);
|
||||
|
||||
void shell_tray_icon_click (ShellTrayIcon *icon,
|
||||
|
@ -15,6 +15,15 @@
|
||||
#include "shell-embedded-window.h"
|
||||
#include "shell-global.h"
|
||||
|
||||
typedef struct _ShellTrayManagerPrivate ShellTrayManagerPrivate;
|
||||
|
||||
struct _ShellTrayManager
|
||||
{
|
||||
GObject parent_instance;
|
||||
|
||||
ShellTrayManagerPrivate *priv;
|
||||
};
|
||||
|
||||
struct _ShellTrayManagerPrivate {
|
||||
NaTrayManager *na_manager;
|
||||
ClutterColor bg_color;
|
||||
@ -43,7 +52,7 @@ enum
|
||||
LAST_SIGNAL
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE (ShellTrayManager, shell_tray_manager, G_TYPE_OBJECT);
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (ShellTrayManager, shell_tray_manager, G_TYPE_OBJECT);
|
||||
|
||||
static guint shell_tray_manager_signals [LAST_SIGNAL] = { 0 };
|
||||
|
||||
@ -114,8 +123,8 @@ shell_tray_manager_get_property(GObject *object,
|
||||
static void
|
||||
shell_tray_manager_init (ShellTrayManager *manager)
|
||||
{
|
||||
manager->priv = G_TYPE_INSTANCE_GET_PRIVATE (manager, SHELL_TYPE_TRAY_MANAGER,
|
||||
ShellTrayManagerPrivate);
|
||||
manager->priv = shell_tray_manager_get_instance_private (manager);
|
||||
|
||||
manager->priv->na_manager = na_tray_manager_new ();
|
||||
|
||||
manager->priv->icons = g_hash_table_new_full (NULL, NULL,
|
||||
@ -144,8 +153,6 @@ shell_tray_manager_class_init (ShellTrayManagerClass *klass)
|
||||
{
|
||||
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
g_type_class_add_private (klass, sizeof (ShellTrayManagerPrivate));
|
||||
|
||||
gobject_class->finalize = shell_tray_manager_finalize;
|
||||
gobject_class->set_property = shell_tray_manager_set_property;
|
||||
gobject_class->get_property = shell_tray_manager_get_property;
|
||||
@ -154,7 +161,7 @@ shell_tray_manager_class_init (ShellTrayManagerClass *klass)
|
||||
g_signal_new ("tray-icon-added",
|
||||
G_TYPE_FROM_CLASS (klass),
|
||||
G_SIGNAL_RUN_LAST,
|
||||
G_STRUCT_OFFSET (ShellTrayManagerClass, tray_icon_added),
|
||||
0,
|
||||
NULL, NULL, NULL,
|
||||
G_TYPE_NONE, 1,
|
||||
CLUTTER_TYPE_ACTOR);
|
||||
@ -162,7 +169,7 @@ shell_tray_manager_class_init (ShellTrayManagerClass *klass)
|
||||
g_signal_new ("tray-icon-removed",
|
||||
G_TYPE_FROM_CLASS (klass),
|
||||
G_SIGNAL_RUN_LAST,
|
||||
G_STRUCT_OFFSET (ShellTrayManagerClass, tray_icon_removed),
|
||||
0,
|
||||
NULL, NULL, NULL,
|
||||
G_TYPE_NONE, 1,
|
||||
CLUTTER_TYPE_ACTOR);
|
||||
@ -193,27 +200,12 @@ shell_tray_manager_style_changed (StWidget *theme_widget,
|
||||
ShellTrayManager *manager = user_data;
|
||||
StThemeNode *theme_node;
|
||||
StIconColors *icon_colors;
|
||||
GdkColor foreground, warning, error, success;
|
||||
|
||||
theme_node = st_widget_get_theme_node (theme_widget);
|
||||
icon_colors = st_theme_node_get_icon_colors (theme_node);
|
||||
|
||||
foreground.red = icon_colors->foreground.red * 0x101;
|
||||
foreground.green = icon_colors->foreground.green * 0x101;
|
||||
foreground.blue = icon_colors->foreground.blue * 0x101;
|
||||
warning.red = icon_colors->warning.red * 0x101;
|
||||
warning.green = icon_colors->warning.green * 0x101;
|
||||
warning.blue = icon_colors->warning.blue * 0x101;
|
||||
error.red = icon_colors->error.red * 0x101;
|
||||
error.green = icon_colors->error.green * 0x101;
|
||||
error.blue = icon_colors->error.blue * 0x101;
|
||||
success.red = icon_colors->success.red * 0x101;
|
||||
success.green = icon_colors->success.green * 0x101;
|
||||
success.blue = icon_colors->success.blue * 0x101;
|
||||
|
||||
na_tray_manager_set_colors (manager->priv->na_manager,
|
||||
&foreground, &warning,
|
||||
&error, &success);
|
||||
&icon_colors->foreground, &icon_colors->warning,
|
||||
&icon_colors->error, &icon_colors->success);
|
||||
}
|
||||
|
||||
void
|
||||
@ -287,14 +279,6 @@ na_tray_icon_added (NaTrayManager *na_manager, GtkWidget *socket,
|
||||
GtkWidget *win;
|
||||
ShellTrayManagerChild *child;
|
||||
|
||||
/* We don't need the NaTrayIcon to be composited on the window we
|
||||
* put it in: the window is the same size as the tray icon
|
||||
* and transparent. We can just use the default X handling of
|
||||
* subwindows as mode of SOURCE (replace the parent with the
|
||||
* child) and then composite the parent onto the stage.
|
||||
*/
|
||||
na_tray_child_set_composited (NA_TRAY_CHILD (socket), FALSE);
|
||||
|
||||
win = shell_embedded_window_new ();
|
||||
gtk_container_add (GTK_CONTAINER (win), socket);
|
||||
|
||||
|
@ -8,37 +8,9 @@
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define SHELL_TYPE_TRAY_MANAGER (shell_tray_manager_get_type ())
|
||||
#define SHELL_TRAY_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SHELL_TYPE_TRAY_MANAGER, ShellTrayManager))
|
||||
#define SHELL_TRAY_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_TRAY_MANAGER, ShellTrayManagerClass))
|
||||
#define SHELL_IS_TRAY_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SHELL_TYPE_TRAY_MANAGER))
|
||||
#define SHELL_IS_TRAY_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_TRAY_MANAGER))
|
||||
#define SHELL_TRAY_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_TRAY_MANAGER, ShellTrayManagerClass))
|
||||
|
||||
typedef struct _ShellTrayManager ShellTrayManager;
|
||||
typedef struct _ShellTrayManagerPrivate ShellTrayManagerPrivate;
|
||||
typedef struct _ShellTrayManagerClass ShellTrayManagerClass;
|
||||
|
||||
struct _ShellTrayManager
|
||||
{
|
||||
GObject parent_instance;
|
||||
|
||||
ShellTrayManagerPrivate *priv;
|
||||
};
|
||||
|
||||
struct _ShellTrayManagerClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
|
||||
void (* tray_icon_added) (ShellTrayManager *manager,
|
||||
ClutterActor *icon,
|
||||
const char *lowercase_wm_class);
|
||||
void (* tray_icon_removed) (ShellTrayManager *manager,
|
||||
ClutterActor *icon);
|
||||
|
||||
};
|
||||
|
||||
GType shell_tray_manager_get_type (void);
|
||||
#define SHELL_TYPE_TRAY_MANAGER (shell_tray_manager_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (ShellTrayManager, shell_tray_manager,
|
||||
SHELL, TRAY_MANAGER, GObject)
|
||||
|
||||
ShellTrayManager *shell_tray_manager_new (void);
|
||||
void shell_tray_manager_manage_screen (ShellTrayManager *manager,
|
||||
|
@ -11,23 +11,9 @@
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
typedef struct _ShellWindowTracker ShellWindowTracker;
|
||||
typedef struct _ShellWindowTrackerClass ShellWindowTrackerClass;
|
||||
typedef struct _ShellWindowTrackerPrivate ShellWindowTrackerPrivate;
|
||||
|
||||
#define SHELL_TYPE_WINDOW_TRACKER (shell_window_tracker_get_type ())
|
||||
#define SHELL_WINDOW_TRACKER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), SHELL_TYPE_WINDOW_TRACKER, ShellWindowTracker))
|
||||
#define SHELL_WINDOW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_WINDOW_TRACKER, ShellWindowTrackerClass))
|
||||
#define SHELL_IS_WINDOW_TRACKER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), SHELL_TYPE_WINDOW_TRACKER))
|
||||
#define SHELL_IS_WINDOW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_WINDOW_TRACKER))
|
||||
#define SHELL_WINDOW_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_WINDOW_TRACKER, ShellWindowTrackerClass))
|
||||
|
||||
struct _ShellWindowTrackerClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
};
|
||||
|
||||
GType shell_window_tracker_get_type (void) G_GNUC_CONST;
|
||||
#define SHELL_TYPE_WINDOW_TRACKER (shell_window_tracker_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (ShellWindowTracker, shell_window_tracker,
|
||||
SHELL, WINDOW_TRACKER, GObject)
|
||||
|
||||
ShellWindowTracker* shell_window_tracker_get_default(void);
|
||||
|
||||
|
@ -7,23 +7,8 @@
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
typedef struct _ShellWM ShellWM;
|
||||
typedef struct _ShellWMClass ShellWMClass;
|
||||
|
||||
#define SHELL_TYPE_WM (shell_wm_get_type ())
|
||||
#define SHELL_WM(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), SHELL_TYPE_WM, ShellWM))
|
||||
#define SHELL_WM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SHELL_TYPE_WM, ShellWMClass))
|
||||
#define SHELL_IS_WM(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), SHELL_TYPE_WM))
|
||||
#define SHELL_IS_WM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SHELL_TYPE_WM))
|
||||
#define SHELL_WM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SHELL_TYPE_WM, ShellWMClass))
|
||||
|
||||
struct _ShellWMClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
|
||||
};
|
||||
|
||||
GType shell_wm_get_type (void) G_GNUC_CONST;
|
||||
#define SHELL_TYPE_WM (shell_wm_get_type ())
|
||||
G_DECLARE_FINAL_TYPE (ShellWM, shell_wm, SHELL, WM, GObject)
|
||||
|
||||
ShellWM *shell_wm_new (MetaPlugin *plugin);
|
||||
|
||||
|
@ -37,9 +37,7 @@
|
||||
#include "st-adjustment.h"
|
||||
#include "st-private.h"
|
||||
|
||||
G_DEFINE_TYPE (StAdjustment, st_adjustment, G_TYPE_OBJECT)
|
||||
|
||||
#define ADJUSTMENT_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), ST_TYPE_ADJUSTMENT, StAdjustmentPrivate))
|
||||
typedef struct _StAdjustmentPrivate StAdjustmentPrivate;
|
||||
|
||||
struct _StAdjustmentPrivate
|
||||
{
|
||||
@ -55,6 +53,8 @@ struct _StAdjustmentPrivate
|
||||
gdouble page_size;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (StAdjustment, st_adjustment, G_TYPE_OBJECT)
|
||||
|
||||
enum
|
||||
{
|
||||
PROP_0,
|
||||
@ -92,6 +92,7 @@ st_adjustment_constructed (GObject *object)
|
||||
{
|
||||
GObjectClass *g_class;
|
||||
StAdjustment *self = ST_ADJUSTMENT (object);
|
||||
StAdjustmentPrivate *priv = st_adjustment_get_instance_private (self);
|
||||
|
||||
g_class = G_OBJECT_CLASS (st_adjustment_parent_class);
|
||||
/* The docs say we're suppose to chain up, but would crash without
|
||||
@ -102,8 +103,8 @@ st_adjustment_constructed (GObject *object)
|
||||
g_class->constructed (object);
|
||||
}
|
||||
|
||||
ST_ADJUSTMENT (self)->priv->is_constructing = FALSE;
|
||||
st_adjustment_clamp_page (self, self->priv->lower, self->priv->upper);
|
||||
priv->is_constructing = FALSE;
|
||||
st_adjustment_clamp_page (self, priv->lower, priv->upper);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -112,7 +113,7 @@ st_adjustment_get_property (GObject *gobject,
|
||||
GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
StAdjustmentPrivate *priv = ST_ADJUSTMENT (gobject)->priv;
|
||||
StAdjustmentPrivate *priv = st_adjustment_get_instance_private (ST_ADJUSTMENT (gobject));
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
@ -191,8 +192,6 @@ st_adjustment_class_init (StAdjustmentClass *klass)
|
||||
{
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
g_type_class_add_private (klass, sizeof (StAdjustmentPrivate));
|
||||
|
||||
object_class->constructed = st_adjustment_constructed;
|
||||
object_class->get_property = st_adjustment_get_property;
|
||||
object_class->set_property = st_adjustment_set_property;
|
||||
@ -275,9 +274,8 @@ st_adjustment_class_init (StAdjustmentClass *klass)
|
||||
static void
|
||||
st_adjustment_init (StAdjustment *self)
|
||||
{
|
||||
self->priv = ADJUSTMENT_PRIVATE (self);
|
||||
|
||||
self->priv->is_constructing = TRUE;
|
||||
StAdjustmentPrivate *priv = st_adjustment_get_instance_private (self);
|
||||
priv->is_constructing = TRUE;
|
||||
}
|
||||
|
||||
StAdjustment *
|
||||
@ -301,13 +299,9 @@ st_adjustment_new (gdouble value,
|
||||
gdouble
|
||||
st_adjustment_get_value (StAdjustment *adjustment)
|
||||
{
|
||||
StAdjustmentPrivate *priv;
|
||||
|
||||
g_return_val_if_fail (ST_IS_ADJUSTMENT (adjustment), 0);
|
||||
|
||||
priv = adjustment->priv;
|
||||
|
||||
return priv->value;
|
||||
return ((StAdjustmentPrivate *)st_adjustment_get_instance_private (adjustment))->value;
|
||||
}
|
||||
|
||||
void
|
||||
@ -318,7 +312,7 @@ st_adjustment_set_value (StAdjustment *adjustment,
|
||||
|
||||
g_return_if_fail (ST_IS_ADJUSTMENT (adjustment));
|
||||
|
||||
priv = adjustment->priv;
|
||||
priv = st_adjustment_get_instance_private (adjustment);
|
||||
|
||||
/* Defer clamp until after construction. */
|
||||
if (!priv->is_constructing)
|
||||
@ -346,7 +340,7 @@ st_adjustment_clamp_page (StAdjustment *adjustment,
|
||||
|
||||
g_return_if_fail (ST_IS_ADJUSTMENT (adjustment));
|
||||
|
||||
priv = adjustment->priv;
|
||||
priv = st_adjustment_get_instance_private (adjustment);
|
||||
|
||||
lower = CLAMP (lower, priv->lower, priv->upper - priv->page_size);
|
||||
upper = CLAMP (upper, priv->lower + priv->page_size, priv->upper);
|
||||
@ -373,7 +367,7 @@ static gboolean
|
||||
st_adjustment_set_lower (StAdjustment *adjustment,
|
||||
gdouble lower)
|
||||
{
|
||||
StAdjustmentPrivate *priv = adjustment->priv;
|
||||
StAdjustmentPrivate *priv = st_adjustment_get_instance_private (adjustment);
|
||||
|
||||
if (priv->lower != lower)
|
||||
{
|
||||
@ -397,7 +391,7 @@ static gboolean
|
||||
st_adjustment_set_upper (StAdjustment *adjustment,
|
||||
gdouble upper)
|
||||
{
|
||||
StAdjustmentPrivate *priv = adjustment->priv;
|
||||
StAdjustmentPrivate *priv = st_adjustment_get_instance_private (adjustment);
|
||||
|
||||
if (priv->upper != upper)
|
||||
{
|
||||
@ -421,7 +415,7 @@ static gboolean
|
||||
st_adjustment_set_step_increment (StAdjustment *adjustment,
|
||||
gdouble step)
|
||||
{
|
||||
StAdjustmentPrivate *priv = adjustment->priv;
|
||||
StAdjustmentPrivate *priv = st_adjustment_get_instance_private (adjustment);
|
||||
|
||||
if (priv->step_increment != step)
|
||||
{
|
||||
@ -441,7 +435,7 @@ static gboolean
|
||||
st_adjustment_set_page_increment (StAdjustment *adjustment,
|
||||
gdouble page)
|
||||
{
|
||||
StAdjustmentPrivate *priv = adjustment->priv;
|
||||
StAdjustmentPrivate *priv = st_adjustment_get_instance_private (adjustment);
|
||||
|
||||
if (priv->page_increment != page)
|
||||
{
|
||||
@ -461,7 +455,7 @@ static gboolean
|
||||
st_adjustment_set_page_size (StAdjustment *adjustment,
|
||||
gdouble size)
|
||||
{
|
||||
StAdjustmentPrivate *priv = adjustment->priv;
|
||||
StAdjustmentPrivate *priv = st_adjustment_get_instance_private (adjustment);
|
||||
|
||||
if (priv->page_size != size)
|
||||
{
|
||||
@ -498,7 +492,7 @@ st_adjustment_set_values (StAdjustment *adjustment,
|
||||
g_return_if_fail (step_increment >= 0 && step_increment <= G_MAXDOUBLE);
|
||||
g_return_if_fail (page_increment >= 0 && page_increment <= G_MAXDOUBLE);
|
||||
|
||||
priv = adjustment->priv;
|
||||
priv = st_adjustment_get_instance_private (adjustment);
|
||||
|
||||
emit_changed = FALSE;
|
||||
|
||||
@ -547,7 +541,7 @@ st_adjustment_get_values (StAdjustment *adjustment,
|
||||
|
||||
g_return_if_fail (ST_IS_ADJUSTMENT (adjustment));
|
||||
|
||||
priv = adjustment->priv;
|
||||
priv = st_adjustment_get_instance_private (adjustment);
|
||||
|
||||
if (lower)
|
||||
*lower = priv->lower;
|
||||
@ -589,7 +583,7 @@ st_adjustment_adjust_for_scroll_event (StAdjustment *adjustment,
|
||||
|
||||
g_return_if_fail (ST_IS_ADJUSTMENT (adjustment));
|
||||
|
||||
priv = adjustment->priv;
|
||||
priv = st_adjustment_get_instance_private (adjustment);
|
||||
|
||||
scroll_unit = pow (priv->page_size, 2.0 / 3.0);
|
||||
|
||||
|
@ -30,31 +30,8 @@
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define ST_TYPE_ADJUSTMENT (st_adjustment_get_type())
|
||||
#define ST_ADJUSTMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ST_TYPE_ADJUSTMENT, StAdjustment))
|
||||
#define ST_IS_ADJUSTMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ST_TYPE_ADJUSTMENT))
|
||||
#define ST_ADJUSTMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ST_TYPE_ADJUSTMENT, StAdjustmentClass))
|
||||
#define ST_IS_ADJUSTMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ST_TYPE_ADJUSTMENT))
|
||||
#define ST_ADJUSTMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ST_TYPE_ADJUSTMENT, StAdjustmentClass))
|
||||
|
||||
typedef struct _StAdjustment StAdjustment;
|
||||
typedef struct _StAdjustmentPrivate StAdjustmentPrivate;
|
||||
typedef struct _StAdjustmentClass StAdjustmentClass;
|
||||
|
||||
/**
|
||||
* StAdjustment:
|
||||
*
|
||||
* Class for handling an interval between to values. The contents of
|
||||
* the #StAdjustment are private and should be accessed using the
|
||||
* public API.
|
||||
*/
|
||||
struct _StAdjustment
|
||||
{
|
||||
/*< private >*/
|
||||
GObject parent_instance;
|
||||
|
||||
StAdjustmentPrivate *priv;
|
||||
};
|
||||
#define ST_TYPE_ADJUSTMENT (st_adjustment_get_type())
|
||||
G_DECLARE_DERIVABLE_TYPE (StAdjustment, st_adjustment, ST, ADJUSTMENT, GObject)
|
||||
|
||||
/**
|
||||
* StAdjustmentClass:
|
||||
@ -71,8 +48,6 @@ struct _StAdjustmentClass
|
||||
void (* changed) (StAdjustment *adjustment);
|
||||
};
|
||||
|
||||
GType st_adjustment_get_type (void) G_GNUC_CONST;
|
||||
|
||||
StAdjustment *st_adjustment_new (gdouble value,
|
||||
gdouble lower,
|
||||
gdouble upper,
|
||||
|
@ -38,8 +38,7 @@
|
||||
#include "st-enum-types.h"
|
||||
#include "st-private.h"
|
||||
|
||||
#define ST_BIN_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), ST_TYPE_BIN, StBinPrivate))
|
||||
|
||||
typedef struct _StBinPrivate StBinPrivate;
|
||||
struct _StBinPrivate
|
||||
{
|
||||
ClutterActor *child;
|
||||
@ -65,6 +64,7 @@ enum
|
||||
static void clutter_container_iface_init (ClutterContainerIface *iface);
|
||||
|
||||
G_DEFINE_TYPE_WITH_CODE (StBin, st_bin, ST_TYPE_WIDGET,
|
||||
G_ADD_PRIVATE (StBin)
|
||||
G_IMPLEMENT_INTERFACE (CLUTTER_TYPE_CONTAINER,
|
||||
clutter_container_iface_init));
|
||||
|
||||
@ -79,10 +79,11 @@ static void
|
||||
st_bin_remove (ClutterContainer *container,
|
||||
ClutterActor *actor)
|
||||
{
|
||||
StBinPrivate *priv = ST_BIN (container)->priv;
|
||||
StBin *bin = ST_BIN (container);
|
||||
StBinPrivate *priv = st_bin_get_instance_private (bin);
|
||||
|
||||
if (priv->child == actor)
|
||||
st_bin_set_child (ST_BIN (container), NULL);
|
||||
st_bin_set_child (bin, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -97,7 +98,7 @@ st_bin_allocate (ClutterActor *self,
|
||||
const ClutterActorBox *box,
|
||||
ClutterAllocationFlags flags)
|
||||
{
|
||||
StBinPrivate *priv = ST_BIN (self)->priv;
|
||||
StBinPrivate *priv = st_bin_get_instance_private (ST_BIN (self));
|
||||
|
||||
clutter_actor_set_allocation (self, box, flags);
|
||||
|
||||
@ -123,7 +124,7 @@ st_bin_get_preferred_width (ClutterActor *self,
|
||||
gfloat *min_width_p,
|
||||
gfloat *natural_width_p)
|
||||
{
|
||||
StBinPrivate *priv = ST_BIN (self)->priv;
|
||||
StBinPrivate *priv = st_bin_get_instance_private (ST_BIN (self));
|
||||
StThemeNode *theme_node = st_widget_get_theme_node (ST_WIDGET (self));
|
||||
|
||||
st_theme_node_adjust_for_height (theme_node, &for_height);
|
||||
@ -152,7 +153,7 @@ st_bin_get_preferred_height (ClutterActor *self,
|
||||
gfloat *min_height_p,
|
||||
gfloat *natural_height_p)
|
||||
{
|
||||
StBinPrivate *priv = ST_BIN (self)->priv;
|
||||
StBinPrivate *priv = st_bin_get_instance_private (ST_BIN (self));
|
||||
StThemeNode *theme_node = st_widget_get_theme_node (ST_WIDGET (self));
|
||||
|
||||
st_theme_node_adjust_for_width (theme_node, &for_width);
|
||||
@ -178,7 +179,7 @@ st_bin_get_preferred_height (ClutterActor *self,
|
||||
static void
|
||||
st_bin_dispose (GObject *gobject)
|
||||
{
|
||||
StBinPrivate *priv = ST_BIN (gobject)->priv;
|
||||
StBinPrivate *priv = st_bin_get_instance_private (ST_BIN (gobject));
|
||||
|
||||
if (priv->child)
|
||||
clutter_actor_destroy (priv->child);
|
||||
@ -190,7 +191,7 @@ st_bin_dispose (GObject *gobject)
|
||||
static void
|
||||
st_bin_popup_menu (StWidget *widget)
|
||||
{
|
||||
StBinPrivate *priv = ST_BIN (widget)->priv;
|
||||
StBinPrivate *priv = st_bin_get_instance_private (ST_BIN (widget));
|
||||
|
||||
if (priv->child && ST_IS_WIDGET (priv->child))
|
||||
st_widget_popup_menu (ST_WIDGET (priv->child));
|
||||
@ -201,7 +202,7 @@ st_bin_navigate_focus (StWidget *widget,
|
||||
ClutterActor *from,
|
||||
GtkDirectionType direction)
|
||||
{
|
||||
StBinPrivate *priv = ST_BIN (widget)->priv;
|
||||
StBinPrivate *priv = st_bin_get_instance_private (ST_BIN (widget));
|
||||
ClutterActor *bin_actor = CLUTTER_ACTOR (widget);
|
||||
|
||||
if (st_widget_get_can_focus (widget))
|
||||
@ -232,6 +233,7 @@ st_bin_set_property (GObject *gobject,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
StBin *bin = ST_BIN (gobject);
|
||||
StBinPrivate *priv = st_bin_get_instance_private (bin);
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
@ -242,24 +244,24 @@ st_bin_set_property (GObject *gobject,
|
||||
case PROP_X_ALIGN:
|
||||
st_bin_set_alignment (bin,
|
||||
g_value_get_enum (value),
|
||||
bin->priv->y_align);
|
||||
priv->y_align);
|
||||
break;
|
||||
|
||||
case PROP_Y_ALIGN:
|
||||
st_bin_set_alignment (bin,
|
||||
bin->priv->x_align,
|
||||
priv->x_align,
|
||||
g_value_get_enum (value));
|
||||
break;
|
||||
|
||||
case PROP_X_FILL:
|
||||
st_bin_set_fill (bin,
|
||||
g_value_get_boolean (value),
|
||||
bin->priv->y_fill);
|
||||
priv->y_fill);
|
||||
break;
|
||||
|
||||
case PROP_Y_FILL:
|
||||
st_bin_set_fill (bin,
|
||||
bin->priv->x_fill,
|
||||
priv->x_fill,
|
||||
g_value_get_boolean (value));
|
||||
break;
|
||||
|
||||
@ -274,7 +276,7 @@ st_bin_get_property (GObject *gobject,
|
||||
GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
StBinPrivate *priv = ST_BIN (gobject)->priv;
|
||||
StBinPrivate *priv = st_bin_get_instance_private (ST_BIN (gobject));
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
@ -311,8 +313,6 @@ st_bin_class_init (StBinClass *klass)
|
||||
StWidgetClass *widget_class = ST_WIDGET_CLASS (klass);
|
||||
GParamSpec *pspec;
|
||||
|
||||
g_type_class_add_private (klass, sizeof (StBinPrivate));
|
||||
|
||||
gobject_class->set_property = st_bin_set_property;
|
||||
gobject_class->get_property = st_bin_get_property;
|
||||
gobject_class->dispose = st_bin_dispose;
|
||||
@ -392,10 +392,10 @@ st_bin_class_init (StBinClass *klass)
|
||||
static void
|
||||
st_bin_init (StBin *bin)
|
||||
{
|
||||
bin->priv = ST_BIN_GET_PRIVATE (bin);
|
||||
StBinPrivate *priv = st_bin_get_instance_private (bin);
|
||||
|
||||
bin->priv->x_align = ST_ALIGN_MIDDLE;
|
||||
bin->priv->y_align = ST_ALIGN_MIDDLE;
|
||||
priv->x_align = ST_ALIGN_MIDDLE;
|
||||
priv->y_align = ST_ALIGN_MIDDLE;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -429,7 +429,7 @@ st_bin_set_child (StBin *bin,
|
||||
g_return_if_fail (ST_IS_BIN (bin));
|
||||
g_return_if_fail (child == NULL || CLUTTER_IS_ACTOR (child));
|
||||
|
||||
priv = bin->priv;
|
||||
priv = st_bin_get_instance_private (bin);
|
||||
|
||||
if (priv->child == child)
|
||||
return;
|
||||
@ -463,7 +463,7 @@ st_bin_get_child (StBin *bin)
|
||||
{
|
||||
g_return_val_if_fail (ST_IS_BIN (bin), NULL);
|
||||
|
||||
return bin->priv->child;
|
||||
return ((StBinPrivate *)st_bin_get_instance_private (bin))->child;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -485,7 +485,7 @@ st_bin_set_alignment (StBin *bin,
|
||||
|
||||
g_return_if_fail (ST_IS_BIN (bin));
|
||||
|
||||
priv = bin->priv;
|
||||
priv = st_bin_get_instance_private (bin);
|
||||
|
||||
g_object_freeze_notify (G_OBJECT (bin));
|
||||
|
||||
@ -527,7 +527,7 @@ st_bin_get_alignment (StBin *bin,
|
||||
|
||||
g_return_if_fail (ST_IS_BIN (bin));
|
||||
|
||||
priv = bin->priv;
|
||||
priv = st_bin_get_instance_private (bin);
|
||||
|
||||
if (x_align)
|
||||
*x_align = priv->x_align;
|
||||
@ -555,7 +555,7 @@ st_bin_set_fill (StBin *bin,
|
||||
|
||||
g_return_if_fail (ST_IS_BIN (bin));
|
||||
|
||||
priv = bin->priv;
|
||||
priv = st_bin_get_instance_private (bin);
|
||||
|
||||
g_object_freeze_notify (G_OBJECT (bin));
|
||||
|
||||
@ -594,11 +594,15 @@ st_bin_get_fill (StBin *bin,
|
||||
gboolean *x_fill,
|
||||
gboolean *y_fill)
|
||||
{
|
||||
StBinPrivate *priv;
|
||||
|
||||
g_return_if_fail (ST_IS_BIN (bin));
|
||||
|
||||
priv = st_bin_get_instance_private (bin);
|
||||
|
||||
if (x_fill)
|
||||
*x_fill = bin->priv->x_fill;
|
||||
*x_fill = priv->x_fill;
|
||||
|
||||
if (y_fill)
|
||||
*y_fill = bin->priv->y_fill;
|
||||
*y_fill = priv->y_fill;
|
||||
}
|
||||
|
@ -30,28 +30,7 @@
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define ST_TYPE_BIN (st_bin_get_type ())
|
||||
#define ST_BIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ST_TYPE_BIN, StBin))
|
||||
#define ST_IS_BIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ST_TYPE_BIN))
|
||||
#define ST_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ST_TYPE_BIN, StBinClass))
|
||||
#define ST_IS_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ST_TYPE_BIN))
|
||||
#define ST_BIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ST_TYPE_BIN, StBinClass))
|
||||
|
||||
typedef struct _StBin StBin;
|
||||
typedef struct _StBinPrivate StBinPrivate;
|
||||
typedef struct _StBinClass StBinClass;
|
||||
|
||||
/**
|
||||
* StBin:
|
||||
*
|
||||
* The #StBin struct contains only private data
|
||||
*/
|
||||
struct _StBin
|
||||
{
|
||||
/*< private >*/
|
||||
StWidget parent_instance;
|
||||
|
||||
StBinPrivate *priv;
|
||||
};
|
||||
G_DECLARE_DERIVABLE_TYPE (StBin, st_bin, ST, BIN, StWidget)
|
||||
|
||||
/**
|
||||
* StBinClass:
|
||||
@ -64,8 +43,6 @@ struct _StBinClass
|
||||
StWidgetClass parent_class;
|
||||
};
|
||||
|
||||
GType st_bin_get_type (void) G_GNUC_CONST;
|
||||
|
||||
StWidget * st_bin_new (void);
|
||||
void st_bin_set_child (StBin *bin,
|
||||
ClutterActor *child);
|
||||
|
@ -28,17 +28,9 @@ G_BEGIN_DECLS
|
||||
|
||||
/* A StBorderImage encapsulates an image with specified unscaled borders on each edge.
|
||||
*/
|
||||
typedef struct _StBorderImage StBorderImage;
|
||||
typedef struct _StBorderImageClass StBorderImageClass;
|
||||
|
||||
#define ST_TYPE_BORDER_IMAGE (st_border_image_get_type ())
|
||||
#define ST_BORDER_IMAGE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), ST_TYPE_BORDER_IMAGE, StBorderImage))
|
||||
#define ST_BORDER_IMAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ST_TYPE_BORDER_IMAGE, StBorderImageClass))
|
||||
#define ST_IS_BORDER_IMAGE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), ST_TYPE_BORDER_IMAGE))
|
||||
#define ST_IS_BORDER_IMAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ST_TYPE_BORDER_IMAGE))
|
||||
#define ST_BORDER_IMAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ST_TYPE_BORDER_IMAGE, StBorderImageClass))
|
||||
|
||||
GType st_border_image_get_type (void) G_GNUC_CONST;
|
||||
G_DECLARE_FINAL_TYPE (StBorderImage, st_border_image, ST, BORDER_IMAGE, GObject)
|
||||
|
||||
StBorderImage *st_border_image_new (GFile *file,
|
||||
int border_top,
|
||||
|
@ -30,9 +30,6 @@
|
||||
|
||||
G_DEFINE_TYPE (StBoxLayoutChild, st_box_layout_child, CLUTTER_TYPE_CHILD_META)
|
||||
|
||||
#define BOX_LAYOUT_CHILD_PRIVATE(o) \
|
||||
(G_TYPE_INSTANCE_GET_PRIVATE ((o), ST_TYPE_BOX_LAYOUT_CHILD, StBoxLayoutChildPrivate))
|
||||
|
||||
|
||||
enum
|
||||
{
|
||||
|
@ -27,29 +27,9 @@
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define ST_TYPE_BOX_LAYOUT_CHILD st_box_layout_child_get_type()
|
||||
|
||||
#define ST_BOX_LAYOUT_CHILD(obj) \
|
||||
(G_TYPE_CHECK_INSTANCE_CAST ((obj), \
|
||||
ST_TYPE_BOX_LAYOUT_CHILD, StBoxLayoutChild))
|
||||
|
||||
#define ST_BOX_LAYOUT_CHILD_CLASS(klass) \
|
||||
(G_TYPE_CHECK_CLASS_CAST ((klass), \
|
||||
ST_TYPE_BOX_LAYOUT_CHILD, StBoxLayoutChildClass))
|
||||
|
||||
#define ST_IS_BOX_LAYOUT_CHILD(obj) \
|
||||
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
|
||||
ST_TYPE_BOX_LAYOUT_CHILD))
|
||||
|
||||
#define ST_IS_BOX_LAYOUT_CHILD_CLASS(klass) \
|
||||
(G_TYPE_CHECK_CLASS_TYPE ((klass), \
|
||||
ST_TYPE_BOX_LAYOUT_CHILD))
|
||||
|
||||
#define ST_BOX_LAYOUT_CHILD_GET_CLASS(obj) \
|
||||
(G_TYPE_INSTANCE_GET_CLASS ((obj), \
|
||||
ST_TYPE_BOX_LAYOUT_CHILD, StBoxLayoutChildClass))
|
||||
G_DECLARE_FINAL_TYPE (StBoxLayoutChild, st_box_layout_child, ST, BOX_LAYOUT_CHILD, ClutterChildMeta)
|
||||
|
||||
typedef struct _StBoxLayoutChild StBoxLayoutChild;
|
||||
typedef struct _StBoxLayoutChildClass StBoxLayoutChildClass;
|
||||
typedef struct _StBoxLayoutChildPrivate StBoxLayoutChildPrivate;
|
||||
|
||||
/**
|
||||
@ -67,13 +47,6 @@ struct _StBoxLayoutChild
|
||||
gboolean y_fill_set;
|
||||
};
|
||||
|
||||
struct _StBoxLayoutChildClass
|
||||
{
|
||||
ClutterChildMetaClass parent_class;
|
||||
};
|
||||
|
||||
GType st_box_layout_child_get_type (void);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* _ST_BOX_LAYOUT_CHILD_H */
|
||||
|
@ -59,15 +59,6 @@
|
||||
static void st_box_container_iface_init (ClutterContainerIface *iface);
|
||||
static void st_box_scrollable_interface_init (StScrollableInterface *iface);
|
||||
|
||||
G_DEFINE_TYPE_WITH_CODE (StBoxLayout, st_box_layout, ST_TYPE_WIDGET,
|
||||
G_IMPLEMENT_INTERFACE (CLUTTER_TYPE_CONTAINER,
|
||||
st_box_container_iface_init)
|
||||
G_IMPLEMENT_INTERFACE (ST_TYPE_SCROLLABLE,
|
||||
st_box_scrollable_interface_init));
|
||||
|
||||
#define BOX_LAYOUT_PRIVATE(o) \
|
||||
(G_TYPE_INSTANCE_GET_PRIVATE ((o), ST_TYPE_BOX_LAYOUT, StBoxLayoutPrivate))
|
||||
|
||||
enum {
|
||||
PROP_0,
|
||||
|
||||
@ -84,6 +75,13 @@ struct _StBoxLayoutPrivate
|
||||
StAdjustment *vadjustment;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE_WITH_CODE (StBoxLayout, st_box_layout, ST_TYPE_WIDGET,
|
||||
G_ADD_PRIVATE (StBoxLayout)
|
||||
G_IMPLEMENT_INTERFACE (CLUTTER_TYPE_CONTAINER,
|
||||
st_box_container_iface_init)
|
||||
G_IMPLEMENT_INTERFACE (ST_TYPE_SCROLLABLE,
|
||||
st_box_scrollable_interface_init));
|
||||
|
||||
/*
|
||||
* StScrollable Interface Implementation
|
||||
*/
|
||||
@ -588,8 +586,6 @@ st_box_layout_class_init (StBoxLayoutClass *klass)
|
||||
StWidgetClass *widget_class = ST_WIDGET_CLASS (klass);
|
||||
GParamSpec *pspec;
|
||||
|
||||
g_type_class_add_private (klass, sizeof (StBoxLayoutPrivate));
|
||||
|
||||
object_class->get_property = st_box_layout_get_property;
|
||||
object_class->set_property = st_box_layout_set_property;
|
||||
object_class->dispose = st_box_layout_dispose;
|
||||
@ -632,7 +628,7 @@ st_box_layout_class_init (StBoxLayoutClass *klass)
|
||||
static void
|
||||
st_box_layout_init (StBoxLayout *self)
|
||||
{
|
||||
self->priv = BOX_LAYOUT_PRIVATE (self);
|
||||
self->priv = st_box_layout_get_instance_private (self);
|
||||
|
||||
g_signal_connect (self, "notify::layout-manager",
|
||||
G_CALLBACK (on_layout_manager_notify), NULL);
|
||||
|
@ -30,29 +30,9 @@
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define ST_TYPE_BOX_LAYOUT st_box_layout_get_type()
|
||||
|
||||
#define ST_BOX_LAYOUT(obj) \
|
||||
(G_TYPE_CHECK_INSTANCE_CAST ((obj), \
|
||||
ST_TYPE_BOX_LAYOUT, StBoxLayout))
|
||||
|
||||
#define ST_BOX_LAYOUT_CLASS(klass) \
|
||||
(G_TYPE_CHECK_CLASS_CAST ((klass), \
|
||||
ST_TYPE_BOX_LAYOUT, StBoxLayoutClass))
|
||||
|
||||
#define ST_IS_BOX_LAYOUT(obj) \
|
||||
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
|
||||
ST_TYPE_BOX_LAYOUT))
|
||||
|
||||
#define ST_IS_BOX_LAYOUT_CLASS(klass) \
|
||||
(G_TYPE_CHECK_CLASS_TYPE ((klass), \
|
||||
ST_TYPE_BOX_LAYOUT))
|
||||
|
||||
#define ST_BOX_LAYOUT_GET_CLASS(obj) \
|
||||
(G_TYPE_INSTANCE_GET_CLASS ((obj), \
|
||||
ST_TYPE_BOX_LAYOUT, StBoxLayoutClass))
|
||||
G_DECLARE_FINAL_TYPE (StBoxLayout, st_box_layout, ST, BOX_LAYOUT, StWidget)
|
||||
|
||||
typedef struct _StBoxLayout StBoxLayout;
|
||||
typedef struct _StBoxLayoutClass StBoxLayoutClass;
|
||||
typedef struct _StBoxLayoutPrivate StBoxLayoutPrivate;
|
||||
|
||||
/**
|
||||
@ -69,13 +49,6 @@ struct _StBoxLayout
|
||||
StBoxLayoutPrivate *priv;
|
||||
};
|
||||
|
||||
struct _StBoxLayoutClass
|
||||
{
|
||||
StWidgetClass parent_class;
|
||||
};
|
||||
|
||||
GType st_box_layout_get_type (void);
|
||||
|
||||
StWidget *st_box_layout_new (void);
|
||||
|
||||
void st_box_layout_set_vertical (StBoxLayout *box,
|
||||
|
@ -64,8 +64,7 @@ enum
|
||||
LAST_SIGNAL
|
||||
};
|
||||
|
||||
#define ST_BUTTON_GET_PRIVATE(obj) \
|
||||
(G_TYPE_INSTANCE_GET_PRIVATE ((obj), ST_TYPE_BUTTON, StButtonPrivate))
|
||||
typedef struct _StButtonPrivate StButtonPrivate;
|
||||
|
||||
struct _StButtonPrivate
|
||||
{
|
||||
@ -86,7 +85,7 @@ struct _StButtonPrivate
|
||||
|
||||
static guint button_signals[LAST_SIGNAL] = { 0, };
|
||||
|
||||
G_DEFINE_TYPE (StButton, st_button, ST_TYPE_BIN);
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (StButton, st_button, ST_TYPE_BIN);
|
||||
|
||||
static GType st_button_accessible_get_type (void) G_GNUC_CONST;
|
||||
|
||||
@ -108,7 +107,7 @@ static void
|
||||
st_button_style_changed (StWidget *widget)
|
||||
{
|
||||
StButton *button = ST_BUTTON (widget);
|
||||
StButtonPrivate *priv = button->priv;
|
||||
StButtonPrivate *priv = st_button_get_instance_private (button);
|
||||
StButtonClass *button_class = ST_BUTTON_GET_CLASS (button);
|
||||
StThemeNode *theme_node = st_widget_get_theme_node (ST_WIDGET (button));
|
||||
double spacing;
|
||||
@ -135,12 +134,14 @@ st_button_press (StButton *button,
|
||||
StButtonMask mask,
|
||||
ClutterEventSequence *sequence)
|
||||
{
|
||||
if (button->priv->pressed == 0 || sequence)
|
||||
StButtonPrivate *priv = st_button_get_instance_private (button);
|
||||
|
||||
if (priv->pressed == 0 || sequence)
|
||||
st_widget_add_style_pseudo_class (ST_WIDGET (button), "active");
|
||||
|
||||
button->priv->pressed |= mask;
|
||||
button->priv->press_sequence = sequence;
|
||||
button->priv->device = device;
|
||||
priv->pressed |= mask;
|
||||
priv->press_sequence = sequence;
|
||||
priv->device = device;
|
||||
}
|
||||
|
||||
static void
|
||||
@ -150,25 +151,27 @@ st_button_release (StButton *button,
|
||||
int clicked_button,
|
||||
ClutterEventSequence *sequence)
|
||||
{
|
||||
if ((device && button->priv->device != device) ||
|
||||
(sequence && button->priv->press_sequence != sequence))
|
||||
StButtonPrivate *priv = st_button_get_instance_private (button);
|
||||
|
||||
if ((device && priv->device != device) ||
|
||||
(sequence && priv->press_sequence != sequence))
|
||||
return;
|
||||
else if (!sequence)
|
||||
{
|
||||
button->priv->pressed &= ~mask;
|
||||
priv->pressed &= ~mask;
|
||||
|
||||
if (button->priv->pressed != 0)
|
||||
if (priv->pressed != 0)
|
||||
return;
|
||||
}
|
||||
|
||||
button->priv->press_sequence = NULL;
|
||||
button->priv->device = NULL;
|
||||
priv->press_sequence = NULL;
|
||||
priv->device = NULL;
|
||||
st_widget_remove_style_pseudo_class (ST_WIDGET (button), "active");
|
||||
|
||||
if (clicked_button || sequence)
|
||||
{
|
||||
if (button->priv->is_toggle)
|
||||
st_button_set_checked (button, !button->priv->is_checked);
|
||||
if (priv->is_toggle)
|
||||
st_button_set_checked (button, !priv->is_checked);
|
||||
|
||||
g_signal_emit (button, button_signals[CLICKED], 0, clicked_button);
|
||||
}
|
||||
@ -179,18 +182,19 @@ st_button_button_press (ClutterActor *actor,
|
||||
ClutterButtonEvent *event)
|
||||
{
|
||||
StButton *button = ST_BUTTON (actor);
|
||||
StButtonPrivate *priv = st_button_get_instance_private (button);
|
||||
StButtonMask mask = ST_BUTTON_MASK_FROM_BUTTON (event->button);
|
||||
ClutterInputDevice *device = clutter_event_get_device ((ClutterEvent*) event);
|
||||
|
||||
if (button->priv->press_sequence)
|
||||
if (priv->press_sequence)
|
||||
return CLUTTER_EVENT_PROPAGATE;
|
||||
|
||||
if (button->priv->button_mask & mask)
|
||||
if (priv->button_mask & mask)
|
||||
{
|
||||
if (button->priv->grabbed == 0)
|
||||
if (priv->grabbed == 0)
|
||||
clutter_grab_pointer (actor);
|
||||
|
||||
button->priv->grabbed |= mask;
|
||||
priv->grabbed |= mask;
|
||||
st_button_press (button, device, mask, NULL);
|
||||
|
||||
return TRUE;
|
||||
@ -204,18 +208,19 @@ st_button_button_release (ClutterActor *actor,
|
||||
ClutterButtonEvent *event)
|
||||
{
|
||||
StButton *button = ST_BUTTON (actor);
|
||||
StButtonPrivate *priv = st_button_get_instance_private (button);
|
||||
StButtonMask mask = ST_BUTTON_MASK_FROM_BUTTON (event->button);
|
||||
ClutterInputDevice *device = clutter_event_get_device ((ClutterEvent*) event);
|
||||
|
||||
if (button->priv->button_mask & mask)
|
||||
if (priv->button_mask & mask)
|
||||
{
|
||||
gboolean is_click;
|
||||
|
||||
is_click = button->priv->grabbed && clutter_actor_contains (actor, event->source);
|
||||
is_click = priv->grabbed && clutter_actor_contains (actor, event->source);
|
||||
st_button_release (button, device, mask, is_click ? event->button : 0, NULL);
|
||||
|
||||
button->priv->grabbed &= ~mask;
|
||||
if (button->priv->grabbed == 0)
|
||||
priv->grabbed &= ~mask;
|
||||
if (priv->grabbed == 0)
|
||||
clutter_ungrab_pointer ();
|
||||
|
||||
return TRUE;
|
||||
@ -229,25 +234,26 @@ st_button_touch_event (ClutterActor *actor,
|
||||
ClutterTouchEvent *event)
|
||||
{
|
||||
StButton *button = ST_BUTTON (actor);
|
||||
StButtonPrivate *priv = st_button_get_instance_private (button);
|
||||
StButtonMask mask = ST_BUTTON_MASK_FROM_BUTTON (1);
|
||||
ClutterEventSequence *sequence;
|
||||
ClutterInputDevice *device;
|
||||
|
||||
if (button->priv->pressed != 0)
|
||||
if (priv->pressed != 0)
|
||||
return CLUTTER_EVENT_PROPAGATE;
|
||||
|
||||
device = clutter_event_get_device ((ClutterEvent*) event);
|
||||
sequence = clutter_event_get_event_sequence ((ClutterEvent*) event);
|
||||
|
||||
if (event->type == CLUTTER_TOUCH_BEGIN && !button->priv->press_sequence)
|
||||
if (event->type == CLUTTER_TOUCH_BEGIN && !priv->press_sequence)
|
||||
{
|
||||
clutter_input_device_sequence_grab (device, sequence, actor);
|
||||
st_button_press (button, device, 0, sequence);
|
||||
return CLUTTER_EVENT_STOP;
|
||||
}
|
||||
else if (event->type == CLUTTER_TOUCH_END &&
|
||||
button->priv->device == device &&
|
||||
button->priv->press_sequence == sequence)
|
||||
priv->device == device &&
|
||||
priv->press_sequence == sequence)
|
||||
{
|
||||
st_button_release (button, device, mask, 0, sequence);
|
||||
clutter_input_device_sequence_ungrab (device, sequence);
|
||||
@ -262,8 +268,9 @@ st_button_key_press (ClutterActor *actor,
|
||||
ClutterKeyEvent *event)
|
||||
{
|
||||
StButton *button = ST_BUTTON (actor);
|
||||
StButtonPrivate *priv = st_button_get_instance_private (button);
|
||||
|
||||
if (button->priv->button_mask & ST_BUTTON_ONE)
|
||||
if (priv->button_mask & ST_BUTTON_ONE)
|
||||
{
|
||||
if (event->keyval == CLUTTER_KEY_space ||
|
||||
event->keyval == CLUTTER_KEY_Return ||
|
||||
@ -283,8 +290,9 @@ st_button_key_release (ClutterActor *actor,
|
||||
ClutterKeyEvent *event)
|
||||
{
|
||||
StButton *button = ST_BUTTON (actor);
|
||||
StButtonPrivate *priv = st_button_get_instance_private (button);
|
||||
|
||||
if (button->priv->button_mask & ST_BUTTON_ONE)
|
||||
if (priv->button_mask & ST_BUTTON_ONE)
|
||||
{
|
||||
if (event->keyval == CLUTTER_KEY_space ||
|
||||
event->keyval == CLUTTER_KEY_Return ||
|
||||
@ -293,7 +301,7 @@ st_button_key_release (ClutterActor *actor,
|
||||
{
|
||||
gboolean is_click;
|
||||
|
||||
is_click = (button->priv->pressed & ST_BUTTON_ONE);
|
||||
is_click = (priv->pressed & ST_BUTTON_ONE);
|
||||
st_button_release (button, NULL, ST_BUTTON_ONE, is_click ? 1 : 0, NULL);
|
||||
return TRUE;
|
||||
}
|
||||
@ -306,10 +314,11 @@ static void
|
||||
st_button_key_focus_out (ClutterActor *actor)
|
||||
{
|
||||
StButton *button = ST_BUTTON (actor);
|
||||
StButtonPrivate *priv = st_button_get_instance_private (button);
|
||||
|
||||
/* If we lose focus between a key press and release, undo the press */
|
||||
if ((button->priv->pressed & ST_BUTTON_ONE) &&
|
||||
!(button->priv->grabbed & ST_BUTTON_ONE))
|
||||
if ((priv->pressed & ST_BUTTON_ONE) &&
|
||||
!(priv->grabbed & ST_BUTTON_ONE))
|
||||
st_button_release (button, NULL, ST_BUTTON_ONE, 0, NULL);
|
||||
|
||||
CLUTTER_ACTOR_CLASS (st_button_parent_class)->key_focus_out (actor);
|
||||
@ -320,18 +329,19 @@ st_button_enter (ClutterActor *actor,
|
||||
ClutterCrossingEvent *event)
|
||||
{
|
||||
StButton *button = ST_BUTTON (actor);
|
||||
StButtonPrivate *priv = st_button_get_instance_private (button);
|
||||
gboolean ret;
|
||||
|
||||
ret = CLUTTER_ACTOR_CLASS (st_button_parent_class)->enter_event (actor, event);
|
||||
|
||||
if (button->priv->grabbed)
|
||||
if (priv->grabbed)
|
||||
{
|
||||
if (st_widget_get_hover (ST_WIDGET (button)))
|
||||
st_button_press (button, button->priv->device,
|
||||
button->priv->grabbed, NULL);
|
||||
st_button_press (button, priv->device,
|
||||
priv->grabbed, NULL);
|
||||
else
|
||||
st_button_release (button, button->priv->device,
|
||||
button->priv->grabbed, 0, NULL);
|
||||
st_button_release (button, priv->device,
|
||||
priv->grabbed, 0, NULL);
|
||||
}
|
||||
|
||||
return ret;
|
||||
@ -342,18 +352,19 @@ st_button_leave (ClutterActor *actor,
|
||||
ClutterCrossingEvent *event)
|
||||
{
|
||||
StButton *button = ST_BUTTON (actor);
|
||||
StButtonPrivate *priv = st_button_get_instance_private (button);
|
||||
gboolean ret;
|
||||
|
||||
ret = CLUTTER_ACTOR_CLASS (st_button_parent_class)->leave_event (actor, event);
|
||||
|
||||
if (button->priv->grabbed)
|
||||
if (priv->grabbed)
|
||||
{
|
||||
if (st_widget_get_hover (ST_WIDGET (button)))
|
||||
st_button_press (button, button->priv->device,
|
||||
button->priv->grabbed, NULL);
|
||||
st_button_press (button, priv->device,
|
||||
priv->grabbed, NULL);
|
||||
else
|
||||
st_button_release (button, button->priv->device,
|
||||
button->priv->grabbed, 0, NULL);
|
||||
st_button_release (button, priv->device,
|
||||
priv->grabbed, 0, NULL);
|
||||
}
|
||||
|
||||
return ret;
|
||||
@ -395,7 +406,7 @@ st_button_get_property (GObject *gobject,
|
||||
GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
StButtonPrivate *priv = ST_BUTTON (gobject)->priv;
|
||||
StButtonPrivate *priv = st_button_get_instance_private (ST_BUTTON (gobject));
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
@ -425,7 +436,7 @@ st_button_get_property (GObject *gobject,
|
||||
static void
|
||||
st_button_finalize (GObject *gobject)
|
||||
{
|
||||
StButtonPrivate *priv = ST_BUTTON (gobject)->priv;
|
||||
StButtonPrivate *priv = st_button_get_instance_private (ST_BUTTON (gobject));
|
||||
|
||||
g_free (priv->text);
|
||||
|
||||
@ -440,8 +451,6 @@ st_button_class_init (StButtonClass *klass)
|
||||
StWidgetClass *widget_class = ST_WIDGET_CLASS (klass);
|
||||
GParamSpec *pspec;
|
||||
|
||||
g_type_class_add_private (klass, sizeof (StButtonPrivate));
|
||||
|
||||
gobject_class->set_property = st_button_set_property;
|
||||
gobject_class->get_property = st_button_get_property;
|
||||
gobject_class->finalize = st_button_finalize;
|
||||
@ -512,9 +521,10 @@ st_button_class_init (StButtonClass *klass)
|
||||
static void
|
||||
st_button_init (StButton *button)
|
||||
{
|
||||
button->priv = ST_BUTTON_GET_PRIVATE (button);
|
||||
button->priv->spacing = 6;
|
||||
button->priv->button_mask = ST_BUTTON_ONE;
|
||||
StButtonPrivate *priv = st_button_get_instance_private (button);
|
||||
|
||||
priv->spacing = 6;
|
||||
priv->button_mask = ST_BUTTON_ONE;
|
||||
|
||||
clutter_actor_set_reactive (CLUTTER_ACTOR (button), TRUE);
|
||||
st_widget_set_track_hover (ST_WIDGET (button), TRUE);
|
||||
@ -560,7 +570,7 @@ st_button_get_label (StButton *button)
|
||||
{
|
||||
g_return_val_if_fail (ST_IS_BUTTON (button), NULL);
|
||||
|
||||
return button->priv->text;
|
||||
return ((StButtonPrivate *)st_button_get_instance_private (button))->text;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -579,7 +589,7 @@ st_button_set_label (StButton *button,
|
||||
|
||||
g_return_if_fail (ST_IS_BUTTON (button));
|
||||
|
||||
priv = button->priv;
|
||||
priv = st_button_get_instance_private (button);
|
||||
|
||||
g_free (priv->text);
|
||||
|
||||
@ -626,7 +636,7 @@ st_button_get_button_mask (StButton *button)
|
||||
{
|
||||
g_return_val_if_fail (ST_IS_BUTTON (button), 0);
|
||||
|
||||
return button->priv->button_mask;
|
||||
return ((StButtonPrivate *)st_button_get_instance_private (button))->button_mask;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -640,9 +650,12 @@ void
|
||||
st_button_set_button_mask (StButton *button,
|
||||
StButtonMask mask)
|
||||
{
|
||||
StButtonPrivate *priv;
|
||||
|
||||
g_return_if_fail (ST_IS_BUTTON (button));
|
||||
|
||||
button->priv->button_mask = mask;
|
||||
priv = st_button_get_instance_private (button);
|
||||
priv->button_mask = mask;
|
||||
|
||||
g_object_notify (G_OBJECT (button), "button-mask");
|
||||
}
|
||||
@ -660,7 +673,7 @@ st_button_get_toggle_mode (StButton *button)
|
||||
{
|
||||
g_return_val_if_fail (ST_IS_BUTTON (button), FALSE);
|
||||
|
||||
return button->priv->is_toggle;
|
||||
return ((StButtonPrivate *)st_button_get_instance_private (button))->is_toggle;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -675,9 +688,12 @@ void
|
||||
st_button_set_toggle_mode (StButton *button,
|
||||
gboolean toggle)
|
||||
{
|
||||
StButtonPrivate *priv;
|
||||
|
||||
g_return_if_fail (ST_IS_BUTTON (button));
|
||||
|
||||
button->priv->is_toggle = toggle;
|
||||
priv = st_button_get_instance_private (button);
|
||||
priv->is_toggle = toggle;
|
||||
|
||||
g_object_notify (G_OBJECT (button), "toggle-mode");
|
||||
}
|
||||
@ -695,7 +711,7 @@ st_button_get_checked (StButton *button)
|
||||
{
|
||||
g_return_val_if_fail (ST_IS_BUTTON (button), FALSE);
|
||||
|
||||
return button->priv->is_checked;
|
||||
return ((StButtonPrivate *)st_button_get_instance_private (button))->is_checked;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -710,11 +726,14 @@ void
|
||||
st_button_set_checked (StButton *button,
|
||||
gboolean checked)
|
||||
{
|
||||
StButtonPrivate *priv;
|
||||
|
||||
g_return_if_fail (ST_IS_BUTTON (button));
|
||||
|
||||
if (button->priv->is_checked != checked)
|
||||
priv = st_button_get_instance_private (button);
|
||||
if (priv->is_checked != checked)
|
||||
{
|
||||
button->priv->is_checked = checked;
|
||||
priv->is_checked = checked;
|
||||
|
||||
if (checked)
|
||||
st_widget_add_style_pseudo_class (ST_WIDGET (button), "checked");
|
||||
@ -741,25 +760,30 @@ st_button_set_checked (StButton *button,
|
||||
void
|
||||
st_button_fake_release (StButton *button)
|
||||
{
|
||||
if (button->priv->pressed)
|
||||
st_button_release (button, button->priv->device,
|
||||
button->priv->pressed, 0, NULL);
|
||||
StButtonPrivate *priv;
|
||||
|
||||
if (button->priv->grabbed)
|
||||
g_return_if_fail (ST_IS_BUTTON (button));
|
||||
|
||||
priv = st_button_get_instance_private (button);
|
||||
if (priv->pressed)
|
||||
st_button_release (button, priv->device,
|
||||
priv->pressed, 0, NULL);
|
||||
|
||||
if (priv->grabbed)
|
||||
{
|
||||
button->priv->grabbed = 0;
|
||||
priv->grabbed = 0;
|
||||
clutter_ungrab_pointer ();
|
||||
}
|
||||
|
||||
if (button->priv->device &&
|
||||
button->priv->press_sequence)
|
||||
if (priv->device &&
|
||||
priv->press_sequence)
|
||||
{
|
||||
clutter_input_device_sequence_ungrab (button->priv->device,
|
||||
button->priv->press_sequence);
|
||||
button->priv->press_sequence = NULL;
|
||||
clutter_input_device_sequence_ungrab (priv->device,
|
||||
priv->press_sequence);
|
||||
priv->press_sequence = NULL;
|
||||
}
|
||||
|
||||
button->priv->device = NULL;
|
||||
priv->device = NULL;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
@ -822,7 +846,7 @@ st_button_accessible_get_name (AtkObject *obj)
|
||||
if (name != NULL)
|
||||
return name;
|
||||
|
||||
return button->priv->text;
|
||||
return st_button_get_label (button);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -852,7 +876,7 @@ static void
|
||||
st_button_accessible_compute_role (AtkObject *accessible,
|
||||
StButton *button)
|
||||
{
|
||||
atk_object_set_role (accessible, button->priv->is_toggle
|
||||
atk_object_set_role (accessible, st_button_get_toggle_mode (button)
|
||||
? ATK_ROLE_TOGGLE_BUTTON : ATK_ROLE_PUSH_BUTTON);
|
||||
}
|
||||
|
||||
|
@ -29,31 +29,8 @@ G_BEGIN_DECLS
|
||||
|
||||
#include <st/st-bin.h>
|
||||
|
||||
#define ST_TYPE_BUTTON (st_button_get_type ())
|
||||
#define ST_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ST_TYPE_BUTTON, StButton))
|
||||
#define ST_IS_BUTTON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ST_TYPE_BUTTON))
|
||||
#define ST_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ST_TYPE_BUTTON, StButtonClass))
|
||||
#define ST_IS_BUTTON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ST_TYPE_BUTTON))
|
||||
#define ST_BUTTON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ST_TYPE_BUTTON, StButtonClass))
|
||||
|
||||
typedef struct _StButton StButton;
|
||||
typedef struct _StButtonPrivate StButtonPrivate;
|
||||
typedef struct _StButtonClass StButtonClass;
|
||||
|
||||
/**
|
||||
* StButton:
|
||||
*
|
||||
* The contents of this structure is private and should only be accessed using
|
||||
* the provided API.
|
||||
*/
|
||||
|
||||
struct _StButton
|
||||
{
|
||||
/*< private >*/
|
||||
StBin parent_instance;
|
||||
|
||||
StButtonPrivate *priv;
|
||||
};
|
||||
#define ST_TYPE_BUTTON (st_button_get_type ())
|
||||
G_DECLARE_DERIVABLE_TYPE (StButton, st_button, ST, BUTTON, StBin)
|
||||
|
||||
struct _StButtonClass
|
||||
{
|
||||
@ -66,8 +43,6 @@ struct _StButtonClass
|
||||
void (* clicked) (StButton *button);
|
||||
};
|
||||
|
||||
GType st_button_get_type (void) G_GNUC_CONST;
|
||||
|
||||
StWidget *st_button_new (void);
|
||||
StWidget *st_button_new_with_label (const gchar *text);
|
||||
const gchar *st_button_get_label (StButton *button);
|
||||
|
@ -34,11 +34,6 @@
|
||||
#include <gdk/gdkx.h>
|
||||
#include <string.h>
|
||||
|
||||
G_DEFINE_TYPE (StClipboard, st_clipboard, G_TYPE_OBJECT)
|
||||
|
||||
#define CLIPBOARD_PRIVATE(o) \
|
||||
(G_TYPE_INSTANCE_GET_PRIVATE ((o), ST_TYPE_CLIPBOARD, StClipboardPrivate))
|
||||
|
||||
struct _StClipboardPrivate
|
||||
{
|
||||
Window clipboard_window;
|
||||
@ -48,6 +43,8 @@ struct _StClipboardPrivate
|
||||
gint n_targets;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (StClipboard, st_clipboard, G_TYPE_OBJECT)
|
||||
|
||||
typedef struct _EventFilterData EventFilterData;
|
||||
struct _EventFilterData
|
||||
{
|
||||
@ -182,8 +179,6 @@ st_clipboard_class_init (StClipboardClass *klass)
|
||||
{
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
g_type_class_add_private (klass, sizeof (StClipboardPrivate));
|
||||
|
||||
object_class->get_property = st_clipboard_get_property;
|
||||
object_class->set_property = st_clipboard_set_property;
|
||||
object_class->dispose = st_clipboard_dispose;
|
||||
@ -197,7 +192,7 @@ st_clipboard_init (StClipboard *self)
|
||||
Display *dpy;
|
||||
StClipboardPrivate *priv;
|
||||
|
||||
priv = self->priv = CLIPBOARD_PRIVATE (self);
|
||||
priv = self->priv = st_clipboard_get_instance_private (self);
|
||||
|
||||
gdk_display = gdk_display_get_default ();
|
||||
dpy = GDK_DISPLAY_XDISPLAY (gdk_display);
|
||||
|
@ -29,29 +29,9 @@
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define ST_TYPE_CLIPBOARD st_clipboard_get_type()
|
||||
|
||||
#define ST_CLIPBOARD(obj) \
|
||||
(G_TYPE_CHECK_INSTANCE_CAST ((obj), \
|
||||
ST_TYPE_CLIPBOARD, StClipboard))
|
||||
|
||||
#define ST_CLIPBOARD_CLASS(klass) \
|
||||
(G_TYPE_CHECK_CLASS_CAST ((klass), \
|
||||
ST_TYPE_CLIPBOARD, StClipboardClass))
|
||||
|
||||
#define ST_IS_CLIPBOARD(obj) \
|
||||
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
|
||||
ST_TYPE_CLIPBOARD))
|
||||
|
||||
#define ST_IS_CLIPBOARD_CLASS(klass) \
|
||||
(G_TYPE_CHECK_CLASS_TYPE ((klass), \
|
||||
ST_TYPE_CLIPBOARD))
|
||||
|
||||
#define ST_CLIPBOARD_GET_CLASS(obj) \
|
||||
(G_TYPE_INSTANCE_GET_CLASS ((obj), \
|
||||
ST_TYPE_CLIPBOARD, StClipboardClass))
|
||||
G_DECLARE_FINAL_TYPE (StClipboard, st_clipboard, ST, CLIPBOARD, GObject)
|
||||
|
||||
typedef struct _StClipboard StClipboard;
|
||||
typedef struct _StClipboardClass StClipboardClass;
|
||||
typedef struct _StClipboardPrivate StClipboardPrivate;
|
||||
|
||||
/**
|
||||
@ -67,11 +47,6 @@ struct _StClipboard
|
||||
StClipboardPrivate *priv;
|
||||
};
|
||||
|
||||
struct _StClipboardClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
ST_CLIPBOARD_TYPE_PRIMARY,
|
||||
ST_CLIPBOARD_TYPE_CLIPBOARD
|
||||
@ -89,8 +64,6 @@ typedef void (*StClipboardCallbackFunc) (StClipboard *clipboard,
|
||||
const gchar *text,
|
||||
gpointer user_data);
|
||||
|
||||
GType st_clipboard_get_type (void);
|
||||
|
||||
StClipboard* st_clipboard_get_default (void);
|
||||
|
||||
void st_clipboard_get_text (StClipboard *clipboard,
|
||||
|
@ -36,16 +36,14 @@
|
||||
|
||||
#include <cairo.h>
|
||||
|
||||
G_DEFINE_TYPE(StDrawingArea, st_drawing_area, ST_TYPE_WIDGET);
|
||||
|
||||
typedef struct _StDrawingAreaPrivate StDrawingAreaPrivate;
|
||||
struct _StDrawingAreaPrivate {
|
||||
CoglTexture *texture;
|
||||
CoglPipeline *pipeline;
|
||||
cairo_t *context;
|
||||
guint needs_repaint : 1;
|
||||
guint in_repaint : 1;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (StDrawingArea, st_drawing_area, ST_TYPE_WIDGET);
|
||||
|
||||
/* Signals */
|
||||
enum
|
||||
{
|
||||
@ -55,124 +53,61 @@ enum
|
||||
|
||||
static guint st_drawing_area_signals [LAST_SIGNAL] = { 0 };
|
||||
|
||||
static void
|
||||
st_drawing_area_dispose (GObject *object)
|
||||
static gboolean
|
||||
draw_content (ClutterCanvas *canvas,
|
||||
cairo_t *cr,
|
||||
int width,
|
||||
int height,
|
||||
gpointer user_data)
|
||||
{
|
||||
StDrawingArea *area = ST_DRAWING_AREA (object);
|
||||
StDrawingAreaPrivate *priv = area->priv;
|
||||
StDrawingArea *area = ST_DRAWING_AREA (user_data);
|
||||
StDrawingAreaPrivate *priv = st_drawing_area_get_instance_private (area);
|
||||
|
||||
g_clear_pointer (&priv->pipeline, cogl_object_unref);
|
||||
g_clear_pointer (&priv->texture, cogl_object_unref);
|
||||
priv->context = cr;
|
||||
priv->in_repaint = TRUE;
|
||||
|
||||
G_OBJECT_CLASS (st_drawing_area_parent_class)->dispose (object);
|
||||
clutter_cairo_clear (cr);
|
||||
g_signal_emit (area, st_drawing_area_signals[REPAINT], 0);
|
||||
|
||||
priv->context = NULL;
|
||||
priv->in_repaint = FALSE;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
st_drawing_area_paint (ClutterActor *self)
|
||||
st_drawing_area_allocate (ClutterActor *self,
|
||||
const ClutterActorBox *box,
|
||||
ClutterAllocationFlags flags)
|
||||
{
|
||||
StDrawingArea *area = ST_DRAWING_AREA (self);
|
||||
StDrawingAreaPrivate *priv = area->priv;
|
||||
StThemeNode *theme_node = st_widget_get_theme_node (ST_WIDGET (self));
|
||||
ClutterActorBox allocation_box;
|
||||
ClutterContent *content = clutter_actor_get_content (self);
|
||||
ClutterActorBox content_box;
|
||||
int width, height;
|
||||
|
||||
(CLUTTER_ACTOR_CLASS (st_drawing_area_parent_class))->paint (self);
|
||||
|
||||
clutter_actor_get_allocation_box (self, &allocation_box);
|
||||
st_theme_node_get_content_box (theme_node, &allocation_box, &content_box);
|
||||
clutter_actor_set_allocation (self, box, flags);
|
||||
st_theme_node_get_content_box (theme_node, box, &content_box);
|
||||
|
||||
width = (int)(0.5 + content_box.x2 - content_box.x1);
|
||||
height = (int)(0.5 + content_box.y2 - content_box.y1);
|
||||
|
||||
if (priv->pipeline == NULL)
|
||||
{
|
||||
CoglContext *ctx =
|
||||
clutter_backend_get_cogl_context (clutter_get_default_backend ());
|
||||
|
||||
priv->pipeline = cogl_pipeline_new (ctx);
|
||||
}
|
||||
|
||||
if (priv->texture != NULL &&
|
||||
(width != (int)cogl_texture_get_width (priv->texture) ||
|
||||
height != (int)cogl_texture_get_height (priv->texture)))
|
||||
{
|
||||
cogl_object_unref (priv->texture);
|
||||
priv->texture = NULL;
|
||||
}
|
||||
|
||||
if (width > 0 && height > 0)
|
||||
{
|
||||
if (priv->texture == NULL)
|
||||
{
|
||||
priv->texture = cogl_texture_new_with_size (width, height,
|
||||
COGL_TEXTURE_NONE,
|
||||
CLUTTER_CAIRO_FORMAT_ARGB32);
|
||||
priv->needs_repaint = TRUE;
|
||||
}
|
||||
|
||||
if (priv->needs_repaint)
|
||||
{
|
||||
cairo_surface_t *surface;
|
||||
|
||||
surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width, height);
|
||||
priv->context = cairo_create (surface);
|
||||
priv->in_repaint = TRUE;
|
||||
priv->needs_repaint = FALSE;
|
||||
|
||||
g_signal_emit ((GObject*)area, st_drawing_area_signals[REPAINT], 0);
|
||||
|
||||
priv->in_repaint = FALSE;
|
||||
cairo_destroy (priv->context);
|
||||
priv->context = NULL;
|
||||
|
||||
cogl_texture_set_region (priv->texture, 0, 0, 0, 0, width, height, width, height,
|
||||
CLUTTER_CAIRO_FORMAT_ARGB32,
|
||||
cairo_image_surface_get_stride (surface),
|
||||
cairo_image_surface_get_data (surface));
|
||||
|
||||
cairo_surface_destroy (surface);
|
||||
}
|
||||
}
|
||||
|
||||
cogl_pipeline_set_layer_texture (priv->pipeline, 0, priv->texture);
|
||||
|
||||
if (priv->texture)
|
||||
{
|
||||
CoglColor color;
|
||||
guint8 paint_opacity;
|
||||
CoglFramebuffer *fb = cogl_get_draw_framebuffer ();
|
||||
|
||||
paint_opacity = clutter_actor_get_paint_opacity (self);
|
||||
cogl_color_init_from_4ub (&color, paint_opacity, paint_opacity, paint_opacity, paint_opacity);
|
||||
cogl_pipeline_set_color (priv->pipeline, &color);
|
||||
|
||||
cogl_framebuffer_draw_rectangle (fb, priv->pipeline,
|
||||
content_box.x1, content_box.y1,
|
||||
content_box.x2, content_box.y2);
|
||||
}
|
||||
clutter_canvas_set_size (CLUTTER_CANVAS (content), width, height);
|
||||
}
|
||||
|
||||
static void
|
||||
st_drawing_area_style_changed (StWidget *self)
|
||||
{
|
||||
StDrawingArea *area = ST_DRAWING_AREA (self);
|
||||
StDrawingAreaPrivate *priv = area->priv;
|
||||
|
||||
(ST_WIDGET_CLASS (st_drawing_area_parent_class))->style_changed (self);
|
||||
|
||||
priv->needs_repaint = TRUE;
|
||||
st_drawing_area_queue_repaint (ST_DRAWING_AREA (self));
|
||||
}
|
||||
|
||||
static void
|
||||
st_drawing_area_class_init (StDrawingAreaClass *klass)
|
||||
{
|
||||
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
|
||||
ClutterActorClass *actor_class = CLUTTER_ACTOR_CLASS (klass);
|
||||
StWidgetClass *widget_class = ST_WIDGET_CLASS (klass);
|
||||
|
||||
gobject_class->dispose = st_drawing_area_dispose;
|
||||
actor_class->paint = st_drawing_area_paint;
|
||||
actor_class->allocate = st_drawing_area_allocate;
|
||||
widget_class->style_changed = st_drawing_area_style_changed;
|
||||
|
||||
st_drawing_area_signals[REPAINT] =
|
||||
@ -182,16 +117,15 @@ st_drawing_area_class_init (StDrawingAreaClass *klass)
|
||||
G_STRUCT_OFFSET (StDrawingAreaClass, repaint),
|
||||
NULL, NULL, NULL,
|
||||
G_TYPE_NONE, 0);
|
||||
|
||||
g_type_class_add_private (gobject_class, sizeof (StDrawingAreaPrivate));
|
||||
}
|
||||
|
||||
static void
|
||||
st_drawing_area_init (StDrawingArea *area)
|
||||
{
|
||||
area->priv = G_TYPE_INSTANCE_GET_PRIVATE (area, ST_TYPE_DRAWING_AREA,
|
||||
StDrawingAreaPrivate);
|
||||
area->priv->texture = NULL;
|
||||
ClutterContent *content = clutter_canvas_new ();
|
||||
g_signal_connect (content, "draw", G_CALLBACK (draw_content), area);
|
||||
clutter_actor_set_content (CLUTTER_ACTOR (area), content);
|
||||
g_object_unref (content);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -207,14 +141,9 @@ st_drawing_area_init (StDrawingArea *area)
|
||||
void
|
||||
st_drawing_area_queue_repaint (StDrawingArea *area)
|
||||
{
|
||||
StDrawingAreaPrivate *priv;
|
||||
|
||||
g_return_if_fail (ST_IS_DRAWING_AREA (area));
|
||||
|
||||
priv = area->priv;
|
||||
|
||||
priv->needs_repaint = TRUE;
|
||||
clutter_actor_queue_redraw (CLUTTER_ACTOR (area));
|
||||
clutter_content_invalidate (clutter_actor_get_content (CLUTTER_ACTOR (area)));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -229,10 +158,14 @@ st_drawing_area_queue_repaint (StDrawingArea *area)
|
||||
cairo_t *
|
||||
st_drawing_area_get_context (StDrawingArea *area)
|
||||
{
|
||||
g_return_val_if_fail (ST_IS_DRAWING_AREA (area), NULL);
|
||||
g_return_val_if_fail (area->priv->in_repaint, NULL);
|
||||
StDrawingAreaPrivate *priv;
|
||||
|
||||
return area->priv->context;
|
||||
g_return_val_if_fail (ST_IS_DRAWING_AREA (area), NULL);
|
||||
|
||||
priv = st_drawing_area_get_instance_private (area);
|
||||
g_return_val_if_fail (priv->in_repaint, NULL);
|
||||
|
||||
return priv->context;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -251,14 +184,19 @@ st_drawing_area_get_surface_size (StDrawingArea *area,
|
||||
guint *height)
|
||||
{
|
||||
StDrawingAreaPrivate *priv;
|
||||
ClutterContent *content;
|
||||
float w, h;
|
||||
|
||||
g_return_if_fail (ST_IS_DRAWING_AREA (area));
|
||||
g_return_if_fail (area->priv->in_repaint);
|
||||
|
||||
priv = area->priv;
|
||||
priv = st_drawing_area_get_instance_private (area);
|
||||
g_return_if_fail (priv->in_repaint);
|
||||
|
||||
content = clutter_actor_get_content (CLUTTER_ACTOR (area));
|
||||
clutter_content_get_preferred_size (content, &w, &h);
|
||||
|
||||
if (width)
|
||||
*width = cogl_texture_get_width (priv->texture);
|
||||
*width = (guint)w;
|
||||
if (height)
|
||||
*height = cogl_texture_get_height (priv->texture);
|
||||
*height = (guint)h;
|
||||
}
|
||||
|
@ -24,24 +24,9 @@
|
||||
#include "st-widget.h"
|
||||
#include <cairo.h>
|
||||
|
||||
#define ST_TYPE_DRAWING_AREA (st_drawing_area_get_type ())
|
||||
#define ST_DRAWING_AREA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ST_TYPE_DRAWING_AREA, StDrawingArea))
|
||||
#define ST_DRAWING_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ST_TYPE_DRAWING_AREA, StDrawingAreaClass))
|
||||
#define ST_IS_DRAWING_AREA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ST_TYPE_DRAWING_AREA))
|
||||
#define ST_IS_DRAWING_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ST_TYPE_DRAWING_AREA))
|
||||
#define ST_DRAWING_AREA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ST_TYPE_DRAWING_AREA, StDrawingAreaClass))
|
||||
|
||||
typedef struct _StDrawingArea StDrawingArea;
|
||||
typedef struct _StDrawingAreaClass StDrawingAreaClass;
|
||||
|
||||
typedef struct _StDrawingAreaPrivate StDrawingAreaPrivate;
|
||||
|
||||
struct _StDrawingArea
|
||||
{
|
||||
StWidget parent;
|
||||
|
||||
StDrawingAreaPrivate *priv;
|
||||
};
|
||||
#define ST_TYPE_DRAWING_AREA (st_drawing_area_get_type ())
|
||||
G_DECLARE_DERIVABLE_TYPE (StDrawingArea, st_drawing_area,
|
||||
ST, DRAWING_AREA, StWidget)
|
||||
|
||||
struct _StDrawingAreaClass
|
||||
{
|
||||
@ -50,8 +35,6 @@ struct _StDrawingAreaClass
|
||||
void (*repaint) (StDrawingArea *area);
|
||||
};
|
||||
|
||||
GType st_drawing_area_get_type (void) G_GNUC_CONST;
|
||||
|
||||
void st_drawing_area_queue_repaint (StDrawingArea *area);
|
||||
cairo_t *st_drawing_area_get_context (StDrawingArea *area);
|
||||
void st_drawing_area_get_surface_size (StDrawingArea *area,
|
||||
|
@ -87,10 +87,10 @@ enum
|
||||
LAST_SIGNAL
|
||||
};
|
||||
|
||||
#define ST_ENTRY_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), ST_TYPE_ENTRY, StEntryPrivate))
|
||||
#define ST_ENTRY_PRIV(x) ((StEntry *) x)->priv
|
||||
#define ST_ENTRY_PRIV(x) st_entry_get_instance_private ((StEntry *) x)
|
||||
|
||||
|
||||
typedef struct _StEntryPrivate StEntryPrivate;
|
||||
struct _StEntryPrivate
|
||||
{
|
||||
ClutterActor *entry;
|
||||
@ -108,7 +108,7 @@ struct _StEntryPrivate
|
||||
|
||||
static guint entry_signals[LAST_SIGNAL] = { 0, };
|
||||
|
||||
G_DEFINE_TYPE (StEntry, st_entry, ST_TYPE_WIDGET);
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (StEntry, st_entry, ST_TYPE_WIDGET);
|
||||
|
||||
static GType st_entry_accessible_get_type (void) G_GNUC_CONST;
|
||||
|
||||
@ -183,7 +183,8 @@ st_entry_get_property (GObject *gobject,
|
||||
static void
|
||||
show_capslock_feedback (StEntry *entry)
|
||||
{
|
||||
if (entry->priv->secondary_icon == NULL)
|
||||
StEntryPrivate *priv = ST_ENTRY_PRIV (entry);
|
||||
if (priv->secondary_icon == NULL)
|
||||
{
|
||||
ClutterActor *icon = g_object_new (ST_TYPE_ICON,
|
||||
"style-class", "capslock-warning",
|
||||
@ -191,17 +192,18 @@ show_capslock_feedback (StEntry *entry)
|
||||
NULL);
|
||||
|
||||
st_entry_set_secondary_icon (entry, icon);
|
||||
entry->priv->capslock_warning_shown = TRUE;
|
||||
priv->capslock_warning_shown = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
remove_capslock_feedback (StEntry *entry)
|
||||
{
|
||||
if (entry->priv->capslock_warning_shown)
|
||||
StEntryPrivate *priv = ST_ENTRY_PRIV (entry);
|
||||
if (priv->capslock_warning_shown)
|
||||
{
|
||||
st_entry_set_secondary_icon (entry, NULL);
|
||||
entry->priv->capslock_warning_shown = FALSE;
|
||||
priv->capslock_warning_shown = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
@ -210,8 +212,9 @@ keymap_state_changed (GdkKeymap *keymap,
|
||||
gpointer user_data)
|
||||
{
|
||||
StEntry *entry = ST_ENTRY (user_data);
|
||||
StEntryPrivate *priv = ST_ENTRY_PRIV (entry);
|
||||
|
||||
if (clutter_text_get_password_char (CLUTTER_TEXT (entry->priv->entry)) != 0)
|
||||
if (clutter_text_get_password_char (CLUTTER_TEXT (priv->entry)) != 0)
|
||||
{
|
||||
if (gdk_keymap_get_caps_lock_state (keymap))
|
||||
show_capslock_feedback (entry);
|
||||
@ -224,7 +227,7 @@ static void
|
||||
st_entry_dispose (GObject *object)
|
||||
{
|
||||
StEntry *entry = ST_ENTRY (object);
|
||||
StEntryPrivate *priv = entry->priv;
|
||||
StEntryPrivate *priv = ST_ENTRY_PRIV (entry);
|
||||
GdkKeymap *keymap;
|
||||
|
||||
if (priv->entry)
|
||||
@ -480,7 +483,7 @@ clutter_text_focus_in_cb (ClutterText *text,
|
||||
ClutterActor *actor)
|
||||
{
|
||||
StEntry *entry = ST_ENTRY (actor);
|
||||
StEntryPrivate *priv = entry->priv;
|
||||
StEntryPrivate *priv = ST_ENTRY_PRIV (entry);
|
||||
GdkKeymap *keymap;
|
||||
|
||||
/* remove the hint if visible */
|
||||
@ -506,7 +509,7 @@ clutter_text_focus_out_cb (ClutterText *text,
|
||||
ClutterActor *actor)
|
||||
{
|
||||
StEntry *entry = ST_ENTRY (actor);
|
||||
StEntryPrivate *priv = entry->priv;
|
||||
StEntryPrivate *priv = ST_ENTRY_PRIV (entry);
|
||||
GdkKeymap *keymap;
|
||||
|
||||
st_widget_remove_style_pseudo_class (ST_WIDGET (actor), "focus");
|
||||
@ -532,8 +535,9 @@ clutter_text_password_char_cb (GObject *object,
|
||||
gpointer user_data)
|
||||
{
|
||||
StEntry *entry = ST_ENTRY (user_data);
|
||||
StEntryPrivate *priv = ST_ENTRY_PRIV (entry);
|
||||
|
||||
if (clutter_text_get_password_char (CLUTTER_TEXT (entry->priv->entry)) == 0)
|
||||
if (clutter_text_get_password_char (CLUTTER_TEXT (priv->entry)) == 0)
|
||||
remove_capslock_feedback (entry);
|
||||
}
|
||||
|
||||
@ -542,7 +546,8 @@ st_entry_clipboard_callback (StClipboard *clipboard,
|
||||
const gchar *text,
|
||||
gpointer data)
|
||||
{
|
||||
ClutterText *ctext = (ClutterText*)((StEntry *) data)->priv->entry;
|
||||
StEntryPrivate *priv = ST_ENTRY_PRIV (data);
|
||||
ClutterText *ctext = (ClutterText*)priv->entry;
|
||||
gint cursor_pos;
|
||||
|
||||
if (!text)
|
||||
@ -721,14 +726,15 @@ st_entry_set_cursor (StEntry *entry,
|
||||
{
|
||||
cursor_func (entry, use_ibeam, cursor_func_data);
|
||||
|
||||
entry->priv->has_ibeam = use_ibeam;
|
||||
((StEntryPrivate *)ST_ENTRY_PRIV (entry))->has_ibeam = use_ibeam;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
st_entry_enter_event (ClutterActor *actor,
|
||||
ClutterCrossingEvent *event)
|
||||
{
|
||||
if (event->source == ST_ENTRY (actor)->priv->entry && event->related != NULL)
|
||||
StEntryPrivate *priv = ST_ENTRY_PRIV (actor);
|
||||
if (event->source == priv->entry && event->related != NULL)
|
||||
st_entry_set_cursor (ST_ENTRY (actor), TRUE);
|
||||
|
||||
return CLUTTER_ACTOR_CLASS (st_entry_parent_class)->enter_event (actor, event);
|
||||
@ -738,7 +744,8 @@ static gboolean
|
||||
st_entry_leave_event (ClutterActor *actor,
|
||||
ClutterCrossingEvent *event)
|
||||
{
|
||||
if (event->source == ST_ENTRY (actor)->priv->entry && event->related != NULL)
|
||||
StEntryPrivate *priv = ST_ENTRY_PRIV (actor);
|
||||
if (event->source == priv->entry && event->related != NULL)
|
||||
st_entry_set_cursor (ST_ENTRY (actor), FALSE);
|
||||
|
||||
return CLUTTER_ACTOR_CLASS (st_entry_parent_class)->leave_event (actor, event);
|
||||
@ -747,7 +754,8 @@ st_entry_leave_event (ClutterActor *actor,
|
||||
static void
|
||||
st_entry_unmap (ClutterActor *actor)
|
||||
{
|
||||
if (ST_ENTRY (actor)->priv->has_ibeam)
|
||||
StEntryPrivate *priv = ST_ENTRY_PRIV (actor);
|
||||
if (priv->has_ibeam)
|
||||
st_entry_set_cursor (ST_ENTRY (actor), FALSE);
|
||||
|
||||
CLUTTER_ACTOR_CLASS (st_entry_parent_class)->unmap (actor);
|
||||
@ -761,8 +769,6 @@ st_entry_class_init (StEntryClass *klass)
|
||||
StWidgetClass *widget_class = ST_WIDGET_CLASS (klass);
|
||||
GParamSpec *pspec;
|
||||
|
||||
g_type_class_add_private (klass, sizeof (StEntryPrivate));
|
||||
|
||||
gobject_class->set_property = st_entry_set_property;
|
||||
gobject_class->get_property = st_entry_get_property;
|
||||
gobject_class->finalize = st_entry_finalize;
|
||||
@ -858,7 +864,7 @@ st_entry_init (StEntry *entry)
|
||||
{
|
||||
StEntryPrivate *priv;
|
||||
|
||||
priv = entry->priv = ST_ENTRY_GET_PRIVATE (entry);
|
||||
priv = st_entry_get_instance_private (entry);
|
||||
|
||||
priv->entry = g_object_new (ST_TYPE_IM_TEXT,
|
||||
"line-alignment", PANGO_ALIGN_LEFT,
|
||||
@ -920,12 +926,15 @@ st_entry_new (const gchar *text)
|
||||
const gchar *
|
||||
st_entry_get_text (StEntry *entry)
|
||||
{
|
||||
StEntryPrivate *priv;
|
||||
|
||||
g_return_val_if_fail (ST_IS_ENTRY (entry), NULL);
|
||||
|
||||
if (entry->priv->hint_visible)
|
||||
priv = st_entry_get_instance_private (entry);
|
||||
if (priv->hint_visible)
|
||||
return "";
|
||||
else
|
||||
return clutter_text_get_text (CLUTTER_TEXT (entry->priv->entry));
|
||||
return clutter_text_get_text (CLUTTER_TEXT (priv->entry));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -943,7 +952,7 @@ st_entry_set_text (StEntry *entry,
|
||||
|
||||
g_return_if_fail (ST_IS_ENTRY (entry));
|
||||
|
||||
priv = entry->priv;
|
||||
priv = st_entry_get_instance_private (entry);
|
||||
|
||||
/* set a hint if we are blanking the entry */
|
||||
if (priv->hint
|
||||
@ -980,7 +989,7 @@ st_entry_get_clutter_text (StEntry *entry)
|
||||
{
|
||||
g_return_val_if_fail (ST_ENTRY (entry), NULL);
|
||||
|
||||
return entry->priv->entry;
|
||||
return ((StEntryPrivate *)ST_ENTRY_PRIV (entry))->entry;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1000,7 +1009,7 @@ st_entry_set_hint_text (StEntry *entry,
|
||||
|
||||
g_return_if_fail (ST_IS_ENTRY (entry));
|
||||
|
||||
priv = entry->priv;
|
||||
priv = st_entry_get_instance_private (entry);
|
||||
|
||||
g_free (priv->hint);
|
||||
|
||||
@ -1030,7 +1039,7 @@ st_entry_get_hint_text (StEntry *entry)
|
||||
{
|
||||
g_return_val_if_fail (ST_IS_ENTRY (entry), NULL);
|
||||
|
||||
return entry->priv->hint;
|
||||
return ((StEntryPrivate *)ST_ENTRY_PRIV (entry))->hint;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1046,11 +1055,13 @@ void
|
||||
st_entry_set_input_purpose (StEntry *entry,
|
||||
GtkInputPurpose purpose)
|
||||
{
|
||||
StEntryPrivate *priv;
|
||||
StIMText *imtext;
|
||||
|
||||
g_return_if_fail (ST_IS_ENTRY (entry));
|
||||
|
||||
imtext = ST_IM_TEXT (entry->priv->entry);
|
||||
priv = st_entry_get_instance_private (entry);
|
||||
imtext = ST_IM_TEXT (priv->entry);
|
||||
|
||||
if (st_im_text_get_input_purpose (imtext) != purpose)
|
||||
{
|
||||
@ -1069,9 +1080,12 @@ st_entry_set_input_purpose (StEntry *entry,
|
||||
GtkInputPurpose
|
||||
st_entry_get_input_purpose (StEntry *entry)
|
||||
{
|
||||
StEntryPrivate *priv;
|
||||
|
||||
g_return_val_if_fail (ST_IS_ENTRY (entry), GTK_INPUT_PURPOSE_FREE_FORM);
|
||||
|
||||
return st_im_text_get_input_purpose (ST_IM_TEXT (entry->priv->entry));
|
||||
priv = st_entry_get_instance_private (entry);
|
||||
return st_im_text_get_input_purpose (ST_IM_TEXT (priv->entry));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1086,11 +1100,13 @@ void
|
||||
st_entry_set_input_hints (StEntry *entry,
|
||||
GtkInputHints hints)
|
||||
{
|
||||
StEntryPrivate *priv;
|
||||
StIMText *imtext;
|
||||
|
||||
g_return_if_fail (ST_IS_ENTRY (entry));
|
||||
|
||||
imtext = ST_IM_TEXT (entry->priv->entry);
|
||||
priv = st_entry_get_instance_private (entry);
|
||||
imtext = ST_IM_TEXT (priv->entry);
|
||||
|
||||
if (st_im_text_get_input_hints (imtext) != hints)
|
||||
{
|
||||
@ -1109,9 +1125,12 @@ st_entry_set_input_hints (StEntry *entry,
|
||||
GtkInputHints
|
||||
st_entry_get_input_hints (StEntry *entry)
|
||||
{
|
||||
StEntryPrivate *priv;
|
||||
|
||||
g_return_val_if_fail (ST_IS_ENTRY (entry), GTK_INPUT_HINT_NONE);
|
||||
|
||||
return st_im_text_get_input_hints (ST_IM_TEXT (entry->priv->entry));
|
||||
priv = st_entry_get_instance_private (entry);
|
||||
return st_im_text_get_input_hints (ST_IM_TEXT (priv->entry));
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@ -1119,7 +1138,7 @@ _st_entry_icon_press_cb (ClutterActor *actor,
|
||||
ClutterButtonEvent *event,
|
||||
StEntry *entry)
|
||||
{
|
||||
StEntryPrivate *priv = entry->priv;
|
||||
StEntryPrivate *priv = ST_ENTRY_PRIV (actor);
|
||||
|
||||
if (actor == priv->primary_icon)
|
||||
g_signal_emit (entry, entry_signals[PRIMARY_ICON_CLICKED], 0);
|
||||
@ -1171,7 +1190,7 @@ st_entry_set_primary_icon (StEntry *entry,
|
||||
|
||||
g_return_if_fail (ST_IS_ENTRY (entry));
|
||||
|
||||
priv = entry->priv;
|
||||
priv = st_entry_get_instance_private (entry);
|
||||
|
||||
_st_entry_set_icon (entry, &priv->primary_icon, icon);
|
||||
}
|
||||
@ -1191,7 +1210,7 @@ st_entry_set_secondary_icon (StEntry *entry,
|
||||
|
||||
g_return_if_fail (ST_IS_ENTRY (entry));
|
||||
|
||||
priv = entry->priv;
|
||||
priv = st_entry_get_instance_private (entry);
|
||||
|
||||
_st_entry_set_icon (entry, &priv->secondary_icon, icon);
|
||||
}
|
||||
@ -1242,6 +1261,7 @@ static gint
|
||||
st_entry_accessible_get_n_children (AtkObject *obj)
|
||||
{
|
||||
StEntry *entry = NULL;
|
||||
StEntryPrivate *priv;
|
||||
|
||||
g_return_val_if_fail (ST_IS_ENTRY_ACCESSIBLE (obj), 0);
|
||||
|
||||
@ -1250,7 +1270,8 @@ st_entry_accessible_get_n_children (AtkObject *obj)
|
||||
if (entry == NULL)
|
||||
return 0;
|
||||
|
||||
if (entry->priv->entry == NULL)
|
||||
priv = st_entry_get_instance_private (entry);
|
||||
if (priv->entry == NULL)
|
||||
return 0;
|
||||
else
|
||||
return 1;
|
||||
@ -1261,6 +1282,7 @@ st_entry_accessible_ref_child (AtkObject *obj,
|
||||
gint i)
|
||||
{
|
||||
StEntry *entry = NULL;
|
||||
StEntryPrivate *priv;
|
||||
AtkObject *result = NULL;
|
||||
|
||||
g_return_val_if_fail (ST_IS_ENTRY_ACCESSIBLE (obj), NULL);
|
||||
@ -1271,10 +1293,11 @@ st_entry_accessible_ref_child (AtkObject *obj,
|
||||
if (entry == NULL)
|
||||
return NULL;
|
||||
|
||||
if (entry->priv->entry == NULL)
|
||||
priv = st_entry_get_instance_private (entry);
|
||||
if (priv->entry == NULL)
|
||||
return NULL;
|
||||
|
||||
result = clutter_actor_get_accessible (entry->priv->entry);
|
||||
result = clutter_actor_get_accessible (priv->entry);
|
||||
g_object_ref (result);
|
||||
|
||||
return result;
|
||||
|
@ -28,30 +28,8 @@ G_BEGIN_DECLS
|
||||
|
||||
#include <st/st-widget.h>
|
||||
|
||||
#define ST_TYPE_ENTRY (st_entry_get_type ())
|
||||
#define ST_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ST_TYPE_ENTRY, StEntry))
|
||||
#define ST_IS_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ST_TYPE_ENTRY))
|
||||
#define ST_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ST_TYPE_ENTRY, StEntryClass))
|
||||
#define ST_IS_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ST_TYPE_ENTRY))
|
||||
#define ST_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ST_TYPE_ENTRY, StEntryClass))
|
||||
|
||||
typedef struct _StEntry StEntry;
|
||||
typedef struct _StEntryPrivate StEntryPrivate;
|
||||
typedef struct _StEntryClass StEntryClass;
|
||||
|
||||
/**
|
||||
* StEntry:
|
||||
*
|
||||
* The contents of this structure is private and should only be accessed using
|
||||
* the provided API.
|
||||
*/
|
||||
struct _StEntry
|
||||
{
|
||||
/*< private >*/
|
||||
StWidget parent_instance;
|
||||
|
||||
StEntryPrivate *priv;
|
||||
};
|
||||
#define ST_TYPE_ENTRY (st_entry_get_type ())
|
||||
G_DECLARE_DERIVABLE_TYPE (StEntry, st_entry, ST, ENTRY, StWidget)
|
||||
|
||||
struct _StEntryClass
|
||||
{
|
||||
@ -62,8 +40,6 @@ struct _StEntryClass
|
||||
void (*secondary_icon_clicked) (StEntry *entry);
|
||||
};
|
||||
|
||||
GType st_entry_get_type (void) G_GNUC_CONST;
|
||||
|
||||
StWidget *st_entry_new (const gchar *text);
|
||||
const gchar *st_entry_get_text (StEntry *entry);
|
||||
void st_entry_set_text (StEntry *entry,
|
||||
|
@ -33,14 +33,12 @@
|
||||
|
||||
#include "st-focus-manager.h"
|
||||
|
||||
#define ST_FOCUS_MANAGER_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), ST_TYPE_FOCUS_MANAGER, StFocusManagerPrivate))
|
||||
|
||||
struct _StFocusManagerPrivate
|
||||
{
|
||||
GHashTable *groups;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE (StFocusManager, st_focus_manager, G_TYPE_OBJECT)
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (StFocusManager, st_focus_manager, G_TYPE_OBJECT)
|
||||
|
||||
static void
|
||||
st_focus_manager_dispose (GObject *object)
|
||||
@ -61,15 +59,13 @@ st_focus_manager_class_init (StFocusManagerClass *klass)
|
||||
{
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
g_type_class_add_private (klass, sizeof (StFocusManagerPrivate));
|
||||
|
||||
object_class->dispose = st_focus_manager_dispose;
|
||||
}
|
||||
|
||||
static void
|
||||
st_focus_manager_init (StFocusManager *manager)
|
||||
{
|
||||
manager->priv = ST_FOCUS_MANAGER_GET_PRIVATE (manager);
|
||||
manager->priv = st_focus_manager_get_instance_private (manager);
|
||||
manager->priv->groups = g_hash_table_new (NULL, NULL);
|
||||
}
|
||||
|
||||
|
@ -31,15 +31,10 @@
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define ST_TYPE_FOCUS_MANAGER (st_focus_manager_get_type ())
|
||||
#define ST_FOCUS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ST_TYPE_FOCUS_MANAGER, StFocusManager))
|
||||
#define ST_IS_FOCUS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ST_TYPE_FOCUS_MANAGER))
|
||||
#define ST_FOCUS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ST_TYPE_FOCUS_MANAGER, StFocusManagerClass))
|
||||
#define ST_IS_FOCUS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ST_TYPE_FOCUS_MANAGER))
|
||||
#define ST_FOCUS_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ST_TYPE_FOCUS_MANAGER, StFocusManagerClass))
|
||||
G_DECLARE_FINAL_TYPE (StFocusManager, st_focus_manager, ST, FOCUS_MANAGER, GObject)
|
||||
|
||||
typedef struct _StFocusManager StFocusManager;
|
||||
typedef struct _StFocusManagerPrivate StFocusManagerPrivate;
|
||||
typedef struct _StFocusManagerClass StFocusManagerClass;
|
||||
|
||||
/**
|
||||
* StFocusManager:
|
||||
@ -54,19 +49,6 @@ struct _StFocusManager
|
||||
StFocusManagerPrivate *priv;
|
||||
};
|
||||
|
||||
/**
|
||||
* StFocusManagerClass:
|
||||
*
|
||||
* The #StFocusManagerClass struct contains only private data
|
||||
*/
|
||||
struct _StFocusManagerClass
|
||||
{
|
||||
/*< private >*/
|
||||
GObjectClass parent_class;
|
||||
};
|
||||
|
||||
GType st_focus_manager_get_type (void) G_GNUC_CONST;
|
||||
|
||||
StFocusManager *st_focus_manager_get_for_stage (ClutterStage *stage);
|
||||
|
||||
void st_focus_manager_add_group (StFocusManager *manager,
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user