Merge branch 'master' of gitlab.gnome.org:GNOME/gnome-shell
This commit is contained in:
commit
bf77cb44e7
14
NEWS
14
NEWS
@ -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]
|
||||||
|
@ -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%));
|
||||||
|
|
||||||
|
@ -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; }
|
||||||
|
@ -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);
|
||||||
|
@ -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,
|
||||||
|
@ -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);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -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'
|
||||||
|
2
po/af.po
2
po/af.po
@ -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
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -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);
|
||||||
|
@ -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)
|
||||||
{
|
{
|
||||||
|
@ -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)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user