Compare commits

...

118 Commits

Author SHA1 Message Date
Sveinn í Felli d07a62a940 Update Icelandic translation 2024-11-15 15:25:08 +00:00
Matthias Clasen 0d2084739f Merge branch 'backports-for-4-16' into 'gtk-4-16'
Various backports

See merge request GNOME/gtk!7923
2024-11-14 22:36:47 +00:00
Matthias Clasen bad0fc0a46 NEWS: Updates 2024-11-14 15:24:34 -05:00
correctmost 02ea42f2bf updateiconcache: Fix GOptionContext leak in main 2024-11-14 15:07:18 -05:00
Christian Hergert 100215e48a gdk/wayland: remove trailing \n from g_debug()
Log messages do not need newlines.
2024-11-14 15:06:59 -05:00
Matthias Clasen 437dd0b7ff fontchooser: Don't make default size translatable
That was a copy/paste error in 2ad2bae1ca.

Thanks to Anders Jonsson for spotting it.
2024-11-14 15:06:38 -05:00
Matthijs Velsink 43137328f4 application: NULL-check appid before using it
Fixes commit 3274a286cc.

Closes #7141
2024-11-14 15:05:57 -05:00
Benjamin Otte fbf12b671b gstreamer: Fix small memleak 2024-11-14 15:05:18 -05:00
Benjamin Otte 3e8245d78f gstreamer: Identify GL memory by looking at the memory
Instead of looking at availability of a GL context, check the
memory's type.

That's what we do everywhere else and GL is not special.
2024-11-14 15:05:08 -05:00
Benjamin Otte 65a040ea1d gstsink: Do not advertise dmabufs with no formats
We return an empty format list when dmabufs aren't supported, not NULL.

And the sink was treating the empty format list by setting no fourccs
on the caps, which GStreamer conveniently interpreted as "any",
not as "none".
2024-11-14 15:04:59 -05:00
Benjamin Otte 464386abc3 cicpparams: Guard with BEGIN/END_DECLS
I want to include this header from DirectX C++ code.
2024-11-14 15:04:42 -05:00
Benjamin Otte 75ef0288b4 gdk: Add missing G_END_DECLS 2024-11-14 15:04:33 -05:00
Benjamin Otte aa7488d41a filechooser: Use g_clear_object() on potentially NULL objects
We can reach here in early exit paths when the shortcut_files have not
been initialized yet.
2024-11-14 15:04:23 -05:00
Luca Bacci fb26fa0365 Tools: exit with code 0 when showing --help output
This is in line with what most tools do when printing --help
(and GOptionContext alike)
2024-11-14 15:03:41 -05:00
Matthias Clasen 24fda9ae40 fontchooser: Make it more shrinkable
There were several places where unnecessarily big minimum sizes
were hardcoded. Instead, set a reasonable default size for the
dialog and the let window shrink further.

Helps for mobile situations.

Related: #7133
2024-11-14 15:03:29 -05:00
Florian "sp1rit"​ aa5ef81b3c demos: Add xmlns to appstream metainfo files
Pixiewood expects well-formed XML files, whose tags match the AppStream
namespace. Note that AppStream itself does not do this, so picking a
prefix for the namespace is fine for pixiewood but not AppStream.
2024-11-14 15:03:15 -05:00
Florian "sp1rit"​ bb76437401 meson: set install_tag for schema files
To limit the amount of files installed by meson install, users can
specify specific classes of files they actually want to install.

Most to be installed files are automatically tagged by meson correctly
based on what function produced them, but it can't for some (esp. those
installed using install_data/subdir).

As gschema files *should typically* be available at runtime, give them
the "runtime" tag.

See https://mesonbuild.com/Installing.html#installation-tags
2024-11-14 15:03:02 -05:00
Florian "sp1rit"​ 5f0f6f558e demo: Fix drag and drop demo critical
Right now, child is NULL when starting a drag in the main area and
moving the pointer onto the colors, there releasing it.
To avoid gtk_widget_get_ancestor thowing a critical, early exit if child
is NULL.
2024-11-14 15:02:51 -05:00
Benjamin Otte c3e16e68f7 win32: Don't crash if the settings are empty 2024-11-14 15:00:28 -05:00
Florian "sp1rit"​ 5444c3771d demo: Fix "Expander" demonstration
The expander window is not a dialog anymore, so attempting connecting to
its "response" is invalid and throws a critical:
  signal 'response' is invalid for instance '<PTR>' of type 'GtkWindow'
2024-11-14 15:00:07 -05:00
Alice Mikhaylenko fc5a3ef2c8 application: Set default window icon to appid by default
Lots of newer apps that use their appid as their icon name don't set
window icons, since they aren't used in GNOME. Instead of setting it
manually in every app, just default to it.

Only set the icon if it exists in the icon theme.

Remove manually set default icons in the demo.

No tests as GtkApplication doesn't have any in the first place.

Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/7120
2024-11-14 14:59:47 -05:00
Matthijs Velsink e6119c35a8 gsk: Fix wrong bt709_oetf
And use the format from `gdkcolordefs.h` for good measure.
2024-11-14 14:59:32 -05:00
Matthias Clasen 5c1d47b56a text: Try harder not to select inserted Emoji
We had code trying to handle the case of focus coming from a
child, but it is running too late to be effective. Instead,
keep a flag that tells us if the Emoji picker is still open.
2024-11-14 14:57:10 -05:00
Matthias Clasen 6eca8f5d76 Merge branch 'color-mgmt-opt-in' into 'gtk-4-16'
Make color management opt-in

See merge request GNOME/gtk!7922
2024-11-14 19:00:26 +00:00
Matthias Clasen 0e1bcd6d89 ci: Install a new enough meson
On Windows, we build a lot a subprojects. And some of them require
meson 1.3.0 now, so use that.
2024-11-14 13:32:32 -05:00
Matthias Clasen ead04fe615 Make color management opt-in
People were experiencing some issues when running GTK 4.16 apps
under kwin, which now enables the experimental Wayland protocol
by default. While the testing is valuable, we don't want to
make users of the stable GTK guinea pigs, so switch color
management from opt-out to opt-in. Use

GDK_DEBUG=color-mgmt

to enable use of the xx-color-manager-v4 protocol.
2024-11-14 12:55:19 -05:00
Sveinn í Felli b3e794e4f5 Update Icelandic translation 2024-11-13 16:05:10 +00:00
Sveinn í Felli 482c55550c Update Icelandic translation 2024-11-13 16:00:54 +00:00
Милош Поповић 60fec7db51 Update Serbian (Latin) translation 2024-11-11 13:15:41 +00:00
Милош Поповић 3c56a2915c Update Serbian translation 2024-11-11 13:13:59 +00:00
Марко Костић 46d268cd47 Update Serbian translation 2024-11-07 18:03:33 +00:00
Benjamin Otte 9505b14f86 Merge branch 'cherry-pick-10fa5701' into 'gtk-4-16'
Merge branch 'wip/otte/for-main' into 'main'

See merge request GNOME/gtk!7891
2024-11-01 19:50:37 +00:00
Benjamin Otte 9b23c9b1a4 Merge branch 'wip/otte/for-main' into 'main'
gpu: Consider scissor when intersecting with recangle

Closes #7044

See merge request GNOME/gtk!7762

(cherry picked from commit 10fa570195)

e18c5534 gpu: Consider scissor when intersecting with recangle
2024-11-01 18:49:21 +00:00
Matthias Clasen 7fe16a27a0 Post-release version bump 2024-11-01 14:28:43 -04:00
Matthias Clasen 08238a39a2 4.16.5 2024-11-01 13:50:49 -04:00
Matthias Clasen 4b633cae85 Fix a compiler warning 2024-11-01 13:50:44 -04:00
Matthias Clasen a12a68bfd6 Drop accidentally cherry-picked debug spew 2024-11-01 13:42:43 -04:00
Matthias Clasen 88d223d39e Post-release version bump 2024-11-01 08:35:27 -04:00
Matthias Clasen 047f2e5acf 4.16.4 2024-11-01 08:11:48 -04:00
Aurimas Černius d09597af8c Update Lithuanian translation 2024-10-30 20:22:10 +00:00
Matthias Clasen 0ec3db415a docs: Fix a few copy-paste errors 2024-10-30 09:17:38 -04:00
Matthias Clasen 62a8f87ccc NEWS: Updates 2024-10-29 23:01:38 -04:00
Matthias Clasen a908dff62e Merge branch 'backports-for-4-16' into 'gtk-4-16'
wayland: Use the same default cursor size as gsettings schema

See merge request GNOME/gtk!7882
2024-10-30 02:21:39 +00:00
Corey Berla db3807ca1f printunixdialog: Set selection after list view item created
Commit b807b84e16 ("print dialog: Fix initial selection") made a
change where we connect to items-changed before the list item manager.
That leads to us attempting to set a selection for a tile that does
not yet exist.

Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/7109
2024-10-29 18:58:11 -04:00
Matthias Clasen 1cfef15317 textbuffer: Handle charsets in serialization
Offer and accept text/plain and other charset variations.

Fixes: #7123
2024-10-29 18:57:55 -04:00
Matthias Clasen 2e3fe41ca4 css: Avoid redundant change notification
When adding or removing css class doesn't change anything, we
should not notify the css-classes property. This is more efficient
and avoids some suboptimal behavior in the inspector.

Fixes: #7111
2024-10-29 18:57:16 -04:00
Emmanuele Bassi e0b547b467 docs: Add some markup
Use <kbd> for keys, to improve the consistency of our docs.
2024-10-29 18:57:00 -04:00
Matthias Clasen d26c0f6022 docs: Drop mention of X from general docs
Our docs should not allude to specifics of X11, unless they are
about the X11 backend.
2024-10-29 18:56:53 -04:00
Matthias Clasen 5797ecb1f7 application: Respect GDK_DEBUG=no-portals
If that debug flag is set, don't activate portals by talking to
the Inhibit portal.

Fixes: #7116
2024-10-29 18:56:43 -04:00
Benjamin Otte 49668a3154 wayland: Split event source into two
We need to guarantee that we call wayland_display_read_events() after a
poll() and before any other source runs, including any source with
higher priority.

As GSourceFuncs doesn't have a after_poll() vfunc and check() is not
guaranteed to be called for anything but the highest priority, we only
have once chance:
Run with the highest priority

But because we don't want event delivery with ultrahigh priority, we
split the source into two:
 * a poll source that polls while blocking wayland reading and
   then immediately calls read_events() with priority G_MININT
 * our old trusty event source with PRIORITY_EVENTS that dispatches
   events

Fixes !7859
Fixes #7091
2024-10-29 18:56:15 -04:00
Benjamin Otte ea1ca0ed5b wayland: Move all GSource handling into gdkeventsource.c 2024-10-29 18:55:24 -04:00
Benjamin Otte be4ccdf1e5 wayland: Remove unused variable 2024-10-29 18:55:18 -04:00
Benjamin Otte 3dd026935d wayland: Rename source functions
It's a GdkWaylandEventSource, name the function accordingly.
2024-10-29 18:55:13 -04:00
Benjamin Otte 2b642e289e Revert "wayland: Don't block the event queue"
This reverts commit a9723fc96b.

This approach was wrong as it can lead to deadlocks when multiple
threads call poll() at almost the same time and the slower thread only
starts poll()ing when the faster thread has already read the fd.

See further comments for a (hopefully) correct fix.

Reverts !7859
2024-10-29 18:55:05 -04:00
Benjamin Otte 291c7aa373 gdk: Remove unused display vfunc
But it's nice that everyone still implements it.
2024-10-29 18:54:51 -04:00
Thomas Devoogdt ac2e3a17ce gdk/loaders/gdkjpeg.c: fix compilation on 32-bit systems
../gdk/loaders/gdkjpeg.c: In function ‘gdk_save_jpeg’:
../gdk/loaders/gdkjpeg.c:291:32: error: passing argument 3 of ‘jpeg_mem_dest’ from incompatible pointer type [-Wincompatible-pointer-types]
  291 |   jpeg_mem_dest (&info, &data, &size);
      |                                ^~~~~
      |                                |
      |                                gulong * {aka long unsigned int *}
In file included from ../gdk/loaders/gdkjpeg.c:30:
/home/thomas/br-test-pkg/bootlin-armv7-glibc/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/jpeglib.h:979:28: note: expected ‘size_t *’ {aka ‘unsigned int *’} but argument is of type ‘gulong *’ {aka ‘long unsigned int *’}

See multiple versions:

https://www.ijg.org/files/jpegsrc.v9c.tar.gz
- #define JPEG_LIB_VERSION        90	/* Compatibility version 9.0 */
- #define JPEG_LIB_VERSION_MAJOR  9
- #define JPEG_LIB_VERSION_MINOR  3
- EXTERN(void) jpeg_mem_dest JPP((j_compress_ptr cinfo,
			       unsigned char ** outbuffer,
			       unsigned long * outsize));

https://www.ijg.org/files/jpegsrc.v9d.tar.gz
- #define JPEG_LIB_VERSION        90	/* Compatibility version 9.0 */
- #define JPEG_LIB_VERSION_MAJOR  9
- #define JPEG_LIB_VERSION_MINOR  4
- EXTERN(void) jpeg_mem_dest JPP((j_compress_ptr cinfo,
			       unsigned char ** outbuffer,
			       size_t * outsize));

https://github.com/libjpeg-turbo/libjpeg-turbo/blob/3.0.4/jpeglib.h
https://github.com/libjpeg-turbo/libjpeg-turbo/blob/3.0.4/jconfig.h.in
- #define LIBJPEG_TURBO_VERSION  @VERSION@
- EXTERN(void) jpeg_mem_dest(j_compress_ptr cinfo, unsigned char **outbuffer,
                           unsigned long *outsize);

The jpegsrc changed the method signature with the v9d release,
libjpeg-turbo did not changed it's signature (yet).

Signed-off-by: Thomas Devoogdt <thomas@devoogdt.com>
2024-10-29 18:54:41 -04:00
Віктар Гаўрылавец cc92230f56 Update Belarusian translation 2024-10-24 16:41:22 +00:00
Matthias Clasen aa9e012078 Merge branch 'backports-for-4-16' into 'gtk-4-16'
Various backports

See merge request GNOME/gtk!7861
2024-10-23 13:58:14 +00:00
Christian Hergert 3bd4eef726 gtk/textlayout: remove one_style_cache
When porting textlayout to GTK 4 a line display cache was introduced. That
cache creates a situation where you may not create GtkTextLineDisplay in
order from GtkTextLineSegment.

Because of that, we must start the creation of each line display from
fresh line state or we could re-apply the GtkTextAppearance of another
row. However, once you do that, one_style_cache will never have a match
and therefore is pure overhead.

This removes one_style_cache altogether.

Fixes: #7108
2024-10-23 08:19:52 -04:00
Benjamin Otte f6faff1b13 wayland: Don't block the event queue
The Wayland source was blocking the Wayland display queue between its
check() and prepare() callbacks.

This is a rare event to cause problems because it requires
1. Another source with
2. a higher priority that
3. triggers at the same time as the Wayland source and
4. triggers a roundtrip or other operation that requires reading events
   from the display.

Introduced in commit 2893526a48 during GTK 3.21, so this should
probably be fixed in GTK3, too.

Fixes #7091
2024-10-23 08:19:44 -04:00
Emmanuele Bassi 0458e74fc6 docs: Fix typo in Gdk.ContentProvider.new_union
It's GDK_TYPE_TEXTURE, not G_TYPE_TEXTURE.

Fixes: #7106
2024-10-23 08:19:30 -04:00
Matthias Clasen d56d1ca4f3 gdk: Bling up debug spew slightly
We use ✓ and ✗ in some other places already, be consistent.
2024-10-23 08:18:45 -04:00
Matthias Clasen 5ff52f78b7 vulkan: Cosmetics
Rename gsk_vulkan_feature_keys to gdk_vulkan_feature_keys, since
these keys live in gdk.
2024-10-23 08:18:38 -04:00
Arjan Molenaar 4ed39c5c78 macos: Add dummy pasteboard item if no mimetypes have been translated
Not all mime types will be translated to pasteboard types, hence we
need to check if any are translated. If not add an internal type.
2024-10-23 08:18:15 -04:00
Arjan Molenaar e614b1af42 macos: Fix double emission of mouse release event
The event is propagated anyway.

Fixes #7021.
2024-10-23 08:11:37 -04:00
Bruce Cowan 83e182e820 gdk: Remove a couple of stray semicolons 2024-10-23 08:10:59 -04:00
Simon McVittie b446a37e28 printing: Treat any G_DBUS_ERROR contacting Avahi as non-problematic
If we get an error from the message bus (dbus-daemon or dbus-broker),
for example ServiceUnknown if Avahi is not installed or perhaps
SpawnFailed if the service is disabled, it is mapped to a GLib GError.
The errors typically emitted by the message bus belong to the GDBusError
domain, but if nobody has registered the G_DBUS_ERROR domain yet,
then they might be mapped to G_IO_ERROR_DBUS_ERROR instead.

Previously, this code ignored G_IO_ERROR_DBUS_ERROR, but emitted a
warning if the error happens to have been mapped to G_DBUS_ERROR.
This resulted in action-at-a-distance: an unrelated component
triggering registration of the G_DBUS_ERROR domain would make printing
dialogs log the warning. This seems undesirable, and in particular it
can cause test failures, because GLib's test framework makes warnings
fatal by default.

Signed-off-by: Simon McVittie <smcv@debian.org>
2024-10-23 08:10:46 -04:00
Simon McVittie 4a3f4d2769 printing: If we cannot contact Avahi, debug-log the error message
If we get a G_IO_ERROR_DBUS_ERROR here, we shouldn't make too much noise
about it by default, but it's still a useful data point for debugging
and diagnosis.

Signed-off-by: Simon McVittie <smcv@debian.org>
2024-10-23 08:10:38 -04:00
Lukáš Tyrychtr d6ddcb5b93 a11y: Fix GtkListview's selection interface implementation
When determining the number of selected children, we were properly
counting only items, but in the rest, we were confused by row headers.
Because the GtkListItemBase methods did not throw a warning on inappropriate
pointer type passed, we happily passed the row headers, got some private
data object as the wrong type, and then returned nonsense, for example, 2
for gtk_list_item_base_get_selected.
2024-10-23 08:10:22 -04:00
Matthias Clasen 13cf7c2256 vulkan: Release swapchain images
With the swapchain maintenance extension, we have a way to release
the acquired swapchain image before recreating the swapchain, in
the VK_SUBOPTIMAL_KHR case. Use it.

Tested by toggling fullscreen in the bloatpad example, which causes
mesa to return VK_SUBOPTIMAL_KHR (since dmabuf modifiers change).
2024-10-23 08:09:45 -04:00
Matthias Clasen bef516bf5a vulkan: Avoid a validation error
If vkAcquireNextImageKHR returns VK_SUBOPTIMAL_KHR, the semaphore
is in use, but vkDeviceWaitIdle will not wait for it, since it is
not associated with a queue. Make sure that is the case, so we don't
run into a validation error when we try vkAcquireNextImageKHR with
the same semaphore, after recreating the swap chain.

See https://github.com/KhronosGroup/Vulkan-Docs/issues/1059 for
some related discussion.

Fixes: #7079
2024-10-23 08:09:35 -04:00
Matthias Clasen 4112535b44 vulkan: Add some more debug
Move the "Recreating the swapchain" message to where we do so, and
add some more debug logging there.
2024-10-23 08:09:29 -04:00
Barnabás Pőcze 3131e352da gsk: gsk_border_node_new(): Fix dead cleanup code
The `gdk_color_finish()` calls are currently after the `return`,
so they are never executed. Move the `return` below the cleanup
code to avoid that.

Fixes: bd3d1f7715 ("gsk: Add private border node api")
2024-10-23 08:07:03 -04:00
Juan Pablo Ugarte c5a2cbcc70 gtk/gtkaccessiblevalue.c: Fix GTK_ACCESSIBLE_RELATION_SET_SIZE collect_rels value 2024-10-23 08:06:27 -04:00
Jordan Petridis 821e8289d4 gtkcssprovider: Use g_file_peek_path to get the uri for the sysprof marker
This avoids an extra allocation.

Additionally avoid calling it if file is already null.
2024-10-23 08:06:02 -04:00
Daniel Șerbănescu b0b1d7a928 Update Romanian translation 2024-10-21 16:55:51 +00:00
Віктар Гаўрылавец 3a1cf43028 Update Belarusian translation 2024-10-18 09:16:52 +00:00
Andi Chandler fa2f49ee7c Update British English translation 2024-10-17 13:07:39 +00:00
Rūdolfs Mazurs 5cefdf58a1 Update Latvian translation 2024-10-13 13:53:13 +00:00
Matthias Clasen 68eb82a028 Merge branch 'ebassi/issue-7069-backport' into 'gtk-4-16'
gtk/accessibletext: handle NULL default values

See merge request GNOME/gtk!7815
2024-10-09 10:39:20 +00:00
Christian Hergert 65eee73e82 gtk/accessibletext: handle NULL default values
The default implementation for get_default_attributes() returns NULL for
both names and values yet the code which iterates them is assuming they
will never be NULL.

Since the interface implies that if the values are set, they will return
valid strings, make the default implementation do that.

Fixes: #7069
(cherry picked from commit ab1c85830c)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
2024-10-08 19:13:27 +01:00
Luca Bacci 861f9875ac Merge branch 'backport-mr-7776' into 'gtk-4-16'
WGL: Avoid using swap exchange on NVidia drivers [gtk-4-16]

See merge request GNOME/gtk!7811
2024-10-08 15:23:56 +00:00
Luca Bacci 03fa775407 WGL: Avoid using swap method exchange on NVidia drivers
It seems that NVidia sets PFD_SWAP_EXCHANGE / WGL_SWAP_EXCHANGE_ARB
on pixel formats but doesn't guarantee that the backbuffer age is
constantly 2. My guess is that they use swap exchange only to signal
usage of a flip present method.

Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/7019
2024-10-08 12:41:10 +02:00
Matthias Clasen 15358d0d5e Merge branch 'backports-for-4-16' into 'gtk-4-16'
gpu: Remove warning

See merge request GNOME/gtk!7808
2024-10-07 18:28:39 +00:00
Benjamin Otte d1725291a1 picture: Queue a redraw when not resizing
When changing the code to do the resize only when the size changed, I
forgot to queue a draw when the size did not change.

Fixes: 5031f30f28
Related: !7786
2024-10-07 11:48:02 -04:00
Benjamin Otte b277d9a555 gpu: Remove warning
The warning gets triggered by rounding errors.

In particular when using fractional scales, the final tile may end up
not accurately matching the computed final value (in the example I was
debugging it was computing 1 vs 1.00000036 for the final tile index,
but that result computed a 0px wide tile size.
And for that tile size we hit that exit condition.
2024-10-07 11:47:55 -04:00
Matthias Clasen 96fbaa07e8 Post-release version bump 2024-10-04 12:52:13 -04:00
Matthias Clasen 65ba22f8ae 4.16.3 2024-10-04 11:31:45 -04:00
Matthias Clasen 7d5157e99b gstreamer: Fix gl context creation
We may not have a surface (since realizing media streams is optional),
so use the display when creating a gl context.
2024-10-04 11:30:19 -04:00
Matthias Clasen 4f0ac05b16 Merge branch 'gstreamer-no-gl-4-16' into 'gtk-4-16'
Fix testsuite setup

See merge request GNOME/gtk!7794
2024-10-04 15:14:11 +00:00
Matthias Clasen 6ad0cc7399 Merge branch 'backports-for-4-16' into 'gtk-4-16'
Fix testsuite setup

See merge request GNOME/gtk!7792
2024-10-04 14:40:37 +00:00
Matthias Clasen 503534df00 Merge branch 'cherry-pick-06f08ea8' into 'gtk-4-16'
[gtk-4-16] atcontext: Only recurse parents for non-widget accessibles

See merge request GNOME/gtk!7795
2024-10-04 14:26:00 +00:00
Matthias Clasen a7f342d202 gstreamer: Tweak gl context handling
Just create the context when it is needed.
2024-10-04 09:56:44 -04:00
Matthias Clasen ac9bf2f773 gstreamer: Simplify
Add a uses-gl property to our sink implementation, and use
it in the paintable code. This avoids juggling a second gl
context, with the risk of leaking it.
2024-10-04 09:56:44 -04:00
Matthias Clasen 3367a6209b gstreamer: Improve caps handling
Separate out the caps for dmabuf, gl and memory and add them
when appropriate.
2024-10-04 09:56:44 -04:00
Matthias Clasen 3cbb4aeb19 Restructure gtk_gst_paintable_video_renderer_create_video_sink
This code had too many early exits and was leaking GL contexts
and Gstreamer elements. Simplify.
2024-10-04 09:56:44 -04:00
Matthias Clasen 0128aa9ead gstreamer: Use the default display if needed
Calling gtk_media_stream_realize is not mandatory, but we can
still try to make dmabufs happen. Tested by removing the realize
call from GtkVideo and using GDK_DISABLE=gl.
2024-10-04 09:56:44 -04:00
Matthias Clasen 24f2540ba5 gstreamer: Restructure gtk_gst_sink_propose_allocation
Split this clearly into two cases: dmabuf or gl memory.
2024-10-04 09:56:44 -04:00
Matthias Clasen d13303496f gstreamer: Make dmabufs work without GL
We only need a display to negotiate dmabuf formats. Pass that
directly, instead of getting the display of the GL context as
we did so far.

With this,

GSK_RENDERER=vulkan GL_DISABLE=gl gtk4-demo --run video_player

still uses dmabufs.

Related: #7048
2024-10-04 09:56:44 -04:00
Georges Basile Stavracas Neto 2847fdd36f atcontext: Only recurse parents for non-widget accessibles
The original intent was to only realize parents recursively for
non-widget accessible objects. The implementation, however, always
try to realize parents. In the case of GtkStackPage, which is a
non-widget accessible with a widget accessible child, this breaks.

Only realize non-widget accessible parents recursively if the
current accessible is not a widget as well.

Closes https://gitlab.gnome.org/GNOME/gtk/-/issues/7058
Fixes 6074a18e3e


(cherry picked from commit 06f08ea804)
2024-10-04 13:22:19 +00:00
Matthias Clasen c042b3bf83 ci: Stop using catch
It is useful to track down mysterious crashes in ci, but it causes
sporadic test failures, so disable it for now, until we have another
mysterious crash.
2024-10-03 21:35:26 -04:00
Benjamin Otte 289aa4553f picture: Only queue_resize() if necessary
When setting a new paintable, we don't need to queue_resize() when it's
the same size as the old paintable.

This is especially useful when pictures are used in a listview or
gridview and different rows display images of the same size.
2024-10-03 21:35:26 -04:00
Sergey Bugaev c785deacd2 window: Fix crash when unexporting unrealized window
It is possible that the window gets unrealized while a handle to its
surface is exported. This, naturally, invalidates the handle, so there
is nothing left to unexport. We should just note that and do nothing,
rather than crashing.

Fixes a crash when a portal-backed file dialog parented to a window is
closed after the window it was parented to.

Reported-by: Ivan Molodetskikh <yalterz@gmail.com>
Signed-off-by: Sergey Bugaev <bugaevc@gmail.com>
2024-10-03 21:35:26 -04:00
Sergey Bugaev 78ffc7cefb window: Fix a typo
Fortunately, it didn't impact string length.

Signed-off-by: Sergey Bugaev <bugaevc@gmail.com>
2024-10-03 21:35:26 -04:00
Sergey Bugaev 6f44be847f scrolledwindow: Fix measuring non-overlay, always visible scrollbars
The last part of logic in gtk_scrolled_window_measure () that accounted
for scrollbars was handling the hscrollbar first, and vscrollbar second.
For each of them, it looked at the orientation we're being measured in,
and either added or MAX'ed scrollbar's size request into ours (or not,
depending on scrollbar policy and whether overlay scrolling is used).

In case of GTK_ORIENTATION_HORIZONTAL, this resulted in

    // MAX in hscrollbar width.
    minimum_req = MAX (minimum_req, min_scrollbar_width + sborder.left + sborder.right);
    // Add in vscrollbar width.
    minimum_req += min_scrollbar_width;

whereas for GTK_ORIENTATION_VERTICAL, it was

    // Add in hscrollbar height.
    minimum_req += min_scrollbar_height;
    // MAX in vscrollbar height.
    minimum_req = MAX (minimum_req, min_scrollbar_height + sborder.top + sborder.bottom);

The former is correct and the latter is wrong: we should be adding the
size requests of the scrollbars together, and MAX'ing them with the
content size request.

Fix this by refactoring the logic to first handle the MAX'ing, and then
the addition.

This fixes the following criticals:

Gtk-CRITICAL **: 17:26:51.406: Allocation height too small. Tried to allocate 15x31, but GtkScrollbar 0x2a00fac0 needs at least 15x46.

that were happening when all of:
- scrollbar policy was set to ALWAYS,
- overlay scrolling was disabled,
- the scrollable child was really small.

Signed-off-by: Sergey Bugaev <bugaevc@gmail.com>
2024-10-03 21:35:26 -04:00
Matthias Clasen 3424b80ef1 Fix testsuite setup
We no longer say GDK_DEBUG=gl-prefer-gl, we say GDK_DISABLE=gles-api.
2024-10-03 21:35:26 -04:00
Matthias Clasen 5cf0d4f7fd Merge branch 'gbsneto/backport-a11y' into 'gtk-4-16'
[gtk-4-16] atcontext: Always realize non-widget accessibles

See merge request GNOME/gtk!7789
2024-10-04 01:27:20 +00:00
Georges Basile Stavracas Neto f916d82280 atcontext: Always realize non-widget accessibles
Upon joining the a11y tree. And do so recursively, as long as the parent
is also not a widget.

As for the explanation, please grab a mug of your favorite drink. It's
a little complicated.

GTK realizes AT contexts in 3 situations:

 1. When it's a toplevel, it's realized unconditionally
 2. When the widget is focused
 3. When the accessible is appended to a realized parent

Most importantly, GTK lazily realizes accessibles, and does not realize
child accessibles recursively.

Clearly, conditions 1 and 2 only ever happen for GtkWidgets, which are
accessible objects themselves. These two conditions will handle the vast
majority of cases of apps and platform libraries.

However, there are non-widget accessibles out there. GTK itself offers a
non-widget accessible implementation - GtkAtspiSocket - which is used by
WebKitGTK.

Now, let's look at WebKitGTK use case. It'll demonstrate the problem
nicely.

WebKitGTK creates the GtkAtspiSocket object *after* loading most of the
page. At this point, there are 2 possibilities:

 1. The web view widget is focused. In this case, the AT context of the
    web view is realized, and GTK will realize the GtkAtspiSocket when
    it is added to the a11y tree (condition 3 above).

 2. The web view widget is *not* focused. At some point the user focuses
    the web view, and GTK will realize the AT context of the web view.
    But remember, GTK does not realize child accessibles! That means
    GtkAtspiSocket won't be realized.

This example demonstrates a general problem with non-widget accessibles:
non-widget accessibles cannot trigger conditions 1 and 2, so they're
never realized. The only way they're realized in if they happen to be
added to an already realized accessible (condition 3).

To fix that, the following is proposed: always realize non-widget
accessibles, and also of their non-widget accessible parents. This is
not ideal, of course, as it might generate some D-Bus chattery, but GTK
does not have enough information to realize these objects at more
appropriate times.
2024-10-03 08:44:37 -03:00
Georges Basile Stavracas Neto 7d0cb2f006 atcontext: Factor out some code
Move the code that realizes an AT context if the parent is realized,
into to a separate function. This will make the next patch easier to
read.

No functional changes.
2024-10-03 08:44:37 -03:00
Matthias Clasen c2417dc107 Merge branch 'default-cursor-xdg-gtk-4-16' into 'gtk-4-16'
wayland: Look for default cursor theme in XDG directories

See merge request GNOME/gtk!7767
2024-09-30 14:51:18 +00:00
Ilya Fedin d4202b836a wayland: Look for default cursor theme in XDG directories
Currently it's looked up only in /usr/share what is a problem for non-FHS distros like NixOS
2024-09-30 15:50:29 +04:00
Anders Jonsson 82f08089f1 Update Swedish translation 2024-09-29 22:16:03 +00:00
Juliano de Souza Camargo 1610ecbbac Update Brazilian Portuguese translation 2024-09-29 16:29:55 +00:00
Matthias Clasen b0048df3c6 Merge branch 'clear-settings-portal-gtk-4-16' into 'gtk-4-16'
wayland: Clear settings_portal when going to fallback with no portal settings

See merge request GNOME/gtk!7759
2024-09-29 13:25:02 +00:00
Matthias Clasen b6370e1b0c Merge branch 'default-cursor-size-gtk-4-16' into 'gtk-4-16'
wayland: Use the same default cursor size as gsettings schema

See merge request GNOME/gtk!7758
2024-09-29 01:13:00 +00:00
Fran Dieguez 8360bfc772 Update Galician translation 2024-09-28 21:50:17 +00:00
Ilya Fedin 5670fea30d wayland: Clear settings_portal when going to fallback with no portal settings
All other code paths with goto fallback clear it, this makes the behavior consistent with them
2024-09-28 16:58:17 +04:00
Ilya Fedin fabe179dab wayland: Use the same default cursor size as gsettings schema
Fixes: #7043
2024-09-28 16:57:40 +04:00
91 changed files with 14069 additions and 8274 deletions
+3 -2
View File
@@ -119,8 +119,9 @@ release-build:
script:
- .gitlab-ci/show-info-linux.sh
- mkdir _install
- export PATH="$HOME/.local/bin:${CI_PROJECT_DIR}/_install/bin:$PATH"
- .gitlab-ci/install-meson-project.sh --prefix ${CI_PROJECT_DIR}/_install https://gitlab.gnome.org/jadahl/catch.git main
# don't use catch by default, since it causes sporadic test failures
# - export PATH="$HOME/.local/bin:${CI_PROJECT_DIR}/_install/bin:$PATH"
# - .gitlab-ci/install-meson-project.sh --prefix ${CI_PROJECT_DIR}/_install https://gitlab.gnome.org/jadahl/catch.git main
- meson subprojects download
- meson subprojects update --reset
- meson setup
+1 -1
View File
@@ -5,7 +5,7 @@ call "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliar
@echo on
:: FIXME: make warnings fatal
pip3 install --upgrade --user meson~=0.64 || goto :error
pip3 install --upgrade --user meson~=1.3.0 || goto :error
meson setup -Dbackend_max_links=1 -Ddebug=false -Dmedia-gstreamer=disabled -Dvulkan=disabled _build || goto :error
ninja -C _build || goto :error
+90 -5
View File
@@ -1,8 +1,93 @@
Overview of Changes in 4.16.3, xx-xx-xxxx
Overview of Changes in 4.16.6, xx-xx-xxxx
=========================================
To prevent issues when using GTK under kwin, this release
makes Wayland color management opt-in. To experiment with
it, set GDK_DEBUG=color-mgmt.
Overview of Changes in 4.16.2, 09-25-2024
* GtkText:
- Don't select inserted Emoji
* GtkApplication:
- Set the default window icon from the app ID
* GtkFontChooser:
- Make the dialog more shrinkable
* Translation updates
Icelandic
Serbian
Serbian (Latin)
Overview of Changes in 4.16.5, 01-11-2024
=========================================
* Clean up debug spew
Overview of Changes in 4.16.4, 01-11-2024
=========================================
* GtkTextView:
- Fix some missing CSS invalidation
- Handle charsets in clipboard datatypes
* GtkApplication:
- Respect GDK_DEBUG=no-portals
* Printing:
- Avoid warnings for avahi errors
- Fix a segfault in the print dialog setup code
* Accessibility:
- Handle NULL values in more places
* Gdk:
- vulkan: Fix validation errors
- Fix 32bit build for the jpeg loader
* Wayland:
- Fix a possible deadlock with high-priority sources
triggering Wayland roundtrips
* Translation updates
Belarusian
British English
Latvian
Romanian
Overview of Changes in 4.16.3, 04-10-2024
=========================================
* GtkScrolledWindow
- Fix criticals in size allocation code
* GtkFileChooser
- Fix a crash in the portal code
* GtkPicture
- Avoid unnecessary resizes
* GtkVideo
- Make dmabufs work without GL
* Accessibility:
- Always realized non-widget accessibles
* Wayland:
- Improve settings portal handling
- Improve fallback for cursor themes
- Sync default values for settings with schema defaults
* Translation updates:
Brazilian Portuguese
Galician
Swedish
Overview of Changes in 4.16.2, 25-09-2024
=========================================
* GtkLabel:
@@ -43,7 +128,7 @@ Overview of Changes in 4.16.2, 09-25-2024
Ukrainian
Overview of Changes in 4.16.1, 09-16-2024
Overview of Changes in 4.16.1, 16-09-2024
=========================================
* GtkFileChooser:
@@ -84,7 +169,7 @@ Overview of Changes in 4.16.1, 09-16-2024
Swedish
Overview of Changes in 4.16.0, 09-06-2024
Overview of Changes in 4.16.0, 06-09-2024
=========================================
Note: This release changes the default GSK renderer to be Vulkan,
@@ -182,7 +267,7 @@ with the new renderers.
Ukrainian
Overview of Changes in 4.15.6, 08-26-2024
Overview of Changes in 4.15.6, 26-08-2024
=========================================
* GtkCheckButton:
+2
View File
@@ -579,6 +579,8 @@ released_cb (GtkGesture *gesture,
widget = gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (gesture));
child = gtk_widget_pick (widget, x, y, 0);
if (!child)
return;
item = (CanvasItem *)gtk_widget_get_ancestor (child, canvas_item_get_type ());
if (!item)
return;
+6 -4
View File
@@ -12,11 +12,13 @@
static GtkWidget *window = NULL;
static void
response_cb (GtkDialog *dialog, int response_id)
static gboolean
close_request_cb (GtkWidget *win, gpointer user_data)
{
gtk_window_destroy (GTK_WINDOW (window));
g_assert (window == win);
gtk_window_destroy ((GtkWindow *)window);
window = NULL;
return TRUE;
}
static void
@@ -117,7 +119,7 @@ do_expander (GtkWidget *do_widget)
g_signal_connect (expander, "notify::expanded",
G_CALLBACK (expander_cb), window);
g_signal_connect (window, "response", G_CALLBACK (response_cb), NULL);
g_signal_connect (window, "close-request", G_CALLBACK (close_request_cb), NULL);
}
if (!gtk_widget_get_visible (window))
-2
View File
@@ -1068,8 +1068,6 @@ command_line (GApplication *app,
window = gtk_application_get_windows (GTK_APPLICATION (app))->data;
gtk_window_set_icon_name (GTK_WINDOW (window), "org.gtk.Demo4");
if (name == NULL)
goto out;
+1 -1
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<component xmlns="https://specifications.freedesktop.org/metainfo/1.0" type="desktop">
<id>org.gtk.Demo4</id>
<launchable type="desktop-id">org.gtk.Demo4.desktop</launchable>
<metadata_license>CC0-1.0</metadata_license>
@@ -219,8 +219,6 @@ node_editor_application_activate (GApplication *app)
if (g_strcmp0 (PROFILE, "devel") == 0)
gtk_widget_add_css_class (GTK_WIDGET (win), "devel");
gtk_window_set_icon_name (GTK_WINDOW (win), "org.gtk.gtk4.NodeEditor");
gtk_window_present (GTK_WINDOW (win));
}
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<component xmlns="https://specifications.freedesktop.org/metainfo/1.0" type="desktop">
<id>org.gtk.gtk4.NodeEditor</id>
<launchable type="desktop-id">org.gtk.gtk4.NodeEditor.desktop</launchable>
<metadata_license>CC0-1.0</metadata_license>
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<component xmlns="https://specifications.freedesktop.org/metainfo/1.0" type="desktop">
<id>org.gtk.PrintEditor4</id>
<launchable type="desktop-id">org.gtk.PrintEditor4.desktop</launchable>
<metadata_license>CC0-1.0</metadata_license>
-1
View File
@@ -798,7 +798,6 @@ activate (GApplication *app)
if (g_strcmp0 (PROFILE, "devel") == 0)
gtk_widget_add_css_class (GTK_WIDGET (main_window), "devel");
gtk_window_set_icon_name (GTK_WINDOW (main_window), "org.gtk.PrintEditor4");
gtk_window_set_default_size (GTK_WINDOW (main_window), 400, 600);
gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (main_window), TRUE);
update_title (GTK_WINDOW (main_window));
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<component xmlns="https://specifications.freedesktop.org/metainfo/1.0" type="desktop">
<id>org.gtk.WidgetFactory4</id>
<launchable type="desktop-id">org.gtk.WidgetFactory4.desktop</launchable>
<metadata_license>CC0-1.0</metadata_license>
-1
View File
@@ -2241,7 +2241,6 @@ activate (GApplication *app)
if (g_strcmp0 (PROFILE, "devel") == 0)
gtk_widget_add_css_class (GTK_WIDGET (window), "devel");
gtk_window_set_icon_name (window, "org.gtk.WidgetFactory4");
gtk_application_add_window (GTK_APPLICATION (app), window);
g_action_map_add_action_entries (G_ACTION_MAP (window),
win_entries, G_N_ELEMENTS (win_entries),
+3 -3
View File
@@ -248,6 +248,9 @@ A number of options affect behavior instead of logging:
`no-vsync`
: Repaint instantly (uses 100% CPU with animations)
`color-mgmt`
: Enable color management
The special value `all` can be used to turn on all debug options. The special
value `help` can be used to obtain a list of all supported debug options.
@@ -355,9 +358,6 @@ disable certain features.
`offload`
: Disable graphics offload to subsurfaces
`color-mgmt`
: Disable color management
### `GDK_GL_DISABLE`
This variable can be set to a list of values, which cause GDK to
-7
View File
@@ -257,12 +257,6 @@ gdk_broadway_display_flush (GdkDisplay *display)
_gdk_broadway_server_flush (broadway_display->server);
}
static gboolean
gdk_broadway_display_has_pending (GdkDisplay *display)
{
return FALSE;
}
static void
gdk_broadway_display_dispose (GObject *object)
{
@@ -485,7 +479,6 @@ gdk_broadway_display_class_init (GdkBroadwayDisplayClass * class)
display_class->beep = gdk_broadway_display_beep;
display_class->sync = gdk_broadway_display_sync;
display_class->flush = gdk_broadway_display_flush;
display_class->has_pending = gdk_broadway_display_has_pending;
display_class->queue_events = _gdk_broadway_display_queue_events;
display_class->get_next_serial = gdk_broadway_display_get_next_serial;
+1 -1
View File
@@ -139,6 +139,7 @@ static const GdkDebugKey gdk_debug_keys[] = {
{ "default-settings",GDK_DEBUG_DEFAULT_SETTINGS, "Force default values for xsettings" },
{ "high-depth", GDK_DEBUG_HIGH_DEPTH, "Use high bit depth rendering if possible" },
{ "no-vsync", GDK_DEBUG_NO_VSYNC, "Repaint instantly (uses 100% CPU with animations)" },
{ "color-mgmt", GDK_DEBUG_COLOR_MANAGEMENT, "Enable color management" },
};
static const GdkDebugKey gdk_feature_keys[] = {
@@ -151,7 +152,6 @@ static const GdkDebugKey gdk_feature_keys[] = {
{ "vulkan", GDK_FEATURE_VULKAN, "Disable Vulkan support" },
{ "dmabuf", GDK_FEATURE_DMABUF, "Disable dmabuf support" },
{ "offload", GDK_FEATURE_OFFLOAD, "Disable graphics offload" },
{ "color-mgmt", GDK_FEATURE_COLOR_MANAGEMENT, "Disable color management" },
};
+4
View File
@@ -2,6 +2,8 @@
#include "gdkcicpparams.h"
G_BEGIN_DECLS
typedef struct _GdkCicp GdkCicp;
struct _GdkCicp
@@ -82,3 +84,5 @@ gdk_cicp_equivalent (const GdkCicp *p1,
const GdkCicp * gdk_cicp_params_get_cicp (GdkCicpParams *params);
GdkCicpParams * gdk_cicp_params_new_for_cicp (const GdkCicp *cicp);
G_END_DECLS
+1 -1
View File
@@ -57,6 +57,6 @@ GDK_AVAILABLE_IN_4_16
GdkCicpParams *gdk_color_state_create_cicp_params (GdkColorState *self);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkColorState, gdk_color_state_unref);
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkColorState, gdk_color_state_unref)
G_END_DECLS
+3 -3
View File
@@ -124,7 +124,7 @@ gdk_content_provider_new_for_value (const GValue *value)
content = g_object_new (GDK_TYPE_CONTENT_PROVIDER_VALUE, NULL);
g_value_init (&content->value, G_VALUE_TYPE (value));
g_value_copy (value, &content->value);
return GDK_CONTENT_PROVIDER (content);
}
@@ -409,7 +409,7 @@ gdk_content_provider_union_init (GdkContentProviderUnion *self)
* ```c
* gdk_content_provider_new_union ((GdkContentProvider *[2]) {
* gdk_content_provider_new_typed (G_TYPE_FILE, file),
* gdk_content_provider_new_typed (G_TYPE_TEXTURE, texture)
* gdk_content_provider_new_typed (GDK_TYPE_TEXTURE, texture)
* }, 2);
* ```
*
@@ -594,7 +594,7 @@ gdk_content_provider_new_for_bytes (const char *mime_type,
content = g_object_new (GDK_TYPE_CONTENT_PROVIDER_BYTES, NULL);
content->mime_type = g_intern_string (mime_type);
content->bytes = g_bytes_ref (bytes);
return GDK_CONTENT_PROVIDER (content);
}
+2 -1
View File
@@ -51,6 +51,7 @@ typedef enum {
GDK_DEBUG_DEFAULT_SETTINGS= 1 << 21,
GDK_DEBUG_HIGH_DEPTH = 1 << 22,
GDK_DEBUG_NO_VSYNC = 1 << 23,
GDK_DEBUG_COLOR_MANAGEMENT= 1 << 24,
} GdkDebugFlags;
typedef enum {
@@ -63,7 +64,6 @@ typedef enum {
GDK_FEATURE_VULKAN = 1 << 6,
GDK_FEATURE_DMABUF = 1 << 7,
GDK_FEATURE_OFFLOAD = 1 << 8,
GDK_FEATURE_COLOR_MANAGEMENT = 1 << 9,
} GdkFeatures;
#define GDK_ALL_FEATURES ((1 << 10) - 1)
@@ -119,3 +119,4 @@ guint gdk_parse_debug_var (const char *variable,
const GdkDebugKey *keys,
guint nkeys);
G_END_DECLS
-1
View File
@@ -154,7 +154,6 @@ struct _GdkDisplayClass
void (*beep) (GdkDisplay *display);
void (*sync) (GdkDisplay *display);
void (*flush) (GdkDisplay *display);
gboolean (*has_pending) (GdkDisplay *display);
void (*queue_events) (GdkDisplay *display);
void (*make_default) (GdkDisplay *display);
+1 -1
View File
@@ -55,6 +55,6 @@ GDK_AVAILABLE_IN_4_14
gboolean gdk_dmabuf_formats_equal (const GdkDmabufFormats *formats1,
const GdkDmabufFormats *formats2);
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GdkDmabufFormats, gdk_dmabuf_formats_unref);
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GdkDmabufFormats, gdk_dmabuf_formats_unref)
G_END_DECLS
+5 -5
View File
@@ -375,7 +375,7 @@ gdk_dmabuf_texture_builder_class_init (GdkDmabufTextureBuilderClass *klass)
/**
* GdkDmabufTextureBuilder:update-region:
*
* The update region for [property@Gdk.GLTextureBuilder:update-texture].
* The update region for [property@Gdk.DmabufTextureBuilder:update-texture].
*
* Since: 4.14
*/
@@ -496,7 +496,7 @@ gdk_dmabuf_texture_builder_get_width (GdkDmabufTextureBuilder *self)
*
* Sets the width of the texture.
*
* The width must be set before calling [method@Gdk.GLTextureBuilder.build].
* The width must be set before calling [method@Gdk.DmabufTextureBuilder.build].
*
* Since: 4.14
*/
@@ -540,7 +540,7 @@ gdk_dmabuf_texture_builder_get_height (GdkDmabufTextureBuilder *self)
*
* Sets the height of the texture.
*
* The height must be set before calling [method@Gdk.GLTextureBuilder.build].
* The height must be set before calling [method@Gdk.DmabufTextureBuilder.build].
*
* Since: 4.14
*/
@@ -588,7 +588,7 @@ gdk_dmabuf_texture_builder_get_fourcc (GdkDmabufTextureBuilder *self)
*
* The format is specified as a fourcc code.
*
* The format must be set before calling [method@Gdk.GLTextureBuilder.build].
* The format must be set before calling [method@Gdk.DmabufTextureBuilder.build].
*
* Since: 4.14
*/
@@ -807,7 +807,7 @@ gdk_dmabuf_texture_builder_get_stride (GdkDmabufTextureBuilder *self,
*
* Sets the stride for a plane.
*
* The stride must be set for all planes before calling [method@Gdk.GLTextureBuilder.build].
* The stride must be set for all planes before calling [method@Gdk.DmabufTextureBuilder.build].
*
* Since: 4.14
*/
+6 -6
View File
@@ -87,12 +87,12 @@ typedef enum
/**
* GdkModifierType:
* @GDK_SHIFT_MASK: the Shift key.
* @GDK_LOCK_MASK: a Lock key (depending on the modifier mapping of the
* X server this may either be CapsLock or ShiftLock).
* @GDK_LOCK_MASK: a Lock key (depending on the Windowing System configuration,
* this may either be <kbd>CapsLock</kbd> or <kbd>ShiftLock</kbd>).
* @GDK_CONTROL_MASK: the Control key.
* @GDK_ALT_MASK: the fourth modifier key (it depends on the modifier
* mapping of the X server which key is interpreted as this modifier, but
* normally it is the Alt key).
* @GDK_ALT_MASK: the fourth modifier key (it depends on the Windowing System
* configuration which key is interpreted as this modifier, but normally it
* is the <kbd>Alt</kbd> key).
* @GDK_BUTTON1_MASK: the first mouse button.
* @GDK_BUTTON2_MASK: the second mouse button.
* @GDK_BUTTON3_MASK: the third mouse button.
@@ -109,7 +109,7 @@ typedef enum
* Apple, CapsLock or ShiftLock.
*
* Note that GDK may add internal values to events which include values outside
* of this enumeration. Your code should preserve and ignore them. You can use
* of this enumeration. Your code should preserve and ignore them. You can use
* %GDK_MODIFIER_MASK to remove all private values.
*/
typedef enum
+6 -10
View File
@@ -385,8 +385,6 @@ gdk_gl_context_create_egl_context (GdkGLContext *context,
if (ctx == EGL_NO_CONTEXT)
return 0;
GDK_DISPLAY_DEBUG (display, OPENGL, "Created EGL context[%p]", ctx);
priv->egl_context = ctx;
gdk_gl_context_set_version (context, &supported_versions[j]);
gdk_gl_context_set_is_legacy (context, legacy);
@@ -1795,22 +1793,20 @@ gdk_gl_context_check_extensions (GdkGLContext *context)
{
int i, max_texture_size;
glGetIntegerv (GL_MAX_TEXTURE_SIZE, &max_texture_size);
gdk_debug_message ("%s version: %d.%d (%s)\n"
"* GLSL version: %s\n"
"* Max texture size: %d\n",
gdk_debug_message ("%s version: %d.%d (%s)",
gdk_gl_context_get_use_es (context) ? "OpenGL ES" : "OpenGL",
gdk_gl_version_get_major (&priv->gl_version), gdk_gl_version_get_minor (&priv->gl_version),
priv->is_legacy ? "legacy" : "core",
glGetString (GL_SHADING_LANGUAGE_VERSION),
max_texture_size);
priv->is_legacy ? "legacy" : "core");
gdk_debug_message ("GLSL version: %s", glGetString (GL_SHADING_LANGUAGE_VERSION));
gdk_debug_message ("Max texture size: %d", max_texture_size);
gdk_debug_message ("Enabled features (use GDK_GL_DISABLE env var to disable):");
for (i = 0; i < G_N_ELEMENTS (gdk_gl_feature_keys); i++)
{
gdk_debug_message (" %s: %s",
gdk_gl_feature_keys[i].key,
(priv->features & gdk_gl_feature_keys[i].value) ? "YES" :
(priv->features & gdk_gl_feature_keys[i].value) ? "" :
((disabled_features & gdk_gl_feature_keys[i].value) ? "disabled via env var" :
(((supported_features & gdk_gl_feature_keys[i].value) == 0) ? "not supported" :
(((supported_features & gdk_gl_feature_keys[i].value) == 0) ? "" :
"Hum, what? This should not happen.")));
}
}
+51 -9
View File
@@ -35,7 +35,7 @@
#include <math.h>
#ifdef GDK_RENDERING_VULKAN
static const GdkDebugKey gsk_vulkan_feature_keys[] = {
static const GdkDebugKey gdk_vulkan_feature_keys[] = {
{ "dmabuf", GDK_VULKAN_FEATURE_DMABUF, "Never import Dmabufs" },
{ "ycbcr", GDK_VULKAN_FEATURE_YCBCR, "Do not support Ycbcr textures (also disables dmabufs)" },
{ "semaphore-export", GDK_VULKAN_FEATURE_SEMAPHORE_EXPORT, "Disable sync of exported dmabufs" },
@@ -419,6 +419,10 @@ gdk_vulkan_context_check_swapchain (GdkVulkanContext *context,
VkDevice device;
guint i;
GDK_DEBUG (VULKAN, "(Re)creating the swapchain for surface of size %dx%d",
gdk_surface_get_width (surface),
gdk_surface_get_height (surface));
device = gdk_vulkan_context_get_device (context);
/*
@@ -456,6 +460,10 @@ gdk_vulkan_context_check_swapchain (GdkVulkanContext *context,
GDK_DEBUG (VULKAN, "Using surface present mode %s",
surface_present_mode_to_string (present_mode));
GDK_DEBUG (VULKAN, "Using extent %dx%d",
capabilities.currentExtent.width,
capabilities.currentExtent.height);
/*
* Per https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#VkSurfaceCapabilitiesKHR
@@ -468,6 +476,10 @@ gdk_vulkan_context_check_swapchain (GdkVulkanContext *context,
capabilities.currentExtent.width = MAX (1, (int) ceil (gdk_surface_get_width (surface) * scale));
capabilities.currentExtent.height = MAX (1, (int) ceil (gdk_surface_get_height (surface) * scale));
GDK_DEBUG (VULKAN, "Effective extent %dx%d",
capabilities.currentExtent.width,
capabilities.currentExtent.height);
}
res = GDK_VK_CHECK (vkCreateSwapchainKHR, device,
@@ -686,7 +698,37 @@ gdk_vulkan_context_begin_frame (GdkDrawContext *draw_context,
{
GError *error = NULL;
GDK_DEBUG (VULKAN, "Recreating the swapchain");
if (acquire_result == VK_SUBOPTIMAL_KHR)
{
const VkPipelineStageFlags mask = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT;
vkQueueSubmit (gdk_vulkan_context_get_queue (context),
1,
&(VkSubmitInfo) {
.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO,
.waitSemaphoreCount = 1,
.pWaitSemaphores = &priv->draw_semaphore,
.pWaitDstStageMask = &mask,
},
VK_NULL_HANDLE);
vkQueueWaitIdle (gdk_vulkan_context_get_queue (context));
if (gdk_vulkan_context_has_feature (context, GDK_VULKAN_FEATURE_SWAPCHAIN_MAINTENANCE))
{
PFN_vkReleaseSwapchainImagesEXT vkReleaseSwapchainImagesEXT;
vkReleaseSwapchainImagesEXT = (PFN_vkReleaseSwapchainImagesEXT) vkGetDeviceProcAddr (gdk_vulkan_context_get_device (context), "vkReleaseSwapchainImagesEXT");
vkReleaseSwapchainImagesEXT (gdk_vulkan_context_get_device (context),
&(VkReleaseSwapchainImagesInfoEXT) {
.sType = VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT,
.pNext = NULL,
.swapchain = priv->swapchain,
.imageIndexCount = 1,
.pImageIndices = &priv->draw_index,
});
}
}
if (gdk_vulkan_context_check_swapchain (context, &error))
continue;
@@ -1430,8 +1472,8 @@ gdk_display_create_vulkan_device (GdkDisplay *display,
skip_features = gdk_parse_debug_var ("GDK_VULKAN_DISABLE",
"GDK_VULKAN_DISABLE can be set to a list of Vulkan features to disable.\n",
gsk_vulkan_feature_keys,
G_N_ELEMENTS (gsk_vulkan_feature_keys));
gdk_vulkan_feature_keys,
G_N_ELEMENTS (gdk_vulkan_feature_keys));
if (skip_features & GDK_VULKAN_FEATURE_YCBCR)
skip_features |= GDK_VULKAN_FEATURE_DMABUF;
@@ -1606,13 +1648,13 @@ gdk_display_create_vulkan_device (GdkDisplay *display,
display->vulkan_features = features;
GDK_DISPLAY_DEBUG (display, VULKAN, "Enabled features (use GDK_VULKAN_DISABLE env var to disable):");
for (i = 0; i < G_N_ELEMENTS (gsk_vulkan_feature_keys); i++)
for (i = 0; i < G_N_ELEMENTS (gdk_vulkan_feature_keys); i++)
{
GDK_DISPLAY_DEBUG (display, VULKAN, " %s: %s",
gsk_vulkan_feature_keys[i].key,
(features & gsk_vulkan_feature_keys[i].value) ? "YES" :
((skip_features & gsk_vulkan_feature_keys[i].value) ? "disabled via env var" :
(((device_features & gsk_vulkan_feature_keys[i].value) == 0) ? "not supported" :
gdk_vulkan_feature_keys[i].key,
(features & gdk_vulkan_feature_keys[i].value) ? "" :
((skip_features & gdk_vulkan_feature_keys[i].value) ? "disabled via env var" :
(((device_features & gdk_vulkan_feature_keys[i].value) == 0) ? "" :
"Hum, what? This should not happen.")));
}
+10
View File
@@ -42,6 +42,12 @@
#define siglongjmp longjmp
#endif
#define JPEG_MEM_DEST_USES_SIZE_T \
(!(LIBJPEG_TURBO_VERSION_NUMBER) && \
(((JPEG_LIB_VERSION) > 90) || \
((JPEG_LIB_VERSION) == 90 && (JPEG_LIB_VERSION_MAJOR) > 9) || \
((JPEG_LIB_VERSION) == 90 && (JPEG_LIB_VERSION_MAJOR) == 9 && (JPEG_LIB_VERSION_MINOR) > 3)))
struct error_handler_data {
struct jpeg_error_mgr pub;
sigjmp_buf setjmp_buffer;
@@ -231,7 +237,11 @@ gdk_save_jpeg (GdkTexture *texture)
struct error_handler_data jerr;
struct jpeg_error_mgr err;
guchar *data = NULL;
#if JPEG_MEM_DEST_USES_SIZE_T
gsize size = 0;
#else
gulong size = 0;
#endif
guchar *input = NULL;
GdkTextureDownloader downloader;
GBytes *texbytes = NULL;
-8
View File
@@ -146,14 +146,6 @@ typedef NSString *CALayerContentsGravity;
inManualResize = NO;
inMove = NO;
/* We need to deliver the event to the proper drag gestures or we
* will leave the window in inconsistent state that requires clicking
* in the window to cancel the gesture.
*
* TODO: Can we improve grab breaking to fix this?
*/
_gdk_macos_display_send_event ([self gdkDisplay], event);
_gdk_macos_display_break_all_grabs (GDK_MACOS_DISPLAY (display), time);
/* Reset gravity */
-8
View File
@@ -270,13 +270,6 @@ gdk_macos_display_get_next_serial (GdkDisplay *display)
return ++serial;
}
static gboolean
gdk_macos_display_has_pending (GdkDisplay *display)
{
return _gdk_event_queue_find_first (display) ||
_gdk_macos_event_source_check_pending ();
}
static void
gdk_macos_display_notify_startup_complete (GdkDisplay *display,
const char *startup_notification_id)
@@ -611,7 +604,6 @@ gdk_macos_display_class_init (GdkMacosDisplayClass *klass)
display_class->get_next_serial = gdk_macos_display_get_next_serial;
display_class->get_name = gdk_macos_display_get_name;
display_class->get_setting = gdk_macos_display_get_setting;
display_class->has_pending = gdk_macos_display_has_pending;
display_class->init_gl = gdk_macos_display_init_gl;
display_class->notify_startup_complete = gdk_macos_display_notify_startup_complete;
display_class->queue_events = gdk_macos_display_queue_events;
+1 -1
View File
@@ -391,7 +391,7 @@ _gdk_macos_pasteboard_register_drag_types (NSWindow *window)
/* Default to an url type (think gobject://internal)
* to support internal, GType-based DnD.
*/
if (n_mime_types == 0)
if ([ret count] == 0)
{
GdkContentFormats *formats;
gsize n_gtypes;
+10 -18
View File
@@ -536,7 +536,7 @@ gdk_registry_handle_global (void *data,
MIN (version, 1));
}
else if (strcmp (interface, xx_color_manager_v4_interface.name) == 0 &&
gdk_has_feature (GDK_FEATURE_COLOR_MANAGEMENT))
GDK_DISPLAY_DEBUG_CHECK (GDK_DISPLAY (display_wayland), COLOR_MANAGEMENT))
{
display_wayland->color = gdk_wayland_color_new (display_wayland, registry, id, version);
}
@@ -623,7 +623,7 @@ _gdk_wayland_display_open (const char *display_name)
display = g_object_new (GDK_TYPE_WAYLAND_DISPLAY, NULL);
display_wayland = GDK_WAYLAND_DISPLAY (display);
display_wayland->wl_display = wl_display;
display_wayland->event_source = _gdk_wayland_display_event_source_new (display);
gdk_wayland_display_install_gsources (display_wayland);
init_settings (display);
@@ -724,12 +724,7 @@ gdk_wayland_display_dispose (GObject *object)
g_list_free_full (display_wayland->toplevels, destroy_toplevel);
if (display_wayland->event_source)
{
g_source_destroy (display_wayland->event_source);
g_source_unref (display_wayland->event_source);
display_wayland->event_source = NULL;
}
gdk_wayland_display_uninstall_gsources (display_wayland);
g_list_free_full (display_wayland->async_roundtrips, (GDestroyNotify) wl_callback_destroy);
@@ -881,12 +876,6 @@ gdk_wayland_display_make_default (GdkDisplay *display)
display_wayland->startup_notification_id = g_strdup (startup_id);
}
static gboolean
gdk_wayland_display_has_pending (GdkDisplay *display)
{
return FALSE;
}
static gulong
gdk_wayland_display_get_next_serial (GdkDisplay *display)
{
@@ -1053,7 +1042,6 @@ gdk_wayland_display_class_init (GdkWaylandDisplayClass *class)
display_class->sync = gdk_wayland_display_sync;
display_class->flush = gdk_wayland_display_flush;
display_class->make_default = gdk_wayland_display_make_default;
display_class->has_pending = gdk_wayland_display_has_pending;
display_class->queue_events = _gdk_wayland_display_queue_events;
display_class->get_app_launch_context = _gdk_wayland_display_get_app_launch_context;
display_class->get_next_serial = gdk_wayland_display_get_next_serial;
@@ -1130,6 +1118,9 @@ get_cursor_theme (GdkWaylandDisplay *display_wayland,
return theme;
}
if (strcmp (name, "default") != 0)
return get_cursor_theme (display_wayland, "default", size);
/* This may fall back to builtin cursors */
return wl_cursor_theme_create ("/usr/share/icons/default/cursors", size, display_wayland->shm);
}
@@ -1216,7 +1207,7 @@ _gdk_wayland_display_load_cursor_theme (GdkWaylandDisplay *display_wayland)
if (gdk_display_get_setting (GDK_DISPLAY (display_wayland), "gtk-cursor-theme-size", &v))
size = g_value_get_int (&v);
else
size = 32;
size = 24;
g_value_unset (&v);
g_value_init (&v, G_TYPE_STRING);
@@ -1750,7 +1741,7 @@ static TranslationEntry translations[] = {
{ FALSE, "org.gnome.desktop.interface", "gtk-theme", "gtk-theme-name" , G_TYPE_STRING, { .s = "Adwaita" } },
{ FALSE, "org.gnome.desktop.interface", "icon-theme", "gtk-icon-theme-name", G_TYPE_STRING, { .s = "gnome" } },
{ FALSE, "org.gnome.desktop.interface", "cursor-theme", "gtk-cursor-theme-name", G_TYPE_STRING, { .s = "Adwaita" } },
{ FALSE, "org.gnome.desktop.interface", "cursor-size", "gtk-cursor-theme-size", G_TYPE_INT, { .i = 32 } },
{ FALSE, "org.gnome.desktop.interface", "cursor-size", "gtk-cursor-theme-size", G_TYPE_INT, { .i = 24 } },
{ FALSE, "org.gnome.desktop.interface", "font-name", "gtk-font-name", G_TYPE_STRING, { .s = "Cantarell 11" } },
{ FALSE, "org.gnome.desktop.interface", "cursor-blink", "gtk-cursor-blink", G_TYPE_BOOLEAN, { .b = TRUE } },
{ FALSE, "org.gnome.desktop.interface", "cursor-blink-time", "gtk-cursor-blink-time", G_TYPE_INT, { .i = 1200 } },
@@ -1994,6 +1985,7 @@ init_settings (GdkDisplay *display)
g_debug ("Received no portal settings");
g_clear_pointer (&iter, g_variant_iter_free);
g_clear_pointer (&ret, g_variant_unref);
g_clear_object (&display_wayland->settings_portal);
goto fallback;
}
@@ -2010,7 +2002,7 @@ init_settings (GdkDisplay *display)
if (entry)
{
char *a = g_variant_print (v, FALSE);
g_debug ("Using portal setting for %s %s: %s\n", schema_str, key, a);
g_debug ("Using portal setting for %s %s: %s", schema_str, key, a);
g_free (a);
entry->valid = TRUE;
apply_portal_setting (entry, v, display);
+1
View File
@@ -146,6 +146,7 @@ struct _GdkWaylandDisplay
GHashTable *cursor_surface_cache;
GSource *event_source;
GSource *poll_source;
uint32_t server_decoration_mode;
+173 -81
View File
@@ -24,44 +24,119 @@
#include <unistd.h>
#include <errno.h>
typedef struct _GdkWaylandEventSource {
typedef struct _GdkWaylandEventSource GdkWaylandEventSource;
typedef struct _GdkWaylandPollSource GdkWaylandPollSource;
struct _GdkWaylandEventSource
{
GSource source;
GdkWaylandDisplay *display;
};
struct _GdkWaylandPollSource
{
GSource source;
GPollFD pfd;
uint32_t mask;
GdkDisplay *display;
gboolean reading;
} GdkWaylandEventSource;
GdkWaylandDisplay *display;
guint reading : 1;
guint can_dispatch : 1;
};
/* If we should try wl_display_dispatch_pending() before
* polling the Wayland fd
*/
static gboolean
gdk_wayland_display_can_dispatch (GdkWaylandDisplay *display_wayland)
{
GdkWaylandPollSource *poll_source = (GdkWaylandPollSource *) display_wayland->poll_source;
return poll_source->can_dispatch;
}
/* If we still have events to process and don't need to poll */
static gboolean
gdk_wayland_display_has_events_pending (GdkWaylandDisplay *display_wayland)
{
return gdk_wayland_display_can_dispatch (display_wayland) ||
_gdk_event_queue_find_first (GDK_DISPLAY (display_wayland)) != NULL;
}
static gboolean
gdk_event_source_prepare (GSource *base,
int *timeout)
gdk_wayland_event_source_prepare (GSource *base,
int *timeout)
{
GdkWaylandEventSource *source = (GdkWaylandEventSource *) base;
*timeout = -1;
return gdk_wayland_display_has_events_pending (source->display);
}
static gboolean
gdk_wayland_event_source_check (GSource *base)
{
GdkWaylandEventSource *source = (GdkWaylandEventSource *) base;
return gdk_wayland_display_has_events_pending (source->display);
}
static gboolean
gdk_wayland_event_source_dispatch (GSource *base,
GSourceFunc callback,
gpointer data)
{
GdkWaylandEventSource *source = (GdkWaylandEventSource *) base;
GdkEvent *event;
event = gdk_display_get_event (GDK_DISPLAY (source->display));
if (event)
{
_gdk_event_emit (event);
gdk_event_unref (event);
}
return G_SOURCE_CONTINUE;
}
static void
gdk_wayland_event_source_finalize (GSource *base)
{
}
static GSourceFuncs gdk_wayland_event_source_funcs = {
gdk_wayland_event_source_prepare,
gdk_wayland_event_source_check,
gdk_wayland_event_source_dispatch,
gdk_wayland_event_source_finalize
};
static gboolean
gdk_wayland_poll_source_prepare (GSource *base,
int *timeout)
{
GdkWaylandPollSource *source = (GdkWaylandPollSource *) base;
GdkWaylandDisplay *display = (GdkWaylandDisplay *) source->display;
GList *l;
*timeout = -1;
if (source->display->event_pause_count > 0)
return _gdk_event_queue_find_first (source->display) != NULL;
/* We have to add/remove the GPollFD if we want to update our
* poll event mask dynamically. Instead, let's just flush all
* write on idle instead, which is what this amounts to.
*/
if (_gdk_event_queue_find_first (source->display) != NULL)
return TRUE;
if (gdk_wayland_display_has_events_pending (source->display))
return FALSE;
/* wl_display_prepare_read() needs to be balanced with either
* wl_display_read_events() or wl_display_cancel_read()
* (in gdk_event_source_check() */
* (in gdk_wayland_event_source_check() */
if (source->reading)
return FALSE;
/* if prepare_read() returns non-zero, there are events to be dispatched */
if (wl_display_prepare_read (display->wl_display) != 0)
return TRUE;
{
source->can_dispatch = TRUE;
return TRUE;
}
/* We need to check whether there are pending events on the surface queues as well,
* but we also need to make sure to only have one active "read" in the end,
@@ -74,6 +149,8 @@ gdk_event_source_prepare (GSource *base,
if (wl_display_prepare_read_queue (display->wl_display, queue) != 0)
{
source->can_dispatch = TRUE;
/* cancel the read from before the for loop */
wl_display_cancel_read (display->wl_display);
return TRUE;
}
@@ -92,23 +169,19 @@ gdk_event_source_prepare (GSource *base,
}
static gboolean
gdk_event_source_check (GSource *base)
gdk_wayland_poll_source_check (GSource *base)
{
GdkWaylandEventSource *source = (GdkWaylandEventSource *) base;
GdkWaylandPollSource *source = (GdkWaylandPollSource *) base;
GdkWaylandDisplay *display_wayland = (GdkWaylandDisplay *) source->display;
if (source->display->event_pause_count > 0)
{
if (source->reading)
wl_display_cancel_read (display_wayland->wl_display);
source->reading = FALSE;
return _gdk_event_queue_find_first (source->display) != NULL;
}
/* read the events from the wayland fd into their respective queues if we have data */
if (source->reading)
{
if (source->pfd.revents & (G_IO_ERR | G_IO_HUP))
{
g_message ("Lost connection to Wayland compositor.");
_exit (1);
}
if (source->pfd.revents & G_IO_IN)
{
if (wl_display_read_events (display_wayland->wl_display) < 0)
@@ -116,53 +189,40 @@ gdk_event_source_check (GSource *base)
g_message ("Error reading events from display: %s", g_strerror (errno));
_exit (1);
}
source->pfd.revents = 0;
source->can_dispatch = TRUE;
}
else
wl_display_cancel_read (display_wayland->wl_display);
source->reading = FALSE;
}
return _gdk_event_queue_find_first (source->display) != NULL ||
source->pfd.revents;
return FALSE;
}
static gboolean
gdk_event_source_dispatch (GSource *base,
GSourceFunc callback,
gpointer data)
gdk_wayland_poll_source_dispatch (GSource *base,
GSourceFunc callback,
gpointer data)
{
GdkWaylandEventSource *source = (GdkWaylandEventSource *) base;
GdkDisplay *display = source->display;
GdkEvent *event;
event = gdk_display_get_event (display);
if (event)
{
_gdk_event_emit (event);
gdk_event_unref (event);
}
return TRUE;
return G_SOURCE_CONTINUE;
}
static void
gdk_event_source_finalize (GSource *base)
gdk_wayland_poll_source_finalize (GSource *base)
{
GdkWaylandEventSource *source = (GdkWaylandEventSource *) base;
GdkWaylandDisplay *display = (GdkWaylandDisplay *) source->display;
GdkWaylandPollSource *source = (GdkWaylandPollSource *) base;
if (source->reading)
wl_display_cancel_read (display->wl_display);
wl_display_cancel_read (source->display->wl_display);
source->reading = FALSE;
}
static GSourceFuncs wl_glib_source_funcs = {
gdk_event_source_prepare,
gdk_event_source_check,
gdk_event_source_dispatch,
gdk_event_source_finalize
static GSourceFuncs gdk_wayland_poll_source_funcs = {
gdk_wayland_poll_source_prepare,
gdk_wayland_poll_source_check,
gdk_wayland_poll_source_dispatch,
gdk_wayland_poll_source_finalize
};
void
@@ -176,45 +236,81 @@ _gdk_wayland_display_deliver_event (GdkDisplay *display,
_gdk_display_get_next_serial (display));
}
GSource *
_gdk_wayland_display_event_source_new (GdkDisplay *display)
void
gdk_wayland_display_install_gsources (GdkWaylandDisplay *display_wayland)
{
GdkDisplay *display = GDK_DISPLAY (display_wayland);
GSource *source;
GdkWaylandEventSource *wl_source;
GdkWaylandDisplay *display_wayland;
GdkWaylandEventSource *event_source;
GdkWaylandPollSource *poll_source;
char *name;
source = g_source_new (&wl_glib_source_funcs,
/* SOURCE 1 */
source = g_source_new (&gdk_wayland_event_source_funcs,
sizeof (GdkWaylandEventSource));
display_wayland->event_source = source;
event_source = (GdkWaylandEventSource *) source;
name = g_strdup_printf ("GDK Wayland Event source (%s)",
gdk_display_get_name (display));
g_source_set_name (source, name);
g_free (name);
wl_source = (GdkWaylandEventSource *) source;
display_wayland = GDK_WAYLAND_DISPLAY (display);
wl_source->display = display;
wl_source->pfd.fd = wl_display_get_fd (display_wayland->wl_display);
wl_source->pfd.events = G_IO_IN | G_IO_ERR | G_IO_HUP;
g_source_add_poll (source, &wl_source->pfd);
event_source->display = display_wayland;
g_source_set_priority (source, GDK_PRIORITY_EVENTS);
g_source_set_can_recurse (source, TRUE);
g_source_attach (source, NULL);
/* SOURCE 2 */
source = g_source_new (&gdk_wayland_poll_source_funcs,
sizeof (GdkWaylandPollSource));
display_wayland->poll_source = source;
poll_source = (GdkWaylandPollSource *) source;
name = g_strdup_printf ("GDK Wayland Poll source (%s)",
gdk_display_get_name (display));
g_source_set_name (source, name);
g_free (name);
return source;
poll_source->display = display_wayland;
poll_source->pfd.fd = wl_display_get_fd (display_wayland->wl_display);
poll_source->pfd.events = G_IO_IN | G_IO_ERR | G_IO_HUP;
g_source_add_poll (source, &poll_source->pfd);
/* We must guarantee to ALWAYS be called and called FIRST after
* every poll - or rather: after every prepare().
* Any other source might call Wayland functions and in turn
* block while waiting for us.
* And GSource has no after_pool() vfunc, check() is not guaranteed
* to be called.
*/
g_source_set_priority (source, G_MININT);
g_source_attach (source, NULL);
}
void
gdk_wayland_display_uninstall_gsources (GdkWaylandDisplay *display_wayland)
{
if (display_wayland->event_source)
{
g_source_destroy (display_wayland->event_source);
g_source_unref (display_wayland->event_source);
display_wayland->event_source = NULL;
}
if (display_wayland->poll_source)
{
g_source_destroy (display_wayland->poll_source);
g_source_unref (display_wayland->poll_source);
display_wayland->poll_source = NULL;
}
}
void
_gdk_wayland_display_queue_events (GdkDisplay *display)
{
GdkWaylandDisplay *display_wayland;
GdkWaylandEventSource *source;
GdkWaylandDisplay *display_wayland = GDK_WAYLAND_DISPLAY (display);
GdkWaylandPollSource *poll_source;
GList *l;
display_wayland = GDK_WAYLAND_DISPLAY (display);
source = (GdkWaylandEventSource *) display_wayland->event_source;
if (wl_display_dispatch_pending (display_wayland->wl_display) < 0)
{
g_message ("Error %d (%s) dispatching to Wayland display.",
@@ -234,10 +330,6 @@ _gdk_wayland_display_queue_events (GdkDisplay *display)
}
}
if (source->pfd.revents & (G_IO_ERR | G_IO_HUP))
{
g_message ("Lost connection to Wayland compositor.");
_exit (1);
}
source->pfd.revents = 0;
poll_source = (GdkWaylandPollSource *) display_wayland->poll_source;
poll_source->can_dispatch = FALSE;
}
+2 -1
View File
@@ -184,7 +184,8 @@ void gdk_wayland_device_unset_touch_grab (GdkDevice *device,
GdkEventSequence *sequence);
void _gdk_wayland_display_deliver_event (GdkDisplay *display, GdkEvent *event);
GSource *_gdk_wayland_display_event_source_new (GdkDisplay *display);
void gdk_wayland_display_install_gsources (GdkWaylandDisplay *display_wayland);
void gdk_wayland_display_uninstall_gsources (GdkWaylandDisplay *display_wayland);
void _gdk_wayland_display_queue_events (GdkDisplay *display);
GdkAppLaunchContext *_gdk_wayland_display_get_app_launch_context (GdkDisplay *display);
-1
View File
@@ -1288,7 +1288,6 @@ gdk_win32_display_class_init (GdkWin32DisplayClass *klass)
display_class->beep = gdk_win32_display_beep;
display_class->sync = gdk_win32_display_sync;
display_class->flush = gdk_win32_display_flush;
display_class->has_pending = _gdk_win32_display_has_pending;
display_class->queue_events = _gdk_win32_display_queue_events;
//? display_class->get_app_launch_context = _gdk_win32_display_get_app_launch_context;
+5 -1
View File
@@ -135,7 +135,11 @@ struct _GdkWin32Display
guint hasWglOMLSyncControl : 1;
guint hasWglARBPixelFormat : 1;
guint hasGlWINSwapHint : 1;
guint wgl_support_gdi : 1;
struct wgl_quirks {
guint force_gdi_compatibility : 1;
guint disallow_swap_exchange : 1;
} *wgl_quirks;
#ifdef HAVE_EGL
guint hasEglKHRCreateContext : 1;
-8
View File
@@ -535,14 +535,6 @@ _gdk_events_init (GdkDisplay *display)
set_up_low_level_keyboard_hook ();
}
gboolean
_gdk_win32_display_has_pending (GdkDisplay *display)
{
return (_gdk_event_queue_find_first (display) ||
(modal_win32_dialog == NULL &&
GetQueueStatus (QS_ALLINPUT) != 0));
}
#if 0 /* Unused, but might be useful to re-introduce in some debugging output? */
static char *
+68 -30
View File
@@ -270,17 +270,20 @@ attribs_fini (attribs_t *attribs)
#define attribs_add_static_array(attribs, array) \
do attribs_add_bulk (attribs, array, G_N_ELEMENTS (array)); while (0)
static int
find_pixel_format_with_defined_swap_flag (HDC hdc,
int formats[],
UINT count)
static bool
find_pixel_format_with_defined_swap_method (HDC hdc,
int formats[],
UINT count,
UINT *index,
int *swap_method)
{
SetLastError (0);
for (UINT i = 0; i < count; i++)
{
int query = WGL_SWAP_METHOD_ARB;
int value = WGL_SWAP_UNDEFINED_ARB;
SetLastError (0);
if (!wglGetPixelFormatAttribivARB (hdc, formats[i], 0, 1, &query, &value))
{
WIN32_API_FAILED ("wglGetPixelFormatAttribivARB");
@@ -288,10 +291,15 @@ find_pixel_format_with_defined_swap_flag (HDC hdc,
}
if (value != WGL_SWAP_UNDEFINED_ARB)
return formats[i];
{
*index = i;
*swap_method = value;
return true;
}
}
return 0;
return false;
}
static int
@@ -337,6 +345,8 @@ choose_pixel_format_arb_attribs (GdkWin32Display *display_win32,
UINT count = 0;
int format = 0;
int saved = 0;
UINT index = 0;
int swap_method = WGL_SWAP_UNDEFINED_ARB;
#define EXT_CALL(api, args) \
do { \
@@ -357,7 +367,7 @@ choose_pixel_format_arb_attribs (GdkWin32Display *display_win32,
attribs_add_static_array (&attribs, attribs_base);
if (display_win32->wgl_support_gdi)
if (display_win32->wgl_quirks->force_gdi_compatibility)
attribs_add (&attribs, WGL_SUPPORT_GDI_ARB, GL_TRUE);
attribs_commit (&attribs);
@@ -383,26 +393,40 @@ choose_pixel_format_arb_attribs (GdkWin32Display *display_win32,
/* Do we have a defined swap method? */
format = find_pixel_format_with_defined_swap_flag (hdc, formats, count);
if (format > 0)
goto done;
if (find_pixel_format_with_defined_swap_method (hdc, formats, count, &index, &swap_method))
{
if (!display_win32->wgl_quirks->disallow_swap_exchange || swap_method != WGL_SWAP_EXCHANGE_ARB)
{
format = formats[index];
goto done;
}
}
/* Nope, but we can try to ask for it explicitly */
const int swap_methods[] = {
WGL_SWAP_EXCHANGE_ARB,
const int swap_methods[] =
{
(display_win32->wgl_quirks->disallow_swap_exchange) ? 0 : WGL_SWAP_EXCHANGE_ARB,
WGL_SWAP_COPY_ARB,
};
for (size_t i = 0; i < G_N_ELEMENTS (swap_methods); i++)
{
if (swap_methods[i] == 0)
continue;
attribs_add (&attribs, WGL_SWAP_METHOD_ARB, swap_methods[i]);
EXT_CALL (wglChoosePixelFormatARB, (hdc, attribs_data (&attribs), NULL,
G_N_ELEMENTS (formats), formats,
&count));
format = find_pixel_format_with_defined_swap_flag (hdc, formats, count);
if (format > 0)
goto done;
if (find_pixel_format_with_defined_swap_method (hdc, formats, count, &index, &swap_method))
{
if (!display_win32->wgl_quirks->disallow_swap_exchange || swap_method != WGL_SWAP_EXCHANGE_ARB)
{
format = formats[index];
goto done;
}
}
attribs_reset (&attribs);
}
@@ -420,10 +444,9 @@ done:
}
static int
get_distance (PIXELFORMATDESCRIPTOR *pfd)
get_distance (PIXELFORMATDESCRIPTOR *pfd,
DWORD swap_flags)
{
const DWORD swap_flags = PFD_SWAP_COPY | PFD_SWAP_EXCHANGE;
int is_double_buffered = (pfd->dwFlags & PFD_DOUBLEBUFFER) != 0;
int is_swap_defined = (pfd->dwFlags & swap_flags) != 0;
int is_mono = (pfd->dwFlags & PFD_STEREO) == 0;
@@ -438,7 +461,7 @@ get_distance (PIXELFORMATDESCRIPTOR *pfd)
memory_distance;
}
/* ChoosePixelFormat ignored some fields and flags, which makes it
/* ChoosePixelFormat ignores some fields and flags, which makes it
* less useful for GTK. In particular, it ignores the PFD_SWAP flags,
* which are very important for GUI toolkits. Here we implement an
* analog function which is tied to the needs of GTK.
@@ -455,7 +478,9 @@ choose_pixel_format_opengl32 (GdkWin32Display *display_win32,
PFD_GENERIC_ACCELERATED;
const DWORD required_flags = PFD_DRAW_TO_WINDOW |
PFD_SUPPORT_OPENGL |
(display_win32->wgl_support_gdi ? PFD_SUPPORT_GDI : 0);
(display_win32->wgl_quirks->force_gdi_compatibility ? PFD_SUPPORT_GDI : 0);
const DWORD best_swap_flags = PFD_SWAP_COPY |
(display_win32->wgl_quirks->disallow_swap_exchange ? 0 : PFD_SWAP_EXCHANGE);
struct {
int index;
@@ -481,7 +506,7 @@ choose_pixel_format_opengl32 (GdkWin32Display *display_win32,
pfd.cBlueBits != 8 || pfd.cAlphaBits != 8))
continue;
current.distance = get_distance (&pfd);
current.distance = get_distance (&pfd, best_swap_flags);
if (best.index == 0 || current.distance < best.distance)
best = current;
@@ -606,6 +631,14 @@ check_driver_is_d3d12 (void)
g_ascii_strncasecmp (renderer, "D3D12", strlen ("D3D12")) == 0;
}
static bool
check_vendor_is_nvidia (void)
{
const char *vendor = (const char *) glGetString (GL_VENDOR);
return g_ascii_strncasecmp (vendor, "NVIDIA", strlen ("NVIDIA")) == 0;
}
GdkGLContext *
gdk_win32_display_init_wgl (GdkDisplay *display,
GError **error)
@@ -618,6 +651,9 @@ gdk_win32_display_init_wgl (GdkDisplay *display,
if (!gdk_gl_backend_can_be_used (GDK_GL_WGL, error))
return NULL;
g_assert (display_win32->wgl_quirks == NULL);
display_win32->wgl_quirks = g_new0 (struct wgl_quirks, 1);
/* acquire and cache dummy Window (HWND & HDC) and
* dummy GL Context, it is used to query functions
* and used for other stuff as well
@@ -658,7 +694,8 @@ gdk_win32_display_init_wgl (GdkDisplay *display,
display_win32->hasGlWINSwapHint =
epoxy_has_gl_extension ("GL_WIN_swap_hint");
display_win32->wgl_support_gdi = check_driver_is_d3d12();
display_win32->wgl_quirks->force_gdi_compatibility = check_driver_is_d3d12 ();
display_win32->wgl_quirks->disallow_swap_exchange = check_vendor_is_nvidia ();
context = g_object_new (GDK_TYPE_WIN32_GL_CONTEXT_WGL,
"display", display,
@@ -677,7 +714,8 @@ gdk_win32_display_init_wgl (GdkDisplay *display,
GDK_NOTE (OPENGL, g_print ("WGL API version %d.%d found\n"
" - Vendor: %s\n"
" - Renderer: %s\n"
" - GDI compatibility required: %s\n"
" - Quirks / force GDI compatiblity: %s\n"
" - Quirks / disallow swap exchange: %s\n"
" - Checked extensions:\n"
"\t* WGL_ARB_pixel_format: %s\n"
"\t* WGL_ARB_create_context: %s\n"
@@ -687,7 +725,8 @@ gdk_win32_display_init_wgl (GdkDisplay *display,
major, minor,
glGetString (GL_VENDOR),
glGetString (GL_RENDERER),
display_win32->wgl_support_gdi ? "yes" : "no",
display_win32->wgl_quirks->force_gdi_compatibility ? "enabled" : "disabled",
display_win32->wgl_quirks->disallow_swap_exchange ? "enabled" : "disabled",
display_win32->hasWglARBPixelFormat ? "yes" : "no",
display_win32->hasWglARBCreateContext ? "yes" : "no",
display_win32->hasWglEXTSwapControl ? "yes" : "no",
@@ -1095,16 +1134,15 @@ gdk_win32_gl_context_wgl_realize (GdkGLContext *context,
{
context_wgl->double_buffered = (query_values[0] == GL_TRUE);
context_wgl->swap_method = SWAP_METHOD_UNDEFINED;
switch (query_values[1])
{
case WGL_SWAP_COPY_ARB:
context_wgl->swap_method = SWAP_METHOD_COPY;
break;
case WGL_SWAP_EXCHANGE_ARB:
context_wgl->swap_method = SWAP_METHOD_EXCHANGE;
break;
default:
context_wgl->swap_method = SWAP_METHOD_UNDEFINED;
if (!display_win32->wgl_quirks->disallow_swap_exchange)
context_wgl->swap_method = SWAP_METHOD_EXCHANGE;
break;
}
}
@@ -1119,7 +1157,7 @@ gdk_win32_gl_context_wgl_realize (GdkGLContext *context,
if (pfd.dwFlags & PFD_SWAP_COPY)
context_wgl->swap_method = SWAP_METHOD_COPY;
else if (pfd.dwFlags & PFD_SWAP_EXCHANGE)
else if ((pfd.dwFlags & PFD_SWAP_EXCHANGE) && !display_win32->wgl_quirks->disallow_swap_exchange)
context_wgl->swap_method = SWAP_METHOD_EXCHANGE;
else
context_wgl->swap_method = SWAP_METHOD_UNDEFINED;
-7
View File
@@ -1850,12 +1850,6 @@ gdk_x11_display_flush (GdkDisplay *display)
XFlush (GDK_DISPLAY_XDISPLAY (display));
}
static gboolean
gdk_x11_display_has_pending (GdkDisplay *display)
{
return XPending (GDK_DISPLAY_XDISPLAY (display));
}
/**
* gdk_x11_display_get_default_group:
* @display: (type GdkX11Display): a `GdkDisplay`
@@ -3058,7 +3052,6 @@ gdk_x11_display_class_init (GdkX11DisplayClass * class)
display_class->sync = gdk_x11_display_sync;
display_class->flush = gdk_x11_display_flush;
display_class->make_default = gdk_x11_display_make_default;
display_class->has_pending = gdk_x11_display_has_pending;
display_class->queue_events = _gdk_x11_display_queue_events;
display_class->get_app_launch_context = _gdk_x11_display_get_app_launch_context;
+14 -2
View File
@@ -1033,6 +1033,19 @@ gsk_gpu_node_processor_add_node_clipped (GskGpuNodeProcessor *self,
}
else
{
graphene_rect_t scissored_clip;
if (gsk_gpu_node_processor_rect_device_to_clip (self,
&GSK_RECT_INIT_CAIRO (&self->scissor),
&scissored_clip))
{
if (!gsk_rect_intersection (&scissored_clip, &clip, &clip))
{
gsk_gpu_clip_init_copy (&self->clip, &old_clip);
return;
}
}
if (!gsk_gpu_clip_intersect_rect (&self->clip, &old_clip, &clip))
{
GskGpuImage *image;
@@ -3206,8 +3219,7 @@ gsk_gpu_node_processor_repeat_tile (GskGpuNodeProcessor *self,
- y * child_bounds->size.height));
if (!gsk_rect_intersection (&offset_rect, child_bounds, &clipped_child_bounds))
{
/* The math has gone wrong probably, someone should look at this. */
g_warn_if_reached ();
/* rounding error hits again */
return;
}
+10 -4
View File
@@ -161,19 +161,25 @@ run (out vec2 pos)
float
bt709_eotf (float v)
{
if (abs (v) < 0.081)
const float a = 1.099;
const float d = 0.0812;
if (abs (v) < d)
return v / 4.5;
else
return sign (v) * pow ((abs (v) + 0.099) / 1.099, 1.0/0.45);
return sign (v) * pow ((abs (v) + (a - 1.0)) / a, 1.0 / 0.45);
}
float
bt709_oetf (float v)
{
if (abs (v) < 0.081)
const float a = 1.099;
const float b = 0.018;
if (abs (v) < b)
return v * 4.5;
else
return 1.099 * sign (v) * (pow (abs (v), 0.45) - 0.099);
return sign (v) * (a * pow (abs (v), 0.45) - (a - 1.0));
}
float
+4 -1
View File
@@ -1740,15 +1740,18 @@ gsk_border_node_new (const GskRoundedRect *outline,
const float border_width[4],
const GdkRGBA border_color[4])
{
GskRenderNode *node;
GdkColor color[4];
for (int i = 0; i < 4; i++)
gdk_color_init_from_rgba (&color[i], &border_color[i]);
return gsk_border_node_new2 (outline, border_width, color);
node = gsk_border_node_new2 (outline, border_width, color);
for (int i = 0; i < 4; i++)
gdk_color_finish (&color[i]);
return node;
}
/*< private >
+10
View File
@@ -256,6 +256,8 @@ listview_handle_method (GDBusConnection *connection,
child;
child = gtk_widget_get_next_sibling (child))
{
if (!GTK_IS_LIST_ITEM_BASE (child))
continue;
if (gtk_list_item_base_get_selected (GTK_LIST_ITEM_BASE (child)))
{
if (idx == 0)
@@ -288,6 +290,8 @@ listview_handle_method (GDBusConnection *connection,
child;
child = gtk_widget_get_next_sibling (child))
{
if (!GTK_IS_LIST_ITEM_BASE (child))
continue;
if (idx == 0)
break;
idx--;
@@ -320,6 +324,8 @@ listview_handle_method (GDBusConnection *connection,
child;
child = gtk_widget_get_next_sibling (child))
{
if (!GTK_IS_LIST_ITEM_BASE (child))
continue;
if (idx == 0)
break;
idx--;
@@ -353,6 +359,8 @@ listview_handle_method (GDBusConnection *connection,
child;
child = gtk_widget_get_next_sibling (child))
{
if (!GTK_IS_LIST_ITEM_BASE (child))
continue;
if (gtk_list_item_base_get_selected (GTK_LIST_ITEM_BASE (child)))
{
if (idx == 0)
@@ -388,6 +396,8 @@ listview_handle_method (GDBusConnection *connection,
child;
child = gtk_widget_get_next_sibling (child))
{
if (!GTK_IS_LIST_ITEM_BASE (child))
continue;
if (idx == 0)
break;
idx--;
+3 -6
View File
@@ -68,8 +68,8 @@ gtk_accessible_text_default_get_default_attributes (GtkAccessibleText *self,
char ***attribute_names,
char ***attribute_values)
{
*attribute_names = NULL;
*attribute_values = NULL;
*attribute_names = g_new0 (char *, 1);
*attribute_values = g_new0 (char *, 1);
}
static void
@@ -289,10 +289,7 @@ gtk_accessible_text_get_attributes (GtkAccessibleText *self,
* - a name, typically in the form of a reverse DNS identifier
* - a value
*
* If this function returns true, `n_attributes` will be set to a value
* greater than or equal to one, @ranges will be set to a newly
* allocated array of [struct#Gtk.AccessibleTextRange] which should
* be freed with g_free(), @attribute_names and @attribute_values
* If this function returns true, @attribute_names and @attribute_values
* will be set to string arrays that should be freed with g_strfreev().
*
* Since: 4.14
+1 -1
View File
@@ -905,7 +905,7 @@ static const GtkAccessibleCollect collect_rels[] = {
[GTK_ACCESSIBLE_RELATION_SET_SIZE] = {
.value = GTK_ACCESSIBLE_RELATION_SET_SIZE,
.ctype = GTK_ACCESSIBLE_COLLECT_INTEGER,
.name = "posinset"
.name = "setsize"
},
};
+5 -2
View File
@@ -334,7 +334,10 @@ gtk_application_impl_dbus_startup (GtkApplicationImpl *impl,
dbus->unique_name = g_dbus_connection_get_unique_name (dbus->session);
if (gdk_should_use_portal ())
goto out;
{
g_debug ("Not using session manager");
goto out;
}
dbus->cancellable = g_cancellable_new ();
@@ -509,7 +512,7 @@ gtk_application_impl_dbus_startup (GtkApplicationImpl *impl,
"gtk-shell-shows-menubar", FALSE,
NULL);
if (dbus->sm_proxy == NULL && dbus->session)
if (dbus->sm_proxy == NULL && dbus->session != NULL && gdk_should_use_portal ())
{
dbus->inhibit_proxy = gtk_application_get_proxy_if_service_present (dbus->session,
G_DBUS_PROXY_FLAGS_NONE,
+22
View File
@@ -88,6 +88,10 @@
* displays the shortcuts window, associate the item with the action
* `win.show-help-overlay`.
*
* `GtkApplication` will also automatically set the application id as the
* default window icon. Use [func@Gtk.Window.set_default_icon_name] or
* [property@Gtk.Window:icon-name] to override that behavior.
*
* ## A simple application
*
* [A simple example](https://gitlab.gnome.org/GNOME/gtk/tree/main/examples/bp/bloatpad.c)
@@ -244,6 +248,23 @@ gtk_application_load_resources (GtkApplication *application)
}
}
static void
gtk_application_set_window_icon (GtkApplication *application)
{
GtkIconTheme *default_theme;
const char *appid;
if (gtk_window_get_default_icon_name () != NULL)
return;
default_theme = gtk_icon_theme_get_for_display (gdk_display_get_default ());
appid = g_application_get_application_id (G_APPLICATION (application));
if (appid == NULL || !gtk_icon_theme_has_icon (default_theme, appid))
return;
gtk_window_set_default_icon_name (appid);
}
static void
gtk_application_startup (GApplication *g_application)
@@ -267,6 +288,7 @@ gtk_application_startup (GApplication *g_application)
gtk_application_impl_startup (priv->impl, priv->register_session);
gtk_application_load_resources (application);
gtk_application_set_window_icon (application);
gdk_profiler_end_mark (before, "Application startup", NULL);
}
+35 -6
View File
@@ -512,6 +512,40 @@ gtk_at_context_get_accessible_parent (GtkATContext *self)
static GtkATContext * get_parent_context (GtkATContext *self);
static inline void
maybe_realize_context (GtkATContext *self)
{
if (GTK_IS_WIDGET (self->accessible))
{
GtkATContext *parent_context = get_parent_context (self);
if (parent_context && parent_context->realized)
gtk_at_context_realize (self);
g_clear_object (&parent_context);
}
else
{
GtkAccessible *accessible_parent;
gtk_at_context_realize (self);
accessible_parent = self->accessible_parent;
while (accessible_parent && !GTK_IS_WIDGET (accessible_parent))
{
GtkATContext *parent_context = gtk_accessible_get_at_context (accessible_parent);
if (!parent_context)
break;
gtk_at_context_realize (parent_context);
accessible_parent = parent_context->accessible_parent;
g_clear_object (&parent_context);
}
}
}
/*< private >
* gtk_at_context_set_accessible_parent:
* @self: a `GtkAtContext`
@@ -534,15 +568,10 @@ gtk_at_context_set_accessible_parent (GtkATContext *self,
self->accessible_parent = parent;
if (self->accessible_parent != NULL)
{
GtkATContext *parent_context = NULL;
g_object_add_weak_pointer (G_OBJECT (self->accessible_parent),
(gpointer *) &self->accessible_parent);
parent_context = get_parent_context (self);
if (parent_context && parent_context->realized)
gtk_at_context_realize (self);
g_clear_object (&parent_context);
maybe_realize_context (self);
}
}
}
+8 -2
View File
@@ -1203,7 +1203,7 @@ gtk_css_node_get_classes (GtkCssNode *cssnode)
return result;
}
void
gboolean
gtk_css_node_add_class (GtkCssNode *cssnode,
GQuark style_class)
{
@@ -1211,10 +1211,13 @@ gtk_css_node_add_class (GtkCssNode *cssnode,
{
gtk_css_node_invalidate (cssnode, GTK_CSS_CHANGE_CLASS);
g_object_notify_by_pspec (G_OBJECT (cssnode), cssnode_properties[PROP_CLASSES]);
return TRUE;
}
return FALSE;
}
void
gboolean
gtk_css_node_remove_class (GtkCssNode *cssnode,
GQuark style_class)
{
@@ -1222,7 +1225,10 @@ gtk_css_node_remove_class (GtkCssNode *cssnode,
{
gtk_css_node_invalidate (cssnode, GTK_CSS_CHANGE_CLASS);
g_object_notify_by_pspec (G_OBJECT (cssnode), cssnode_properties[PROP_CLASSES]);
return TRUE;
}
return FALSE;
}
gboolean
+2 -2
View File
@@ -128,9 +128,9 @@ GtkStateFlags gtk_css_node_get_state (GtkCssNode *
void gtk_css_node_set_classes (GtkCssNode *cssnode,
const char **classes);
char ** gtk_css_node_get_classes (GtkCssNode *cssnode);
void gtk_css_node_add_class (GtkCssNode *cssnode,
gboolean gtk_css_node_add_class (GtkCssNode *cssnode,
GQuark style_class);
void gtk_css_node_remove_class (GtkCssNode *cssnode,
gboolean gtk_css_node_remove_class (GtkCssNode *cssnode,
GQuark style_class);
gboolean gtk_css_node_has_class (GtkCssNode *cssnode,
GQuark style_class) G_GNUC_PURE;
+2 -2
View File
@@ -1267,9 +1267,9 @@ gtk_css_provider_load_internal (GtkCssProvider *self,
if (GDK_PROFILER_IS_RUNNING)
{
char *uri = g_file_get_uri (file);
const char *uri G_GNUC_UNUSED;
uri = file ? g_file_peek_path (file) : NULL;
gdk_profiler_end_mark (before, "CSS theme load", uri);
g_free (uri);
}
}
+2 -3
View File
@@ -337,10 +337,9 @@ filechooser_win32_thread_data_free (FilechooserWin32ThreadData *data)
g_array_free (data->choices_selections, TRUE);
data->choices_selections = NULL;
}
g_object_unref (data->shortcut_files);
g_clear_object (&data->shortcut_files);
g_slist_free_full (data->files, g_object_unref);
if (data->self)
g_object_unref (data->self);
g_clear_object (&data->self);
g_free (data->accept_label);
g_free (data->cancel_label);
g_free (data->title);
+1
View File
@@ -2190,6 +2190,7 @@ update_feature_example (GtkFontChooserWidget *fontchooser,
gtk_label_set_text (GTK_LABEL (item->example), text);
gtk_label_set_attributes (GTK_LABEL (item->example), attrs);
gtk_label_set_ellipsize (GTK_LABEL (item->example), PANGO_ELLIPSIZE_END);
g_free (text);
pango_attr_list_unref (attrs);
+22 -1
View File
@@ -808,6 +808,20 @@ gtk_picture_set_pixbuf (GtkPicture *self,
g_object_unref (texture);
}
static gboolean
paintable_size_equal (GdkPaintable *one,
GdkPaintable *two)
{
if (one == NULL)
return two == NULL;
else if (two == NULL)
return FALSE;
return gdk_paintable_get_intrinsic_width (one) == gdk_paintable_get_intrinsic_width (two) &&
gdk_paintable_get_intrinsic_height (one) == gdk_paintable_get_intrinsic_height (two) &&
gdk_paintable_get_intrinsic_aspect_ratio (one) == gdk_paintable_get_intrinsic_aspect_ratio (two);
}
/**
* gtk_picture_set_paintable:
* @self: a `GtkPicture`
@@ -823,6 +837,8 @@ void
gtk_picture_set_paintable (GtkPicture *self,
GdkPaintable *paintable)
{
gboolean size_changed;
g_return_if_fail (GTK_IS_PICTURE (self));
g_return_if_fail (paintable == NULL || GDK_IS_PAINTABLE (paintable));
@@ -834,6 +850,8 @@ gtk_picture_set_paintable (GtkPicture *self,
if (paintable)
g_object_ref (paintable);
size_changed = !paintable_size_equal (self->paintable, paintable);
gtk_picture_clear_paintable (self);
self->paintable = paintable;
@@ -855,7 +873,10 @@ gtk_picture_set_paintable (GtkPicture *self,
self);
}
gtk_widget_queue_resize (GTK_WIDGET (self));
if (size_changed)
gtk_widget_queue_resize (GTK_WIDGET (self));
else
gtk_widget_queue_draw (GTK_WIDGET (self));
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_PAINTABLE]);
+23 -26
View File
@@ -1844,19 +1844,30 @@ gtk_scrolled_window_measure (GtkWidget *widget,
* Now add to the requisition any additional space for surrounding scrollbars
* and the special scrollable border.
*/
if (policy_may_be_visible (priv->hscrollbar_policy))
if (orientation == GTK_ORIENTATION_HORIZONTAL && policy_may_be_visible (priv->hscrollbar_policy))
{
if (orientation == GTK_ORIENTATION_HORIZONTAL)
{
int min_scrollbar_width, nat_scrollbar_width;
int min_scrollbar_width, nat_scrollbar_width;
gtk_widget_measure (priv->hscrollbar, GTK_ORIENTATION_HORIZONTAL, -1,
&min_scrollbar_width, &nat_scrollbar_width,
NULL, NULL);
minimum_req = MAX (minimum_req, min_scrollbar_width + sborder.left + sborder.right);
natural_req = MAX (natural_req, nat_scrollbar_width + sborder.left + sborder.right);
}
else if (!priv->use_indicators && priv->hscrollbar_policy == GTK_POLICY_ALWAYS)
gtk_widget_measure (priv->hscrollbar, GTK_ORIENTATION_HORIZONTAL, -1,
&min_scrollbar_width, &nat_scrollbar_width,
NULL, NULL);
minimum_req = MAX (minimum_req, min_scrollbar_width + sborder.left + sborder.right);
natural_req = MAX (natural_req, nat_scrollbar_width + sborder.left + sborder.right);
}
else if (orientation == GTK_ORIENTATION_VERTICAL && policy_may_be_visible (priv->vscrollbar_policy))
{
int min_scrollbar_height, nat_scrollbar_height;
gtk_widget_measure (priv->vscrollbar, GTK_ORIENTATION_VERTICAL, -1,
&min_scrollbar_height, &nat_scrollbar_height,
NULL, NULL);
minimum_req = MAX (minimum_req, min_scrollbar_height + sborder.top + sborder.bottom);
natural_req = MAX (natural_req, nat_scrollbar_height + sborder.top + sborder.bottom);
}
if (!priv->use_indicators)
{
if (orientation == GTK_ORIENTATION_VERTICAL && priv->hscrollbar_policy == GTK_POLICY_ALWAYS)
{
int min_scrollbar_height, nat_scrollbar_height;
@@ -1867,21 +1878,7 @@ gtk_scrolled_window_measure (GtkWidget *widget,
minimum_req += min_scrollbar_height;
natural_req += nat_scrollbar_height;
}
}
if (policy_may_be_visible (priv->vscrollbar_policy))
{
if (orientation == GTK_ORIENTATION_VERTICAL)
{
int min_scrollbar_height, nat_scrollbar_height;
gtk_widget_measure (priv->vscrollbar, GTK_ORIENTATION_VERTICAL, -1,
&min_scrollbar_height, &nat_scrollbar_height,
NULL, NULL);
minimum_req = MAX (minimum_req, min_scrollbar_height + sborder.top + sborder.bottom);
natural_req = MAX (natural_req, nat_scrollbar_height + sborder.top + sborder.bottom);
}
else if (!priv->use_indicators && priv->vscrollbar_policy == GTK_POLICY_ALWAYS)
else if (orientation == GTK_ORIENTATION_HORIZONTAL && priv->vscrollbar_policy == GTK_POLICY_ALWAYS)
{
int min_scrollbar_width, nat_scrollbar_width;
+14 -2
View File
@@ -291,6 +291,7 @@ struct _GtkTextPrivate
guint propagate_text_width : 1;
guint text_handles_enabled : 1;
guint enable_undo : 1;
guint emoji_chooser_open : 1;
};
struct _GtkTextPasswordHint
@@ -3459,7 +3460,7 @@ gtk_text_grab_focus (GtkWidget *widget)
if (!GTK_WIDGET_CLASS (gtk_text_parent_class)->grab_focus (GTK_WIDGET (self)))
return FALSE;
if (priv->editable && !priv->in_click && !prev_focus_was_child)
if (priv->editable && !priv->in_click && !prev_focus_was_child && !priv->emoji_chooser_open)
{
g_object_get (gtk_widget_get_settings (widget),
"gtk-entry-select-on-focus",
@@ -7183,6 +7184,15 @@ gtk_text_get_tabs (GtkText *self)
return priv->tabs;
}
static void
emoji_chooser_closed (GtkWidget *chooser,
GtkText *text)
{
GtkTextPrivate *priv = gtk_text_get_instance_private (text);
priv->emoji_chooser_open = 1;
}
static void
emoji_picked (GtkEmojiChooser *chooser,
const char *text,
@@ -7208,6 +7218,7 @@ emoji_picked (GtkEmojiChooser *chooser,
static void
gtk_text_insert_emoji (GtkText *self)
{
GtkTextPrivate *priv = gtk_text_get_instance_private (self);
GtkWidget *chooser;
if (gtk_widget_get_ancestor (GTK_WIDGET (self), GTK_TYPE_EMOJI_CHOOSER) != NULL)
@@ -7221,10 +7232,11 @@ gtk_text_insert_emoji (GtkText *self)
gtk_widget_set_parent (chooser, GTK_WIDGET (self));
g_signal_connect (chooser, "emoji-picked", G_CALLBACK (emoji_picked), self);
g_signal_connect_swapped (chooser, "hide", G_CALLBACK (gtk_text_grab_focus_without_selecting), self);
g_signal_connect_swapped (chooser, "hide", G_CALLBACK (emoji_chooser_closed), self);
}
gtk_popover_popup (GTK_POPOVER (chooser));
priv->emoji_chooser_open = 1;
}
static void
+52 -4
View File
@@ -371,7 +371,9 @@ gtk_text_buffer_deserialize_text_plain (GdkContentDeserializer *deserializer)
buffer);
/* validates the stream */
converter = g_charset_converter_new ("utf-8", "utf-8", &error);
converter = g_charset_converter_new ("utf-8",
gdk_content_deserializer_get_user_data (deserializer),
&error);
if (converter == NULL)
{
gdk_content_deserializer_return_error (deserializer, error);
@@ -414,6 +416,23 @@ gtk_text_buffer_serialize_text_plain (GdkContentSerializer *serializer)
GtkTextBuffer *buffer;
GtkTextIter start, end;
char *str;
GOutputStream *filter;
GCharsetConverter *converter;
GError *error = NULL;
converter = g_charset_converter_new (gdk_content_serializer_get_user_data (serializer),
"utf-8",
&error);
if (converter == NULL)
{
gdk_content_serializer_return_error (serializer, error);
return;
}
g_charset_converter_set_use_fallback (converter, TRUE);
filter = g_converter_output_stream_new (gdk_content_serializer_get_output_stream (serializer),
G_CONVERTER (converter));
g_object_unref (converter);
buffer = g_value_get_object (gdk_content_serializer_get_value (serializer));
@@ -427,28 +446,57 @@ gtk_text_buffer_serialize_text_plain (GdkContentSerializer *serializer)
}
gdk_content_serializer_set_task_data (serializer, str, g_free);
g_output_stream_write_all_async (gdk_content_serializer_get_output_stream (serializer),
g_output_stream_write_all_async (filter,
str,
strlen (str),
gdk_content_serializer_get_priority (serializer),
gdk_content_serializer_get_cancellable (serializer),
gtk_text_buffer_serialize_text_plain_finish,
serializer);
g_object_unref (filter);
}
static void
gtk_text_buffer_register_serializers (void)
{
const char *charset;
gdk_content_register_deserializer ("text/plain;charset=utf-8",
GTK_TYPE_TEXT_BUFFER,
gtk_text_buffer_deserialize_text_plain,
NULL,
(gpointer) "utf-8",
NULL);
gdk_content_register_serializer (GTK_TYPE_TEXT_BUFFER,
"text/plain;charset=utf-8",
gtk_text_buffer_serialize_text_plain,
NULL,
(gpointer) "utf-8",
NULL);
gdk_content_register_deserializer ("text/plain",
GTK_TYPE_TEXT_BUFFER,
gtk_text_buffer_deserialize_text_plain,
(gpointer) "ASCII",
NULL);
gdk_content_register_serializer (GTK_TYPE_TEXT_BUFFER,
"text/plain",
gtk_text_buffer_serialize_text_plain,
(gpointer) "ASCII",
NULL);
if (!g_get_charset (&charset))
{
char *mime = g_strdup_printf ("text/plain;charset=%s", charset);
gdk_content_register_serializer (GTK_TYPE_TEXT_BUFFER,
mime,
gtk_text_buffer_serialize_text_plain,
(gpointer) charset,
NULL);
gdk_content_register_deserializer (mime,
GTK_TYPE_TEXT_BUFFER,
gtk_text_buffer_deserialize_text_plain,
(gpointer) charset,
NULL);
g_free (mime);
}
}
static void
+4 -97
View File
@@ -291,16 +291,6 @@ gtk_text_layout_new (void)
return g_object_new (GTK_TYPE_TEXT_LAYOUT, NULL);
}
static void
free_style_cache (GtkTextLayout *text_layout)
{
if (text_layout->one_style_cache)
{
gtk_text_attributes_unref (text_layout->one_style_cache);
text_layout->one_style_cache = NULL;
}
}
/*
* gtk_text_layout_set_buffer:
* @buffer: (nullable):
@@ -315,8 +305,6 @@ gtk_text_layout_set_buffer (GtkTextLayout *layout,
if (layout->buffer == buffer)
return;
free_style_cache (layout);
if (layout->buffer)
{
_gtk_text_btree_remove_view (_gtk_text_buffer_get_btree (layout->buffer),
@@ -515,7 +503,6 @@ gtk_text_layout_set_screen_width (GtkTextLayout *layout, int width)
{
g_return_if_fail (GTK_IS_TEXT_LAYOUT (layout));
g_return_if_fail (width >= 0);
g_return_if_fail (layout->wrap_loop_count == 0);
if (layout->screen_width == width)
return;
@@ -673,43 +660,6 @@ gtk_text_layout_cursors_changed (GtkTextLayout *layout,
gtk_text_layout_emit_changed (layout, y, old_height, new_height);
}
static void
invalidate_cached_style (GtkTextLayout *layout)
{
free_style_cache (layout);
}
/* These should be called around a loop which wraps a CONTIGUOUS bunch
* of display lines. If the lines arent contiguous you cant call
* these.
*/
void
gtk_text_layout_wrap_loop_start (GtkTextLayout *layout)
{
g_return_if_fail (GTK_IS_TEXT_LAYOUT (layout));
g_return_if_fail (layout->one_style_cache == NULL);
layout->wrap_loop_count += 1;
}
void
gtk_text_layout_wrap_loop_end (GtkTextLayout *layout)
{
g_return_if_fail (layout->wrap_loop_count > 0);
layout->wrap_loop_count -= 1;
if (layout->wrap_loop_count == 0)
{
/* We cache a some stuff if we're iterating over some lines wrapping
* them. This cleans it up.
*/
/* Nuke our cached style */
invalidate_cached_style (layout);
g_assert (layout->one_style_cache == NULL);
}
}
static void
gtk_text_layout_invalidate_all (GtkTextLayout *layout)
{
@@ -790,7 +740,6 @@ gtk_text_layout_invalidate (GtkTextLayout *layout,
GtkTextLine *last_line;
g_return_if_fail (GTK_IS_TEXT_LAYOUT (layout));
g_return_if_fail (layout->wrap_loop_count == 0);
/* Because we may be invalidating a mark, it's entirely possible
* that gtk_text_iter_equal (start, end) in which case we
@@ -1089,51 +1038,24 @@ gtk_text_layout_wrap (GtkTextLayout *layout,
/* If you get the style with get_style () you need to call
release_style () to free it. */
static GtkTextAttributes*
static GtkTextAttributes *
get_style (GtkTextLayout *layout,
GPtrArray *tags)
GPtrArray *tags)
{
GtkTextAttributes *style;
/* If we have the one-style cache, then it means
that we haven't seen a toggle since we filled in the
one-style cache.
*/
if (layout->one_style_cache != NULL)
{
gtk_text_attributes_ref (layout->one_style_cache);
return layout->one_style_cache;
}
g_assert (layout->one_style_cache == NULL);
/* No tags, use default style */
if (tags == NULL || tags->len == 0)
{
/* One ref for the return value, one ref for the
layout->one_style_cache reference */
gtk_text_attributes_ref (layout->default_style);
gtk_text_attributes_ref (layout->default_style);
layout->one_style_cache = layout->default_style;
return layout->default_style;
}
return gtk_text_attributes_ref (layout->default_style);
style = gtk_text_attributes_new ();
gtk_text_attributes_copy_values (layout->default_style,
style);
gtk_text_attributes_copy_values (layout->default_style, style);
_gtk_text_attributes_fill_from_tags (style, tags);
g_assert (style->refcount == 1);
/* Leave this style as the last one seen */
g_assert (layout->one_style_cache == NULL);
gtk_text_attributes_ref (style); /* ref held by layout->one_style_cache */
layout->one_style_cache = style;
/* Returning yet another refcount */
return style;
}
@@ -1176,8 +1098,6 @@ totally_invisible_line (GtkTextLayout *layout,
if (seg->byte_count <= 0 &&
seg->type == &gtk_text_toggle_on_type)
{
invalidate_cached_style (layout);
/* Bail out if an elision-unsetting tag begins */
if (seg->body.toggle.info->tag->priv->invisible_set &&
!seg->body.toggle.info->tag->priv->values->invisible)
@@ -1185,8 +1105,6 @@ totally_invisible_line (GtkTextLayout *layout,
}
else if (seg->type == &gtk_text_toggle_off_type)
{
invalidate_cached_style (layout);
/* Bail out if an elision-setting tag ends */
if (seg->body.toggle.info->tag->priv->invisible_set &&
seg->body.toggle.info->tag->priv->values->invisible)
@@ -2487,9 +2405,6 @@ gtk_text_layout_create_display (GtkTextLayout *layout,
else if (seg->type == &gtk_text_toggle_on_type ||
seg->type == &gtk_text_toggle_off_type)
{
/* Style may have changed, drop our
current cached style */
invalidate_cached_style (layout);
/* Add the tag only after we have seen some non-toggle non-mark segment,
* otherwise the tag is already accounted for by _gtk_text_btree_get_tags(). */
if (!initial_toggle_segments)
@@ -2621,10 +2536,6 @@ gtk_text_layout_create_display (GtkTextLayout *layout,
}
}
/* Free this if we aren't in a loop */
if (layout->wrap_loop_count == 0)
invalidate_cached_style (layout);
g_free (text);
pango_attr_list_unref (attrs);
if (tags != NULL)
@@ -4188,8 +4099,6 @@ gtk_text_layout_snapshot (GtkTextLayout *layout,
draw_selection_text = FALSE;
}
gtk_text_layout_wrap_loop_start (layout);
for (GtkTextLine *line = first_line;
line != NULL;
line = _gtk_text_line_next_excluding_last (line))
@@ -4318,8 +4227,6 @@ gtk_text_layout_snapshot (GtkTextLayout *layout,
break;
}
gtk_text_layout_wrap_loop_end (layout);
if (cursor_snapshot)
{
GskRenderNode *cursors;
-8
View File
@@ -124,14 +124,6 @@ struct _GtkTextLayout
PangoContext *ltr_context;
PangoContext *rtl_context;
/* A cache of one style; this is used to ensure
* we don't constantly regenerate the style
* over long runs with the same style. */
GtkTextAttributes *one_style_cache;
/* Whether we are allowed to wrap right now */
int wrap_loop_count;
/* Whether to show the insertion cursor */
guint cursor_visible : 1;
+4 -4
View File
@@ -13053,8 +13053,8 @@ gtk_widget_add_css_class (GtkWidget *widget,
g_return_if_fail (css_class[0] != '\0');
g_return_if_fail (css_class[0] != '.');
gtk_css_node_add_class (priv->cssnode, g_quark_from_string (css_class));
g_object_notify_by_pspec (G_OBJECT (widget), widget_props[PROP_CSS_CLASSES]);
if (gtk_css_node_add_class (priv->cssnode, g_quark_from_string (css_class)))
g_object_notify_by_pspec (G_OBJECT (widget), widget_props[PROP_CSS_CLASSES]);
}
/**
@@ -13083,8 +13083,8 @@ gtk_widget_remove_css_class (GtkWidget *widget,
if (!class_quark)
return;
gtk_css_node_remove_class (priv->cssnode, class_quark);
g_object_notify_by_pspec (G_OBJECT (widget), widget_props[PROP_CSS_CLASSES]);
if (gtk_css_node_remove_class (priv->cssnode, class_quark))
g_object_notify_by_pspec (G_OBJECT (widget), widget_props[PROP_CSS_CLASSES]);
}
/**
+6 -2
View File
@@ -6342,7 +6342,7 @@ unprefix_handle (const char *handle)
if (g_str_has_prefix (handle, "wayland:"))
return handle + strlen ("wayland:");
else if (g_str_has_prefix (handle, "x11:"))
return handle + strlen ("x1!:");
return handle + strlen ("x11:");
else
return handle;
}
@@ -6381,6 +6381,9 @@ gtk_window_export_handle (GtkWindow *window,
GtkWindowPrivate *priv = gtk_window_get_instance_private (window);
ExportHandleData *data;
if (G_UNLIKELY (!priv->surface))
return FALSE;
data = g_new (ExportHandleData, 1);
data->window = window;
data->callback = callback;
@@ -6397,7 +6400,8 @@ gtk_window_unexport_handle (GtkWindow *window,
{
GtkWindowPrivate *priv = gtk_window_get_instance_private (window);
gdk_toplevel_unexport_handle (GDK_TOPLEVEL (priv->surface), unprefix_handle (handle));
if (G_LIKELY (priv->surface))
gdk_toplevel_unexport_handle (GDK_TOPLEVEL (priv->surface), unprefix_handle (handle));
}
static GtkPointerFocus *
+1 -1
View File
@@ -1090,7 +1090,7 @@ gtk_settings_schemas = [
'org.gtk.gtk4.Settings.EmojiChooser.gschema.xml',
'org.gtk.gtk4.Settings.Debug.gschema.xml',
]
install_data(gtk_settings_schemas, install_dir: gtk_schemasdir)
install_data(gtk_settings_schemas, install_dir: gtk_schemasdir, install_tag: 'runtime')
gnome.compile_schemas(depend_files: files(gtk_settings_schemas), build_by_default: true)
gtk_schema_build_dir = meson.current_build_dir()
+5 -2
View File
@@ -972,6 +972,8 @@ devmode_from_settings (GtkPrintSettings *settings,
const char *extras_base64;
gsize extras_len;
const char *val;
gunichar2 *device_name;
glong device_name_len;
/* If we already provided a valid hDevMode, don't initialize a new one; just lock the one we have */
if (hDevMode)
@@ -996,8 +998,9 @@ devmode_from_settings (GtkPrintSettings *settings,
devmode->dmSpecVersion = DM_SPECVERSION;
devmode->dmSize = sizeof (DEVMODEW);
gunichar2 *device_name = g_utf8_to_utf16 (gtk_print_settings_get (settings, "win32-devmode-name"), -1, NULL, NULL, NULL);
memcpy (devmode->dmDeviceName, device_name, CCHDEVICENAME);
device_name = g_utf8_to_utf16 (gtk_print_settings_get (settings, "win32-devmode-name"), -1, NULL, &device_name_len, NULL);
if (device_name && device_name_len)
memcpy (devmode->dmDeviceName, device_name, MIN (device_name_len, CCHDEVICENAME) * sizeof (gunichar2));
g_free (device_name);
+3 -2
View File
@@ -889,8 +889,6 @@ gtk_print_unix_dialog_init (GtkPrintUnixDialog *dialog)
selection = G_LIST_MODEL (gtk_single_selection_new (NULL));
gtk_single_selection_set_autoselect (GTK_SINGLE_SELECTION (selection), FALSE);
g_signal_connect (selection, "items-changed", G_CALLBACK (printer_added_cb), dialog);
g_signal_connect_swapped (selection, "notify::selected", G_CALLBACK (selected_printer_changed), dialog);
gtk_single_selection_set_model (GTK_SINGLE_SELECTION (selection), filtered);
@@ -898,6 +896,9 @@ gtk_print_unix_dialog_init (GtkPrintUnixDialog *dialog)
gtk_column_view_set_model (GTK_COLUMN_VIEW (dialog->printer_list), GTK_SELECTION_MODEL (selection));
g_signal_connect (selection, "items-changed", G_CALLBACK (printer_added_cb), dialog);
g_signal_connect_swapped (selection, "notify::selected", G_CALLBACK (selected_printer_changed), dialog);
g_object_unref (selection);
gtk_print_load_custom_papers (dialog->custom_paper_list);
+2
View File
@@ -2,6 +2,8 @@
<interface domain="gtk40">
<template class="GtkFontChooserDialog" parent="GtkDialog">
<property name="title" translatable="yes">Select Font</property>
<property name="default-width">400</property>
<property name="default-height">500</property>
<style>
<class name="fontchooser"/>
</style>
-2
View File
@@ -144,8 +144,6 @@
<property name="column-spacing">6</property>
<child>
<object class="GtkScrolledWindow">
<property name="width-request">400</property>
<property name="height-request">300</property>
<property name="hexpand">1</property>
<property name="vexpand">1</property>
<property name="hscrollbar-policy">2</property>
+1 -1
View File
@@ -1,5 +1,5 @@
project('gtk', 'c',
version: '4.16.3',
version: '4.16.6',
default_options: [
'buildtype=debugoptimized',
'warning_level=1',
+44 -38
View File
@@ -36,7 +36,7 @@ struct _GtkGstPaintable
double pixel_aspect_ratio;
graphene_rect_t viewport;
GdkGLContext *context;
GdkSurface *surface;
};
struct _GtkGstPaintableClass
@@ -133,42 +133,66 @@ gtk_gst_paintable_video_renderer_create_video_sink (GstPlayerVideoRenderer *rend
{
GtkGstPaintable *self = GTK_GST_PAINTABLE (renderer);
GstElement *sink;
GdkGLContext *ctx;
gboolean uses_gl;
GdkDisplay *display;
GdkGLContext *context;
GError *error = NULL;
if (self->surface)
display = gdk_surface_get_display (self->surface);
else
display = gdk_display_get_default ();
context = gdk_display_create_gl_context (display, &error);
if (context == NULL)
{
GST_INFO ("failed to create GDK GL context: %s", error->message);
g_error_free (error);
}
else if (!gdk_gl_context_realize (context, &error))
{
GST_INFO ("failed to realize GDK GL context: %s", error->message);
g_clear_object (&context);
g_error_free (error);
}
sink = g_object_new (GTK_TYPE_GST_SINK,
"paintable", self,
"gl-context", self->context,
"gl-context", context,
"display", display,
NULL);
if (self->context != NULL)
g_object_get (GTK_GST_SINK (sink), "gl-context", &ctx, NULL);
g_object_get (GTK_GST_SINK (sink), "uses-gl", &uses_gl, NULL);
if (self->context != NULL && ctx != NULL)
if (uses_gl)
{
GstElement *glsinkbin = gst_element_factory_make ("glsinkbin", NULL);
GstElement *glsinkbin;
if (!glsinkbin)
return NULL;
glsinkbin = gst_element_factory_make ("glsinkbin", NULL);
g_object_set (glsinkbin, "sink", sink, NULL);
g_object_unref (ctx);
return glsinkbin;
if (glsinkbin)
{
g_object_set (glsinkbin, "sink", sink, NULL);
sink = glsinkbin;
}
}
else
{
if (self->context != NULL)
if (context != NULL)
{
g_warning ("GstGL context creation failed, falling back to non-GL playback");
g_object_unref (sink);
sink = g_object_new (GTK_TYPE_GST_SINK,
"paintable", self,
"display", display,
NULL);
}
return sink;
}
g_clear_object (&context);
return sink;
}
static void
@@ -216,26 +240,10 @@ void
gtk_gst_paintable_realize (GtkGstPaintable *self,
GdkSurface *surface)
{
GError *error = NULL;
if (self->context)
if (self->surface)
return;
self->context = gdk_surface_create_gl_context (surface, &error);
if (self->context == NULL)
{
GST_INFO ("failed to create GDK GL context: %s", error->message);
g_error_free (error);
return;
}
if (!gdk_gl_context_realize (self->context, &error))
{
GST_INFO ("failed to realize GDK GL context: %s", error->message);
g_clear_object (&self->context);
g_error_free (error);
return;
}
self->surface = surface;
}
void
@@ -246,11 +254,9 @@ gtk_gst_paintable_unrealize (GtkGstPaintable *self,
* - track how often we were realized with that surface
* - track alternate surfaces
*/
if (self->context == NULL)
return;
if (gdk_gl_context_get_surface (self->context) == surface)
g_clear_object (&self->context);
if (self->surface == surface)
self->surface = NULL;
}
static void
+113 -69
View File
@@ -59,6 +59,8 @@ enum {
PROP_0,
PROP_PAINTABLE,
PROP_GL_CONTEXT,
PROP_USES_GL,
PROP_DISPLAY,
N_PROPS,
};
@@ -68,20 +70,25 @@ GST_DEBUG_CATEGORY (gtk_debug_gst_sink);
#define FORMATS "{ BGRA, ARGB, RGBA, ABGR, RGB, BGR }"
#define NOGL_CAPS GST_VIDEO_CAPS_MAKE (FORMATS)
#define MEMORY_TEXTURE_CAPS GST_VIDEO_CAPS_MAKE (FORMATS)
#define GL_TEXTURE_CAPS \
"video/x-raw(" GST_CAPS_FEATURE_MEMORY_GL_MEMORY "), " \
"format = (string) RGBA, " \
"width = " GST_VIDEO_SIZE_RANGE ", " \
"height = " GST_VIDEO_SIZE_RANGE ", " \
"framerate = " GST_VIDEO_FPS_RANGE ", " \
"texture-target = (string) 2D"
#define DMABUF_TEXTURE_CAPS GST_VIDEO_DMA_DRM_CAPS_MAKE
static GstStaticPadTemplate gtk_gst_sink_template =
GST_STATIC_PAD_TEMPLATE ("sink",
GST_PAD_SINK,
GST_PAD_ALWAYS,
GST_STATIC_CAPS (GST_VIDEO_DMA_DRM_CAPS_MAKE "; "
"video/x-raw(" GST_CAPS_FEATURE_MEMORY_GL_MEMORY "), "
"format = (string) RGBA, "
"width = " GST_VIDEO_SIZE_RANGE ", "
"height = " GST_VIDEO_SIZE_RANGE ", "
"framerate = " GST_VIDEO_FPS_RANGE ", "
"texture-target = (string) 2D"
"; " NOGL_CAPS)
GST_STATIC_CAPS(DMABUF_TEXTURE_CAPS "; "
GL_TEXTURE_CAPS "; "
MEMORY_TEXTURE_CAPS)
);
#undef GST_VIDEO_DMA_DRM_CAPS_MAKE_STR
@@ -204,34 +211,43 @@ gtk_gst_sink_get_caps (GstBaseSink *bsink,
GstCaps *filter)
{
GtkGstSink *self = GTK_GST_SINK (bsink);
GstCaps *tmp;
GstCaps *result;
GstCaps *unfiltered, *tmp, *result;
if (self->gst_context)
{
GdkDisplay *display = gdk_gl_context_get_display (self->gdk_context);
GdkDmabufFormats *formats = gdk_display_get_dmabuf_formats (display);
unfiltered = gst_caps_new_empty ();
tmp = gst_pad_get_pad_template_caps (GST_BASE_SINK_PAD (bsink));
tmp = gst_caps_make_writable (tmp);
add_drm_formats_and_modifiers (tmp, formats);
}
else
if (self->gdk_display)
{
tmp = gst_caps_from_string (NOGL_CAPS);
GdkDmabufFormats *formats = gdk_display_get_dmabuf_formats (self->gdk_display);
if (formats && gdk_dmabuf_formats_get_n_formats (formats) > 0)
{
tmp = gst_caps_from_string (DMABUF_TEXTURE_CAPS);
add_drm_formats_and_modifiers (tmp, formats);
gst_caps_append (unfiltered, tmp);
}
}
GST_DEBUG_OBJECT (self, "advertising own caps %" GST_PTR_FORMAT, tmp);
if (self->gdk_context)
{
tmp = gst_caps_from_string (GL_TEXTURE_CAPS);
gst_caps_append (unfiltered, tmp);
}
tmp = gst_caps_from_string (MEMORY_TEXTURE_CAPS);
gst_caps_append (unfiltered, tmp);
GST_DEBUG_OBJECT (self, "advertising own caps %" GST_PTR_FORMAT, unfiltered);
if (filter)
{
GST_DEBUG_OBJECT (self, "intersecting with filter caps %" GST_PTR_FORMAT, filter);
result = gst_caps_intersect_full (filter, tmp, GST_CAPS_INTERSECT_FIRST);
gst_caps_unref (tmp);
result = gst_caps_intersect_full (filter, unfiltered, GST_CAPS_INTERSECT_FIRST);
gst_caps_unref (unfiltered);
}
else
{
result = tmp;
result = unfiltered;
}
GST_DEBUG_OBJECT (self, "returning caps: %" GST_PTR_FORMAT, result);
@@ -299,9 +315,6 @@ gtk_gst_sink_propose_allocation (GstBaseSink *bsink,
gboolean need_pool;
GstVideoInfo info;
if (!self->gst_context)
return FALSE;
gst_query_parse_allocation (query, &caps, &need_pool);
if (caps == NULL)
@@ -316,47 +329,49 @@ gtk_gst_sink_propose_allocation (GstBaseSink *bsink,
return TRUE;
}
if (!gst_caps_features_contains (gst_caps_get_features (caps, 0), GST_CAPS_FEATURE_MEMORY_GL_MEMORY))
return FALSE;
if (!gst_video_info_from_caps (&info, caps))
if (gst_caps_features_contains (gst_caps_get_features (caps, 0), GST_CAPS_FEATURE_MEMORY_GL_MEMORY))
{
GST_DEBUG_OBJECT (self, "invalid caps specified");
return FALSE;
}
/* the normal size of a frame */
size = info.size;
if (need_pool)
{
GST_DEBUG_OBJECT (self, "create new pool");
pool = gst_gl_buffer_pool_new (self->gst_context);
config = gst_buffer_pool_get_config (pool);
gst_buffer_pool_config_set_params (config, caps, size, 0, 0);
gst_buffer_pool_config_add_option (config, GST_BUFFER_POOL_OPTION_GL_SYNC_META);
if (!gst_buffer_pool_set_config (pool, config))
if (!gst_video_info_from_caps (&info, caps))
{
GST_DEBUG_OBJECT (bsink, "failed setting config");
gst_object_unref (pool);
GST_DEBUG_OBJECT (self, "invalid caps specified");
return FALSE;
}
/* the normal size of a frame */
size = info.size;
if (need_pool)
{
GST_DEBUG_OBJECT (self, "create new pool");
pool = gst_gl_buffer_pool_new (self->gst_context);
config = gst_buffer_pool_get_config (pool);
gst_buffer_pool_config_set_params (config, caps, size, 0, 0);
gst_buffer_pool_config_add_option (config, GST_BUFFER_POOL_OPTION_GL_SYNC_META);
if (!gst_buffer_pool_set_config (pool, config))
{
GST_DEBUG_OBJECT (bsink, "failed setting config");
gst_object_unref (pool);
return FALSE;
}
}
/* we need at least 2 buffer because we hold on to the last one */
gst_query_add_allocation_pool (query, pool, size, 2, 0);
if (pool)
gst_object_unref (pool);
/* we also support various metadata */
gst_query_add_allocation_meta (query, GST_VIDEO_META_API_TYPE, 0);
if (self->gst_context->gl_vtable->FenceSync)
gst_query_add_allocation_meta (query, GST_GL_SYNC_META_API_TYPE, 0);
return TRUE;
}
/* we need at least 2 buffer because we hold on to the last one */
gst_query_add_allocation_pool (query, pool, size, 2, 0);
if (pool)
gst_object_unref (pool);
/* we also support various metadata */
gst_query_add_allocation_meta (query, GST_VIDEO_META_API_TYPE, 0);
if (self->gst_context->gl_vtable->FenceSync)
gst_query_add_allocation_meta (query, GST_GL_SYNC_META_API_TYPE, 0);
return TRUE;
return FALSE;
}
static GdkMemoryFormat
@@ -400,6 +415,7 @@ gtk_gst_sink_texture_from_buffer (GtkGstSink *self,
graphene_rect_t *viewport)
{
GstVideoFrame *frame = g_new (GstVideoFrame, 1);
GstMemory *mem;
GdkTexture *texture;
viewport->origin.x = 0;
@@ -407,7 +423,9 @@ gtk_gst_sink_texture_from_buffer (GtkGstSink *self,
viewport->size.width = GST_VIDEO_INFO_WIDTH (&self->v_info);
viewport->size.height = GST_VIDEO_INFO_HEIGHT (&self->v_info);
if (gst_is_dmabuf_memory (gst_buffer_peek_memory (buffer, 0)))
mem = gst_buffer_peek_memory (buffer, 0);
if (gst_is_dmabuf_memory (mem))
{
GdkDmabufTextureBuilder *builder = NULL;
const GstVideoMeta *vmeta = gst_buffer_get_video_meta (buffer);
@@ -418,11 +436,10 @@ gtk_gst_sink_texture_from_buffer (GtkGstSink *self,
g_clear_pointer (&frame, g_free);
g_return_val_if_fail (vmeta, NULL);
g_return_val_if_fail (self->gdk_context, NULL);
g_return_val_if_fail (self->drm_info.drm_fourcc != DRM_FORMAT_INVALID, NULL);
builder = gdk_dmabuf_texture_builder_new ();
gdk_dmabuf_texture_builder_set_display (builder, gdk_gl_context_get_display (self->gdk_context));
gdk_dmabuf_texture_builder_set_display (builder, self->gdk_display);
gdk_dmabuf_texture_builder_set_fourcc (builder, self->drm_info.drm_fourcc);
gdk_dmabuf_texture_builder_set_modifier (builder, self->drm_info.drm_modifier);
gdk_dmabuf_texture_builder_set_width (builder, vmeta->width);
@@ -432,7 +449,6 @@ gtk_gst_sink_texture_from_buffer (GtkGstSink *self,
for (i = 0; i < vmeta->n_planes; i++)
{
GstMemory *mem;
guint mem_idx, length;
gsize skip;
@@ -460,12 +476,15 @@ gtk_gst_sink_texture_from_buffer (GtkGstSink *self,
&error);
g_object_unref (builder);
if (!texture)
GST_ERROR_OBJECT (self, "Failed to create dmabuf texture: %s", error->message);
{
GST_ERROR_OBJECT (self, "Failed to create dmabuf texture: %s", error->message);
g_error_free (error);
}
*pixel_aspect_ratio = ((double) GST_VIDEO_INFO_PAR_N (&self->v_info) /
(double) GST_VIDEO_INFO_PAR_D (&self->v_info));
}
else if (self->gdk_context &&
else if (gst_is_gl_memory (mem) &&
gst_video_frame_map (frame, &self->v_info, buffer, GST_MAP_READ | GST_MAP_GL))
{
GstGLSyncMeta *sync_meta;
@@ -764,6 +783,11 @@ gtk_gst_sink_set_property (GObject *object,
self->gdk_context = g_value_dup_object (value);
if (self->gdk_context != NULL && !gtk_gst_sink_initialize_gl (self))
g_clear_object (&self->gdk_context);
self->uses_gl = self->gdk_context != NULL;
break;
case PROP_DISPLAY:
self->gdk_display = g_value_dup_object (value);
break;
default:
@@ -785,10 +809,19 @@ gtk_gst_sink_get_property (GObject *object,
case PROP_PAINTABLE:
g_value_set_object (value, self->paintable);
break;
case PROP_GL_CONTEXT:
g_value_set_object (value, self->gdk_context);
break;
case PROP_DISPLAY:
g_value_set_object (value, self->gdk_display);
break;
case PROP_USES_GL:
g_value_set_boolean (value, self->uses_gl);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -805,6 +838,7 @@ gtk_gst_sink_dispose (GObject *object)
g_clear_object (&self->gst_gdk_context);
g_clear_object (&self->gst_display);
g_clear_object (&self->gdk_context);
g_clear_object (&self->gdk_display);
G_OBJECT_CLASS (gtk_gst_sink_parent_class)->dispose (object);
}
@@ -849,6 +883,16 @@ gtk_gst_sink_class_init (GtkGstSinkClass * klass)
GDK_TYPE_GL_CONTEXT,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
properties[PROP_DISPLAY] =
g_param_spec_object ("display", NULL, NULL,
GDK_TYPE_DISPLAY,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
properties[PROP_USES_GL] =
g_param_spec_boolean ("uses-gl", NULL, NULL,
TRUE,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
g_object_class_install_properties (gobject_class, N_PROPS, properties);
gst_element_class_set_metadata (gstelement_class,
+8 -6
View File
@@ -49,12 +49,14 @@ struct _GtkGstSink
GstVideoInfo v_info;
GstVideoInfoDmaDrm drm_info;
GtkGstPaintable * paintable;
GdkGLContext * gdk_context;
GstGLDisplay * gst_display;
GstGLContext * gst_gdk_context;
GstGLContext * gst_context;
GdkColorState * color_state;
GtkGstPaintable *paintable;
GdkDisplay *gdk_display;
GdkGLContext *gdk_context;
GstGLDisplay *gst_display;
GstGLContext *gst_gdk_context;
GstGLContext *gst_context;
GdkColorState *color_state;
gboolean uses_gl;
};
struct _GtkGstSinkClass
+5 -3
View File
@@ -3545,10 +3545,12 @@ avahi_service_browser_new_cb (GObject *source_object,
{
/*
* The creation of ServiceBrowser fails with G_IO_ERROR_DBUS_ERROR
* if Avahi is disabled.
* or a GDBusError such as G_DBUS_ERROR_SERVICE_UNKNOWN if Avahi is disabled.
*/
if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_DBUS_ERROR) &&
!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_DBUS_ERROR) ||
error->domain == G_DBUS_ERROR)
g_debug ("%s #%d: %s", g_quark_to_string (error->domain), error->code, error->message);
else if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
g_warning ("%s", error->message);
g_error_free (error);
}
+149 -143
View File
@@ -1,9 +1,10 @@
#
msgid ""
msgstr ""
"Project-Id-Version: gtk main 414beta\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n"
"POT-Creation-Date: 2024-09-04 13:21+0000\n"
"PO-Revision-Date: 2024-09-05 13:01+0300\n"
"POT-Creation-Date: 2024-10-18 09:17+0000\n"
"PO-Revision-Date: 2024-10-24 13:01+0300\n"
"Last-Translator: Yuras Shumovich <shumovichy@gmail.com>\n"
"Language-Team: Belarusian\n"
"Language: be\n"
@@ -66,31 +67,31 @@ msgstr "Немагчыма падаць змесціва як %s"
msgid "The current backend does not support OpenGL"
msgstr "Бягучы рухавік не падтрымлівае OpenGL"
#: gdk/gdkdisplay.c:1315 gdk/gdkvulkancontext.c:1633
#: gdk/gdkdisplay.c:1317 gdk/gdkvulkancontext.c:1668
msgid "Vulkan support disabled via GDK_DISABLE"
msgstr "Падтрымка Vulkan адключана праз GDK_DISABLE"
#: gdk/gdkdisplay.c:1369
#: gdk/gdkdisplay.c:1371
msgid "OpenGL support disabled via GDK_DISABLE"
msgstr "Падтрымка OpenGL адключана праз GDK_DISABLE"
#: gdk/gdkdisplay.c:1683
#: gdk/gdkdisplay.c:1685
msgid "No EGL configuration available"
msgstr "Няма даступных канфігурацый EGL"
#: gdk/gdkdisplay.c:1691
#: gdk/gdkdisplay.c:1693
msgid "Failed to get EGL configurations"
msgstr "Не ўдалося атрымаць канфігурацыю EGL"
#: gdk/gdkdisplay.c:1721
#: gdk/gdkdisplay.c:1723
msgid "No EGL configuration with required features found"
msgstr "Не знойдзена канфігурацый EGL з патрэбнымі функцыямі"
#: gdk/gdkdisplay.c:1728
#: gdk/gdkdisplay.c:1730
msgid "No perfect EGL configuration found"
msgstr "Ідэальная канфігурацыя EGL не знойзена"
#: gdk/gdkdisplay.c:1770
#: gdk/gdkdisplay.c:1772
#, c-format
msgid "EGL implementation is missing extension %s"
msgid_plural "EGL implementation is missing %2$d extensions: %1$s"
@@ -98,23 +99,23 @@ msgstr[0] "У рэалізацыі GL адсутнічае %2$d пашырэнн
msgstr[1] "У рэалізацыі GL адсутнічае %2$d пашырэнні: %1$s"
msgstr[2] "У рэалізацыі GL адсутнічае %2$d пашырэнняў: %1$s"
#: gdk/gdkdisplay.c:1819
#: gdk/gdkdisplay.c:1821
msgid "libEGL not available in this sandbox"
msgstr "libEGL недаступна ў гэтай «пясочніцы»"
#: gdk/gdkdisplay.c:1820
#: gdk/gdkdisplay.c:1822
msgid "libEGL not available"
msgstr "libEGL недаступна"
#: gdk/gdkdisplay.c:1830
#: gdk/gdkdisplay.c:1832
msgid "Failed to create EGL display"
msgstr "Не ўдалося стварыць дысплэй EGL"
#: gdk/gdkdisplay.c:1839
#: gdk/gdkdisplay.c:1841
msgid "Could not initialize EGL display"
msgstr "Не ўдалося ініцыялізаваць дысплэй EGL"
#: gdk/gdkdisplay.c:1849
#: gdk/gdkdisplay.c:1851
#, c-format
msgid "EGL version %d.%d is too old. GTK requires %d.%d"
msgstr "Версія EGL %d.%d занадта старая. Для GTK патрабуецца %d.%d"
@@ -131,9 +132,9 @@ msgstr "Сумяшчальныя фарматы для перадачы змес
msgid "No GL API allowed."
msgstr "Няма дазволеных GL API."
#: gdk/gdkglcontext.c:455 gdk/win32/gdkglcontext-win32-wgl.c:694
#: gdk/win32/gdkglcontext-win32-wgl.c:837
#: gdk/win32/gdkglcontext-win32-wgl.c:881 gdk/x11/gdkglcontext-glx.c:697
#: gdk/gdkglcontext.c:455 gdk/win32/gdkglcontext-win32-wgl.c:762
#: gdk/win32/gdkglcontext-win32-wgl.c:905
#: gdk/win32/gdkglcontext-win32-wgl.c:949 gdk/x11/gdkglcontext-glx.c:697
msgid "Unable to create a GL context"
msgstr "Немагчыма стварыць кантэкст GL"
@@ -163,7 +164,7 @@ msgstr "Спроба выкарыстаць %s, але ўжо выкарысто
msgid "Trying to use %s, but it is disabled via GDK_DISABLE"
msgstr "Спроба выкарыстаць %s, але адключана праз GDK_DISABLE"
#: gdk/gdktexture.c:661
#: gdk/gdktexture.c:672
msgid "Unknown image format."
msgstr "Невядомы фармат выявы."
@@ -592,8 +593,8 @@ msgstr "Не ўдалося загрузіць даныя TIFF"
msgid "Reading data failed at row %d"
msgstr "Не ўдалося прачытаць даныя ў радку %d"
#: gdk/macos/gdkmacospasteboard.c:211 gdk/wayland/gdkclipboard-wayland.c:238
#: gdk/wayland/gdkdrop-wayland.c:205 gdk/wayland/gdkprimary-wayland.c:337
#: gdk/macos/gdkmacospasteboard.c:211 gdk/wayland/gdkclipboard-wayland.c:244
#: gdk/wayland/gdkdrop-wayland.c:205 gdk/wayland/gdkprimary-wayland.c:343
#: gdk/win32/gdkdrop-win32.c:1018 gdk/win32/gdkdrop-win32.c:1067
#: gdk/x11/gdkclipboard-x11.c:799 gdk/x11/gdkdrop-x11.c:235
msgid "No compatible transfer format found"
@@ -743,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:624
#: gdk/win32/gdkglcontext-win32-wgl.c:681
msgid "No GL implementation is available"
msgstr "Няма даступных рэалізацый GL"
#: gdk/win32/gdkglcontext-win32-wgl.c:703
#: gdk/win32/gdkglcontext-win32-wgl.c:771
#, 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:721
#: gdk/win32/gdkglcontext-win32-wgl.c:789
#, c-format
msgid "GL implementation cannot share GL contexts"
msgstr "Рэалізацыя GL не можа абагуліць кантэкст GL"
#: gdk/win32/gdkglcontext-win32-wgl.c:1001
#: gdk/win32/gdkglcontext-win32-wgl.c:1069
msgid "No available configurations for the given pixel format"
msgstr "Для ўказанага фармату пікселя няма даступных канфігурацый"
@@ -872,7 +873,7 @@ msgstr ""
msgid "OpenGL ES 3.0 is not supported by this renderer."
msgstr ""
#: gsk/gpu/gsknglrenderer.c:68
#: gsk/gpu/gsknglrenderer.c:69
msgid "OpenGL 3.3 required"
msgstr "Патрабуецца OpenGL 3.3"
@@ -1853,7 +1854,7 @@ msgstr "Тэкст можа не паказвацца ўнутры <%s>"
#. * first day of the week to calendar:week_start:1 if you want Monday
#. * to be the first day of the week, and so on.
#.
#: gtk/gtkcalendar.c:666
#: gtk/gtkcalendar.c:670
msgid "calendar:week_start:0"
msgstr "calendar:week_start:1"
@@ -1867,21 +1868,10 @@ msgstr "calendar:week_start:1"
#. * text direction of RTL and specify "calendar:YM", then the year
#. * will appear to the right of the month.
#.
#: gtk/gtkcalendar.c:817
#: gtk/gtkcalendar.c:821
msgid "calendar:MY"
msgstr "calendar:MY"
#. Translators: This dictates how the year is displayed in
#. * gtkcalendar widget. See strftime() manual for the format.
#. * Use only ASCII in the translation.
#. *
#. * "%Y" is appropriate for most locales.
#.
#: gtk/gtkcalendar.c:1002
msgctxt "calendar year format"
msgid "%Y"
msgstr "%Y"
#. Translators: this defines whether the day numbers should use
#. * localized digits or the ones used in English (0123...).
#. *
@@ -1892,12 +1882,23 @@ msgstr "%Y"
#. * digits. That needs support from your system and locale definition
#. * too.
#.
#: gtk/gtkcalendar.c:1039
#: gtk/gtkcalendar.c:1002
#, c-format
msgctxt "calendar:day:digits"
msgid "%d"
msgstr "%Id"
#. Translators: This dictates how the year is displayed in
#. * gtkcalendar widget. See strftime() manual for the format.
#. * Use only ASCII in the translation.
#. *
#. * "%Y" is appropriate for most locales.
#.
#: gtk/gtkcalendar.c:1106
msgctxt "calendar year format"
msgid "%Y"
msgstr "%Y"
#. Translators: this defines whether the week numbers should use
#. * localized digits or the ones used in English (0123...).
#. *
@@ -1906,7 +1907,7 @@ msgstr "%Id"
#. * Note that translating this doesn't guarantee that you get localized
#. * digits. That needs support from your system and locale definition
#. * too.
#: gtk/gtkcalendar.c:1104
#: gtk/gtkcalendar.c:1152
#, c-format
msgctxt "calendar:week:digits"
msgid "%d"
@@ -2175,7 +2176,7 @@ msgid "Margins from Printer…"
msgstr "Палі з прынтара…"
#. And show the custom paper dialog
#: gtk/print/gtkcustompaperunixdialog.c:377 gtk/print/gtkprintunixdialog.c:2970
#: gtk/print/gtkcustompaperunixdialog.c:377 gtk/print/gtkprintunixdialog.c:2975
msgid "Manage Custom Sizes"
msgstr "Кіраванне адвольнымі памерамі"
@@ -2291,7 +2292,7 @@ msgid "A file with that name already exists"
msgstr "Файл з такой назвай ужо існуе"
#: gtk/gtkfilechoosernative.c:520 gtk/gtkfilechoosernative.c:600
#: gtk/gtkfilechooserwidget.c:1213 gtk/gtkfilechooserwidget.c:5014
#: gtk/gtkfilechooserwidget.c:1213 gtk/gtkfilechooserwidget.c:5017
#: gtk/gtkfiledialog.c:840 gtk/gtkmessagedialog.c:170
#: gtk/gtkmessagedialog.c:179 gtk/gtkmountoperation.c:608
#: gtk/print/gtkpagesetupunixdialog.c:282 gtk/print/gtkprintbackend.c:638
@@ -2384,7 +2385,7 @@ msgid "If you delete an item, it will be permanently lost."
msgstr "Калі выдаліць гэты элемент, ён будзе назаўсёды страчаны."
#: gtk/gtkfilechooserwidget.c:1213 gtk/gtkfilechooserwidget.c:1815
#: gtk/gtklabel.c:5883 gtk/gtktext.c:6334 gtk/gtktextview.c:9237
#: gtk/gtklabel.c:5881 gtk/gtktext.c:6334 gtk/gtktextview.c:9237
msgid "_Delete"
msgstr "Вы_даліць"
@@ -2447,7 +2448,7 @@ msgid "Home"
msgstr "Хатняя папка"
#. this is the header for the location column in the print dialog
#: gtk/gtkfilechooserwidget.c:2195 gtk/gtkfilechooserwidget.c:7436
#: gtk/gtkfilechooserwidget.c:2195 gtk/gtkfilechooserwidget.c:7439
#: gtk/inspector/css-node-tree.ui:76 gtk/print/ui/gtkprintunixdialog.ui:111
msgid "Location"
msgstr "Размяшчэнне"
@@ -2470,8 +2471,8 @@ msgstr "Пошук"
msgid "Enter location or URL"
msgstr "Увядзіце размяшчэнне або URL"
#: gtk/gtkfilechooserwidget.c:3444 gtk/gtkfilechooserwidget.c:5801
#: gtk/gtkfilechooserwidget.c:7458
#: gtk/gtkfilechooserwidget.c:3444 gtk/gtkfilechooserwidget.c:5804
#: gtk/gtkfilechooserwidget.c:7461
msgid "Modified"
msgstr "Зменена"
@@ -2554,12 +2555,12 @@ msgstr "Прэзентацыя"
msgid "Spreadsheet"
msgstr "Табліца"
#: gtk/gtkfilechooserwidget.c:5006 gtk/print/gtkprintunixdialog.c:673
#: gtk/gtkfilechooserwidget.c:5009 gtk/print/gtkprintunixdialog.c:673
#, c-format
msgid "A file named “%s” already exists. Do you want to replace it?"
msgstr "Файл «%s» ужо існуе. Хочаце яго замяніць?"
#: gtk/gtkfilechooserwidget.c:5008 gtk/print/gtkprintunixdialog.c:677
#: gtk/gtkfilechooserwidget.c:5011 gtk/print/gtkprintunixdialog.c:677
#, c-format
msgid ""
"The file already exists in “%s”. Replacing it will overwrite its contents."
@@ -2567,47 +2568,47 @@ msgstr ""
"Такі файл ужо існуе ў «%s». Калі яго замяніць, змесціва файла перапішацца "
"новым."
#: gtk/gtkfilechooserwidget.c:5014 gtk/print/gtkprintunixdialog.c:685
#: gtk/gtkfilechooserwidget.c:5017 gtk/print/gtkprintunixdialog.c:685
msgid "_Replace"
msgstr "_Замяніць"
#: gtk/gtkfilechooserwidget.c:5169
#: gtk/gtkfilechooserwidget.c:5172
msgid "You do not have access to the specified folder."
msgstr "У вас няма правоў доступу да вызначанай папкі."
#: gtk/gtkfilechooserwidget.c:5748
#: gtk/gtkfilechooserwidget.c:5751
msgid "Could not send the search request"
msgstr "Не ўдалося адправіць пошукавы запыт"
#: gtk/gtkfilechooserwidget.c:6029
#: gtk/gtkfilechooserwidget.c:6032
msgid "Accessed"
msgstr "Доступ"
#: gtk/gtkfilechooserwidget.c:7414
#: gtk/gtkfilechooserwidget.c:7417
msgid "_Size"
msgstr "_Памер"
#: gtk/gtkfilechooserwidget.c:7418
#: gtk/gtkfilechooserwidget.c:7421
msgid "T_ype"
msgstr "_Тып"
#: gtk/gtkfilechooserwidget.c:7422
#: gtk/gtkfilechooserwidget.c:7425
msgid "_Time"
msgstr "_Час"
#: gtk/gtkfilechooserwidget.c:7428 gtk/gtkplacessidebar.c:2306
#: gtk/gtkfilechooserwidget.c:7431 gtk/gtkplacessidebar.c:2306
#: gtk/inspector/a11y.ui:43 gtk/inspector/actions.ui:18
#: gtk/inspector/css-node-tree.ui:22 gtk/inspector/prop-list.ui:24
#: gtk/ui/gtkfilechooserwidget.ui:396 gtk/print/ui/gtkprintunixdialog.ui:80
msgid "Name"
msgstr "Назва"
#: gtk/gtkfilechooserwidget.c:7445 gtk/inspector/resource-list.ui:82
#: gtk/gtkfilechooserwidget.c:7448 gtk/inspector/resource-list.ui:82
#: gtk/ui/gtkfontchooserwidget.ui:218 gtk/ui/gtkfontchooserwidget.ui:387
msgid "Size"
msgstr "Памер"
#: gtk/gtkfilechooserwidget.c:7451 gtk/inspector/misc-info.ui:57
#: gtk/gtkfilechooserwidget.c:7454 gtk/inspector/misc-info.ui:57
#: gtk/inspector/prop-list.ui:35 gtk/inspector/statistics.ui:36
msgid "Type"
msgstr "Тып"
@@ -2725,31 +2726,31 @@ msgstr "Закрыць"
msgid "Close the infobar"
msgstr "Закрыць інфармацыйную панэль"
#: gtk/gtklabel.c:5880 gtk/gtktext.c:6322 gtk/gtktextview.c:9225
#: gtk/gtklabel.c:5878 gtk/gtktext.c:6322 gtk/gtktextview.c:9225
msgid "Cu_t"
msgstr "_Выразаць"
#: gtk/gtklabel.c:5881 gtk/gtktext.c:6326 gtk/gtktextview.c:9229
#: gtk/gtklabel.c:5879 gtk/gtktext.c:6326 gtk/gtktextview.c:9229
msgid "_Copy"
msgstr "_Капіяваць"
#: gtk/gtklabel.c:5882 gtk/gtktext.c:6330 gtk/gtktextview.c:9233
#: gtk/gtklabel.c:5880 gtk/gtktext.c:6330 gtk/gtktextview.c:9233
msgid "_Paste"
msgstr "_Уставіць"
#: gtk/gtklabel.c:5888 gtk/gtktext.c:6343 gtk/gtktextview.c:9258
#: gtk/gtklabel.c:5886 gtk/gtktext.c:6343 gtk/gtktextview.c:9258
msgid "Select _All"
msgstr "Вы_лучыць усё"
#: gtk/gtklabel.c:5893
#: gtk/gtklabel.c:5891
msgid "_Open Link"
msgstr "_Адкрыць спасылку"
#: gtk/gtklabel.c:5897
#: gtk/gtklabel.c:5895
msgid "Copy _Link Address"
msgstr "Скапіяваць адрас _спасылкі"
#: gtk/gtklabel.c:5941 gtk/gtktext.c:2851 gtk/gtktextview.c:9307
#: gtk/gtklabel.c:5939 gtk/gtktext.c:2851 gtk/gtktextview.c:9307
msgid "Context menu"
msgstr "Кантэкстнае меню"
@@ -3344,89 +3345,89 @@ msgstr "Недаступна"
#. * jobs. %s gets replaced by the application name, %d gets replaced
#. * by the job number.
#.
#: gtk/print/gtkprintoperation.c:252
#: gtk/print/gtkprintoperation.c:255
#, c-format
msgid "%s job #%d"
msgstr "%s: задача №%d"
#: gtk/print/gtkprintoperation.c:1699
#: gtk/print/gtkprintoperation.c:1702
msgctxt "print operation status"
msgid "Initial state"
msgstr "Пачатковы стан"
#: gtk/print/gtkprintoperation.c:1700
#: gtk/print/gtkprintoperation.c:1703
msgctxt "print operation status"
msgid "Preparing to print"
msgstr "Падрыхтоўка да друку"
#: gtk/print/gtkprintoperation.c:1701
#: gtk/print/gtkprintoperation.c:1704
msgctxt "print operation status"
msgid "Generating data"
msgstr "Генераванне даных"
#: gtk/print/gtkprintoperation.c:1702
#: gtk/print/gtkprintoperation.c:1705
msgctxt "print operation status"
msgid "Sending data"
msgstr "Адпраўленне даных"
#: gtk/print/gtkprintoperation.c:1703
#: gtk/print/gtkprintoperation.c:1706
msgctxt "print operation status"
msgid "Waiting"
msgstr "Чаканне"
#: gtk/print/gtkprintoperation.c:1704
#: gtk/print/gtkprintoperation.c:1707
msgctxt "print operation status"
msgid "Blocking on issue"
msgstr "Заблакавана з-за праблемы"
#: gtk/print/gtkprintoperation.c:1705
#: gtk/print/gtkprintoperation.c:1708
msgctxt "print operation status"
msgid "Printing"
msgstr "Друк"
#: gtk/print/gtkprintoperation.c:1706
#: gtk/print/gtkprintoperation.c:1709
msgctxt "print operation status"
msgid "Finished"
msgstr "Завершана"
#: gtk/print/gtkprintoperation.c:1707
#: gtk/print/gtkprintoperation.c:1710
msgctxt "print operation status"
msgid "Finished with error"
msgstr "Завершана з памылкай"
#: gtk/print/gtkprintoperation.c:2250
#: gtk/print/gtkprintoperation.c:2254
#, c-format
msgid "Preparing %d"
msgstr "Падрыхтоўка %d"
#: gtk/print/gtkprintoperation.c:2252 gtk/print/gtkprintoperation.c:2871
#: gtk/print/gtkprintoperation.c:2256 gtk/print/gtkprintoperation.c:2875
#, c-format
msgid "Preparing"
msgstr "Падрыхтоўка"
#: gtk/print/gtkprintoperation.c:2255
#: gtk/print/gtkprintoperation.c:2259
#, c-format
msgid "Printing %d"
msgstr "Друк %d"
#: gtk/print/gtkprintoperation.c:2904
#: gtk/print/gtkprintoperation.c:2908
#, c-format
msgid "Error creating print preview"
msgstr "Памылка стварэння папярэдняга прагляду для друку"
#: gtk/print/gtkprintoperation.c:2907
#: gtk/print/gtkprintoperation.c:2911
#, c-format
msgid "The most probable reason is that a temporary file could not be created."
msgstr "Хутчэй за ўсё не ўдалося стварыць часовы файл."
#. window
#: gtk/print/gtkprintoperation-portal.c:264
#: gtk/print/gtkprintoperation-portal.c:594
#: gtk/print/gtkprintoperation-portal.c:663 gtk/print/gtkprintunixdialog.c:3010
#: gtk/print/gtkprintoperation-portal.c:273
#: gtk/print/gtkprintoperation-portal.c:603
#: gtk/print/gtkprintoperation-portal.c:672 gtk/print/gtkprintunixdialog.c:3015
msgid "Print"
msgstr "Друк"
#: gtk/print/gtkprintoperation-unix.c:481
#: gtk/print/gtkprintoperation-unix.c:490
#: gtk/print/gtkprintoperation-win32.c:1505
msgid "Application"
msgstr "Праграма"
@@ -3497,11 +3498,11 @@ msgstr "_Папярэдні прагляд"
msgid "_Print"
msgstr "_Друк"
#: gtk/print/gtkprintunixdialog.c:961
#: gtk/print/gtkprintunixdialog.c:966
msgid "Getting printer information failed"
msgstr "Не ўдалося атрымаць інфармацыю пра прынтар"
#: gtk/print/gtkprintunixdialog.c:1885
#: gtk/print/gtkprintunixdialog.c:1890
msgid "Getting printer information…"
msgstr "Атрыманне інфармацыі пра прынтар…"
@@ -3511,63 +3512,63 @@ msgstr "Атрыманне інфармацыі пра прынтар…"
#. Translators: These strings name the possible arrangements of
#. * multiple pages on a sheet when printing
#.
#: gtk/print/gtkprintunixdialog.c:2755
#: gtk/print/gtkprintunixdialog.c:2760
#: modules/printbackends/gtkprintbackendcups.c:5677
msgid "Left to right, top to bottom"
msgstr "Злева направа, зверху ўніз"
#: gtk/print/gtkprintunixdialog.c:2755
#: gtk/print/gtkprintunixdialog.c:2760
#: modules/printbackends/gtkprintbackendcups.c:5677
msgid "Left to right, bottom to top"
msgstr "Злева направа, знізу ўверх"
#: gtk/print/gtkprintunixdialog.c:2756
#: gtk/print/gtkprintunixdialog.c:2761
#: modules/printbackends/gtkprintbackendcups.c:5678
msgid "Right to left, top to bottom"
msgstr "Справа налева, зверху ўніз"
#: gtk/print/gtkprintunixdialog.c:2756
#: gtk/print/gtkprintunixdialog.c:2761
#: modules/printbackends/gtkprintbackendcups.c:5678
msgid "Right to left, bottom to top"
msgstr "Справа налева, знізу ўверх"
#: gtk/print/gtkprintunixdialog.c:2757
#: gtk/print/gtkprintunixdialog.c:2762
#: modules/printbackends/gtkprintbackendcups.c:5679
msgid "Top to bottom, left to right"
msgstr "Зверху ўніз, злева направа"
#: gtk/print/gtkprintunixdialog.c:2757
#: gtk/print/gtkprintunixdialog.c:2762
#: modules/printbackends/gtkprintbackendcups.c:5679
msgid "Top to bottom, right to left"
msgstr "Зверху ўніз, справа налева"
#: gtk/print/gtkprintunixdialog.c:2758
#: gtk/print/gtkprintunixdialog.c:2763
#: modules/printbackends/gtkprintbackendcups.c:5680
msgid "Bottom to top, left to right"
msgstr "Знізу ўверх, злева направа"
#: gtk/print/gtkprintunixdialog.c:2758
#: gtk/print/gtkprintunixdialog.c:2763
#: modules/printbackends/gtkprintbackendcups.c:5680
msgid "Bottom to top, right to left"
msgstr "Знізу ўверх, справа налева"
#: gtk/print/gtkprintunixdialog.c:2762 gtk/print/gtkprintunixdialog.c:2775
#: gtk/print/gtkprintunixdialog.c:2767 gtk/print/gtkprintunixdialog.c:2780
msgid "Page Ordering"
msgstr "Парадак старонак"
#: gtk/print/gtkprintunixdialog.c:2791
#: gtk/print/gtkprintunixdialog.c:2796
msgid "Left to right"
msgstr "Злева направа"
#: gtk/print/gtkprintunixdialog.c:2792
#: gtk/print/gtkprintunixdialog.c:2797
msgid "Right to left"
msgstr "Справа налева"
#: gtk/print/gtkprintunixdialog.c:2804
#: gtk/print/gtkprintunixdialog.c:2809
msgid "Top to bottom"
msgstr "Зверху ўніз"
#: gtk/print/gtkprintunixdialog.c:2805
#: gtk/print/gtkprintunixdialog.c:2810
msgid "Bottom to top"
msgstr "Знізу ўверх"
@@ -3681,7 +3682,7 @@ msgstr "Нічога не знойдзена"
msgid "Try a different search"
msgstr "Паспрабуйце іншы пошукавы запыт"
#: gtk/gtkstacksidebar.c:154
#: gtk/gtkstacksidebar.c:155
msgctxt "accessibility"
msgid "Sidebar"
msgstr "Бакавая панэль"
@@ -3798,17 +3799,17 @@ msgstr "Паказаць"
msgid "Hover to load"
msgstr "Навядзіце ўказальнік, каб загрузіць"
#: gtk/inspector/clipboard.c:278
#: gtk/inspector/clipboard.c:286
msgctxt "clipboard"
msgid "empty"
msgstr "пусты"
#: gtk/inspector/clipboard.c:283 gtk/inspector/clipboard.c:325
#: gtk/inspector/clipboard.c:291 gtk/inspector/clipboard.c:344
msgctxt "clipboard"
msgid "local"
msgstr "лакальны"
#: gtk/inspector/clipboard.c:285 gtk/inspector/clipboard.c:327
#: gtk/inspector/clipboard.c:293 gtk/inspector/clipboard.c:346
msgctxt "clipboard"
msgid "remote"
msgstr "аддалены"
@@ -3902,32 +3903,32 @@ msgctxt "GL version"
msgid "None"
msgstr "Няма"
#: gtk/inspector/general.c:465
#: gtk/inspector/general.c:464
msgctxt "GL version"
msgid "Unknown"
msgstr "Невядомая"
#: gtk/inspector/general.c:527
#: gtk/inspector/general.c:526
msgctxt "Vulkan device"
msgid "Disabled"
msgstr "Адключана"
#: gtk/inspector/general.c:528 gtk/inspector/general.c:529
#: gtk/inspector/general.c:527 gtk/inspector/general.c:528
msgctxt "Vulkan version"
msgid "Disabled"
msgstr "Адключана"
#: gtk/inspector/general.c:580
#: gtk/inspector/general.c:579
msgctxt "Vulkan device"
msgid "None"
msgstr "Няма"
#: gtk/inspector/general.c:581 gtk/inspector/general.c:582
#: gtk/inspector/general.c:580 gtk/inspector/general.c:581
msgctxt "Vulkan version"
msgid "None"
msgstr "Няма"
#: gtk/inspector/general.c:935
#: gtk/inspector/general.c:934
#, fuzzy
msgid "IM Context is hardcoded by GTK_IM_MODULE"
msgstr "Кантэкст IM жорстка вызначаны праз GTK_IM_MODULE"
@@ -7158,35 +7159,35 @@ msgctxt "printer option value"
msgid "Unavailable"
msgstr "Недаступна"
#: modules/printbackends/gtkprintbackendfile.c:238
#: modules/printbackends/gtkprintbackendfile.c:263
msgid "output"
msgstr "вывад"
#: modules/printbackends/gtkprintbackendfile.c:510
#: modules/printbackends/gtkprintbackendfile.c:543
msgid "Print to File"
msgstr "Друкаваць у файл"
#: modules/printbackends/gtkprintbackendfile.c:636
#: modules/printbackends/gtkprintbackendfile.c:675
msgid "PDF"
msgstr "PDF"
#: modules/printbackends/gtkprintbackendfile.c:636
#: modules/printbackends/gtkprintbackendfile.c:675
msgid "PostScript"
msgstr "PostScript"
#: modules/printbackends/gtkprintbackendfile.c:636
#: modules/printbackends/gtkprintbackendfile.c:675
msgid "SVG"
msgstr "SVG"
#: modules/printbackends/gtkprintbackendfile.c:649
#: modules/printbackends/gtkprintbackendfile.c:688
msgid "Pages per _sheet:"
msgstr "Старонак на _аркушы:"
#: modules/printbackends/gtkprintbackendfile.c:709
#: modules/printbackends/gtkprintbackendfile.c:758
msgid "File"
msgstr "Файл"
#: modules/printbackends/gtkprintbackendfile.c:719
#: modules/printbackends/gtkprintbackendfile.c:768
msgid "_Output format"
msgstr "_Выхадны фармат"
@@ -7267,7 +7268,7 @@ 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-builder-tool-simplify.c:2623 tools/gtk-builder-tool-validate.c:261
#: tools/gtk-image-tool-compare.c:43 tools/gtk-image-tool-info.c:68
#: tools/gtk-path-tool-render.c:121 tools/gtk-rendernode-tool-compare.c:67
#: tools/gtk-rendernode-tool-extract.c:294 tools/gtk-rendernode-tool-info.c:226
@@ -7304,7 +7305,7 @@ msgstr "Выкарыстоўваць стыль з файла CSS"
#: tools/gtk-builder-tool-preview.c:187 tools/gtk-builder-tool-screenshot.c:370
#: tools/gtk-builder-tool-validate.c:268
#: tools/gtk-rendernode-tool-benchmark.c:106
#: tools/gtk-rendernode-tool-benchmark.c:108
#: tools/gtk-rendernode-tool-render.c:262 tools/gtk-rendernode-tool-show.c:123
#, c-format
msgid "Could not initialize windowing system\n"
@@ -7315,7 +7316,7 @@ msgid "Preview the file."
msgstr "Папярэдні прагляд файла."
#: tools/gtk-builder-tool-preview.c:208 tools/gtk-builder-tool-screenshot.c:391
#: tools/gtk-builder-tool-simplify.c:2552 tools/gtk-builder-tool-validate.c:287
#: tools/gtk-builder-tool-simplify.c:2646 tools/gtk-builder-tool-validate.c:287
#, c-format
msgid "No .ui file specified\n"
msgstr "Файл .ui не вызначаны\n"
@@ -7375,7 +7376,7 @@ msgstr "Перазапісаць наяўны файл"
#: tools/gtk-builder-tool-screenshot.c:363 tools/gtk-image-tool-compare.c:46
#: tools/gtk-image-tool-convert.c:89 tools/gtk-image-tool-relabel.c:86
#: tools/gtk-image-tool-show.c:119 tools/gtk-rendernode-tool-benchmark.c:97
#: tools/gtk-image-tool-show.c:119 tools/gtk-rendernode-tool-benchmark.c:99
#: tools/gtk-rendernode-tool-render.c:255
msgid "FILE…"
msgstr "ФАЙЛ…"
@@ -7414,46 +7415,52 @@ msgstr "Уласцівасці ячэйкі %s не знойдзены"
msgid "Layout property %s not found"
msgstr "Уласцівасці макета %s не знойдзены"
#: tools/gtk-builder-tool-simplify.c:1397
#: tools/gtk-builder-tool-simplify.c:1400
#, c-format
msgid "%s only accepts three children"
msgstr ""
#: tools/gtk-builder-tool-simplify.c:2455
#: tools/gtk-builder-tool-simplify.c:1773
#, fuzzy, c-format
#| msgid "Can only accept a single .node file\n"
msgid "%s only accepts one center child"
msgstr "Магчыма прыняць толькі адзін файл .node\n"
#: tools/gtk-builder-tool-simplify.c:2549
#, c-format
msgid "Cant load “%s”: %s\n"
msgstr "Немагчыма загрузіць «%s»: %s\n"
#: tools/gtk-builder-tool-simplify.c:2466
#: tools/gtk-builder-tool-simplify.c:2472
#: tools/gtk-builder-tool-simplify.c:2478
#: tools/gtk-builder-tool-simplify.c:2560
#: tools/gtk-builder-tool-simplify.c:2566
#: tools/gtk-builder-tool-simplify.c:2572
#, c-format
msgid "Cant parse “%s”: %s\n"
msgstr "Немагчыма разабраць «%s»: %s\n"
#: tools/gtk-builder-tool-simplify.c:2504
#: tools/gtk-builder-tool-simplify.c:2598
#, c-format
msgid "Failed to read “%s”: %s\n"
msgstr "Не ўдалося прачытаць «%s»: %s\n"
#: tools/gtk-builder-tool-simplify.c:2510
#: tools/gtk-builder-tool-simplify.c:2604
#, c-format
msgid "Failed to write “%s”: “%s”\n"
msgstr "Не ўдалося запісаць «%s»: «%s»\n"
#: tools/gtk-builder-tool-simplify.c:2527
#: tools/gtk-builder-tool-simplify.c:2621
msgid "Replace the file"
msgstr "Замяніць файл"
#: tools/gtk-builder-tool-simplify.c:2528
#: tools/gtk-builder-tool-simplify.c:2622
msgid "Convert from GTK 3 to GTK 4"
msgstr "Пераўтварыць з GTK 3 у GTK 4"
#: tools/gtk-builder-tool-simplify.c:2539
#: tools/gtk-builder-tool-simplify.c:2633
msgid "Simplify the file."
msgstr "Спрасціць файл."
#: tools/gtk-builder-tool-simplify.c:2558
#: tools/gtk-builder-tool-simplify.c:2652
#, c-format
msgid "Can only simplify a single .ui file without --replace\n"
msgstr "Магчыма спрасціць толькі адзін файл .ui без --replace\n"
@@ -7615,7 +7622,7 @@ msgstr "Фармат:"
#: tools/gtk-image-tool-info.c:56
msgid "Color state:"
msgstr ""
msgstr "Стан колеру:"
#: tools/gtk-image-tool-info.c:77
msgid "Provide information about the image."
@@ -7643,7 +7650,7 @@ msgstr ""
#: tools/gtk-image-tool-show.c:128
msgid "Show one or more images."
msgstr ""
msgstr "Паказаць адзін або некалькі відарысаў."
#: tools/gtk-image-tool-utils.c:234
#, c-format
@@ -8045,40 +8052,40 @@ msgstr ""
" render Зрабіць здымак файла node\n"
"\n"
#: tools/gtk-rendernode-tool-benchmark.c:94
#: tools/gtk-rendernode-tool-benchmark.c:96
msgid "Add renderer to benchmark"
msgstr ""
#: tools/gtk-rendernode-tool-benchmark.c:94
#: tools/gtk-rendernode-tool-benchmark.c:96
#: tools/gtk-rendernode-tool-compare.c:65
#: tools/gtk-rendernode-tool-render.c:254
msgid "RENDERER"
msgstr ""
#: tools/gtk-rendernode-tool-benchmark.c:95
#: tools/gtk-rendernode-tool-benchmark.c:97
msgid "Number of runs with each renderer"
msgstr ""
#: tools/gtk-rendernode-tool-benchmark.c:95
#: tools/gtk-rendernode-tool-benchmark.c:97
msgid "RUNS"
msgstr ""
#: tools/gtk-rendernode-tool-benchmark.c:96
#: tools/gtk-rendernode-tool-benchmark.c:98
msgid "Dont download result/wait for GPU to finish"
msgstr ""
#: tools/gtk-rendernode-tool-benchmark.c:114
#: tools/gtk-rendernode-tool-benchmark.c:116
msgid "Benchmark rendering of a .node file."
msgstr ""
#: tools/gtk-rendernode-tool-benchmark.c:127
#: tools/gtk-rendernode-tool-benchmark.c:129
#: tools/gtk-rendernode-tool-extract.c:316 tools/gtk-rendernode-tool-info.c:248
#: tools/gtk-rendernode-tool-render.c:283 tools/gtk-rendernode-tool-show.c:144
#, c-format
msgid "No .node file specified\n"
msgstr "Файл .node не вызначаны\n"
#: tools/gtk-rendernode-tool-benchmark.c:133
#: tools/gtk-rendernode-tool-benchmark.c:135
#, c-format
msgid "Can only benchmark a single .node file\n"
msgstr ""
@@ -8455,7 +8462,6 @@ msgstr ""
#~ msgstr "Іншыя праграмы"
#, fuzzy
#~| msgid "default:mm"
#~ msgid "default:LTR"
#~ msgstr "default:mm"
+134 -156
View File
@@ -11,16 +11,16 @@ msgid ""
msgstr ""
"Project-Id-Version: gtk+\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n"
"POT-Creation-Date: 2024-09-09 06:26+0000\n"
"PO-Revision-Date: 2024-09-10 11:14+0100\n"
"Last-Translator: Bruce Cowan <bruce@bcowan.me.uk>\n"
"POT-Creation-Date: 2024-09-28 10:01+0000\n"
"PO-Revision-Date: 2024-09-28 17:42+0100\n"
"Last-Translator: Andi Chandler <andi@gowling.com>\n"
"Language-Team: English - United Kingdom <en@li.org>\n"
"Language: en_GB\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"
"X-Generator: Poedit 3.4.4\n"
"X-Generator: Poedit 3.5\n"
#: gdk/broadway/gdkbroadway-server.c:135
#, c-format
@@ -51,13 +51,11 @@ msgstr "cicp: Unspecified parameters not supported"
#: gdk/gdkcolorstate.c:724
#, c-format
#| msgid "Compressed icons are not supported"
msgid "cicp: Transfer function %u not supported"
msgstr "cicp: Transfer function %u not supported"
#: gdk/gdkcolorstate.c:754
#, c-format
#| msgid "Format %s not supported"
msgid "cicp: Color primaries %u not supported"
msgstr "cicp: Colour primaries %u not supported"
@@ -76,54 +74,54 @@ msgstr "Cannot provide contents as %s"
msgid "The current backend does not support OpenGL"
msgstr "The current backend does not support OpenGL"
#: gdk/gdkdisplay.c:1315 gdk/gdkvulkancontext.c:1663
#: gdk/gdkdisplay.c:1317 gdk/gdkvulkancontext.c:1668
msgid "Vulkan support disabled via GDK_DISABLE"
msgstr "Vulkan support disabled via GDK_DISABLE"
#: gdk/gdkdisplay.c:1369
#: gdk/gdkdisplay.c:1371
msgid "OpenGL support disabled via GDK_DISABLE"
msgstr "OpenGL support disabled via GDK_DISABLE"
#: gdk/gdkdisplay.c:1683
#: gdk/gdkdisplay.c:1685
msgid "No EGL configuration available"
msgstr "No EGL configuration available"
#: gdk/gdkdisplay.c:1691
#: gdk/gdkdisplay.c:1693
msgid "Failed to get EGL configurations"
msgstr "Failed to get EGL configurations"
#: gdk/gdkdisplay.c:1721
#: gdk/gdkdisplay.c:1723
msgid "No EGL configuration with required features found"
msgstr "No EGL configuration with required features found"
#: gdk/gdkdisplay.c:1728
#: gdk/gdkdisplay.c:1730
msgid "No perfect EGL configuration found"
msgstr "No perfect EGL configuration found"
#: gdk/gdkdisplay.c:1770
#: gdk/gdkdisplay.c:1772
#, c-format
msgid "EGL implementation is missing extension %s"
msgid_plural "EGL implementation is missing %2$d extensions: %1$s"
msgstr[0] "EGL implementation is missing extension %s"
msgstr[1] "EGL implementation is missing %2$d extensions: %1$s"
#: gdk/gdkdisplay.c:1819
#: gdk/gdkdisplay.c:1821
msgid "libEGL not available in this sandbox"
msgstr "libEGL not available in this sandbox"
#: gdk/gdkdisplay.c:1820
#: gdk/gdkdisplay.c:1822
msgid "libEGL not available"
msgstr "libEGL not available"
#: gdk/gdkdisplay.c:1830
#: gdk/gdkdisplay.c:1832
msgid "Failed to create EGL display"
msgstr "Failed to create EGL display"
#: gdk/gdkdisplay.c:1839
#: gdk/gdkdisplay.c:1841
msgid "Could not initialize EGL display"
msgstr "Could not initialise EGL display"
#: gdk/gdkdisplay.c:1849
#: gdk/gdkdisplay.c:1851
#, c-format
msgid "EGL version %d.%d is too old. GTK requires %d.%d"
msgstr "EGL version %d.%d is too old. GTK requires %d.%d"
@@ -601,8 +599,8 @@ msgstr "Could not load TIFF data"
msgid "Reading data failed at row %d"
msgstr "Reading data failed at row %d"
#: gdk/macos/gdkmacospasteboard.c:211 gdk/wayland/gdkclipboard-wayland.c:238
#: gdk/wayland/gdkdrop-wayland.c:205 gdk/wayland/gdkprimary-wayland.c:337
#: gdk/macos/gdkmacospasteboard.c:211 gdk/wayland/gdkclipboard-wayland.c:244
#: gdk/wayland/gdkdrop-wayland.c:205 gdk/wayland/gdkprimary-wayland.c:343
#: gdk/win32/gdkdrop-win32.c:1018 gdk/win32/gdkdrop-win32.c:1067
#: gdk/x11/gdkclipboard-x11.c:799 gdk/x11/gdkdrop-x11.c:235
msgid "No compatible transfer format found"
@@ -860,7 +858,7 @@ msgstr "This GLES %d.%d implementation does not support half-float vertex data"
msgid "OpenGL ES 3.0 is not supported by this renderer."
msgstr "OpenGL ES 3.0 is not supported by this renderer."
#: gsk/gpu/gsknglrenderer.c:68
#: gsk/gpu/gsknglrenderer.c:69
msgid "OpenGL 3.3 required"
msgstr "OpenGL 3.3 required"
@@ -1799,8 +1797,6 @@ msgid "Reason not specified"
msgstr "Reason not specified"
#: gtk/gtkapplicationwindow.c:236
#| msgctxt "accessibility"
#| msgid "menu bar"
msgid "Menu bar"
msgstr "Menu bar"
@@ -1833,7 +1829,7 @@ msgstr "Text may not appear inside <%s>"
#. * first day of the week to calendar:week_start:1 if you want Monday
#. * to be the first day of the week, and so on.
#.
#: gtk/gtkcalendar.c:666
#: gtk/gtkcalendar.c:670
msgid "calendar:week_start:0"
msgstr "calendar:week_start:1"
@@ -1847,21 +1843,10 @@ msgstr "calendar:week_start:1"
#. * text direction of RTL and specify "calendar:YM", then the year
#. * will appear to the right of the month.
#.
#: gtk/gtkcalendar.c:817
#: gtk/gtkcalendar.c:821
msgid "calendar:MY"
msgstr "calendar:MY"
#. Translators: This dictates how the year is displayed in
#. * gtkcalendar widget. See strftime() manual for the format.
#. * Use only ASCII in the translation.
#. *
#. * "%Y" is appropriate for most locales.
#.
#: gtk/gtkcalendar.c:1002
msgctxt "calendar year format"
msgid "%Y"
msgstr "%Y"
#. Translators: this defines whether the day numbers should use
#. * localized digits or the ones used in English (0123...).
#. *
@@ -1872,12 +1857,23 @@ msgstr "%Y"
#. * digits. That needs support from your system and locale definition
#. * too.
#.
#: gtk/gtkcalendar.c:1039
#: gtk/gtkcalendar.c:1002
#, c-format
msgctxt "calendar:day:digits"
msgid "%d"
msgstr "%d"
#. Translators: This dictates how the year is displayed in
#. * gtkcalendar widget. See strftime() manual for the format.
#. * Use only ASCII in the translation.
#. *
#. * "%Y" is appropriate for most locales.
#.
#: gtk/gtkcalendar.c:1106
msgctxt "calendar year format"
msgid "%Y"
msgstr "%Y"
#. Translators: this defines whether the week numbers should use
#. * localized digits or the ones used in English (0123...).
#. *
@@ -1886,7 +1882,7 @@ msgstr "%d"
#. * Note that translating this doesn't guarantee that you get localized
#. * digits. That needs support from your system and locale definition
#. * too.
#: gtk/gtkcalendar.c:1104
#: gtk/gtkcalendar.c:1152
#, c-format
msgctxt "calendar:week:digits"
msgid "%d"
@@ -2155,7 +2151,7 @@ msgid "Margins from Printer…"
msgstr "Margins from Printer…"
#. And show the custom paper dialog
#: gtk/print/gtkcustompaperunixdialog.c:377 gtk/print/gtkprintunixdialog.c:2970
#: gtk/print/gtkcustompaperunixdialog.c:377 gtk/print/gtkprintunixdialog.c:2975
msgid "Manage Custom Sizes"
msgstr "Manage Custom Sizes"
@@ -2271,7 +2267,7 @@ msgid "A file with that name already exists"
msgstr "A file with that name already exists"
#: gtk/gtkfilechoosernative.c:520 gtk/gtkfilechoosernative.c:600
#: gtk/gtkfilechooserwidget.c:1213 gtk/gtkfilechooserwidget.c:5014
#: gtk/gtkfilechooserwidget.c:1213 gtk/gtkfilechooserwidget.c:5017
#: gtk/gtkfiledialog.c:840 gtk/gtkmessagedialog.c:170
#: gtk/gtkmessagedialog.c:179 gtk/gtkmountoperation.c:608
#: gtk/print/gtkpagesetupunixdialog.c:282 gtk/print/gtkprintbackend.c:638
@@ -2364,7 +2360,7 @@ msgid "If you delete an item, it will be permanently lost."
msgstr "If you delete an item, it will be permanently lost."
#: gtk/gtkfilechooserwidget.c:1213 gtk/gtkfilechooserwidget.c:1815
#: gtk/gtklabel.c:5883 gtk/gtktext.c:6334 gtk/gtktextview.c:9237
#: gtk/gtklabel.c:5881 gtk/gtktext.c:6334 gtk/gtktextview.c:9237
msgid "_Delete"
msgstr "_Delete"
@@ -2427,7 +2423,7 @@ msgid "Home"
msgstr "Home"
#. this is the header for the location column in the print dialog
#: gtk/gtkfilechooserwidget.c:2195 gtk/gtkfilechooserwidget.c:7436
#: gtk/gtkfilechooserwidget.c:2195 gtk/gtkfilechooserwidget.c:7439
#: gtk/inspector/css-node-tree.ui:76 gtk/print/ui/gtkprintunixdialog.ui:111
msgid "Location"
msgstr "Location"
@@ -2450,8 +2446,8 @@ msgstr "Searching"
msgid "Enter location or URL"
msgstr "Enter location or URL"
#: gtk/gtkfilechooserwidget.c:3444 gtk/gtkfilechooserwidget.c:5801
#: gtk/gtkfilechooserwidget.c:7458
#: gtk/gtkfilechooserwidget.c:3444 gtk/gtkfilechooserwidget.c:5804
#: gtk/gtkfilechooserwidget.c:7461
msgid "Modified"
msgstr "Modified"
@@ -2534,59 +2530,59 @@ msgstr "Presentation"
msgid "Spreadsheet"
msgstr "Spreadsheet"
#: gtk/gtkfilechooserwidget.c:5006 gtk/print/gtkprintunixdialog.c:673
#: gtk/gtkfilechooserwidget.c:5009 gtk/print/gtkprintunixdialog.c:673
#, c-format
msgid "A file named “%s” already exists. Do you want to replace it?"
msgstr "A file named “%s” already exists. Do you want to replace it?"
#: gtk/gtkfilechooserwidget.c:5008 gtk/print/gtkprintunixdialog.c:677
#: gtk/gtkfilechooserwidget.c:5011 gtk/print/gtkprintunixdialog.c:677
#, c-format
msgid ""
"The file already exists in “%s”. Replacing it will overwrite its contents."
msgstr ""
"The file already exists in “%s”. Replacing it will overwrite its contents."
#: gtk/gtkfilechooserwidget.c:5014 gtk/print/gtkprintunixdialog.c:685
#: gtk/gtkfilechooserwidget.c:5017 gtk/print/gtkprintunixdialog.c:685
msgid "_Replace"
msgstr "_Replace"
#: gtk/gtkfilechooserwidget.c:5169
#: gtk/gtkfilechooserwidget.c:5172
msgid "You do not have access to the specified folder."
msgstr "You do not have access to the specified folder."
#: gtk/gtkfilechooserwidget.c:5748
#: gtk/gtkfilechooserwidget.c:5751
msgid "Could not send the search request"
msgstr "Could not send the search request"
#: gtk/gtkfilechooserwidget.c:6029
#: gtk/gtkfilechooserwidget.c:6032
msgid "Accessed"
msgstr "Accessed"
#: gtk/gtkfilechooserwidget.c:7414
#: gtk/gtkfilechooserwidget.c:7417
msgid "_Size"
msgstr "_Size"
#: gtk/gtkfilechooserwidget.c:7418
#: gtk/gtkfilechooserwidget.c:7421
msgid "T_ype"
msgstr "T_ype"
#: gtk/gtkfilechooserwidget.c:7422
#: gtk/gtkfilechooserwidget.c:7425
msgid "_Time"
msgstr "_Time"
#: gtk/gtkfilechooserwidget.c:7428 gtk/gtkplacessidebar.c:2306
#: gtk/gtkfilechooserwidget.c:7431 gtk/gtkplacessidebar.c:2306
#: gtk/inspector/a11y.ui:43 gtk/inspector/actions.ui:18
#: gtk/inspector/css-node-tree.ui:22 gtk/inspector/prop-list.ui:24
#: gtk/ui/gtkfilechooserwidget.ui:396 gtk/print/ui/gtkprintunixdialog.ui:80
msgid "Name"
msgstr "Name"
#: gtk/gtkfilechooserwidget.c:7445 gtk/inspector/resource-list.ui:82
#: gtk/gtkfilechooserwidget.c:7448 gtk/inspector/resource-list.ui:82
#: gtk/ui/gtkfontchooserwidget.ui:218 gtk/ui/gtkfontchooserwidget.ui:387
msgid "Size"
msgstr "Size"
#: gtk/gtkfilechooserwidget.c:7451 gtk/inspector/misc-info.ui:57
#: gtk/gtkfilechooserwidget.c:7454 gtk/inspector/misc-info.ui:57
#: gtk/inspector/prop-list.ui:35 gtk/inspector/statistics.ui:36
msgid "Type"
msgstr "Type"
@@ -2704,31 +2700,31 @@ msgstr "Close"
msgid "Close the infobar"
msgstr "Close the infobar"
#: gtk/gtklabel.c:5880 gtk/gtktext.c:6322 gtk/gtktextview.c:9225
#: gtk/gtklabel.c:5878 gtk/gtktext.c:6322 gtk/gtktextview.c:9225
msgid "Cu_t"
msgstr "Cu_t"
#: gtk/gtklabel.c:5881 gtk/gtktext.c:6326 gtk/gtktextview.c:9229
#: gtk/gtklabel.c:5879 gtk/gtktext.c:6326 gtk/gtktextview.c:9229
msgid "_Copy"
msgstr "_Copy"
#: gtk/gtklabel.c:5882 gtk/gtktext.c:6330 gtk/gtktextview.c:9233
#: gtk/gtklabel.c:5880 gtk/gtktext.c:6330 gtk/gtktextview.c:9233
msgid "_Paste"
msgstr "_Paste"
#: gtk/gtklabel.c:5888 gtk/gtktext.c:6343 gtk/gtktextview.c:9258
#: gtk/gtklabel.c:5886 gtk/gtktext.c:6343 gtk/gtktextview.c:9258
msgid "Select _All"
msgstr "Select _All"
#: gtk/gtklabel.c:5893
#: gtk/gtklabel.c:5891
msgid "_Open Link"
msgstr "_Open Link"
#: gtk/gtklabel.c:5897
#: gtk/gtklabel.c:5895
msgid "Copy _Link Address"
msgstr "Copy _Link Address"
#: gtk/gtklabel.c:5941 gtk/gtktext.c:2851 gtk/gtktextview.c:9307
#: gtk/gtklabel.c:5939 gtk/gtktext.c:2851 gtk/gtktextview.c:9307
msgid "Context menu"
msgstr "Context menu"
@@ -3321,90 +3317,90 @@ msgstr "Not available"
#. * jobs. %s gets replaced by the application name, %d gets replaced
#. * by the job number.
#.
#: gtk/print/gtkprintoperation.c:252
#: gtk/print/gtkprintoperation.c:255
#, c-format
msgid "%s job #%d"
msgstr "%s job #%d"
#: gtk/print/gtkprintoperation.c:1699
#: gtk/print/gtkprintoperation.c:1702
msgctxt "print operation status"
msgid "Initial state"
msgstr "Initial state"
#: gtk/print/gtkprintoperation.c:1700
#: gtk/print/gtkprintoperation.c:1703
msgctxt "print operation status"
msgid "Preparing to print"
msgstr "Preparing to print"
#: gtk/print/gtkprintoperation.c:1701
#: gtk/print/gtkprintoperation.c:1704
msgctxt "print operation status"
msgid "Generating data"
msgstr "Generating data"
#: gtk/print/gtkprintoperation.c:1702
#: gtk/print/gtkprintoperation.c:1705
msgctxt "print operation status"
msgid "Sending data"
msgstr "Sending data"
#: gtk/print/gtkprintoperation.c:1703
#: gtk/print/gtkprintoperation.c:1706
msgctxt "print operation status"
msgid "Waiting"
msgstr "Waiting"
#: gtk/print/gtkprintoperation.c:1704
#: gtk/print/gtkprintoperation.c:1707
msgctxt "print operation status"
msgid "Blocking on issue"
msgstr "Blocking on issue"
#: gtk/print/gtkprintoperation.c:1705
#: gtk/print/gtkprintoperation.c:1708
msgctxt "print operation status"
msgid "Printing"
msgstr "Printing"
#: gtk/print/gtkprintoperation.c:1706
#: gtk/print/gtkprintoperation.c:1709
msgctxt "print operation status"
msgid "Finished"
msgstr "Finished"
#: gtk/print/gtkprintoperation.c:1707
#: gtk/print/gtkprintoperation.c:1710
msgctxt "print operation status"
msgid "Finished with error"
msgstr "Finished with error"
#: gtk/print/gtkprintoperation.c:2250
#: gtk/print/gtkprintoperation.c:2254
#, c-format
msgid "Preparing %d"
msgstr "Preparing %d"
#: gtk/print/gtkprintoperation.c:2252 gtk/print/gtkprintoperation.c:2871
#: gtk/print/gtkprintoperation.c:2256 gtk/print/gtkprintoperation.c:2875
#, c-format
msgid "Preparing"
msgstr "Preparing"
#: gtk/print/gtkprintoperation.c:2255
#: gtk/print/gtkprintoperation.c:2259
#, c-format
msgid "Printing %d"
msgstr "Printing %d"
#: gtk/print/gtkprintoperation.c:2904
#: gtk/print/gtkprintoperation.c:2908
#, c-format
msgid "Error creating print preview"
msgstr "Error creating print preview"
#: gtk/print/gtkprintoperation.c:2907
#: gtk/print/gtkprintoperation.c:2911
#, c-format
msgid "The most probable reason is that a temporary file could not be created."
msgstr ""
"The most probable reason is that a temporary file could not be created."
#. window
#: gtk/print/gtkprintoperation-portal.c:264
#: gtk/print/gtkprintoperation-portal.c:594
#: gtk/print/gtkprintoperation-portal.c:663 gtk/print/gtkprintunixdialog.c:3010
#: gtk/print/gtkprintoperation-portal.c:273
#: gtk/print/gtkprintoperation-portal.c:603
#: gtk/print/gtkprintoperation-portal.c:672 gtk/print/gtkprintunixdialog.c:3015
msgid "Print"
msgstr "Print"
#: gtk/print/gtkprintoperation-unix.c:481
#: gtk/print/gtkprintoperation-unix.c:490
#: gtk/print/gtkprintoperation-win32.c:1505
msgid "Application"
msgstr "Application"
@@ -3475,11 +3471,11 @@ msgstr "Pre_view"
msgid "_Print"
msgstr "_Print"
#: gtk/print/gtkprintunixdialog.c:961
#: gtk/print/gtkprintunixdialog.c:966
msgid "Getting printer information failed"
msgstr "Getting printer information failed"
#: gtk/print/gtkprintunixdialog.c:1885
#: gtk/print/gtkprintunixdialog.c:1890
msgid "Getting printer information…"
msgstr "Getting printer information…"
@@ -3489,63 +3485,63 @@ msgstr "Getting printer information…"
#. Translators: These strings name the possible arrangements of
#. * multiple pages on a sheet when printing
#.
#: gtk/print/gtkprintunixdialog.c:2755
#: gtk/print/gtkprintunixdialog.c:2760
#: modules/printbackends/gtkprintbackendcups.c:5677
msgid "Left to right, top to bottom"
msgstr "Left to right, top to bottom"
#: gtk/print/gtkprintunixdialog.c:2755
#: gtk/print/gtkprintunixdialog.c:2760
#: modules/printbackends/gtkprintbackendcups.c:5677
msgid "Left to right, bottom to top"
msgstr "Left to right, bottom to top"
#: gtk/print/gtkprintunixdialog.c:2756
#: gtk/print/gtkprintunixdialog.c:2761
#: modules/printbackends/gtkprintbackendcups.c:5678
msgid "Right to left, top to bottom"
msgstr "Right to left, top to bottom"
#: gtk/print/gtkprintunixdialog.c:2756
#: gtk/print/gtkprintunixdialog.c:2761
#: modules/printbackends/gtkprintbackendcups.c:5678
msgid "Right to left, bottom to top"
msgstr "Right to left, bottom to top"
#: gtk/print/gtkprintunixdialog.c:2757
#: gtk/print/gtkprintunixdialog.c:2762
#: modules/printbackends/gtkprintbackendcups.c:5679
msgid "Top to bottom, left to right"
msgstr "Top to bottom, left to right"
#: gtk/print/gtkprintunixdialog.c:2757
#: gtk/print/gtkprintunixdialog.c:2762
#: modules/printbackends/gtkprintbackendcups.c:5679
msgid "Top to bottom, right to left"
msgstr "Top to bottom, right to left"
#: gtk/print/gtkprintunixdialog.c:2758
#: gtk/print/gtkprintunixdialog.c:2763
#: modules/printbackends/gtkprintbackendcups.c:5680
msgid "Bottom to top, left to right"
msgstr "Bottom to top, left to right"
#: gtk/print/gtkprintunixdialog.c:2758
#: gtk/print/gtkprintunixdialog.c:2763
#: modules/printbackends/gtkprintbackendcups.c:5680
msgid "Bottom to top, right to left"
msgstr "Bottom to top, right to left"
#: gtk/print/gtkprintunixdialog.c:2762 gtk/print/gtkprintunixdialog.c:2775
#: gtk/print/gtkprintunixdialog.c:2767 gtk/print/gtkprintunixdialog.c:2780
msgid "Page Ordering"
msgstr "Page Ordering"
#: gtk/print/gtkprintunixdialog.c:2791
#: gtk/print/gtkprintunixdialog.c:2796
msgid "Left to right"
msgstr "Left to right"
#: gtk/print/gtkprintunixdialog.c:2792
#: gtk/print/gtkprintunixdialog.c:2797
msgid "Right to left"
msgstr "Right to left"
#: gtk/print/gtkprintunixdialog.c:2804
#: gtk/print/gtkprintunixdialog.c:2809
msgid "Top to bottom"
msgstr "Top to bottom"
#: gtk/print/gtkprintunixdialog.c:2805
#: gtk/print/gtkprintunixdialog.c:2810
msgid "Bottom to top"
msgstr "Bottom to top"
@@ -3658,7 +3654,7 @@ msgstr "No Results Found"
msgid "Try a different search"
msgstr "Try a different search"
#: gtk/gtkstacksidebar.c:154
#: gtk/gtkstacksidebar.c:155
msgctxt "accessibility"
msgid "Sidebar"
msgstr "Sidebar"
@@ -3775,17 +3771,17 @@ msgstr "Show"
msgid "Hover to load"
msgstr "Hover to load"
#: gtk/inspector/clipboard.c:278
#: gtk/inspector/clipboard.c:286
msgctxt "clipboard"
msgid "empty"
msgstr "empty"
#: gtk/inspector/clipboard.c:283 gtk/inspector/clipboard.c:325
#: gtk/inspector/clipboard.c:291 gtk/inspector/clipboard.c:344
msgctxt "clipboard"
msgid "local"
msgstr "local"
#: gtk/inspector/clipboard.c:285 gtk/inspector/clipboard.c:327
#: gtk/inspector/clipboard.c:293 gtk/inspector/clipboard.c:346
msgctxt "clipboard"
msgid "remote"
msgstr "remote"
@@ -7127,35 +7123,35 @@ msgctxt "printer option value"
msgid "Unavailable"
msgstr "Unavailable"
#: modules/printbackends/gtkprintbackendfile.c:238
#: modules/printbackends/gtkprintbackendfile.c:263
msgid "output"
msgstr "output"
#: modules/printbackends/gtkprintbackendfile.c:510
#: modules/printbackends/gtkprintbackendfile.c:543
msgid "Print to File"
msgstr "Print to File"
#: modules/printbackends/gtkprintbackendfile.c:636
#: modules/printbackends/gtkprintbackendfile.c:675
msgid "PDF"
msgstr "PDF"
#: modules/printbackends/gtkprintbackendfile.c:636
#: modules/printbackends/gtkprintbackendfile.c:675
msgid "PostScript"
msgstr "PostScript"
#: modules/printbackends/gtkprintbackendfile.c:636
#: modules/printbackends/gtkprintbackendfile.c:675
msgid "SVG"
msgstr "SVG"
#: modules/printbackends/gtkprintbackendfile.c:649
#: modules/printbackends/gtkprintbackendfile.c:688
msgid "Pages per _sheet:"
msgstr "Pages per _sheet:"
#: modules/printbackends/gtkprintbackendfile.c:709
#: modules/printbackends/gtkprintbackendfile.c:758
msgid "File"
msgstr "File"
#: modules/printbackends/gtkprintbackendfile.c:719
#: modules/printbackends/gtkprintbackendfile.c:768
msgid "_Output format"
msgstr "_Output format"
@@ -7236,7 +7232,7 @@ 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-builder-tool-simplify.c:2623 tools/gtk-builder-tool-validate.c:261
#: tools/gtk-image-tool-compare.c:43 tools/gtk-image-tool-info.c:68
#: tools/gtk-path-tool-render.c:121 tools/gtk-rendernode-tool-compare.c:67
#: tools/gtk-rendernode-tool-extract.c:294 tools/gtk-rendernode-tool-info.c:226
@@ -7273,7 +7269,7 @@ msgstr "Use style from CSS file"
#: tools/gtk-builder-tool-preview.c:187 tools/gtk-builder-tool-screenshot.c:370
#: tools/gtk-builder-tool-validate.c:268
#: tools/gtk-rendernode-tool-benchmark.c:106
#: tools/gtk-rendernode-tool-benchmark.c:108
#: tools/gtk-rendernode-tool-render.c:262 tools/gtk-rendernode-tool-show.c:123
#, c-format
msgid "Could not initialize windowing system\n"
@@ -7284,7 +7280,7 @@ msgid "Preview the file."
msgstr "Preview the file."
#: tools/gtk-builder-tool-preview.c:208 tools/gtk-builder-tool-screenshot.c:391
#: tools/gtk-builder-tool-simplify.c:2552 tools/gtk-builder-tool-validate.c:287
#: tools/gtk-builder-tool-simplify.c:2646 tools/gtk-builder-tool-validate.c:287
#, c-format
msgid "No .ui file specified\n"
msgstr "No .ui file specified\n"
@@ -7344,7 +7340,7 @@ msgstr "Overwrite existing file"
#: tools/gtk-builder-tool-screenshot.c:363 tools/gtk-image-tool-compare.c:46
#: tools/gtk-image-tool-convert.c:89 tools/gtk-image-tool-relabel.c:86
#: tools/gtk-image-tool-show.c:119 tools/gtk-rendernode-tool-benchmark.c:97
#: tools/gtk-image-tool-show.c:119 tools/gtk-rendernode-tool-benchmark.c:99
#: tools/gtk-rendernode-tool-render.c:255
msgid "FILE…"
msgstr "FILE…"
@@ -7383,46 +7379,52 @@ msgstr "Cell property %s not found"
msgid "Layout property %s not found"
msgstr "Layout property %s not found"
#: tools/gtk-builder-tool-simplify.c:1397
#: tools/gtk-builder-tool-simplify.c:1400
#, c-format
msgid "%s only accepts three children"
msgstr "%s only accepts three children"
#: tools/gtk-builder-tool-simplify.c:2455
#: tools/gtk-builder-tool-simplify.c:1773
#, c-format
#| msgid "%s only accepts three children"
msgid "%s only accepts one center child"
msgstr "%s only accepts one centre child"
#: tools/gtk-builder-tool-simplify.c:2549
#, c-format
msgid "Cant load “%s”: %s\n"
msgstr "Cant load “%s”: %s\n"
#: tools/gtk-builder-tool-simplify.c:2466
#: tools/gtk-builder-tool-simplify.c:2472
#: tools/gtk-builder-tool-simplify.c:2478
#: tools/gtk-builder-tool-simplify.c:2560
#: tools/gtk-builder-tool-simplify.c:2566
#: tools/gtk-builder-tool-simplify.c:2572
#, c-format
msgid "Cant parse “%s”: %s\n"
msgstr "Cant parse “%s”: %s\n"
#: tools/gtk-builder-tool-simplify.c:2504
#: tools/gtk-builder-tool-simplify.c:2598
#, c-format
msgid "Failed to read “%s”: %s\n"
msgstr "Failed to read “%s”: %s\n"
#: tools/gtk-builder-tool-simplify.c:2510
#: tools/gtk-builder-tool-simplify.c:2604
#, c-format
msgid "Failed to write “%s”: “%s”\n"
msgstr "Failed to write “%s”: “%s”\n"
#: tools/gtk-builder-tool-simplify.c:2527
#: tools/gtk-builder-tool-simplify.c:2621
msgid "Replace the file"
msgstr "Replace the file"
#: tools/gtk-builder-tool-simplify.c:2528
#: tools/gtk-builder-tool-simplify.c:2622
msgid "Convert from GTK 3 to GTK 4"
msgstr "Convert from GTK 3 to GTK 4"
#: tools/gtk-builder-tool-simplify.c:2539
#: tools/gtk-builder-tool-simplify.c:2633
msgid "Simplify the file."
msgstr "Simplify the file."
#: tools/gtk-builder-tool-simplify.c:2558
#: tools/gtk-builder-tool-simplify.c:2652
#, c-format
msgid "Can only simplify a single .ui file without --replace\n"
msgstr "Can only simplify a single .ui file without --replace\n"
@@ -7447,20 +7449,6 @@ msgstr "Validate the file."
#: tools/gtk-image-tool.c:36
#, 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"
#| " compare Compare nodes or images\n"
#| " extract Extract data urls\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-image-tool [COMMAND] [OPTION…] FILE…\n"
@@ -7500,13 +7488,11 @@ msgstr "Compare two images"
#: tools/gtk-image-tool-info.c:90 tools/gtk-image-tool-relabel.c:109
#: tools/gtk-image-tool-show.c:141
#, c-format
#| msgid "No .ui file specified\n"
msgid "No image file specified\n"
msgstr "No image file specified\n"
#: tools/gtk-image-tool-compare.c:76
#, c-format
#| msgid "Can only accept a single .node file\n"
msgid "Can only accept two image files\n"
msgstr "Can only accept two image files\n"
@@ -7536,7 +7522,6 @@ msgid "No differences.\n"
msgstr "No differences.\n"
#: tools/gtk-image-tool-convert.c:86
#| msgid "_Format for:"
msgid "Format to use"
msgstr "Format to use"
@@ -7566,7 +7551,6 @@ msgstr "Convert the image to a different format or colour state."
#: tools/gtk-image-tool-convert.c:119 tools/gtk-image-tool-relabel.c:115
#, c-format
#| msgid "Can only render a single .ui file to a single output file\n"
msgid "Can only accept a single image file and output file\n"
msgstr "Can only accept a single image file and output file\n"
@@ -7603,7 +7587,6 @@ msgid "Not a supported cicp tuple: %s\n"
msgstr "Not a supported cicp tuple: %s\n"
#: tools/gtk-image-tool-info.c:55
#| msgid "_Format for:"
msgid "Format:"
msgstr "Format:"
@@ -7612,13 +7595,11 @@ msgid "Color state:"
msgstr "Colour state:"
#: tools/gtk-image-tool-info.c:77
#| msgid "Provide information about the render node."
msgid "Provide information about the image."
msgstr "Provide information about the image."
#: tools/gtk-image-tool-info.c:96
#, c-format
#| msgid "Can only accept a single .node file\n"
msgid "Can only accept a single image file\n"
msgstr "Can only accept a single image file\n"
@@ -8040,40 +8021,40 @@ msgstr ""
" render Take a screenshot of the node\n"
"\n"
#: tools/gtk-rendernode-tool-benchmark.c:94
#: tools/gtk-rendernode-tool-benchmark.c:96
msgid "Add renderer to benchmark"
msgstr "Add renderer to benchmark"
#: tools/gtk-rendernode-tool-benchmark.c:94
#: tools/gtk-rendernode-tool-benchmark.c:96
#: tools/gtk-rendernode-tool-compare.c:65
#: tools/gtk-rendernode-tool-render.c:254
msgid "RENDERER"
msgstr "RENDERER"
#: tools/gtk-rendernode-tool-benchmark.c:95
#: tools/gtk-rendernode-tool-benchmark.c:97
msgid "Number of runs with each renderer"
msgstr "Number of runs with each renderer"
#: tools/gtk-rendernode-tool-benchmark.c:95
#: tools/gtk-rendernode-tool-benchmark.c:97
msgid "RUNS"
msgstr "RUNS"
#: tools/gtk-rendernode-tool-benchmark.c:96
#: tools/gtk-rendernode-tool-benchmark.c:98
msgid "Dont download result/wait for GPU to finish"
msgstr "Dont download result/wait for GPU to finish"
#: tools/gtk-rendernode-tool-benchmark.c:114
#: tools/gtk-rendernode-tool-benchmark.c:116
msgid "Benchmark rendering of a .node file."
msgstr "Benchmark rendering of a .node file."
#: tools/gtk-rendernode-tool-benchmark.c:127
#: tools/gtk-rendernode-tool-benchmark.c:129
#: tools/gtk-rendernode-tool-extract.c:316 tools/gtk-rendernode-tool-info.c:248
#: tools/gtk-rendernode-tool-render.c:283 tools/gtk-rendernode-tool-show.c:144
#, c-format
msgid "No .node file specified\n"
msgstr "No .node file specified\n"
#: tools/gtk-rendernode-tool-benchmark.c:133
#: tools/gtk-rendernode-tool-benchmark.c:135
#, c-format
msgid "Can only benchmark a single .node file\n"
msgstr "Can only benchmark a single .node file\n"
@@ -8105,12 +8086,10 @@ msgstr "Failed to create renderer: %s\n"
#: tools/gtk-rendernode-tool-extract.c:73
#: tools/gtk-rendernode-tool-extract.c:149
#, c-format
#| msgid "Failed to write header\n"
msgid "Failed to write %s\n"
msgstr "Failed to write %s\n"
#: tools/gtk-rendernode-tool-extract.c:292
#| msgid "Renderer to use"
msgid "Directory to use"
msgstr "Directory to use"
@@ -8123,7 +8102,6 @@ msgid "Be verbose"
msgstr "Be verbose"
#: tools/gtk-rendernode-tool-extract.c:303
#| msgid "Show the render node."
msgid "Extract data urls from the render node."
msgstr "Extract data urls from the render node."
+146 -141
View File
@@ -20,8 +20,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gtk+-master-po-gl-77922___.merged\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n"
"POT-Creation-Date: 2024-09-04 06:11+0000\n"
"PO-Revision-Date: 2024-09-04 08:33+0200\n"
"POT-Creation-Date: 2024-09-28 10:01+0000\n"
"PO-Revision-Date: 2024-09-28 23:49+0200\n"
"Last-Translator: Fran Dieguez <fran.dieguez@gnome.org>\n"
"Language-Team: Galician <proxecto@trasno.gal>\n"
"Language: gl\n"
@@ -34,7 +34,7 @@ msgstr ""
"X-DL-Module: gtk\n"
"X-DL-State: None\n"
"X-DL-Team: gl\n"
"X-Generator: Poedit 3.5\n"
"X-Generator: Poedit 3.4.4\n"
"X-Project-Style: gnome\n"
#: gdk/broadway/gdkbroadway-server.c:135
@@ -89,54 +89,54 @@ msgstr "Non foi posíbel fornecer contidos como %s"
msgid "The current backend does not support OpenGL"
msgstr "O backend actual non admite o OpenGL"
#: gdk/gdkdisplay.c:1315 gdk/gdkvulkancontext.c:1633
#: gdk/gdkdisplay.c:1317 gdk/gdkvulkancontext.c:1668
msgid "Vulkan support disabled via GDK_DISABLE"
msgstr "Compatibilidade de Vulkan desactivada mediante GDK_DISABLE"
#: gdk/gdkdisplay.c:1369
#: gdk/gdkdisplay.c:1371
msgid "OpenGL support disabled via GDK_DISABLE"
msgstr "Compatibilidade de GL desactivada mediante GDK_DISABLE"
#: gdk/gdkdisplay.c:1683
#: gdk/gdkdisplay.c:1685
msgid "No EGL configuration available"
msgstr "Non hai unha configuración de EGL dispoñíbel"
#: gdk/gdkdisplay.c:1691
#: gdk/gdkdisplay.c:1693
msgid "Failed to get EGL configurations"
msgstr "Produciuse un fallo ao obter as configuracións de EGL"
#: gdk/gdkdisplay.c:1721
#: gdk/gdkdisplay.c:1723
msgid "No EGL configuration with required features found"
msgstr "Non se atoparon configuracións de EGL coas características requiridas"
#: gdk/gdkdisplay.c:1728
#: gdk/gdkdisplay.c:1730
msgid "No perfect EGL configuration found"
msgstr "Non se atopou a configuración de EGL perfecta"
#: gdk/gdkdisplay.c:1770
#: gdk/gdkdisplay.c:1772
#, c-format
msgid "EGL implementation is missing extension %s"
msgid_plural "EGL implementation is missing %2$d extensions: %1$s"
msgstr[0] "Á implementación de EGL fáltalle a extensión %s"
msgstr[1] "Á implementación de EGL fáltanlle %2$d extensións: %1$s"
#: gdk/gdkdisplay.c:1819
#: gdk/gdkdisplay.c:1821
msgid "libEGL not available in this sandbox"
msgstr "libEGL non está dispoñíbel neste sandbox"
#: gdk/gdkdisplay.c:1820
#: gdk/gdkdisplay.c:1822
msgid "libEGL not available"
msgstr "libEGL non dispoñíbel"
#: gdk/gdkdisplay.c:1830
#: gdk/gdkdisplay.c:1832
msgid "Failed to create EGL display"
msgstr "Non é posíbel crear unha pantalla de EGL"
#: gdk/gdkdisplay.c:1839
#: gdk/gdkdisplay.c:1841
msgid "Could not initialize EGL display"
msgstr "Non foi posíbel inicializar a pantalla de EGL"
#: gdk/gdkdisplay.c:1849
#: gdk/gdkdisplay.c:1851
#, c-format
msgid "EGL version %d.%d is too old. GTK requires %d.%d"
msgstr "A versión de EGL %d.%d é demasiado antiga. GTK require %d.%d"
@@ -153,9 +153,9 @@ msgstr "Formatos non compatíbeis para transferir contidos."
msgid "No GL API allowed."
msgstr "Non se permite a API GL."
#: gdk/gdkglcontext.c:455 gdk/win32/gdkglcontext-win32-wgl.c:694
#: gdk/win32/gdkglcontext-win32-wgl.c:837
#: gdk/win32/gdkglcontext-win32-wgl.c:881 gdk/x11/gdkglcontext-glx.c:697
#: gdk/gdkglcontext.c:455 gdk/win32/gdkglcontext-win32-wgl.c:723
#: gdk/win32/gdkglcontext-win32-wgl.c:866
#: gdk/win32/gdkglcontext-win32-wgl.c:910 gdk/x11/gdkglcontext-glx.c:697
msgid "Unable to create a GL context"
msgstr "Non é posíbel crear un contexto GL"
@@ -185,7 +185,7 @@ msgstr "Tentando usar %s, pero %s xa está en uso"
msgid "Trying to use %s, but it is disabled via GDK_DISABLE"
msgstr "Tentando usar %s, pero está desactivado mediante GDK_DISABLE"
#: gdk/gdktexture.c:661
#: gdk/gdktexture.c:672
msgid "Unknown image format."
msgstr "O formato de imaxe é descoñecido."
@@ -614,8 +614,8 @@ msgstr "Non foi posíbel cargar os datos TIFF"
msgid "Reading data failed at row %d"
msgstr "Fallou a lectura o dato na fila %d"
#: gdk/macos/gdkmacospasteboard.c:211 gdk/wayland/gdkclipboard-wayland.c:238
#: gdk/wayland/gdkdrop-wayland.c:205 gdk/wayland/gdkprimary-wayland.c:337
#: gdk/macos/gdkmacospasteboard.c:211 gdk/wayland/gdkclipboard-wayland.c:244
#: gdk/wayland/gdkdrop-wayland.c:205 gdk/wayland/gdkprimary-wayland.c:343
#: gdk/win32/gdkdrop-win32.c:1018 gdk/win32/gdkdrop-win32.c:1067
#: gdk/x11/gdkclipboard-x11.c:799 gdk/x11/gdkdrop-x11.c:235
msgid "No compatible transfer format found"
@@ -772,22 +772,22 @@ msgid "Failed to transmute DnD data W32 format 0x%x to %p (%s)"
msgstr ""
"Produciuse un fallo ao transmutar os datos DnD W32 ao formato 0x%x to %p (%s)"
#: gdk/win32/gdkglcontext-win32-wgl.c:624
#: gdk/win32/gdkglcontext-win32-wgl.c:645
msgid "No GL implementation is available"
msgstr "Non hai unha implementación de GL dispoñíbel"
#: gdk/win32/gdkglcontext-win32-wgl.c:703
#: gdk/win32/gdkglcontext-win32-wgl.c:732
#, c-format
msgid "WGL version %d.%d is too low, need at least %d.%d"
msgstr ""
"A versión de WGL %d.%d é demasiado antiga, requírese cando menos a %d.%d"
#: gdk/win32/gdkglcontext-win32-wgl.c:721
#: gdk/win32/gdkglcontext-win32-wgl.c:750
#, c-format
msgid "GL implementation cannot share GL contexts"
msgstr "A implementación de GL non pode compartir os contextos de GL"
#: gdk/win32/gdkglcontext-win32-wgl.c:1001
#: gdk/win32/gdkglcontext-win32-wgl.c:1030
msgid "No available configurations for the given pixel format"
msgstr "Non hai configuracións dispoñíbeis para o formato de píxel fornecido"
@@ -903,7 +903,7 @@ msgstr ""
msgid "OpenGL ES 3.0 is not supported by this renderer."
msgstr "OpenGL ES 2.0 non está admitido por este renderizador."
#: gsk/gpu/gsknglrenderer.c:68
#: gsk/gpu/gsknglrenderer.c:69
msgid "OpenGL 3.3 required"
msgstr "Requírese OpenGL 3.3"
@@ -1874,7 +1874,7 @@ msgstr "O texto non debe aparecer dentro de <%s>"
#. * first day of the week to calendar:week_start:1 if you want Monday
#. * to be the first day of the week, and so on.
#.
#: gtk/gtkcalendar.c:666
#: gtk/gtkcalendar.c:670
msgid "calendar:week_start:0"
msgstr "calendar:week_start:1"
@@ -1888,21 +1888,10 @@ msgstr "calendar:week_start:1"
#. * text direction of RTL and specify "calendar:YM", then the year
#. * will appear to the right of the month.
#.
#: gtk/gtkcalendar.c:817
#: gtk/gtkcalendar.c:821
msgid "calendar:MY"
msgstr "calendar:MY"
#. Translators: This dictates how the year is displayed in
#. * gtkcalendar widget. See strftime() manual for the format.
#. * Use only ASCII in the translation.
#. *
#. * "%Y" is appropriate for most locales.
#.
#: gtk/gtkcalendar.c:1002
msgctxt "calendar year format"
msgid "%Y"
msgstr "%Y"
#. Translators: this defines whether the day numbers should use
#. * localized digits or the ones used in English (0123...).
#. *
@@ -1913,12 +1902,23 @@ msgstr "%Y"
#. * digits. That needs support from your system and locale definition
#. * too.
#.
#: gtk/gtkcalendar.c:1039
#: gtk/gtkcalendar.c:1002
#, c-format
msgctxt "calendar:day:digits"
msgid "%d"
msgstr "%d"
#. Translators: This dictates how the year is displayed in
#. * gtkcalendar widget. See strftime() manual for the format.
#. * Use only ASCII in the translation.
#. *
#. * "%Y" is appropriate for most locales.
#.
#: gtk/gtkcalendar.c:1106
msgctxt "calendar year format"
msgid "%Y"
msgstr "%Y"
#. Translators: this defines whether the week numbers should use
#. * localized digits or the ones used in English (0123...).
#. *
@@ -1927,7 +1927,7 @@ msgstr "%d"
#. * Note that translating this doesn't guarantee that you get localized
#. * digits. That needs support from your system and locale definition
#. * too.
#: gtk/gtkcalendar.c:1104
#: gtk/gtkcalendar.c:1152
#, c-format
msgctxt "calendar:week:digits"
msgid "%d"
@@ -2196,7 +2196,7 @@ msgid "Margins from Printer…"
msgstr "Marxes da impresora…"
#. And show the custom paper dialog
#: gtk/print/gtkcustompaperunixdialog.c:377 gtk/print/gtkprintunixdialog.c:2970
#: gtk/print/gtkcustompaperunixdialog.c:377 gtk/print/gtkprintunixdialog.c:2975
msgid "Manage Custom Sizes"
msgstr "Xestionar tamaños personalizados"
@@ -2312,7 +2312,7 @@ msgid "A file with that name already exists"
msgstr "Xa existe un ficheiro con ese nome"
#: gtk/gtkfilechoosernative.c:520 gtk/gtkfilechoosernative.c:600
#: gtk/gtkfilechooserwidget.c:1213 gtk/gtkfilechooserwidget.c:5014
#: gtk/gtkfilechooserwidget.c:1213 gtk/gtkfilechooserwidget.c:5017
#: gtk/gtkfiledialog.c:840 gtk/gtkmessagedialog.c:170
#: gtk/gtkmessagedialog.c:179 gtk/gtkmountoperation.c:608
#: gtk/print/gtkpagesetupunixdialog.c:282 gtk/print/gtkprintbackend.c:638
@@ -2408,7 +2408,7 @@ msgid "If you delete an item, it will be permanently lost."
msgstr "Se elimina un elemento perderase para sempre."
#: gtk/gtkfilechooserwidget.c:1213 gtk/gtkfilechooserwidget.c:1815
#: gtk/gtklabel.c:5883 gtk/gtktext.c:6334 gtk/gtktextview.c:9237
#: gtk/gtklabel.c:5881 gtk/gtktext.c:6334 gtk/gtktextview.c:9237
msgid "_Delete"
msgstr "E_liminar"
@@ -2471,7 +2471,7 @@ msgid "Home"
msgstr "Cartafol persoal"
#. this is the header for the location column in the print dialog
#: gtk/gtkfilechooserwidget.c:2195 gtk/gtkfilechooserwidget.c:7436
#: gtk/gtkfilechooserwidget.c:2195 gtk/gtkfilechooserwidget.c:7439
#: gtk/inspector/css-node-tree.ui:76 gtk/print/ui/gtkprintunixdialog.ui:111
msgid "Location"
msgstr "Localización"
@@ -2494,8 +2494,8 @@ msgstr "Buscando"
msgid "Enter location or URL"
msgstr "Escriba a localización ou URL"
#: gtk/gtkfilechooserwidget.c:3444 gtk/gtkfilechooserwidget.c:5801
#: gtk/gtkfilechooserwidget.c:7458
#: gtk/gtkfilechooserwidget.c:3444 gtk/gtkfilechooserwidget.c:5804
#: gtk/gtkfilechooserwidget.c:7461
msgid "Modified"
msgstr "Modificado"
@@ -2578,59 +2578,59 @@ msgstr "Orientación"
msgid "Spreadsheet"
msgstr "Folla de cálculo"
#: gtk/gtkfilechooserwidget.c:5006 gtk/print/gtkprintunixdialog.c:673
#: gtk/gtkfilechooserwidget.c:5009 gtk/print/gtkprintunixdialog.c:673
#, c-format
msgid "A file named “%s” already exists. Do you want to replace it?"
msgstr "Xa existe un ficheiro co nome «%s». Desexa substituílo?"
#: gtk/gtkfilechooserwidget.c:5008 gtk/print/gtkprintunixdialog.c:677
#: gtk/gtkfilechooserwidget.c:5011 gtk/print/gtkprintunixdialog.c:677
#, c-format
msgid ""
"The file already exists in “%s”. Replacing it will overwrite its contents."
msgstr ""
"O ficheiro xa existe en «%s». Ao substituílo sobrescribirá os seus contidos."
#: gtk/gtkfilechooserwidget.c:5014 gtk/print/gtkprintunixdialog.c:685
#: gtk/gtkfilechooserwidget.c:5017 gtk/print/gtkprintunixdialog.c:685
msgid "_Replace"
msgstr "_Substituír"
#: gtk/gtkfilechooserwidget.c:5169
#: gtk/gtkfilechooserwidget.c:5172
msgid "You do not have access to the specified folder."
msgstr "Vostede non ten acceso para o cartafol especificado."
#: gtk/gtkfilechooserwidget.c:5748
#: gtk/gtkfilechooserwidget.c:5751
msgid "Could not send the search request"
msgstr "Non foi posíbel enviar a solicitude de busca"
#: gtk/gtkfilechooserwidget.c:6029
#: gtk/gtkfilechooserwidget.c:6032
msgid "Accessed"
msgstr "Accedido"
#: gtk/gtkfilechooserwidget.c:7414
#: gtk/gtkfilechooserwidget.c:7417
msgid "_Size"
msgstr "_Tamaño"
#: gtk/gtkfilechooserwidget.c:7418
#: gtk/gtkfilechooserwidget.c:7421
msgid "T_ype"
msgstr "_Tipo"
#: gtk/gtkfilechooserwidget.c:7422
#: gtk/gtkfilechooserwidget.c:7425
msgid "_Time"
msgstr "_Hora"
#: gtk/gtkfilechooserwidget.c:7428 gtk/gtkplacessidebar.c:2306
#: gtk/gtkfilechooserwidget.c:7431 gtk/gtkplacessidebar.c:2306
#: gtk/inspector/a11y.ui:43 gtk/inspector/actions.ui:18
#: gtk/inspector/css-node-tree.ui:22 gtk/inspector/prop-list.ui:24
#: gtk/ui/gtkfilechooserwidget.ui:396 gtk/print/ui/gtkprintunixdialog.ui:80
msgid "Name"
msgstr "Nome"
#: gtk/gtkfilechooserwidget.c:7445 gtk/inspector/resource-list.ui:82
#: gtk/gtkfilechooserwidget.c:7448 gtk/inspector/resource-list.ui:82
#: gtk/ui/gtkfontchooserwidget.ui:218 gtk/ui/gtkfontchooserwidget.ui:387
msgid "Size"
msgstr "Tamaño"
#: gtk/gtkfilechooserwidget.c:7451 gtk/inspector/misc-info.ui:57
#: gtk/gtkfilechooserwidget.c:7454 gtk/inspector/misc-info.ui:57
#: gtk/inspector/prop-list.ui:35 gtk/inspector/statistics.ui:36
msgid "Type"
msgstr "Tipo"
@@ -2748,31 +2748,31 @@ msgstr "Pechar"
msgid "Close the infobar"
msgstr "Pecha a barra de información"
#: gtk/gtklabel.c:5880 gtk/gtktext.c:6322 gtk/gtktextview.c:9225
#: gtk/gtklabel.c:5878 gtk/gtktext.c:6322 gtk/gtktextview.c:9225
msgid "Cu_t"
msgstr "Cor_tar"
#: gtk/gtklabel.c:5881 gtk/gtktext.c:6326 gtk/gtktextview.c:9229
#: gtk/gtklabel.c:5879 gtk/gtktext.c:6326 gtk/gtktextview.c:9229
msgid "_Copy"
msgstr "_Copiar"
#: gtk/gtklabel.c:5882 gtk/gtktext.c:6330 gtk/gtktextview.c:9233
#: gtk/gtklabel.c:5880 gtk/gtktext.c:6330 gtk/gtktextview.c:9233
msgid "_Paste"
msgstr "_Pegar"
#: gtk/gtklabel.c:5888 gtk/gtktext.c:6343 gtk/gtktextview.c:9258
#: gtk/gtklabel.c:5886 gtk/gtktext.c:6343 gtk/gtktextview.c:9258
msgid "Select _All"
msgstr "Seleccionar _todo"
#: gtk/gtklabel.c:5893
#: gtk/gtklabel.c:5891
msgid "_Open Link"
msgstr "_Abrir ligazón"
#: gtk/gtklabel.c:5897
#: gtk/gtklabel.c:5895
msgid "Copy _Link Address"
msgstr "Copiar enderezo da _ligazón"
#: gtk/gtklabel.c:5941 gtk/gtktext.c:2851 gtk/gtktextview.c:9307
#: gtk/gtklabel.c:5939 gtk/gtktext.c:2851 gtk/gtktextview.c:9307
msgid "Context menu"
msgstr "Menú contextual"
@@ -3366,90 +3366,90 @@ msgstr "Non dispoñíbel"
#. * jobs. %s gets replaced by the application name, %d gets replaced
#. * by the job number.
#.
#: gtk/print/gtkprintoperation.c:252
#: gtk/print/gtkprintoperation.c:255
#, c-format
msgid "%s job #%d"
msgstr "%s traballo #%d"
#: gtk/print/gtkprintoperation.c:1699
#: gtk/print/gtkprintoperation.c:1702
msgctxt "print operation status"
msgid "Initial state"
msgstr "Estado inicial"
#: gtk/print/gtkprintoperation.c:1700
#: gtk/print/gtkprintoperation.c:1703
msgctxt "print operation status"
msgid "Preparing to print"
msgstr "Preparándose para imprimir"
#: gtk/print/gtkprintoperation.c:1701
#: gtk/print/gtkprintoperation.c:1704
msgctxt "print operation status"
msgid "Generating data"
msgstr "Xerando datos"
#: gtk/print/gtkprintoperation.c:1702
#: gtk/print/gtkprintoperation.c:1705
msgctxt "print operation status"
msgid "Sending data"
msgstr "Enviando datos"
#: gtk/print/gtkprintoperation.c:1703
#: gtk/print/gtkprintoperation.c:1706
msgctxt "print operation status"
msgid "Waiting"
msgstr "Agardando"
#: gtk/print/gtkprintoperation.c:1704
#: gtk/print/gtkprintoperation.c:1707
msgctxt "print operation status"
msgid "Blocking on issue"
msgstr "Bloqueada por un problema"
#: gtk/print/gtkprintoperation.c:1705
#: gtk/print/gtkprintoperation.c:1708
msgctxt "print operation status"
msgid "Printing"
msgstr "Imprimindo"
#: gtk/print/gtkprintoperation.c:1706
#: gtk/print/gtkprintoperation.c:1709
msgctxt "print operation status"
msgid "Finished"
msgstr "Finalizado"
#: gtk/print/gtkprintoperation.c:1707
#: gtk/print/gtkprintoperation.c:1710
msgctxt "print operation status"
msgid "Finished with error"
msgstr "Finalizado con erros"
#: gtk/print/gtkprintoperation.c:2250
#: gtk/print/gtkprintoperation.c:2254
#, c-format
msgid "Preparing %d"
msgstr "Preparando %d"
#: gtk/print/gtkprintoperation.c:2252 gtk/print/gtkprintoperation.c:2871
#: gtk/print/gtkprintoperation.c:2256 gtk/print/gtkprintoperation.c:2875
#, c-format
msgid "Preparing"
msgstr "Preparando"
#: gtk/print/gtkprintoperation.c:2255
#: gtk/print/gtkprintoperation.c:2259
#, c-format
msgid "Printing %d"
msgstr "Imprimindo %d"
#: gtk/print/gtkprintoperation.c:2904
#: gtk/print/gtkprintoperation.c:2908
#, c-format
msgid "Error creating print preview"
msgstr "Produciuse un erro ao crear a vista previa da páxina"
#: gtk/print/gtkprintoperation.c:2907
#: gtk/print/gtkprintoperation.c:2911
#, c-format
msgid "The most probable reason is that a temporary file could not be created."
msgstr ""
"O motivo máis probábel é que non foi posíbel crear un ficheiro temporal."
#. window
#: gtk/print/gtkprintoperation-portal.c:264
#: gtk/print/gtkprintoperation-portal.c:594
#: gtk/print/gtkprintoperation-portal.c:663 gtk/print/gtkprintunixdialog.c:3010
#: gtk/print/gtkprintoperation-portal.c:273
#: gtk/print/gtkprintoperation-portal.c:603
#: gtk/print/gtkprintoperation-portal.c:672 gtk/print/gtkprintunixdialog.c:3015
msgid "Print"
msgstr "Imprimir"
#: gtk/print/gtkprintoperation-unix.c:481
#: gtk/print/gtkprintoperation-unix.c:490
#: gtk/print/gtkprintoperation-win32.c:1505
msgid "Application"
msgstr "Aplicación"
@@ -3520,11 +3520,11 @@ msgstr "_Vista previa"
msgid "_Print"
msgstr "_Imprimir"
#: gtk/print/gtkprintunixdialog.c:961
#: gtk/print/gtkprintunixdialog.c:966
msgid "Getting printer information failed"
msgstr "Produciuse un erro ao obter a información da impresora"
#: gtk/print/gtkprintunixdialog.c:1885
#: gtk/print/gtkprintunixdialog.c:1890
msgid "Getting printer information…"
msgstr "Obtendo información da impresora…"
@@ -3534,63 +3534,63 @@ msgstr "Obtendo información da impresora…"
#. Translators: These strings name the possible arrangements of
#. * multiple pages on a sheet when printing
#.
#: gtk/print/gtkprintunixdialog.c:2755
#: gtk/print/gtkprintunixdialog.c:2760
#: modules/printbackends/gtkprintbackendcups.c:5677
msgid "Left to right, top to bottom"
msgstr "De esquerda a dereita, de arriba a abaixo"
#: gtk/print/gtkprintunixdialog.c:2755
#: gtk/print/gtkprintunixdialog.c:2760
#: modules/printbackends/gtkprintbackendcups.c:5677
msgid "Left to right, bottom to top"
msgstr "De esquerda a dereita, de abaixo a arriba"
#: gtk/print/gtkprintunixdialog.c:2756
#: gtk/print/gtkprintunixdialog.c:2761
#: modules/printbackends/gtkprintbackendcups.c:5678
msgid "Right to left, top to bottom"
msgstr "De dereita a esquerda, de arriba a abaixo"
#: gtk/print/gtkprintunixdialog.c:2756
#: gtk/print/gtkprintunixdialog.c:2761
#: modules/printbackends/gtkprintbackendcups.c:5678
msgid "Right to left, bottom to top"
msgstr "De dereita a esquerda, de abaixo a arriba"
#: gtk/print/gtkprintunixdialog.c:2757
#: gtk/print/gtkprintunixdialog.c:2762
#: modules/printbackends/gtkprintbackendcups.c:5679
msgid "Top to bottom, left to right"
msgstr "De arriba a abaixo, de esquerda a dereita"
#: gtk/print/gtkprintunixdialog.c:2757
#: gtk/print/gtkprintunixdialog.c:2762
#: modules/printbackends/gtkprintbackendcups.c:5679
msgid "Top to bottom, right to left"
msgstr "De arriba a abaixo, de dereita a esquerda"
#: gtk/print/gtkprintunixdialog.c:2758
#: gtk/print/gtkprintunixdialog.c:2763
#: modules/printbackends/gtkprintbackendcups.c:5680
msgid "Bottom to top, left to right"
msgstr "De abaixo a arriba, de esquerda a dereita"
#: gtk/print/gtkprintunixdialog.c:2758
#: gtk/print/gtkprintunixdialog.c:2763
#: modules/printbackends/gtkprintbackendcups.c:5680
msgid "Bottom to top, right to left"
msgstr "De abaixo a arriba, de dereita a esquerda"
#: gtk/print/gtkprintunixdialog.c:2762 gtk/print/gtkprintunixdialog.c:2775
#: gtk/print/gtkprintunixdialog.c:2767 gtk/print/gtkprintunixdialog.c:2780
msgid "Page Ordering"
msgstr "Orde das follas"
#: gtk/print/gtkprintunixdialog.c:2791
#: gtk/print/gtkprintunixdialog.c:2796
msgid "Left to right"
msgstr "De esquerda a dereita"
#: gtk/print/gtkprintunixdialog.c:2792
#: gtk/print/gtkprintunixdialog.c:2797
msgid "Right to left"
msgstr "De dereita a esquerda"
#: gtk/print/gtkprintunixdialog.c:2804
#: gtk/print/gtkprintunixdialog.c:2809
msgid "Top to bottom"
msgstr "De arriba a abaixo"
#: gtk/print/gtkprintunixdialog.c:2805
#: gtk/print/gtkprintunixdialog.c:2810
msgid "Bottom to top"
msgstr "De abaixo a arriba"
@@ -3705,7 +3705,7 @@ msgstr "Non se atopou ningún resultado"
msgid "Try a different search"
msgstr "Tente unha busca diferente"
#: gtk/gtkstacksidebar.c:154
#: gtk/gtkstacksidebar.c:155
msgctxt "accessibility"
msgid "Sidebar"
msgstr "Barra lateral"
@@ -3822,17 +3822,17 @@ msgstr "Mostrar"
msgid "Hover to load"
msgstr "Pasar por enriba para cargar"
#: gtk/inspector/clipboard.c:278
#: gtk/inspector/clipboard.c:286
msgctxt "clipboard"
msgid "empty"
msgstr "baleiro"
#: gtk/inspector/clipboard.c:283 gtk/inspector/clipboard.c:325
#: gtk/inspector/clipboard.c:291 gtk/inspector/clipboard.c:344
msgctxt "clipboard"
msgid "local"
msgstr "local"
#: gtk/inspector/clipboard.c:285 gtk/inspector/clipboard.c:327
#: gtk/inspector/clipboard.c:293 gtk/inspector/clipboard.c:346
msgctxt "clipboard"
msgid "remote"
msgstr "remoto"
@@ -3926,32 +3926,32 @@ msgctxt "GL version"
msgid "None"
msgstr "Ningún"
#: gtk/inspector/general.c:465
#: gtk/inspector/general.c:464
msgctxt "GL version"
msgid "Unknown"
msgstr "Descoñecido"
#: gtk/inspector/general.c:527
#: gtk/inspector/general.c:526
msgctxt "Vulkan device"
msgid "Disabled"
msgstr "Desactivado"
#: gtk/inspector/general.c:528 gtk/inspector/general.c:529
#: gtk/inspector/general.c:527 gtk/inspector/general.c:528
msgctxt "Vulkan version"
msgid "Disabled"
msgstr "Desactivada"
#: gtk/inspector/general.c:580
#: gtk/inspector/general.c:579
msgctxt "Vulkan device"
msgid "None"
msgstr "Ningún"
#: gtk/inspector/general.c:581 gtk/inspector/general.c:582
#: gtk/inspector/general.c:580 gtk/inspector/general.c:581
msgctxt "Vulkan version"
msgid "None"
msgstr "Ningunha"
#: gtk/inspector/general.c:935
#: gtk/inspector/general.c:934
msgid "IM Context is hardcoded by GTK_IM_MODULE"
msgstr "O contexto de IM está incrustado á man por GTK_IM_MODULE"
@@ -7180,35 +7180,35 @@ msgctxt "printer option value"
msgid "Unavailable"
msgstr "Non dispoñíbel"
#: modules/printbackends/gtkprintbackendfile.c:238
#: modules/printbackends/gtkprintbackendfile.c:263
msgid "output"
msgstr "saída"
#: modules/printbackends/gtkprintbackendfile.c:510
#: modules/printbackends/gtkprintbackendfile.c:543
msgid "Print to File"
msgstr "Imprimir a un ficheiro"
#: modules/printbackends/gtkprintbackendfile.c:636
#: modules/printbackends/gtkprintbackendfile.c:675
msgid "PDF"
msgstr "PDF"
#: modules/printbackends/gtkprintbackendfile.c:636
#: modules/printbackends/gtkprintbackendfile.c:675
msgid "PostScript"
msgstr "PostScript"
#: modules/printbackends/gtkprintbackendfile.c:636
#: modules/printbackends/gtkprintbackendfile.c:675
msgid "SVG"
msgstr "SVG"
#: modules/printbackends/gtkprintbackendfile.c:649
#: modules/printbackends/gtkprintbackendfile.c:688
msgid "Pages per _sheet:"
msgstr "Pá_xinas por folla:"
#: modules/printbackends/gtkprintbackendfile.c:709
#: modules/printbackends/gtkprintbackendfile.c:758
msgid "File"
msgstr "Ficheiro"
#: modules/printbackends/gtkprintbackendfile.c:719
#: modules/printbackends/gtkprintbackendfile.c:768
msgid "_Output format"
msgstr "Formato de _saída"
@@ -7289,7 +7289,7 @@ 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-builder-tool-simplify.c:2623 tools/gtk-builder-tool-validate.c:261
#: tools/gtk-image-tool-compare.c:43 tools/gtk-image-tool-info.c:68
#: tools/gtk-path-tool-render.c:121 tools/gtk-rendernode-tool-compare.c:67
#: tools/gtk-rendernode-tool-extract.c:294 tools/gtk-rendernode-tool-info.c:226
@@ -7326,7 +7326,7 @@ msgstr "Usar o estilo dun ficheiro CSS"
#: tools/gtk-builder-tool-preview.c:187 tools/gtk-builder-tool-screenshot.c:370
#: tools/gtk-builder-tool-validate.c:268
#: tools/gtk-rendernode-tool-benchmark.c:106
#: tools/gtk-rendernode-tool-benchmark.c:108
#: tools/gtk-rendernode-tool-render.c:262 tools/gtk-rendernode-tool-show.c:123
#, c-format
msgid "Could not initialize windowing system\n"
@@ -7337,7 +7337,7 @@ msgid "Preview the file."
msgstr "Previsualizar o ficheiro."
#: tools/gtk-builder-tool-preview.c:208 tools/gtk-builder-tool-screenshot.c:391
#: tools/gtk-builder-tool-simplify.c:2552 tools/gtk-builder-tool-validate.c:287
#: tools/gtk-builder-tool-simplify.c:2646 tools/gtk-builder-tool-validate.c:287
#, c-format
msgid "No .ui file specified\n"
msgstr "Non se especificou ningún ficheiro .ui\n"
@@ -7397,7 +7397,7 @@ msgstr "Substituír o ficheiro existente"
#: tools/gtk-builder-tool-screenshot.c:363 tools/gtk-image-tool-compare.c:46
#: tools/gtk-image-tool-convert.c:89 tools/gtk-image-tool-relabel.c:86
#: tools/gtk-image-tool-show.c:119 tools/gtk-rendernode-tool-benchmark.c:97
#: tools/gtk-image-tool-show.c:119 tools/gtk-rendernode-tool-benchmark.c:99
#: tools/gtk-rendernode-tool-render.c:255
msgid "FILE…"
msgstr "FICHEIRO…"
@@ -7436,46 +7436,51 @@ msgstr "Non se atopou a propiedade da cela %s"
msgid "Layout property %s not found"
msgstr "Non se atopou a propiedade de disposición %s"
#: tools/gtk-builder-tool-simplify.c:1397
#: tools/gtk-builder-tool-simplify.c:1400
#, c-format
msgid "%s only accepts three children"
msgstr "%s só acepta tres fillos"
#: tools/gtk-builder-tool-simplify.c:2455
#: tools/gtk-builder-tool-simplify.c:1773
#, c-format
msgid "%s only accepts one center child"
msgstr "%s só acepta un fillo centrado"
#: tools/gtk-builder-tool-simplify.c:2549
#, c-format
msgid "Cant load “%s”: %s\n"
msgstr "Non foi posíbel cargar o ficheiro «%s»: %s\n"
#: tools/gtk-builder-tool-simplify.c:2466
#: tools/gtk-builder-tool-simplify.c:2472
#: tools/gtk-builder-tool-simplify.c:2478
#: tools/gtk-builder-tool-simplify.c:2560
#: tools/gtk-builder-tool-simplify.c:2566
#: tools/gtk-builder-tool-simplify.c:2572
#, c-format
msgid "Cant parse “%s”: %s\n"
msgstr "Non é posíbel analizar o ficheiro «%s»: %s\n"
#: tools/gtk-builder-tool-simplify.c:2504
#: tools/gtk-builder-tool-simplify.c:2598
#, c-format
msgid "Failed to read “%s”: %s\n"
msgstr "Produciuse un erro ao ler «%s» : %s\n"
#: tools/gtk-builder-tool-simplify.c:2510
#: tools/gtk-builder-tool-simplify.c:2604
#, c-format
msgid "Failed to write “%s”: “%s”\n"
msgstr "Produciuse un erro ao escribir «%s» : «%s»\n"
#: tools/gtk-builder-tool-simplify.c:2527
#: tools/gtk-builder-tool-simplify.c:2621
msgid "Replace the file"
msgstr "Substituír o ficheiro"
#: tools/gtk-builder-tool-simplify.c:2528
#: tools/gtk-builder-tool-simplify.c:2622
msgid "Convert from GTK 3 to GTK 4"
msgstr "Converter desde GTK 3 a GTK 4"
#: tools/gtk-builder-tool-simplify.c:2539
#: tools/gtk-builder-tool-simplify.c:2633
msgid "Simplify the file."
msgstr "Simplificar o ficheiro."
#: tools/gtk-builder-tool-simplify.c:2558
#: tools/gtk-builder-tool-simplify.c:2652
#, c-format
msgid "Can only simplify a single .ui file without --replace\n"
msgstr "Só pode simplificar un ficheiro .ui sen --replace\n"
@@ -8076,40 +8081,40 @@ msgstr ""
" render Sacar unha captura dun nodo\n"
"\n"
#: tools/gtk-rendernode-tool-benchmark.c:94
#: tools/gtk-rendernode-tool-benchmark.c:96
msgid "Add renderer to benchmark"
msgstr "Engadir renderizador á proba de rendemento"
#: tools/gtk-rendernode-tool-benchmark.c:94
#: tools/gtk-rendernode-tool-benchmark.c:96
#: tools/gtk-rendernode-tool-compare.c:65
#: tools/gtk-rendernode-tool-render.c:254
msgid "RENDERER"
msgstr "RENDERIZADOR"
#: tools/gtk-rendernode-tool-benchmark.c:95
#: tools/gtk-rendernode-tool-benchmark.c:97
msgid "Number of runs with each renderer"
msgstr "Número de execucións con cada renderizador"
#: tools/gtk-rendernode-tool-benchmark.c:95
#: tools/gtk-rendernode-tool-benchmark.c:97
msgid "RUNS"
msgstr "EXECUCIÓNS"
#: tools/gtk-rendernode-tool-benchmark.c:96
#: tools/gtk-rendernode-tool-benchmark.c:98
msgid "Dont download result/wait for GPU to finish"
msgstr "Non descargar os resultados/agardar que a GPU remate"
#: tools/gtk-rendernode-tool-benchmark.c:114
#: tools/gtk-rendernode-tool-benchmark.c:116
msgid "Benchmark rendering of a .node file."
msgstr "Probar o rendemento dun ficheiro .node."
#: tools/gtk-rendernode-tool-benchmark.c:127
#: tools/gtk-rendernode-tool-benchmark.c:129
#: tools/gtk-rendernode-tool-extract.c:316 tools/gtk-rendernode-tool-info.c:248
#: tools/gtk-rendernode-tool-render.c:283 tools/gtk-rendernode-tool-show.c:144
#, c-format
msgid "No .node file specified\n"
msgstr "Non se especificou ningún ficheiro .node\n"
#: tools/gtk-rendernode-tool-benchmark.c:133
#: tools/gtk-rendernode-tool-benchmark.c:135
#, c-format
msgid "Can only benchmark a single .node file\n"
msgstr "Só pode probar o rendemento dun único ficheiro .node\n"
+2297 -1310
View File
File diff suppressed because it is too large Load Diff
+133 -128
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-09-08 03:58+0000\n"
"PO-Revision-Date: 2024-09-08 22:11+0300\n"
"POT-Creation-Date: 2024-09-29 16:30+0000\n"
"PO-Revision-Date: 2024-10-30 22:21+0200\n"
"Last-Translator: Aurimas Černius <aurisc4@gmail.com>\n"
"Language-Team: Lietuvių <gnome-lt@lists.akl.lt>\n"
"Language: lt\n"
@@ -25,7 +25,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"(n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 3.4.4\n"
"X-Generator: Poedit 3.5\n"
#: gdk/broadway/gdkbroadway-server.c:135
#, c-format
@@ -79,31 +79,31 @@ msgstr "Nepavyko pateikti turinio kaip %s"
msgid "The current backend does not support OpenGL"
msgstr "Dabartinė realizacija nepalaiko OpenGL"
#: gdk/gdkdisplay.c:1315 gdk/gdkvulkancontext.c:1633
#: gdk/gdkdisplay.c:1317 gdk/gdkvulkancontext.c:1668
msgid "Vulkan support disabled via GDK_DISABLE"
msgstr "Vulkan palaikymas išjungtas naudojant GDK_DISABLE"
#: gdk/gdkdisplay.c:1369
#: gdk/gdkdisplay.c:1371
msgid "OpenGL support disabled via GDK_DISABLE"
msgstr "GL palaikymas išjungtas naudojant GDK_DISABLE"
#: gdk/gdkdisplay.c:1683
#: gdk/gdkdisplay.c:1685
msgid "No EGL configuration available"
msgstr "Nėra prieinamos EGL konfigūracijos"
#: gdk/gdkdisplay.c:1691
#: gdk/gdkdisplay.c:1693
msgid "Failed to get EGL configurations"
msgstr "Nepavyko gauti EGL konfigūracijų"
#: gdk/gdkdisplay.c:1721
#: gdk/gdkdisplay.c:1723
msgid "No EGL configuration with required features found"
msgstr "Nerasta EGL konfigūracija su reikiamomis savybėmis"
#: gdk/gdkdisplay.c:1728
#: gdk/gdkdisplay.c:1730
msgid "No perfect EGL configuration found"
msgstr "Nerasta puikiai tinkanti EGL konfigūracija"
#: gdk/gdkdisplay.c:1770
#: gdk/gdkdisplay.c:1772
#, c-format
msgid "EGL implementation is missing extension %s"
msgid_plural "EGL implementation is missing %2$d extensions: %1$s"
@@ -111,23 +111,23 @@ msgstr[0] "EGL realizacijai trūksta %2$d plėtinio: %1$s"
msgstr[1] "EGL realizacijai trūksta %2$d plėtinių: %1$s"
msgstr[2] "EGL realizacijai trūksta %2$d plėtinių: %1$s"
#: gdk/gdkdisplay.c:1819
#: gdk/gdkdisplay.c:1821
msgid "libEGL not available in this sandbox"
msgstr "libEGL šioje apribotoje veiksenoje neprieinama"
#: gdk/gdkdisplay.c:1820
#: gdk/gdkdisplay.c:1822
msgid "libEGL not available"
msgstr "libEGL neprieinama"
#: gdk/gdkdisplay.c:1830
#: gdk/gdkdisplay.c:1832
msgid "Failed to create EGL display"
msgstr "Nepavyko sukurti EGL vaizduoklio"
#: gdk/gdkdisplay.c:1839
#: gdk/gdkdisplay.c:1841
msgid "Could not initialize EGL display"
msgstr "Nepavyko inicializuoti EGL vaizduoklio"
#: gdk/gdkdisplay.c:1849
#: gdk/gdkdisplay.c:1851
#, c-format
msgid "EGL version %d.%d is too old. GTK requires %d.%d"
msgstr "EGL versija %d.%d yra per sena. GTK reikalauja %d.%d"
@@ -605,8 +605,8 @@ msgstr "Nepavyko įkelti TIFF duomenų"
msgid "Reading data failed at row %d"
msgstr "Duomenų skaitymas nepavyko ties eilute %d"
#: gdk/macos/gdkmacospasteboard.c:211 gdk/wayland/gdkclipboard-wayland.c:238
#: gdk/wayland/gdkdrop-wayland.c:205 gdk/wayland/gdkprimary-wayland.c:337
#: gdk/macos/gdkmacospasteboard.c:211 gdk/wayland/gdkclipboard-wayland.c:244
#: gdk/wayland/gdkdrop-wayland.c:205 gdk/wayland/gdkprimary-wayland.c:343
#: gdk/win32/gdkdrop-win32.c:1018 gdk/win32/gdkdrop-win32.c:1067
#: gdk/x11/gdkclipboard-x11.c:799 gdk/x11/gdkdrop-x11.c:235
msgid "No compatible transfer format found"
@@ -867,7 +867,7 @@ msgstr "Ši GLES %d.%d realizacija nepalaiko pusės tikslumo viršūnių duomen
msgid "OpenGL ES 3.0 is not supported by this renderer."
msgstr "Šis piešėjas nepalaiko OpenGL ES 3.0."
#: gsk/gpu/gsknglrenderer.c:68
#: gsk/gpu/gsknglrenderer.c:69
msgid "OpenGL 3.3 required"
msgstr "Reikia OpenGL 3.3"
@@ -1838,7 +1838,7 @@ msgstr "Tekstas negali būti <%s> viduje"
#. * first day of the week to calendar:week_start:1 if you want Monday
#. * to be the first day of the week, and so on.
#.
#: gtk/gtkcalendar.c:666
#: gtk/gtkcalendar.c:670
msgid "calendar:week_start:0"
msgstr "calendar:week_start:1"
@@ -1852,21 +1852,10 @@ msgstr "calendar:week_start:1"
#. * text direction of RTL and specify "calendar:YM", then the year
#. * will appear to the right of the month.
#.
#: gtk/gtkcalendar.c:817
#: gtk/gtkcalendar.c:821
msgid "calendar:MY"
msgstr "calendar:YM"
#. Translators: This dictates how the year is displayed in
#. * gtkcalendar widget. See strftime() manual for the format.
#. * Use only ASCII in the translation.
#. *
#. * "%Y" is appropriate for most locales.
#.
#: gtk/gtkcalendar.c:1002
msgctxt "calendar year format"
msgid "%Y"
msgstr "%Y"
#. Translators: this defines whether the day numbers should use
#. * localized digits or the ones used in English (0123...).
#. *
@@ -1877,12 +1866,23 @@ msgstr "%Y"
#. * digits. That needs support from your system and locale definition
#. * too.
#.
#: gtk/gtkcalendar.c:1039
#: gtk/gtkcalendar.c:1002
#, c-format
msgctxt "calendar:day:digits"
msgid "%d"
msgstr "%d"
#. Translators: This dictates how the year is displayed in
#. * gtkcalendar widget. See strftime() manual for the format.
#. * Use only ASCII in the translation.
#. *
#. * "%Y" is appropriate for most locales.
#.
#: gtk/gtkcalendar.c:1106
msgctxt "calendar year format"
msgid "%Y"
msgstr "%Y"
#. Translators: this defines whether the week numbers should use
#. * localized digits or the ones used in English (0123...).
#. *
@@ -1891,7 +1891,7 @@ msgstr "%d"
#. * Note that translating this doesn't guarantee that you get localized
#. * digits. That needs support from your system and locale definition
#. * too.
#: gtk/gtkcalendar.c:1104
#: gtk/gtkcalendar.c:1152
#, c-format
msgctxt "calendar:week:digits"
msgid "%d"
@@ -2160,7 +2160,7 @@ msgid "Margins from Printer…"
msgstr "Paraštės iš spausdintuvo…"
#. And show the custom paper dialog
#: gtk/print/gtkcustompaperunixdialog.c:377 gtk/print/gtkprintunixdialog.c:2970
#: gtk/print/gtkcustompaperunixdialog.c:377 gtk/print/gtkprintunixdialog.c:2975
msgid "Manage Custom Sizes"
msgstr "Tvarkyti pasirinktinius dydžius"
@@ -2276,7 +2276,7 @@ msgid "A file with that name already exists"
msgstr "Jau yra failas tokiu pavadinimu"
#: gtk/gtkfilechoosernative.c:520 gtk/gtkfilechoosernative.c:600
#: gtk/gtkfilechooserwidget.c:1213 gtk/gtkfilechooserwidget.c:5014
#: gtk/gtkfilechooserwidget.c:1213 gtk/gtkfilechooserwidget.c:5017
#: gtk/gtkfiledialog.c:840 gtk/gtkmessagedialog.c:170
#: gtk/gtkmessagedialog.c:179 gtk/gtkmountoperation.c:608
#: gtk/print/gtkpagesetupunixdialog.c:282 gtk/print/gtkprintbackend.c:638
@@ -2369,7 +2369,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:1213 gtk/gtkfilechooserwidget.c:1815
#: gtk/gtklabel.c:5883 gtk/gtktext.c:6334 gtk/gtktextview.c:9237
#: gtk/gtklabel.c:5881 gtk/gtktext.c:6334 gtk/gtktextview.c:9237
msgid "_Delete"
msgstr "Iš_trinti"
@@ -2432,7 +2432,7 @@ msgid "Home"
msgstr "Asmeninis aplankas"
#. this is the header for the location column in the print dialog
#: gtk/gtkfilechooserwidget.c:2195 gtk/gtkfilechooserwidget.c:7436
#: gtk/gtkfilechooserwidget.c:2195 gtk/gtkfilechooserwidget.c:7439
#: gtk/inspector/css-node-tree.ui:76 gtk/print/ui/gtkprintunixdialog.ui:111
msgid "Location"
msgstr "Vieta"
@@ -2455,8 +2455,8 @@ msgstr "Ieškoma"
msgid "Enter location or URL"
msgstr "Įveskite vietą arba URL"
#: gtk/gtkfilechooserwidget.c:3444 gtk/gtkfilechooserwidget.c:5801
#: gtk/gtkfilechooserwidget.c:7458
#: gtk/gtkfilechooserwidget.c:3444 gtk/gtkfilechooserwidget.c:5804
#: gtk/gtkfilechooserwidget.c:7461
msgid "Modified"
msgstr "Pakeista"
@@ -2539,58 +2539,58 @@ msgstr "Pateiktis"
msgid "Spreadsheet"
msgstr "Skaičiuoklė"
#: gtk/gtkfilechooserwidget.c:5006 gtk/print/gtkprintunixdialog.c:673
#: gtk/gtkfilechooserwidget.c:5009 gtk/print/gtkprintunixdialog.c:673
#, c-format
msgid "A file named “%s” already exists. Do you want to replace it?"
msgstr "Failas pavadinimu „%s“ jau yra. Ar norite jį perrašyti?"
#: gtk/gtkfilechooserwidget.c:5008 gtk/print/gtkprintunixdialog.c:677
#: gtk/gtkfilechooserwidget.c:5011 gtk/print/gtkprintunixdialog.c:677
#, c-format
msgid ""
"The file already exists in “%s”. Replacing it will overwrite its contents."
msgstr "Failas vietoje „%s“ jau yra. Pakeitus jį, jo turinys bus perrašytas."
#: gtk/gtkfilechooserwidget.c:5014 gtk/print/gtkprintunixdialog.c:685
#: gtk/gtkfilechooserwidget.c:5017 gtk/print/gtkprintunixdialog.c:685
msgid "_Replace"
msgstr "_Pakeisti"
#: gtk/gtkfilechooserwidget.c:5169
#: gtk/gtkfilechooserwidget.c:5172
msgid "You do not have access to the specified folder."
msgstr "Neturite teisių prieiti nurodyto aplanko."
#: gtk/gtkfilechooserwidget.c:5748
#: gtk/gtkfilechooserwidget.c:5751
msgid "Could not send the search request"
msgstr "Nepavyko išsiųsti paieškos užklausos"
#: gtk/gtkfilechooserwidget.c:6029
#: gtk/gtkfilechooserwidget.c:6032
msgid "Accessed"
msgstr "Prieitas"
#: gtk/gtkfilechooserwidget.c:7414
#: gtk/gtkfilechooserwidget.c:7417
msgid "_Size"
msgstr "_Dydis"
#: gtk/gtkfilechooserwidget.c:7418
#: gtk/gtkfilechooserwidget.c:7421
msgid "T_ype"
msgstr "T_ipas"
#: gtk/gtkfilechooserwidget.c:7422
#: gtk/gtkfilechooserwidget.c:7425
msgid "_Time"
msgstr "_Laikas"
#: gtk/gtkfilechooserwidget.c:7428 gtk/gtkplacessidebar.c:2306
#: gtk/gtkfilechooserwidget.c:7431 gtk/gtkplacessidebar.c:2306
#: gtk/inspector/a11y.ui:43 gtk/inspector/actions.ui:18
#: gtk/inspector/css-node-tree.ui:22 gtk/inspector/prop-list.ui:24
#: gtk/ui/gtkfilechooserwidget.ui:396 gtk/print/ui/gtkprintunixdialog.ui:80
msgid "Name"
msgstr "Pavadinimas"
#: gtk/gtkfilechooserwidget.c:7445 gtk/inspector/resource-list.ui:82
#: gtk/gtkfilechooserwidget.c:7448 gtk/inspector/resource-list.ui:82
#: gtk/ui/gtkfontchooserwidget.ui:218 gtk/ui/gtkfontchooserwidget.ui:387
msgid "Size"
msgstr "Dydis"
#: gtk/gtkfilechooserwidget.c:7451 gtk/inspector/misc-info.ui:57
#: gtk/gtkfilechooserwidget.c:7454 gtk/inspector/misc-info.ui:57
#: gtk/inspector/prop-list.ui:35 gtk/inspector/statistics.ui:36
msgid "Type"
msgstr "Tipas"
@@ -2708,31 +2708,31 @@ msgstr "Užverti"
msgid "Close the infobar"
msgstr "Užverti informacijos juostą"
#: gtk/gtklabel.c:5880 gtk/gtktext.c:6322 gtk/gtktextview.c:9225
#: gtk/gtklabel.c:5878 gtk/gtktext.c:6322 gtk/gtktextview.c:9225
msgid "Cu_t"
msgstr "_Iškirpti"
#: gtk/gtklabel.c:5881 gtk/gtktext.c:6326 gtk/gtktextview.c:9229
#: gtk/gtklabel.c:5879 gtk/gtktext.c:6326 gtk/gtktextview.c:9229
msgid "_Copy"
msgstr "_Kopijuoti"
#: gtk/gtklabel.c:5882 gtk/gtktext.c:6330 gtk/gtktextview.c:9233
#: gtk/gtklabel.c:5880 gtk/gtktext.c:6330 gtk/gtktextview.c:9233
msgid "_Paste"
msgstr "Į_dėti"
#: gtk/gtklabel.c:5888 gtk/gtktext.c:6343 gtk/gtktextview.c:9258
#: gtk/gtklabel.c:5886 gtk/gtktext.c:6343 gtk/gtktextview.c:9258
msgid "Select _All"
msgstr "P_ažymėti viską"
#: gtk/gtklabel.c:5893
#: gtk/gtklabel.c:5891
msgid "_Open Link"
msgstr "_Atverti nuorodą"
#: gtk/gtklabel.c:5897
#: gtk/gtklabel.c:5895
msgid "Copy _Link Address"
msgstr "Kopijuoti _nuorodos adresą"
#: gtk/gtklabel.c:5941 gtk/gtktext.c:2851 gtk/gtktextview.c:9307
#: gtk/gtklabel.c:5939 gtk/gtktext.c:2851 gtk/gtktextview.c:9307
msgid "Context menu"
msgstr "Kontekstinis meniu"
@@ -3326,89 +3326,89 @@ msgstr "Neprieinama"
#. * jobs. %s gets replaced by the application name, %d gets replaced
#. * by the job number.
#.
#: gtk/print/gtkprintoperation.c:252
#: gtk/print/gtkprintoperation.c:255
#, c-format
msgid "%s job #%d"
msgstr "%s užduotis #%d"
#: gtk/print/gtkprintoperation.c:1699
#: gtk/print/gtkprintoperation.c:1702
msgctxt "print operation status"
msgid "Initial state"
msgstr "Pradinė būsena"
#: gtk/print/gtkprintoperation.c:1700
#: gtk/print/gtkprintoperation.c:1703
msgctxt "print operation status"
msgid "Preparing to print"
msgstr "Ruošiamasi spausdinti"
#: gtk/print/gtkprintoperation.c:1701
#: gtk/print/gtkprintoperation.c:1704
msgctxt "print operation status"
msgid "Generating data"
msgstr "Generuojami duomenys"
#: gtk/print/gtkprintoperation.c:1702
#: gtk/print/gtkprintoperation.c:1705
msgctxt "print operation status"
msgid "Sending data"
msgstr "Siunčiami duomenys"
#: gtk/print/gtkprintoperation.c:1703
#: gtk/print/gtkprintoperation.c:1706
msgctxt "print operation status"
msgid "Waiting"
msgstr "Laukiama"
#: gtk/print/gtkprintoperation.c:1704
#: gtk/print/gtkprintoperation.c:1707
msgctxt "print operation status"
msgid "Blocking on issue"
msgstr "Blokuojama klaidos"
#: gtk/print/gtkprintoperation.c:1705
#: gtk/print/gtkprintoperation.c:1708
msgctxt "print operation status"
msgid "Printing"
msgstr "Spausdinama"
#: gtk/print/gtkprintoperation.c:1706
#: gtk/print/gtkprintoperation.c:1709
msgctxt "print operation status"
msgid "Finished"
msgstr "Baigta"
#: gtk/print/gtkprintoperation.c:1707
#: gtk/print/gtkprintoperation.c:1710
msgctxt "print operation status"
msgid "Finished with error"
msgstr "Baigta su klaida"
#: gtk/print/gtkprintoperation.c:2250
#: gtk/print/gtkprintoperation.c:2254
#, c-format
msgid "Preparing %d"
msgstr "Ruošiamasi %d"
#: gtk/print/gtkprintoperation.c:2252 gtk/print/gtkprintoperation.c:2871
#: gtk/print/gtkprintoperation.c:2256 gtk/print/gtkprintoperation.c:2875
#, c-format
msgid "Preparing"
msgstr "Ruošiamasi"
#: gtk/print/gtkprintoperation.c:2255
#: gtk/print/gtkprintoperation.c:2259
#, c-format
msgid "Printing %d"
msgstr "Spausdinama %d"
#: gtk/print/gtkprintoperation.c:2904
#: gtk/print/gtkprintoperation.c:2908
#, c-format
msgid "Error creating print preview"
msgstr "Klaida formuojant spaudinio peržiūrą"
#: gtk/print/gtkprintoperation.c:2907
#: gtk/print/gtkprintoperation.c:2911
#, c-format
msgid "The most probable reason is that a temporary file could not be created."
msgstr "Labiausiai tikėtina priežastis nepavyko sukurti laikinojo failo."
#. window
#: gtk/print/gtkprintoperation-portal.c:264
#: gtk/print/gtkprintoperation-portal.c:594
#: gtk/print/gtkprintoperation-portal.c:663 gtk/print/gtkprintunixdialog.c:3010
#: gtk/print/gtkprintoperation-portal.c:273
#: gtk/print/gtkprintoperation-portal.c:603
#: gtk/print/gtkprintoperation-portal.c:672 gtk/print/gtkprintunixdialog.c:3015
msgid "Print"
msgstr "Spausdinti"
#: gtk/print/gtkprintoperation-unix.c:481
#: gtk/print/gtkprintoperation-unix.c:490
#: gtk/print/gtkprintoperation-win32.c:1505
msgid "Application"
msgstr "Programa"
@@ -3479,11 +3479,11 @@ msgstr "_Peržiūra"
msgid "_Print"
msgstr "_Spausdinti"
#: gtk/print/gtkprintunixdialog.c:961
#: gtk/print/gtkprintunixdialog.c:966
msgid "Getting printer information failed"
msgstr "Nepavyko perskaityti spausdintuvo informacijos"
#: gtk/print/gtkprintunixdialog.c:1885
#: gtk/print/gtkprintunixdialog.c:1890
msgid "Getting printer information…"
msgstr "Gaunama spausdintuvo informacija…"
@@ -3493,63 +3493,63 @@ msgstr "Gaunama spausdintuvo informacija…"
#. Translators: These strings name the possible arrangements of
#. * multiple pages on a sheet when printing
#.
#: gtk/print/gtkprintunixdialog.c:2755
#: gtk/print/gtkprintunixdialog.c:2760
#: modules/printbackends/gtkprintbackendcups.c:5677
msgid "Left to right, top to bottom"
msgstr "Iš kairės dešinėn, iš viršaus žemyn"
#: gtk/print/gtkprintunixdialog.c:2755
#: gtk/print/gtkprintunixdialog.c:2760
#: modules/printbackends/gtkprintbackendcups.c:5677
msgid "Left to right, bottom to top"
msgstr "Iš kairės dešinėn, iš apačios į viršų"
#: gtk/print/gtkprintunixdialog.c:2756
#: gtk/print/gtkprintunixdialog.c:2761
#: modules/printbackends/gtkprintbackendcups.c:5678
msgid "Right to left, top to bottom"
msgstr "Iš dešinės kairėn, iš viršaus žemyn"
#: gtk/print/gtkprintunixdialog.c:2756
#: gtk/print/gtkprintunixdialog.c:2761
#: modules/printbackends/gtkprintbackendcups.c:5678
msgid "Right to left, bottom to top"
msgstr "Iš dešinės kairėn, iš apačios į viršų"
#: gtk/print/gtkprintunixdialog.c:2757
#: gtk/print/gtkprintunixdialog.c:2762
#: modules/printbackends/gtkprintbackendcups.c:5679
msgid "Top to bottom, left to right"
msgstr "Iš viršaus žemyn, iš kairės dešinėn"
#: gtk/print/gtkprintunixdialog.c:2757
#: gtk/print/gtkprintunixdialog.c:2762
#: modules/printbackends/gtkprintbackendcups.c:5679
msgid "Top to bottom, right to left"
msgstr "Iš viršaus žemyn, iš dešinės kairėn"
#: gtk/print/gtkprintunixdialog.c:2758
#: gtk/print/gtkprintunixdialog.c:2763
#: modules/printbackends/gtkprintbackendcups.c:5680
msgid "Bottom to top, left to right"
msgstr "Iš apačios į viršų, iš kairės dešinėn"
#: gtk/print/gtkprintunixdialog.c:2758
#: gtk/print/gtkprintunixdialog.c:2763
#: modules/printbackends/gtkprintbackendcups.c:5680
msgid "Bottom to top, right to left"
msgstr "Iš apačios į viršų, iš dešinės kairėn"
#: gtk/print/gtkprintunixdialog.c:2762 gtk/print/gtkprintunixdialog.c:2775
#: gtk/print/gtkprintunixdialog.c:2767 gtk/print/gtkprintunixdialog.c:2780
msgid "Page Ordering"
msgstr "Puslapių tvarka"
#: gtk/print/gtkprintunixdialog.c:2791
#: gtk/print/gtkprintunixdialog.c:2796
msgid "Left to right"
msgstr "Iš kairės į dešinę"
#: gtk/print/gtkprintunixdialog.c:2792
#: gtk/print/gtkprintunixdialog.c:2797
msgid "Right to left"
msgstr "Iš dešinės į kairę"
#: gtk/print/gtkprintunixdialog.c:2804
#: gtk/print/gtkprintunixdialog.c:2809
msgid "Top to bottom"
msgstr "Iš viršaus žemyn"
#: gtk/print/gtkprintunixdialog.c:2805
#: gtk/print/gtkprintunixdialog.c:2810
msgid "Bottom to top"
msgstr "Iš apačios į viršų"
@@ -3662,7 +3662,7 @@ msgstr "Rezultatų nerasta"
msgid "Try a different search"
msgstr "Bandykite kitą paiešką"
#: gtk/gtkstacksidebar.c:154
#: gtk/gtkstacksidebar.c:155
msgctxt "accessibility"
msgid "Sidebar"
msgstr "Šoninė juosta"
@@ -3779,17 +3779,17 @@ msgstr "Rodyti"
msgid "Hover to load"
msgstr "Kiboti įkėlimui"
#: gtk/inspector/clipboard.c:278
#: gtk/inspector/clipboard.c:286
msgctxt "clipboard"
msgid "empty"
msgstr "tuščia"
#: gtk/inspector/clipboard.c:283 gtk/inspector/clipboard.c:325
#: gtk/inspector/clipboard.c:291 gtk/inspector/clipboard.c:344
msgctxt "clipboard"
msgid "local"
msgstr "vietinis"
#: gtk/inspector/clipboard.c:285 gtk/inspector/clipboard.c:327
#: gtk/inspector/clipboard.c:293 gtk/inspector/clipboard.c:346
msgctxt "clipboard"
msgid "remote"
msgstr "nuotolinis"
@@ -7133,35 +7133,35 @@ msgctxt "printer option value"
msgid "Unavailable"
msgstr "Neprieinama"
#: modules/printbackends/gtkprintbackendfile.c:238
#: modules/printbackends/gtkprintbackendfile.c:263
msgid "output"
msgstr "išvestis"
#: modules/printbackends/gtkprintbackendfile.c:510
#: modules/printbackends/gtkprintbackendfile.c:543
msgid "Print to File"
msgstr "Spausdinti į failą"
#: modules/printbackends/gtkprintbackendfile.c:636
#: modules/printbackends/gtkprintbackendfile.c:675
msgid "PDF"
msgstr "PDF"
#: modules/printbackends/gtkprintbackendfile.c:636
#: modules/printbackends/gtkprintbackendfile.c:675
msgid "PostScript"
msgstr "PostScript"
#: modules/printbackends/gtkprintbackendfile.c:636
#: modules/printbackends/gtkprintbackendfile.c:675
msgid "SVG"
msgstr "SVG"
#: modules/printbackends/gtkprintbackendfile.c:649
#: modules/printbackends/gtkprintbackendfile.c:688
msgid "Pages per _sheet:"
msgstr "Puslapių _lakšte:"
#: modules/printbackends/gtkprintbackendfile.c:709
#: modules/printbackends/gtkprintbackendfile.c:758
msgid "File"
msgstr "Failas"
#: modules/printbackends/gtkprintbackendfile.c:719
#: modules/printbackends/gtkprintbackendfile.c:768
msgid "_Output format"
msgstr "_Išvesties formatas"
@@ -7242,7 +7242,7 @@ 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-builder-tool-simplify.c:2623 tools/gtk-builder-tool-validate.c:261
#: tools/gtk-image-tool-compare.c:43 tools/gtk-image-tool-info.c:68
#: tools/gtk-path-tool-render.c:121 tools/gtk-rendernode-tool-compare.c:67
#: tools/gtk-rendernode-tool-extract.c:294 tools/gtk-rendernode-tool-info.c:226
@@ -7279,7 +7279,7 @@ msgstr "Naudoti stilių iš CSS failo"
#: tools/gtk-builder-tool-preview.c:187 tools/gtk-builder-tool-screenshot.c:370
#: tools/gtk-builder-tool-validate.c:268
#: tools/gtk-rendernode-tool-benchmark.c:106
#: tools/gtk-rendernode-tool-benchmark.c:108
#: tools/gtk-rendernode-tool-render.c:262 tools/gtk-rendernode-tool-show.c:123
#, c-format
msgid "Could not initialize windowing system\n"
@@ -7290,7 +7290,7 @@ msgid "Preview the file."
msgstr "Peržiūrėti failą."
#: tools/gtk-builder-tool-preview.c:208 tools/gtk-builder-tool-screenshot.c:391
#: tools/gtk-builder-tool-simplify.c:2552 tools/gtk-builder-tool-validate.c:287
#: tools/gtk-builder-tool-simplify.c:2646 tools/gtk-builder-tool-validate.c:287
#, c-format
msgid "No .ui file specified\n"
msgstr "Nenurodytas .ui failas\n"
@@ -7350,7 +7350,7 @@ msgstr "Perrašyti esamą failą"
#: tools/gtk-builder-tool-screenshot.c:363 tools/gtk-image-tool-compare.c:46
#: tools/gtk-image-tool-convert.c:89 tools/gtk-image-tool-relabel.c:86
#: tools/gtk-image-tool-show.c:119 tools/gtk-rendernode-tool-benchmark.c:97
#: tools/gtk-image-tool-show.c:119 tools/gtk-rendernode-tool-benchmark.c:99
#: tools/gtk-rendernode-tool-render.c:255
msgid "FILE…"
msgstr "FAILAS…"
@@ -7389,46 +7389,51 @@ msgstr "Nerasta langelio savybė %s"
msgid "Layout property %s not found"
msgstr "Nerasta išdėstymo savybė %s"
#: tools/gtk-builder-tool-simplify.c:1397
#: tools/gtk-builder-tool-simplify.c:1400
#, c-format
msgid "%s only accepts three children"
msgstr "%s priima tik tris vaikus"
#: tools/gtk-builder-tool-simplify.c:2455
#: tools/gtk-builder-tool-simplify.c:1773
#, c-format
msgid "%s only accepts one center child"
msgstr "%s priima vieną vaiką centre"
#: tools/gtk-builder-tool-simplify.c:2549
#, c-format
msgid "Cant load “%s”: %s\n"
msgstr "Nepavyko įkelti „%s“: %s\n"
#: tools/gtk-builder-tool-simplify.c:2466
#: tools/gtk-builder-tool-simplify.c:2472
#: tools/gtk-builder-tool-simplify.c:2478
#: tools/gtk-builder-tool-simplify.c:2560
#: tools/gtk-builder-tool-simplify.c:2566
#: tools/gtk-builder-tool-simplify.c:2572
#, c-format
msgid "Cant parse “%s”: %s\n"
msgstr "Nepavyko suprasti „%s“: %s\n"
#: tools/gtk-builder-tool-simplify.c:2504
#: tools/gtk-builder-tool-simplify.c:2598
#, c-format
msgid "Failed to read “%s”: %s\n"
msgstr "Nepavyko perskaityti „%s“: %s\n"
#: tools/gtk-builder-tool-simplify.c:2510
#: tools/gtk-builder-tool-simplify.c:2604
#, c-format
msgid "Failed to write “%s”: “%s”\n"
msgstr "Nepavyko įrašyti „%s“: „%s“\n"
#: tools/gtk-builder-tool-simplify.c:2527
#: tools/gtk-builder-tool-simplify.c:2621
msgid "Replace the file"
msgstr "Perrašyti failą"
#: tools/gtk-builder-tool-simplify.c:2528
#: tools/gtk-builder-tool-simplify.c:2622
msgid "Convert from GTK 3 to GTK 4"
msgstr "Konvertuoti iš GTK 3 į GTK 4"
#: tools/gtk-builder-tool-simplify.c:2539
#: tools/gtk-builder-tool-simplify.c:2633
msgid "Simplify the file."
msgstr "Supaprastinti failą."
#: tools/gtk-builder-tool-simplify.c:2558
#: tools/gtk-builder-tool-simplify.c:2652
#, c-format
msgid "Can only simplify a single .ui file without --replace\n"
msgstr "Galima supaprastinti tik vieną .ui failą be --replace\n"
@@ -7592,7 +7597,7 @@ msgstr "Ne palaikomas cicp junginys: %s\n"
#: tools/gtk-image-tool-info.c:55
msgid "Format:"
msgstr "Formatas"
msgstr "Formatas:"
#: tools/gtk-image-tool-info.c:56
msgid "Color state:"
@@ -8025,40 +8030,40 @@ msgstr ""
" render Padaryti viršūnės atvaizdą\n"
"\n"
#: tools/gtk-rendernode-tool-benchmark.c:94
#: tools/gtk-rendernode-tool-benchmark.c:96
msgid "Add renderer to benchmark"
msgstr "Pridėti piešėją į matavimą"
#: tools/gtk-rendernode-tool-benchmark.c:94
#: tools/gtk-rendernode-tool-benchmark.c:96
#: tools/gtk-rendernode-tool-compare.c:65
#: tools/gtk-rendernode-tool-render.c:254
msgid "RENDERER"
msgstr "PIEŠĖJAS"
#: tools/gtk-rendernode-tool-benchmark.c:95
#: tools/gtk-rendernode-tool-benchmark.c:97
msgid "Number of runs with each renderer"
msgstr "Vykdymų skaičius su kiekvienu piešėju"
#: tools/gtk-rendernode-tool-benchmark.c:95
#: tools/gtk-rendernode-tool-benchmark.c:97
msgid "RUNS"
msgstr "VYKDYMAI"
#: tools/gtk-rendernode-tool-benchmark.c:96
#: tools/gtk-rendernode-tool-benchmark.c:98
msgid "Dont download result/wait for GPU to finish"
msgstr "Neatsisiųsti rezultato/laukti GPU darbo pabaigos"
#: tools/gtk-rendernode-tool-benchmark.c:114
#: tools/gtk-rendernode-tool-benchmark.c:116
msgid "Benchmark rendering of a .node file."
msgstr "Matuoti .node failo piešimą."
#: tools/gtk-rendernode-tool-benchmark.c:127
#: tools/gtk-rendernode-tool-benchmark.c:129
#: tools/gtk-rendernode-tool-extract.c:316 tools/gtk-rendernode-tool-info.c:248
#: tools/gtk-rendernode-tool-render.c:283 tools/gtk-rendernode-tool-show.c:144
#, c-format
msgid "No .node file specified\n"
msgstr "Nenurodytas .node failas\n"
#: tools/gtk-rendernode-tool-benchmark.c:133
#: tools/gtk-rendernode-tool-benchmark.c:135
#, c-format
msgid "Can only benchmark a single .node file\n"
msgstr "Galima matuoti tik vieną .node failą\n"
+987 -701
View File
File diff suppressed because it is too large Load Diff
+16 -16
View File
@@ -31,10 +31,10 @@ msgid ""
msgstr ""
"Project-Id-Version: GTK\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n"
"POT-Creation-Date: 2024-09-19 01:06+0000\n"
"POT-Creation-Date: 2024-09-28 21:50+0000\n"
"PO-Revision-Date: 2024-09-19 21:02-0300\n"
"Last-Translator: Juliano de Souza Camargo <julianosc@pm.me>\n"
"Language-Team: Brazilian Portuguese <https://br.gnome.org/traducao>>\n"
"Language-Team: Brazilian Portuguese <https://br.gnome.org/traducao>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -628,8 +628,8 @@ msgstr "Não foi possível carregar dados TIFF"
msgid "Reading data failed at row %d"
msgstr "A leitura dos dados falhou na linha %d"
#: gdk/macos/gdkmacospasteboard.c:211 gdk/wayland/gdkclipboard-wayland.c:238
#: gdk/wayland/gdkdrop-wayland.c:205 gdk/wayland/gdkprimary-wayland.c:337
#: gdk/macos/gdkmacospasteboard.c:211 gdk/wayland/gdkclipboard-wayland.c:244
#: gdk/wayland/gdkdrop-wayland.c:205 gdk/wayland/gdkprimary-wayland.c:343
#: gdk/win32/gdkdrop-win32.c:1018 gdk/win32/gdkdrop-win32.c:1067
#: gdk/x11/gdkclipboard-x11.c:799 gdk/x11/gdkdrop-x11.c:235
msgid "No compatible transfer format found"
@@ -2429,7 +2429,7 @@ msgid "If you delete an item, it will be permanently lost."
msgstr "Se você excluir um item, ele será permanentemente perdido."
#: gtk/gtkfilechooserwidget.c:1213 gtk/gtkfilechooserwidget.c:1815
#: gtk/gtklabel.c:5883 gtk/gtktext.c:6334 gtk/gtktextview.c:9237
#: gtk/gtklabel.c:5881 gtk/gtktext.c:6334 gtk/gtktextview.c:9237
msgid "_Delete"
msgstr "E_xcluir"
@@ -2773,31 +2773,31 @@ msgstr "Fechar"
msgid "Close the infobar"
msgstr "Fecha a barra de informações"
#: gtk/gtklabel.c:5880 gtk/gtktext.c:6322 gtk/gtktextview.c:9225
#: gtk/gtklabel.c:5878 gtk/gtktext.c:6322 gtk/gtktextview.c:9225
msgid "Cu_t"
msgstr "Recor_tar"
#: gtk/gtklabel.c:5881 gtk/gtktext.c:6326 gtk/gtktextview.c:9229
#: gtk/gtklabel.c:5879 gtk/gtktext.c:6326 gtk/gtktextview.c:9229
msgid "_Copy"
msgstr "_Copiar"
#: gtk/gtklabel.c:5882 gtk/gtktext.c:6330 gtk/gtktextview.c:9233
#: gtk/gtklabel.c:5880 gtk/gtktext.c:6330 gtk/gtktextview.c:9233
msgid "_Paste"
msgstr "C_olar"
#: gtk/gtklabel.c:5888 gtk/gtktext.c:6343 gtk/gtktextview.c:9258
#: gtk/gtklabel.c:5886 gtk/gtktext.c:6343 gtk/gtktextview.c:9258
msgid "Select _All"
msgstr "_Selecionar tudo"
#: gtk/gtklabel.c:5893
#: gtk/gtklabel.c:5891
msgid "_Open Link"
msgstr "_Abrir o link"
#: gtk/gtklabel.c:5897
#: gtk/gtklabel.c:5895
msgid "Copy _Link Address"
msgstr "Copiar endereço do _link"
#: gtk/gtklabel.c:5941 gtk/gtktext.c:2851 gtk/gtktextview.c:9307
#: gtk/gtklabel.c:5939 gtk/gtktext.c:2851 gtk/gtktextview.c:9307
msgid "Context menu"
msgstr "Menu de contexto"
@@ -3757,7 +3757,7 @@ msgstr "Nenhum resultado encontrado"
msgid "Try a different search"
msgstr "Tente uma pesquisa diferente"
#: gtk/gtkstacksidebar.c:154
#: gtk/gtkstacksidebar.c:155
msgctxt "accessibility"
msgid "Sidebar"
msgstr "Barra lateral"
@@ -3875,17 +3875,17 @@ msgstr "Mostrar"
msgid "Hover to load"
msgstr "Passe o mouse para carregar"
#: gtk/inspector/clipboard.c:278
#: gtk/inspector/clipboard.c:286
msgctxt "clipboard"
msgid "empty"
msgstr "vazio"
#: gtk/inspector/clipboard.c:283 gtk/inspector/clipboard.c:325
#: gtk/inspector/clipboard.c:291 gtk/inspector/clipboard.c:344
msgctxt "clipboard"
msgid "local"
msgstr "local"
#: gtk/inspector/clipboard.c:285 gtk/inspector/clipboard.c:327
#: gtk/inspector/clipboard.c:293 gtk/inspector/clipboard.c:346
msgctxt "clipboard"
msgid "remote"
msgstr "remoto"
+821 -601
View File
File diff suppressed because it is too large Load Diff
+901 -679
View File
File diff suppressed because it is too large Load Diff
+7419 -3733
View File
File diff suppressed because it is too large Load Diff
+132 -127
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-09-08 23:25+0000\n"
"PO-Revision-Date: 2024-09-09 13:21+0200\n"
"POT-Creation-Date: 2024-09-28 21:50+0000\n"
"PO-Revision-Date: 2024-09-29 18:30+0200\n"
"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n"
@@ -20,7 +20,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.4.4\n"
"X-Generator: Poedit 3.5\n"
#: gdk/broadway/gdkbroadway-server.c:135
#, c-format
@@ -74,54 +74,54 @@ msgstr "Kan inte tillhandahålla innehåll som %s"
msgid "The current backend does not support OpenGL"
msgstr "Den aktuella bakänden stöder inte OpenGL"
#: gdk/gdkdisplay.c:1315 gdk/gdkvulkancontext.c:1663
#: gdk/gdkdisplay.c:1317 gdk/gdkvulkancontext.c:1668
msgid "Vulkan support disabled via GDK_DISABLE"
msgstr "Vulkan-stöd inaktiverat via GDK_DISABLE"
#: gdk/gdkdisplay.c:1369
#: gdk/gdkdisplay.c:1371
msgid "OpenGL support disabled via GDK_DISABLE"
msgstr "OpenGL-stöd inaktiverat via GDK_DISABLE"
#: gdk/gdkdisplay.c:1683
#: gdk/gdkdisplay.c:1685
msgid "No EGL configuration available"
msgstr "Ingen EGL-konfiguration tillgänglig"
#: gdk/gdkdisplay.c:1691
#: gdk/gdkdisplay.c:1693
msgid "Failed to get EGL configurations"
msgstr "Misslyckades med att hämta EGL-konfigurationer"
#: gdk/gdkdisplay.c:1721
#: gdk/gdkdisplay.c:1723
msgid "No EGL configuration with required features found"
msgstr "Ingen EGL-konfiguration med funktionerna som krävdes hittades"
#: gdk/gdkdisplay.c:1728
#: gdk/gdkdisplay.c:1730
msgid "No perfect EGL configuration found"
msgstr "Ingen perfekt EGL-konfiguration hittades"
#: gdk/gdkdisplay.c:1770
#: gdk/gdkdisplay.c:1772
#, c-format
msgid "EGL implementation is missing extension %s"
msgid_plural "EGL implementation is missing %2$d extensions: %1$s"
msgstr[0] "EGL-implementationen saknar tillägget %s"
msgstr[1] "EGL-implementationen saknar %2$d tillägg: %1$s"
#: gdk/gdkdisplay.c:1819
#: gdk/gdkdisplay.c:1821
msgid "libEGL not available in this sandbox"
msgstr "libEGL är inte tillgängligt i denna sandlåda"
#: gdk/gdkdisplay.c:1820
#: gdk/gdkdisplay.c:1822
msgid "libEGL not available"
msgstr "libEGL inte tillgängligt"
#: gdk/gdkdisplay.c:1830
#: gdk/gdkdisplay.c:1832
msgid "Failed to create EGL display"
msgstr "Misslyckades med att skapa EGL-display"
#: gdk/gdkdisplay.c:1839
#: gdk/gdkdisplay.c:1841
msgid "Could not initialize EGL display"
msgstr "Kunde inte initiera EGL-display"
#: gdk/gdkdisplay.c:1849
#: gdk/gdkdisplay.c:1851
#, c-format
msgid "EGL version %d.%d is too old. GTK requires %d.%d"
msgstr "EGL-version %d.%d är för gammal. GTK kräver %d.%d"
@@ -600,8 +600,8 @@ msgstr "Kunde inte läsa in TIFF-data"
msgid "Reading data failed at row %d"
msgstr "Läsning av data misslyckades på rad %d"
#: gdk/macos/gdkmacospasteboard.c:211 gdk/wayland/gdkclipboard-wayland.c:238
#: gdk/wayland/gdkdrop-wayland.c:205 gdk/wayland/gdkprimary-wayland.c:337
#: gdk/macos/gdkmacospasteboard.c:211 gdk/wayland/gdkclipboard-wayland.c:244
#: gdk/wayland/gdkdrop-wayland.c:205 gdk/wayland/gdkprimary-wayland.c:343
#: gdk/win32/gdkdrop-win32.c:1018 gdk/win32/gdkdrop-win32.c:1067
#: gdk/x11/gdkclipboard-x11.c:799 gdk/x11/gdkdrop-x11.c:235
msgid "No compatible transfer format found"
@@ -878,7 +878,7 @@ msgstr ""
msgid "OpenGL ES 3.0 is not supported by this renderer."
msgstr "OpenGL ES 3.0 stöds inte av denna renderare."
#: gsk/gpu/gsknglrenderer.c:68
#: gsk/gpu/gsknglrenderer.c:69
msgid "OpenGL 3.3 required"
msgstr "OpenGL 3.3 krävs"
@@ -1851,7 +1851,7 @@ msgstr "Text får inte finnas inuti <%s>"
#. * first day of the week to calendar:week_start:1 if you want Monday
#. * to be the first day of the week, and so on.
#.
#: gtk/gtkcalendar.c:666
#: gtk/gtkcalendar.c:670
msgid "calendar:week_start:0"
msgstr "calendar:week_start:1"
@@ -1865,21 +1865,10 @@ msgstr "calendar:week_start:1"
#. * text direction of RTL and specify "calendar:YM", then the year
#. * will appear to the right of the month.
#.
#: gtk/gtkcalendar.c:817
#: gtk/gtkcalendar.c:821
msgid "calendar:MY"
msgstr "calendar:MY"
#. Translators: This dictates how the year is displayed in
#. * gtkcalendar widget. See strftime() manual for the format.
#. * Use only ASCII in the translation.
#. *
#. * "%Y" is appropriate for most locales.
#.
#: gtk/gtkcalendar.c:1002
msgctxt "calendar year format"
msgid "%Y"
msgstr "%Y"
#. Translators: this defines whether the day numbers should use
#. * localized digits or the ones used in English (0123...).
#. *
@@ -1890,12 +1879,23 @@ msgstr "%Y"
#. * digits. That needs support from your system and locale definition
#. * too.
#.
#: gtk/gtkcalendar.c:1039
#: gtk/gtkcalendar.c:1002
#, c-format
msgctxt "calendar:day:digits"
msgid "%d"
msgstr "%d"
#. Translators: This dictates how the year is displayed in
#. * gtkcalendar widget. See strftime() manual for the format.
#. * Use only ASCII in the translation.
#. *
#. * "%Y" is appropriate for most locales.
#.
#: gtk/gtkcalendar.c:1106
msgctxt "calendar year format"
msgid "%Y"
msgstr "%Y"
#. Translators: this defines whether the week numbers should use
#. * localized digits or the ones used in English (0123...).
#. *
@@ -1904,7 +1904,7 @@ msgstr "%d"
#. * Note that translating this doesn't guarantee that you get localized
#. * digits. That needs support from your system and locale definition
#. * too.
#: gtk/gtkcalendar.c:1104
#: gtk/gtkcalendar.c:1152
#, c-format
msgctxt "calendar:week:digits"
msgid "%d"
@@ -2173,7 +2173,7 @@ msgid "Margins from Printer…"
msgstr "Marginaler från skrivare…"
#. And show the custom paper dialog
#: gtk/print/gtkcustompaperunixdialog.c:377 gtk/print/gtkprintunixdialog.c:2970
#: gtk/print/gtkcustompaperunixdialog.c:377 gtk/print/gtkprintunixdialog.c:2975
msgid "Manage Custom Sizes"
msgstr "Hantera anpassade storlekar"
@@ -2289,7 +2289,7 @@ msgid "A file with that name already exists"
msgstr "Det finns redan en fil med det namnet"
#: gtk/gtkfilechoosernative.c:520 gtk/gtkfilechoosernative.c:600
#: gtk/gtkfilechooserwidget.c:1213 gtk/gtkfilechooserwidget.c:5014
#: gtk/gtkfilechooserwidget.c:1213 gtk/gtkfilechooserwidget.c:5017
#: gtk/gtkfiledialog.c:840 gtk/gtkmessagedialog.c:170
#: gtk/gtkmessagedialog.c:179 gtk/gtkmountoperation.c:608
#: gtk/print/gtkpagesetupunixdialog.c:282 gtk/print/gtkprintbackend.c:638
@@ -2383,7 +2383,7 @@ msgid "If you delete an item, it will be permanently lost."
msgstr "Om du tar bort ett objekt är det borta för alltid."
#: gtk/gtkfilechooserwidget.c:1213 gtk/gtkfilechooserwidget.c:1815
#: gtk/gtklabel.c:5883 gtk/gtktext.c:6334 gtk/gtktextview.c:9237
#: gtk/gtklabel.c:5881 gtk/gtktext.c:6334 gtk/gtktextview.c:9237
msgid "_Delete"
msgstr "_Ta bort"
@@ -2446,7 +2446,7 @@ msgid "Home"
msgstr "Hem"
#. this is the header for the location column in the print dialog
#: gtk/gtkfilechooserwidget.c:2195 gtk/gtkfilechooserwidget.c:7436
#: gtk/gtkfilechooserwidget.c:2195 gtk/gtkfilechooserwidget.c:7439
#: gtk/inspector/css-node-tree.ui:76 gtk/print/ui/gtkprintunixdialog.ui:111
msgid "Location"
msgstr "Plats"
@@ -2469,8 +2469,8 @@ msgstr "Söker"
msgid "Enter location or URL"
msgstr "Ange plats eller URL"
#: gtk/gtkfilechooserwidget.c:3444 gtk/gtkfilechooserwidget.c:5801
#: gtk/gtkfilechooserwidget.c:7458
#: gtk/gtkfilechooserwidget.c:3444 gtk/gtkfilechooserwidget.c:5804
#: gtk/gtkfilechooserwidget.c:7461
msgid "Modified"
msgstr "Ändrad"
@@ -2553,12 +2553,12 @@ msgstr "Presentation"
msgid "Spreadsheet"
msgstr "Kalkylblad"
#: gtk/gtkfilechooserwidget.c:5006 gtk/print/gtkprintunixdialog.c:673
#: gtk/gtkfilechooserwidget.c:5009 gtk/print/gtkprintunixdialog.c:673
#, c-format
msgid "A file named “%s” already exists. Do you want to replace it?"
msgstr "En fil med namnet ”%s” finns redan. Vill du ersätta den?"
#: gtk/gtkfilechooserwidget.c:5008 gtk/print/gtkprintunixdialog.c:677
#: gtk/gtkfilechooserwidget.c:5011 gtk/print/gtkprintunixdialog.c:677
#, c-format
msgid ""
"The file already exists in “%s”. Replacing it will overwrite its contents."
@@ -2566,47 +2566,47 @@ msgstr ""
"Filen finns redan i ”%s”. Att ersätta den kommer att skriva över dess "
"innehåll."
#: gtk/gtkfilechooserwidget.c:5014 gtk/print/gtkprintunixdialog.c:685
#: gtk/gtkfilechooserwidget.c:5017 gtk/print/gtkprintunixdialog.c:685
msgid "_Replace"
msgstr "_Ersätt"
#: gtk/gtkfilechooserwidget.c:5169
#: gtk/gtkfilechooserwidget.c:5172
msgid "You do not have access to the specified folder."
msgstr "Du har inte åtkomst till den angivna mappen."
#: gtk/gtkfilechooserwidget.c:5748
#: gtk/gtkfilechooserwidget.c:5751
msgid "Could not send the search request"
msgstr "Kunde inte skicka sökbegäran"
#: gtk/gtkfilechooserwidget.c:6029
#: gtk/gtkfilechooserwidget.c:6032
msgid "Accessed"
msgstr "Åtkommen"
#: gtk/gtkfilechooserwidget.c:7414
#: gtk/gtkfilechooserwidget.c:7417
msgid "_Size"
msgstr "_Storlek"
#: gtk/gtkfilechooserwidget.c:7418
#: gtk/gtkfilechooserwidget.c:7421
msgid "T_ype"
msgstr "T_yp"
#: gtk/gtkfilechooserwidget.c:7422
#: gtk/gtkfilechooserwidget.c:7425
msgid "_Time"
msgstr "_Tid"
#: gtk/gtkfilechooserwidget.c:7428 gtk/gtkplacessidebar.c:2306
#: gtk/gtkfilechooserwidget.c:7431 gtk/gtkplacessidebar.c:2306
#: gtk/inspector/a11y.ui:43 gtk/inspector/actions.ui:18
#: gtk/inspector/css-node-tree.ui:22 gtk/inspector/prop-list.ui:24
#: gtk/ui/gtkfilechooserwidget.ui:396 gtk/print/ui/gtkprintunixdialog.ui:80
msgid "Name"
msgstr "Namn"
#: gtk/gtkfilechooserwidget.c:7445 gtk/inspector/resource-list.ui:82
#: gtk/gtkfilechooserwidget.c:7448 gtk/inspector/resource-list.ui:82
#: gtk/ui/gtkfontchooserwidget.ui:218 gtk/ui/gtkfontchooserwidget.ui:387
msgid "Size"
msgstr "Storlek"
#: gtk/gtkfilechooserwidget.c:7451 gtk/inspector/misc-info.ui:57
#: gtk/gtkfilechooserwidget.c:7454 gtk/inspector/misc-info.ui:57
#: gtk/inspector/prop-list.ui:35 gtk/inspector/statistics.ui:36
msgid "Type"
msgstr "Typ"
@@ -2725,31 +2725,31 @@ msgstr "Stäng"
msgid "Close the infobar"
msgstr "Stäng inforaden"
#: gtk/gtklabel.c:5880 gtk/gtktext.c:6322 gtk/gtktextview.c:9225
#: gtk/gtklabel.c:5878 gtk/gtktext.c:6322 gtk/gtktextview.c:9225
msgid "Cu_t"
msgstr "Klipp _ut"
#: gtk/gtklabel.c:5881 gtk/gtktext.c:6326 gtk/gtktextview.c:9229
#: gtk/gtklabel.c:5879 gtk/gtktext.c:6326 gtk/gtktextview.c:9229
msgid "_Copy"
msgstr "_Kopiera"
#: gtk/gtklabel.c:5882 gtk/gtktext.c:6330 gtk/gtktextview.c:9233
#: gtk/gtklabel.c:5880 gtk/gtktext.c:6330 gtk/gtktextview.c:9233
msgid "_Paste"
msgstr "Klistra _in"
#: gtk/gtklabel.c:5888 gtk/gtktext.c:6343 gtk/gtktextview.c:9258
#: gtk/gtklabel.c:5886 gtk/gtktext.c:6343 gtk/gtktextview.c:9258
msgid "Select _All"
msgstr "Markera _allt"
#: gtk/gtklabel.c:5893
#: gtk/gtklabel.c:5891
msgid "_Open Link"
msgstr "_Öppna länk"
#: gtk/gtklabel.c:5897
#: gtk/gtklabel.c:5895
msgid "Copy _Link Address"
msgstr "Kopiera _länkadress"
#: gtk/gtklabel.c:5941 gtk/gtktext.c:2851 gtk/gtktextview.c:9307
#: gtk/gtklabel.c:5939 gtk/gtktext.c:2851 gtk/gtktextview.c:9307
msgid "Context menu"
msgstr "Snabbvalsmeny"
@@ -3342,89 +3342,89 @@ msgstr "Inte tillgänglig"
#. * jobs. %s gets replaced by the application name, %d gets replaced
#. * by the job number.
#.
#: gtk/print/gtkprintoperation.c:252
#: gtk/print/gtkprintoperation.c:255
#, c-format
msgid "%s job #%d"
msgstr "%s jobbnr %d"
#: gtk/print/gtkprintoperation.c:1699
#: gtk/print/gtkprintoperation.c:1702
msgctxt "print operation status"
msgid "Initial state"
msgstr "Initialt tillstånd"
#: gtk/print/gtkprintoperation.c:1700
#: gtk/print/gtkprintoperation.c:1703
msgctxt "print operation status"
msgid "Preparing to print"
msgstr "Förbereder utskrift"
#: gtk/print/gtkprintoperation.c:1701
#: gtk/print/gtkprintoperation.c:1704
msgctxt "print operation status"
msgid "Generating data"
msgstr "Genererar data"
#: gtk/print/gtkprintoperation.c:1702
#: gtk/print/gtkprintoperation.c:1705
msgctxt "print operation status"
msgid "Sending data"
msgstr "Skickar data"
#: gtk/print/gtkprintoperation.c:1703
#: gtk/print/gtkprintoperation.c:1706
msgctxt "print operation status"
msgid "Waiting"
msgstr "Väntar"
#: gtk/print/gtkprintoperation.c:1704
#: gtk/print/gtkprintoperation.c:1707
msgctxt "print operation status"
msgid "Blocking on issue"
msgstr "Blockerar vid problem"
#: gtk/print/gtkprintoperation.c:1705
#: gtk/print/gtkprintoperation.c:1708
msgctxt "print operation status"
msgid "Printing"
msgstr "Skriver ut"
#: gtk/print/gtkprintoperation.c:1706
#: gtk/print/gtkprintoperation.c:1709
msgctxt "print operation status"
msgid "Finished"
msgstr "Färdig"
#: gtk/print/gtkprintoperation.c:1707
#: gtk/print/gtkprintoperation.c:1710
msgctxt "print operation status"
msgid "Finished with error"
msgstr "Färdig men med fel"
#: gtk/print/gtkprintoperation.c:2250
#: gtk/print/gtkprintoperation.c:2254
#, c-format
msgid "Preparing %d"
msgstr "Förbereder %d"
#: gtk/print/gtkprintoperation.c:2252 gtk/print/gtkprintoperation.c:2871
#: gtk/print/gtkprintoperation.c:2256 gtk/print/gtkprintoperation.c:2875
#, c-format
msgid "Preparing"
msgstr "Förbereder"
#: gtk/print/gtkprintoperation.c:2255
#: gtk/print/gtkprintoperation.c:2259
#, c-format
msgid "Printing %d"
msgstr "Skriver ut %d"
#: gtk/print/gtkprintoperation.c:2904
#: gtk/print/gtkprintoperation.c:2908
#, c-format
msgid "Error creating print preview"
msgstr "Fel vid skapande av förhandsgranskning"
#: gtk/print/gtkprintoperation.c:2907
#: gtk/print/gtkprintoperation.c:2911
#, c-format
msgid "The most probable reason is that a temporary file could not be created."
msgstr "Den mest troliga orsaken är att en temporärfil inte kunde skapas."
#. window
#: gtk/print/gtkprintoperation-portal.c:264
#: gtk/print/gtkprintoperation-portal.c:594
#: gtk/print/gtkprintoperation-portal.c:663 gtk/print/gtkprintunixdialog.c:3010
#: gtk/print/gtkprintoperation-portal.c:273
#: gtk/print/gtkprintoperation-portal.c:603
#: gtk/print/gtkprintoperation-portal.c:672 gtk/print/gtkprintunixdialog.c:3015
msgid "Print"
msgstr "Skriv ut"
#: gtk/print/gtkprintoperation-unix.c:481
#: gtk/print/gtkprintoperation-unix.c:490
#: gtk/print/gtkprintoperation-win32.c:1505
msgid "Application"
msgstr "Program"
@@ -3495,11 +3495,11 @@ msgstr "_Förhandsgranska"
msgid "_Print"
msgstr "Skriv _ut"
#: gtk/print/gtkprintunixdialog.c:961
#: gtk/print/gtkprintunixdialog.c:966
msgid "Getting printer information failed"
msgstr "Hämtning av skrivarinformation misslyckades"
#: gtk/print/gtkprintunixdialog.c:1885
#: gtk/print/gtkprintunixdialog.c:1890
msgid "Getting printer information…"
msgstr "Hämtar skrivarinformation…"
@@ -3509,63 +3509,63 @@ msgstr "Hämtar skrivarinformation…"
#. Translators: These strings name the possible arrangements of
#. * multiple pages on a sheet when printing
#.
#: gtk/print/gtkprintunixdialog.c:2755
#: gtk/print/gtkprintunixdialog.c:2760
#: modules/printbackends/gtkprintbackendcups.c:5677
msgid "Left to right, top to bottom"
msgstr "Vänster till höger, topp till botten"
#: gtk/print/gtkprintunixdialog.c:2755
#: gtk/print/gtkprintunixdialog.c:2760
#: modules/printbackends/gtkprintbackendcups.c:5677
msgid "Left to right, bottom to top"
msgstr "Vänster till höger, botten till topp"
#: gtk/print/gtkprintunixdialog.c:2756
#: gtk/print/gtkprintunixdialog.c:2761
#: modules/printbackends/gtkprintbackendcups.c:5678
msgid "Right to left, top to bottom"
msgstr "Höger till vänster, topp till botten"
#: gtk/print/gtkprintunixdialog.c:2756
#: gtk/print/gtkprintunixdialog.c:2761
#: modules/printbackends/gtkprintbackendcups.c:5678
msgid "Right to left, bottom to top"
msgstr "Höger till vänster, botten till topp"
#: gtk/print/gtkprintunixdialog.c:2757
#: gtk/print/gtkprintunixdialog.c:2762
#: modules/printbackends/gtkprintbackendcups.c:5679
msgid "Top to bottom, left to right"
msgstr "Topp till botten, vänster till höger"
#: gtk/print/gtkprintunixdialog.c:2757
#: gtk/print/gtkprintunixdialog.c:2762
#: modules/printbackends/gtkprintbackendcups.c:5679
msgid "Top to bottom, right to left"
msgstr "Topp till botten, höger till vänster"
#: gtk/print/gtkprintunixdialog.c:2758
#: gtk/print/gtkprintunixdialog.c:2763
#: modules/printbackends/gtkprintbackendcups.c:5680
msgid "Bottom to top, left to right"
msgstr "Botten till topp, vänster till höger"
#: gtk/print/gtkprintunixdialog.c:2758
#: gtk/print/gtkprintunixdialog.c:2763
#: modules/printbackends/gtkprintbackendcups.c:5680
msgid "Bottom to top, right to left"
msgstr "Botten till topp, höger till vänster"
#: gtk/print/gtkprintunixdialog.c:2762 gtk/print/gtkprintunixdialog.c:2775
#: gtk/print/gtkprintunixdialog.c:2767 gtk/print/gtkprintunixdialog.c:2780
msgid "Page Ordering"
msgstr "Sidordning"
#: gtk/print/gtkprintunixdialog.c:2791
#: gtk/print/gtkprintunixdialog.c:2796
msgid "Left to right"
msgstr "Vänster till höger"
#: gtk/print/gtkprintunixdialog.c:2792
#: gtk/print/gtkprintunixdialog.c:2797
msgid "Right to left"
msgstr "Höger till vänster"
#: gtk/print/gtkprintunixdialog.c:2804
#: gtk/print/gtkprintunixdialog.c:2809
msgid "Top to bottom"
msgstr "Topp till botten"
#: gtk/print/gtkprintunixdialog.c:2805
#: gtk/print/gtkprintunixdialog.c:2810
msgid "Bottom to top"
msgstr "Botten till topp"
@@ -3679,7 +3679,7 @@ msgstr "Inga resultat hittades"
msgid "Try a different search"
msgstr "Försök med en annan sökning"
#: gtk/gtkstacksidebar.c:154
#: gtk/gtkstacksidebar.c:155
msgctxt "accessibility"
msgid "Sidebar"
msgstr "Sidopanel"
@@ -3796,17 +3796,17 @@ msgstr "Visa"
msgid "Hover to load"
msgstr "Hovra för att läsa in"
#: gtk/inspector/clipboard.c:278
#: gtk/inspector/clipboard.c:286
msgctxt "clipboard"
msgid "empty"
msgstr "tomt"
#: gtk/inspector/clipboard.c:283 gtk/inspector/clipboard.c:325
#: gtk/inspector/clipboard.c:291 gtk/inspector/clipboard.c:344
msgctxt "clipboard"
msgid "local"
msgstr "lokalt"
#: gtk/inspector/clipboard.c:285 gtk/inspector/clipboard.c:327
#: gtk/inspector/clipboard.c:293 gtk/inspector/clipboard.c:346
msgctxt "clipboard"
msgid "remote"
msgstr "fjärran"
@@ -7152,35 +7152,35 @@ msgctxt "printer option value"
msgid "Unavailable"
msgstr "Inte tillgänglig"
#: modules/printbackends/gtkprintbackendfile.c:238
#: modules/printbackends/gtkprintbackendfile.c:263
msgid "output"
msgstr "utdata"
#: modules/printbackends/gtkprintbackendfile.c:510
#: modules/printbackends/gtkprintbackendfile.c:543
msgid "Print to File"
msgstr "Skriv ut till fil"
#: modules/printbackends/gtkprintbackendfile.c:636
#: modules/printbackends/gtkprintbackendfile.c:675
msgid "PDF"
msgstr "PDF"
#: modules/printbackends/gtkprintbackendfile.c:636
#: modules/printbackends/gtkprintbackendfile.c:675
msgid "PostScript"
msgstr "Postscript"
#: modules/printbackends/gtkprintbackendfile.c:636
#: modules/printbackends/gtkprintbackendfile.c:675
msgid "SVG"
msgstr "SVG"
#: modules/printbackends/gtkprintbackendfile.c:649
#: modules/printbackends/gtkprintbackendfile.c:688
msgid "Pages per _sheet:"
msgstr "Sidor per _blad:"
#: modules/printbackends/gtkprintbackendfile.c:709
#: modules/printbackends/gtkprintbackendfile.c:758
msgid "File"
msgstr "Fil"
#: modules/printbackends/gtkprintbackendfile.c:719
#: modules/printbackends/gtkprintbackendfile.c:768
msgid "_Output format"
msgstr "_Utskriftsformat"
@@ -7261,7 +7261,7 @@ 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-builder-tool-simplify.c:2623 tools/gtk-builder-tool-validate.c:261
#: tools/gtk-image-tool-compare.c:43 tools/gtk-image-tool-info.c:68
#: tools/gtk-path-tool-render.c:121 tools/gtk-rendernode-tool-compare.c:67
#: tools/gtk-rendernode-tool-extract.c:294 tools/gtk-rendernode-tool-info.c:226
@@ -7298,7 +7298,7 @@ msgstr "Använd stil från CSS-fil"
#: tools/gtk-builder-tool-preview.c:187 tools/gtk-builder-tool-screenshot.c:370
#: tools/gtk-builder-tool-validate.c:268
#: tools/gtk-rendernode-tool-benchmark.c:106
#: tools/gtk-rendernode-tool-benchmark.c:108
#: tools/gtk-rendernode-tool-render.c:262 tools/gtk-rendernode-tool-show.c:123
#, c-format
msgid "Could not initialize windowing system\n"
@@ -7309,7 +7309,7 @@ msgid "Preview the file."
msgstr "Förhandsgranska filen."
#: tools/gtk-builder-tool-preview.c:208 tools/gtk-builder-tool-screenshot.c:391
#: tools/gtk-builder-tool-simplify.c:2552 tools/gtk-builder-tool-validate.c:287
#: tools/gtk-builder-tool-simplify.c:2646 tools/gtk-builder-tool-validate.c:287
#, c-format
msgid "No .ui file specified\n"
msgstr "Ingen .ui-fil angiven\n"
@@ -7370,7 +7370,7 @@ msgstr "Skriv över befintlig fil"
#: tools/gtk-builder-tool-screenshot.c:363 tools/gtk-image-tool-compare.c:46
#: tools/gtk-image-tool-convert.c:89 tools/gtk-image-tool-relabel.c:86
#: tools/gtk-image-tool-show.c:119 tools/gtk-rendernode-tool-benchmark.c:97
#: tools/gtk-image-tool-show.c:119 tools/gtk-rendernode-tool-benchmark.c:99
#: tools/gtk-rendernode-tool-render.c:255
msgid "FILE…"
msgstr "FIL…"
@@ -7411,46 +7411,51 @@ msgstr "Cellegenskapen %s hittades inte"
msgid "Layout property %s not found"
msgstr "Layoutegenskapen %s hittades inte"
#: tools/gtk-builder-tool-simplify.c:1397
#: tools/gtk-builder-tool-simplify.c:1400
#, c-format
msgid "%s only accepts three children"
msgstr "%s accepterar endast tre barn"
#: tools/gtk-builder-tool-simplify.c:2455
#: tools/gtk-builder-tool-simplify.c:1773
#, c-format
msgid "%s only accepts one center child"
msgstr "%s accepterar endast ett centrerat barn"
#: tools/gtk-builder-tool-simplify.c:2549
#, c-format
msgid "Cant load “%s”: %s\n"
msgstr "Kan inte läsa in ”%s”: %s\n"
#: tools/gtk-builder-tool-simplify.c:2466
#: tools/gtk-builder-tool-simplify.c:2472
#: tools/gtk-builder-tool-simplify.c:2478
#: tools/gtk-builder-tool-simplify.c:2560
#: tools/gtk-builder-tool-simplify.c:2566
#: tools/gtk-builder-tool-simplify.c:2572
#, c-format
msgid "Cant parse “%s”: %s\n"
msgstr "Kan inte tolka ”%s”: %s\n"
#: tools/gtk-builder-tool-simplify.c:2504
#: tools/gtk-builder-tool-simplify.c:2598
#, c-format
msgid "Failed to read “%s”: %s\n"
msgstr "Misslyckades med att läsa ”%s”: %s\n"
#: tools/gtk-builder-tool-simplify.c:2510
#: tools/gtk-builder-tool-simplify.c:2604
#, c-format
msgid "Failed to write “%s”: “%s”\n"
msgstr "Misslyckades med att skriva ”%s”: ”%s”\n"
#: tools/gtk-builder-tool-simplify.c:2527
#: tools/gtk-builder-tool-simplify.c:2621
msgid "Replace the file"
msgstr "Ersätt filen"
#: tools/gtk-builder-tool-simplify.c:2528
#: tools/gtk-builder-tool-simplify.c:2622
msgid "Convert from GTK 3 to GTK 4"
msgstr "Konvertera från GTK 3 till GTK 4"
#: tools/gtk-builder-tool-simplify.c:2539
#: tools/gtk-builder-tool-simplify.c:2633
msgid "Simplify the file."
msgstr "Förenkla filen."
#: tools/gtk-builder-tool-simplify.c:2558
#: tools/gtk-builder-tool-simplify.c:2652
#, c-format
msgid "Can only simplify a single .ui file without --replace\n"
msgstr "Kan endast förenkla en ensam .ui-fil utan --replace\n"
@@ -8048,40 +8053,40 @@ msgstr ""
" render Ta en skärmbild av noden\n"
"\n"
#: tools/gtk-rendernode-tool-benchmark.c:94
#: tools/gtk-rendernode-tool-benchmark.c:96
msgid "Add renderer to benchmark"
msgstr "Lägg till renderare till prestandatest"
#: tools/gtk-rendernode-tool-benchmark.c:94
#: tools/gtk-rendernode-tool-benchmark.c:96
#: tools/gtk-rendernode-tool-compare.c:65
#: tools/gtk-rendernode-tool-render.c:254
msgid "RENDERER"
msgstr "RENDERARE"
#: tools/gtk-rendernode-tool-benchmark.c:95
#: tools/gtk-rendernode-tool-benchmark.c:97
msgid "Number of runs with each renderer"
msgstr "Antal körningar med varje renderare"
#: tools/gtk-rendernode-tool-benchmark.c:95
#: tools/gtk-rendernode-tool-benchmark.c:97
msgid "RUNS"
msgstr "KÖRNINGAR"
#: tools/gtk-rendernode-tool-benchmark.c:96
#: tools/gtk-rendernode-tool-benchmark.c:98
msgid "Dont download result/wait for GPU to finish"
msgstr "Hämta inte resultat/vänta på att GPU ska bli klar"
#: tools/gtk-rendernode-tool-benchmark.c:114
#: tools/gtk-rendernode-tool-benchmark.c:116
msgid "Benchmark rendering of a .node file."
msgstr "Prestandatesta rendering av en .node-fil."
#: tools/gtk-rendernode-tool-benchmark.c:127
#: tools/gtk-rendernode-tool-benchmark.c:129
#: tools/gtk-rendernode-tool-extract.c:316 tools/gtk-rendernode-tool-info.c:248
#: tools/gtk-rendernode-tool-render.c:283 tools/gtk-rendernode-tool-show.c:144
#, c-format
msgid "No .node file specified\n"
msgstr "Ingen .node-fil angiven\n"
#: tools/gtk-rendernode-tool-benchmark.c:133
#: tools/gtk-rendernode-tool-benchmark.c:135
#, c-format
msgid "Can only benchmark a single .node file\n"
msgstr "Kan endast prestandatesta en ensam .node-fil\n"
@@ -0,0 +1,42 @@
/* establish proper bounds for the node */
color {
bounds: 0 0 200 200;
color: black;
}
/* ensure the scissor is set */
clip {
clip: 0 0 100 100;
/* Create a cip that does not intersect the scissor
* and will be taken verbatim.
* We now have a scissor and a clip that overlap,
* but neither contains the other
*/
child: rounded-clip {
clip: 90.5 90.5 100 100 / 20;
child: container {
/* Guarantee the rounded-clip's bounds match
* its clip bounds.
*/
color {
bounds: 0 0 200 200;
color: black;
}
/* Clip by a region that has these characteristics:
* 1. It does not intersect with the scissor above
* 2. It is not pixel-aligned, so it can't be
* represented with a scissor.
* Code should properly detect (1).
*/
clip {
clip: 100 100 55.5 55.5;
/* Draw a child that triggers "Clipping is broken" */
child: linear-gradient {
bounds: 0 0 200 200;
stops: 0 red, 0.1 green, 0.2 red, 0.3 blue, 0.4 yellow,
0.5 blue, 0.6 white, 0.7 purple, 0.8 pink, 0.9 orange, 1.0 red;
}
}
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 129 B

+1
View File
@@ -31,6 +31,7 @@ compare_render_tests = [
'border-zero-width-color',
'borders-rotated',
'borders-scaled-nogl',
'clip-all-clipped-issue-7044',
'clip-contained',
'clip-coordinates-2d',
'clip-coordinates-nocairo',
+1 -2
View File
@@ -31,8 +31,7 @@ setups = [
], },
{ 'name': 'wayland_gl',
'backend': 'wayland', 'if': wayland_enabled,
'env': ['GDK_DEBUG=gl-prefer-gl,default-settings',
], },
'env': ['GDK_DISABLE=gles-api' ], },
{ 'backend': 'win32', 'if': os_win32 },
{ 'backend': 'broadway', 'if': broadway_enabled, },
{ 'backend': 'win32', 'if': os_win32 },
+1 -1
View File
@@ -46,7 +46,7 @@ usage (void)
" render Take a screenshot of the file\n"
" screenshot Take a screenshot of the file\n"
"\n"));
exit (1);
exit (0);
}
static GLogWriterOutput
+1 -1
View File
@@ -45,7 +45,7 @@ usage (void)
" relabel Change the color state of the image without conversion\n"
" show Show the image\n"
"\n"));
exit (1);
exit (0);
}
static GLogWriterOutput
+1 -1
View File
@@ -45,7 +45,7 @@ usage (void)
" render Render the path as an image\n"
" info Print information about the path\n"
"\n"));
exit (1);
exit (0);
}
static GLogWriterOutput
+1 -1
View File
@@ -45,7 +45,7 @@ usage (void)
" show Show the node\n"
" render Take a screenshot of the node\n"
"\n"));
exit (1);
exit (0);
}
static GLogWriterOutput
+1
View File
@@ -1708,6 +1708,7 @@ main (int argc, char **argv)
g_option_context_add_main_entries (context, args, GETTEXT_PACKAGE);
g_option_context_parse (context, &argc, &argv, NULL);
g_option_context_free (context);
path = argv[1];
#ifdef G_OS_WIN32