Compare commits
8 Commits
wip/ptomat
...
3.22.1
Author | SHA1 | Date | |
---|---|---|---|
6ebabd50c6 | |||
0c22a21a24 | |||
70a0c4211c | |||
a21af541c4 | |||
e07ba91486 | |||
a22e9ce9cd | |||
d4ce51b1b7 | |||
830005069c |
15
NEWS
15
NEWS
@ -1,3 +1,18 @@
|
|||||||
|
3.22.1
|
||||||
|
======
|
||||||
|
* Fix hidden network indicator on startup [Florian; #772249]
|
||||||
|
* Fix order of windows with modal dialogs in window switcher [Florian; #747153]
|
||||||
|
* Fix feedback loop between StClipboard and X11 bridge [Carlos; #760745]
|
||||||
|
* Reliably match windows from Flatpak apps [Florian; #772615]
|
||||||
|
* Misc. bug fixes [Philip; #742249]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Philip Chimento, Carlos Garnacho, Florian Müllner
|
||||||
|
|
||||||
|
Translations:
|
||||||
|
Inaki Larranaga Murgoitio [eu], Khaled Hosny [ar], BM [uz@cyrillic],
|
||||||
|
Milo Casagrande [it], Cheng-Chia Tseng [zh_TW], gogo [hr]
|
||||||
|
|
||||||
3.22.0
|
3.22.0
|
||||||
======
|
======
|
||||||
* Misc. bug fixes [Florian, Rui; #771391, #771536] #771656]
|
* Misc. bug fixes [Florian, Rui; #771391, #771536] #771656]
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
AC_PREREQ(2.63)
|
AC_PREREQ(2.63)
|
||||||
AC_INIT([gnome-shell],[3.22.0],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
|
AC_INIT([gnome-shell],[3.22.1],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
|
||||||
AX_IS_RELEASE([git-directory])
|
AX_IS_RELEASE([git-directory])
|
||||||
|
|
||||||
AC_CONFIG_HEADERS([config.h])
|
AC_CONFIG_HEADERS([config.h])
|
||||||
@ -78,7 +78,7 @@ AC_MSG_RESULT($enable_systemd)
|
|||||||
CLUTTER_MIN_VERSION=1.21.5
|
CLUTTER_MIN_VERSION=1.21.5
|
||||||
GOBJECT_INTROSPECTION_MIN_VERSION=1.49.1
|
GOBJECT_INTROSPECTION_MIN_VERSION=1.49.1
|
||||||
GJS_MIN_VERSION=1.39.0
|
GJS_MIN_VERSION=1.39.0
|
||||||
MUTTER_MIN_VERSION=3.22.0
|
MUTTER_MIN_VERSION=3.22.1
|
||||||
GTK_MIN_VERSION=3.15.0
|
GTK_MIN_VERSION=3.15.0
|
||||||
GIO_MIN_VERSION=2.45.3
|
GIO_MIN_VERSION=2.45.3
|
||||||
LIBECAL_MIN_VERSION=3.5.3
|
LIBECAL_MIN_VERSION=3.5.3
|
||||||
|
@ -46,6 +46,19 @@ function _createWindowClone(window, size) {
|
|||||||
y_expand: true });
|
y_expand: true });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function getWindows(workspace) {
|
||||||
|
// We ignore skip-taskbar windows in switchers, but if they are attached
|
||||||
|
// to their parent, their position in the MRU list may be more appropriate
|
||||||
|
// than the parent; so start with the complete list ...
|
||||||
|
let windows = global.display.get_tab_list(Meta.TabList.NORMAL_ALL,
|
||||||
|
workspace);
|
||||||
|
// ... map windows to their parent where appropriate ...
|
||||||
|
return windows.map(w => {
|
||||||
|
return w.is_attached_dialog() ? w.get_transient_for() : w;
|
||||||
|
// ... and filter out skip-taskbar windows and duplicates
|
||||||
|
}).filter((w, i, a) => !w.skip_taskbar && a.indexOf(w) == i);
|
||||||
|
}
|
||||||
|
|
||||||
const AppSwitcherPopup = new Lang.Class({
|
const AppSwitcherPopup = new Lang.Class({
|
||||||
Name: 'AppSwitcherPopup',
|
Name: 'AppSwitcherPopup',
|
||||||
Extends: SwitcherPopup.SwitcherPopup,
|
Extends: SwitcherPopup.SwitcherPopup,
|
||||||
@ -517,7 +530,7 @@ const WindowSwitcherPopup = new Lang.Class({
|
|||||||
|
|
||||||
_getWindowList: function() {
|
_getWindowList: function() {
|
||||||
let workspace = this._settings.get_boolean('current-workspace-only') ? global.screen.get_active_workspace() : null;
|
let workspace = this._settings.get_boolean('current-workspace-only') ? global.screen.get_active_workspace() : null;
|
||||||
return global.display.get_tab_list(Meta.TabList.NORMAL, workspace);
|
return getWindows(workspace);
|
||||||
},
|
},
|
||||||
|
|
||||||
_keyPressHandler: function(keysym, action) {
|
_keyPressHandler: function(keysym, action) {
|
||||||
@ -555,7 +568,7 @@ const WindowCyclerPopup = new Lang.Class({
|
|||||||
|
|
||||||
_getWindows: function() {
|
_getWindows: function() {
|
||||||
let workspace = this._settings.get_boolean('current-workspace-only') ? global.screen.get_active_workspace() : null;
|
let workspace = this._settings.get_boolean('current-workspace-only') ? global.screen.get_active_workspace() : null;
|
||||||
return global.display.get_tab_list(Meta.TabList.NORMAL, workspace);
|
return getWindows(workspace);
|
||||||
},
|
},
|
||||||
|
|
||||||
_keyPressHandler: function(keysym, action) {
|
_keyPressHandler: function(keysym, action) {
|
||||||
|
@ -29,6 +29,7 @@ gl
|
|||||||
gu
|
gu
|
||||||
he
|
he
|
||||||
hi
|
hi
|
||||||
|
hr
|
||||||
hu
|
hu
|
||||||
ia
|
ia
|
||||||
id
|
id
|
||||||
|
30
po/it.po
30
po/it.po
@ -11,8 +11,8 @@ msgstr ""
|
|||||||
"Project-Id-Version: gnome-shell\n"
|
"Project-Id-Version: gnome-shell\n"
|
||||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||||
"shell&keywords=I18N+L10N&component=general\n"
|
"shell&keywords=I18N+L10N&component=general\n"
|
||||||
"POT-Creation-Date: 2016-09-07 09:41+0000\n"
|
"POT-Creation-Date: 2016-10-03 09:39+0000\n"
|
||||||
"PO-Revision-Date: 2016-10-03 11:38+0200\n"
|
"PO-Revision-Date: 2016-10-06 13:48+0200\n"
|
||||||
"Last-Translator: Milo Casagrande <milo@milo.name>\n"
|
"Last-Translator: Milo Casagrande <milo@milo.name>\n"
|
||||||
"Language-Team: Italiano <tp@lists.linux.it>\n"
|
"Language-Team: Italiano <tp@lists.linux.it>\n"
|
||||||
"Language: it\n"
|
"Language: it\n"
|
||||||
@ -374,7 +374,7 @@ msgstr "Non elencato?"
|
|||||||
|
|
||||||
#. Translators: this message is shown below the username entry field
|
#. 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:854
|
#: js/gdm/loginDialog.js:859
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "(e.g., user or %s)"
|
msgid "(e.g., user or %s)"
|
||||||
msgstr "(p.e. utente o %s)"
|
msgstr "(p.e. utente o %s)"
|
||||||
@ -382,12 +382,12 @@ msgstr "(p.e. utente o %s)"
|
|||||||
#. TTLS and PEAP are actually much more complicated, but this complication
|
#. TTLS and PEAP are actually much more complicated, but this complication
|
||||||
#. is not visible here since we only care about phase2 authentication
|
#. 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:859 js/ui/components/networkAgent.js:271
|
#: js/gdm/loginDialog.js:864 js/ui/components/networkAgent.js:271
|
||||||
#: js/ui/components/networkAgent.js:289
|
#: js/ui/components/networkAgent.js:289
|
||||||
msgid "Username: "
|
msgid "Username: "
|
||||||
msgstr "Nome utente: "
|
msgstr "Nome utente: "
|
||||||
|
|
||||||
#: js/gdm/loginDialog.js:1196
|
#: js/gdm/loginDialog.js:1201
|
||||||
msgid "Login Window"
|
msgid "Login Window"
|
||||||
msgstr "Finestra di accesso"
|
msgstr "Finestra di accesso"
|
||||||
|
|
||||||
@ -778,7 +778,7 @@ msgstr "Password rete mobile"
|
|||||||
msgid "A password is required to connect to “%s”."
|
msgid "A password is required to connect to “%s”."
|
||||||
msgstr "È richiesta una password per connettersi a «%s»."
|
msgstr "È richiesta una password per connettersi a «%s»."
|
||||||
|
|
||||||
#: js/ui/components/networkAgent.js:647 js/ui/status/network.js:1658
|
#: js/ui/components/networkAgent.js:647 js/ui/status/network.js:1660
|
||||||
msgid "Network Manager"
|
msgid "Network Manager"
|
||||||
msgstr "Gestore reti"
|
msgstr "Gestore reti"
|
||||||
|
|
||||||
@ -804,7 +804,7 @@ msgstr "Errore nell'autenticazione. Provare di nuovo."
|
|||||||
|
|
||||||
#. Translators: this is the other person changing their old IM name to their new
|
#. Translators: this is the other person changing their old IM name to their new
|
||||||
#. IM name.
|
#. IM name.
|
||||||
#: js/ui/components/telepathyClient.js:760
|
#: js/ui/components/telepathyClient.js:765
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s is now known as %s"
|
msgid "%s is now known as %s"
|
||||||
msgstr "%s ha cambiato nome in %s"
|
msgstr "%s ha cambiato nome in %s"
|
||||||
@ -1085,9 +1085,10 @@ msgstr "Artista sconosciuto"
|
|||||||
msgid "Unknown title"
|
msgid "Unknown title"
|
||||||
msgstr "Titolo sconosciuto"
|
msgstr "Titolo sconosciuto"
|
||||||
|
|
||||||
|
# (ndt) non molto chiaro il suo utilizzo, arriva dal un file che implementa la specifica MPRIS.
|
||||||
#: js/ui/mpris.js:217
|
#: js/ui/mpris.js:217
|
||||||
msgid "Media"
|
msgid "Media"
|
||||||
msgstr "Supporto"
|
msgstr "Controlli"
|
||||||
|
|
||||||
#: js/ui/overview.js:84
|
#: js/ui/overview.js:84
|
||||||
msgid "Undo"
|
msgid "Undo"
|
||||||
@ -1524,11 +1525,11 @@ msgstr "VPN"
|
|||||||
msgid "VPN Off"
|
msgid "VPN Off"
|
||||||
msgstr "VPN spento"
|
msgstr "VPN spento"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1697
|
#: js/ui/status/network.js:1699
|
||||||
msgid "Connection failed"
|
msgid "Connection failed"
|
||||||
msgstr "Connessione non riuscita"
|
msgstr "Connessione non riuscita"
|
||||||
|
|
||||||
#: js/ui/status/network.js:1698
|
#: js/ui/status/network.js:1700
|
||||||
msgid "Activation of network connection failed"
|
msgid "Activation of network connection failed"
|
||||||
msgstr "Attivazione della connessione di rete non riuscita"
|
msgstr "Attivazione della connessione di rete non riuscita"
|
||||||
|
|
||||||
@ -1786,12 +1787,3 @@ msgstr "La password non può essere vuota"
|
|||||||
#: src/shell-polkit-authentication-agent.c:353
|
#: src/shell-polkit-authentication-agent.c:353
|
||||||
msgid "Authentication dialog was dismissed by the user"
|
msgid "Authentication dialog was dismissed by the user"
|
||||||
msgstr "Il dialogo di autenticazione è stato annullato dall'utente"
|
msgstr "Il dialogo di autenticazione è stato annullato dall'utente"
|
||||||
|
|
||||||
#~ msgid "Show the week date in the calendar"
|
|
||||||
#~ msgstr "Mostra il numero della settimana nel calendario"
|
|
||||||
|
|
||||||
#~ msgid "If true, display the ISO week date in the calendar."
|
|
||||||
#~ msgstr "Se VERO, visualizza il giorno della settimana ISO nel calendario."
|
|
||||||
|
|
||||||
#~ msgid "Use as Internet connection"
|
|
||||||
#~ msgstr "Usa come connessione a Internet"
|
|
||||||
|
800
po/zh_TW.po
800
po/zh_TW.po
File diff suppressed because it is too large
Load Diff
@ -202,9 +202,39 @@ get_app_from_window_wmclass (MetaWindow *window)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* get_app_from_id:
|
||||||
|
* @window: a #MetaWindow
|
||||||
|
*
|
||||||
|
* Looks only at the given window, and attempts to determine
|
||||||
|
* an application based on %id. If one can't be determined,
|
||||||
|
* return %NULL.
|
||||||
|
*
|
||||||
|
* Return value: (transfer full): A newly-referenced #ShellApp, or %NULL
|
||||||
|
*/
|
||||||
|
static ShellApp *
|
||||||
|
get_app_from_id (MetaWindow *window,
|
||||||
|
const char *id)
|
||||||
|
{
|
||||||
|
ShellApp *app;
|
||||||
|
ShellAppSystem *appsys;
|
||||||
|
char *desktop_file;
|
||||||
|
|
||||||
|
g_return_val_if_fail (id != NULL, NULL);
|
||||||
|
|
||||||
|
appsys = shell_app_system_get_default ();
|
||||||
|
|
||||||
|
desktop_file = g_strconcat (id, ".desktop", NULL);
|
||||||
|
app = shell_app_system_lookup_app (appsys, desktop_file);
|
||||||
|
if (app)
|
||||||
|
g_object_ref (app);
|
||||||
|
|
||||||
|
g_free (desktop_file);
|
||||||
|
return app;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* get_app_from_gapplication_id:
|
* get_app_from_gapplication_id:
|
||||||
* @monitor: a #ShellWindowTracker
|
|
||||||
* @window: a #MetaWindow
|
* @window: a #MetaWindow
|
||||||
*
|
*
|
||||||
* Looks only at the given window, and attempts to determine
|
* Looks only at the given window, and attempts to determine
|
||||||
@ -216,24 +246,35 @@ get_app_from_window_wmclass (MetaWindow *window)
|
|||||||
static ShellApp *
|
static ShellApp *
|
||||||
get_app_from_gapplication_id (MetaWindow *window)
|
get_app_from_gapplication_id (MetaWindow *window)
|
||||||
{
|
{
|
||||||
ShellApp *app;
|
|
||||||
ShellAppSystem *appsys;
|
|
||||||
const char *id;
|
const char *id;
|
||||||
char *desktop_file;
|
|
||||||
|
|
||||||
appsys = shell_app_system_get_default ();
|
|
||||||
|
|
||||||
id = meta_window_get_gtk_application_id (window);
|
id = meta_window_get_gtk_application_id (window);
|
||||||
if (!id)
|
if (!id)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
desktop_file = g_strconcat (id, ".desktop", NULL);
|
return get_app_from_id (window, id);
|
||||||
app = shell_app_system_lookup_app (appsys, desktop_file);
|
}
|
||||||
if (app)
|
|
||||||
g_object_ref (app);
|
|
||||||
|
|
||||||
g_free (desktop_file);
|
/*
|
||||||
return app;
|
* get_app_from_flatpak_id:
|
||||||
|
* @window: a #MetaWindow
|
||||||
|
*
|
||||||
|
* Looks only at the given window, and attempts to determine
|
||||||
|
* an application based on its Flatpak ID. If one can't be determined,
|
||||||
|
* return %NULL.
|
||||||
|
*
|
||||||
|
* Return value: (transfer full): A newly-referenced #ShellApp, or %NULL
|
||||||
|
*/
|
||||||
|
static ShellApp *
|
||||||
|
get_app_from_flatpak_id (MetaWindow *window)
|
||||||
|
{
|
||||||
|
const char *id;
|
||||||
|
|
||||||
|
id = meta_window_get_flatpak_id (window);
|
||||||
|
if (!id)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
return get_app_from_id (window, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -354,6 +395,13 @@ get_app_for_window (ShellWindowTracker *tracker,
|
|||||||
if (meta_window_is_remote (window))
|
if (meta_window_is_remote (window))
|
||||||
return _shell_app_new_for_window (window);
|
return _shell_app_new_for_window (window);
|
||||||
|
|
||||||
|
/* Check if the window was opened from within a Flatpak sandbox; if this
|
||||||
|
* is the case, a corresponding .desktop file is guaranteed to match;
|
||||||
|
*/
|
||||||
|
result = get_app_from_flatpak_id (window);
|
||||||
|
if (result != NULL)
|
||||||
|
return result;
|
||||||
|
|
||||||
/* Check if the window has a GApplication ID attached; this is
|
/* Check if the window has a GApplication ID attached; this is
|
||||||
* canonical if it does
|
* canonical if it does
|
||||||
*/
|
*/
|
||||||
|
@ -117,6 +117,7 @@ st_clipboard_provider (GdkXEvent *xevent_p,
|
|||||||
GdkDisplay *display = gdk_display_get_default ();
|
GdkDisplay *display = gdk_display_get_default ();
|
||||||
|
|
||||||
if (xev->type != SelectionRequest ||
|
if (xev->type != SelectionRequest ||
|
||||||
|
xev->xany.window != clipboard->priv->clipboard_window ||
|
||||||
!clipboard->priv->clipboard_text)
|
!clipboard->priv->clipboard_text)
|
||||||
return GDK_FILTER_CONTINUE;
|
return GDK_FILTER_CONTINUE;
|
||||||
|
|
||||||
@ -233,13 +234,15 @@ st_clipboard_x11_event_filter (GdkXEvent *xevent_p,
|
|||||||
{
|
{
|
||||||
XEvent *xev = (XEvent *) xevent_p;
|
XEvent *xev = (XEvent *) xevent_p;
|
||||||
EventFilterData *filter_data = user_data;
|
EventFilterData *filter_data = user_data;
|
||||||
|
StClipboardPrivate *priv = filter_data->clipboard->priv;
|
||||||
Atom actual_type;
|
Atom actual_type;
|
||||||
int actual_format, result;
|
int actual_format, result;
|
||||||
unsigned long nitems, bytes_after;
|
unsigned long nitems, bytes_after;
|
||||||
unsigned char *data = NULL;
|
unsigned char *data = NULL;
|
||||||
GdkDisplay *display = gdk_display_get_default ();
|
GdkDisplay *display = gdk_display_get_default ();
|
||||||
|
|
||||||
if(xev->type != SelectionNotify)
|
if(xev->type != SelectionNotify ||
|
||||||
|
xev->xany.window != priv->clipboard_window)
|
||||||
return GDK_FILTER_CONTINUE;
|
return GDK_FILTER_CONTINUE;
|
||||||
|
|
||||||
if (xev->xselection.property == None)
|
if (xev->xselection.property == None)
|
||||||
|
Reference in New Issue
Block a user