Compare commits

..

1 Commits

Author SHA1 Message Date
Matthias Clasen
088b85e899 Try again to fix build deps
This is more of a shot in the dark. Trying to fix #6618.
2024-04-11 13:01:50 -04:00
23 changed files with 440 additions and 332 deletions

View File

@@ -52,7 +52,8 @@ broadwayjs_h = custom_target('broadwayjs.h',
)
libgdk_broadway = static_library('gdk-broadway',
sources: [ clienthtml_h, broadwayjs_h, gdk_broadway_sources, gdk_gen_headers ],
clienthtml_h, broadwayjs_h,
gdk_broadway_sources, gdkconfig, gdkenum_h,
include_directories: [confinc, gdkinc],
c_args: [
'-DGTK_COMPILATION',

View File

@@ -72,10 +72,7 @@ gdk_dmabuf_texture_dispose (GObject *object)
GdkDmabufTexture *self = GDK_DMABUF_TEXTURE (object);
if (self->destroy)
{
self->destroy (self->data);
self->destroy = NULL;
}
self->destroy (self->data);
g_clear_object (&self->downloader);
g_clear_object (&self->display);

View File

@@ -61,7 +61,7 @@ gdk_macos_deps = [
libgdk_c_args += ['-xobjective-c']
libgdk_macos = static_library('gdk-macos',
sources: [ gdk_macos_sources, gdk_gen_headers ],
gdk_macos_sources, gdkconfig, gdkenum_h,
include_directories: [ confinc, gdkinc, ],
c_args: [ libgdk_c_args, common_cflags, ],
link_with: [],

View File

@@ -202,13 +202,7 @@ gdkwayland_inc = include_directories('wayland')
wlinc = include_directories('.')
win32rcinc = include_directories('win32/rc')
gdk_gen_headers = [
gdkenum_h,
gdkmarshal_h,
gdkconfig,
gdkversionmacros_h,
gdk_visibility_h,
]
gdk_gen_headers = [gdkenum_h, gdkmarshal_h, gdkconfig, gdkversionmacros_h, gdk_visibility_h]
gdk_deps = [
libm,
@@ -284,7 +278,7 @@ if gdk_backends.length() == 0
endif
libgdk = static_library('gdk',
sources: [gdk_sources, gdk_backends_gen_headers, gdk_gen_headers],
sources: [gdk_sources, gdk_backends_gen_headers, gdkconfig],
dependencies: gdk_deps + [libgtk_css_dep],
link_with: [libgtk_css],
include_directories: [confinc, gdkx11_inc, wlinc],
@@ -296,7 +290,7 @@ libgdk = static_library('gdk',
# list the dependencies and generated headers and such, for use in the
# "public" libgtk_dep used by internal executables.
libgdk_dep = declare_dependency(
sources: ['gdk.h', gdk_gen_headers],
sources: ['gdk.h', gdkconfig, gdkenum_h],
include_directories: [confinc, gdkx11_inc, wlinc],
dependencies: gdk_deps + [libgtk_css_dep],
)

View File

@@ -198,8 +198,17 @@ static void
gdk_wayland_cairo_context_empty_frame (GdkDrawContext *draw_context)
{
GdkSurface *surface = gdk_draw_context_get_surface (draw_context);
GdkWaylandSurface *impl = GDK_WAYLAND_SURFACE (surface);
gdk_wayland_surface_handle_empty_frame (surface);
if (!impl->has_pending_subsurface_commits)
return;
gdk_wayland_surface_sync (surface);
gdk_wayland_surface_request_frame (surface);
gdk_profiler_add_mark (GDK_PROFILER_CURRENT_TIME, 0, "Wayland surface commit", NULL);
gdk_wayland_surface_commit (surface);
gdk_wayland_surface_notify_committed (surface);
}
static void

View File

@@ -88,7 +88,14 @@ gdk_wayland_gl_context_empty_frame (GdkDrawContext *draw_context)
{
GdkSurface *surface = gdk_draw_context_get_surface (draw_context);
gdk_wayland_surface_handle_empty_frame (surface);
if (gdk_wayland_surface_needs_commit (surface))
{
gdk_wayland_surface_sync (surface);
gdk_wayland_surface_request_frame (surface);
gdk_wayland_surface_commit (surface);
gdk_wayland_surface_notify_committed (surface);
}
}
static void

View File

@@ -131,7 +131,7 @@ guint _gdk_wayland_cursor_get_next_image_index (GdkWaylandDisplay *display,
guint *next_image_delay);
void gdk_wayland_surface_sync (GdkSurface *surface);
void gdk_wayland_surface_handle_empty_frame (GdkSurface *surface);
gboolean gdk_wayland_surface_needs_commit (GdkSurface *surface);
void gdk_wayland_surface_commit (GdkSurface *surface);
void gdk_wayland_surface_notify_committed (GdkSurface *surface);
void gdk_wayland_surface_request_frame (GdkSurface *surface);

View File

@@ -775,7 +775,7 @@ gdk_wayland_surface_sync (GdkSurface *surface)
gdk_wayland_surface_sync_viewport (surface);
}
static gboolean
gboolean
gdk_wayland_surface_needs_commit (GdkSurface *surface)
{
GdkWaylandSurface *self = GDK_WAYLAND_SURFACE (surface);
@@ -787,20 +787,6 @@ gdk_wayland_surface_needs_commit (GdkSurface *surface)
self->viewport_dirty;
}
void
gdk_wayland_surface_handle_empty_frame (GdkSurface *surface)
{
if (!gdk_wayland_surface_needs_commit (surface))
return;
gdk_wayland_surface_sync (surface);
gdk_wayland_surface_request_frame (surface);
gdk_profiler_add_mark (GDK_PROFILER_CURRENT_TIME, 0, "Wayland surface commit", NULL);
gdk_wayland_surface_commit (surface);
gdk_wayland_surface_notify_committed (surface);
}
static void
gdk_wayland_surface_fractional_scale_preferred_scale_cb (void *data,
struct wp_fractional_scale_v1 *fractional_scale,

View File

@@ -77,8 +77,16 @@ static void
gdk_vulkan_context_wayland_empty_frame (GdkDrawContext *context)
{
GdkSurface *surface = gdk_draw_context_get_surface (GDK_DRAW_CONTEXT (context));
GdkWaylandSurface *impl = GDK_WAYLAND_SURFACE (surface);
gdk_wayland_surface_handle_empty_frame (surface);
if (!impl->has_pending_subsurface_commits)
return;
gdk_wayland_surface_sync (surface);
gdk_wayland_surface_request_frame (surface);
gdk_wayland_surface_commit (surface);
gdk_wayland_surface_notify_committed (surface);
}
static void

View File

@@ -47,39 +47,82 @@ gdk_wayland_deps = [
wlegldep,
]
wlmod = import('unstable-wayland')
wayland_scanner = find_program('wayland-scanner')
# Format:
# - protocol name
# - protocol stability ('private', 'stable' or 'unstable')
# - protocol version (if stability is 'unstable')
proto_sources = [
'protocol/gtk-shell.xml',
'protocol/server-decoration.xml',
wlmod.find_protocol('primary-selection', state: 'unstable', version: 1),
wlmod.find_protocol('pointer-gestures', state: 'unstable', version: 1),
wlmod.find_protocol('viewporter', state: 'stable'),
wlmod.find_protocol('xdg-shell', state: 'unstable', version: 6),
wlmod.find_protocol('xdg-shell', state: 'stable'),
wlmod.find_protocol('xdg-foreign', state: 'unstable', version: 1),
wlmod.find_protocol('xdg-foreign', state: 'unstable', version: 2),
wlmod.find_protocol('tablet', state: 'unstable', version: 2),
wlmod.find_protocol('keyboard-shortcuts-inhibit', state: 'unstable', version: 1),
wlmod.find_protocol('xdg-output', state: 'unstable', version: 1),
wlmod.find_protocol('idle-inhibit', state: 'unstable', version: 1),
wlmod.find_protocol('xdg-activation', state: 'staging', version: 1),
wlmod.find_protocol('fractional-scale', state: 'staging', version: 1),
wlmod.find_protocol('linux-dmabuf', state: 'unstable', version: 1),
wlmod.find_protocol('presentation-time', state: 'stable'),
['gtk-shell', 'private', ],
['primary-selection', 'unstable', 'v1', ],
['pointer-gestures', 'unstable', 'v1', ],
['viewporter', 'stable', ],
['xdg-shell', 'unstable', 'v6', ],
['xdg-shell', 'stable', ],
['xdg-foreign', 'unstable', 'v1', ],
['xdg-foreign', 'unstable', 'v2', ],
['tablet', 'unstable', 'v2', ],
['keyboard-shortcuts-inhibit', 'unstable', 'v1', ],
['server-decoration', 'private' ],
['xdg-output', 'unstable', 'v1', ],
['idle-inhibit', 'unstable', 'v1', ],
['xdg-activation', 'staging', 'v1', ],
['fractional-scale', 'staging', 'v1', ],
['linux-dmabuf', 'unstable', 'v1', ],
['presentation-time', 'stable', 'v1', ],
]
gdk_wayland_gen_headers = []
foreach p: proto_sources
# Returns a list [.c, .h]
gen = wlmod.scan_xml(p)
assert(gen.length() == 2)
gdk_wayland_sources += gen[0]
gdk_wayland_gen_headers += gen[1]
proto_name = p.get(0)
proto_stability = p.get(1)
if proto_stability == 'stable'
output_base = proto_name
input = files(join_paths(wlproto_dir, '@0@/@1@/@2@.xml'.format(proto_stability, proto_name, output_base)))
elif proto_stability == 'staging'
proto_version = p.get(2)
output_base = '@0@-@1@'.format(proto_name, proto_version)
input = files(join_paths(wlproto_dir, '@0@/@1@/@2@.xml'.format(proto_stability, proto_name, output_base)))
elif proto_stability == 'private'
output_base = proto_name
input = files('protocol/@0@.xml'.format(proto_name))
else
proto_version = p.get(2)
output_base = '@0@-@1@-@2@'.format(proto_name, proto_stability, proto_version)
input = files(join_paths(wlproto_dir, '@0@/@1@/@2@.xml'.format(proto_stability, proto_name, output_base)))
endif
gdk_wayland_gen_headers += custom_target('@0@ client header'.format(output_base),
input: input,
output: '@0@-client-protocol.h'.format(output_base),
command: [
wayland_scanner,
'client-header',
'@INPUT@', '@OUTPUT@',
],
)
gdk_wayland_sources += custom_target('@0@ source'.format(output_base),
input: input,
output: '@0@-protocol.c'.format(output_base),
command: [
wayland_scanner,
'private-code',
'@INPUT@', '@OUTPUT@',
],
)
endforeach
libgdk_wayland = static_library('gdk-wayland',
sources: [ gdk_wayland_sources, gdk_wayland_gen_headers, gdk_gen_headers ],
sources: [
gdk_wayland_sources,
gdk_wayland_gen_headers,
gdkconfig,
gdkenum_h,
],
include_directories: [ confinc, gdkinc, ],
c_args: [
'-DGTK_COMPILATION',

View File

@@ -3071,6 +3071,20 @@ gdk_event_translate (MSG *msg,
}
}
if ((windowpos->flags & SWP_HIDEWINDOW) &&
!GDK_SURFACE_DESTROYED (window))
{
/* Make transient parent the foreground window when window unmaps */
impl = GDK_WIN32_SURFACE (window);
if (impl->transient_owner &&
GetForegroundWindow () == GDK_SURFACE_HWND (window))
{
SetForegroundWindow (GDK_SURFACE_HWND (impl->transient_owner));
SetCapture (GDK_SURFACE_HWND (impl->transient_owner));
}
}
if (!(windowpos->flags & SWP_NOCLIENTSIZE))
{
if (window->resize_count > 1)

View File

@@ -4200,13 +4200,82 @@ BOOL WINAPI
GtkShowWindow (GdkSurface *window,
int cmd_show)
{
cairo_t *cr;
cairo_surface_t *surface;
RECT window_rect;
HDC hdc;
POINT window_position;
SIZE window_size;
POINT source_point;
BLENDFUNCTION blender;
HWND hwnd = GDK_SURFACE_HWND (window);
GdkWin32Surface *impl = GDK_WIN32_SURFACE (window);
switch (cmd_show)
{
case SW_FORCEMINIMIZE:
case SW_HIDE:
case SW_MINIMIZE:
break;
case SW_MAXIMIZE:
case SW_RESTORE:
case SW_SHOW:
case SW_SHOWDEFAULT:
case SW_SHOWMINIMIZED:
case SW_SHOWMINNOACTIVE:
case SW_SHOWNA:
case SW_SHOWNOACTIVATE:
case SW_SHOWNORMAL:
if (IsWindowVisible (hwnd))
break;
/* Window was hidden, will be shown. Erase it, GDK will repaint soon,
* but not soon enough, so it's possible to see old content before
* the next redraw, unless we erase the window first.
*/
GetWindowRect (hwnd, &window_rect);
source_point.x = source_point.y = 0;
window_position.x = window_rect.left;
window_position.y = window_rect.top;
window_size.cx = window_rect.right - window_rect.left;
window_size.cy = window_rect.bottom - window_rect.top;
blender.BlendOp = AC_SRC_OVER;
blender.BlendFlags = 0;
blender.AlphaFormat = AC_SRC_ALPHA;
blender.SourceConstantAlpha = 255;
/* Create a surface of appropriate size and clear it */
surface = cairo_win32_surface_create_with_dib (CAIRO_FORMAT_ARGB32,
window_size.cx,
window_size.cy);
cairo_surface_set_device_scale (surface, impl->surface_scale, impl->surface_scale);
cr = cairo_create (surface);
cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.0);
cairo_paint (cr);
cairo_destroy (cr);
cairo_surface_flush (surface);
hdc = cairo_win32_surface_get_dc (surface);
/* No API_CALL() wrapper, don't check for errors */
UpdateLayeredWindow (hwnd, NULL,
&window_position, &window_size,
hdc, &source_point,
0, &blender, ULW_ALPHA);
cairo_surface_destroy (surface);
break;
}
/* Ensure that maximized window size is corrected later on */
if (cmd_show == SW_MAXIMIZE)
impl->maximizing = TRUE;
return ShowWindow (GDK_SURFACE_HWND (window), cmd_show);
return ShowWindow (hwnd, cmd_show);
}
static void
@@ -4735,7 +4804,10 @@ gdk_win32_toplevel_set_property (GObject *object,
GDK_SURFACE (surface)->modal_hint = g_value_get_boolean (value);
if (GDK_SURFACE (surface)->modal_hint)
_gdk_push_modal_window (surface);
{
SetCapture (GDK_SURFACE_HWND (surface));
_gdk_push_modal_window (surface);
}
g_object_notify_by_pspec (G_OBJECT (surface), pspec);
break;

View File

@@ -64,7 +64,7 @@ gdk_win32_deps = [
]
libgdk_win32 = static_library('gdk-win32',
sources: [ gdk_win32_sources, gdk_gen_headers ],
gdk_win32_sources, gdkconfig, gdkenum_h,
include_directories: [ confinc, gdkinc ],
c_args: [
'-DGTK_COMPILATION',

View File

@@ -490,7 +490,7 @@ gdk_x11_context_create_glx_context (GdkGLContext *context,
GdkGLContext *share = gdk_display_get_gl_context (display);
GdkX11GLContextGLX *share_glx = NULL;
GdkSurface *surface = gdk_gl_context_get_surface (context);
GLXContext ctx = NULL;
GLXContext ctx;
int context_attribs[N_GLX_ATTRS], i = 0, flags = 0;
gsize major_idx, minor_idx;
GdkGLVersion version;

View File

@@ -73,7 +73,12 @@ gdk_x11_deps = [
]
libgdk_x11 = static_library('gdk-x11',
sources: [ gdk_gen_headers, gdk_x11_sources ],
sources: [
gdkmarshal_h,
gdkenum_h,
gdkconfig,
gdk_x11_sources,
],
include_directories: [ confinc, gdkinc, ],
c_args: [
'-DGTK_COMPILATION',

View File

@@ -227,7 +227,7 @@ get_t_by_bisection (const GskCurve *curve,
t1 = 0;
t2 = 1;
do
while (t1 < t2)
{
t = (t1 + t2) / 2;
if (t == t1 || t == t2)
@@ -243,7 +243,6 @@ get_t_by_bisection (const GskCurve *curve,
else
t2 = t;
}
while (t1 < t2);
return t;
}

View File

@@ -156,8 +156,7 @@
typedef struct {
GdkGLTextureBuilder *builder;
GdkTexture *gl_texture;
GdkTexture *dmabuf_texture;
GdkTexture *holder;
} Texture;
typedef struct {
@@ -416,20 +415,16 @@ delete_one_texture (gpointer data)
Texture *texture = data;
guint id;
if (texture->gl_texture)
{
gdk_gl_texture_release (GDK_GL_TEXTURE (texture->gl_texture));
texture->gl_texture = NULL;
}
if (texture->holder)
gdk_gl_texture_release (GDK_GL_TEXTURE (texture->holder));
id = gdk_gl_texture_builder_get_id (texture->builder);
if (id != 0)
glDeleteTextures (1, &id);
g_clear_object (&texture->builder);
g_object_unref (texture->builder);
if (texture->gl_texture == NULL && texture->dmabuf_texture == NULL)
g_free (texture);
g_free (texture);
}
static void
@@ -454,7 +449,7 @@ gtk_gl_area_ensure_texture (GtkGLArea *area)
link = l;
l = l->next;
if (texture->gl_texture)
if (texture->holder)
continue;
priv->textures = g_list_delete_link (priv->textures, link);
@@ -471,8 +466,7 @@ gtk_gl_area_ensure_texture (GtkGLArea *area)
GLuint id;
priv->texture = g_new (Texture, 1);
priv->texture->gl_texture = NULL;
priv->texture->dmabuf_texture = NULL;
priv->texture->holder = NULL;
priv->texture->builder = gdk_gl_texture_builder_new ();
gdk_gl_texture_builder_set_context (priv->texture->builder, priv->context);
@@ -530,7 +524,7 @@ gtk_gl_area_allocate_texture (GtkGLArea *area)
if (priv->texture == NULL)
return;
g_assert (priv->texture->gl_texture == NULL);
g_assert (priv->texture->holder == NULL);
scale = gtk_widget_get_scale_factor (widget);
width = gtk_widget_get_width (widget) * scale;
@@ -712,7 +706,7 @@ gtk_gl_area_draw_error_screen (GtkGLArea *area,
}
static void
release_gl_texture (gpointer data)
release_texture (gpointer data)
{
Texture *texture = data;
gpointer sync;
@@ -724,7 +718,7 @@ release_gl_texture (gpointer data)
gdk_gl_texture_builder_set_sync (texture->builder, NULL);
}
texture->gl_texture = NULL;
texture->holder = NULL;
}
static void
@@ -741,14 +735,10 @@ release_dmabuf_texture (gpointer data)
{
Texture *texture = data;
g_clear_object (&texture->gl_texture);
release_dmabuf (gdk_dmabuf_texture_get_dmabuf (GDK_DMABUF_TEXTURE (texture->holder)));
g_object_set_data (G_OBJECT (texture->holder), "gltexture", NULL);
if (texture->dmabuf_texture == NULL)
return;
release_dmabuf (gdk_dmabuf_texture_get_dmabuf (GDK_DMABUF_TEXTURE (texture->dmabuf_texture )));
texture->dmabuf_texture = NULL;
texture->holder = NULL;
}
static void
@@ -794,8 +784,8 @@ gtk_gl_area_snapshot (GtkWidget *widget,
{
Texture *texture;
gpointer sync = NULL;
GdkTexture *gltexture;
GdkDmabuf dmabuf;
GdkTexture *holder;
if (priv->needs_render || priv->auto_render)
{
@@ -819,10 +809,9 @@ gtk_gl_area_snapshot (GtkWidget *widget,
gdk_gl_texture_builder_set_sync (texture->builder, sync);
texture->gl_texture = gdk_gl_texture_builder_build (texture->builder,
release_gl_texture,
texture);
holder = texture->gl_texture;
gltexture = gdk_gl_texture_builder_build (texture->builder,
release_texture,
texture);
if (gdk_gl_context_export_dmabuf (priv->context,
gdk_gl_texture_builder_get_id (texture->builder),
@@ -831,20 +820,22 @@ gtk_gl_area_snapshot (GtkWidget *widget,
GdkDmabufTextureBuilder *builder = gdk_dmabuf_texture_builder_new ();
gdk_dmabuf_texture_builder_set_display (builder, gdk_gl_context_get_display (priv->context));
gdk_dmabuf_texture_builder_set_width (builder, gdk_texture_get_width (texture->gl_texture));
gdk_dmabuf_texture_builder_set_height (builder, gdk_texture_get_height (texture->gl_texture));
gdk_dmabuf_texture_builder_set_width (builder, gdk_texture_get_width (gltexture));
gdk_dmabuf_texture_builder_set_height (builder, gdk_texture_get_height (gltexture));
gdk_dmabuf_texture_builder_set_premultiplied (builder, TRUE);
gdk_dmabuf_texture_builder_set_dmabuf (builder, &dmabuf);
texture->dmabuf_texture = gdk_dmabuf_texture_builder_build (builder, release_dmabuf_texture, texture, NULL);
texture->holder = gdk_dmabuf_texture_builder_build (builder, release_dmabuf_texture, texture, NULL);
g_object_unref (builder);
if (texture->dmabuf_texture != NULL)
holder = texture->dmabuf_texture;
if (texture->holder != NULL)
g_object_set_data_full (G_OBJECT (texture->holder), "gltexture", gltexture, g_object_unref);
else
release_dmabuf (&dmabuf);
}
else
texture->holder = gltexture;
/* Our texture is rendered by OpenGL, so it is upside down,
* compared to what GSK expects, so flip it back.
@@ -853,13 +844,13 @@ gtk_gl_area_snapshot (GtkWidget *widget,
gtk_snapshot_translate (snapshot, &GRAPHENE_POINT_INIT (0, gtk_widget_get_height (widget)));
gtk_snapshot_scale (snapshot, 1, -1);
gtk_snapshot_append_texture (snapshot,
holder,
texture->holder,
&GRAPHENE_RECT_INIT (0, 0,
gtk_widget_get_width (widget),
gtk_widget_get_height (widget)));
gtk_snapshot_restore (snapshot);
g_object_unref (holder);
g_object_unref (texture->holder);
}
else
{

View File

@@ -28,7 +28,6 @@
#include "gtkscrollbar.h"
#include "gtkrange.h"
#include "gtkaccessiblerange.h"
#include "gtkadjustment.h"
#include "gtkorientable.h"
#include "gtkprivate.h"
@@ -108,38 +107,13 @@ enum {
LAST_PROP = PROP_ORIENTATION
};
static void gtk_scrollbar_accessible_range_init (GtkAccessibleRangeInterface *iface);
G_DEFINE_TYPE_WITH_CODE (GtkScrollbar, gtk_scrollbar, GTK_TYPE_WIDGET,
G_ADD_PRIVATE (GtkScrollbar)
G_IMPLEMENT_INTERFACE (GTK_TYPE_ORIENTABLE, NULL)
G_IMPLEMENT_INTERFACE (GTK_TYPE_ACCESSIBLE_RANGE,
gtk_scrollbar_accessible_range_init))
G_IMPLEMENT_INTERFACE (GTK_TYPE_ORIENTABLE, NULL))
static GParamSpec *props[LAST_PROP] = { NULL, };
static gboolean
accessible_range_set_current_value (GtkAccessibleRange *range,
double value)
{
GtkScrollbar *self = GTK_SCROLLBAR (range);
GtkAdjustment *adjustment = gtk_scrollbar_get_adjustment (self);
if (adjustment)
{
gtk_adjustment_set_value (adjustment, value);
return TRUE;
}
return FALSE;
}
static void
gtk_scrollbar_accessible_range_init (GtkAccessibleRangeInterface *iface)
{
iface->set_current_value = accessible_range_set_current_value;
}
static void
gtk_scrollbar_get_property (GObject *object,
guint property_id,

View File

@@ -636,6 +636,49 @@ install_headers(gtk_print_headers, subdir: 'gtk-4.0/gtk/print')
gtk_sources = gtk_public_sources + gtk_private_sources
proto_sources = [
['text-input', 'unstable', 'v3', ],
]
im_wayland_sources = files('gtkimcontextwayland.c')
foreach p: proto_sources
proto_name = p.get(0)
proto_stability = p.get(1)
if wayland_enabled
if proto_stability == 'stable'
output_base = proto_name
input = files('@0@.xml'.format(proto_name))
else
proto_version = p.get(2)
output_base = '@0@-@1@-@2@'.format(proto_name, proto_stability, proto_version)
input = files(join_paths(wlproto_dir, '@0@/@1@/@2@.xml'.format(proto_stability, proto_name, output_base)))
endif
# wayland_scanner is defined in gdk/wayland/meson.build
im_wayland_sources += custom_target('@0@ client header'.format(output_base),
input: input,
output: '@0@-client-protocol.h'.format(output_base),
command: [
wayland_scanner,
'client-header',
'@INPUT@', '@OUTPUT@',
],
)
im_wayland_sources += custom_target('@0@ source'.format(output_base),
input: input,
output: '@0@-protocol.c'.format(output_base),
command: [
wayland_scanner,
'private-code',
'@INPUT@', '@OUTPUT@',
],
)
endif
endforeach
if os_unix and tracker3_dep.found()
gtk_sources += 'gtksearchenginetracker3.c'
endif
@@ -665,12 +708,8 @@ if x11_enabled
endif
if wayland_enabled
xml = wlmod.find_protocol('text-input', state: 'unstable', version: 3)
gtk_sources += [
wlmod.scan_xml(xml),
'gtkimcontextwayland.c',
'gtkapplication-wayland.c',
]
gtk_sources += ['gtkapplication-wayland.c']
gtk_sources += im_wayland_sources
endif
if x11_enabled or wayland_enabled

View File

@@ -490,6 +490,8 @@ if wayland_enabled
wlprotocolsdep = dependency('wayland-protocols', version: wayland_proto_req)
wlegldep = dependency('wayland-egl')
wlproto_dir = wlprotocolsdep.get_variable('pkgdatadir')
wayland_pkgs = [
'wayland-client @0@'.format(wayland_req),
'xkbcommon @0@'.format(xkbcommon_req),

View File

@@ -27,9 +27,6 @@
#include <gst/gl/gl.h>
#include <gst/video/gstvideosink.h>
#include <gst/video/video.h>
#ifdef HAVE_GSTREAMER_DRM
#include <gst/video/video-info-dma.h>
#endif
#define GTK_TYPE_GST_SINK (gtk_gst_sink_get_type())
#define GTK_GST_SINK(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GTK_TYPE_GST_SINK,GtkGstSink))

View File

@@ -31,16 +31,16 @@ msgid ""
msgstr ""
"Project-Id-Version: gtk master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n"
"POT-Creation-Date: 2024-04-07 17:24+0000\n"
"PO-Revision-Date: 2024-04-09 10:26+0800\n"
"POT-Creation-Date: 2024-03-03 01:26+0000\n"
"PO-Revision-Date: 2024-03-03 19:15+0800\n"
"Last-Translator: lumingzh <lumingzh@qq.com>\n"
"Language-Team: Chinese - China <i18n-zh@googlegroups.com>\n"
"Language: zh_CN\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Poedit 3.4.2\n"
"Plural-Forms: nplurals=1; plural=0\n"
"X-Generator: Gtranslator 45.3\n"
#: gdk/broadway/gdkbroadway-server.c:135
#, c-format
@@ -55,7 +55,7 @@ msgstr "剪贴板无法存放数据。"
msgid "Cannot read from empty clipboard."
msgstr "无法读取空剪贴板。"
#: gdk/gdkclipboard.c:318 gdk/gdkclipboard.c:1136 gdk/gdkdrag.c:606
#: gdk/gdkclipboard.c:318 gdk/gdkclipboard.c:1136 gdk/gdkdrag.c:618
msgid "No compatible formats to transfer clipboard contents."
msgstr "无兼容格式可用于传输剪贴板内容。"
@@ -70,11 +70,11 @@ msgstr "无法以“%s”提供内容"
msgid "Cannot provide contents as %s"
msgstr "无法以 %s 提供内容"
#: gdk/gdkdisplay.c:176 gdk/gdkglcontext.c:464
#: gdk/gdkdisplay.c:176 gdk/gdkglcontext.c:459
msgid "The current backend does not support OpenGL"
msgstr "当前后端不支持 OpenGL"
#: gdk/gdkdisplay.c:1315 gdk/gdkvulkancontext.c:1600
#: gdk/gdkdisplay.c:1315 gdk/gdkvulkancontext.c:1601
msgid "Vulkan support disabled via GDK_DEBUG"
msgstr "已通过 GDK_DEBUG 停用 Vulkan 支持"
@@ -82,45 +82,45 @@ msgstr "已通过 GDK_DEBUG 停用 Vulkan 支持"
msgid "GL support disabled via GDK_DEBUG"
msgstr "已通过 GDK_DEBUG 停用 GL 支持"
#: gdk/gdkdisplay.c:1675
#: gdk/gdkdisplay.c:1665
msgid "No EGL configuration available"
msgstr "没有可用的 EGL 配置"
#: gdk/gdkdisplay.c:1683
#: gdk/gdkdisplay.c:1673
msgid "Failed to get EGL configurations"
msgstr "获取 EGL 配置失败"
#: gdk/gdkdisplay.c:1713
#: gdk/gdkdisplay.c:1703
msgid "No EGL configuration with required features found"
msgstr "未找到带有所需功能的 EGL 配置"
#: gdk/gdkdisplay.c:1720
#: gdk/gdkdisplay.c:1710
msgid "No perfect EGL configuration found"
msgstr "未找到完全符合的 EGL 配置"
#: gdk/gdkdisplay.c:1762
#: gdk/gdkdisplay.c:1752
#, c-format
msgid "EGL implementation is missing extension %s"
msgid_plural "EGL implementation is missing %2$d extensions: %1$s"
msgstr[0] "EGL 实现缺失 %2$d 项扩展:%1$s"
#: gdk/gdkdisplay.c:1811
#: gdk/gdkdisplay.c:1801
msgid "libEGL not available in this sandbox"
msgstr "libEGL 在此沙盒内不可用"
#: gdk/gdkdisplay.c:1812
#: gdk/gdkdisplay.c:1802
msgid "libEGL not available"
msgstr "libEGL 不可用"
#: gdk/gdkdisplay.c:1822
#: gdk/gdkdisplay.c:1812
msgid "Failed to create EGL display"
msgstr "创建 EGL 显示失败"
#: gdk/gdkdisplay.c:1831
#: gdk/gdkdisplay.c:1821
msgid "Could not initialize EGL display"
msgstr "无法初始化 EGL 显示"
#: gdk/gdkdisplay.c:1841
#: gdk/gdkdisplay.c:1831
#, c-format
msgid "EGL version %d.%d is too old. GTK requires %d.%d"
msgstr "EGL %d.%d 版太旧。GTK 需要 %d.%d"
@@ -133,32 +133,32 @@ msgstr "不支持从其他应用拖放。"
msgid "No compatible formats to transfer contents."
msgstr "无兼容格式可用于传输内容。"
#: gdk/gdkglcontext.c:424 gdk/x11/gdkglcontext-glx.c:645
#: gdk/gdkglcontext.c:419 gdk/x11/gdkglcontext-glx.c:645
msgid "No GL API allowed."
msgstr "无允许的 GL API。"
#: gdk/gdkglcontext.c:447 gdk/win32/gdkglcontext-win32-wgl.c:395
#: 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
msgid "Unable to create a GL context"
msgstr "无法创建 GL 上下文"
#: gdk/gdkglcontext.c:1310
#: gdk/gdkglcontext.c:1304
msgid "OpenGL ES disabled via GDK_DEBUG"
msgstr "已通过 GDK_DEBUG 停用 OpenGL ES"
#: gdk/gdkglcontext.c:1322
#: gdk/gdkglcontext.c:1316
msgid "OpenGL disabled via GDK_DEBUG"
msgstr "已通过 GDK_DEBUG 停用 OpenGL"
#: gdk/gdkglcontext.c:1333
#: gdk/gdkglcontext.c:1327
#, 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:2123
#: gdk/gdkglcontext.c:2113
#, c-format
msgid "Trying to use %s, but %s is already in use"
msgstr "尝试使用 %s但 %s 已在使用"
@@ -841,7 +841,7 @@ msgstr "不支持的编码“%s”"
msgid "This GLES %d.%d implementation does not support half-float vertex data"
msgstr "该 GLES %d.%d 实现不支持半浮点顶点数据"
#: gsk/gpu/gskgldevice.c:246
#: gsk/gpu/gskgldevice.c:245
#, c-format
msgid "OpenGL ES 3.0 is not supported by this renderer."
msgstr "此渲染器不支持 OpenGL ES 3.0。"
@@ -1089,7 +1089,7 @@ msgid "Pick a Font"
msgstr "选择字体"
#: gtk/deprecated/gtkfontbutton.c:600 gtk/gtkfilechooserwidget.c:3815
#: gtk/gtkfontdialogbutton.c:126 gtk/inspector/visual.ui:285
#: gtk/gtkfontdialogbutton.c:126 gtk/inspector/visual.ui:169
msgid "Font"
msgstr "字体"
@@ -2344,7 +2344,7 @@ msgid "If you delete an item, it will be permanently lost."
msgstr "如果您删除一个项目,它将永久丢失。"
#: gtk/gtkfilechooserwidget.c:1188 gtk/gtkfilechooserwidget.c:1786
#: gtk/gtklabel.c:5723 gtk/gtktext.c:6194 gtk/gtktextview.c:9099
#: gtk/gtklabel.c:5712 gtk/gtktext.c:6193 gtk/gtktextview.c:9080
msgid "_Delete"
msgstr "删除(_D)"
@@ -2553,7 +2553,7 @@ msgid "_Time"
msgstr "时间(_T)"
#: gtk/gtkfilechooserwidget.c:7375 gtk/gtkplacessidebar.c:2306
#: gtk/inspector/a11y.ui:43 gtk/inspector/actions.ui:18
#: gtk/inspector/a11y.ui:43 gtk/inspector/actions.ui:19
#: gtk/inspector/css-node-tree.ui:22 gtk/inspector/prop-list.ui:24
#: gtk/ui/gtkfilechooserwidget.ui:385 gtk/print/ui/gtkprintunixdialog.ui:80
msgid "Name"
@@ -2669,7 +2669,7 @@ msgstr "样式变体"
msgid "Character Variations"
msgstr "字符变体"
#: gtk/gtkglarea.c:315
#: gtk/gtkglarea.c:309
msgid "OpenGL context creation failed"
msgstr "OpenGL 上下文创建失败"
@@ -2682,31 +2682,31 @@ msgstr "关闭"
msgid "Close the infobar"
msgstr "关闭信息栏"
#: gtk/gtklabel.c:5720 gtk/gtktext.c:6182 gtk/gtktextview.c:9087
#: gtk/gtklabel.c:5709 gtk/gtktext.c:6181 gtk/gtktextview.c:9068
msgid "Cu_t"
msgstr "剪切(_T)"
#: gtk/gtklabel.c:5721 gtk/gtktext.c:6186 gtk/gtktextview.c:9091
#: gtk/gtklabel.c:5710 gtk/gtktext.c:6185 gtk/gtktextview.c:9072
msgid "_Copy"
msgstr "复制(_C)"
#: gtk/gtklabel.c:5722 gtk/gtktext.c:6190 gtk/gtktextview.c:9095
#: gtk/gtklabel.c:5711 gtk/gtktext.c:6189 gtk/gtktextview.c:9076
msgid "_Paste"
msgstr "粘贴(_P)"
#: gtk/gtklabel.c:5728 gtk/gtktext.c:6203 gtk/gtktextview.c:9120
#: gtk/gtklabel.c:5717 gtk/gtktext.c:6202 gtk/gtktextview.c:9101
msgid "Select _All"
msgstr "全选(_A)"
#: gtk/gtklabel.c:5733
#: gtk/gtklabel.c:5722
msgid "_Open Link"
msgstr "打开链接(_O)"
#: gtk/gtklabel.c:5737
#: gtk/gtklabel.c:5726
msgid "Copy _Link Address"
msgstr "复制链接地址(_L)"
#: gtk/gtklabel.c:5781 gtk/gtktext.c:2723 gtk/gtktextview.c:9169
#: gtk/gtklabel.c:5770 gtk/gtktext.c:2724 gtk/gtktextview.c:9150
msgid "Context menu"
msgstr "右键菜单"
@@ -3395,7 +3395,7 @@ msgstr "缺纸"
#. Translators: this is a printer status.
#: gtk/print/gtkprintoperation-win32.c:640
#: modules/printbackends/gtkprintbackendcpdb.c:1533
#: modules/printbackends/gtkprintbackendcpdb.c:1528
#: modules/printbackends/gtkprintbackendcups.c:2639
msgid "Paused"
msgstr "已暂停"
@@ -3466,42 +3466,42 @@ msgstr "正在获取打印机信息…"
#. * multiple pages on a sheet when printing
#.
#: gtk/print/gtkprintunixdialog.c:2753
#: modules/printbackends/gtkprintbackendcups.c:5677
#: modules/printbackends/gtkprintbackendcups.c:5645
msgid "Left to right, top to bottom"
msgstr "从左到右,从上到下"
#: gtk/print/gtkprintunixdialog.c:2753
#: modules/printbackends/gtkprintbackendcups.c:5677
#: modules/printbackends/gtkprintbackendcups.c:5645
msgid "Left to right, bottom to top"
msgstr "从左到右,从下到上"
#: gtk/print/gtkprintunixdialog.c:2754
#: modules/printbackends/gtkprintbackendcups.c:5678
#: modules/printbackends/gtkprintbackendcups.c:5646
msgid "Right to left, top to bottom"
msgstr "从右到左,从上到下"
#: gtk/print/gtkprintunixdialog.c:2754
#: modules/printbackends/gtkprintbackendcups.c:5678
#: modules/printbackends/gtkprintbackendcups.c:5646
msgid "Right to left, bottom to top"
msgstr "从右到左,从下到上"
#: gtk/print/gtkprintunixdialog.c:2755
#: modules/printbackends/gtkprintbackendcups.c:5679
#: modules/printbackends/gtkprintbackendcups.c:5647
msgid "Top to bottom, left to right"
msgstr "从上到下,从左到右"
#: gtk/print/gtkprintunixdialog.c:2755
#: modules/printbackends/gtkprintbackendcups.c:5679
#: modules/printbackends/gtkprintbackendcups.c:5647
msgid "Top to bottom, right to left"
msgstr "从上到下,从右到左"
#: gtk/print/gtkprintunixdialog.c:2756
#: modules/printbackends/gtkprintbackendcups.c:5680
#: modules/printbackends/gtkprintbackendcups.c:5648
msgid "Bottom to top, left to right"
msgstr "从下到上,从左到右"
#: gtk/print/gtkprintunixdialog.c:2756
#: modules/printbackends/gtkprintbackendcups.c:5680
#: modules/printbackends/gtkprintbackendcups.c:5648
msgid "Bottom to top, right to left"
msgstr "从下到上,从右到左"
@@ -3639,15 +3639,15 @@ msgctxt "accessibility"
msgid "Sidebar"
msgstr "侧边栏"
#: gtk/gtktext.c:6208 gtk/gtktextview.c:9125
#: gtk/gtktext.c:6207 gtk/gtktextview.c:9106
msgid "Insert _Emoji"
msgstr "插入表情符号(_E)"
#: gtk/gtktextview.c:9107
#: gtk/gtktextview.c:9088
msgid "_Undo"
msgstr "撤消(_U)"
#: gtk/gtktextview.c:9111
#: gtk/gtktextview.c:9092
msgid "_Redo"
msgstr "重做(_R)"
@@ -3874,7 +3874,7 @@ msgctxt "Vulkan version"
msgid "None"
msgstr "无"
#: gtk/inspector/general.c:924
#: gtk/inspector/general.c:922
msgid "IM Context is hardcoded by GTK_IM_MODULE"
msgstr "输入法上下文由 GTK_IM_MODULE 硬编码"
@@ -4060,7 +4060,7 @@ msgstr "帧数"
msgid "Frame Rate"
msgstr "帧率"
#: gtk/inspector/misc-info.ui:527 gtk/inspector/visual.ui:315
#: gtk/inspector/misc-info.ui:527
msgid "Scale"
msgstr "缩放"
@@ -4245,27 +4245,27 @@ msgstr "尺寸:"
msgid "Trigger"
msgstr "触发"
#: gtk/inspector/size-groups.c:228
#: gtk/inspector/size-groups.c:225
msgctxt "sizegroup mode"
msgid "None"
msgstr "无"
#: gtk/inspector/size-groups.c:229
#: gtk/inspector/size-groups.c:226
msgctxt "sizegroup mode"
msgid "Horizontal"
msgstr "水平"
#: gtk/inspector/size-groups.c:230
#: gtk/inspector/size-groups.c:227
msgctxt "sizegroup mode"
msgid "Vertical"
msgstr "垂直"
#: gtk/inspector/size-groups.c:231
#: gtk/inspector/size-groups.c:228
msgctxt "sizegroup mode"
msgid "Both"
msgstr "两者"
#: gtk/inspector/size-groups.c:243
#: gtk/inspector/size-groups.c:240
msgid "Mode"
msgstr "模式"
@@ -4322,10 +4322,14 @@ msgstr "层级"
msgid "Implements"
msgstr "实现"
#: gtk/inspector/visual.c:765 gtk/inspector/visual.c:784
#: gtk/inspector/visual.c:674 gtk/inspector/visual.c:693
msgid "Theme is hardcoded by GTK_THEME"
msgstr "主题由 GTK_THEME 控制"
#: gtk/inspector/visual.c:942
msgid "Backend does not support window scaling"
msgstr "后端不支持窗口缩放"
#: gtk/inspector/visual.ui:34
msgid "GTK Theme"
msgstr "GTK 主题"
@@ -4346,113 +4350,89 @@ msgstr "光标大小"
msgid "Icon Theme"
msgstr "图标主题"
#: gtk/inspector/visual.ui:169
#: gtk/inspector/visual.ui:194
msgid "Font Scale"
msgstr "字体缩放"
#: gtk/inspector/visual.ui:239
msgid "Text Direction"
msgstr "文本方向"
#: gtk/inspector/visual.ui:184
#: gtk/inspector/visual.ui:254
msgid "Left-to-Right"
msgstr "从左至右"
#: gtk/inspector/visual.ui:185
#: gtk/inspector/visual.ui:255
msgid "Right-to-Left"
msgstr "从右至左"
#: gtk/inspector/visual.ui:202
#: gtk/inspector/visual.ui:273
msgid "Window Scaling"
msgstr "窗口缩放"
#: gtk/inspector/visual.ui:306
msgid "Animations"
msgstr "动画"
#: gtk/inspector/visual.ui:227
#: gtk/inspector/visual.ui:331
msgid "Slowdown"
msgstr "减速"
#: gtk/inspector/visual.ui:362
msgid "Antialiasing"
msgstr "抗锯齿"
#: gtk/inspector/visual.ui:387
msgid "Hinting"
msgstr "微调"
#: gtk/inspector/visual.ui:402
msgctxt "Font hinting style"
msgid "None"
msgstr "无"
#: gtk/inspector/visual.ui:403
msgctxt "Font hinting style"
msgid "Slight"
msgstr "轻微"
#: gtk/inspector/visual.ui:404
msgctxt "Font hinting style"
msgid "Medium"
msgstr "中等"
#: gtk/inspector/visual.ui:405
msgctxt "Font hinting style"
msgid "Full"
msgstr "完全"
#: gtk/inspector/visual.ui:422
msgid "Metrics Hinting"
msgstr "度量微调"
#: gtk/inspector/visual.ui:457
#: gtk/inspector/visual.ui:385
msgid "Show Framerate"
msgstr "显示帧率"
#: gtk/inspector/visual.ui:482
#: gtk/inspector/visual.ui:410
msgid "Show Graphic Updates"
msgstr "显示图形更新"
#: gtk/inspector/visual.ui:502
#: gtk/inspector/visual.ui:430
msgid ""
"Tints all the places where the current renderer uses Cairo instead of the "
"GPU."
msgstr "为当前渲染器使用 Cairo 而不是 GPU 的所有位置进行着色。"
#: gtk/inspector/visual.ui:508
#: gtk/inspector/visual.ui:436
msgid "Show Cairo Rendering"
msgstr "显示 Cairo 渲染"
#: gtk/inspector/visual.ui:533
#: gtk/inspector/visual.ui:461
msgid "Show Baselines"
msgstr "显示基线"
#: gtk/inspector/visual.ui:561
#: gtk/inspector/visual.ui:489
msgid "Show Layout Borders"
msgstr "显示布局边框"
#: gtk/inspector/visual.ui:618
#: gtk/inspector/visual.ui:546
msgid "CSS Padding"
msgstr "CSS 填充"
#: gtk/inspector/visual.ui:628
#: gtk/inspector/visual.ui:556
msgid "CSS Border"
msgstr "CSS 边框"
#: gtk/inspector/visual.ui:638
#: gtk/inspector/visual.ui:566
msgid "CSS Margin"
msgstr "CSS 边距"
#: gtk/inspector/visual.ui:648
#: gtk/inspector/visual.ui:576
msgid "Widget Margin"
msgstr "部件边距"
#: gtk/inspector/visual.ui:683
#: gtk/inspector/visual.ui:611
msgid "Show Focus"
msgstr "显示焦点"
#: gtk/inspector/visual.ui:708
#: gtk/inspector/visual.ui:636
msgid "Show Accessibility warnings"
msgstr "显示辅助功能警告"
#: gtk/inspector/visual.ui:733
#: gtk/inspector/visual.ui:661
msgid "Show Graphics Offload"
msgstr "显示图形离屏渲染"
#: gtk/inspector/visual.ui:765
#: gtk/inspector/visual.ui:693
msgid "Inspect Inspector"
msgstr "检阅本检查器"
@@ -6579,35 +6559,34 @@ msgstr "高级"
msgid "Some of the settings in the dialog conflict"
msgstr "对话框中的某些设置冲突"
#: modules/printbackends/gtkprintbackendcpdb.c:542
#: modules/printbackends/gtkprintbackendcups.c:5668
msgctxt "Print job priority"
#. Translators: These strings name the possible values of the
#. * job priority option in the print dialog
#.
#: modules/printbackends/gtkprintbackendcpdb.c:541
#: modules/printbackends/gtkprintbackendcups.c:5640
msgid "Urgent"
msgstr "紧急"
#: modules/printbackends/gtkprintbackendcpdb.c:543
#: modules/printbackends/gtkprintbackendcups.c:5669
msgctxt "Print job priority"
#: modules/printbackends/gtkprintbackendcpdb.c:541
#: modules/printbackends/gtkprintbackendcups.c:5640
msgid "High"
msgstr "高"
#: modules/printbackends/gtkprintbackendcpdb.c:544
#: modules/printbackends/gtkprintbackendcups.c:5670
msgctxt "Print job priority"
#: modules/printbackends/gtkprintbackendcpdb.c:541
#: modules/printbackends/gtkprintbackendcups.c:5640
msgid "Medium"
msgstr "中"
#: modules/printbackends/gtkprintbackendcpdb.c:545
#: modules/printbackends/gtkprintbackendcups.c:5671
msgctxt "Print job priority"
#: modules/printbackends/gtkprintbackendcpdb.c:541
#: modules/printbackends/gtkprintbackendcups.c:5640
msgid "Low"
msgstr "低"
#. Translators, this is the label used for the option in the print
#. * dialog that controls the front cover page.
#.
#: modules/printbackends/gtkprintbackendcpdb.c:567
#: modules/printbackends/gtkprintbackendcups.c:5814
#: modules/printbackends/gtkprintbackendcpdb.c:562
#: modules/printbackends/gtkprintbackendcups.c:5782
msgctxt "printer option"
msgid "Before"
msgstr "封面"
@@ -6615,33 +6594,33 @@ msgstr "封面"
#. Translators, this is the label used for the option in the print
#. * dialog that controls the back cover page.
#.
#: modules/printbackends/gtkprintbackendcpdb.c:574
#: modules/printbackends/gtkprintbackendcups.c:5829
#: modules/printbackends/gtkprintbackendcpdb.c:569
#: modules/printbackends/gtkprintbackendcups.c:5797
msgctxt "printer option"
msgid "After"
msgstr "封底"
#: modules/printbackends/gtkprintbackendcpdb.c:597
#: modules/printbackends/gtkprintbackendcpdb.c:592
msgid "Print at"
msgstr "打印于"
#: modules/printbackends/gtkprintbackendcpdb.c:607
#: modules/printbackends/gtkprintbackendcpdb.c:602
msgid "Print at time"
msgstr "在指定时间打印"
#: modules/printbackends/gtkprintbackendcpdb.c:670
#: modules/printbackends/gtkprintbackendcpdb.c:665
msgctxt "print option"
msgid "Borderless"
msgstr "无边框"
#. Translators: this is a printer status.
#: modules/printbackends/gtkprintbackendcpdb.c:1530
#: modules/printbackends/gtkprintbackendcpdb.c:1525
#: modules/printbackends/gtkprintbackendcups.c:2636
msgid "Paused; Rejecting Jobs"
msgstr "暂停,拒绝任务"
#. Translators: this is a printer status.
#: modules/printbackends/gtkprintbackendcpdb.c:1536
#: modules/printbackends/gtkprintbackendcpdb.c:1531
#: modules/printbackends/gtkprintbackendcups.c:2642
msgid "Rejecting Jobs"
msgstr "拒绝任务"
@@ -6792,266 +6771,266 @@ msgstr "打印机“%s”可能有问题。"
msgid "; "
msgstr ""
#: modules/printbackends/gtkprintbackendcups.c:4609
#: modules/printbackends/gtkprintbackendcups.c:4676
#: modules/printbackends/gtkprintbackendcups.c:4582
#: modules/printbackends/gtkprintbackendcups.c:4649
msgctxt "printing option"
msgid "Two Sided"
msgstr "双面"
#: modules/printbackends/gtkprintbackendcups.c:4610
#: modules/printbackends/gtkprintbackendcups.c:4583
msgctxt "printing option"
msgid "Paper Type"
msgstr "纸张类型"
#: modules/printbackends/gtkprintbackendcups.c:4611
#: modules/printbackends/gtkprintbackendcups.c:4584
msgctxt "printing option"
msgid "Paper Source"
msgstr "纸张来源"
#: modules/printbackends/gtkprintbackendcups.c:4612
#: modules/printbackends/gtkprintbackendcups.c:4677
#: modules/printbackends/gtkprintbackendcups.c:4585
#: modules/printbackends/gtkprintbackendcups.c:4650
msgctxt "printing option"
msgid "Output Tray"
msgstr "出纸器"
#: modules/printbackends/gtkprintbackendcups.c:4613
#: modules/printbackends/gtkprintbackendcups.c:4586
msgctxt "printing option"
msgid "Resolution"
msgstr "分辨率"
#: modules/printbackends/gtkprintbackendcups.c:4614
#: modules/printbackends/gtkprintbackendcups.c:4587
msgctxt "printing option"
msgid "GhostScript pre-filtering"
msgstr "GhostScript 预过滤"
#: modules/printbackends/gtkprintbackendcups.c:4623
#: modules/printbackends/gtkprintbackendcups.c:4596
msgctxt "printing option value"
msgid "One Sided"
msgstr "单面"
#. Translators: this is an option of "Two Sided"
#: modules/printbackends/gtkprintbackendcups.c:4625
#: modules/printbackends/gtkprintbackendcups.c:4598
msgctxt "printing option value"
msgid "Long Edge (Standard)"
msgstr "长边(标准)"
#. Translators: this is an option of "Two Sided"
#: modules/printbackends/gtkprintbackendcups.c:4627
#: modules/printbackends/gtkprintbackendcups.c:4600
msgctxt "printing option value"
msgid "Short Edge (Flip)"
msgstr "短边(翻转)"
#. Translators: this is an option of "Paper Source"
#: modules/printbackends/gtkprintbackendcups.c:4629
#: modules/printbackends/gtkprintbackendcups.c:4631
#: modules/printbackends/gtkprintbackendcups.c:4639
#: modules/printbackends/gtkprintbackendcups.c:4602
#: modules/printbackends/gtkprintbackendcups.c:4604
#: modules/printbackends/gtkprintbackendcups.c:4612
msgctxt "printing option value"
msgid "Auto Select"
msgstr "自动选择"
#. Translators: this is an option of "Paper Source"
#. Translators: this is an option of "Resolution"
#: modules/printbackends/gtkprintbackendcups.c:4633
#: modules/printbackends/gtkprintbackendcups.c:4635
#: modules/printbackends/gtkprintbackendcups.c:4637
#: modules/printbackends/gtkprintbackendcups.c:4641
#: modules/printbackends/gtkprintbackendcups.c:4606
#: modules/printbackends/gtkprintbackendcups.c:4608
#: modules/printbackends/gtkprintbackendcups.c:4610
#: modules/printbackends/gtkprintbackendcups.c:4614
msgctxt "printing option value"
msgid "Printer Default"
msgstr "打印机默认"
#. Translators: this is an option of "GhostScript"
#: modules/printbackends/gtkprintbackendcups.c:4643
#: modules/printbackends/gtkprintbackendcups.c:4616
msgctxt "printing option value"
msgid "Embed GhostScript fonts only"
msgstr "只嵌入 GhostScript 字体"
#. Translators: this is an option of "GhostScript"
#: modules/printbackends/gtkprintbackendcups.c:4645
#: modules/printbackends/gtkprintbackendcups.c:4618
msgctxt "printing option value"
msgid "Convert to PS level 1"
msgstr "转换到 PS 1 级"
#. Translators: this is an option of "GhostScript"
#: modules/printbackends/gtkprintbackendcups.c:4647
#: modules/printbackends/gtkprintbackendcups.c:4620
msgctxt "printing option value"
msgid "Convert to PS level 2"
msgstr "转换到 PS 2 级"
#. Translators: this is an option of "GhostScript"
#: modules/printbackends/gtkprintbackendcups.c:4649
#: modules/printbackends/gtkprintbackendcups.c:4622
msgctxt "printing option value"
msgid "No pre-filtering"
msgstr "无预过滤"
#. Translators: "Miscellaneous" is the label for a button, that opens
#. up an extra panel of settings in a print dialog.
#: modules/printbackends/gtkprintbackendcups.c:4658
#: modules/printbackends/gtkprintbackendcups.c:4631
msgctxt "printing option group"
msgid "Miscellaneous"
msgstr "杂项"
#: modules/printbackends/gtkprintbackendcups.c:4685
#: modules/printbackends/gtkprintbackendcups.c:4658
msgctxt "sides"
msgid "One Sided"
msgstr "单面"
#. Translators: this is an option of "Two Sided"
#: modules/printbackends/gtkprintbackendcups.c:4687
#: modules/printbackends/gtkprintbackendcups.c:4660
msgctxt "sides"
msgid "Long Edge (Standard)"
msgstr "长边(标准)"
#. Translators: this is an option of "Two Sided"
#: modules/printbackends/gtkprintbackendcups.c:4689
#: modules/printbackends/gtkprintbackendcups.c:4662
msgctxt "sides"
msgid "Short Edge (Flip)"
msgstr "短边(翻转)"
#. Translators: Top output bin
#: modules/printbackends/gtkprintbackendcups.c:4692
#: modules/printbackends/gtkprintbackendcups.c:4665
msgctxt "output-bin"
msgid "Top Bin"
msgstr "顶纸盒"
#. Translators: Middle output bin
#: modules/printbackends/gtkprintbackendcups.c:4694
#: modules/printbackends/gtkprintbackendcups.c:4667
msgctxt "output-bin"
msgid "Middle Bin"
msgstr "中纸盒"
#. Translators: Bottom output bin
#: modules/printbackends/gtkprintbackendcups.c:4696
#: modules/printbackends/gtkprintbackendcups.c:4669
msgctxt "output-bin"
msgid "Bottom Bin"
msgstr "底纸盒"
#. Translators: Side output bin
#: modules/printbackends/gtkprintbackendcups.c:4698
#: modules/printbackends/gtkprintbackendcups.c:4671
msgctxt "output-bin"
msgid "Side Bin"
msgstr "侧纸盒"
#. Translators: Left output bin
#: modules/printbackends/gtkprintbackendcups.c:4700
#: modules/printbackends/gtkprintbackendcups.c:4673
msgctxt "output-bin"
msgid "Left Bin"
msgstr "左纸盒"
#. Translators: Right output bin
#: modules/printbackends/gtkprintbackendcups.c:4702
#: modules/printbackends/gtkprintbackendcups.c:4675
msgctxt "output-bin"
msgid "Right Bin"
msgstr "右纸盒"
#. Translators: Center output bin
#: modules/printbackends/gtkprintbackendcups.c:4704
#: modules/printbackends/gtkprintbackendcups.c:4677
msgctxt "output-bin"
msgid "Center Bin"
msgstr "中纸盒"
#. Translators: Rear output bin
#: modules/printbackends/gtkprintbackendcups.c:4706
#: modules/printbackends/gtkprintbackendcups.c:4679
msgctxt "output-bin"
msgid "Rear Bin"
msgstr "后纸盒"
#. Translators: Output bin where one sided output is oriented in the face-up position
#: modules/printbackends/gtkprintbackendcups.c:4708
#: modules/printbackends/gtkprintbackendcups.c:4681
msgctxt "output-bin"
msgid "Face Up Bin"
msgstr "面朝上纸盒"
#. Translators: Output bin where one sided output is oriented in the face-down position
#: modules/printbackends/gtkprintbackendcups.c:4710
#: modules/printbackends/gtkprintbackendcups.c:4683
msgctxt "output-bin"
msgid "Face Down Bin"
msgstr "面朝下纸盒"
#. Translators: Large capacity output bin
#: modules/printbackends/gtkprintbackendcups.c:4712
#: modules/printbackends/gtkprintbackendcups.c:4685
msgctxt "output-bin"
msgid "Large Capacity Bin"
msgstr "大容量纸盒"
#. Translators: Output stacker number %d
#: modules/printbackends/gtkprintbackendcups.c:4734
#: modules/printbackends/gtkprintbackendcups.c:4707
#, c-format
msgctxt "output-bin"
msgid "Stacker %d"
msgstr "贴纸 %d"
#. Translators: Output mailbox number %d
#: modules/printbackends/gtkprintbackendcups.c:4738
#: modules/printbackends/gtkprintbackendcups.c:4711
#, c-format
msgctxt "output-bin"
msgid "Mailbox %d"
msgstr "邮箱 %d"
#. Translators: Private mailbox
#: modules/printbackends/gtkprintbackendcups.c:4742
#: modules/printbackends/gtkprintbackendcups.c:4715
msgctxt "output-bin"
msgid "My Mailbox"
msgstr "我的邮箱"
#. Translators: Output tray number %d
#: modules/printbackends/gtkprintbackendcups.c:4746
#: modules/printbackends/gtkprintbackendcups.c:4719
#, c-format
msgctxt "output-bin"
msgid "Tray %d"
msgstr "托盘 %d"
#: modules/printbackends/gtkprintbackendcups.c:5223
#: modules/printbackends/gtkprintbackendcups.c:5196
msgid "Printer Default"
msgstr "打印机默认"
#. Translators, this string is used to label the job priority option
#. * in the print dialog
#.
#: modules/printbackends/gtkprintbackendcups.c:5702
#: modules/printbackends/gtkprintbackendcups.c:5670
msgid "Job Priority"
msgstr "任务优先级"
#. Translators, this string is used to label the billing info entry
#. * in the print dialog
#.
#: modules/printbackends/gtkprintbackendcups.c:5713
#: modules/printbackends/gtkprintbackendcups.c:5681
msgid "Billing Info"
msgstr "计费信息"
#. Translators, these strings are names for various 'standard' cover
#. * pages that the printing system may support.
#.
#: modules/printbackends/gtkprintbackendcups.c:5737
#: modules/printbackends/gtkprintbackendcups.c:5705
msgctxt "cover page"
msgid "None"
msgstr "无"
#: modules/printbackends/gtkprintbackendcups.c:5738
#: modules/printbackends/gtkprintbackendcups.c:5706
msgctxt "cover page"
msgid "Classified"
msgstr "保密"
#: modules/printbackends/gtkprintbackendcups.c:5739
#: modules/printbackends/gtkprintbackendcups.c:5707
msgctxt "cover page"
msgid "Confidential"
msgstr "机密"
#: modules/printbackends/gtkprintbackendcups.c:5740
#: modules/printbackends/gtkprintbackendcups.c:5708
msgctxt "cover page"
msgid "Secret"
msgstr "秘密"
#: modules/printbackends/gtkprintbackendcups.c:5741
#: modules/printbackends/gtkprintbackendcups.c:5709
msgctxt "cover page"
msgid "Standard"
msgstr "标准"
#: modules/printbackends/gtkprintbackendcups.c:5742
#: modules/printbackends/gtkprintbackendcups.c:5710
msgctxt "cover page"
msgid "Top Secret"
msgstr "绝密"
#: modules/printbackends/gtkprintbackendcups.c:5743
#: modules/printbackends/gtkprintbackendcups.c:5711
msgctxt "cover page"
msgid "Unclassified"
msgstr "非保密"
@@ -7059,7 +7038,7 @@ msgstr "非保密"
#. Translators, this string is used to label the pages-per-sheet option
#. * in the print dialog
#.
#: modules/printbackends/gtkprintbackendcups.c:5755
#: modules/printbackends/gtkprintbackendcups.c:5723
msgctxt "printer option"
msgid "Pages per Sheet"
msgstr "每张页数"
@@ -7067,7 +7046,7 @@ msgstr "每张页数"
#. Translators, this string is used to label the option in the print
#. * dialog that controls in what order multiple pages are arranged
#.
#: modules/printbackends/gtkprintbackendcups.c:5772
#: modules/printbackends/gtkprintbackendcups.c:5740
msgctxt "printer option"
msgid "Page Ordering"
msgstr "页面顺序"
@@ -7076,7 +7055,7 @@ msgstr "页面顺序"
#. * a print job is printed. Possible values are 'now', a specified time,
#. * or 'on hold'
#.
#: modules/printbackends/gtkprintbackendcups.c:5849
#: modules/printbackends/gtkprintbackendcups.c:5817
msgctxt "printer option"
msgid "Print at"
msgstr "打印于"
@@ -7084,7 +7063,7 @@ msgstr "打印于"
#. Translators: this is the name of the option that allows the user
#. * to specify a time when a print job will be printed.
#.
#: modules/printbackends/gtkprintbackendcups.c:5860
#: modules/printbackends/gtkprintbackendcups.c:5828
msgctxt "printer option"
msgid "Print at time"
msgstr "在指定时间打印"
@@ -7094,19 +7073,19 @@ msgstr "在指定时间打印"
#. * the width and height in points. E.g: "Custom
#. * 230.4x142.9"
#.
#: modules/printbackends/gtkprintbackendcups.c:5907
#: modules/printbackends/gtkprintbackendcups.c:5875
#, c-format
msgid "Custom %s×%s"
msgstr "自定义 %s×%s"
#. TRANSLATORS: this is the ICC color profile to use for this job
#: modules/printbackends/gtkprintbackendcups.c:6018
#: modules/printbackends/gtkprintbackendcups.c:5986
msgctxt "printer option"
msgid "Printer Profile"
msgstr "打印机配置"
#. TRANSLATORS: this is when color profile information is unavailable
#: modules/printbackends/gtkprintbackendcups.c:6025
#: modules/printbackends/gtkprintbackendcups.c:5993
msgctxt "printer option value"
msgid "Unavailable"
msgstr "不可用"
@@ -8089,15 +8068,6 @@ msgstr ""
"“%s”中没有主题索引文件。\n"
"如果您确实想要在此创建图标缓存,请使用 --ignore-theme-index 参数。\n"
#~ msgid "Backend does not support window scaling"
#~ msgstr "后端不支持窗口缩放"
#~ msgid "Font Scale"
#~ msgstr "字体缩放"
#~ msgid "Window Scaling"
#~ msgstr "窗口缩放"
#, c-format
#~ msgid "Unspecified error decoding media"
#~ msgstr "解码媒体时发生未指明的错误"

View File

@@ -49,7 +49,7 @@ gtk_tools = [
'gtk-rendernode-tool-utils.c',
'../testsuite/reftests/reftest-compare.c'], [libgtk_dep] ],
['gtk4-update-icon-cache', ['updateiconcache.c', '../gtk/gtkiconcachevalidator.c' ] + extra_update_icon_cache_objs, [ libgtk_dep ] ],
['gtk4-encode-symbolic-svg', ['encodesymbolic.c'], [ libgtk_static_dep ] ],
['gtk4-encode-symbolic-svg', ['encodesymbolic.c'], [ libgtk_static_dep, libgtk_dep ] ],
]
if os_unix