Merge branch 'master' of gitlab.gnome.org:GNOME/gnome-shell

This commit is contained in:
Victor Ibragimov 2019-03-13 21:40:31 +05:00
commit bf77cb44e7
15 changed files with 1073 additions and 882 deletions

14
NEWS
View File

@ -1,3 +1,17 @@
3.32.0
======
* Fix sizing issues in on-screen-keyboard emoji panel [Carlos; !439]
* Fix test linker failure on Debian/Ubuntu [Iain; !442]
* Avoid assertion when sizing fallback app icons from CSS [Florian; #1027]
* Fix mis-sized menu arrows after texture cache changes [Florian; !452]
Contributors:
Carlos Garnacho, Iain Lane, Florian Müllner
Translators:
Gábor Kelemen [hu], Victor Ibragimov [tg], Ryuta Fujii [ja], Piotr Drąg [af,
tg], Mart Raudsepp [et]
3.31.92 3.31.92
======= =======
* Fix visual glitch in submenus [Alex; #987] * Fix visual glitch in submenus [Alex; #987]

View File

@ -16,7 +16,7 @@ $link_visited_color: if($variant == 'light', darken($selected_bg_color, 20%), li
$top_hilight: $borders_edge; $top_hilight: $borders_edge;
$warning_color: #f57900; $warning_color: #f57900;
$error_color: #cc0000; $error_color: #ff8080;
$success_color: if($variant == 'light', #33d17a, darken(#33d17a, 10%)); $success_color: if($variant == 'light', #33d17a, darken(#33d17a, 10%));
$destructive_color: if($variant == 'light', #e01b24, darken(#e01b24, 10%)); $destructive_color: if($variant == 'light', #e01b24, darken(#e01b24, 10%));

View File

@ -392,7 +392,7 @@ StScrollBar {
.prompt-dialog-error-label { .prompt-dialog-error-label {
font-size: 10pt; font-size: 10pt;
color: $error_color; color: $warning_color;
padding-bottom: 8px; padding-bottom: 8px;
} }
@ -1031,6 +1031,11 @@ StScrollBar {
-st-icon-style: symbolic; -st-icon-style: symbolic;
} }
.message-icon-bin > .fallback-window-icon {
width: 1.09em;
height: 1.09em;
}
.message-secondary-bin { .message-secondary-bin {
padding: 0 0.82em;; padding: 0 0.82em;;
} }
@ -1138,7 +1143,7 @@ StScrollBar {
.ripple-box:rtl { border-radius: 0 0 0 52px; } // just a simple change to the border radius position .ripple-box:rtl { border-radius: 0 0 0 52px; } // just a simple change to the border radius position
// not really top bar only // not really top bar only
.popup-menu-arrow { width: 16px; height: 16px; } .popup-menu-arrow { icon-size: 1.09em; }
.popup-menu-icon { icon-size: 1.09em; } .popup-menu-icon { icon-size: 1.09em; }
//close buttons //close buttons
@ -1448,13 +1453,13 @@ StScrollBar {
height: 12px; height: 12px;
background-color: transparent; background-color: transparent;
border: 2px solid rgba(255, 255, 255, 0.4); border: 2px solid rgba(255, 255, 255, 0.4);
border-radius:12px; border-radius: 12px;
} }
&:hover .page-indicator-icon { border-color: white; } &:hover .page-indicator-icon { border-color: white; }
&:active .page-indicator-icon { border: none; margin: 2px; background-color:#fff; } &:active .page-indicator-icon { border: none; margin: 2px; background-color: white; }
&:checked .page-indicator-icon, &:checked .page-indicator-icon,
&:checked:active { background-color: #fff;} &:checked:active .page-indicator-icon { background-color: white;}
} }
.no-frequent-applications-label { @extend %status_text; } .no-frequent-applications-label { @extend %status_text; }

View File

@ -160,6 +160,19 @@ var Monitor = class Monitor {
} }
}; };
const UiActor = GObject.registerClass(
class UiActor extends St.Widget {
vfunc_get_preferred_width (forHeight) {
let width = global.stage.width;
return [width, width];
}
vfunc_get_preferred_height (forWidth) {
let height = global.stage.height;
return [height, height];
}
});
const defaultParams = { const defaultParams = {
trackFullscreen: false, trackFullscreen: false,
affectsStruts: false, affectsStruts: false,
@ -200,12 +213,8 @@ var LayoutManager = GObject.registerClass({
global.stage.no_clear_hint = true; global.stage.no_clear_hint = true;
// Set up stage hierarchy to group all UI actors under one container. // Set up stage hierarchy to group all UI actors under one container.
this.uiGroup = new St.Widget({ name: 'uiGroup' }); this.uiGroup = new UiActor({ name: 'uiGroup' });
this.uiGroup.set_flags(Clutter.ActorFlags.NO_LAYOUT); this.uiGroup.set_flags(Clutter.ActorFlags.NO_LAYOUT);
this.uiGroup.add_constraint(new Clutter.BindConstraint({
source: global.stage,
coordinate: Clutter.BindCoordinate.ALL,
}));
global.stage.remove_actor(global.window_group); global.stage.remove_actor(global.window_group);
this.uiGroup.add_actor(global.window_group); this.uiGroup.add_actor(global.window_group);

View File

@ -1,6 +1,6 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const { Atspi, Clutter, Cogl, GDesktopEnums, const { Atspi, Clutter, GDesktopEnums,
Gio, GLib, GObject, Meta, Shell, St } = imports.gi; Gio, GLib, GObject, Meta, Shell, St } = imports.gi;
const Mainloop = imports.mainloop; const Mainloop = imports.mainloop;
const Signals = imports.signals; const Signals = imports.signals;
@ -65,9 +65,7 @@ var MouseSpriteContent = GObject.registerClass({
if (!this._texture) if (!this._texture)
return; return;
let color = new Cogl.Color(); let color = new Clutter.Color();
color.init_from_4ub(0, 0, 0, 0);
let textureNode = new Clutter.TextureNode(this._texture, let textureNode = new Clutter.TextureNode(this._texture,
color, color,
Clutter.ScalingFilter.NEAREST, Clutter.ScalingFilter.NEAREST,

View File

@ -46,15 +46,14 @@ var Avatar = class {
if (iconFile) { if (iconFile) {
let file = Gio.File.new_for_path(iconFile); let file = Gio.File.new_for_path(iconFile);
this.actor.child = null; this.actor.child = null;
this.actor.style = 'background-image: url("%s");'.format(iconFile); this.actor.style = `
background-image: url("${iconFile}");
background-size: ${this._iconSize}px`;
} else { } else {
this.actor.style = null; this.actor.style = null;
this.actor.child = new St.Icon({ icon_name: 'avatar-default-symbolic', this.actor.child = new St.Icon({ icon_name: 'avatar-default-symbolic',
icon_size: this._iconSize }); icon_size: this._iconSize });
} }
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
this.actor.set_size(this._iconSize * scaleFactor, this._iconSize * scaleFactor);
} }
}; };

View File

@ -1,5 +1,5 @@
project('gnome-shell', 'c', project('gnome-shell', 'c',
version: '3.31.92', version: '3.32.0',
meson_version: '>= 0.47.0', meson_version: '>= 0.47.0',
license: 'GPLv2+' license: 'GPLv2+'
) )
@ -23,7 +23,7 @@ gi_req = '>= 1.49.1'
gjs_req = '>= 1.54.0' gjs_req = '>= 1.54.0'
gtk_req = '>= 3.15.0' gtk_req = '>= 3.15.0'
json_glib_req = '>= 0.13.2' json_glib_req = '>= 0.13.2'
mutter_req = '>= 3.31.92' mutter_req = '>= 3.32.0'
polkit_req = '>= 0.100' polkit_req = '>= 0.100'
schemas_req = '>= 3.27.90' schemas_req = '>= 3.27.90'
startup_req = '>= 0.11' startup_req = '>= 0.11'

View File

@ -330,7 +330,7 @@ msgstr "Netwerkaanmelding"
#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! #. Translators: Do NOT translate or transliterate this text (this is an icon file name)!
#: data/org.gnome.Shell.PortalHelper.desktop.in.in:9 #: data/org.gnome.Shell.PortalHelper.desktop.in.in:9
msgid "network-workgroup" msgid "network-workgroup"
msgstr "netwerk-werkgroep" msgstr "network-workgroup"
#: js/extensionPrefs/main.js:120 #: js/extensionPrefs/main.js:120
#, javascript-format #, javascript-format

1067
po/et.po

File diff suppressed because it is too large Load Diff

757
po/ja.po

File diff suppressed because it is too large Load Diff

View File

@ -184,7 +184,7 @@ window_backed_app_get_icon (ShellApp *app,
int size) int size)
{ {
MetaWindow *window = NULL; MetaWindow *window = NULL;
ClutterActor *actor; StWidget *widget;
gint scale; gint scale;
ShellGlobal *global; ShellGlobal *global;
StThemeContext *context; StThemeContext *context;
@ -204,16 +204,20 @@ window_backed_app_get_icon (ShellApp *app,
if (window == NULL) if (window == NULL)
{ {
ClutterActor *actor;
actor = clutter_actor_new (); actor = clutter_actor_new ();
g_object_set (actor, "opacity", 0, "width", (float) size, "height", (float) size, NULL); g_object_set (actor, "opacity", 0, "width", (float) size, "height", (float) size, NULL);
return actor; return actor;
} }
actor = st_texture_cache_bind_cairo_surface_property (st_texture_cache_get_default (), widget = st_texture_cache_bind_cairo_surface_property (st_texture_cache_get_default (),
G_OBJECT (window), G_OBJECT (window),
"icon", "icon",
size); size);
return actor; st_widget_add_style_class_name (widget, "fallback-app-icon");
return CLUTTER_ACTOR (widget);
} }
/** /**

View File

@ -502,7 +502,7 @@ pixbuf_to_st_content_image (GdkPixbuf *pixbuf,
width *= paint_scale; width *= paint_scale;
if (height < 0) if (height < 0)
height = ceilf (gdk_pixbuf_get_width (pixbuf) / resource_scale); height = ceilf (gdk_pixbuf_get_height (pixbuf) / resource_scale);
else else
height *= paint_scale; height *= paint_scale;
@ -700,10 +700,14 @@ st_texture_cache_reset_texture (StTextureCachePropertyBind *bind,
{ {
g_autoptr(ClutterContent) image = NULL; g_autoptr(ClutterContent) image = NULL;
g_autoptr(GError) error = NULL; g_autoptr(GError) error = NULL;
int size = bind->size;
if (size < 0)
clutter_actor_get_preferred_width (bind->actor, -1, NULL, (float *)&size);
image = clutter_actor_get_content (bind->actor); image = clutter_actor_get_content (bind->actor);
if (!image || !CLUTTER_IS_IMAGE (image)) if (!image || !CLUTTER_IS_IMAGE (image))
image = st_image_content_new_with_preferred_size (bind->size, bind->size); image = st_image_content_new_with_preferred_size (size, size);
else else
g_object_ref (image); g_object_ref (image);
@ -767,27 +771,30 @@ st_texture_cache_free_bind (gpointer data)
* If the source object is destroyed, the texture will continue to show the last * If the source object is destroyed, the texture will continue to show the last
* value of the property. * value of the property.
* *
* Return value: (transfer none): A new #ClutterActor * Return value: (transfer none): A new #StWidget
*/ */
ClutterActor * StWidget *
st_texture_cache_bind_cairo_surface_property (StTextureCache *cache, st_texture_cache_bind_cairo_surface_property (StTextureCache *cache,
GObject *object, GObject *object,
const char *property_name, const char *property_name,
gint size) gint size)
{ {
ClutterActor *actor; StWidget *widget;
gchar *notify_key; gchar *notify_key;
StTextureCachePropertyBind *bind; StTextureCachePropertyBind *bind;
actor = create_invisible_actor (); widget = g_object_new (ST_TYPE_WIDGET,
clutter_actor_set_size (actor, size, size); "opacity", 0,
"width", (float)size,
"height", (float)size,
NULL);
bind = g_slice_new0 (StTextureCachePropertyBind); bind = g_slice_new0 (StTextureCachePropertyBind);
bind->cache = cache; bind->cache = cache;
bind->actor = actor; bind->actor = CLUTTER_ACTOR (widget);
bind->size = size; bind->size = size;
bind->source = object; bind->source = object;
g_object_weak_ref (G_OBJECT (actor), st_texture_cache_bind_weak_notify, bind); g_object_weak_ref (G_OBJECT (widget), st_texture_cache_bind_weak_notify, bind);
bind->weakref_active = TRUE; bind->weakref_active = TRUE;
st_texture_cache_reset_texture (bind, property_name); st_texture_cache_reset_texture (bind, property_name);
@ -797,7 +804,7 @@ st_texture_cache_bind_cairo_surface_property (StTextureCache *cache,
bind, (GClosureNotify)st_texture_cache_free_bind, 0); bind, (GClosureNotify)st_texture_cache_free_bind, 0);
g_free (notify_key); g_free (notify_key);
return actor; return widget;
} }
/** /**

View File

@ -32,6 +32,7 @@
#include <st/st-types.h> #include <st/st-types.h>
#include <st/st-theme-node.h> #include <st/st-theme-node.h>
#include <st/st-widget.h>
#define ST_TYPE_TEXTURE_CACHE (st_texture_cache_get_type ()) #define ST_TYPE_TEXTURE_CACHE (st_texture_cache_get_type ())
G_DECLARE_FINAL_TYPE (StTextureCache, st_texture_cache, G_DECLARE_FINAL_TYPE (StTextureCache, st_texture_cache,
@ -63,7 +64,7 @@ st_texture_cache_load_sliced_image (StTextureCache *cache,
GFunc load_callback, GFunc load_callback,
gpointer user_data); gpointer user_data);
ClutterActor *st_texture_cache_bind_cairo_surface_property (StTextureCache *cache, StWidget *st_texture_cache_bind_cairo_surface_property (StTextureCache *cache,
GObject *object, GObject *object,
const char *property_name, const char *property_name,
gint size); gint size);

View File

@ -119,6 +119,10 @@ st_theme_node_transition_new (StThemeNode *from_node,
return transition; return transition;
} }
/**
* st_theme_node_transition_get_new_paint_state: (skip)
*
*/
StThemeNodePaintState * StThemeNodePaintState *
st_theme_node_transition_get_new_paint_state (StThemeNodeTransition *transition) st_theme_node_transition_get_new_paint_state (StThemeNodeTransition *transition)
{ {

View File

@ -579,7 +579,11 @@ get_root_theme_node (ClutterStage *stage)
StThemeNode * StThemeNode *
st_widget_get_theme_node (StWidget *widget) st_widget_get_theme_node (StWidget *widget)
{ {
StWidgetPrivate *priv = st_widget_get_instance_private (widget); StWidgetPrivate *priv;
g_return_val_if_fail (ST_IS_WIDGET (widget), NULL);
priv = st_widget_get_instance_private (widget);
if (priv->theme_node == NULL) if (priv->theme_node == NULL)
{ {