Compare commits

..

7 Commits

Author SHA1 Message Date
Matthias Clasen c476c45007 gsk: Maintain clip info for glyph nodes
We can determine once whether we are contained, instead of doing
it again for every glyph.

The performance impact of this is hard to measure.
2024-02-25 18:26:00 -05:00
Matthias Clasen 5d05270ca7 gsk: Don't add images needlessly
Most likely, the image for all glyphs will be the same atlas,
so check first before calling the add_image function, which
will loop over all images.

This matches what the pattern code does for glyph nodes.

The performance impact of this is hard to measure.
2024-02-25 18:25:42 -05:00
Matthias Clasen 34fb85afd1 gsk: Split the glyph cache
Do the glyph cache lookup in two steps: First find a cache for
the given font+scale, then look up the glyph+flags. Since
font+scale change much less frequently (in particular, they are
the same for all glyphs in a text node), it makes sense to keep
the result of the last lookup around and check if it still fits.

Here are changes in running widget-factory with no-vsync:

                                      before    after
gsk_gpu_device_lookup_glyph_image     1.43%     1.02%
g_hash_table_lookup                   0.76%     0.43%
gsk_gpu_cached_glyph_equal            0.28%     0.21%
2024-02-25 13:47:32 -05:00
Matthias Clasen 05bc4a86c7 gsk: Keep scaled fonts around
Create the scaled font on demand, only when we need to render a glyph,
and keep it around while processing the remaining glyphs in the text
node, rather than recreating it over and over.
2024-02-25 09:35:56 -05:00
Matthias Clasen 93302cc42d gsk: Stop passing scale to glyph upload op
It is always 1.0 now, so there is no point. Instead of the scale,
print the font when doing verbose logging.
2024-02-25 09:35:56 -05:00
Matthias Clasen 976f45e614 gsk: Use a scaled font for glyph rendering
This changes the approach we take to rendering glyphs in the
presence of a scale transform: Instead of scaling the extents
and rendering to an image surface with device scale, simply
create a scaled font and use it for extents and rendering.

This avoids clipping problems with scaling of extents in
the presence of hinting.
2024-02-25 09:35:56 -05:00
Matthias Clasen befccc943a gsk: Add a way to get a scaled font
Add a function to change the size of a font while keeping everything
else the same. We use pango api for this if available.
2024-02-25 09:35:55 -05:00
75 changed files with 1604 additions and 2830 deletions
+2 -57
View File
@@ -1,66 +1,11 @@
Overview of Changes in 4.13.9, 02-03-2024
Overview of Changes in 4.13.9, xx-xx-xxxx
=========================================
Note: The new renderers and dmabuf support are using graphics drivers
in different ways than the old gl renderer, and trigger new driver bugs,
(see for example https://gitlab.gnome.org/GNOME/gtk/-/issues/6418 and
https://gitlab.gnome.org/GNOME/gtk/-/issues/6388). Therefore, it is
recommended to use the latest mesa release (24.x) with the new renderers.
* GtkEditable:
- Fix preconditions to be not too strict
* GtkEmojiChooser:
- Support search in the locale as well as in English
* GtkIconTheme:
- Make gtk_icon_paintable_new_for_file support symbolics
* GtkVideo:
- Fix a problem with cursor handling that could lead to crashes
* Accessibility:
- Fix GetCharacterAtOffset implementation
- Add a Terminal role
- Make TextCaretMoved match gtk3
- Support multiple levels of GtkEditable delegates
* GSK:
- Make the node parser more flexible for text nodes
- Change the way font scaling is handled to avoid clipping
- Fix handling of missing glyphs in the new renderers
* X11:
- Don't claim to support shadows without a compositor
* Wayland:
- Fix handling of output scales
* Tools:
- Add a compare command to gtk4-rendernode-tool
* Build:
- Fix some ubsan complaints
* Translation updates:
Basque
British English
Catalan
Finnish
Galician
Georgian
Hebrew
Indonesian
Kazakh
Latvian
Lithuanian
Persian
Polish
Russian
Slovenian
Spanish
Turkish
Ukrainian
recommended to use the latest mesa release (24.0) with the new renderers.
Overview of Changes in 4.13.8, 20-02-2024
+1 -1
View File
@@ -600,8 +600,8 @@ update_display (void)
if (s->len > 0)
{
pango_font_description_set_variations (desc, s->str);
g_string_free (s, TRUE);
}
g_string_free (s, TRUE);
font_desc = pango_font_description_to_string (desc);
-1
View File
@@ -354,7 +354,6 @@ do_images (GtkWidget *do_widget)
gicon = g_themed_icon_new_with_default_fallbacks ("battery-caution-charging-symbolic");
image = gtk_image_new_from_gicon (gicon);
gtk_image_set_icon_size (GTK_IMAGE (image), GTK_ICON_SIZE_LARGE);
g_object_unref (gicon);
gtk_frame_set_child (GTK_FRAME (frame), image);
+7 -12
View File
@@ -322,14 +322,12 @@ stroke bounds of the path.
### text
| property | syntax | default | printed |
| ------------ | ------------------- | ------------------- | ----------- |
| color | `<color>` | black | non-default |
| font | `<string>` `<url>`? | "Cantarell 15px" | always |
| glyphs | `<glyphs>` | "Hello" | always |
| offset | `<point>` | 0 0 | non-default |
| hint-style | `<hint style>` | slight | non-default |
| antialias | `<antialias>` | gray | non-default |
| property | syntax | default | printed |
| -------- | ------------------- | ------------------- | ----------- |
| color | `<color>` | black | non-default |
| font | `<string>` `<url>`? | "Cantarell 11" | always |
| glyphs | `<glyphs>` | "Hello" | always |
| offset | `<point>` | 0 0 | non-default |
Creates a node like `gsk_text_node_new()` with the given properties.
@@ -338,15 +336,12 @@ font that is specified in the string. It can be either a data url containing
a base64-encoded font file, or a regular url that points to a font file.
Glyphs can be specified as an ASCII string, or as a comma-separated list of
their glyph IDs. Optionally, the advance width, x and y offsets and flags can
their glyph ID and advance width. Optionally, x and y offsets and flags can
be specified as well, like this: 40 10 0 0 color.
If the given font does not exist or the given glyphs are invalid for the given
font, an error node will be returned.
Possible values for hint-style are none, slight or full.
Possible value for antialias are none or gray.
### texture
| property | syntax | default | printed |
+1 -4
View File
@@ -2037,12 +2037,9 @@ gdk_display_get_dmabuf_formats (GdkDisplay *display)
GdkDebugFlags
gdk_display_get_debug_flags (GdkDisplay *display)
{
if (display == NULL)
return _gdk_debug_flags;
GdkDisplayPrivate *priv = gdk_display_get_instance_private (display);
return priv->debug_flags;
return display ? priv->debug_flags : _gdk_debug_flags;
}
void
+2 -3
View File
@@ -658,7 +658,6 @@ gdk_gl_context_real_end_frame (GdkDrawContext *draw_context,
GdkSurface *surface = gdk_gl_context_get_surface (context);
GdkDisplay *display = gdk_surface_get_display (surface);
EGLSurface egl_surface;
G_GNUC_UNUSED gint64 begin_time = GDK_PROFILER_CURRENT_TIME;
if (priv->egl_context == NULL)
return;
@@ -667,6 +666,8 @@ gdk_gl_context_real_end_frame (GdkDrawContext *draw_context,
egl_surface = gdk_surface_get_egl_surface (surface);
gdk_profiler_add_mark (GDK_PROFILER_CURRENT_TIME, 0, "EGL swap buffers", NULL);
if (priv->eglSwapBuffersWithDamage)
{
EGLint stack_rects[4 * 4]; /* 4 rects */
@@ -697,8 +698,6 @@ gdk_gl_context_real_end_frame (GdkDrawContext *draw_context,
else
eglSwapBuffers (gdk_display_get_egl_display (display), egl_surface);
#endif
gdk_profiler_add_mark (begin_time, GDK_PROFILER_CURRENT_TIME - begin_time, "EGL swap buffers", NULL);
}
static void
+7 -47
View File
@@ -458,49 +458,6 @@ gdk_wayland_toplevel_compute_size (GdkSurface *surface)
return FALSE;
}
static gboolean
has_per_edge_tiling_info (GdkToplevelState state)
{
return state & (GDK_TOPLEVEL_STATE_TOP_TILED |
GDK_TOPLEVEL_STATE_RIGHT_TILED |
GDK_TOPLEVEL_STATE_BOTTOM_TILED |
GDK_TOPLEVEL_STATE_LEFT_TILED);
}
static GdkToplevelState
infer_edge_constraints (GdkToplevelState state)
{
if (state & (GDK_TOPLEVEL_STATE_MAXIMIZED | GDK_TOPLEVEL_STATE_FULLSCREEN))
return state;
if (!(state & GDK_TOPLEVEL_STATE_TILED) || !has_per_edge_tiling_info (state))
return state |
GDK_TOPLEVEL_STATE_TOP_RESIZABLE |
GDK_TOPLEVEL_STATE_RIGHT_RESIZABLE |
GDK_TOPLEVEL_STATE_BOTTOM_RESIZABLE |
GDK_TOPLEVEL_STATE_LEFT_RESIZABLE;
if (!(state & GDK_TOPLEVEL_STATE_TOP_TILED))
state |= GDK_TOPLEVEL_STATE_TOP_RESIZABLE;
if (!(state & GDK_TOPLEVEL_STATE_RIGHT_TILED))
state |= GDK_TOPLEVEL_STATE_RIGHT_RESIZABLE;
if (!(state & GDK_TOPLEVEL_STATE_BOTTOM_TILED))
state |= GDK_TOPLEVEL_STATE_BOTTOM_RESIZABLE;
if (!(state & GDK_TOPLEVEL_STATE_LEFT_TILED))
state |= GDK_TOPLEVEL_STATE_LEFT_RESIZABLE;
return state;
}
static gboolean
supports_native_edge_constraints (GdkWaylandToplevel*toplevel)
{
struct gtk_surface1 *gtk_surface = toplevel->display_server.gtk_surface;
if (!gtk_surface)
return FALSE;
return gtk_surface1_get_version (gtk_surface) >= GTK_SURFACE1_CONFIGURE_EDGES_SINCE_VERSION;
}
static void
gdk_wayland_toplevel_handle_configure (GdkWaylandSurface *wayland_surface)
{
@@ -518,9 +475,6 @@ gdk_wayland_toplevel_handle_configure (GdkWaylandSurface *wayland_surface)
new_state = wayland_toplevel->pending.state;
wayland_toplevel->pending.state = 0;
if (!supports_native_edge_constraints (wayland_toplevel))
new_state = infer_edge_constraints (new_state);
is_resizing = wayland_toplevel->pending.is_resizing;
wayland_toplevel->pending.is_resizing = FALSE;
@@ -2036,7 +1990,13 @@ gdk_wayland_toplevel_titlebar_gesture (GdkToplevel *toplevel,
static gboolean
gdk_wayland_toplevel_supports_edge_constraints (GdkToplevel *toplevel)
{
return TRUE;
GdkWaylandToplevel *wayland_toplevel = GDK_WAYLAND_TOPLEVEL (toplevel);
struct gtk_surface1 *gtk_surface = wayland_toplevel->display_server.gtk_surface;
if (!gtk_surface)
return FALSE;
return gtk_surface1_get_version (gtk_surface) >= GTK_SURFACE1_CONFIGURE_EDGES_SINCE_VERSION;
}
static void
-2
View File
@@ -3015,8 +3015,6 @@ gdk_x11_display_init_gl_backend (GdkX11Display *self,
self->egl_version = epoxy_egl_version (egl_display);
XFree (visinfo);
return TRUE;
}
+129 -41
View File
@@ -33,6 +33,37 @@ typedef struct _GskGpuCachedGlyph GskGpuCachedGlyph;
typedef struct _GskGpuCachedTexture GskGpuCachedTexture;
typedef struct _GskGpuDevicePrivate GskGpuDevicePrivate;
typedef struct {
PangoFont *font;
float scale;
} FontCacheKey;
typedef struct {
PangoGlyph glyph;
GskGpuGlyphLookupFlags flags;
} GlyphCacheKey;
typedef struct {
FontCacheKey key;
GHashTable *cache;
} FontGlyphCache;
static void
font_glyph_cache_free (gpointer data)
{
FontGlyphCache *cache = data;
g_object_unref (cache->key.font);
g_hash_table_unref (cache->cache);
g_free (cache);
}
static FontGlyphCache no_font_cache = {
.key = { .font = NULL, .scale = -1 },
.cache = NULL
};
struct _GskGpuDevicePrivate
{
GdkDisplay *display;
@@ -45,6 +76,7 @@ struct _GskGpuDevicePrivate
GHashTable *texture_cache;
GHashTable *glyph_cache;
FontGlyphCache *last_font_cache;
GskGpuCachedAtlas *current_atlas;
@@ -69,14 +101,15 @@ struct _GskGpuCachedClass
struct _GskGpuCached
{
const GskGpuCachedClass *class;
GskGpuCachedAtlas *atlas;
GskGpuCached *next;
GskGpuCached *prev;
gint64 timestamp;
gboolean stale;
guint pixels; /* For glyphs and textures, pixels. For atlases, dead pixels */
unsigned int stale : 1;
unsigned int pixels : 31; /* For glyphs and textures, pixels. For atlases, dead pixels */
};
static inline void
@@ -361,10 +394,8 @@ struct _GskGpuCachedGlyph
{
GskGpuCached parent;
PangoFont *font;
PangoGlyph glyph;
GskGpuGlyphLookupFlags flags;
float scale;
FontGlyphCache *font_cache;
GlyphCacheKey glyph_key;
GskGpuImage *image;
graphene_rect_t bounds;
@@ -377,10 +408,17 @@ gsk_gpu_cached_glyph_free (GskGpuDevice *device,
{
GskGpuDevicePrivate *priv = gsk_gpu_device_get_instance_private (device);
GskGpuCachedGlyph *self = (GskGpuCachedGlyph *) cached;
FontGlyphCache *font_cache;
g_hash_table_remove (priv->glyph_cache, self);
font_cache = self->font_cache;
g_hash_table_remove (font_cache->cache, self);
if (g_hash_table_size (font_cache->cache) == 0)
{
if (priv->last_font_cache == font_cache)
priv->last_font_cache = &no_font_cache;
g_hash_table_remove (priv->glyph_cache, font_cache);
}
g_object_unref (self->font);
g_object_unref (self->image);
g_free (self);
@@ -403,15 +441,35 @@ gsk_gpu_cached_glyph_should_collect (GskGpuDevice *device,
return FALSE;
}
static guint
gsk_gpu_cached_font_hash (gconstpointer data)
{
const FontGlyphCache *cache = data;
const FontCacheKey *key = &cache->key;
return GPOINTER_TO_UINT (key->font) ^ ((guint) key->scale * PANGO_SCALE);
}
static gboolean
gsk_gpu_cached_font_equal (gconstpointer v1,
gconstpointer v2)
{
const FontGlyphCache *c1 = v1;
const FontCacheKey *key1 = &c1->key;
const FontGlyphCache *c2 = v2;
const FontCacheKey *key2 = &c2->key;
return key1->font == key2->font &&
key1->scale == key2->scale;
}
static guint
gsk_gpu_cached_glyph_hash (gconstpointer data)
{
const GskGpuCachedGlyph *glyph = data;
const GlyphCacheKey *key = &glyph->glyph_key;
return GPOINTER_TO_UINT (glyph->font) ^
glyph->glyph ^
(glyph->flags << 24) ^
((guint) glyph->scale * PANGO_SCALE);
return key->glyph ^ (key->flags << 24);
}
static gboolean
@@ -420,11 +478,11 @@ gsk_gpu_cached_glyph_equal (gconstpointer v1,
{
const GskGpuCachedGlyph *glyph1 = v1;
const GskGpuCachedGlyph *glyph2 = v2;
const GlyphCacheKey *key1 = &glyph1->glyph_key;
const GlyphCacheKey *key2 = &glyph2->glyph_key;
return glyph1->font == glyph2->font
&& glyph1->glyph == glyph2->glyph
&& glyph1->flags == glyph2->flags
&& glyph1->scale == glyph2->scale;
return key1->glyph == key2->glyph &&
key1->flags == key2->flags;
}
static const GskGpuCachedClass GSK_GPU_CACHED_GLYPH_CLASS =
@@ -623,10 +681,13 @@ gsk_gpu_device_init (GskGpuDevice *self)
{
GskGpuDevicePrivate *priv = gsk_gpu_device_get_instance_private (self);
priv->glyph_cache = g_hash_table_new (gsk_gpu_cached_glyph_hash,
gsk_gpu_cached_glyph_equal);
priv->glyph_cache = g_hash_table_new_full (gsk_gpu_cached_font_hash,
gsk_gpu_cached_font_equal,
NULL,
font_glyph_cache_free);
priv->texture_cache = g_hash_table_new (g_direct_hash,
g_direct_equal);
priv->last_font_cache = &no_font_cache;
}
void
@@ -890,16 +951,18 @@ gsk_gpu_device_lookup_glyph_image (GskGpuDevice *self,
GskGpuGlyphLookupFlags flags,
float scale,
graphene_rect_t *out_bounds,
graphene_point_t *out_origin)
graphene_point_t *out_origin,
PangoFont **out_scaled_font)
{
GskGpuDevicePrivate *priv = gsk_gpu_device_get_instance_private (self);
GskGpuCachedGlyph lookup = {
.font = font,
.glyph = glyph,
.flags = flags,
.scale = scale
FontGlyphCache font_lookup = {
.key = { .font = font, .scale = scale }
};
GskGpuCachedGlyph *cache;
GskGpuCachedGlyph glyph_lookup = {
.glyph_key = { .glyph = glyph, .flags = flags }
};
FontGlyphCache *font_cache = NULL;
GskGpuCachedGlyph *cache = NULL;
PangoRectangle ink_rect;
graphene_rect_t rect;
graphene_point_t origin;
@@ -908,17 +971,44 @@ gsk_gpu_device_lookup_glyph_image (GskGpuDevice *self,
float subpixel_x, subpixel_y;
PangoFont *scaled_font;
cache = g_hash_table_lookup (priv->glyph_cache, &lookup);
if (cache)
{
gsk_gpu_cached_use (self, (GskGpuCached *) cache, gsk_gpu_frame_get_timestamp (frame));
if (priv->last_font_cache->key.font == font &&
priv->last_font_cache->key.scale == scale)
font_cache = priv->last_font_cache;
else
font_cache = g_hash_table_lookup (priv->glyph_cache, &font_lookup);
*out_bounds = cache->bounds;
*out_origin = cache->origin;
return cache->image;
if (font_cache)
{
cache = g_hash_table_lookup (font_cache->cache, &glyph_lookup);
if (cache)
{
gsk_gpu_cached_use (self, (GskGpuCached *) cache, gsk_gpu_frame_get_timestamp (frame));
*out_bounds = cache->bounds;
*out_origin = cache->origin;
priv->last_font_cache = font_cache;
return cache->image;
}
}
else
{
font_cache = g_new (FontGlyphCache, 1);
font_cache->key.font = g_object_ref (font);
font_cache->key.scale = scale;
font_cache->cache = g_hash_table_new (gsk_gpu_cached_glyph_hash,
gsk_gpu_cached_glyph_equal);
g_hash_table_insert (priv->glyph_cache, font_cache, font_cache);
}
scaled_font = gsk_get_scaled_font (font, scale);
priv->last_font_cache = font_cache;
if (*out_scaled_font)
scaled_font = *out_scaled_font;
else
scaled_font = gsk_get_scaled_font (font, scale);
subpixel_x = (flags & 3) / 4.f;
subpixel_y = ((flags >> 2) & 3) / 4.f;
pango_font_get_glyph_extents (scaled_font, glyph, &ink_rect, NULL);
@@ -947,10 +1037,9 @@ gsk_gpu_device_lookup_glyph_image (GskGpuDevice *self,
cache = gsk_gpu_cached_new (self, &GSK_GPU_CACHED_GLYPH_CLASS, NULL);
}
cache->font = g_object_ref (font);
cache->glyph = glyph;
cache->flags = flags;
cache->scale = scale;
cache->font_cache = font_cache;
cache->glyph_key.glyph = glyph;
cache->glyph_key.flags = flags;
cache->bounds = rect;
cache->image = image;
cache->origin = GRAPHENE_POINT_INIT (- origin.x + subpixel_x,
@@ -970,13 +1059,12 @@ gsk_gpu_device_lookup_glyph_image (GskGpuDevice *self,
&GRAPHENE_POINT_INIT (cache->origin.x + padding,
cache->origin.y + padding));
g_hash_table_insert (priv->glyph_cache, cache, cache);
g_hash_table_insert (font_cache->cache, cache, cache);
gsk_gpu_cached_use (self, (GskGpuCached *) cache, gsk_gpu_frame_get_timestamp (frame));
*out_bounds = cache->bounds;
*out_origin = cache->origin;
g_object_unref (scaled_font);
*out_scaled_font = scaled_font;
return cache->image;
}
+2 -1
View File
@@ -96,7 +96,8 @@ GskGpuImage * gsk_gpu_device_lookup_glyph_image (GskGpuD
GskGpuGlyphLookupFlags flags,
float scale,
graphene_rect_t *out_bounds,
graphene_point_t *out_origin);
graphene_point_t *out_origin,
PangoFont **out_scaled_font);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GskGpuDevice, g_object_unref)
+31 -8
View File
@@ -2055,7 +2055,7 @@ gsk_gpu_node_processor_add_texture_scale_node (GskGpuNodeProcessor *self,
guint32 descriptor;
gboolean need_mipmap, need_offscreen;
need_offscreen = self->modelview != NULL ||
need_offscreen = self->modelview != NULL ||
!graphene_vec2_equal (&self->scale, graphene_vec2_one ());
if (need_offscreen)
{
@@ -2992,11 +2992,15 @@ gsk_gpu_node_processor_add_glyph_node (GskGpuNodeProcessor *self,
GskGpuDevice *device;
const PangoGlyphInfo *glyphs;
PangoFont *font;
PangoFont *scaled_font = NULL;
graphene_point_t offset;
guint i, num_glyphs;
float scale, inv_scale;
GdkRGBA color;
gboolean glyph_align;
GskGpuImage *last_image;
guint32 descriptor = 0;
GskGpuClip old_clip;
if (self->opacity < 1.0 &&
gsk_text_node_has_color_glyphs (node))
@@ -3005,6 +3009,10 @@ gsk_gpu_node_processor_add_glyph_node (GskGpuNodeProcessor *self,
return;
}
gsk_gpu_clip_init_copy (&old_clip, &self->clip);
if (gsk_gpu_clip_contains_rect (&self->clip, &self->offset, &node->bounds))
gsk_gpu_clip_init_contained (&self->clip, &node->bounds);
glyph_align = gsk_gpu_frame_should_optimize (self->frame, GSK_GPU_OPTIMIZE_GLYPH_ALIGN) &&
gsk_transform_get_category (self->modelview) >= GSK_TRANSFORM_CATEGORY_2D;
device = gsk_gpu_frame_get_device (self->frame);
@@ -3020,12 +3028,12 @@ gsk_gpu_node_processor_add_glyph_node (GskGpuNodeProcessor *self,
scale = MAX (graphene_vec2_get_x (&self->scale), graphene_vec2_get_y (&self->scale));
inv_scale = 1.f / scale;
last_image = NULL;
for (i = 0; i < num_glyphs; i++)
{
GskGpuImage *image;
graphene_rect_t glyph_bounds, glyph_tex_rect;
graphene_point_t glyph_offset, glyph_origin;
guint32 descriptor;
GskGpuGlyphLookupFlags flags;
glyph_origin = GRAPHENE_POINT_INIT (offset.x + (float) glyphs[i].geometry.x_offset / PANGO_SCALE,
@@ -3051,13 +3059,20 @@ gsk_gpu_node_processor_add_glyph_node (GskGpuNodeProcessor *self,
flags,
scale,
&glyph_bounds,
&glyph_offset);
&glyph_offset,
&scaled_font);
gsk_rect_scale (&GRAPHENE_RECT_INIT (-glyph_bounds.origin.x, -glyph_bounds.origin.y, gsk_gpu_image_get_width (image), gsk_gpu_image_get_height (image)), inv_scale, inv_scale, &glyph_tex_rect);
gsk_rect_scale (&GRAPHENE_RECT_INIT (0, 0, glyph_bounds.size.width, glyph_bounds.size.height), inv_scale, inv_scale, &glyph_bounds);
gsk_rect_scale (&GRAPHENE_RECT_INIT(0, 0, glyph_bounds.size.width, glyph_bounds.size.height), inv_scale, inv_scale, &glyph_bounds);
glyph_origin = GRAPHENE_POINT_INIT (glyph_origin.x - glyph_offset.x * inv_scale,
glyph_origin.y - glyph_offset.y * inv_scale);
descriptor = gsk_gpu_node_processor_add_image (self, image, GSK_GPU_SAMPLER_DEFAULT);
if (image != last_image)
{
descriptor = gsk_gpu_node_processor_add_image (self, image, GSK_GPU_SAMPLER_DEFAULT);
last_image = image;
}
if (glyphs[i].attr.is_color)
gsk_gpu_texture_op (self->frame,
gsk_gpu_clip_get_shader_clip (&self->clip, &glyph_offset, &glyph_bounds),
@@ -3078,6 +3093,10 @@ gsk_gpu_node_processor_add_glyph_node (GskGpuNodeProcessor *self,
offset.x += (float) glyphs[i].geometry.width / PANGO_SCALE;
}
g_clear_object (&scaled_font);
gsk_gpu_clip_init_copy (&self->clip, &old_clip);
}
static gboolean
@@ -3087,6 +3106,7 @@ gsk_gpu_node_processor_create_glyph_pattern (GskGpuPatternWriter *self,
GskGpuDevice *device;
const PangoGlyphInfo *glyphs;
PangoFont *font;
PangoFont *scaled_font = NULL;
guint num_glyphs;
gsize i;
float scale, inv_scale;
@@ -3126,12 +3146,13 @@ gsk_gpu_node_processor_create_glyph_pattern (GskGpuPatternWriter *self,
0,
scale,
&glyph_bounds,
&glyph_offset);
&glyph_offset,
&scaled_font);
if (image != last_image)
{
if (!gsk_gpu_pattern_writer_add_image (self, image, GSK_GPU_SAMPLER_DEFAULT, &tex_id))
return FALSE;
break;
last_image = image;
}
@@ -3160,7 +3181,9 @@ gsk_gpu_node_processor_create_glyph_pattern (GskGpuPatternWriter *self,
offset.x += (float) glyphs[i].geometry.width / PANGO_SCALE;
}
return TRUE;
g_clear_object (&scaled_font);
return i == num_glyphs;
}
static gboolean
+1 -9
View File
@@ -531,7 +531,6 @@ gsk_gpu_upload_glyph_op_draw (GskGpuOp *op,
GskGpuUploadGlyphOp *self = (GskGpuUploadGlyphOp *) op;
cairo_surface_t *surface;
cairo_t *cr;
PangoRectangle ink_rect = { 0, };
surface = cairo_image_surface_create_for_data (data,
CAIRO_FORMAT_ARGB32,
@@ -553,19 +552,12 @@ gsk_gpu_upload_glyph_op_draw (GskGpuOp *op,
/* Draw glyph */
cairo_set_source_rgba (cr, 1, 1, 1, 1);
/* The pango code for drawing hex boxes uses the glyph width */
if (self->glyph & PANGO_GLYPH_UNKNOWN_FLAG)
pango_font_get_glyph_extents (self->font, self->glyph, &ink_rect, NULL);
pango_cairo_show_glyph_string (cr,
self->font,
&(PangoGlyphString) {
.num_glyphs = 1,
.glyphs = (PangoGlyphInfo[1]) { {
.glyph = self->glyph,
.geometry = {
.width = ink_rect.width,
}
.glyph = self->glyph
} }
});
-56
View File
@@ -94,59 +94,3 @@ gsk_get_scaled_font (PangoFont *font,
return g_object_ref (font2);
#endif
}
/*< private >
* gsk_get_hinted_font:
* @font: a `PangoFont`
* @hint_style: hint style to use
* @antialias: antialiasing to use
*
* Returns a font that is just like @font, but uses the
* given hinting options for its glyphs and metrics.
*
* Returns: (transfer full): the modified `PangoFont`
*/
PangoFont *
gsk_get_hinted_font (PangoFont *font,
cairo_hint_style_t hint_style,
cairo_antialias_t antialias)
{
cairo_font_options_t *options;
cairo_scaled_font_t *sf;
static PangoContext *context = NULL;
PangoFontDescription *desc G_GNUC_UNUSED;
options = cairo_font_options_create ();
sf = pango_cairo_font_get_scaled_font (PANGO_CAIRO_FONT (font));
cairo_scaled_font_get_font_options (sf, options);
if (cairo_font_options_get_hint_style (options) == hint_style &&
cairo_font_options_get_antialias (options) == antialias &&
cairo_font_options_get_hint_metrics (options) == CAIRO_HINT_METRICS_OFF &&
cairo_font_options_get_subpixel_order (options) == CAIRO_SUBPIXEL_ORDER_DEFAULT)
{
cairo_font_options_destroy (options);
return g_object_ref (font);
}
cairo_font_options_set_hint_style (options, hint_style);
cairo_font_options_set_antialias (options, antialias);
cairo_font_options_set_hint_metrics (options, CAIRO_HINT_METRICS_OFF);
cairo_font_options_set_subpixel_order (options, CAIRO_SUBPIXEL_ORDER_DEFAULT);
if (!context)
context = pango_context_new ();
pango_cairo_context_set_font_options (context, options);
cairo_font_options_destroy (options);
#if PANGO_VERSION_CHECK (1, 52, 0)
return pango_font_map_reload_font (pango_font_get_font_map (font), font, 1.0, context, NULL);
#else
desc = pango_font_describe (font);
font = pango_font_map_load_font (pango_font_get_font_map (font), context, desc);
pango_font_description_free (desc);
return font;
#endif
}
-5
View File
@@ -2,7 +2,6 @@
#include <glib.h>
#include <pango/pango.h>
#include <cairo.h>
G_BEGIN_DECLS
@@ -11,9 +10,5 @@ void gsk_ensure_resources (void);
PangoFont *gsk_get_scaled_font (PangoFont *font,
float scale);
PangoFont *gsk_get_hinted_font (PangoFont *font,
cairo_hint_style_t hint_style,
cairo_antialias_t antialias);
G_END_DECLS
+6 -15
View File
@@ -31,7 +31,6 @@
#include "gskroundedrectprivate.h"
#include "gskstrokeprivate.h"
#include "gsktransformprivate.h"
#include "gskprivate.h"
#include "gdk/gdkmemoryformatprivate.h"
#include "gdk/gdkprivate.h"
@@ -5792,12 +5791,6 @@ gsk_text_node_class_init (gpointer g_class,
node_class->diff = gsk_text_node_diff;
}
static inline float
pango_units_to_float (int i)
{
return (float) i / PANGO_SCALE;
}
/**
* gsk_text_node_new:
* @font: the `PangoFont` containing the glyphs
@@ -5822,12 +5815,10 @@ gsk_text_node_new (PangoFont *font,
GskRenderNode *node;
PangoRectangle ink_rect;
PangoGlyphInfo *glyph_infos;
PangoFont *unhinted;
int n;
unhinted = gsk_get_hinted_font (font, CAIRO_HINT_STYLE_NONE, CAIRO_ANTIALIAS_GRAY);
pango_glyph_string_extents (glyphs, unhinted, &ink_rect, NULL);
g_object_unref (unhinted);
pango_glyph_string_extents (glyphs, font, &ink_rect, NULL);
pango_extents_to_pixels (&ink_rect, NULL);
/* Don't create nodes with empty bounds */
if (ink_rect.width == 0 || ink_rect.height == 0)
@@ -5864,10 +5855,10 @@ gsk_text_node_new (PangoFont *font,
self->num_glyphs = n;
gsk_rect_init (&node->bounds,
offset->x + pango_units_to_float (ink_rect.x),
offset->y + pango_units_to_float (ink_rect.y),
pango_units_to_float (ink_rect.width),
pango_units_to_float (ink_rect.height));
offset->x + ink_rect.x,
offset->y + ink_rect.y,
ink_rect.width,
ink_rect.height);
return node;
}
+75 -184
View File
@@ -30,7 +30,6 @@
#include "gskstroke.h"
#include "gsktransformprivate.h"
#include "gskenumtypes.h"
#include "gskprivate.h"
#include "gdk/gdkrgbaprivate.h"
#include "gdk/gdktextureprivate.h"
@@ -47,9 +46,7 @@
#include <cairo-script-interpreter.h>
#endif
#include <cairo-gobject.h>
#include <pango/pangocairo.h>
#ifdef HAVE_PANGOFT
#include <pango/pangofc-fontmap.h>
#endif
@@ -89,39 +86,6 @@ context_finish (Context *context)
g_clear_object (&context->fontmap);
}
static gboolean
parse_enum (GtkCssParser *parser,
GType type,
gpointer out_value)
{
GEnumClass *class;
GEnumValue *v;
char *enum_name;
enum_name = gtk_css_parser_consume_ident (parser);
if (enum_name == NULL)
return FALSE;
class = g_type_class_ref (type);
v = g_enum_get_value_by_nick (class, enum_name);
if (v == NULL)
{
gtk_css_parser_error_value (parser, "Unknown value \"%s\" for enum \"%s\"",
enum_name, g_type_name (type));
g_free (enum_name);
g_type_class_unref (class);
return FALSE;
}
*(int*)out_value = v->value;
g_free (enum_name);
g_type_class_unref (class);
return TRUE;
}
static gboolean
parse_rect (GtkCssParser *parser,
Context *context,
@@ -1218,8 +1182,6 @@ clear_font (gpointer inout_font)
g_clear_object ((PangoFont **) inout_font);
}
#define GLYPH_NEEDS_WIDTH (1 << 15)
static gboolean
parse_glyphs (GtkCssParser *parser,
Context *context,
@@ -1246,7 +1208,6 @@ parse_glyphs (GtkCssParser *parser,
gtk_css_parser_error_value (parser, "Unsupported character %d in string", i);
}
gi.glyph = PANGO_GLYPH_INVALID_INPUT - MAX_ASCII_GLYPH + s[i];
*(unsigned int *) &gi.attr |= GLYPH_NEEDS_WIDTH;
pango_glyph_string_set_size (glyph_string, glyph_string->num_glyphs + 1);
glyph_string->glyphs[glyph_string->num_glyphs - 1] = gi;
}
@@ -1255,22 +1216,14 @@ parse_glyphs (GtkCssParser *parser,
}
else
{
if (!gtk_css_parser_consume_integer (parser, &i))
if (!gtk_css_parser_consume_integer (parser, &i) ||
!gtk_css_parser_consume_number (parser, &d))
{
pango_glyph_string_free (glyph_string);
return FALSE;
}
gi.glyph = i;
if (gtk_css_parser_has_number (parser))
{
gtk_css_parser_consume_number (parser, &d);
gi.geometry.width = (int) (d * PANGO_SCALE);
}
else
{
*(unsigned int *) &gi.attr |= GLYPH_NEEDS_WIDTH;
}
gi.geometry.width = (int) (d * PANGO_SCALE);
if (gtk_css_parser_has_number (parser))
{
@@ -2240,36 +2193,23 @@ unpack_glyphs (PangoFont *font,
for (i = 0; i < glyphs->num_glyphs; i++)
{
PangoGlyphInfo *gi = &glyphs->glyphs[i];
PangoGlyph glyph = glyphs->glyphs[i].glyph;
if (((*(unsigned int *) &gi->attr) & GLYPH_NEEDS_WIDTH) == 0)
if (glyph < PANGO_GLYPH_INVALID_INPUT - MAX_ASCII_GLYPH ||
glyph >= PANGO_GLYPH_INVALID_INPUT)
continue;
*(unsigned int *) &gi->attr &= ~GLYPH_NEEDS_WIDTH;
glyph = glyph - (PANGO_GLYPH_INVALID_INPUT - MAX_ASCII_GLYPH) - MIN_ASCII_GLYPH;
if (gi->glyph >= PANGO_GLYPH_INVALID_INPUT - MAX_ASCII_GLYPH &&
gi->glyph < PANGO_GLYPH_INVALID_INPUT)
if (ascii == NULL)
{
PangoGlyph idx = gi->glyph - (PANGO_GLYPH_INVALID_INPUT - MAX_ASCII_GLYPH) - MIN_ASCII_GLYPH;
ascii = create_ascii_glyphs (font);
if (ascii == NULL)
{
ascii = create_ascii_glyphs (font);
if (ascii == NULL)
return FALSE;
}
gi->glyph = ascii->glyphs[idx].glyph;
gi->geometry.width = ascii->glyphs[idx].geometry.width;
return FALSE;
}
else
{
PangoRectangle ink_rect;
pango_font_get_glyph_extents (font, gi->glyph, &ink_rect, NULL);
gi->geometry.width = ink_rect.width;
}
glyphs->glyphs[i].glyph = ascii->glyphs[glyph].glyph;
glyphs->glyphs[i].geometry.width = ascii->glyphs[glyph].geometry.width;
}
g_clear_pointer (&ascii, pango_glyph_string_free);
@@ -2277,45 +2217,6 @@ unpack_glyphs (PangoFont *font,
return TRUE;
}
static gboolean
parse_hint_style (GtkCssParser *parser,
Context *context,
gpointer out)
{
if (!parse_enum (parser, CAIRO_GOBJECT_TYPE_HINT_STYLE, out))
return FALSE;
if (*(cairo_hint_style_t *) out != CAIRO_HINT_STYLE_NONE &&
*(cairo_hint_style_t *) out != CAIRO_HINT_STYLE_SLIGHT &&
*(cairo_hint_style_t *) out != CAIRO_HINT_STYLE_FULL)
{
gtk_css_parser_error_value (parser, "Unsupported value for enum \"%s\"",
g_type_name (CAIRO_GOBJECT_TYPE_HINT_STYLE));
return FALSE;
}
return TRUE;
}
static gboolean
parse_antialias (GtkCssParser *parser,
Context *context,
gpointer out)
{
if (!parse_enum (parser, CAIRO_GOBJECT_TYPE_ANTIALIAS, out))
return FALSE;
if (*(cairo_antialias_t *) out != CAIRO_ANTIALIAS_NONE &&
*(cairo_antialias_t *) out != CAIRO_ANTIALIAS_GRAY)
{
gtk_css_parser_error_value (parser, "Unsupported value for enum \"%s\"",
g_type_name (CAIRO_GOBJECT_TYPE_ANTIALIAS));
return FALSE;
}
return TRUE;
}
static GskRenderNode *
parse_text_node (GtkCssParser *parser,
Context *context)
@@ -2324,16 +2225,11 @@ parse_text_node (GtkCssParser *parser,
graphene_point_t offset = GRAPHENE_POINT_INIT (0, 0);
GdkRGBA color = GDK_RGBA("000000");
PangoGlyphString *glyphs = NULL;
cairo_hint_style_t hint_style = CAIRO_HINT_STYLE_SLIGHT;
cairo_antialias_t antialias = CAIRO_ANTIALIAS_GRAY;
PangoFont *hinted;
const Declaration declarations[] = {
{ "font", parse_font, clear_font, &font },
{ "offset", parse_point, NULL, &offset },
{ "color", parse_color, NULL, &color },
{ "glyphs", parse_glyphs, clear_glyphs, &glyphs },
{ "hint-style", parse_hint_style, NULL, &hint_style },
{ "antialias", parse_antialias, NULL, &antialias },
{ "glyphs", parse_glyphs, clear_glyphs, &glyphs }
};
GskRenderNode *result;
@@ -2341,14 +2237,10 @@ parse_text_node (GtkCssParser *parser,
if (font == NULL)
{
font = font_from_string (pango_cairo_font_map_get_default (), "Cantarell 15px", TRUE);
font = font_from_string (pango_cairo_font_map_get_default (), "Cantarell 11", TRUE);
g_assert (font);
}
hinted = gsk_get_hinted_font (font, hint_style, antialias);
g_object_unref (font);
font = hinted;
if (!glyphs)
{
const char *text = "Hello";
@@ -2360,7 +2252,6 @@ parse_text_node (GtkCssParser *parser,
for (i = 0; i < strlen (text); i++)
{
gi.glyph = PANGO_GLYPH_INVALID_INPUT - MAX_ASCII_GLYPH + text[i];
*(unsigned int *) &gi.attr |= GLYPH_NEEDS_WIDTH;
glyphs->glyphs[i] = gi;
}
}
@@ -2538,6 +2429,39 @@ clear_dash (gpointer inout_array)
g_clear_pointer ((GArray **) inout_array, g_array_unref);
}
static gboolean
parse_enum (GtkCssParser *parser,
GType type,
gpointer out_value)
{
GEnumClass *class;
GEnumValue *v;
char *enum_name;
enum_name = gtk_css_parser_consume_ident (parser);
if (enum_name == NULL)
return FALSE;
class = g_type_class_ref (type);
v = g_enum_get_value_by_nick (class, enum_name);
if (v == NULL)
{
gtk_css_parser_error_value (parser, "Unknown value \"%s\" for enum \"%s\"",
enum_name, g_type_name (type));
g_free (enum_name);
g_type_class_unref (class);
return FALSE;
}
*(int*)out_value = v->value;
g_free (enum_name);
g_type_class_unref (class);
return TRUE;
}
static gboolean
parse_fill_rule (GtkCssParser *parser,
Context *context,
@@ -3324,33 +3248,6 @@ append_string_param (Printer *p,
g_string_append_c (p->str, '\n');
}
static const char *
enum_to_nick (GType type,
int value)
{
GEnumClass *class;
GEnumValue *v;
class = g_type_class_ref (type);
v = g_enum_get_value (class, value);
g_type_class_unref (class);
return v->value_nick;
}
static void
append_enum_param (Printer *p,
const char *param_name,
GType type,
int value)
{
_indent (p);
g_string_append_printf (p->str, "%s: ", param_name);
g_string_append (p->str, enum_to_nick (type, value));
g_string_append_c (p->str, ';');
g_string_append_c (p->str, '\n');
}
static void
append_vec4_param (Printer *p,
const char *param_name,
@@ -3574,7 +3471,7 @@ gsk_text_node_serialize_font (GskRenderNode *node,
PangoFontDescription *desc;
char *s;
desc = pango_font_describe_with_absolute_size (font);
desc = pango_font_describe (font);
s = pango_font_description_to_string (desc);
g_string_append_printf (p->str, "\"%s\"", s);
g_free (s);
@@ -3618,37 +3515,6 @@ gsk_text_node_serialize_font (GskRenderNode *node,
#endif
}
static void
gsk_text_node_serialize_font_options (GskRenderNode *node,
Printer *p)
{
PangoFont *font = gsk_text_node_get_font (node);
cairo_scaled_font_t *sf = pango_cairo_font_get_scaled_font (PANGO_CAIRO_FONT (font));
cairo_font_options_t *options;
cairo_hint_style_t hint_style;
cairo_antialias_t antialias;
options = cairo_font_options_create ();
cairo_scaled_font_get_font_options (sf, options);
hint_style = cairo_font_options_get_hint_style (options);
antialias = cairo_font_options_get_antialias (options);
cairo_font_options_destroy (options);
/* medium and full are identical in the absence of subpixel modes */
if (hint_style == CAIRO_HINT_STYLE_MEDIUM)
hint_style = CAIRO_HINT_STYLE_FULL;
if (hint_style == CAIRO_HINT_STYLE_NONE ||
hint_style == CAIRO_HINT_STYLE_FULL)
append_enum_param (p, "hint-style", CAIRO_GOBJECT_TYPE_HINT_STYLE, hint_style);
/* CAIRO_ANTIALIAS_NONE is the only value we ever emit here, since gray is the default,
* and we don't accept any other values.
*/
if (antialias == CAIRO_ANTIALIAS_NONE)
append_enum_param (p, "antialias", CAIRO_GOBJECT_TYPE_ANTIALIAS, antialias);
}
void
gsk_text_node_serialize_glyphs (GskRenderNode *node,
GString *p)
@@ -3730,6 +3596,33 @@ gsk_text_node_serialize_glyphs (GskRenderNode *node,
pango_glyph_string_free (ascii);
}
static const char *
enum_to_nick (GType type,
int value)
{
GEnumClass *class;
GEnumValue *v;
class = g_type_class_ref (type);
v = g_enum_get_value (class, value);
g_type_class_unref (class);
return v->value_nick;
}
static void
append_enum_param (Printer *p,
const char *param_name,
GType type,
int value)
{
_indent (p);
g_string_append_printf (p->str, "%s: ", param_name);
g_string_append (p->str, enum_to_nick (type, value));
g_string_append_c (p->str, ';');
g_string_append_c (p->str, '\n');
}
static void
append_path_param (Printer *p,
const char *param_name,
@@ -4194,8 +4087,6 @@ render_node_print (Printer *p,
if (!graphene_point_equal (offset, graphene_point_zero ()))
append_point_param (p, "offset", offset);
gsk_text_node_serialize_font_options (node, p);
end_node (p);
}
break;
+2 -2
View File
@@ -771,7 +771,7 @@ emit_text_selection_changed (GtkAtSpiContext *self,
"org.a11y.atspi.Event.Object",
"TextCaretMoved",
g_variant_new ("(siiva{sv})",
"", cursor_position, 0, g_variant_new_int32 (0), NULL),
"", cursor_position, 0, g_variant_new_string (""), NULL),
NULL);
else
g_dbus_connection_emit_signal (self->connection,
@@ -1590,7 +1590,7 @@ gtk_at_spi_context_update_caret_position (GtkATContext *context)
"",
(int) offset,
0,
g_variant_new_int32 (0),
g_variant_new_string (""),
NULL),
NULL);
}
+2 -2
View File
@@ -418,8 +418,8 @@ gtk_at_spi_socket_embed (GtkAtSpiSocket *self,
* usually done through a side channel with the remote side, for
* example using sockets, or reading the output of a subprocess.
*
* The remote accessible object at @object_path must support
* the `org.a11y.atspi.Socket` interface with the `Embedded()`
* The remote accessible object at @object_path must be a must
* have an `org.a11y.atspi.Socket` interface with the `Embedded()`
* method.
*
* This constructor can fail, most notably if the accessibility
+8 -15
View File
@@ -234,8 +234,7 @@ accessible_text_handle_method (GDBusConnection *connection,
gsize n_ranges;
GtkAccessibleTextRange *ranges = NULL;
if (!gtk_accessible_text_get_selection (accessible_text, &n_ranges, &ranges))
n_ranges = 0;
gtk_accessible_text_get_selection (accessible_text, &n_ranges, &ranges);
g_dbus_method_invocation_return_value (invocation, g_variant_new ("(i)", (int)n_ranges));
@@ -249,8 +248,7 @@ accessible_text_handle_method (GDBusConnection *connection,
g_variant_get (parameters, "(i)", &num);
if (!gtk_accessible_text_get_selection (accessible_text, &n_ranges, &ranges))
n_ranges = 0;
gtk_accessible_text_get_selection (accessible_text, &n_ranges, &ranges);
if (num < 0 || num >= n_ranges)
g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR, G_DBUS_ERROR_INVALID_ARGS, "Not a valid selection: %d", num);
@@ -1058,20 +1056,15 @@ gtk_editable_get_text_widget (GtkWidget *widget)
{
if (GTK_IS_EDITABLE (widget))
{
GtkEditable *editable;
guint redirects = 0;
GtkEditable *delegate;
editable = GTK_EDITABLE (widget);
delegate = gtk_editable_get_delegate (GTK_EDITABLE (widget));
do {
if (GTK_IS_TEXT (editable))
return GTK_TEXT (editable);
if (GTK_IS_TEXT (delegate))
return GTK_TEXT (delegate);
if (++redirects >= 6)
g_assert_not_reached ();
editable = gtk_editable_get_delegate (editable);
} while (editable != NULL);
if (GTK_IS_TEXT (widget))
return GTK_TEXT (widget);
}
return NULL;
-1
View File
@@ -370,7 +370,6 @@ gtk_cell_renderer_pixbuf_set_property (GObject *object,
else
texture = NULL;
take_image_definition (cellpixbuf, gtk_image_definition_new_paintable (GDK_PAINTABLE (texture)));
g_clear_object (&texture);
break;
case PROP_PIXBUF_EXPANDER_OPEN:
g_clear_object (&priv->pixbuf_expander_open);
-4
View File
@@ -155,16 +155,12 @@ gtk_accessible_text_get_contents_at (GtkAccessibleText *self,
unsigned int *start,
unsigned int *end)
{
static const char empty[] = {0};
GBytes *bytes;
g_return_val_if_fail (GTK_IS_ACCESSIBLE_TEXT (self), NULL);
bytes = GTK_ACCESSIBLE_TEXT_GET_IFACE (self)->get_contents_at (self, offset, granularity, start, end);
if (bytes == NULL)
return g_bytes_new_static (empty, sizeof empty);
return nul_terminate_contents (bytes);
}
+3 -19
View File
@@ -1390,25 +1390,9 @@ gtk_at_context_get_text_accumulate (GtkATContext *self,
{
const char *text = gtk_widget_get_tooltip_text (GTK_WIDGET (self->accessible));
if (text && not_just_space (text))
{
gboolean append = !check_duplicates;
if (!append)
{
char *description = gtk_at_context_get_description_internal (self, FALSE);
char *name = gtk_at_context_get_name_internal (self, FALSE);
append =
(property == GTK_ACCESSIBLE_PROPERTY_LABEL && strcmp (text, description) != 0) ||
(property == GTK_ACCESSIBLE_PROPERTY_DESCRIPTION && strcmp (text, name) != 0);
g_free (description);
g_free (name);
}
if (append)
append_with_space (res, text);
}
if (!check_duplicates || ((property == GTK_ACCESSIBLE_PROPERTY_LABEL && strcmp(text, gtk_at_context_get_description_internal (self, FALSE)) != 0)
|| (property == GTK_ACCESSIBLE_PROPERTY_DESCRIPTION && strcmp(text, gtk_at_context_get_name_internal (self, FALSE)) != 0)))
append_with_space (res, text);
}
}
+3 -53
View File
@@ -99,7 +99,9 @@
* Objects are described by `<object>` elements, which can contain
* `<property>` elements to set properties, `<signal>` elements which
* connect signals to handlers, and `<child>` elements, which describe
* child objects.
* child objects (most often widgets inside a container, but also e.g.
* actions in an action group, or columns in a tree model). A `<child>`
* element contains an `<object>` element which describes the child object.
*
* Typically, the specific kind of object represented by an `<object>`
* element is specified by the class attribute. If the type has not
@@ -171,53 +173,6 @@
* exception to this rule is that an object has to be constructed before
* it can be used as the value of a construct-only property.
*
* ### Child objects
*
* Many widgets have properties for child widgets, such as
* [property@Gtk.Expander:child]. In this case, the preferred way to
* specify the child widget in a ui file is to simply set the property:
*
* ```xml
* <object class="GtkExpander">
* <property name="child">
* <object class="GtkLabel">
* ...
* </object>
* </property>
* </object>
* ```
*
* Generic containers that can contain an arbitrary number of children,
* such as [class@Gtk.Box] instead use the `<child>` element. A `<child>`
* element contains an `<object>` element which describes the child object.
* Most often, child objects are widgets inside a container, but they can
* also be, e.g., actions in an action group, or columns in a tree model.
*
* Any object type that implements the [iface@Gtk.Buildable] interface can
* specify how children may be added to it. Since many objects and widgets that
* are included with GTK already implement the `GtkBuildable` interface,
* typically child objects can be added using the `<child>` element without
* having to be concerned about the underlying implementation.
*
* See the [`GtkWidget` documentation](class.Widget.html#gtkwidget-as-gtkbuildable)
* for many examples of using `GtkBuilder` with widgets, including setting
* child objects using the `<child>` element.
*
* A noteworthy special case to the general rule that only objects implementing
* `GtkBuildable` may specify how to handle the `<child>` element is that
* `GtkBuilder` provides special support for adding objects to a
* [class@Gio.ListStore] by using the `<child>` element. For instance:
*
* ```xml
* <object class="GListStore">
* <property name="item-type">MyObject</property>
* <child>
* <object class="MyObject" />
* </child>
* ...
* </object>
* ```
*
* ### Property bindings
*
* It is also possible to bind a property value to another object's
@@ -253,11 +208,6 @@
* For more information, see the documentation of the
* [method@GObject.Object.bind_property] method.
*
* Please note that another way to set up bindings between objects in .ui files
* is to use the `GtkExpression` methodology. See the
* [`GtkExpression` documentation](class.Expression.html#gtkexpression-in-ui-files)
* for more information.
*
* ### Internal children
*
* Sometimes it is necessary to refer to widgets which have implicitly
-1
View File
@@ -242,7 +242,6 @@ gtk_emoji_chooser_finalize (GObject *object)
g_source_remove (chooser->populate_idle);
g_clear_pointer (&chooser->data, g_variant_unref);
g_clear_pointer (&chooser->iter, g_variant_iter_free);
g_clear_object (&chooser->settings);
G_OBJECT_CLASS (gtk_emoji_chooser_parent_class)->finalize (object);
+3 -20
View File
@@ -150,10 +150,9 @@
* <constant type='gchararray'>Hello, world</constant>
* ```
*
* To create a closure expression, use the `<closure>` element. The `function`
* attribute specifies what function to use for the closure, and the `type`
* attribute specifies its return type. The content of the element contains the
* expressions for the parameters. For instance:
* To create a closure expression, use the `<closure>` element. The `type` and `function`
* attributes specify what function to use for the closure, the content of the element
* contains the expressions for the parameters. For instance:
*
* ```xml
* <closure type='gchararray' function='combine_args_somehow'>
@@ -161,22 +160,6 @@
* <lookup type='GFile' name='size'>myfile</lookup>
* </closure>
* ```
*
* To create a property binding, use the `<binding>` element in place of where a
* `<property>` tag would ordinarily be used. The `name` and `object` attributes are
* supported. The `name` attribute is required, and pertains to the applicable property
* name. The `object` attribute is optional. If provided, it will use the specified object
* as the `this` object when the expression is evaluated. Here is an example in which the
* `label` property of a `GtkLabel` is bound to the `string` property of another arbitrary
* object:
*
* ```xml
* <object class='GtkLabel'>
* <binding name='label'>
* <lookup name='string'>some_other_object</lookup>
* </binding>
* </object>
* ```
*/
typedef struct _WeakRefGuard WeakRefGuard;
-2
View File
@@ -2232,7 +2232,6 @@ update_feature_example (GtkFontChooserWidget *fontchooser,
attr->start_index = 0;
attr->end_index = strlen (input);
pango_attr_list_insert (attrs, attr);
g_free (str);
str = g_strconcat (item->name, " 1", NULL);
attr = pango_attr_font_features_new (str);
attr->start_index = strlen (input) + strlen ("");
@@ -2242,7 +2241,6 @@ update_feature_example (GtkFontChooserWidget *fontchooser,
attr->start_index = strlen (input) + strlen ("");
attr->end_index = attr->start_index + strlen (input);
pango_attr_list_insert (attrs, attr);
g_free (str);
gtk_label_set_text (GTK_LABEL (item->example), text);
gtk_label_set_attributes (GTK_LABEL (item->example), attrs);
-4
View File
@@ -473,8 +473,6 @@ gtk_search_entry_class_init (GtkSearchEntryClass *klass)
*
* The purpose for the `GtkSearchEntry` input used to alter the
* behaviour of input methods.
*
* Since: 4.14
*/
props[PROP_INPUT_PURPOSE] =
g_param_spec_enum ("input-purpose", NULL, NULL,
@@ -487,8 +485,6 @@ gtk_search_entry_class_init (GtkSearchEntryClass *klass)
*
* The hints about input for the `GtkSearchEntry` used to alter the
* behaviour of input methods.
*
* Since: 4.14
*/
props[PROP_INPUT_HINTS] =
g_param_spec_flags ("input-hints", NULL, NULL,
+3 -1
View File
@@ -518,10 +518,12 @@ gtk_spin_button_class_init (GtkSpinButtonClass *class)
* on_output (GtkSpinButton *spin,
* gpointer data)
* {
* GtkAdjustment *adjustment;
* char *text;
* int value;
*
* value = gtk_spin_button_get_value_as_int (spin);
* adjustment = gtk_spin_button_get_adjustment (spin);
* value = (int)gtk_adjustment_get_value (adjustment);
* text = g_strdup_printf ("%02d", value);
* gtk_editable_set_text (GTK_EDITABLE (spin), text):
* g_free (text);
+1 -4
View File
@@ -10406,10 +10406,7 @@ gtk_text_view_accessible_text_get_selection (GtkAccessibleText *self,
int start, end;
if (!gtk_text_buffer_get_selection_bounds (buffer, &start_iter, &end_iter))
{
*n_ranges = 0;
return FALSE;
}
return FALSE;
start = gtk_text_iter_get_offset (&start_iter);
end = gtk_text_iter_get_offset (&end_iter);
+2 -2
View File
@@ -243,8 +243,6 @@ gtk_video_map (GtkWidget *widget)
self->media_stream &&
gtk_media_stream_is_prepared (self->media_stream))
gtk_media_stream_play (self->media_stream);
gtk_video_reveal_cursor (GTK_VIDEO (widget));
}
static void
@@ -380,6 +378,8 @@ gtk_video_root (GtkWidget *widget)
g_signal_connect (gtk_widget_get_root (widget), "notify::fullscreened",
G_CALLBACK (fullscreen_changed), widget);
gtk_video_reveal_cursor (GTK_VIDEO (widget));
}
static void
-2
View File
@@ -59,7 +59,6 @@ gdk/x11/gdkselectioninputstream-x11.c
gdk/x11/gdktextlistconverter-x11.c
gsk/gl/gskglrenderer.c
gsk/gpu/gskgldevice.c
gsk/gpu/gsknglrenderer.c
gsk/gskrendernodeimpl.c
gtk/a11y/gtkatspiaction.c
gtk/a11y/gtkatspiroot.c
@@ -437,7 +436,6 @@ tools/gtk-path-tool-show.c
tools/gtk-path-tool-utils.c
tools/gtk-rendernode-tool.c
tools/gtk-rendernode-tool-benchmark.c
tools/gtk-rendernode-tool-compare.c
tools/gtk-rendernode-tool-info.c
tools/gtk-rendernode-tool-render.c
tools/gtk-rendernode-tool-show.c
+52 -36
View File
@@ -16,8 +16,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gtk+.master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n"
"POT-Creation-Date: 2024-02-23 01:06+0000\n"
"PO-Revision-Date: 2024-02-26 16:25+0100\n"
"POT-Creation-Date: 2024-02-20 18:15+0000\n"
"PO-Revision-Date: 2024-02-21 12:33+0100\n"
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: Spanish - Spain <gnome-es-list@gnome.org>\n"
"Language: es_ES\n"
@@ -1795,11 +1795,6 @@ msgctxt "accessibility"
msgid "comment"
msgstr "comando"
#: gtk/gtkaccessible.c:874
msgctxt "accessibility"
msgid "terminal"
msgstr "terminal"
#: gtk/gtkalertdialog.c:668 gtk/print/gtkcustompaperunixdialog.c:322
#: gtk/gtkmessagedialog.c:166 gtk/ui/gtkassistant.ui:40
msgid "_Close"
@@ -2375,7 +2370,7 @@ msgid "If you delete an item, it will be permanently lost."
msgstr "Si elimina un elemento, se perderña definitivamente."
#: gtk/gtkfilechooserwidget.c:1188 gtk/gtkfilechooserwidget.c:1786
#: gtk/gtklabel.c:5712 gtk/gtktext.c:6193 gtk/gtktextview.c:9080
#: gtk/gtklabel.c:5702 gtk/gtktext.c:6150 gtk/gtktextview.c:9018
msgid "_Delete"
msgstr "_Eliminar"
@@ -2714,31 +2709,31 @@ msgstr "Cerrar"
msgid "Close the infobar"
msgstr "Cerrar la barra de información"
#: gtk/gtklabel.c:5709 gtk/gtktext.c:6181 gtk/gtktextview.c:9068
#: gtk/gtklabel.c:5699 gtk/gtktext.c:6138 gtk/gtktextview.c:9006
msgid "Cu_t"
msgstr "Cor_tar"
#: gtk/gtklabel.c:5710 gtk/gtktext.c:6185 gtk/gtktextview.c:9072
#: gtk/gtklabel.c:5700 gtk/gtktext.c:6142 gtk/gtktextview.c:9010
msgid "_Copy"
msgstr "_Copiar"
#: gtk/gtklabel.c:5711 gtk/gtktext.c:6189 gtk/gtktextview.c:9076
#: gtk/gtklabel.c:5701 gtk/gtktext.c:6146 gtk/gtktextview.c:9014
msgid "_Paste"
msgstr "_Pegar"
#: gtk/gtklabel.c:5717 gtk/gtktext.c:6202 gtk/gtktextview.c:9101
#: gtk/gtklabel.c:5707 gtk/gtktext.c:6159 gtk/gtktextview.c:9039
msgid "Select _All"
msgstr "Seleccionar _todo"
#: gtk/gtklabel.c:5722
#: gtk/gtklabel.c:5712
msgid "_Open Link"
msgstr "_Abrir enlace"
#: gtk/gtklabel.c:5726
#: gtk/gtklabel.c:5716
msgid "Copy _Link Address"
msgstr "Copiar la dirección del _enlace"
#: gtk/gtklabel.c:5770 gtk/gtktext.c:2724 gtk/gtktextview.c:9150
#: gtk/gtklabel.c:5760 gtk/gtktext.c:2716 gtk/gtktextview.c:9088
msgid "Context menu"
msgstr "Menú contextual"
@@ -3675,15 +3670,15 @@ msgctxt "accessibility"
msgid "Sidebar"
msgstr "Barra lateral"
#: gtk/gtktext.c:6207 gtk/gtktextview.c:9106
#: gtk/gtktext.c:6164 gtk/gtktextview.c:9044
msgid "Insert _Emoji"
msgstr "Insertar _emoticono"
#: gtk/gtktextview.c:9088
#: gtk/gtktextview.c:9026
msgid "_Undo"
msgstr "_Deshacer"
#: gtk/gtktextview.c:9092
#: gtk/gtktextview.c:9030
msgid "_Redo"
msgstr "_Rehacer"
@@ -4435,8 +4430,6 @@ msgid ""
"Tints all the places where the current renderer uses Cairo instead of the "
"GPU."
msgstr ""
"Colorea todas las partes en las que el renderizador actual usa Cairo en "
"lugar de GPU."
#: gtk/inspector/visual.ui:436
msgid "Show Cairo Rendering"
@@ -4475,8 +4468,10 @@ msgid "Show Accessibility warnings"
msgstr "Mostrar advertencias de accesibilidad"
#: gtk/inspector/visual.ui:661
#, fuzzy
#| msgid "Show Graphic Updates"
msgid "Show Graphics Offload"
msgstr "Mostrar descarga de gráficos"
msgstr "Mostrar actualizaciones de gráficos"
#: gtk/inspector/visual.ui:693
msgid "Inspect Inspector"
@@ -7516,7 +7511,19 @@ msgid "%s: error launching application: %s\n"
msgstr "%s: error al lanzar la aplicación: %s\n"
#: tools/gtk-path-tool.c:35
#, c-format
#, fuzzy, c-format
#| msgid ""
#| "Usage:\n"
#| " gtk4-path-tool [COMMAND] [OPTION…] PATH\n"
#| "\n"
#| "Perform various tasks on paths.\n"
#| "\n"
#| "Commands:\n"
#| " decompose Decompose the path\n"
#| " show Display the path in a window\n"
#| " render Render the path as an image\n"
#| " info Print information about the path\n"
#| "\n"
msgid ""
"Usage:\n"
" gtk4-path-tool [COMMAND] [OPTION…] PATH\n"
@@ -7533,14 +7540,12 @@ msgid ""
"\n"
msgstr ""
"Uso:\n"
" gtk4-path-tool [COMANDO] [OPCIÓN…] ARCHIVO\n"
" gtk4-rendernode-tool [COMANDO] [OPCIÓN…] ARCHIVO\n"
"\n"
"Realiza varias tareas en rutas.\n"
"\n"
"Comandos:\n"
" decompose Descompone la ruta\n"
" reverse Invierte la ruta\n"
" restrict Restringe la ruta a un segmento\n"
" show Muestra la ruta en una ventana\n"
" render Renderiza la ruta como una imagen\n"
" info Proporciona información sobre la ruta\n"
@@ -7630,7 +7635,7 @@ msgstr "Rellenar la ruta (lo predeterminado)"
#: tools/gtk-path-tool-render.c:118 tools/gtk-path-tool-show.c:141
msgid "Stroke the path"
msgstr "Trazar la ruta"
msgstr ""
#: tools/gtk-path-tool-render.c:119 tools/gtk-path-tool-show.c:142
msgid "Show path points"
@@ -7710,7 +7715,7 @@ msgstr "Renderizar la ruta a una imagen .png."
#: tools/gtk-path-tool-render.c:173 tools/gtk-path-tool-show.c:183
msgid "Options related to filling"
msgstr "Opciones relativas al relleno"
msgstr ""
#: tools/gtk-path-tool-render.c:174 tools/gtk-path-tool-show.c:184
msgid "Show help for fill options"
@@ -7718,7 +7723,7 @@ msgstr "Mostrar ayuda para rellenar opciones"
#: tools/gtk-path-tool-render.c:181 tools/gtk-path-tool-show.c:191
msgid "Options related to stroking"
msgstr "Opciones relativas al trazado"
msgstr ""
#: tools/gtk-path-tool-render.c:182 tools/gtk-path-tool-show.c:192
msgid "Show help for stroke options"
@@ -7756,7 +7761,7 @@ msgstr "Salida escrita en «%s»."
#: tools/gtk-path-tool-restrict.c:36
msgid "Beginning of segment"
msgstr "Principio del segmento"
msgstr ""
#: tools/gtk-path-tool-restrict.c:36 tools/gtk-path-tool-restrict.c:37
msgid "LENGTH"
@@ -7821,7 +7826,18 @@ msgid "Failed to parse '%s' as number"
msgstr "Falló al analizar «%s» como número"
#: tools/gtk-rendernode-tool.c:35
#, c-format
#, fuzzy, c-format
#| msgid ""
#| "Usage:\n"
#| " gtk4-rendernode-tool [COMMAND] [OPTION…] FILE\n"
#| "\n"
#| "Perform various tasks on GTK render nodes.\n"
#| "\n"
#| "Commands:\n"
#| " info Provide information about the node\n"
#| " show Show the node\n"
#| " render Take a screenshot of the node\n"
#| "\n"
msgid ""
"Usage:\n"
" gtk4-rendernode-tool [COMMAND] [OPTION…] FILE\n"
@@ -7830,7 +7846,6 @@ msgid ""
"\n"
"Commands:\n"
" benchmark Benchmark rendering of a node\n"
" compare Compare nodes or images\n"
" info Provide information about the node\n"
" show Show the node\n"
" render Take a screenshot of the node\n"
@@ -7842,15 +7857,15 @@ msgstr ""
"Realiza varias tareas en nodos de renderizado GTK.\n"
"\n"
"Comandos:\n"
" benchmark Prueba de renderizado de un nodo\n"
" compare Compara nodos o imágenes\n"
" info Proporciona información sobre el nodo\n"
" show Muestra nodo\n"
" render Hace una captura del nodo\n"
#: tools/gtk-rendernode-tool-benchmark.c:94
#, fuzzy
#| msgid "Renderer to use"
msgid "Add renderer to benchmark"
msgstr "Añadir renderizador al banco de pruebas"
msgstr "Renderizador que usar"
#: tools/gtk-rendernode-tool-benchmark.c:94
#: tools/gtk-rendernode-tool-render.c:195
@@ -7881,9 +7896,10 @@ msgid "No .node file specified\n"
msgstr "No se ha especificado ningún archivo .node\n"
#: tools/gtk-rendernode-tool-benchmark.c:133
#, c-format
#, fuzzy, c-format
#| msgid "Can only accept a single .node file\n"
msgid "Can only benchmark a single .node file\n"
msgstr "Sólo se puede probar un único archivo .node\n"
msgstr "Sólo se puede aceptar un único archivo .node\n"
#: tools/gtk-rendernode-tool-info.c:191
#, c-format
+33 -85
View File
@@ -12,18 +12,18 @@ msgid ""
msgstr ""
"Project-Id-Version: gtk+ 2.6\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n"
"POT-Creation-Date: 2024-03-02 15:19+0000\n"
"PO-Revision-Date: 2024-03-02 19:01+0330\n"
"POT-Creation-Date: 2024-02-23 01:06+0000\n"
"PO-Revision-Date: 2024-02-24 00:20+0330\n"
"Last-Translator: Danial Behzadi <dani.behzi@ubuntu.com>\n"
"Language-Team: Persian <>\n"
"Language: fa\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"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Poedit-Bookmarks: 133,-1,-1,-1,-1,-1,-1,-1,-1,-1\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Generator: Poedit 3.2.2\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Generator: Poedit 3.4.2\n"
#: gdk/broadway/gdkbroadway-server.c:135
#, c-format
@@ -85,8 +85,7 @@ msgstr "هیچ پیکربندی بی‌نظیری برایEGL موجود نیس
#, c-format
msgid "EGL implementation is missing extension %s"
msgid_plural "EGL implementation is missing %2$d extensions: %1$s"
msgstr[0] "پیادهسازی EGL افزونهٔ %s را کم دارد"
msgstr[1] "پیاده‌سازی EGL ‏%2$Id افزونه کم دارد: %1$s"
msgstr[0] "پیاده سازی EGL %2$Id افزونه کم دارد: %1$s"
#: gdk/gdkdisplay.c:1801
msgid "libEGL not available in this sandbox"
@@ -127,22 +126,22 @@ msgstr "هیچ رابط برنامه‌نویسی GLای مجاز نیست."
msgid "Unable to create a GL context"
msgstr "امکان ساخت زمینه مناسب برای GL نبود"
#: gdk/gdkglcontext.c:1304
#: gdk/gdkglcontext.c:1303
msgid "OpenGL ES disabled via GDK_DEBUG"
msgstr "OpenGL ES به دست GDK_DEBUG از کار افتاد"
#: gdk/gdkglcontext.c:1316
#: gdk/gdkglcontext.c:1315
msgid "OpenGL disabled via GDK_DEBUG"
msgstr "OpenGL به دست GDK_DEBUG از کار افتاد"
#: gdk/gdkglcontext.c:1327
#: gdk/gdkglcontext.c:1326
#, c-format
msgid "Application does not support %s API"
msgstr "برنامه از API مربوط به %s پشتبانی نمی‌کند"
#. translators: This is about OpenGL backend names, like
#. * "Trying to use X11 GLX, but EGL is already in use"
#: gdk/gdkglcontext.c:2113
#: gdk/gdkglcontext.c:2112
#, c-format
msgid "Trying to use %s, but %s is already in use"
msgstr "تلاش شد از %s استفاده شود، ولی %s از پیش در حال استفاده است"
@@ -771,8 +770,7 @@ msgstr "درحال گشودن «%s»."
#, c-format
msgid "Opening %d Item"
msgid_plural "Opening %d Items"
msgstr[0] "گشودن %Id مورد"
msgstr[1] "گشودن %Id مورد"
msgstr[0] "درحال گشودن %Id مورد"
#: gdk/x11/gdkclipboard-x11.c:473
msgid "Clipboard manager could not store selection."
@@ -830,10 +828,6 @@ msgstr "این پشتیبانی EGL %Id.%Id از داده‌های رأس نیم
msgid "OpenGL ES 3.0 is not supported by this renderer."
msgstr "نگارش ۳٫۰ OpenGL ES از سوی این پرداختگر پشتیبانی نمی‌شود."
#: gsk/gpu/gsknglrenderer.c:62
msgid "OpenGL 3.3 required"
msgstr "نیازمند OpenGL 3.3"
#: gtk/a11y/gtkatspiaction.c:239
msgctxt "accessibility"
msgid "Click"
@@ -2612,35 +2606,35 @@ msgctxt "Font feature value"
msgid "Enable"
msgstr "به کار انداختن"
#: gtk/gtkfontchooserwidget.c:2459
#: gtk/gtkfontchooserwidget.c:2457
msgid "Default"
msgstr "پیش‌گزیده"
#: gtk/gtkfontchooserwidget.c:2521
#: gtk/gtkfontchooserwidget.c:2519
msgid "Ligatures"
msgstr "جایگزین‌ها"
#: gtk/gtkfontchooserwidget.c:2522
#: gtk/gtkfontchooserwidget.c:2520
msgid "Letter Case"
msgstr "حالت حرف"
#: gtk/gtkfontchooserwidget.c:2523
#: gtk/gtkfontchooserwidget.c:2521
msgid "Number Case"
msgstr "حالت عدد"
#: gtk/gtkfontchooserwidget.c:2524
#: gtk/gtkfontchooserwidget.c:2522
msgid "Number Spacing"
msgstr "فاصله‌گذاری عدد"
#: gtk/gtkfontchooserwidget.c:2525
#: gtk/gtkfontchooserwidget.c:2523
msgid "Fractions"
msgstr "کسرها"
#: gtk/gtkfontchooserwidget.c:2526
#: gtk/gtkfontchooserwidget.c:2524
msgid "Style Variations"
msgstr "دگرگونه‌های سبک"
#: gtk/gtkfontchooserwidget.c:2528
#: gtk/gtkfontchooserwidget.c:2526
msgid "Character Variations"
msgstr "دگرگونه‌های نویسه"
@@ -3238,8 +3232,7 @@ msgstr "روی این رایانه"
#, c-format
msgid "%s / %s available"
msgid_plural "%s / %s available"
msgstr[0] "%s / %s موجود"
msgstr[1] "%s / %s موجود"
msgstr[0] "%s / %s در دسترس"
#: gtk/gtkplacesviewrow.c:471
msgid "Disconnect"
@@ -3516,7 +3509,7 @@ msgstr "نمی‌توان مورد با نشانی «%s» را به %s منتق
msgid "No registered application with name “%s” for item with URI “%s” found"
msgstr "هیچ برنامهٔ ثبت شده‌ای با نام «%s» برای موردی با آدرس «%s» یافت نشد"
#: gtk/gtksearchentry.c:814
#: gtk/gtksearchentry.c:810
msgid "Clear Entry"
msgstr "پاک‌سازی ورودی"
@@ -7162,8 +7155,8 @@ msgstr ""
#: tools/gtk-builder-tool-enumerate.c:56 tools/gtk-builder-tool-preview.c:179
#: tools/gtk-builder-tool-preview.c:180 tools/gtk-builder-tool-screenshot.c:360
#: tools/gtk-builder-tool-simplify.c:2529 tools/gtk-builder-tool-validate.c:261
#: tools/gtk-path-tool-render.c:121 tools/gtk-rendernode-tool-compare.c:67
#: tools/gtk-rendernode-tool-info.c:214 tools/gtk-rendernode-tool-show.c:106
#: tools/gtk-path-tool-render.c:121 tools/gtk-rendernode-tool-info.c:214
#: tools/gtk-rendernode-tool-show.c:106
msgid "FILE"
msgstr "پرونده"
@@ -7760,8 +7753,7 @@ msgstr ""
msgid "Add renderer to benchmark"
msgstr "افزودن پرداختگر به محک"
#: tools/gtk-rendernode-tool-benchmark.c:94 tools/gtk-rendernode-tool-compare.c:65
#: tools/gtk-rendernode-tool-render.c:195
#: tools/gtk-rendernode-tool-benchmark.c:94 tools/gtk-rendernode-tool-render.c:195
msgid "RENDERER"
msgstr "RENDERER"
@@ -7792,59 +7784,6 @@ msgstr "هیچ پروندهٔ ‪.node‬ ای مشخّص نشده\n"
msgid "Can only benchmark a single .node file\n"
msgstr "تنها می‌تواند یک تک‌پروندهٔ ‪.node‬ را محک بزند\n"
#: tools/gtk-rendernode-tool-compare.c:65 tools/gtk-rendernode-tool-render.c:195
msgid "Renderer to use"
msgstr "پرداختگر مورد استفاده"
#: tools/gtk-rendernode-tool-compare.c:67
msgid "Output file"
msgstr "پروندهٔ خروجی"
#: tools/gtk-rendernode-tool-compare.c:70
msgid "FILE1 FILE2"
msgstr "FILE1 FILE2"
#: tools/gtk-rendernode-tool-compare.c:82
msgid "Compare .node or .png files."
msgstr "مقایسهٔ پرونده‌های ‪.node یا .png."
#: tools/gtk-rendernode-tool-compare.c:95
#, c-format
msgid "Must specify two files\n"
msgstr "باید دو پرونده مشخّص شوند\n"
#: tools/gtk-rendernode-tool-compare.c:102 tools/gtk-rendernode-tool-render.c:150
#, c-format
msgid "Failed to create renderer: %s\n"
msgstr "شکست در ایجاد پرداختگر: %s\n"
#: tools/gtk-rendernode-tool-compare.c:111
#, c-format
msgid "Failed to load %s: %s\n"
msgstr "شکست در بار کردن %s: ‏%s\n"
#: tools/gtk-rendernode-tool-compare.c:122
#, c-format
msgid "Could not save diff image to %s\n"
msgstr ""
"نتوانست تصویر تفاوت را در %s ذخیره کند\n"
"\n"
#: tools/gtk-rendernode-tool-compare.c:132
#, c-format
msgid "Differences witten to %s.\n"
msgstr "تغییرات در %s نوشته شد.\n"
#: tools/gtk-rendernode-tool-compare.c:134
#, c-format
msgid "The images are different.\n"
msgstr "تصویرها متفاوتند.\n"
#: tools/gtk-rendernode-tool-compare.c:137
#, c-format
msgid "No differences.\n"
msgstr "بدون تفاوت.\n"
#: tools/gtk-rendernode-tool-info.c:191
#, c-format
msgid "Number of nodes: %u\n"
@@ -7888,6 +7827,15 @@ msgstr ""
msgid "Failed to generate SVG: %s\n"
msgstr "شکست در ایجاد SVG: %s\n"
#: tools/gtk-rendernode-tool-render.c:150
#, c-format
msgid "Failed to create renderer: %s\n"
msgstr "شکست در ایجاد پرداختگر: %s\n"
#: tools/gtk-rendernode-tool-render.c:195
msgid "Renderer to use"
msgstr "پرداختگر مورد استفاده"
#: tools/gtk-rendernode-tool-render.c:211
msgid "Render a .node file to an image."
msgstr "پرداخت یک پروندهٔ ‪.node‬ در یک تصویر."
+597 -862
View File
File diff suppressed because it is too large Load Diff
+101 -121
View File
@@ -12,16 +12,16 @@ msgid ""
msgstr ""
"Project-Id-Version: gtk+.HEAD.he\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n"
"POT-Creation-Date: 2024-03-02 15:19+0000\n"
"PO-Revision-Date: 2024-03-03 00:14+0200\n"
"POT-Creation-Date: 2024-02-23 01:06+0000\n"
"PO-Revision-Date: 2024-02-24 18:36+0200\n"
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
"Language-Team: Hebrew\n"
"Language: he\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n==2 ? 1 : n>10 && n%10==0 ? 2 : "
"3);\n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n==2 ? 1 : n>10 && n%10==0 ? "
"2 : 3);\n"
"X-Generator: Poedit 3.4.2\n"
"X-Project-Style: default\n"
@@ -124,27 +124,27 @@ msgid "No GL API allowed."
msgstr "אין GL API מאופשר."
#: gdk/gdkglcontext.c:442 gdk/win32/gdkglcontext-win32-wgl.c:395
#: gdk/win32/gdkglcontext-win32-wgl.c:538 gdk/win32/gdkglcontext-win32-wgl.c:582
#: gdk/x11/gdkglcontext-glx.c:691
#: gdk/win32/gdkglcontext-win32-wgl.c:538
#: gdk/win32/gdkglcontext-win32-wgl.c:582 gdk/x11/gdkglcontext-glx.c:691
msgid "Unable to create a GL context"
msgstr "Unable to create a GL context"
#: gdk/gdkglcontext.c:1304
#: gdk/gdkglcontext.c:1303
msgid "OpenGL ES disabled via GDK_DEBUG"
msgstr "OpenGL ES מושבת על ידי GDK_DEBUG"
#: gdk/gdkglcontext.c:1316
#: gdk/gdkglcontext.c:1315
msgid "OpenGL disabled via GDK_DEBUG"
msgstr "OpenGL מושבת על ידי GDK_DEBUG"
#: gdk/gdkglcontext.c:1327
#: gdk/gdkglcontext.c:1326
#, c-format
msgid "Application does not support %s API"
msgstr "היישום אינו תומך ב־API ‏%s"
#. translators: This is about OpenGL backend names, like
#. * "Trying to use X11 GLX, but EGL is already in use"
#: gdk/gdkglcontext.c:2113
#: gdk/gdkglcontext.c:2112
#, c-format
msgid "Trying to use %s, but %s is already in use"
msgstr "מתבצע ניסיון להשתמש ב־%s אך %s כבר בשימוש"
@@ -647,7 +647,8 @@ msgstr "לא ניתן לקבל נתונים מלוח הגזירים. הקצאת
#: gdk/win32/gdkclipdrop-win32.c:930
#, c-format
msgid "Cannot get clipboard data. OpenClipboard() timed out."
msgstr "לא ניתן לקבל נתונים מלוח הגזירים. הזמן שהוקצב ל־OpenClipboard() הסתיים."
msgstr ""
"לא ניתן לקבל נתונים מלוח הגזירים. הזמן שהוקצב ל־OpenClipboard() הסתיים."
#: gdk/win32/gdkclipdrop-win32.c:940
#, c-format
@@ -815,7 +816,8 @@ msgstr "אין מספיק זיכרון ביעד"
msgid "Need complete input to do conversion"
msgstr "נדרש קלט מלא כדי לבצע המרה"
#: gdk/x11/gdktextlistconverter-x11.c:216 gdk/x11/gdktextlistconverter-x11.c:250
#: gdk/x11/gdktextlistconverter-x11.c:216
#: gdk/x11/gdktextlistconverter-x11.c:250
msgid "Invalid byte sequence in conversion input"
msgstr "רצף בתים שגוי בקלט ההמרה"
@@ -838,10 +840,6 @@ msgstr "מימוש זה של GLES %d.%d לא תומך בנתוני קודקוד
msgid "OpenGL ES 3.0 is not supported by this renderer."
msgstr "אין תמיכה ב־OpenGL ES 3.0 במנגנון העיבוד הזה."
#: gsk/gpu/gsknglrenderer.c:62
msgid "OpenGL 3.3 required"
msgstr "צריך OpenGL 3.3"
#: gtk/a11y/gtkatspiaction.c:239
msgctxt "accessibility"
msgid "Click"
@@ -1316,7 +1314,8 @@ msgstr ""
#. * translated on keyboards used for your language, don't translate
#. * this.
#.
#: gtk/gtkaccelgroup.c:837 gtk/gtkshortcutlabel.c:101 gtk/gtkshortcutlabel.c:137
#: gtk/gtkaccelgroup.c:837 gtk/gtkshortcutlabel.c:101
#: gtk/gtkshortcutlabel.c:137
msgctxt "keyboard label"
msgid "Shift"
msgstr "Shift"
@@ -1326,7 +1325,8 @@ msgstr "Shift"
#. * translated on keyboards used for your language, don't translate
#. * this.
#.
#: gtk/gtkaccelgroup.c:856 gtk/gtkshortcutlabel.c:104 gtk/gtkshortcutlabel.c:139
#: gtk/gtkaccelgroup.c:856 gtk/gtkshortcutlabel.c:104
#: gtk/gtkshortcutlabel.c:139
msgctxt "keyboard label"
msgid "Ctrl"
msgstr "Ctrl"
@@ -1336,7 +1336,8 @@ msgstr "Ctrl"
#. * translated on keyboards used for your language, don't translate
#. * this.
#.
#: gtk/gtkaccelgroup.c:875 gtk/gtkshortcutlabel.c:107 gtk/gtkshortcutlabel.c:141
#: gtk/gtkaccelgroup.c:875 gtk/gtkshortcutlabel.c:107
#: gtk/gtkshortcutlabel.c:141
msgctxt "keyboard label"
msgid "Alt"
msgstr "Alt"
@@ -1346,7 +1347,8 @@ msgstr "Alt"
#. * translated on keyboards used for your language, don't translate
#. * this.
#.
#: gtk/gtkaccelgroup.c:893 gtk/gtkshortcutlabel.c:113 gtk/gtkshortcutlabel.c:143
#: gtk/gtkaccelgroup.c:893 gtk/gtkshortcutlabel.c:113
#: gtk/gtkshortcutlabel.c:143
msgctxt "keyboard label"
msgid "Super"
msgstr "Super"
@@ -1356,7 +1358,8 @@ msgstr "Super"
#. * translated on keyboards used for your language, don't translate
#. * this.
#.
#: gtk/gtkaccelgroup.c:907 gtk/gtkshortcutlabel.c:116 gtk/gtkshortcutlabel.c:145
#: gtk/gtkaccelgroup.c:907 gtk/gtkshortcutlabel.c:116
#: gtk/gtkshortcutlabel.c:145
msgctxt "keyboard label"
msgid "Hyper"
msgstr "Hyper"
@@ -1366,7 +1369,8 @@ msgstr "Hyper"
#. * translated on keyboards used for your language, don't translate
#. * this.
#.
#: gtk/gtkaccelgroup.c:922 gtk/gtkshortcutlabel.c:110 gtk/gtkshortcutlabel.c:148
#: gtk/gtkaccelgroup.c:922 gtk/gtkshortcutlabel.c:110
#: gtk/gtkshortcutlabel.c:148
msgctxt "keyboard label"
msgid "Meta"
msgstr "מטה"
@@ -2292,12 +2296,13 @@ msgstr "קובץ בשם זה כבר קיים"
#: gtk/gtkfilechoosernative.c:520 gtk/gtkfilechoosernative.c:600
#: gtk/gtkfilechooserwidget.c:1188 gtk/gtkfilechooserwidget.c:4973
#: gtk/gtkfiledialog.c:843 gtk/gtkmessagedialog.c:170 gtk/gtkmessagedialog.c:179
#: gtk/gtkmountoperation.c:608 gtk/print/gtkpagesetupunixdialog.c:282
#: gtk/print/gtkprintbackend.c:638 gtk/print/gtkprintunixdialog.c:682
#: gtk/print/gtkprintunixdialog.c:839 gtk/gtkwindow.c:6256
#: gtk/ui/gtkappchooserdialog.ui:48 gtk/ui/gtkassistant.ui:52
#: gtk/ui/gtkcolorchooserdialog.ui:36 gtk/ui/gtkfontchooserdialog.ui:27
#: gtk/gtkfiledialog.c:843 gtk/gtkmessagedialog.c:170
#: gtk/gtkmessagedialog.c:179 gtk/gtkmountoperation.c:608
#: gtk/print/gtkpagesetupunixdialog.c:282 gtk/print/gtkprintbackend.c:638
#: gtk/print/gtkprintunixdialog.c:682 gtk/print/gtkprintunixdialog.c:839
#: gtk/gtkwindow.c:6256 gtk/ui/gtkappchooserdialog.ui:48
#: gtk/ui/gtkassistant.ui:52 gtk/ui/gtkcolorchooserdialog.ui:36
#: gtk/ui/gtkfontchooserdialog.ui:27
msgid "_Cancel"
msgstr "_ביטול"
@@ -2679,36 +2684,36 @@ msgctxt "Font feature value"
msgid "Enable"
msgstr "לאפשר"
#: gtk/gtkfontchooserwidget.c:2459
#: gtk/gtkfontchooserwidget.c:2457
msgid "Default"
msgstr "ברירת מחדל"
#: gtk/gtkfontchooserwidget.c:2521
#: gtk/gtkfontchooserwidget.c:2519
msgid "Ligatures"
msgstr "צרוף אותיות"
#: gtk/gtkfontchooserwidget.c:2522
#: gtk/gtkfontchooserwidget.c:2520
msgid "Letter Case"
msgstr "אותיות רישיות"
#: gtk/gtkfontchooserwidget.c:2523
#: gtk/gtkfontchooserwidget.c:2521
msgid "Number Case"
msgstr "מספר מונה"
#: gtk/gtkfontchooserwidget.c:2524
#: gtk/gtkfontchooserwidget.c:2522
msgid "Number Spacing"
msgstr "מספר רווח"
# msgctxt "OpenType layout"
#: gtk/gtkfontchooserwidget.c:2525
#: gtk/gtkfontchooserwidget.c:2523
msgid "Fractions"
msgstr "שברים"
#: gtk/gtkfontchooserwidget.c:2526
#: gtk/gtkfontchooserwidget.c:2524
msgid "Style Variations"
msgstr "מאפייני סגנון"
#: gtk/gtkfontchooserwidget.c:2528
#: gtk/gtkfontchooserwidget.c:2526
msgid "Character Variations"
msgstr "הגווני תו"
@@ -2970,7 +2975,8 @@ msgstr "ניהול גדלים מותאמים…"
msgid "_Apply"
msgstr "ה_חלה"
#: gtk/print/gtkpagesetupunixdialog.c:318 gtk/print/gtkpagesetupunixdialog.c:570
#: gtk/print/gtkpagesetupunixdialog.c:318
#: gtk/print/gtkpagesetupunixdialog.c:570
msgid "Any Printer"
msgstr "מדפסת כלשהי"
@@ -3597,7 +3603,7 @@ msgstr "לא נתן להעביר את הפריט עם הכתובת „%s” אל
msgid "No registered application with name “%s” for item with URI “%s” found"
msgstr "לא נמצא יישום הרשום בשם „%s” עבור הפריט בעל הכתובת „%s”"
#: gtk/gtksearchentry.c:814
#: gtk/gtksearchentry.c:810
msgid "Clear Entry"
msgstr "פינוי הרשומה"
@@ -3708,9 +3714,9 @@ msgstr "להשתמש במפקח GTK?"
#: gtk/gtkwindow.c:6247
#, c-format
msgid ""
"GTK Inspector is an interactive debugger that lets you explore and modify the "
"internals of any GTK application. Using it may cause the application to break "
"or crash."
"GTK Inspector is an interactive debugger that lets you explore and modify "
"the internals of any GTK application. Using it may cause the application to "
"break or crash."
msgstr ""
"מפקח GTK‎ הוא מנפה שגיאות הידודי המאפשר לך לחקור ולשנות את הפנים של כל יישום "
"GTK+‎. שימוש בו יכול לגרום ליישום להישבר או לקרוס."
@@ -3858,8 +3864,8 @@ msgstr "ניתן להקליד כאן כל הוראת CSS המוכרת על יד
#: gtk/inspector/css-editor.c:129
msgid ""
"You can temporarily disable this custom CSS by clicking on the “Pause” button "
"above."
"You can temporarily disable this custom CSS by clicking on the “Pause” "
"button above."
msgstr "ניתן להשבית באופן זמני CSS מותאם על ידי לחיצה על הכפתור „השהיה” מעל."
#: gtk/inspector/css-editor.c:130
@@ -4436,7 +4442,8 @@ msgstr "הצגת עדכונים גרפיים"
#: gtk/inspector/visual.ui:430
msgid ""
"Tints all the places where the current renderer uses Cairo instead of the GPU."
"Tints all the places where the current renderer uses Cairo instead of the "
"GPU."
msgstr ""
"מכהה את כל המקומות שמעבד התצוגה הנוכחית משתמש ב־Cairo במקום במעבד הגרפי."
@@ -6438,7 +6445,8 @@ msgstr "_בחירה"
msgid "Pag_es:"
msgstr "_דפים:"
#: gtk/print/ui/gtkprintunixdialog.ui:260 gtk/print/ui/gtkprintunixdialog.ui:273
#: gtk/print/ui/gtkprintunixdialog.ui:260
#: gtk/print/ui/gtkprintunixdialog.ui:273
msgid ""
"Specify one or more page ranges,\n"
" e.g. 13, 7, 11"
@@ -6545,8 +6553,10 @@ msgid "A_t:"
msgstr "_ב:"
#. Ability to parse the am/pm format depends on actual locale. You can remove the am/pm values below for your locale if they are not supported.
#: gtk/print/ui/gtkprintunixdialog.ui:903 gtk/print/ui/gtkprintunixdialog.ui:905
#: gtk/print/ui/gtkprintunixdialog.ui:921 gtk/print/ui/gtkprintunixdialog.ui:923
#: gtk/print/ui/gtkprintunixdialog.ui:903
#: gtk/print/ui/gtkprintunixdialog.ui:905
#: gtk/print/ui/gtkprintunixdialog.ui:921
#: gtk/print/ui/gtkprintunixdialog.ui:923
msgid ""
"Specify the time of print,\n"
" e.g. 1530, 235 pm, 141520, 114630 am, 4 pm"
@@ -6559,7 +6569,8 @@ msgstr ""
msgid "On _hold"
msgstr "בהמ_תנה"
#: gtk/print/ui/gtkprintunixdialog.ui:937 gtk/print/ui/gtkprintunixdialog.ui:938
#: gtk/print/ui/gtkprintunixdialog.ui:937
#: gtk/print/ui/gtkprintunixdialog.ui:938
msgid "Hold the job until it is explicitly released"
msgstr "החזקת המשימה עד שתשוחרר מפורשות"
@@ -7249,8 +7260,8 @@ msgstr ""
#: tools/gtk-builder-tool-enumerate.c:56 tools/gtk-builder-tool-preview.c:179
#: tools/gtk-builder-tool-preview.c:180 tools/gtk-builder-tool-screenshot.c:360
#: tools/gtk-builder-tool-simplify.c:2529 tools/gtk-builder-tool-validate.c:261
#: tools/gtk-path-tool-render.c:121 tools/gtk-rendernode-tool-compare.c:67
#: tools/gtk-rendernode-tool-info.c:214 tools/gtk-rendernode-tool-show.c:106
#: tools/gtk-path-tool-render.c:121 tools/gtk-rendernode-tool-info.c:214
#: tools/gtk-rendernode-tool-show.c:106
msgid "FILE"
msgstr "FILE"
@@ -7404,7 +7415,8 @@ msgstr ""
"לא ניתן לטעון את „%s”: %s\n"
"\n"
#: tools/gtk-builder-tool-simplify.c:2466 tools/gtk-builder-tool-simplify.c:2472
#: tools/gtk-builder-tool-simplify.c:2466
#: tools/gtk-builder-tool-simplify.c:2472
#: tools/gtk-builder-tool-simplify.c:2478
#, c-format
msgid "Cant parse “%s”: %s\n"
@@ -7823,6 +7835,18 @@ msgstr "פענוח %s כמספר נכשל"
#: tools/gtk-rendernode-tool.c:35
#, c-format
#| msgid ""
#| "Usage:\n"
#| " gtk4-rendernode-tool [COMMAND] [OPTION…] FILE\n"
#| "\n"
#| "Perform various tasks on GTK render nodes.\n"
#| "\n"
#| "Commands:\n"
#| " benchmark Benchmark rendering of a node\n"
#| " info Provide information about the node\n"
#| " show Show the node\n"
#| " render Take a screenshot of the node\n"
#| "\n"
msgid ""
"Usage:\n"
" gtk4-rendernode-tool [COMMAND] [OPTION…] FILE\n"
@@ -7855,7 +7879,7 @@ msgid "Add renderer to benchmark"
msgstr "הוספת מנגנון עיבוד למדידת ביצועים"
#: tools/gtk-rendernode-tool-benchmark.c:94
#: tools/gtk-rendernode-tool-compare.c:65 tools/gtk-rendernode-tool-render.c:195
#: tools/gtk-rendernode-tool-render.c:195
msgid "RENDERER"
msgstr "מעבד תצוגה"
@@ -7887,60 +7911,6 @@ msgstr "לא צוין קובץ .node\n"
msgid "Can only benchmark a single .node file\n"
msgstr "יכול למדוד ביצועים רק לקובץ ‎.node בודד\n"
#: tools/gtk-rendernode-tool-compare.c:65 tools/gtk-rendernode-tool-render.c:195
msgid "Renderer to use"
msgstr "עיבוד לשימוש"
#: tools/gtk-rendernode-tool-compare.c:67
msgid "Output file"
msgstr "קובץ פלט"
#: tools/gtk-rendernode-tool-compare.c:70
msgid "FILE1 FILE2"
msgstr "קובץ1 קובץ2"
#: tools/gtk-rendernode-tool-compare.c:82
msgid "Compare .node or .png files."
msgstr "השוואת קובצי .node או .png"
#: tools/gtk-rendernode-tool-compare.c:95
#, c-format
msgid "Must specify two files\n"
msgstr "חובה לציין שני קבצים.\n"
#: tools/gtk-rendernode-tool-compare.c:102
#: tools/gtk-rendernode-tool-render.c:150
#, c-format
msgid "Failed to create renderer: %s\n"
msgstr "יצירת מנגנון עיבוד נכשלה: %s\n"
#: tools/gtk-rendernode-tool-compare.c:111
#, c-format
#| msgid "Failed to save %s: %s\n"
msgid "Failed to load %s: %s\n"
msgstr "הטעינה של %s נכשלה: %s\n"
#: tools/gtk-rendernode-tool-compare.c:122
#, c-format
msgid "Could not save diff image to %s\n"
msgstr "לא ניתן לשמור את תמונת ההבדל אל %s\n"
#: tools/gtk-rendernode-tool-compare.c:132
#, c-format
#| msgid "Output written to %s.\n"
msgid "Differences witten to %s.\n"
msgstr "ההבדלים נכתבו אל %s.\n"
#: tools/gtk-rendernode-tool-compare.c:134
#, c-format
msgid "The images are different.\n"
msgstr "התמונות שונות.\n"
#: tools/gtk-rendernode-tool-compare.c:137
#, c-format
msgid "No differences.\n"
msgstr "אין הבדלים.\n"
#: tools/gtk-rendernode-tool-info.c:191
#, c-format
msgid "Number of nodes: %u\n"
@@ -7984,6 +7954,15 @@ msgstr ""
msgid "Failed to generate SVG: %s\n"
msgstr "יצירת SVG נכשלה: %s\n"
#: tools/gtk-rendernode-tool-render.c:150
#, c-format
msgid "Failed to create renderer: %s\n"
msgstr "יצירת מנגנון עיבוד נכשלה: %s\n"
#: tools/gtk-rendernode-tool-render.c:195
msgid "Renderer to use"
msgstr "עיבוד לשימוש"
#: tools/gtk-rendernode-tool-render.c:211
msgid "Render a .node file to an image."
msgstr "עיבוד קובץ .node לתמונה."
@@ -9128,8 +9107,8 @@ msgstr "default:RTL"
#~ "צבע זה בעזרת המשולש הפנימי."
#~ msgid ""
#~ "Click the eyedropper, then click a color anywhere on your screen to select "
#~ "that color."
#~ "Click the eyedropper, then click a color anywhere on your screen to "
#~ "select that color."
#~ msgstr "יש ללחוץ על הטפטפת ואז ללחוץ על צבע כלשהו במסך לבחירת אותו הצבע."
#~ msgid "_Hue:"
@@ -9181,8 +9160,8 @@ msgstr "default:RTL"
#~ "You can enter an HTML-style hexadecimal color value, or simply a color "
#~ "name such as “orange” in this entry."
#~ msgstr ""
#~ "ניתן להזין ערך צבע הקסדצימלי בסגנון HTML, או פשוט לכתוב שם צבע באנגלית כמו "
#~ "„orange” ברשומה זו."
#~ "ניתן להזין ערך צבע הקסדצימלי בסגנון HTML, או פשוט לכתוב שם צבע באנגלית "
#~ "כמו „orange” ברשומה זו."
#~ msgid "_Palette:"
#~ msgstr "_פלטה:"
@@ -9989,11 +9968,11 @@ msgstr "default:RTL"
#~ msgstr "smb://foo.example.com, ssh://192.168.0.1"
#~ msgid ""
#~ "The WGL_ARB_create_context extension needed to create core profiles is not "
#~ "available"
#~ "The WGL_ARB_create_context extension needed to create core profiles is "
#~ "not available"
#~ msgstr ""
#~ "The WGL_ARB_create_context extension needed to create core profiles is not "
#~ "available"
#~ "The WGL_ARB_create_context extension needed to create core profiles is "
#~ "not available"
#~ msgid "Changes are applied instantly, only for this selected widget."
#~ msgstr "שינויים מוחלקים מיידית, רק ליישומון נבחר זה."
@@ -10507,11 +10486,11 @@ msgstr "default:RTL"
#~ msgstr "Unable to load image-loading module: %s: %s"
#~ msgid ""
#~ "Image-loading module %s does not export the proper interface; perhaps it's "
#~ "from a different GTK version?"
#~ "Image-loading module %s does not export the proper interface; perhaps "
#~ "it's from a different GTK version?"
#~ msgstr ""
#~ "Image-loading module %s does not export the proper interface; perhaps it's "
#~ "from a different GTK version?"
#~ "Image-loading module %s does not export the proper interface; perhaps "
#~ "it's from a different GTK version?"
#~ msgid "Couldn't recognize the image file format for file '%s'"
#~ msgstr "לא ניתן לזהות את פורמט התמונה בקובץ '%s'"
@@ -10522,7 +10501,8 @@ msgstr "default:RTL"
#~ msgid "Error writing to image file: %s"
#~ msgstr "שגיאה בכתיבה לקובץ תמונה: %s"
#~ msgid "This build of gdk-pixbuf does not support saving the image format: %s"
#~ msgid ""
#~ "This build of gdk-pixbuf does not support saving the image format: %s"
#~ msgstr "בניה זו של gdk-pixbuf לא תומכת בשמירת התמונה בפורמט: %s"
#~ msgid "Insufficient memory to save image to callback"
@@ -11100,8 +11080,8 @@ msgstr "default:RTL"
#~ "available to this program.\n"
#~ "Are you sure that you want to select it?"
#~ msgstr ""
#~ "הקובץ \"%s\" תלוי במכונה אחרת (הנקראת %s) וייתכן כי לא תיהיה זמינה לתוכנית "
#~ "זו. האם אתה בטוח שברצונך לבחור אותו?"
#~ "הקובץ \"%s\" תלוי במכונה אחרת (הנקראת %s) וייתכן כי לא תיהיה זמינה "
#~ "לתוכנית זו. האם אתה בטוח שברצונך לבחור אותו?"
#~ msgid "_New Folder"
#~ msgstr "תיקייה _חדשה"
+26 -77
View File
@@ -11,8 +11,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gtk\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n"
"POT-Creation-Date: 2024-03-02 15:19+0000\n"
"PO-Revision-Date: 2024-03-02 16:46+0100\n"
"POT-Creation-Date: 2024-02-22 15:33+0000\n"
"PO-Revision-Date: 2024-02-22 19:48+0100\n"
"Last-Translator: Ekaterine Papava <papava.e@gtu.ge>\n"
"Language-Team: Georgian <http://mail.gnome.org/mailman/listinfo/gnome-ge-"
"list>\n"
@@ -124,22 +124,22 @@ msgstr "GL API არ არის დაშვებული."
msgid "Unable to create a GL context"
msgstr "GL-ის კონტექსტის შექმნა შეუძლებელია"
#: gdk/gdkglcontext.c:1304
#: gdk/gdkglcontext.c:1303
msgid "OpenGL ES disabled via GDK_DEBUG"
msgstr "OpenGL ES გამორთულია GDK_DEBUG საშუალებით"
#: gdk/gdkglcontext.c:1316
#: gdk/gdkglcontext.c:1315
msgid "OpenGL disabled via GDK_DEBUG"
msgstr "OpenGL გამორთულია GDK_DEBUG საშუალებით"
#: gdk/gdkglcontext.c:1327
#: gdk/gdkglcontext.c:1326
#, c-format
msgid "Application does not support %s API"
msgstr "აპლიკაციას %s-ის API-ის მხარდაჭერა არ გააცნია"
#. translators: This is about OpenGL backend names, like
#. * "Trying to use X11 GLX, but EGL is already in use"
#: gdk/gdkglcontext.c:2113
#: gdk/gdkglcontext.c:2112
#, c-format
msgid "Trying to use %s, but %s is already in use"
msgstr "%s გამოყენების მცდელობა, მაგრამ %s უკვე გამოიყენება"
@@ -864,10 +864,6 @@ msgstr ""
msgid "OpenGL ES 3.0 is not supported by this renderer."
msgstr "OpenGL ES 3.0 ამ რენდერერის მიერ მხარდაჭერილი არაა."
#: gsk/gpu/gsknglrenderer.c:62
msgid "OpenGL 3.3 required"
msgstr "აუცილებელია OpenGL 3.3"
#: gtk/a11y/gtkatspiaction.c:239
msgctxt "accessibility"
msgid "Click"
@@ -2656,35 +2652,35 @@ msgctxt "Font feature value"
msgid "Enable"
msgstr "ჩართვა"
#: gtk/gtkfontchooserwidget.c:2459
#: gtk/gtkfontchooserwidget.c:2457
msgid "Default"
msgstr "ნაგულისხმევი"
#: gtk/gtkfontchooserwidget.c:2521
#: gtk/gtkfontchooserwidget.c:2519
msgid "Ligatures"
msgstr "ლიგატურები"
#: gtk/gtkfontchooserwidget.c:2522
#: gtk/gtkfontchooserwidget.c:2520
msgid "Letter Case"
msgstr "დიდი თუ პატარა სიმბოლოები"
#: gtk/gtkfontchooserwidget.c:2523
#: gtk/gtkfontchooserwidget.c:2521
msgid "Number Case"
msgstr "დიდი თუ პატარა ციფრები"
#: gtk/gtkfontchooserwidget.c:2524
#: gtk/gtkfontchooserwidget.c:2522
msgid "Number Spacing"
msgstr "ციფრებს შორის დაცილება"
#: gtk/gtkfontchooserwidget.c:2525
#: gtk/gtkfontchooserwidget.c:2523
msgid "Fractions"
msgstr "ფრაქციები"
#: gtk/gtkfontchooserwidget.c:2526
#: gtk/gtkfontchooserwidget.c:2524
msgid "Style Variations"
msgstr "სტილის ვარიაციები"
#: gtk/gtkfontchooserwidget.c:2528
#: gtk/gtkfontchooserwidget.c:2526
msgid "Character Variations"
msgstr "სიმბოლოების ვარიანტები"
@@ -3569,7 +3565,7 @@ msgstr ""
"რეგისტრირებული აპლიკაცია სახელით \"%s\" ჩანაწერისთვის ბმულით \"%s\" "
"აღმოჩენილი არაა"
#: gtk/gtksearchentry.c:814
#: gtk/gtksearchentry.c:810
msgid "Clear Entry"
msgstr "ჩანაწერის გასუფთავება"
@@ -7222,8 +7218,8 @@ msgstr ""
#: tools/gtk-builder-tool-enumerate.c:56 tools/gtk-builder-tool-preview.c:179
#: tools/gtk-builder-tool-preview.c:180 tools/gtk-builder-tool-screenshot.c:360
#: tools/gtk-builder-tool-simplify.c:2529 tools/gtk-builder-tool-validate.c:261
#: tools/gtk-path-tool-render.c:121 tools/gtk-rendernode-tool-compare.c:67
#: tools/gtk-rendernode-tool-info.c:214 tools/gtk-rendernode-tool-show.c:106
#: tools/gtk-path-tool-render.c:121 tools/gtk-rendernode-tool-info.c:214
#: tools/gtk-rendernode-tool-show.c:106
msgid "FILE"
msgstr "FILE"
@@ -7822,7 +7818,6 @@ msgid "Add renderer to benchmark"
msgstr "რენდერერის დამატება ტესტისთვის"
#: tools/gtk-rendernode-tool-benchmark.c:94
#: tools/gtk-rendernode-tool-compare.c:65
#: tools/gtk-rendernode-tool-render.c:195
msgid "RENDERER"
msgstr "რენდერერი"
@@ -7855,61 +7850,6 @@ msgstr ".ui ფაილი მითითებული არაა\n"
msgid "Can only benchmark a single .node file\n"
msgstr "შეგიძლიათ მხოლოდ ერთი .node ფაილის დატესტვა\n"
#: tools/gtk-rendernode-tool-compare.c:65
#: tools/gtk-rendernode-tool-render.c:195
msgid "Renderer to use"
msgstr "გამოყენებული რენდერერი"
#: tools/gtk-rendernode-tool-compare.c:67
msgid "Output file"
msgstr "გამოტანის ფაილი"
#: tools/gtk-rendernode-tool-compare.c:70
msgid "FILE1 FILE2"
msgstr "ფაილი1 ფაილი2"
#: tools/gtk-rendernode-tool-compare.c:82
msgid "Compare .node or .png files."
msgstr ".node ან .png ფაილების შედარება."
#: tools/gtk-rendernode-tool-compare.c:95
#, c-format
msgid "Must specify two files\n"
msgstr "აუცილებელია ორი ფაილის მითითება\n"
#: tools/gtk-rendernode-tool-compare.c:102
#: tools/gtk-rendernode-tool-render.c:150
#, c-format
msgid "Failed to create renderer: %s\n"
msgstr "რენდერერის შექმნა ჩავარდა: %s\n"
#: tools/gtk-rendernode-tool-compare.c:111
#, c-format
msgid "Failed to load %s: %s\n"
msgstr "\"%s'-ის ჩატვირთვა ჩავარდა: %s\n"
#: tools/gtk-rendernode-tool-compare.c:122
#, c-format
msgid "Could not save diff image to %s\n"
msgstr ""
"ვერ ჩავწერე სხვაობის გამოსახულება %s-ში\n"
"\n"
#: tools/gtk-rendernode-tool-compare.c:132
#, c-format
msgid "Differences witten to %s.\n"
msgstr "განსხვავებები ჩაწერილია %s-ში.\n"
#: tools/gtk-rendernode-tool-compare.c:134
#, c-format
msgid "The images are different.\n"
msgstr "გამოსახულებები განსხვავდება.\n"
#: tools/gtk-rendernode-tool-compare.c:137
#, c-format
msgid "No differences.\n"
msgstr "განსხვავებების გარეშე.\n"
#: tools/gtk-rendernode-tool-info.c:191
#, c-format
msgid "Number of nodes: %u\n"
@@ -7954,6 +7894,15 @@ msgstr ""
msgid "Failed to generate SVG: %s\n"
msgstr "შეცდომა SVG-ის გენერაციისას: %s\n"
#: tools/gtk-rendernode-tool-render.c:150
#, c-format
msgid "Failed to create renderer: %s\n"
msgstr "რენდერერის შექმნა ჩავარდა: %s\n"
#: tools/gtk-rendernode-tool-render.c:195
msgid "Renderer to use"
msgstr "გამოყენებული რენდერერი"
#: tools/gtk-rendernode-tool-render.c:211
msgid "Render a .node file to an image."
msgstr ".ui ფაილის რენდერი გამოსახულებაში."
+21 -28
View File
@@ -15,8 +15,8 @@ msgid ""
msgstr ""
"Project-Id-Version: lt\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n"
"POT-Creation-Date: 2024-02-23 01:06+0000\n"
"PO-Revision-Date: 2024-02-26 22:55+0200\n"
"POT-Creation-Date: 2024-02-17 12:16+0000\n"
"PO-Revision-Date: 2024-02-17 23:22+0200\n"
"Last-Translator: Aurimas Černius <aurisc4@gmail.com>\n"
"Language-Team: Lietuvių <gnome-lt@lists.akl.lt>\n"
"Language: lt\n"
@@ -124,9 +124,9 @@ msgstr "Nėra suderinamų formatų turinio perdavimui."
msgid "No GL API allowed."
msgstr "Nėra leidžiamas GL API."
#: gdk/gdkglcontext.c:442 gdk/win32/gdkglcontext-win32-wgl.c:395
#: gdk/win32/gdkglcontext-win32-wgl.c:538
#: gdk/win32/gdkglcontext-win32-wgl.c:582 gdk/x11/gdkglcontext-glx.c:691
#: gdk/gdkglcontext.c:442 gdk/win32/gdkglcontext-win32-wgl.c:386
#: gdk/win32/gdkglcontext-win32-wgl.c:529
#: gdk/win32/gdkglcontext-win32-wgl.c:573 gdk/x11/gdkglcontext-glx.c:691
msgid "Unable to create a GL context"
msgstr "Nepavyko sukurti GL konteksto"
@@ -714,21 +714,21 @@ msgstr "IDataObject_GetData (0x%x) klaida, grąžinama 0x%lx"
msgid "Failed to transmute DnD data W32 format 0x%x to %p (%s)"
msgstr "Nepavyko konvertuoti tempiamų duomenų W32 formato 0x%x į %p (%s)"
#: gdk/win32/gdkglcontext-win32-wgl.c:329
#: gdk/win32/gdkglcontext-win32-wgl.c:320
msgid "No GL implementation is available"
msgstr "Nėra galimo GL realizacijos"
#: gdk/win32/gdkglcontext-win32-wgl.c:404
#: gdk/win32/gdkglcontext-win32-wgl.c:395
#, c-format
msgid "WGL version %d.%d is too low, need at least %d.%d"
msgstr "WGL versija %d.%d yra per sena. GTK reikalauja bent %d.%d"
#: gdk/win32/gdkglcontext-win32-wgl.c:422
#: gdk/win32/gdkglcontext-win32-wgl.c:413
#, c-format
msgid "GL implementation cannot share GL contexts"
msgstr "GL realizacija negali dalintis GL kontekstais"
#: gdk/win32/gdkglcontext-win32-wgl.c:702
#: gdk/win32/gdkglcontext-win32-wgl.c:693
msgid "No available configurations for the given pixel format"
msgstr "Nėra galimų konfigūracijų nurodytam pikselių formatui"
@@ -1757,11 +1757,6 @@ msgctxt "accessibility"
msgid "comment"
msgstr "komentaras"
#: gtk/gtkaccessible.c:874
msgctxt "accessibility"
msgid "terminal"
msgstr "terminalas"
#: gtk/gtkalertdialog.c:668 gtk/print/gtkcustompaperunixdialog.c:322
#: gtk/gtkmessagedialog.c:166 gtk/ui/gtkassistant.ui:40
msgid "_Close"
@@ -2335,7 +2330,7 @@ msgid "If you delete an item, it will be permanently lost."
msgstr "Jei ištrinsite elementą, jis bus negrįžtamai prarastas."
#: gtk/gtkfilechooserwidget.c:1188 gtk/gtkfilechooserwidget.c:1786
#: gtk/gtklabel.c:5712 gtk/gtktext.c:6193 gtk/gtktextview.c:9080
#: gtk/gtklabel.c:5702 gtk/gtktext.c:6147 gtk/gtktextview.c:9018
msgid "_Delete"
msgstr "Iš_trinti"
@@ -2673,31 +2668,31 @@ msgstr "Užverti"
msgid "Close the infobar"
msgstr "Užverti informacijos juostą"
#: gtk/gtklabel.c:5709 gtk/gtktext.c:6181 gtk/gtktextview.c:9068
#: gtk/gtklabel.c:5699 gtk/gtktext.c:6135 gtk/gtktextview.c:9006
msgid "Cu_t"
msgstr "_Iškirpti"
#: gtk/gtklabel.c:5710 gtk/gtktext.c:6185 gtk/gtktextview.c:9072
#: gtk/gtklabel.c:5700 gtk/gtktext.c:6139 gtk/gtktextview.c:9010
msgid "_Copy"
msgstr "_Kopijuoti"
#: gtk/gtklabel.c:5711 gtk/gtktext.c:6189 gtk/gtktextview.c:9076
#: gtk/gtklabel.c:5701 gtk/gtktext.c:6143 gtk/gtktextview.c:9014
msgid "_Paste"
msgstr "Į_dėti"
#: gtk/gtklabel.c:5717 gtk/gtktext.c:6202 gtk/gtktextview.c:9101
#: gtk/gtklabel.c:5707 gtk/gtktext.c:6156 gtk/gtktextview.c:9039
msgid "Select _All"
msgstr "P_ažymėti viską"
#: gtk/gtklabel.c:5722
#: gtk/gtklabel.c:5712
msgid "_Open Link"
msgstr "_Atverti nuorodą"
#: gtk/gtklabel.c:5726
#: gtk/gtklabel.c:5716
msgid "Copy _Link Address"
msgstr "Kopijuoti _nuorodos adresą"
#: gtk/gtklabel.c:5770 gtk/gtktext.c:2724 gtk/gtktextview.c:9150
#: gtk/gtklabel.c:5760 gtk/gtktext.c:2716 gtk/gtktextview.c:9088
msgid "Context menu"
msgstr "Kontekstinis meniu"
@@ -3541,7 +3536,7 @@ msgstr "Nepavyko perkelti elemento su URI „%s“ į „%s“"
msgid "No registered application with name “%s” for item with URI “%s” found"
msgstr "Nerasta registruota programa pavadinimu „%s“ elementui su URI „%s“"
#: gtk/gtksearchentry.c:810
#: gtk/gtksearchentry.c:767
msgid "Clear Entry"
msgstr "Išvalyti lauką"
@@ -3632,15 +3627,15 @@ msgctxt "accessibility"
msgid "Sidebar"
msgstr "Šoninė juosta"
#: gtk/gtktext.c:6207 gtk/gtktextview.c:9106
#: gtk/gtktext.c:6161 gtk/gtktextview.c:9044
msgid "Insert _Emoji"
msgstr "Įterpti _emoji"
#: gtk/gtktextview.c:9088
#: gtk/gtktextview.c:9026
msgid "_Undo"
msgstr "Atša_ukti"
#: gtk/gtktextview.c:9092
#: gtk/gtktextview.c:9030
msgid "_Redo"
msgstr "Paka_rtoti"
@@ -7773,7 +7768,6 @@ msgid ""
"\n"
"Commands:\n"
" benchmark Benchmark rendering of a node\n"
" compare Compare nodes or images\n"
" info Provide information about the node\n"
" show Show the node\n"
" render Take a screenshot of the node\n"
@@ -7786,7 +7780,6 @@ msgstr ""
"\n"
"Komandos:\n"
" benchmark Mautoti viršūnės piešimą\n"
" compare Lyginti viršūnes ar paveikslėlius\n"
" info Pateikti viršūnės informaciją\n"
" show Rodyti viršūnę\n"
" render Padaryti viršūnės atvaizdą\n"
+322 -420
View File
File diff suppressed because it is too large Load Diff
+53 -109
View File
@@ -22,8 +22,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gtk+.master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n"
"POT-Creation-Date: 2024-03-02 15:19+0000\n"
"PO-Revision-Date: 2024-03-02 20:40+0300\n"
"POT-Creation-Date: 2024-02-10 11:53+0000\n"
"PO-Revision-Date: 2024-02-11 13:52+0300\n"
"Last-Translator: Artur So <arturios2005@mail.ru>\n"
"Language-Team: Русский <gnome-cyr@gnome.org>\n"
"Language: ru\n"
@@ -63,7 +63,7 @@ msgstr "Не удалось предоставить содержимое как
msgid "Cannot provide contents as %s"
msgstr "Не удалось предоставить содержимое как \"%s\""
#: gdk/gdkdisplay.c:176 gdk/gdkglcontext.c:459
#: gdk/gdkdisplay.c:176 gdk/gdkglcontext.c:462
msgid "The current backend does not support OpenGL"
msgstr "Текущий движок не поддерживает OpenGL"
@@ -128,32 +128,32 @@ msgstr "Перетаскивание из других приложений не
msgid "No compatible formats to transfer contents."
msgstr "Отсутствие совместимых форматов для передачи содержимого."
#: gdk/gdkglcontext.c:419 gdk/x11/gdkglcontext-glx.c:645
#: gdk/gdkglcontext.c:422 gdk/x11/gdkglcontext-glx.c:645
msgid "No GL API allowed."
msgstr "API GL не разрешен."
#: gdk/gdkglcontext.c:442 gdk/win32/gdkglcontext-win32-wgl.c:395
#: gdk/win32/gdkglcontext-win32-wgl.c:538
#: gdk/win32/gdkglcontext-win32-wgl.c:582 gdk/x11/gdkglcontext-glx.c:691
#: gdk/gdkglcontext.c:445 gdk/win32/gdkglcontext-win32-wgl.c:386
#: gdk/win32/gdkglcontext-win32-wgl.c:529
#: gdk/win32/gdkglcontext-win32-wgl.c:573 gdk/x11/gdkglcontext-glx.c:691
msgid "Unable to create a GL context"
msgstr "Невозможно создать контекст GL"
#: gdk/gdkglcontext.c:1304
#: gdk/gdkglcontext.c:1306
msgid "OpenGL ES disabled via GDK_DEBUG"
msgstr "OpenGL ES отключено через GDK_DEBUG"
#: gdk/gdkglcontext.c:1316
#: gdk/gdkglcontext.c:1318
msgid "OpenGL disabled via GDK_DEBUG"
msgstr "OpenGL отключено через GDK_DEBUG"
#: gdk/gdkglcontext.c:1327
#: gdk/gdkglcontext.c:1329
#, c-format
msgid "Application does not support %s API"
msgstr "Приложение не поддерживает %s API"
#. translators: This is about OpenGL backend names, like
#. * "Trying to use X11 GLX, but EGL is already in use"
#: gdk/gdkglcontext.c:2113
#: gdk/gdkglcontext.c:2115
#, c-format
msgid "Trying to use %s, but %s is already in use"
msgstr "Попытка использовать %s, но %s уже используется"
@@ -744,21 +744,21 @@ msgstr "Ошибка IDataObject_GetData (0x%x), возвращаю 0x%lx"
msgid "Failed to transmute DnD data W32 format 0x%x to %p (%s)"
msgstr "Не удалось преобразовать данные DnD W32 формата 0x%x в %p (%s)"
#: gdk/win32/gdkglcontext-win32-wgl.c:329
#: gdk/win32/gdkglcontext-win32-wgl.c:320
msgid "No GL implementation is available"
msgstr "Нет доступной реализации GL"
#: gdk/win32/gdkglcontext-win32-wgl.c:404
#: gdk/win32/gdkglcontext-win32-wgl.c:395
#, c-format
msgid "WGL version %d.%d is too low, need at least %d.%d"
msgstr "Версия WGL %d.%d слишком старая, требуется %d.%d"
#: gdk/win32/gdkglcontext-win32-wgl.c:422
#: gdk/win32/gdkglcontext-win32-wgl.c:413
#, c-format
msgid "GL implementation cannot share GL contexts"
msgstr "Реализация GL не может совместно использовать контексты GL"
#: gdk/win32/gdkglcontext-win32-wgl.c:702
#: gdk/win32/gdkglcontext-win32-wgl.c:693
msgid "No available configurations for the given pixel format"
msgstr "Нет доступных конфигураций для данного формата пикселя"
@@ -872,10 +872,6 @@ msgstr ""
msgid "OpenGL ES 3.0 is not supported by this renderer."
msgstr "OpenGL ES 3.0 не поддерживается этим рендерером."
#: gsk/gpu/gsknglrenderer.c:62
msgid "OpenGL 3.3 required"
msgstr "Требуется OpenGL 3.3"
#: gtk/a11y/gtkatspiaction.c:239
msgctxt "accessibility"
msgid "Click"
@@ -1792,11 +1788,6 @@ msgctxt "accessibility"
msgid "comment"
msgstr "комментарий"
#: gtk/gtkaccessible.c:874
msgctxt "accessibility"
msgid "terminal"
msgstr "терминал"
#: gtk/gtkalertdialog.c:668 gtk/print/gtkcustompaperunixdialog.c:322
#: gtk/gtkmessagedialog.c:166 gtk/ui/gtkassistant.ui:40
msgid "_Close"
@@ -2370,7 +2361,7 @@ msgid "If you delete an item, it will be permanently lost."
msgstr "Если вы удалите элемент, он будет навсегда утерян."
#: gtk/gtkfilechooserwidget.c:1188 gtk/gtkfilechooserwidget.c:1786
#: gtk/gtklabel.c:5712 gtk/gtktext.c:6193 gtk/gtktextview.c:9080
#: gtk/gtklabel.c:5702 gtk/gtktext.c:6147 gtk/gtktextview.c:9018
msgid "_Delete"
msgstr "_Удалить"
@@ -2666,36 +2657,36 @@ msgctxt "Font feature value"
msgid "Enable"
msgstr "Включить"
#: gtk/gtkfontchooserwidget.c:2459
#: gtk/gtkfontchooserwidget.c:2457
msgid "Default"
msgstr "По умолчанию"
# Этап передачи событий
#: gtk/gtkfontchooserwidget.c:2521
#: gtk/gtkfontchooserwidget.c:2519
msgid "Ligatures"
msgstr "Лигатуры"
#: gtk/gtkfontchooserwidget.c:2522
#: gtk/gtkfontchooserwidget.c:2520
msgid "Letter Case"
msgstr "Строчные / Заглавные"
#: gtk/gtkfontchooserwidget.c:2523
#: gtk/gtkfontchooserwidget.c:2521
msgid "Number Case"
msgstr "Написание Цифр"
#: gtk/gtkfontchooserwidget.c:2524
#: gtk/gtkfontchooserwidget.c:2522
msgid "Number Spacing"
msgstr "Пространство между числами"
#: gtk/gtkfontchooserwidget.c:2525
#: gtk/gtkfontchooserwidget.c:2523
msgid "Fractions"
msgstr "Дроби"
#: gtk/gtkfontchooserwidget.c:2526
#: gtk/gtkfontchooserwidget.c:2524
msgid "Style Variations"
msgstr "Вариации стилей"
#: gtk/gtkfontchooserwidget.c:2528
#: gtk/gtkfontchooserwidget.c:2526
msgid "Character Variations"
msgstr "Вариации символов"
@@ -2712,31 +2703,31 @@ msgstr "Закрыть"
msgid "Close the infobar"
msgstr "Закрыть информационную панель"
#: gtk/gtklabel.c:5709 gtk/gtktext.c:6181 gtk/gtktextview.c:9068
#: gtk/gtklabel.c:5699 gtk/gtktext.c:6135 gtk/gtktextview.c:9006
msgid "Cu_t"
msgstr "В_ырезать"
#: gtk/gtklabel.c:5710 gtk/gtktext.c:6185 gtk/gtktextview.c:9072
#: gtk/gtklabel.c:5700 gtk/gtktext.c:6139 gtk/gtktextview.c:9010
msgid "_Copy"
msgstr "_Копировать"
#: gtk/gtklabel.c:5711 gtk/gtktext.c:6189 gtk/gtktextview.c:9076
#: gtk/gtklabel.c:5701 gtk/gtktext.c:6143 gtk/gtktextview.c:9014
msgid "_Paste"
msgstr "Вст_авить"
#: gtk/gtklabel.c:5717 gtk/gtktext.c:6202 gtk/gtktextview.c:9101
#: gtk/gtklabel.c:5707 gtk/gtktext.c:6156 gtk/gtktextview.c:9039
msgid "Select _All"
msgstr "Выделить вс_ё"
#: gtk/gtklabel.c:5722
#: gtk/gtklabel.c:5712
msgid "_Open Link"
msgstr "_Открыть ссылку"
#: gtk/gtklabel.c:5726
#: gtk/gtklabel.c:5716
msgid "Copy _Link Address"
msgstr "Копировать адрес _ссылки"
#: gtk/gtklabel.c:5770 gtk/gtktext.c:2724 gtk/gtktextview.c:9150
#: gtk/gtklabel.c:5760 gtk/gtktext.c:2716 gtk/gtktextview.c:9088
msgid "Context menu"
msgstr "Контекстное меню"
@@ -3586,7 +3577,7 @@ msgstr ""
"Не найдено ни одного зарегистрированного приложения с названием «%s» для "
"элемента с URI «%s»"
#: gtk/gtksearchentry.c:814
#: gtk/gtksearchentry.c:767
msgid "Clear Entry"
msgstr "Очистить запись"
@@ -3677,15 +3668,15 @@ msgctxt "accessibility"
msgid "Sidebar"
msgstr "Боковая панель"
#: gtk/gtktext.c:6207 gtk/gtktextview.c:9106
#: gtk/gtktext.c:6161 gtk/gtktextview.c:9044
msgid "Insert _Emoji"
msgstr "Вставить _Emoji"
#: gtk/gtktextview.c:9088
#: gtk/gtktextview.c:9026
msgid "_Undo"
msgstr "_Отменить"
#: gtk/gtktextview.c:9092
#: gtk/gtktextview.c:9030
msgid "_Redo"
msgstr "_Повторить"
@@ -3884,37 +3875,37 @@ msgstr "Классы стилей"
msgid "CSS Property"
msgstr "Свойство CSS"
#: gtk/inspector/general.c:370
#: gtk/inspector/general.c:363
msgctxt "GL version"
msgid "None"
msgstr "Нет"
#: gtk/inspector/general.c:461
#: gtk/inspector/general.c:441
msgctxt "GL version"
msgid "Unknown"
msgstr "Неизвестно"
#: gtk/inspector/general.c:523
#: gtk/inspector/general.c:503
msgctxt "Vulkan device"
msgid "Disabled"
msgstr "Выключено"
#: gtk/inspector/general.c:524 gtk/inspector/general.c:525
#: gtk/inspector/general.c:504 gtk/inspector/general.c:505
msgctxt "Vulkan version"
msgid "Disabled"
msgstr "Выключено"
#: gtk/inspector/general.c:576
#: gtk/inspector/general.c:555
msgctxt "Vulkan device"
msgid "None"
msgstr "Нет"
#: gtk/inspector/general.c:577 gtk/inspector/general.c:578
#: gtk/inspector/general.c:556 gtk/inspector/general.c:557
msgctxt "Vulkan version"
msgid "None"
msgstr "Нет"
#: gtk/inspector/general.c:922
#: gtk/inspector/general.c:901
msgid "IM Context is hardcoded by GTK_IM_MODULE"
msgstr "Контекст IM жестко кодируется GTK_IM_MODULE"
@@ -7245,8 +7236,8 @@ msgstr ""
#: tools/gtk-builder-tool-enumerate.c:56 tools/gtk-builder-tool-preview.c:179
#: tools/gtk-builder-tool-preview.c:180 tools/gtk-builder-tool-screenshot.c:360
#: tools/gtk-builder-tool-simplify.c:2529 tools/gtk-builder-tool-validate.c:261
#: tools/gtk-path-tool-render.c:121 tools/gtk-rendernode-tool-compare.c:67
#: tools/gtk-rendernode-tool-info.c:214 tools/gtk-rendernode-tool-show.c:106
#: tools/gtk-path-tool-render.c:121 tools/gtk-rendernode-tool-info.c:214
#: tools/gtk-rendernode-tool-show.c:106
msgid "FILE"
msgstr "ФАЙЛ"
@@ -7822,7 +7813,6 @@ msgid ""
"\n"
"Commands:\n"
" benchmark Benchmark rendering of a node\n"
" compare Compare nodes or images\n"
" info Provide information about the node\n"
" show Show the node\n"
" render Take a screenshot of the node\n"
@@ -7835,7 +7825,6 @@ msgstr ""
"\n"
"Команды:\n"
" benchmark Тест рендеринга узла\n"
" compare Сравнить узлы или изображения\n"
" info Предоставить информацию об узле\n"
" show Показать узел\n"
" render Сделать снимок узла\n"
@@ -7846,7 +7835,6 @@ msgid "Add renderer to benchmark"
msgstr "Добавить рендерер в тест"
#: tools/gtk-rendernode-tool-benchmark.c:94
#: tools/gtk-rendernode-tool-compare.c:65
#: tools/gtk-rendernode-tool-render.c:195
msgid "RENDERER"
msgstr "РЕНДЕРЕР"
@@ -7879,59 +7867,6 @@ msgstr "Не указан файл .node\n"
msgid "Can only benchmark a single .node file\n"
msgstr "Можно выполнять тест только одного файла .node\n"
#: tools/gtk-rendernode-tool-compare.c:65
#: tools/gtk-rendernode-tool-render.c:195
msgid "Renderer to use"
msgstr "Используемый рендерер"
#: tools/gtk-rendernode-tool-compare.c:67
msgid "Output file"
msgstr "Выходной файл"
#: tools/gtk-rendernode-tool-compare.c:70
msgid "FILE1 FILE2"
msgstr "ФАЙЛ1 ФАЙЛ2"
#: tools/gtk-rendernode-tool-compare.c:82
msgid "Compare .node or .png files."
msgstr "Сравнение файлов .node или .png."
#: tools/gtk-rendernode-tool-compare.c:95
#, c-format
msgid "Must specify two files\n"
msgstr "Необходимо указать два файла\n"
#: tools/gtk-rendernode-tool-compare.c:102
#: tools/gtk-rendernode-tool-render.c:150
#, c-format
msgid "Failed to create renderer: %s\n"
msgstr "Не удалось создать рендерер: %s\n"
#: tools/gtk-rendernode-tool-compare.c:111
#, c-format
msgid "Failed to load %s: %s\n"
msgstr "Не удалось загрузить %s: %s\n"
#: tools/gtk-rendernode-tool-compare.c:122
#, c-format
msgid "Could not save diff image to %s\n"
msgstr "Не удалось сохранить различия между изображениями в %s\n"
#: tools/gtk-rendernode-tool-compare.c:132
#, c-format
msgid "Differences witten to %s.\n"
msgstr "Различия записаны в %s.\n"
#: tools/gtk-rendernode-tool-compare.c:134
#, c-format
msgid "The images are different.\n"
msgstr "Изображения разные.\n"
#: tools/gtk-rendernode-tool-compare.c:137
#, c-format
msgid "No differences.\n"
msgstr "Нет различий.\n"
#: tools/gtk-rendernode-tool-info.c:191
#, c-format
msgid "Number of nodes: %u\n"
@@ -7975,6 +7910,15 @@ msgstr ""
msgid "Failed to generate SVG: %s\n"
msgstr "Не удалось сгенерировать SVG: %s\n"
#: tools/gtk-rendernode-tool-render.c:150
#, c-format
msgid "Failed to create renderer: %s\n"
msgstr "Не удалось создать рендерер: %s\n"
#: tools/gtk-rendernode-tool-render.c:195
msgid "Renderer to use"
msgstr "Используемый рендерер"
#: tools/gtk-rendernode-tool-render.c:211
msgid "Render a .node file to an image."
msgstr "Преобразование .node файла в изображение."
+25 -21
View File
@@ -12,7 +12,7 @@ msgstr ""
"Project-Id-Version: gtk+ master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n"
"POT-Creation-Date: 2024-02-15 02:27+0000\n"
"PO-Revision-Date: 2024-02-25 18:29+0100\n"
"PO-Revision-Date: 2024-02-20 20:41+0100\n"
"Last-Translator: Matej Urbančič <mateju@src.gnome.org>\n"
"Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
"Language: sl_SI\n"
@@ -4426,8 +4426,10 @@ msgid ""
msgstr ""
#: gtk/inspector/visual.ui:436
#, fuzzy
#| msgid "Show Fallback Rendering"
msgid "Show Cairo Rendering"
msgstr "Pokaži izrisovanje Cairo"
msgstr "Pokaži povratno izrisovanje"
#: gtk/inspector/visual.ui:461
msgid "Show Baselines"
@@ -7519,15 +7521,15 @@ msgstr ""
#: tools/gtk-path-tool-decompose.c:84
msgid "Allow quadratic Bézier curves"
msgstr "Dovoli kvadratne Bezierjeve krivulje"
msgstr ""
#: tools/gtk-path-tool-decompose.c:85
msgid "Allow cubic Bézier curves"
msgstr "Dovoli kubične Bezierjeve krivulje"
msgstr ""
#: tools/gtk-path-tool-decompose.c:86
msgid "Allow conic Bézier curves"
msgstr "Dovoli konične Bezierjeve krivulje"
msgstr ""
#: tools/gtk-path-tool-decompose.c:87 tools/gtk-path-tool-info.c:88
#: tools/gtk-path-tool-render.c:125 tools/gtk-path-tool-restrict.c:38
@@ -7547,7 +7549,7 @@ msgstr "Ni podanih poti."
#: tools/gtk-path-tool-decompose.c:140 tools/gtk-path-tool-restrict.c:94
#: tools/gtk-path-tool-reverse.c:78
msgid "That didn't work out."
msgstr "To se ni obneslo."
msgstr ""
#: tools/gtk-path-tool-info.c:100
#, fuzzy
@@ -7557,15 +7559,15 @@ msgstr "Navesti je traba podrobnosti o vozlišču za izrisovanje."
#: tools/gtk-path-tool-info.c:121
msgid "Path is empty."
msgstr "Pot ni navedena."
msgstr ""
#: tools/gtk-path-tool-info.c:127
msgid "Path is closed"
msgstr "Pot je zaprta"
msgstr ""
#: tools/gtk-path-tool-info.c:129
msgid "Path length"
msgstr "Dolžina poti"
msgstr ""
#: tools/gtk-path-tool-info.c:138
#, c-format
@@ -7585,17 +7587,17 @@ msgstr "%d vrstic"
#: tools/gtk-path-tool-info.c:149
#, c-format
msgid "%d quadratics"
msgstr "%d kvadratnih"
msgstr ""
#: tools/gtk-path-tool-info.c:154
#, c-format
msgid "%d cubics"
msgstr "%d kubičnih"
msgstr ""
#: tools/gtk-path-tool-info.c:159
#, c-format
msgid "%d conics"
msgstr "%d koničnih"
msgstr ""
#: tools/gtk-path-tool-render.c:117 tools/gtk-path-tool-show.c:140
msgid "Fill the path (the default)"
@@ -7606,8 +7608,10 @@ msgid "Stroke the path"
msgstr ""
#: tools/gtk-path-tool-render.c:119 tools/gtk-path-tool-show.c:142
#, fuzzy
#| msgid "Show other locations"
msgid "Show path points"
msgstr "Pokaži točke poti"
msgstr "Pokaži druga mesta"
#: tools/gtk-path-tool-render.c:120 tools/gtk-path-tool-show.c:143
#, fuzzy
@@ -7617,11 +7621,11 @@ msgstr "Pokaži druga mesta"
#: tools/gtk-path-tool-render.c:121
msgid "The output file"
msgstr "Odvodna datoteka"
msgstr ""
#: tools/gtk-path-tool-render.c:122 tools/gtk-path-tool-show.c:144
msgid "Foreground color"
msgstr "Barva pisave"
msgstr ""
#: tools/gtk-path-tool-render.c:122 tools/gtk-path-tool-render.c:123
#: tools/gtk-path-tool-render.c:124 tools/gtk-path-tool-show.c:144
@@ -7631,7 +7635,7 @@ msgstr "BARVA"
#: tools/gtk-path-tool-render.c:123 tools/gtk-path-tool-show.c:145
msgid "Background color"
msgstr "Barva ozadja"
msgstr ""
#: tools/gtk-path-tool-render.c:124 tools/gtk-path-tool-show.c:146
#, fuzzy
@@ -7655,7 +7659,7 @@ msgstr "VREDNOST"
#: tools/gtk-path-tool-render.c:133 tools/gtk-path-tool-show.c:155
msgid "Line width (number)"
msgstr "Širina vrstice (številka)"
msgstr ""
#: tools/gtk-path-tool-render.c:134 tools/gtk-path-tool-show.c:156
msgid "Line cap (butt, round, square)"
@@ -7773,7 +7777,7 @@ msgstr "Predogled poti"
#: tools/gtk-path-tool-show.c:180
msgid "Display the path."
msgstr "Pokaži pot"
msgstr ""
#: tools/gtk-path-tool-show.c:215
#, fuzzy
@@ -7807,7 +7811,7 @@ msgstr "Datoteke %s ni mogoče shraniti: %s\n"
#: tools/gtk-path-tool-utils.c:111
msgid "Possible values: "
msgstr "Mogoče vrednosti: "
msgstr ""
#: tools/gtk-path-tool-utils.c:135
#, fuzzy, c-format
@@ -7871,11 +7875,11 @@ msgstr "IZRISOVALNIK"
#: tools/gtk-rendernode-tool-benchmark.c:95
msgid "Number of runs with each renderer"
msgstr "Število ponovitev z vsakim izrisovalnikom"
msgstr ""
#: tools/gtk-rendernode-tool-benchmark.c:95
msgid "RUNS"
msgstr "PONOVITVE"
msgstr ""
#: tools/gtk-rendernode-tool-benchmark.c:96
msgid "Dont download result/wait for GPU to finish"
+27 -79
View File
@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gtk+\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n"
"POT-Creation-Date: 2024-03-02 15:19+0000\n"
"PO-Revision-Date: 2024-03-02 22:39+0200\n"
"POT-Creation-Date: 2024-02-23 01:06+0000\n"
"PO-Revision-Date: 2024-02-23 09:47+0200\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
"Language: uk\n"
@@ -128,22 +128,22 @@ msgstr "Програмний інтерфейс GL заборонено."
msgid "Unable to create a GL context"
msgstr "Неможливо створити вміст GL"
#: gdk/gdkglcontext.c:1304
#: gdk/gdkglcontext.c:1303
msgid "OpenGL ES disabled via GDK_DEBUG"
msgstr "За допомогою GDK_DEBUG вимкнено OpenGL ES"
#: gdk/gdkglcontext.c:1316
#: gdk/gdkglcontext.c:1315
msgid "OpenGL disabled via GDK_DEBUG"
msgstr "OpenGL вимкнено за допомогою GDK_DEBUG"
#: gdk/gdkglcontext.c:1327
#: gdk/gdkglcontext.c:1326
#, c-format
msgid "Application does not support %s API"
msgstr "У програмі не передбачено підтримки програмного інтерфейсу %s"
#. translators: This is about OpenGL backend names, like
#. * "Trying to use X11 GLX, but EGL is already in use"
#: gdk/gdkglcontext.c:2113
#: gdk/gdkglcontext.c:2112
#, c-format
msgid "Trying to use %s, but %s is already in use"
msgstr "Намагаємося скористатися %s, але %s вже використано"
@@ -873,10 +873,6 @@ msgstr ""
msgid "OpenGL ES 3.0 is not supported by this renderer."
msgstr "У цьому засобі обробки не передбачено підтримки OpenGL ES 3.0."
#: gsk/gpu/gsknglrenderer.c:62
msgid "OpenGL 3.3 required"
msgstr "Потрібна OpenGL 3.3"
#: gtk/a11y/gtkatspiaction.c:239
msgctxt "accessibility"
msgid "Click"
@@ -1796,6 +1792,7 @@ msgid "comment"
msgstr "коментар"
#: gtk/gtkaccessible.c:874
#| msgid "Terminal Pager"
msgctxt "accessibility"
msgid "terminal"
msgstr "термінал"
@@ -2666,35 +2663,35 @@ msgctxt "Font feature value"
msgid "Enable"
msgstr "Увімкнути"
#: gtk/gtkfontchooserwidget.c:2459
#: gtk/gtkfontchooserwidget.c:2457
msgid "Default"
msgstr "Типово"
#: gtk/gtkfontchooserwidget.c:2521
#: gtk/gtkfontchooserwidget.c:2519
msgid "Ligatures"
msgstr "Лігатури"
#: gtk/gtkfontchooserwidget.c:2522
#: gtk/gtkfontchooserwidget.c:2520
msgid "Letter Case"
msgstr "Розмір літер"
#: gtk/gtkfontchooserwidget.c:2523
#: gtk/gtkfontchooserwidget.c:2521
msgid "Number Case"
msgstr "Розмір цифр"
#: gtk/gtkfontchooserwidget.c:2524
#: gtk/gtkfontchooserwidget.c:2522
msgid "Number Spacing"
msgstr "Інтервали між цифрами"
#: gtk/gtkfontchooserwidget.c:2525
#: gtk/gtkfontchooserwidget.c:2523
msgid "Fractions"
msgstr "Дроби"
#: gtk/gtkfontchooserwidget.c:2526
#: gtk/gtkfontchooserwidget.c:2524
msgid "Style Variations"
msgstr "Варіанти стилів"
#: gtk/gtkfontchooserwidget.c:2528
#: gtk/gtkfontchooserwidget.c:2526
msgid "Character Variations"
msgstr "Варіанти символів"
@@ -3584,7 +3581,7 @@ msgid "No registered application with name “%s” for item with URI “%s” f
msgstr ""
"Не знайдено зареєстрованої програми з назвою «%s» для пункту з URI «%s»"
#: gtk/gtksearchentry.c:814
#: gtk/gtksearchentry.c:810
msgid "Clear Entry"
msgstr "Спорожнити запис"
@@ -7240,8 +7237,8 @@ msgstr ""
#: tools/gtk-builder-tool-enumerate.c:56 tools/gtk-builder-tool-preview.c:179
#: tools/gtk-builder-tool-preview.c:180 tools/gtk-builder-tool-screenshot.c:360
#: tools/gtk-builder-tool-simplify.c:2529 tools/gtk-builder-tool-validate.c:261
#: tools/gtk-path-tool-render.c:121 tools/gtk-rendernode-tool-compare.c:67
#: tools/gtk-rendernode-tool-info.c:214 tools/gtk-rendernode-tool-show.c:106
#: tools/gtk-path-tool-render.c:121 tools/gtk-rendernode-tool-info.c:214
#: tools/gtk-rendernode-tool-show.c:106
msgid "FILE"
msgstr "ФАЙЛ"
@@ -7846,7 +7843,6 @@ msgid "Add renderer to benchmark"
msgstr "Додати обробник до тестування"
#: tools/gtk-rendernode-tool-benchmark.c:94
#: tools/gtk-rendernode-tool-compare.c:65
#: tools/gtk-rendernode-tool-render.c:195
msgid "RENDERER"
msgstr "ОБРОБНИК"
@@ -7880,63 +7876,6 @@ msgstr "Не вказано файл .node\n"
msgid "Can only benchmark a single .node file\n"
msgstr "Можлива одночасне тестування лише за допомогою одного файла .node\n"
#: tools/gtk-rendernode-tool-compare.c:65
#: tools/gtk-rendernode-tool-render.c:195
msgid "Renderer to use"
msgstr "Обробник, яким слід скористатися"
#: tools/gtk-rendernode-tool-compare.c:67
#| msgid "The output file"
msgid "Output file"
msgstr "Файл результатів"
#: tools/gtk-rendernode-tool-compare.c:70
msgid "FILE1 FILE2"
msgstr "ФАЙЛ1 ФАЙЛ2"
#: tools/gtk-rendernode-tool-compare.c:82
msgid "Compare .node or .png files."
msgstr "Порівняти файли .node або .png."
#: tools/gtk-rendernode-tool-compare.c:95
#, c-format
msgid "Must specify two files\n"
msgstr "Слід вказати два файли\n"
#: tools/gtk-rendernode-tool-compare.c:102
#: tools/gtk-rendernode-tool-render.c:150
#, c-format
msgid "Failed to create renderer: %s\n"
msgstr "Не вдалося створити засіб обробки: %s\n"
#: tools/gtk-rendernode-tool-compare.c:111
#, c-format
#| msgid "Failed to save %s: %s\n"
msgid "Failed to load %s: %s\n"
msgstr "Не вдалося завантажити %s: %s\n"
#: tools/gtk-rendernode-tool-compare.c:122
#, c-format
#| msgid "Could not rename %s back to %s: %s.\n"
msgid "Could not save diff image to %s\n"
msgstr "Не вдалося зберегти зображення-різницю до %s\n"
#: tools/gtk-rendernode-tool-compare.c:132
#, c-format
#| msgid "Output written to %s.\n"
msgid "Differences witten to %s.\n"
msgstr "Різниці записано до %s.\n"
#: tools/gtk-rendernode-tool-compare.c:134
#, c-format
msgid "The images are different.\n"
msgstr "Зображення є різними.\n"
#: tools/gtk-rendernode-tool-compare.c:137
#, c-format
msgid "No differences.\n"
msgstr "Немає різниці.\n"
#: tools/gtk-rendernode-tool-info.c:191
#, c-format
msgid "Number of nodes: %u\n"
@@ -7980,6 +7919,15 @@ msgstr ""
msgid "Failed to generate SVG: %s\n"
msgstr "Не вдалося створити SVG: %s\n"
#: tools/gtk-rendernode-tool-render.c:150
#, c-format
msgid "Failed to create renderer: %s\n"
msgstr "Не вдалося створити засіб обробки: %s\n"
#: tools/gtk-rendernode-tool-render.c:195
msgid "Renderer to use"
msgstr "Обробник, яким слід скористатися"
#: tools/gtk-rendernode-tool-render.c:211
msgid "Render a .node file to an image."
msgstr "Обробити файл .node до зображення."
@@ -1,21 +0,0 @@
color {
bounds: -1 -1 3 3;
color: black;
}
text {
font: "boxes 2px" url("data:font/ttf;base64,\
AAEAAAAIAIAAAwAAY21hcABwAD0AAAEQAAAANGdseWYkSHxMAAABTAAAADBoZWFkJuArvAAAAIwA\
AAA2aGhlYQwCAAIAAADEAAAAJGhtdHgEAAAAAAABCAAAAAZsb2NhABgADAAAAUQAAAAGbWF4cAAE\
AAUAAADoAAAAIG5hbWV4eNV2AAABfAAAABcAAQAAAAEZmrz+SvhfDzz1AAIIAAAAAADhwj0AAAAA\
AOIIiiwAAAAABAAGAAAAAAEAAgAAAAAAAAABAAAIAPwAAAAEAAAAAAAEAAABAAAAAAAAAAAAAAAA\
AAAAAQABAAAAAgAEAAEAAAAAAAEAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAABAAAAAwAAAAwA\
BAAoAAAABgAEAAEAAgAgAEH//wAAACAAQf///+D/wAABAAAAAAAAAAAADAAYAAAAAQAAAAAEAAQE\
AAMAADEhESEEAPwABAQAAQAAAAAEAAYAAAMAADEhESEEAPwABgAAAAABABIAAQAAAAAAAQAFAABi\
b3hlcwA=\
");
glyphs: 1 0;
offset: 0 1;
hint-style: full;
antialias: gray;
color: #808080;
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 B

@@ -1,23 +0,0 @@
color {
bounds: -1 -1 18 18;
color: black;
}
text {
font: "boxes 16px" url("data:font/ttf;base64,\
AAEAAAAIAIAAAwAAY21hcABUAL8AAAEcAAAAPGdseWavMnMAAAABZAAAAKhoZWFkJwCrnwAAAIwA\
AAA2aGhlYQwiACUAAADEAAAAJGhtdHgQIAAAAAABCAAAABJsb2NhAFgAjAAAAVgAAAAMbWF4cAAI\
AAkAAADoAAAAIG5hbWV4eNV2AAACDAAAABcAAQAAAAEZmo4ZWh5fDzz1AAIIAAAAAADhwj0AAAAA\
AOIJCg8AAAAABCAGAAAAAAEAAgAAAAAAAAABAAAIAPwAAAAEIAAAAAAEIAABAAAAAAAAAAAAAAAA\
AAAABAABAAAABQAIAAIAAAAAAAEAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEIAAABAAAAAAAAAAA\
AAABAAAAAwAAAAwABAAwAAAACAAIAAIAAAAgAEMAVP//AAAAIABBAFT////g/8D/sAABAAAAAAAA\
AAAAAAAMABgALABAAFQAAQAAAAAEAAQEAAMAADEhESEEAPwABAQAAQAAAAAEAAYAAAMAADEhESEE\
APwABgAAAgAAAAAEIAQgAAMABwAAMSERIRMRIREEIPvggAMABCD8YAMA/QAAAAIAAAAABAAEAAAD\
AAcAADEhESETESERBAD8AIADAAQA/IADAP0AAAACAAAAAAQABAAAAwAHAAAxIREhExEhEQQA/ACA\
AwAEAPyAAwD9AAAAAAABABIAAQAAAAAAAQAFAABib3hlcwA=\
");
glyphs: 2;
offset: 0 16;
hint-style: none;
antialias: gray;
color: #808080;
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 B

@@ -1,23 +0,0 @@
color {
bounds: -1 -1 18 18;
color: black;
}
text {
font: "boxes 16px" url("data:font/ttf;base64,\
AAEAAAAIAIAAAwAAY21hcABUAL8AAAEcAAAAPGdseWavMnMAAAABZAAAAKhoZWFkJwCrnwAAAIwA\
AAA2aGhlYQwiACUAAADEAAAAJGhtdHgQIAAAAAABCAAAABJsb2NhAFgAjAAAAVgAAAAMbWF4cAAI\
AAkAAADoAAAAIG5hbWV4eNV2AAACDAAAABcAAQAAAAEZmo4ZWh5fDzz1AAIIAAAAAADhwj0AAAAA\
AOIJCg8AAAAABCAGAAAAAAEAAgAAAAAAAAABAAAIAPwAAAAEIAAAAAAEIAABAAAAAAAAAAAAAAAA\
AAAABAABAAAABQAIAAIAAAAAAAEAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEIAAABAAAAAAAAAAA\
AAABAAAAAwAAAAwABAAwAAAACAAIAAIAAAAgAEMAVP//AAAAIABBAFT////g/8D/sAABAAAAAAAA\
AAAAAAAMABgALABAAFQAAQAAAAAEAAQEAAMAADEhESEEAPwABAQAAQAAAAAEAAYAAAMAADEhESEE\
APwABgAAAgAAAAAEIAQgAAMABwAAMSERIRMRIREEIPvggAMABCD8YAMA/QAAAAIAAAAABAAEAAAD\
AAcAADEhESETESERBAD8AIADAAQA/IADAP0AAAACAAAAAAQABAAAAwAHAAAxIREhExEhEQQA/ACA\
AwAEAPyAAwD9AAAAAAABABIAAQAAAAAAAQAFAABib3hlcwA=\
");
glyphs: 2;
offset: 0 16;
hint-style: slight;
antialias: gray;
color: #808080;
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 B

-20
View File
@@ -1,20 +0,0 @@
color {
bounds: -1 -1 258 514;
color: rgb(255,255,255);
}
transform {
transform: scale(256);
child: text {
font: "boxes 1.5" url("data:font/ttf;base64,AAEAAAAIAIAAAwAAY21hcAAJACgAAAEMAAAAJGdseWYRJj0oAAABNAAAABhoZWFkJtzvGAAAAIwA\
AAA2aGhlYQwCAAIAAADEAAAAJGhtdHgEAAAAAAABCAAAAARsb2NhAAAADAAAATAAAAAEbWF4cAAD\
AAUAAADoAAAAIG5hbWV4eNV2AAABTAAAABcAAQAAAAEZmuRJQz5fDzz1AAIIAAAAAADhwj0AAAAA\
AOIFT4QAAAAABAAEBAAAAAEAAgAAAAAAAAABAAAIAPwAAAAEAAAAAAAEAAABAAAAAAAAAAAAAAAA\
AAAAAQABAAAAAQAEAAEAAAAAAAEAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAEAAAADAAAADAAEABgA\
AAACAAIAAAAA//8AAP//AAEAAAAAAAwAAQAAAAAEAAQEAAMAADEhESEEAPwABAQAAAABABIAAQAA\
AAAAAQAFAABib3hlcwA=\
");
glyphs: 0 0;
offset: 0 2;
hint-style: slight;
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

-4
View File
@@ -1,4 +0,0 @@
text {
font: "Noto Sans Mono 300";
glyphs: "o";
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

@@ -1,8 +0,0 @@
color {
bounds: -3 -44 44 50;
color: rgb(255,255,255);
}
text {
font: "Cantarell 50px";
glyphs: 268435576 38;
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

@@ -1,7 +1,8 @@
transform {
transform: translate(0, 100);
child: text {
font: "text-mixed-color 15" url("data:font/ttf;base64,AAEAAAAKAIAAAwAgQ09MUgATAEEAAAJ8AAAALENQQUwB/wATAAACqAAAABpjbWFwAHcAPQAAATwA\
font: "text-mixed-color 20" url("data:font/ttf;base64,\
AAEAAAAKAIAAAwAgQ09MUgATAEEAAAJ8AAAALENQQUwB/wATAAACqAAAABpjbWFwAHcAPQAAATwA\
AAA0Z2x5Zu8g4kAAAAGEAAAA0mhlYWQmofyJAAAArAAAADZoaGVhDAEEAgAAAOQAAAAkaG10eAQA\
AQAAAAEoAAAAFGxvY2EAyAD5AAABcAAAABRtYXhwAAwACQAAAQgAAAAgbmFtZX7VdrQAAAJYAAAA\
IgABAAAAARmajs74k18PPPUAAggAAAAAAOHCPQAAAAAA4cpY+QAAAAAEAAgAAAAAAQACAAAAAAAA\
Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 B

After

Width:  |  Height:  |  Size: 173 B

Binary file not shown.
-173
View File
@@ -1,173 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="4.49">
<GlyphOrder>
<!-- The 'id' attribute is only for humans; it is ignored when parsed. -->
<GlyphID id="0" name=".notdef"/>
<GlyphID id="1" name="A"/>
<GlyphID id="2" name="B"/>
<GlyphID id="3" name="C"/>
<GlyphID id="4" name="T"/>
</GlyphOrder>
<head>
<!-- Most of this table will be recalculated by the compiler -->
<tableVersion value="1.0"/>
<fontRevision value="1.1"/>
<checkSumAdjustment value="0xf8313291"/>
<magicNumber value="0x5f0f3cf5"/>
<flags value="00000000 00000010"/>
<unitsPerEm value="2048"/>
<created value="Tue Jan 9 00:00:00 2024"/>
<modified value="Tue Feb 27 19:20:30 2024"/>
<xMin value="0"/>
<yMin value="0"/>
<xMax value="1024"/>
<yMax value="1028"/>
<macStyle value="00000000 00000000"/>
<lowestRecPPEM value="1"/>
<fontDirectionHint value="2"/>
<indexToLocFormat value="0"/>
<glyphDataFormat value="0"/>
</head>
<hhea>
<tableVersion value="0x00010000"/>
<ascent value="2048"/>
<descent value="-1024"/>
<lineGap value="0"/>
<advanceWidthMax value="1024"/>
<minLeftSideBearing value="0"/>
<minRightSideBearing value="0"/>
<xMaxExtent value="1024"/>
<caretSlopeRise value="1"/>
<caretSlopeRun value="0"/>
<caretOffset value="0"/>
<reserved0 value="0"/>
<reserved1 value="0"/>
<reserved2 value="0"/>
<reserved3 value="0"/>
<metricDataFormat value="0"/>
<numberOfHMetrics value="1"/>
</hhea>
<maxp>
<!-- Most of this table will be recalculated by the compiler -->
<tableVersion value="0x10000"/>
<numGlyphs value="1"/>
<maxPoints value="4"/>
<maxContours value="1"/>
<maxCompositePoints value="0"/>
<maxCompositeContours value="0"/>
<maxZones value="1"/>
<maxTwilightPoints value="0"/>
<maxStorage value="0"/>
<maxFunctionDefs value="0"/>
<maxInstructionDefs value="0"/>
<maxStackElements value="0"/>
<maxSizeOfInstructions value="0"/>
<maxComponentElements value="0"/>
<maxComponentDepth value="0"/>
</maxp>
<hmtx>
<mtx name=".notdef" width="1024" lsb="0"/>
<mtx name="A" width="1024" lsb="0"/>
<mtx name="B" width="1056" lsb="0"/>
<mtx name="C" width="1024" lsb="0"/>
<mtx name="T" width="1024" lsb="0"/>
</hmtx>
<cmap>
<tableVersion version="0"/>
<cmap_format_4 platformID="0" platEncID="3" language="0">
<map code="0x20" name=".notdef"/>
<map code="0x41" name="A"/>
<map code="0x42" name="B"/>
<map code="0x43" name="C"/>
<map code="0x54" name="T"/>
</cmap_format_4>
</cmap>
<loca>
<!-- The 'loca' table will be calculated by the compiler -->
</loca>
<glyf>
<!-- The xMin, yMin, xMax and yMax values
will be recalculated by the compiler. -->
<TTGlyph name=".notdef" xMin="0" yMin="0" xMax="1024" yMax="1028">
<contour>
<pt x="0" y="0" on="1"/>
<pt x="1024" y="0" on="1"/>
<pt x="1024" y="1028" on="1"/>
<pt x="0" y="1028" on="1"/>
</contour>
<instructions/>
</TTGlyph>
<TTGlyph name="A" xMin="0" yMin="0" xMax="1024" yMax="1536">
<contour>
<pt x="0" y="0" on="1"/>
<pt x="1024" y="0" on="1"/>
<pt x="1024" y="1536" on="1"/>
<pt x="0" y="1536" on="1"/>
</contour>
<instructions/>
</TTGlyph>
<TTGlyph name="B" xMin="0" yMin="0" xMax="1056" yMax="1056">
<contour>
<pt x="0" y="0" on="1"/>
<pt x="1056" y="0" on="1"/>
<pt x="1056" y="1056" on="1"/>
<pt x="0" y="1056" on="1"/>
</contour>
<contour>
<pt x="128" y="128" on="1"/>
<pt x="128" y="896" on="1"/>
<pt x="896" y="896" on="1"/>
<pt x="896" y="128" on="1"/>
</contour>
<instructions/>
</TTGlyph>
<TTGlyph name="C" xMin="0" yMin="0" xMax="1024" yMax="1024">
<contour>
<pt x="0" y="0" on="1"/>
<pt x="1024" y="0" on="1"/>
<pt x="1024" y="1024" on="1"/>
<pt x="0" y="1024" on="1"/>
</contour>
<contour>
<pt x="128" y="128" on="1"/>
<pt x="128" y="896" on="1"/>
<pt x="896" y="896" on="1"/>
<pt x="896" y="128" on="1"/>
</contour>
<instructions/>
</TTGlyph>
<TTGlyph name="T" xMin="0" yMin="0" xMax="1024" yMax="1024">
<contour>
<pt x="0" y="0" on="1"/>
<pt x="1024" y="0" on="1"/>
<pt x="1024" y="1024" on="1"/>
<pt x="0" y="1024" on="1"/>
</contour>
<contour>
<pt x="128" y="128" on="1"/>
<pt x="128" y="896" on="1"/>
<pt x="896" y="896" on="1"/>
<pt x="896" y="128" on="1"/>
</contour>
<instructions/>
</TTGlyph>
</glyf>
<name>
<namerecord nameID="1" platformID="1" platEncID="0" langID="0x0" unicode="True">
boxes
</namerecord>
</name>
</ttFont>
+7 -19
View File
@@ -82,10 +82,6 @@ compare_render_tests = [
'fill-with-3d-contents-nogl-nocairo',
'glyph-cache-overflow',
'glyph-cache-overflow-slices',
'glyph-hinting-none',
'glyph-hinting-slight',
'glyph-scaling',
'glyph-antialias',
'huge-height',
'huge-width',
'inset-shadow-multiple',
@@ -182,7 +178,6 @@ informative_render_tests = [
'empty-text',
'huge-glyph',
'rounded-clip-in-clip-nocairo', # both cairo and gl fail this one
'text-missing-glyph', # https://gitlab.gnome.org/GNOME/pango/-/merge_requests/718
]
renderers = [
@@ -198,7 +193,6 @@ compare_xfails_small_texture = [
'big-checkerboard-scaled-down',
'big-checkerboard-scaled-down2',
'repeat-repeats', # only fails when rotated
'glyph-scaling',
]
variants = {
@@ -213,13 +207,13 @@ variants = {
compare_xfails = {
'ngl': {
'repeat-scaling': ['clipped'], # 6429
'radial-gradient-with-64-colorstops': ['clipped'],
'blur-child-bounds-oversize-nogl': ['clipped'], # 6450
},
'repeat-scaling': ['clipped'], # 6429
'radial-gradient-with-64-colorstops': ['clipped'],
'blur-child-bounds-oversize-nogl': ['clipped'], # 6450
},
'vulkan': {
'big-checkerboard': ['clipped'], # 6444
},
'big-checkerboard': ['clipped'], # 6444
},
}
foreach renderer : renderers
@@ -378,7 +372,6 @@ node_parser_tests = [
'stroke.node',
'stroke.ref.node',
'testswitch.node',
'text.node',
'text-color.node',
'text-fail.node',
'text-fail.ref.node',
@@ -388,11 +381,6 @@ node_parser_tests = [
'text-font-errors.node',
'text-font-errors.ref.node',
'text-font-errors.errors',
'text-font-options.node',
'text-font-options.ref.node',
'text-font-options-error.node',
'text-font-options-error.ref.node',
'text-font-options-error.ref.errors',
'text-no-color.node',
'texture-fail.node',
'texture-fail.ref.node',
@@ -423,7 +411,7 @@ foreach test : node_parser_tests
'G_TEST_BUILDDIR=@0@'.format(meson.current_build_dir())
],
protocol: 'exitcode',
suite: [ 'gsk', 'gsk-nodeparser' ]
suite: 'gsk',
)
endif
endforeach
+1 -1
View File
@@ -1,4 +1,4 @@
text {
font: "Cantarell 15px";
font: "Cantarell 11";
glyphs: "Hello";
}
+5 -5
View File
@@ -56,7 +56,7 @@ container {
transform {
child: text {
color: rgb(46,52,54);
font: "Cantarell 15px";
font: "Cantarell 11";
glyphs: "Disabled";
offset: 145 18;
}
@@ -120,7 +120,7 @@ container {
transform {
child: text {
color: rgb(46,52,54);
font: "Cantarell 15px";
font: "Cantarell 11";
glyphs: "Enabled";
offset: 147 18;
}
@@ -163,7 +163,7 @@ container {
transform {
child: text {
color: rgb(46,52,54);
font: "Cantarell 15px";
font: "Cantarell 11";
glyphs: "Disabled";
offset: 145 18;
}
@@ -209,7 +209,7 @@ container {
transform {
child: text {
color: rgb(46,52,54);
font: "Cantarell 15px";
font: "Cantarell 11";
glyphs: "Enabled";
offset: 147 18;
}
@@ -272,7 +272,7 @@ container {
transform {
child: text {
color: rgb(46,52,54);
font: "Cantarell 15px";
font: "Cantarell 11";
glyphs: "Disabled";
offset: 123 18;
}
+5 -5
View File
@@ -57,7 +57,7 @@ container {
transform: translate(56, 0);
child: text {
color: rgb(46,52,54);
font: "Cantarell 15px";
font: "Cantarell 11";
glyphs: "Disabled";
offset: 145 18;
}
@@ -122,7 +122,7 @@ container {
transform: translate(56, 0);
child: text {
color: rgb(46,52,54);
font: "Cantarell 15px";
font: "Cantarell 11";
glyphs: "Enabled";
offset: 147 18;
}
@@ -165,7 +165,7 @@ container {
transform: translate(56, 0);
child: text {
color: rgb(46,52,54);
font: "Cantarell 15px";
font: "Cantarell 11";
glyphs: "Disabled";
offset: 145 18;
}
@@ -211,7 +211,7 @@ container {
transform: translate(56, 0);
child: text {
color: rgb(46,52,54);
font: "Cantarell 15px";
font: "Cantarell 11";
glyphs: "Enabled";
offset: 147 18;
}
@@ -274,7 +274,7 @@ container {
transform: translate(78, 0);
child: text {
color: rgb(46,52,54);
font: "Cantarell 15px";
font: "Cantarell 11";
glyphs: "Disabled";
offset: 123 18;
}
+1 -1
View File
@@ -1,5 +1,5 @@
text {
color: rgba(255,0,0,0.533333);
font: "Noto Sans 300px";
font: "Noto Sans 300";
glyphs: 50 312, 2712 0 -156 -29 color;
}
+2 -2
View File
@@ -1,5 +1,5 @@
text {
font: "text-mixed-color 10px" url("data:font/ttf;base64,\
font: "text-mixed-color 7.5" url("data:font/ttf;base64,\
AAEAAAAKAIAAAwAgQ09MUgATAEEAAAJ8AAAALENQQUwB/wATAAACqAAAABpjbWFwAHcAPQAAATwA\
AAA0Z2x5Zu8g4kAAAAGEAAAA0mhlYWQmofyJAAAArAAAADZoaGVhDAEEAgAAAOQAAAAkaG10eAQA\
AQAAAAEoAAAAFGxvY2EAyAD5AAABcAAAABRtYXhwAAwACQAAAQgAAAAgbmFtZX7VdrQAAAJYAAAA\
@@ -18,6 +18,6 @@ AAEAAwAAAA4AAAAA//8A/wD//wAA/wAA\
}
text {
font: "Cantarell 15px";
font: "Cantarell 11";
glyphs: "Hello";
}
@@ -1,5 +1,5 @@
text {
font: "text-mixed-color 10px" url("data:font/ttf;base64,AAEAAAAKAIAAAwAgQ09MUgATAEEAAAJ8AAAALENQQUwB/wATAAACqAAAABpjbWFwAHcAPQAAATwA\
font: "text-mixed-color 7.5" url("data:font/ttf;base64,AAEAAAAKAIAAAwAgQ09MUgATAEEAAAJ8AAAALENQQUwB/wATAAACqAAAABpjbWFwAHcAPQAAATwA\
AAA0Z2x5Zu8g4kAAAAGEAAAA0mhlYWQmofyJAAAArAAAADZoaGVhDAEEAgAAAOQAAAAkaG10eAQA\
AQAAAAEoAAAAFGxvY2EAyAD5AAABcAAAABRtYXhwAAwACQAAAQgAAAAgbmFtZX7VdrQAAAJYAAAA\
IgABAAAAARmajs74k18PPPUAAggAAAAAAOHCPQAAAAAA4cpY+QAAAAAEAAgAAAAAAQACAAAAAAAA\
@@ -16,6 +16,6 @@ AAEAAwAAAA4AAAAA//8A/wD//wAA/wAA\
glyphs: 7 10;
}
text {
font: "Cantarell 15px";
font: "Cantarell 11";
glyphs: "Hello";
}
@@ -1,6 +1,6 @@
<data>:21:33-37: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
<data>:55:26-69:3: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
<data>:74:26-35: error: GTK_CSS_PARSER_ERROR_SYNTAX
<data>:79:26-40: error: g-io-error-quark 15
<data>:84:26-49: error: g-io-error-quark 1
<data>:89:26-64: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
<data>:21:32-36: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
<data>:55:24-69:3: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
<data>:74:24-33: error: GTK_CSS_PARSER_ERROR_SYNTAX
<data>:79:24-38: error: g-io-error-quark 15
<data>:84:24-47: error: g-io-error-quark 1
<data>:89:24-62: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
+10 -10
View File
@@ -1,5 +1,5 @@
text {
font: "text-mixed-color 10px" url("data:font/ttf;base64,\
font: "text-mixed-color 7.5" url("data:font/ttf;base64,\
AAEAAAAKAIAAAwAgQ09MUgATAEEAAAJ8AAAALENQQUwB/wATAAACqAAAABpjbWFwAHcAPQAAATwA\
AAA0Z2x5Zu8g4kAAAAGEAAAA0mhlYWQmofyJAAAArAAAADZoaGVhDAEEAgAAAOQAAAAkaG10eAQA\
AQAAAAEoAAAAFGxvY2EAyAD5AAABcAAAABRtYXhwAAwACQAAAQgAAAAgbmFtZX7VdrQAAAJYAAAA\
@@ -18,7 +18,7 @@ AAEAAwAAAA4AAAAA//8A/wD//wAA/wAA\
}
text {
font: "text-mixed-color 10px" url("data:font/ttf;base64,\
font: "text-mixed-color 7.5" url("data:font/ttf;base64,\
AAEAAAAKAIAAAwAgQ09MUgATAEEAAAJ8AAAALENQQUwB/wATAAACqAAAABpjbWFwAHcAPQAAATwA\
AAA0Z2x5Zu8g4kAAAAGEAAAA0mhlYWQmofyJAAAArAAAADZoaGVhDAEEAgAAAOQAAAAkaG10eAQA\
AQAAAAEoAAAAFGxvY2EAyAD5AAABcAAAABRtYXhwAAwACQAAAQgAAAAgbmFtZX7VdrQAAAJYAAAA\
@@ -37,22 +37,22 @@ AAEAAwAAAA4AAAAA//8A/wD//wAA/wAA\
}
text {
font: "text-mixed-color 10px";
font: "text-mixed-color 7.5";
glyphs: 7 10;
}
text {
font: "Cantarell 15px";
font: "Cantarell 11";
glyphs: "Hello";
}
text {
font: "Demon Cat 15px";
font: "Demon Cat 11";
glyphs: "Hello";
}
text {
font: "Demon Cat 15px" url("data:font/ttf;base64,\
font: "Demon Cat 11" url("data:font/ttf;base64,\
AAEAAAAKAIAAAwAgQ09MUgATAEEAAAJ8AAAALENQQUwB/wATAAACqAAAABpjbWFwAHcAPQAAATwA\
AAA0Z2x5Zu8g4kAAAAGEAAAA0mhlYWQmofyJAAAArAAAADZoaGVhDAEEAgAAAOQAAAAkaG10eAQA\
AQAAAAEoAAAAFGxvY2EAyAD5AAABcAAAABRtYXhwAAwACQAAAQgAAAAgbmFtZX7VdrQAAAJYAAAA\
@@ -71,21 +71,21 @@ AAEAAwAAAA4AAAAA//8A/wD//wAA/wAA\
}
text {
font: "Demon Cat 15px" url(url());
font: "Demon Cat 11" url(url());
glyphs: 7 10;
}
text {
font: "Demon Cat 15px" url(not-a-url);
font: "Demon Cat 11" url(not-a-url);
glyphs: 7 10;
}
text {
font: "Demon Cat 15px" url(file:///not-a-file);
font: "Demon Cat 11" url(file:///not-a-file);
glyphs: 7 10;
}
text {
font: "Demon Cat 15px" url("data:font/ttf,Hello, I'm a Font");
font: "Demon Cat 11" url("data:font/ttf,Hello, I'm a Font");
glyphs: 7 10;
}
@@ -1,5 +1,5 @@
text {
font: "text-mixed-color 10px" url("data:font/ttf;base64,AAEAAAAKAIAAAwAgQ09MUgATAEEAAAJ8AAAALENQQUwB/wATAAACqAAAABpjbWFwAHcAPQAAATwA\
font: "text-mixed-color 7.5" url("data:font/ttf;base64,AAEAAAAKAIAAAwAgQ09MUgATAEEAAAJ8AAAALENQQUwB/wATAAACqAAAABpjbWFwAHcAPQAAATwA\
AAA0Z2x5Zu8g4kAAAAGEAAAA0mhlYWQmofyJAAAArAAAADZoaGVhDAEEAgAAAOQAAAAkaG10eAQA\
AQAAAAEoAAAAFGxvY2EAyAD5AAABcAAAABRtYXhwAAwACQAAAQgAAAAgbmFtZX7VdrQAAAJYAAAA\
IgABAAAAARmajs74k18PPPUAAggAAAAAAOHCPQAAAAAA4cpY+QAAAAAEAAgAAAAAAQACAAAAAAAA\
@@ -16,38 +16,38 @@ AAEAAwAAAA4AAAAA//8A/wD//wAA/wAA\
glyphs: 7 10;
}
text {
font: "text-mixed-color 10px";
font: "text-mixed-color 7.5";
glyphs: 7 10;
}
text {
font: "text-mixed-color 10px";
font: "text-mixed-color 7.5";
glyphs: 7 10;
}
text {
font: "Cantarell 15px";
font: "Cantarell 11";
glyphs: "Hello";
}
text {
font: "Noto Sans 15px";
font: "Noto Sans 11";
glyphs: "Hello";
}
text {
font: "Cantarell 15px";
font: "Cantarell 11";
glyphs: 7 10;
}
text {
font: "Cantarell 15px";
font: "Cantarell 11";
glyphs: 7 10;
}
text {
font: "Cantarell 15px";
font: "Cantarell 11";
glyphs: 7 10;
}
text {
font: "Cantarell 15px";
font: "Cantarell 11";
glyphs: 7 10;
}
text {
font: "Cantarell 15px";
font: "Cantarell 11";
glyphs: 7 10;
}
@@ -1,3 +0,0 @@
<data>:7:15-22: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
<data>:8:14-19: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
<data>:15:14-22: error: GTK_CSS_PARSER_ERROR_UNKNOWN_VALUE
@@ -1,16 +0,0 @@
text {
color: rgb(50,50,50);
font: "Cantarell 15px";
glyphs: "N", 430 5, 406 8, 417 7, 772 4, 783 5, 783 5, 793 6 0 0 same-cluster;
offset: 0 32.0186;
hint-style: garbage;
antialias: trash;
}
text {
color: rgb(50,50,50);
font: "Cantarell 15px";
glyphs: "N", 430 5, 406 8, 417 7, 772 4, 783 5, 783 5, 793 6 0 0 same-cluster;
offset: 0 32.0186;
antialias: subpixel;
}
@@ -1,12 +0,0 @@
text {
color: rgb(50,50,50);
font: "Cantarell 15px";
glyphs: "N", 430 5, 406 8, 417 7, 772 4, 783 5, 783 5, 793 6 0 0 same-cluster;
offset: 0 32.0186;
}
text {
color: rgb(50,50,50);
font: "Cantarell 15px";
glyphs: "N", 430 5, 406 8, 417 7, 772 4, 783 5, 783 5, 793 6 0 0 same-cluster;
offset: 0 32.0186;
}
@@ -1,23 +0,0 @@
text {
color: rgb(50,50,50);
font: "Cantarell 15px";
glyphs: "N", 430 5, 406 8, 417 7, 772 4, 783 5, 783 5, 793 6 0 0 same-cluster;
offset: 0 32.0186;
hint-style: none;
antialias: none;
}
text {
color: rgb(50,50,50);
font: "Cantarell 15px";
glyphs: "N", 430 5, 406 8, 417 7, 772 4, 783 5, 783 5, 793 6 0 0 same-cluster;
offset: 0 32.0186;
hint-style: slight;
antialias: gray;
}
text {
color: rgb(50,50,50);
font: "Cantarell 15px";
glyphs: "N", 430 5, 406 8, 417 7, 772 4, 783 5, 783 5, 793 6 0 0 same-cluster;
offset: 0 32.0186;
hint-style: full;
}
@@ -1,21 +0,0 @@
text {
color: rgb(50,50,50);
font: "Cantarell 15px";
glyphs: "N", 430 5, 406 8, 417 7, 772 4, 783 5, 783 5, 793 6 0 0 same-cluster;
offset: 0 32.0186;
hint-style: none;
antialias: none;
}
text {
color: rgb(50,50,50);
font: "Cantarell 15px";
glyphs: "N", 430 5, 406 8, 417 7, 772 4, 783 5, 783 5, 793 6 0 0 same-cluster;
offset: 0 32.0186;
}
text {
color: rgb(50,50,50);
font: "Cantarell 15px";
glyphs: "N", 430 5, 406 8, 417 7, 772 4, 783 5, 783 5, 793 6 0 0 same-cluster;
offset: 0 32.0186;
hint-style: full;
}
+1 -1
View File
@@ -1,5 +1,5 @@
text {
color: rgba(255,0,0,0.533333);
font: "Noto Sans 300px";
font: "Noto Sans 300";
glyphs: 50 312, 2712 0 -156 -29;
}
+2 -2
View File
@@ -1,6 +1,6 @@
text {
color: rgb(50,50,50);
font: "Cantarell 14px";
glyphs: "N", 430, 406, 417 7, 772 4, 783 5, 783 5, 793 6 0 0 same-cluster;
font: "Cantarell 11";
glyphs: "N", 430 5, 406 8, 417 7, 772 4, 783 5, 783 5, 793 6 0 0 same-cluster;
offset: 0 32.0186;
}
+2 -2
View File
@@ -1,6 +1,6 @@
text {
color: rgb(50,50,50);
font: "Cantarell 14px";
glyphs: "N", 430 4.2002, 406 6.10352, 417 7, 772 4, 783 5, 783 5, 793 6 0 0 same-cluster;
font: "Cantarell 11";
glyphs: "N", 430 5, 406 8, 417 7, 772 4, 783 5, 783 5, 793 6 0 0 same-cluster;
offset: 0 32.0186;
}