New upstream version 3.24.48

This commit is contained in:
Jeremy Bícha 2025-01-27 08:16:25 -05:00
commit 2d6be693ba
62 changed files with 39861 additions and 27788 deletions

View File

@ -1,6 +1,15 @@
include:
- project: 'gnome/citemplates'
file: 'flatpak/flatpak_ci_initiative.yml'
- component: gitlab.gnome.org/GNOME/citemplates/release-service@master
inputs:
dist-job-name: "fedora-distcheck"
tarball-artifact-path: "_build/meson-dist/${CI_PROJECT_NAME}-${CI_COMMIT_TAG}.tar.xz"
stages: stages:
- build - build
- docs - docs
- deploy
cache: cache:
paths: paths:
@ -10,16 +19,23 @@ fedora-distcheck:
image: registry.gitlab.gnome.org/gnome/gtk/fedora-gtk3:v3 image: registry.gitlab.gnome.org/gnome/gtk/fedora-gtk3:v3
variables: variables:
DO_DISTCHECK: "yes" DO_DISTCHECK: "yes"
when: manual when: always
stage: build stage: build
script: script:
- git config --global --add safe.directory $CI_PROJECT_DIR
- bash -x ./.gitlab-ci/test-docker-meson.sh - bash -x ./.gitlab-ci/test-docker-meson.sh
artifacts:
when: always
name: "gtk3-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
paths:
- "_build/meson-dist"
fedora-meson: fedora-meson:
image: registry.gitlab.gnome.org/gnome/gtk/fedora-gtk3:v3 image: registry.gitlab.gnome.org/gnome/gtk/fedora-gtk3:v3
stage: build stage: build
variables: variables:
EXTRA_MESON_FLAGS: "-Ddefault_library=both" EXTRA_MESON_FLAGS: "-Ddefault_library=both"
DO_TEST: "yes"
script: script:
- bash -x ./.gitlab-ci/test-docker-meson.sh - bash -x ./.gitlab-ci/test-docker-meson.sh
artifacts: artifacts:
@ -34,6 +50,7 @@ debian-meson:
stage: build stage: build
variables: variables:
EXTRA_MESON_FLAGS: "-Ddefault_library=both" EXTRA_MESON_FLAGS: "-Ddefault_library=both"
DO_TEST: "yes"
script: script:
- bash -x ./.gitlab-ci/test-docker-meson.sh - bash -x ./.gitlab-ci/test-docker-meson.sh
artifacts: artifacts:

View File

@ -22,6 +22,7 @@ meson \
cd _build cd _build
ninja ninja
if [ -n "${DO_TEST-}" ]; then
# Meson < 0.57 can't exclude suites in a test_setup() so we have to # Meson < 0.57 can't exclude suites in a test_setup() so we have to
# explicitly leave out the failing and flaky suites. # explicitly leave out the failing and flaky suites.
xvfb-run -a -s "-screen 0 1024x768x24" \ xvfb-run -a -s "-screen 0 1024x768x24" \
@ -41,6 +42,7 @@ xvfb-run -a -s "-screen 0 1024x768x24" \
--suite=flaky \ --suite=flaky \
--suite=failing \ --suite=failing \
|| true || true
fi
if [ -n "${DO_DISTCHECK-}" ]; then if [ -n "${DO_DISTCHECK-}" ]; then
meson dist --no-tests meson dist --no-tests

51
NEWS
View File

@ -1,3 +1,54 @@
Overview of Changes in GTK+ 3.24.48, 25-02-2025
===============================================
* Switch to the new ci-based release process
Overview of Changes in GTK+ 3.24.44, 24-01-2025
===============================================
* GtkFileChooser:
- Stop replacing : (colon) with U+2236 (ratio)
* GtkEmojiChooser:
- Update to Unicode 16 / CLDR 46
* GtkSpinButton:
- Use semantically appropriate icon names
- Make numeric spin buttons always LTR
* GtkEntry:
- Stop guessing text direction from keyboard layout
- Add a shortcut and context menu item to change text direction
* GtkEventControllerMotion:
- Make enter and leave signals work
* Accessibility:
- Use message dialog titles as names
* GDK:
- Fix portal handling of gvfs files
* Wayland:
- Support the xdg_foreign_v2 protocol
- Try to fix monitor geometry on sway
- Improve font setting fallback
- Use a better default cursor size
- Fix a crash during DND
* macOS:
- Fix a UI hang
* Translation updates:
Bulgarian
Farsi
Hindi
Hungarian
Icelandic
Latvian
Serbian
Overview of Changes in GTK+ 3.24.43, 10-07-2024 Overview of Changes in GTK+ 3.24.43, 10-07-2024
=============================================== ===============================================

View File

@ -192,12 +192,23 @@
} }
} }
} }
static void
synthesize_configure_event(GdkWindow *window)
{
GdkEvent *event = gdk_event_new (GDK_CONFIGURE);
event->configure.window = g_object_ref (window);
event->configure.x = window->x;
event->configure.y = window->y;
event->configure.width = window->width;
event->configure.height = window->height;
_gdk_event_queue_append (gdk_display_get_default (), event);
}
-(void)windowDidMove:(NSNotification *)aNotification -(void)windowDidMove:(NSNotification *)aNotification
{ {
GdkWindow *window = [[self contentView] gdkWindow]; GdkWindow *window = [[self contentView] gdkWindow];
GdkEvent *event;
gboolean maximized = gdk_window_get_state (window) & GDK_WINDOW_STATE_MAXIMIZED; gboolean maximized = gdk_window_get_state (window) & GDK_WINDOW_STATE_MAXIMIZED;
/* In case the window is changed when maximized remove the maximized state */ /* In case the window is changed when maximized remove the maximized state */
@ -209,16 +220,7 @@
} }
_gdk_quartz_window_update_position (window); _gdk_quartz_window_update_position (window);
synthesize_configure_event(window);
/* Synthesize a configure event */
event = gdk_event_new (GDK_CONFIGURE);
event->configure.window = g_object_ref (window);
event->configure.x = window->x;
event->configure.y = window->y;
event->configure.width = window->width;
event->configure.height = window->height;
_gdk_event_queue_append (gdk_display_get_default (), event);
[self checkSendEnterNotify]; [self checkSendEnterNotify];
} }
@ -227,7 +229,6 @@
{ {
NSRect content_rect = [self contentRectForFrameRect:[self frame]]; NSRect content_rect = [self contentRectForFrameRect:[self frame]];
GdkWindow *window = [[self contentView] gdkWindow]; GdkWindow *window = [[self contentView] gdkWindow];
GdkEvent *event;
gboolean maximized = gdk_window_get_state (window) & GDK_WINDOW_STATE_MAXIMIZED; gboolean maximized = gdk_window_get_state (window) & GDK_WINDOW_STATE_MAXIMIZED;
/* Alignment to 4 pixels is on scaled pixels and these are unscaled pixels so divide by scale to compensate. */ /* Alignment to 4 pixels is on scaled pixels and these are unscaled pixels so divide by scale to compensate. */
const gint scale = gdk_window_get_scale_factor (window); const gint scale = gdk_window_get_scale_factor (window);
@ -245,10 +246,7 @@
window->height = content_rect.size.height; window->height = content_rect.size.height;
if(window->width % align) if(window->width % align)
{ content_rect.size.width = window->width + align - window->width % align;
window->width += align - window->width % align;
content_rect.size.width = window->width;
}
content_rect.origin.x = 0; content_rect.origin.x = 0;
content_rect.origin.y = 0; content_rect.origin.y = 0;
@ -260,16 +258,7 @@
*/ */
_gdk_quartz_window_update_position (window); _gdk_quartz_window_update_position (window);
_gdk_window_update_size (window); _gdk_window_update_size (window);
synthesize_configure_event (window);
/* Synthesize a configure event */
event = gdk_event_new (GDK_CONFIGURE);
event->configure.window = g_object_ref (window);
event->configure.x = window->x;
event->configure.y = window->y;
event->configure.width = window->width;
event->configure.height = window->height;
_gdk_event_queue_append (gdk_display_get_default (), event);
[self checkSendEnterNotify]; [self checkSendEnterNotify];
} }

View File

@ -1174,6 +1174,9 @@ data_device_enter (void *data,
GdkWindow *dest_window, *dnd_owner; GdkWindow *dest_window, *dnd_owner;
GdkAtom selection; GdkAtom selection;
if (!surface)
return;
dest_window = wl_surface_get_user_data (surface); dest_window = wl_surface_get_user_data (surface);
if (!GDK_IS_WINDOW (dest_window)) if (!GDK_IS_WINDOW (dest_window))

View File

@ -47,6 +47,7 @@
#include "tablet-unstable-v2-client-protocol.h" #include "tablet-unstable-v2-client-protocol.h"
#include "xdg-shell-unstable-v6-client-protocol.h" #include "xdg-shell-unstable-v6-client-protocol.h"
#include "xdg-foreign-unstable-v1-client-protocol.h" #include "xdg-foreign-unstable-v1-client-protocol.h"
#include "xdg-foreign-unstable-v2-client-protocol.h"
#include "server-decoration-client-protocol.h" #include "server-decoration-client-protocol.h"
#ifdef HAVE_TOPLEVEL_STATE_SUSPENDED #ifdef HAVE_TOPLEVEL_STATE_SUSPENDED
@ -493,16 +494,28 @@ gdk_registry_handle_global (void *data,
} }
else if (strcmp (interface, "zxdg_exporter_v1") == 0) else if (strcmp (interface, "zxdg_exporter_v1") == 0)
{ {
display_wayland->xdg_exporter = display_wayland->xdg_exporter_v1 =
wl_registry_bind (display_wayland->wl_registry, id, wl_registry_bind (display_wayland->wl_registry, id,
&zxdg_exporter_v1_interface, 1); &zxdg_exporter_v1_interface, 1);
} }
else if (strcmp (interface, "zxdg_importer_v1") == 0) else if (strcmp (interface, "zxdg_importer_v1") == 0)
{ {
display_wayland->xdg_importer = display_wayland->xdg_importer_v1 =
wl_registry_bind (display_wayland->wl_registry, id, wl_registry_bind (display_wayland->wl_registry, id,
&zxdg_importer_v1_interface, 1); &zxdg_importer_v1_interface, 1);
} }
else if (strcmp (interface, "zxdg_exporter_v2") == 0)
{
display_wayland->xdg_exporter_v2 =
wl_registry_bind (display_wayland->wl_registry, id,
&zxdg_exporter_v2_interface, 1);
}
else if (strcmp (interface, "zxdg_importer_v2") == 0)
{
display_wayland->xdg_importer_v2 =
wl_registry_bind (display_wayland->wl_registry, id,
&zxdg_importer_v2_interface, 1);
}
else if (strcmp (interface, "zwp_keyboard_shortcuts_inhibit_manager_v1") == 0) else if (strcmp (interface, "zwp_keyboard_shortcuts_inhibit_manager_v1") == 0)
{ {
display_wayland->keyboard_shortcuts_inhibit = display_wayland->keyboard_shortcuts_inhibit =
@ -1208,7 +1221,7 @@ _gdk_wayland_display_load_cursor_theme (GdkWaylandDisplay *display_wayland)
if (gdk_screen_get_setting (display_wayland->screen, "gtk-cursor-theme-size", &v)) if (gdk_screen_get_setting (display_wayland->screen, "gtk-cursor-theme-size", &v))
size = g_value_get_int (&v); size = g_value_get_int (&v);
else else
size = 32; size = 24;
g_value_unset (&v); g_value_unset (&v);
g_value_init (&v, G_TYPE_STRING); g_value_init (&v, G_TYPE_STRING);

View File

@ -32,6 +32,7 @@
#include <gdk/wayland/xdg-shell-client-protocol.h> #include <gdk/wayland/xdg-shell-client-protocol.h>
#include <gdk/wayland/xdg-shell-unstable-v6-client-protocol.h> #include <gdk/wayland/xdg-shell-unstable-v6-client-protocol.h>
#include <gdk/wayland/xdg-foreign-unstable-v1-client-protocol.h> #include <gdk/wayland/xdg-foreign-unstable-v1-client-protocol.h>
#include <gdk/wayland/xdg-foreign-unstable-v2-client-protocol.h>
#include <gdk/wayland/keyboard-shortcuts-inhibit-unstable-v1-client-protocol.h> #include <gdk/wayland/keyboard-shortcuts-inhibit-unstable-v1-client-protocol.h>
#include <gdk/wayland/server-decoration-client-protocol.h> #include <gdk/wayland/server-decoration-client-protocol.h>
#include <gdk/wayland/xdg-output-unstable-v1-client-protocol.h> #include <gdk/wayland/xdg-output-unstable-v1-client-protocol.h>
@ -96,8 +97,10 @@ struct _GdkWaylandDisplay
struct gtk_primary_selection_device_manager *gtk_primary_selection_manager; struct gtk_primary_selection_device_manager *gtk_primary_selection_manager;
struct zwp_primary_selection_device_manager_v1 *zwp_primary_selection_manager_v1; struct zwp_primary_selection_device_manager_v1 *zwp_primary_selection_manager_v1;
struct zwp_tablet_manager_v2 *tablet_manager; struct zwp_tablet_manager_v2 *tablet_manager;
struct zxdg_exporter_v1 *xdg_exporter; struct zxdg_exporter_v1 *xdg_exporter_v1;
struct zxdg_importer_v1 *xdg_importer; struct zxdg_importer_v1 *xdg_importer_v1;
struct zxdg_exporter_v2 *xdg_exporter_v2;
struct zxdg_importer_v2 *xdg_importer_v2;
struct zwp_keyboard_shortcuts_inhibit_manager_v1 *keyboard_shortcuts_inhibit; struct zwp_keyboard_shortcuts_inhibit_manager_v1 *keyboard_shortcuts_inhibit;
struct org_kde_kwin_server_decoration_manager *server_decoration_manager; struct org_kde_kwin_server_decoration_manager *server_decoration_manager;
struct zxdg_output_manager_v1 *xdg_output_manager; struct zxdg_output_manager_v1 *xdg_output_manager;

View File

@ -527,7 +527,7 @@ static TranslationEntry translations[] = {
{ FALSE, "org.gnome.desktop.interface", "gtk-key-theme", "gtk-key-theme-name" , G_TYPE_STRING, { .s = "Default" } }, { FALSE, "org.gnome.desktop.interface", "gtk-key-theme", "gtk-key-theme-name" , G_TYPE_STRING, { .s = "Default" } },
{ FALSE, "org.gnome.desktop.interface", "icon-theme", "gtk-icon-theme-name", G_TYPE_STRING, { .s = "gnome" } }, { 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-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", "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", "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 } }, { FALSE, "org.gnome.desktop.interface", "cursor-blink-time", "gtk-cursor-blink-time", G_TYPE_INT, { .i = 1200 } },
@ -760,16 +760,18 @@ init_settings (GdkScreen *screen)
goto fallback; goto fallback;
} }
if (g_variant_n_children (ret) == 0) g_variant_get (ret, "(a{sa{sv}})", &iter);
if (g_variant_iter_n_children (iter) == 0)
{ {
g_debug ("Received no portal settings"); g_debug ("Received no portal settings");
g_clear_pointer (&iter, g_variant_iter_free);
g_clear_pointer (&ret, g_variant_unref); g_clear_pointer (&ret, g_variant_unref);
g_clear_object (&screen_wayland->settings_portal);
goto fallback; goto fallback;
} }
g_variant_get (ret, "(a{sa{sv}})", &iter);
while (g_variant_iter_loop (iter, "{s@a{sv}}", &schema, &val)) while (g_variant_iter_loop (iter, "{s@a{sv}}", &schema, &val))
{ {
GVariantIter *iter2 = g_variant_iter_new (val); GVariantIter *iter2 = g_variant_iter_new (val);
@ -1565,7 +1567,9 @@ apply_monitor_change (GdkWaylandMonitor *monitor)
GdkRectangle logical_geometry; GdkRectangle logical_geometry;
gboolean needs_scaling = FALSE; gboolean needs_scaling = FALSE;
if (monitor->xdg_output_done) if (monitor_has_xdg_output (monitor) &&
monitor->xdg_output_geometry.width != 0 &&
monitor->xdg_output_geometry.height != 0)
{ {
logical_geometry = monitor->xdg_output_geometry; logical_geometry = monitor->xdg_output_geometry;
needs_scaling = needs_scaling =

View File

@ -133,7 +133,8 @@ struct _GdkWindowImplWayland
struct wl_subsurface *wl_subsurface; struct wl_subsurface *wl_subsurface;
struct wl_egl_window *egl_window; struct wl_egl_window *egl_window;
struct wl_egl_window *dummy_egl_window; struct wl_egl_window *dummy_egl_window;
struct zxdg_exported_v1 *xdg_exported; struct zxdg_exported_v1 *xdg_exported_v1;
struct zxdg_exported_v2 *xdg_exported_v2;
struct org_kde_kwin_server_decoration *server_decoration; struct org_kde_kwin_server_decoration *server_decoration;
} display_server; } display_server;
@ -236,7 +237,8 @@ struct _GdkWindowImplWayland
guint idle_source_id; guint idle_source_id;
} exported; } exported;
struct zxdg_imported_v1 *imported_transient_for; struct zxdg_imported_v1 *imported_v1_transient_for;
struct zxdg_imported_v2 *imported_v2_transient_for;
GHashTable *shortcuts_inhibitors; GHashTable *shortcuts_inhibitors;
struct wl_callback *surface_callback; struct wl_callback *surface_callback;
@ -952,6 +954,7 @@ buffer_release_callback (void *_data,
/* Release came in, we haven't done any interim updates, so we can just use /* Release came in, we haven't done any interim updates, so we can just use
* the old committed buffer again. * the old committed buffer again.
*/ */
g_clear_pointer (&impl->staging_cairo_surface, cairo_surface_destroy);
impl->staging_cairo_surface = g_steal_pointer (&impl->committed_cairo_surface); impl->staging_cairo_surface = g_steal_pointer (&impl->committed_cairo_surface);
} }
@ -1323,15 +1326,20 @@ gdk_wayland_window_sync_parent_of_imported (GdkWindow *window)
if (!impl->display_server.wl_surface) if (!impl->display_server.wl_surface)
return; return;
if (!impl->imported_transient_for)
return;
if (!is_realized_toplevel (window)) if (!is_realized_toplevel (window))
return; return;
zxdg_imported_v1_set_parent_of (impl->imported_transient_for, if (impl->imported_v2_transient_for)
{
zxdg_imported_v2_set_parent_of (impl->imported_v2_transient_for,
impl->display_server.wl_surface); impl->display_server.wl_surface);
} }
else if (impl->imported_v1_transient_for)
{
zxdg_imported_v1_set_parent_of (impl->imported_v1_transient_for,
impl->display_server.wl_surface);
}
}
static void static void
gdk_wayland_window_update_dialogs (GdkWindow *window) gdk_wayland_window_update_dialogs (GdkWindow *window)
@ -5418,7 +5426,7 @@ invoke_exported_closures (GdkWindow *window)
} }
static void static void
xdg_exported_handle (void *data, xdg_exported_v1_handle (void *data,
struct zxdg_exported_v1 *zxdg_exported_v1, struct zxdg_exported_v1 *zxdg_exported_v1,
const char *handle) const char *handle)
{ {
@ -5430,8 +5438,20 @@ xdg_exported_handle (void *data,
invoke_exported_closures (window); invoke_exported_closures (window);
} }
static const struct zxdg_exported_v1_listener xdg_exported_listener = { static const struct zxdg_exported_v1_listener xdg_exported_v1_listener = {
xdg_exported_handle xdg_exported_v1_handle
};
static void
xdg_exported_v2_handle (void *data,
struct zxdg_exported_v2 *zxdg_exported_v2,
const char *handle)
{
xdg_exported_v1_handle(data, NULL, handle);
}
static const struct zxdg_exported_v2_listener xdg_exported_v2_listener = {
xdg_exported_v2_handle
}; };
/** /**
@ -5453,7 +5473,7 @@ gdk_wayland_window_is_exported (GdkWindow *window)
{ {
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl); GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
return !!impl->display_server.xdg_exported; return impl->display_server.xdg_exported_v2 || impl->display_server.xdg_exported_v1;
} }
static gboolean static gboolean
@ -5520,24 +5540,44 @@ gdk_wayland_window_export_handle (GdkWindow *window,
impl = GDK_WINDOW_IMPL_WAYLAND (window->impl); impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
display_wayland = GDK_WAYLAND_DISPLAY (display); display_wayland = GDK_WAYLAND_DISPLAY (display);
if (!display_wayland->xdg_exporter) if (display_wayland->xdg_exporter_v2)
{
if (!impl->display_server.xdg_exported_v2)
{
struct zxdg_exported_v2 *xdg_exported_v2;
xdg_exported_v2 =
zxdg_exporter_v2_export_toplevel (display_wayland->xdg_exporter_v2,
impl->display_server.wl_surface);
zxdg_exported_v2_add_listener (xdg_exported_v2,
&xdg_exported_v2_listener,
window);
impl->display_server.xdg_exported_v2 = xdg_exported_v2;
}
}
else if (display_wayland->xdg_exporter_v1)
{
if (!impl->display_server.xdg_exported_v1)
{
struct zxdg_exported_v1 *xdg_exported_v1;
xdg_exported_v1 =
zxdg_exporter_v1_export (display_wayland->xdg_exporter_v1,
impl->display_server.wl_surface);
zxdg_exported_v1_add_listener (xdg_exported_v1,
&xdg_exported_v1_listener,
window);
impl->display_server.xdg_exported_v1 = xdg_exported_v1;
}
}
else
{ {
g_warning ("Server is missing xdg_foreign support"); g_warning ("Server is missing xdg_foreign support");
return FALSE; return FALSE;
} }
if (!impl->display_server.xdg_exported)
{
struct zxdg_exported_v1 *xdg_exported;
xdg_exported = zxdg_exporter_v1_export (display_wayland->xdg_exporter,
impl->display_server.wl_surface);
zxdg_exported_v1_add_listener (xdg_exported,
&xdg_exported_listener,
window);
impl->display_server.xdg_exported = xdg_exported;
}
closure = g_new0 (ExportedClosure, 1); closure = g_new0 (ExportedClosure, 1);
closure->callback = callback; closure->callback = callback;
@ -5559,8 +5599,16 @@ gdk_wayland_window_unexport (GdkWindow *window)
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl); GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
GList *l; GList *l;
g_clear_pointer (&impl->display_server.xdg_exported, if (impl->display_server.xdg_exported_v2)
{
g_clear_pointer (&impl->display_server.xdg_exported_v2,
zxdg_exported_v2_destroy);
}
else if (impl->display_server.xdg_exported_v1)
{
g_clear_pointer (&impl->display_server.xdg_exported_v1,
zxdg_exported_v1_destroy); zxdg_exported_v1_destroy);
}
for (l = impl->exported.closures; l; l = l->next) for (l = impl->exported.closures; l; l = l->next)
{ {
@ -5605,7 +5653,8 @@ gdk_wayland_window_unexport_handle (GdkWindow *window)
impl = GDK_WINDOW_IMPL_WAYLAND (window->impl); impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
g_return_if_fail (impl->display_server.xdg_exported); g_return_if_fail (impl->display_server.xdg_exported_v2 ||
impl->display_server.xdg_exported_v1);
impl->exported.export_count--; impl->exported.export_count--;
if (impl->exported.export_count == 0) if (impl->exported.export_count == 0)
@ -5617,11 +5666,20 @@ unset_transient_for_exported (GdkWindow *window)
{ {
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl); GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
g_clear_pointer (&impl->imported_transient_for, zxdg_imported_v1_destroy); if (impl->imported_v2_transient_for)
{
g_clear_pointer (&impl->imported_v2_transient_for,
zxdg_imported_v2_destroy);
}
else if (impl->imported_v1_transient_for)
{
g_clear_pointer (&impl->imported_v1_transient_for,
zxdg_imported_v1_destroy);
}
} }
static void static void
xdg_imported_destroyed (void *data, xdg_imported_v1_destroyed (void *data,
struct zxdg_imported_v1 *zxdg_imported_v1) struct zxdg_imported_v1 *zxdg_imported_v1)
{ {
GdkWindow *window = data; GdkWindow *window = data;
@ -5629,8 +5687,19 @@ xdg_imported_destroyed (void *data,
unset_transient_for_exported (window); unset_transient_for_exported (window);
} }
static const struct zxdg_imported_v1_listener xdg_imported_listener = { static const struct zxdg_imported_v1_listener xdg_imported_v1_listener = {
xdg_imported_destroyed, xdg_imported_v1_destroyed,
};
static void
xdg_imported_v2_destroyed (void *data,
struct zxdg_imported_v2 *zxdg_imported_v2)
{
xdg_imported_v1_destroyed (data, NULL);
}
static const struct zxdg_imported_v2_listener xdg_imported_v2_listener = {
xdg_imported_v2_destroyed,
}; };
/** /**
@ -5666,20 +5735,34 @@ gdk_wayland_window_set_transient_for_exported (GdkWindow *window,
impl = GDK_WINDOW_IMPL_WAYLAND (window->impl); impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
display_wayland = GDK_WAYLAND_DISPLAY (display); display_wayland = GDK_WAYLAND_DISPLAY (display);
if (!display_wayland->xdg_importer) if (display_wayland->xdg_importer_v2)
{
gdk_window_set_transient_for (window, NULL);
impl->imported_v2_transient_for =
zxdg_importer_v2_import_toplevel (display_wayland->xdg_importer_v2,
parent_handle_str);
zxdg_imported_v2_add_listener (impl->imported_v2_transient_for,
&xdg_imported_v2_listener,
window);
}
else if (display_wayland->xdg_importer_v1)
{
gdk_window_set_transient_for (window, NULL);
impl->imported_v1_transient_for =
zxdg_importer_v1_import (display_wayland->xdg_importer_v1,
parent_handle_str);
zxdg_imported_v1_add_listener (impl->imported_v1_transient_for,
&xdg_imported_v1_listener,
window);
}
else
{ {
g_warning ("Server is missing xdg_foreign support"); g_warning ("Server is missing xdg_foreign support");
return FALSE; return FALSE;
} }
gdk_window_set_transient_for (window, NULL);
impl->imported_transient_for =
zxdg_importer_v1_import (display_wayland->xdg_importer, parent_handle_str);
zxdg_imported_v1_add_listener (impl->imported_transient_for,
&xdg_imported_listener,
window);
gdk_wayland_window_sync_parent_of_imported (window); gdk_wayland_window_sync_parent_of_imported (window);
return TRUE; return TRUE;

View File

@ -53,6 +53,7 @@ proto_sources = [
['xdg-shell', 'unstable', 'v6', ], ['xdg-shell', 'unstable', 'v6', ],
['xdg-shell', 'stable', ], ['xdg-shell', 'stable', ],
['xdg-foreign', 'unstable', 'v1', ], ['xdg-foreign', 'unstable', 'v1', ],
['xdg-foreign', 'unstable', 'v2', ],
['tablet', 'unstable', 'v2', ], ['tablet', 'unstable', 'v2', ],
['keyboard-shortcuts-inhibit', 'unstable', 'v1', ], ['keyboard-shortcuts-inhibit', 'unstable', 'v1', ],
['server-decoration', 'private' ], ['server-decoration', 'private' ],

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1440,14 +1440,14 @@ out:
* modifier mask, %NULL * modifier mask, %NULL
* *
* Parses a string representing an accelerator. The format looks like * Parses a string representing an accelerator. The format looks like
* <Control>a or <Shift><Alt>F1 or <Release>z (the last one is * `<Control>a` or `<Shift><Alt>F1` or `<Release>z` (the last one is
* for key release). * for key release).
* *
* The parser is fairly liberal and allows lower or upper case, and also * The parser is fairly liberal and allows lower or upper case, and also
* abbreviations such as <Ctl> and <Ctrl>. Key names are parsed using * abbreviations such as `<Ctl>` and `<Ctrl>`. Key names are parsed using
* gdk_keyval_from_name(). For character keys the name is not the symbol, * gdk_keyval_from_name(). For character keys the name is not the symbol,
* but the lowercase name, e.g. one would use <Ctrl>minus instead of * but the lowercase name, e.g. one would use `<Ctrl>minus` instead of
* <Ctrl>-. * `<Ctrl>-`.
* *
* If the parse fails, @accelerator_key and @accelerator_mods will * If the parse fails, @accelerator_key and @accelerator_mods will
* be set to 0 (zero). * be set to 0 (zero).

View File

@ -328,6 +328,7 @@ enum {
ICON_RELEASE, ICON_RELEASE,
PREEDIT_CHANGED, PREEDIT_CHANGED,
INSERT_EMOJI, INSERT_EMOJI,
TOGGLE_DIRECTION,
LAST_SIGNAL LAST_SIGNAL
}; };
@ -553,13 +554,12 @@ static void gtk_entry_cut_clipboard (GtkEntry *entry);
static void gtk_entry_copy_clipboard (GtkEntry *entry); static void gtk_entry_copy_clipboard (GtkEntry *entry);
static void gtk_entry_paste_clipboard (GtkEntry *entry); static void gtk_entry_paste_clipboard (GtkEntry *entry);
static void gtk_entry_toggle_overwrite (GtkEntry *entry); static void gtk_entry_toggle_overwrite (GtkEntry *entry);
static void gtk_entry_toggle_direction (GtkEntry *entry);
static void gtk_entry_insert_emoji (GtkEntry *entry); static void gtk_entry_insert_emoji (GtkEntry *entry);
static void gtk_entry_select_all (GtkEntry *entry); static void gtk_entry_select_all (GtkEntry *entry);
static void gtk_entry_real_activate (GtkEntry *entry); static void gtk_entry_real_activate (GtkEntry *entry);
static gboolean gtk_entry_popup_menu (GtkWidget *widget); static gboolean gtk_entry_popup_menu (GtkWidget *widget);
static void keymap_direction_changed (GdkKeymap *keymap,
GtkEntry *entry);
static void keymap_state_changed (GdkKeymap *keymap, static void keymap_state_changed (GdkKeymap *keymap,
GtkEntry *entry); GtkEntry *entry);
static void remove_capslock_feedback (GtkEntry *entry); static void remove_capslock_feedback (GtkEntry *entry);
@ -821,6 +821,7 @@ gtk_entry_class_init (GtkEntryClass *class)
class->activate = gtk_entry_real_activate; class->activate = gtk_entry_real_activate;
class->get_text_area_size = gtk_entry_get_text_area_size; class->get_text_area_size = gtk_entry_get_text_area_size;
class->get_frame_size = gtk_entry_get_frame_size; class->get_frame_size = gtk_entry_get_frame_size;
class->toggle_direction = gtk_entry_toggle_direction;
quark_inner_border = g_quark_from_static_string ("gtk-entry-inner-border"); quark_inner_border = g_quark_from_static_string ("gtk-entry-inner-border");
quark_password_hint = g_quark_from_static_string ("gtk-entry-password-hint"); quark_password_hint = g_quark_from_static_string ("gtk-entry-password-hint");
@ -1847,6 +1848,15 @@ gtk_entry_class_init (GtkEntryClass *class)
NULL, NULL,
G_TYPE_NONE, 0); G_TYPE_NONE, 0);
signals[TOGGLE_DIRECTION] =
g_signal_new (I_("toggle-direction"),
G_OBJECT_CLASS_TYPE (gobject_class),
G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
G_STRUCT_OFFSET (GtkEntryClass, toggle_direction),
NULL, NULL,
NULL,
G_TYPE_NONE, 0);
/** /**
* GtkEntry::icon-press: * GtkEntry::icon-press:
* @entry: The entry on which the signal is emitted * @entry: The entry on which the signal is emitted
@ -2101,6 +2111,8 @@ gtk_entry_class_init (GtkEntryClass *class)
gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Insert, 0, gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Insert, 0,
"toggle-overwrite", 0); "toggle-overwrite", 0);
gtk_binding_entry_add_signal (binding_set, GDK_KEY_t, GDK_CONTROL_MASK|GDK_SHIFT_MASK,
"toggle-direction", 0);
/** /**
* GtkEntry:inner-border: * GtkEntry:inner-border:
* *
@ -3002,7 +3014,6 @@ gtk_entry_dispose (GObject *object)
keymap = gdk_keymap_get_for_display (gtk_widget_get_display (GTK_WIDGET (object))); keymap = gdk_keymap_get_for_display (gtk_widget_get_display (GTK_WIDGET (object)));
g_signal_handlers_disconnect_by_func (keymap, keymap_state_changed, entry); g_signal_handlers_disconnect_by_func (keymap, keymap_state_changed, entry);
g_signal_handlers_disconnect_by_func (keymap, keymap_direction_changed, entry);
G_OBJECT_CLASS (gtk_entry_parent_class)->dispose (object); G_OBJECT_CLASS (gtk_entry_parent_class)->dispose (object);
} }
@ -4973,9 +4984,6 @@ gtk_entry_focus_in (GtkWidget *widget,
G_CALLBACK (keymap_state_changed), entry); G_CALLBACK (keymap_state_changed), entry);
} }
g_signal_connect (keymap, "direction-changed",
G_CALLBACK (keymap_direction_changed), entry);
if (gtk_entry_buffer_get_bytes (get_buffer (entry)) == 0 && if (gtk_entry_buffer_get_bytes (get_buffer (entry)) == 0 &&
priv->placeholder_text != NULL) priv->placeholder_text != NULL)
{ {
@ -5027,7 +5035,6 @@ gtk_entry_focus_out (GtkWidget *widget,
} }
g_signal_handlers_disconnect_by_func (keymap, keymap_state_changed, entry); g_signal_handlers_disconnect_by_func (keymap, keymap_state_changed, entry);
g_signal_handlers_disconnect_by_func (keymap, keymap_direction_changed, entry);
completion = gtk_entry_get_completion (entry); completion = gtk_entry_get_completion (entry);
if (completion) if (completion)
@ -6028,6 +6035,34 @@ gtk_entry_toggle_overwrite (GtkEntry *entry)
gtk_widget_queue_draw (GTK_WIDGET (entry)); gtk_widget_queue_draw (GTK_WIDGET (entry));
} }
static void
update_resolved_dir (GtkEntry *self)
{
GtkEntryPrivate *priv = self->priv;
if (gtk_widget_get_direction (GTK_WIDGET (self)) == GTK_TEXT_DIR_RTL)
priv->resolved_dir = PANGO_DIRECTION_RTL;
else
priv->resolved_dir = PANGO_DIRECTION_LTR;
}
static void
gtk_entry_toggle_direction (GtkEntry *entry)
{
GtkWidget *widget = GTK_WIDGET (entry);
GtkEntryPrivate *priv = entry->priv;
if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
gtk_widget_set_direction (widget, GTK_TEXT_DIR_LTR);
else
gtk_widget_set_direction (widget, GTK_TEXT_DIR_RTL);
update_resolved_dir (entry);
if (priv->cached_layout)
pango_layout_context_changed (priv->cached_layout);
}
static void static void
gtk_entry_select_all (GtkEntry *entry) gtk_entry_select_all (GtkEntry *entry)
{ {
@ -6064,13 +6099,6 @@ gtk_entry_real_activate (GtkEntry *entry)
} }
} }
static void
keymap_direction_changed (GdkKeymap *keymap,
GtkEntry *entry)
{
gtk_entry_recompute (entry);
}
/* IM Context Callbacks /* IM Context Callbacks
*/ */
@ -6398,40 +6426,11 @@ gtk_entry_create_layout (GtkEntry *entry,
} }
else else
{ {
PangoDirection pango_dir;
if (gtk_entry_get_display_mode (entry) == DISPLAY_NORMAL)
pango_dir = _gtk_pango_find_base_dir (display_text, n_bytes);
else
pango_dir = PANGO_DIRECTION_NEUTRAL;
if (pango_dir == PANGO_DIRECTION_NEUTRAL)
{
if (gtk_widget_has_focus (widget))
{
GdkDisplay *display = gtk_widget_get_display (widget);
GdkKeymap *keymap = gdk_keymap_get_for_display (display);
if (gdk_keymap_get_direction (keymap) == PANGO_DIRECTION_RTL)
pango_dir = PANGO_DIRECTION_RTL;
else
pango_dir = PANGO_DIRECTION_LTR;
}
else
{
if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
pango_dir = PANGO_DIRECTION_RTL;
else
pango_dir = PANGO_DIRECTION_LTR;
}
}
pango_context_set_base_dir (gtk_widget_get_pango_context (widget), pango_dir);
priv->resolved_dir = pango_dir;
pango_layout_set_text (layout, display_text, n_bytes); pango_layout_set_text (layout, display_text, n_bytes);
} }
update_resolved_dir (entry);
pango_layout_set_attributes (layout, tmp_attrs); pango_layout_set_attributes (layout, tmp_attrs);
if (priv->tabs) if (priv->tabs)

View File

@ -162,13 +162,14 @@ struct _GtkEntryClass
/*< private >*/ /*< private >*/
void (* toggle_direction) (GtkEntry *entry);
/* Padding for future expansion */ /* Padding for future expansion */
void (*_gtk_reserved1) (void); void (*_gtk_reserved1) (void);
void (*_gtk_reserved2) (void); void (*_gtk_reserved2) (void);
void (*_gtk_reserved3) (void); void (*_gtk_reserved3) (void);
void (*_gtk_reserved4) (void); void (*_gtk_reserved4) (void);
void (*_gtk_reserved5) (void); void (*_gtk_reserved5) (void);
void (*_gtk_reserved6) (void);
}; };
GDK_AVAILABLE_IN_ALL GDK_AVAILABLE_IN_ALL

View File

@ -4832,34 +4832,6 @@ stop_loading_and_clear_list_model (GtkFileChooserWidget *impl,
gtk_tree_view_set_model (GTK_TREE_VIEW (priv->browse_files_tree_view), NULL); gtk_tree_view_set_model (GTK_TREE_VIEW (priv->browse_files_tree_view), NULL);
} }
/* Replace 'target' with 'replacement' in the input string. */
static gchar *
string_replace (const gchar *input,
const gchar *target,
const gchar *replacement)
{
gchar **pieces;
gchar *output;
pieces = g_strsplit (input, target, -1);
output = g_strjoinv (replacement, pieces);
g_strfreev (pieces);
return output;
}
static void
replace_ratio (gchar **str)
{
if (g_get_charset (NULL))
{
gchar *ret;
ret = string_replace (*str, ":", "\xE2\x80\x8E");
g_free (*str);
*str = ret;
}
}
static char * static char *
my_g_format_date_for_display (GtkFileChooserWidget *impl, my_g_format_date_for_display (GtkFileChooserWidget *impl,
glong secs) glong secs)
@ -4918,7 +4890,6 @@ my_g_format_date_for_display (GtkFileChooserWidget *impl,
} }
date_str = g_date_time_format (time, format); date_str = g_date_time_format (time, format);
replace_ratio (&date_str);
g_date_time_unref (now); g_date_time_unref (now);
g_date_time_unref (now_date); g_date_time_unref (now_date);
@ -4949,7 +4920,6 @@ my_g_format_time_for_display (GtkFileChooserWidget *impl,
format = _("%l:%M %p"); format = _("%l:%M %p");
date_str = g_date_time_format (time, format); date_str = g_date_time_format (time, format);
replace_ratio (&date_str);
g_date_time_unref (time); g_date_time_unref (time);

View File

@ -125,6 +125,7 @@
#include "gtkmain.h" #include "gtkmain.h"
#include "gtkintl.h" #include "gtkintl.h"
#include "gtkmarshalers.h" #include "gtkmarshalers.h"
#include <math.h>
typedef struct _GtkGesturePrivate GtkGesturePrivate; typedef struct _GtkGesturePrivate GtkGesturePrivate;
typedef struct _PointData PointData; typedef struct _PointData PointData;
@ -472,7 +473,7 @@ _update_widget_coordinates (GtkGesture *gesture,
GtkWidget *event_widget, *widget; GtkWidget *event_widget, *widget;
GtkAllocation allocation; GtkAllocation allocation;
gdouble event_x, event_y; gdouble event_x, event_y;
gint wx, wy, x, y; gint x, y;
event_widget = gtk_get_event_widget (data->event); event_widget = gtk_get_event_widget (data->event);
@ -486,6 +487,7 @@ _update_widget_coordinates (GtkGesture *gesture,
while (window && window != event_widget_window) while (window && window != event_widget_window)
{ {
gint wx, wy;
gdk_window_get_position (window, &wx, &wy); gdk_window_get_position (window, &wx, &wy);
event_x += wx; event_x += wx;
event_y += wy; event_y += wy;
@ -502,13 +504,20 @@ _update_widget_coordinates (GtkGesture *gesture,
event_y -= allocation.y; event_y -= allocation.y;
} }
gtk_widget_translate_coordinates (event_widget, widget, if (gtk_widget_translate_coordinates (event_widget, widget,
event_x, event_y, &x, &y); event_x, event_y, &x, &y))
{
/* gtk_widget_translate() loses the fractional part so we need to /* gtk_widget_translate() loses the fractional part so we need to
* add it back to not lose accuracy */ * add it back to not lose accuracy */
data->widget_x = x + (event_x - (int)event_x); data->widget_x = x + (event_x - (int)event_x);
data->widget_y = y + (event_y - (int)event_y); data->widget_y = y + (event_y - (int)event_y);
}
else
{
/* Mark the coordinates well outside the widget, to
* signal that the translation has failed */
data->widget_x = data->widget_y = NAN;
}
} }
static GtkEventSequenceState static GtkEventSequenceState

View File

@ -102,8 +102,6 @@ static gboolean gtk_im_multicontext_delete_surrounding_cb (GtkIMContext *
static void propagate_purpose (GtkIMMulticontext *context); static void propagate_purpose (GtkIMMulticontext *context);
static const gchar *global_context_id = NULL;
G_DEFINE_TYPE_WITH_PRIVATE (GtkIMMulticontext, gtk_im_multicontext, GTK_TYPE_IM_CONTEXT) G_DEFINE_TYPE_WITH_PRIVATE (GtkIMMulticontext, gtk_im_multicontext, GTK_TYPE_IM_CONTEXT)
static void static void
@ -256,10 +254,7 @@ get_effective_context_id (GtkIMMulticontext *multicontext)
if (priv->context_id_aux) if (priv->context_id_aux)
return priv->context_id_aux; return priv->context_id_aux;
if (!global_context_id) return _gtk_im_module_get_default_context_id ();
global_context_id = _gtk_im_module_get_default_context_id ();
return global_context_id;
} }
static GtkIMContext * static GtkIMContext *
@ -267,9 +262,6 @@ gtk_im_multicontext_get_slave (GtkIMMulticontext *multicontext)
{ {
GtkIMMulticontextPrivate *priv = multicontext->priv; GtkIMMulticontextPrivate *priv = multicontext->priv;
if (g_strcmp0 (priv->context_id, get_effective_context_id (multicontext)) != 0)
gtk_im_multicontext_set_slave (multicontext, NULL, FALSE);
if (!priv->slave) if (!priv->slave)
{ {
GtkIMContext *slave; GtkIMContext *slave;
@ -291,22 +283,30 @@ gtk_im_multicontext_get_slave (GtkIMMulticontext *multicontext)
static void static void
im_module_setting_changed (GtkSettings *settings, im_module_setting_changed (GtkSettings *settings,
gpointer data) GtkIMMulticontext *self)
{ {
global_context_id = NULL; gtk_im_multicontext_set_slave (self, NULL, FALSE);
} }
static void static void
gtk_im_multicontext_set_client_window (GtkIMContext *context, gtk_im_multicontext_set_client_window (GtkIMContext *context,
GdkWindow *window) GdkWindow *window)
{ {
GtkIMMulticontext *multicontext = GTK_IM_MULTICONTEXT (context); GtkIMMulticontext *self = GTK_IM_MULTICONTEXT (context);
GtkIMMulticontextPrivate *priv = multicontext->priv; GtkIMMulticontextPrivate *priv = self->priv;
GtkIMContext *slave; GtkIMContext *slave;
GdkScreen *screen; GdkScreen *screen;
GtkSettings *settings; GtkSettings *settings;
gboolean connected;
if (priv->client_window != NULL)
{
screen = gdk_window_get_screen (priv->client_window);
settings = gtk_settings_get_for_screen (screen);
g_signal_handlers_disconnect_by_func (settings,
im_module_setting_changed,
self);
}
priv->client_window = window; priv->client_window = window;
@ -315,20 +315,12 @@ gtk_im_multicontext_set_client_window (GtkIMContext *context,
screen = gdk_window_get_screen (window); screen = gdk_window_get_screen (window);
settings = gtk_settings_get_for_screen (screen); settings = gtk_settings_get_for_screen (screen);
connected = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (settings),
"gtk-im-module-connected"));
if (!connected)
{
g_signal_connect (settings, "notify::gtk-im-module", g_signal_connect (settings, "notify::gtk-im-module",
G_CALLBACK (im_module_setting_changed), NULL); G_CALLBACK (im_module_setting_changed),
g_object_set_data (G_OBJECT (settings), "gtk-im-module-connected", self);
GINT_TO_POINTER (TRUE));
global_context_id = NULL;
}
} }
slave = gtk_im_multicontext_get_slave (multicontext); slave = gtk_im_multicontext_get_slave (self);
if (slave) if (slave)
gtk_im_context_set_client_window (slave, window); gtk_im_context_set_client_window (slave, window);
} }
@ -723,9 +715,14 @@ gtk_im_multicontext_append_menuitems (GtkIMMulticontext *context,
const char * const char *
gtk_im_multicontext_get_context_id (GtkIMMulticontext *context) gtk_im_multicontext_get_context_id (GtkIMMulticontext *context)
{ {
GtkIMMulticontextPrivate *priv = context->priv;
g_return_val_if_fail (GTK_IS_IM_MULTICONTEXT (context), NULL); g_return_val_if_fail (GTK_IS_IM_MULTICONTEXT (context), NULL);
return context->priv->context_id; if (priv->context_id == NULL)
gtk_im_multicontext_get_slave (context);
return priv->context_id;
} }
/** /**

View File

@ -2082,6 +2082,13 @@ typedef struct
GdkEvent *trigger_event; GdkEvent *trigger_event;
} PopupInfo; } PopupInfo;
static void
_gtk_menu_item_popup_info_destroy (PopupInfo *info)
{
g_clear_pointer (&info->trigger_event, gdk_event_free);
g_slice_free (PopupInfo, info);
}
static gint static gint
gtk_menu_item_popup_timeout (gpointer data) gtk_menu_item_popup_timeout (gpointer data)
{ {
@ -2105,9 +2112,6 @@ gtk_menu_item_popup_timeout (gpointer data)
priv->timer = 0; priv->timer = 0;
g_clear_pointer (&info->trigger_event, gdk_event_free);
g_slice_free (PopupInfo, info);
return FALSE; return FALSE;
} }
@ -2148,9 +2152,11 @@ _gtk_menu_item_popup_submenu (GtkWidget *widget,
info->menu_item = menu_item; info->menu_item = menu_item;
info->trigger_event = gtk_get_current_event (); info->trigger_event = gtk_get_current_event ();
priv->timer = gdk_threads_add_timeout (popup_delay, priv->timer = gdk_threads_add_timeout_full (G_PRIORITY_DEFAULT,
popup_delay,
gtk_menu_item_popup_timeout, gtk_menu_item_popup_timeout,
info); info,
(GDestroyNotify) _gtk_menu_item_popup_info_destroy);
g_source_set_name_by_id (priv->timer, "[gtk+] gtk_menu_item_popup_timeout"); g_source_set_name_by_id (priv->timer, "[gtk+] gtk_menu_item_popup_timeout");
return; return;

View File

@ -367,19 +367,20 @@ setup_primary_label_font (GtkMessageDialog *dialog)
} }
static void static void
setup_type (GtkMessageDialog *dialog, update_accessible_name (GtkMessageDialog *dialog)
GtkMessageType type)
{ {
GtkMessageDialogPrivate *priv = dialog->priv; AtkObject *atk_obj = gtk_widget_get_accessible (GTK_WIDGET (dialog));
const gchar *name = NULL; if (!GTK_IS_ACCESSIBLE (atk_obj))
AtkObject *atk_obj;
if (priv->message_type == type)
return; return;
priv->message_type = type; const char *name = gtk_window_get_title (GTK_WINDOW (dialog));
if (name && name[0])
{
atk_object_set_name (atk_obj, name);
return;
}
switch (type) switch (dialog->priv->message_type)
{ {
case GTK_MESSAGE_INFO: case GTK_MESSAGE_INFO:
name = _("Information"); name = _("Information");
@ -401,16 +402,32 @@ setup_type (GtkMessageDialog *dialog,
break; break;
default: default:
g_warning ("Unknown GtkMessageType %u", type); g_warning ("Unknown GtkMessageType %u", dialog->priv->message_type);
break; break;
} }
if (name)
atk_object_set_name (atk_obj, name);
}
static void
setup_type (GtkMessageDialog *dialog,
GtkMessageType type)
{
GtkMessageDialogPrivate *priv = dialog->priv;
AtkObject *atk_obj;
if (priv->message_type == type)
return;
priv->message_type = type;
atk_obj = gtk_widget_get_accessible (GTK_WIDGET (dialog)); atk_obj = gtk_widget_get_accessible (GTK_WIDGET (dialog));
if (GTK_IS_ACCESSIBLE (atk_obj)) if (GTK_IS_ACCESSIBLE (atk_obj))
{ {
atk_object_set_role (atk_obj, ATK_ROLE_ALERT); atk_object_set_role (atk_obj, ATK_ROLE_ALERT);
if (name) update_accessible_name (dialog);
atk_object_set_name (atk_obj, name);
} }
g_object_notify (G_OBJECT (dialog), "message-type"); g_object_notify (G_OBJECT (dialog), "message-type");
@ -426,6 +443,8 @@ update_title (GObject *dialog,
title = gtk_window_get_title (GTK_WINDOW (dialog)); title = gtk_window_get_title (GTK_WINDOW (dialog));
gtk_label_set_label (GTK_LABEL (label), title); gtk_label_set_label (GTK_LABEL (label), title);
gtk_widget_set_visible (label, title && title[0]); gtk_widget_set_visible (label, title && title[0]);
update_accessible_name (GTK_MESSAGE_DIALOG (dialog));
} }
static void static void

View File

@ -2024,11 +2024,7 @@ gtk_selection_data_get_uris (const GtkSelectionData *selection_data)
GPtrArray *uris = g_ptr_array_new (); GPtrArray *uris = g_ptr_array_new ();
for (int i = 0; files[i]; i++) for (int i = 0; files[i]; i++)
{ g_ptr_array_add (uris, g_filename_to_uri (files[i], NULL, NULL));
GFile *file = g_file_new_for_path (files[i]);
g_ptr_array_add (uris, g_file_get_uri (file));
g_object_unref (file);
}
g_ptr_array_add (uris, NULL); g_ptr_array_add (uris, NULL);
result = (char **) g_ptr_array_free (uris, FALSE); result = (char **) g_ptr_array_free (uris, FALSE);

View File

@ -800,6 +800,19 @@ gtk_spin_button_init (GtkSpinButton *spin_button)
priv->gadget = gtk_box_gadget_new_for_node (widget_node, GTK_WIDGET (spin_button)); priv->gadget = gtk_box_gadget_new_for_node (widget_node, GTK_WIDGET (spin_button));
entry_node = gtk_css_node_new (); entry_node = gtk_css_node_new ();
char *down_button_icon_names[] = {
"value-decrease-symbolic",
"list-remove-symbolic"
};
GIcon *down_icon = g_themed_icon_new_from_names (down_button_icon_names, 2);
char *up_button_icon_names[] = {
"value-increase-symbolic",
"list-add-symbolic"
};
GIcon *up_icon = g_themed_icon_new_from_names (up_button_icon_names, 2);
gtk_css_node_set_name (entry_node, I_("entry")); gtk_css_node_set_name (entry_node, I_("entry"));
gtk_css_node_set_parent (entry_node, widget_node); gtk_css_node_set_parent (entry_node, widget_node);
gtk_css_node_set_state (entry_node, gtk_css_node_get_state (widget_node)); gtk_css_node_set_state (entry_node, gtk_css_node_get_state (widget_node));
@ -812,7 +825,8 @@ gtk_spin_button_init (GtkSpinButton *spin_button)
priv->down_button = gtk_icon_helper_new_named ("button", priv->down_button = gtk_icon_helper_new_named ("button",
GTK_WIDGET (spin_button)); GTK_WIDGET (spin_button));
_gtk_icon_helper_set_use_fallback (GTK_ICON_HELPER (priv->down_button), TRUE); _gtk_icon_helper_set_use_fallback (GTK_ICON_HELPER (priv->down_button), TRUE);
_gtk_icon_helper_set_icon_name (GTK_ICON_HELPER (priv->down_button), "list-remove-symbolic", GTK_ICON_SIZE_MENU); _gtk_icon_helper_set_gicon (GTK_ICON_HELPER (priv->down_button), down_icon, GTK_ICON_SIZE_MENU);
g_object_unref (down_icon);
gtk_css_gadget_add_class (priv->down_button, "down"); gtk_css_gadget_add_class (priv->down_button, "down");
gtk_css_node_set_parent (gtk_css_gadget_get_node (priv->down_button), widget_node); gtk_css_node_set_parent (gtk_css_gadget_get_node (priv->down_button), widget_node);
gtk_css_node_set_state (gtk_css_gadget_get_node (priv->down_button), gtk_css_node_get_state (widget_node)); gtk_css_node_set_state (gtk_css_gadget_get_node (priv->down_button), gtk_css_node_get_state (widget_node));
@ -823,7 +837,8 @@ gtk_spin_button_init (GtkSpinButton *spin_button)
priv->up_button = gtk_icon_helper_new_named ("button", priv->up_button = gtk_icon_helper_new_named ("button",
GTK_WIDGET (spin_button)); GTK_WIDGET (spin_button));
_gtk_icon_helper_set_use_fallback (GTK_ICON_HELPER (priv->up_button), TRUE); _gtk_icon_helper_set_use_fallback (GTK_ICON_HELPER (priv->up_button), TRUE);
_gtk_icon_helper_set_icon_name (GTK_ICON_HELPER (priv->up_button), "list-add-symbolic", GTK_ICON_SIZE_MENU); _gtk_icon_helper_set_gicon (GTK_ICON_HELPER (priv->up_button), up_icon, GTK_ICON_SIZE_MENU);
g_object_unref (up_icon);
gtk_css_gadget_add_class (priv->up_button, "up"); gtk_css_gadget_add_class (priv->up_button, "up");
gtk_css_node_set_parent (gtk_css_gadget_get_node (priv->up_button), widget_node); gtk_css_node_set_parent (gtk_css_gadget_get_node (priv->up_button), widget_node);
gtk_css_node_set_state (gtk_css_gadget_get_node (priv->up_button), gtk_css_node_get_state (widget_node)); gtk_css_node_set_state (gtk_css_gadget_get_node (priv->up_button), gtk_css_node_get_state (widget_node));
@ -2416,6 +2431,10 @@ gtk_spin_button_set_numeric (GtkSpinButton *spin_button,
if (priv->numeric != numeric) if (priv->numeric != numeric)
{ {
priv->numeric = numeric; priv->numeric = numeric;
if (numeric)
gtk_widget_set_direction (GTK_WIDGET (spin_button), GTK_TEXT_DIR_LTR);
g_object_notify (G_OBJECT (spin_button), "numeric"); g_object_notify (G_OBJECT (spin_button), "numeric");
} }
} }

View File

@ -683,6 +683,8 @@ static gboolean gtk_widget_real_button_event (GtkWidget
GdkEventButton *event); GdkEventButton *event);
static gboolean gtk_widget_real_motion_event (GtkWidget *widget, static gboolean gtk_widget_real_motion_event (GtkWidget *widget,
GdkEventMotion *event); GdkEventMotion *event);
static gboolean gtk_widget_real_crossing_event (GtkWidget *widget,
GdkEventCrossing *event);
static gboolean gtk_widget_real_key_press_event (GtkWidget *widget, static gboolean gtk_widget_real_key_press_event (GtkWidget *widget,
GdkEventKey *event); GdkEventKey *event);
static gboolean gtk_widget_real_key_release_event (GtkWidget *widget, static gboolean gtk_widget_real_key_release_event (GtkWidget *widget,
@ -1076,8 +1078,8 @@ gtk_widget_class_init (GtkWidgetClass *klass)
klass->destroy_event = NULL; klass->destroy_event = NULL;
klass->key_press_event = gtk_widget_real_key_press_event; klass->key_press_event = gtk_widget_real_key_press_event;
klass->key_release_event = gtk_widget_real_key_release_event; klass->key_release_event = gtk_widget_real_key_release_event;
klass->enter_notify_event = NULL; klass->enter_notify_event = gtk_widget_real_crossing_event;
klass->leave_notify_event = NULL; klass->leave_notify_event = gtk_widget_real_crossing_event;
klass->configure_event = NULL; klass->configure_event = NULL;
klass->focus_in_event = gtk_widget_real_focus_in_event; klass->focus_in_event = gtk_widget_real_focus_in_event;
klass->focus_out_event = gtk_widget_real_focus_out_event; klass->focus_out_event = gtk_widget_real_focus_out_event;
@ -7217,6 +7219,14 @@ gtk_widget_real_motion_event (GtkWidget *widget,
GTK_PHASE_BUBBLE); GTK_PHASE_BUBBLE);
} }
static gboolean
gtk_widget_real_crossing_event (GtkWidget *widget,
GdkEventCrossing *event)
{
return _gtk_widget_run_controllers (widget, (GdkEvent *) event,
GTK_PHASE_BUBBLE);
}
static gboolean static gboolean
gtk_widget_real_key_press_event (GtkWidget *widget, gtk_widget_real_key_press_event (GtkWidget *widget,
GdkEventKey *event) GdkEventKey *event)
@ -10984,7 +10994,10 @@ gtk_widget_get_scale_factor (GtkWidget *widget)
display = gtk_widget_get_display (widget); display = gtk_widget_get_display (widget);
monitor = gdk_display_get_monitor (display, 0); monitor = gdk_display_get_monitor (display, 0);
if (monitor)
return gdk_monitor_get_scale_factor (monitor); return gdk_monitor_get_scale_factor (monitor);
return 1;
} }
/** /**

View File

@ -13028,8 +13028,6 @@ gtk_window_export_handle (GtkWindow *window,
} }
#endif #endif
g_warning ("Couldn't export handle, unsupported windowing system");
return FALSE; return FALSE;
} }

View File

@ -644,14 +644,17 @@ scan_directory (const gchar *base_path,
directories = scan_directory (base_path, subsubdir, files, directories = scan_directory (base_path, subsubdir, files,
directories, depth + 1); directories, depth + 1);
g_free (subsubdir); g_free (subsubdir);
g_free (path);
continue; continue;
} }
/* ignore images in the toplevel directory */ /* ignore images in the toplevel directory */
if (subdir == NULL) if (subdir == NULL)
{
g_free (path);
continue; continue;
}
retval = g_file_test (path, G_FILE_TEST_IS_REGULAR); retval = g_file_test (path, G_FILE_TEST_IS_REGULAR);
if (retval) if (retval)
{ {
@ -665,7 +668,10 @@ scan_directory (const gchar *base_path,
flags |= HAS_ICON_FILE; flags |= HAS_ICON_FILE;
if (flags == 0) if (flags == 0)
{
g_free (path);
continue; continue;
}
basename = g_strdup (name); basename = g_strdup (name);
dot = strrchr (basename, '.'); dot = strrchr (basename, '.');

View File

@ -1,5 +1,5 @@
project('gtk+', 'c', project('gtk', 'c',
version: '3.24.43', version: '3.24.48',
default_options: [ default_options: [
'buildtype=debugoptimized', 'buildtype=debugoptimized',
'warning_level=1' 'warning_level=1'
@ -41,8 +41,8 @@ xkbcommon_req = '>= 0.2.0'
gnome = import('gnome') gnome = import('gnome')
add_project_arguments('-DG_LOG_USE_STRUCTURED=1', language: 'c') add_project_arguments('-DG_LOG_USE_STRUCTURED=1', language: 'c')
add_project_arguments('-DGLIB_MIN_REQUIRED_VERSION=' + glib_min_required, language: 'c') add_project_arguments('-DGLIB_VERSION_MIN_REQUIRED=' + glib_min_required, language: 'c')
add_project_arguments('-DGLIB_MAX_ALLOWED_VERSION=' + glib_max_allowed, language: 'c') add_project_arguments('-DGLIB_VERSION_MAX_ALLOWED=' + glib_max_allowed, language: 'c')
# Making releases: # Making releases:
# 1. gtk_micro_version += 1; # 1. gtk_micro_version += 1;

File diff suppressed because it is too large Load Diff

View File

@ -10,8 +10,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gtk+ 2.3.1\n" "Project-Id-Version: gtk+ 2.3.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-04-24 12:06+0000\n" "POT-Creation-Date: 2024-09-29 13:26+0000\n"
"PO-Revision-Date: 2024-04-28 15:13+0330\n" "PO-Revision-Date: 2024-11-04 13:20+0330\n"
"Last-Translator: Danial Behzadi <dani.behzi@ubuntu.com>\n" "Last-Translator: Danial Behzadi <dani.behzi@ubuntu.com>\n"
"Language-Team: Persian <translate@ifsug.org>\n" "Language-Team: Persian <translate@ifsug.org>\n"
"Language: fa\n" "Language: fa\n"
@ -19,7 +19,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Poedit-SourceCharset: utf-8\n" "X-Poedit-SourceCharset: utf-8\n"
"X-Generator: Poedit 3.2.2\n" "X-Generator: Poedit 3.4.4\n"
#: gdk/gdkapplaunchcontext.c:127 gdk/gdkcursor.c:139 gdk/gdkdevicemanager.c:185 #: gdk/gdkapplaunchcontext.c:127 gdk/gdkcursor.c:139 gdk/gdkdevicemanager.c:185
#: gdk/gdkglcontext.c:320 gdk/gdkseat.c:202 gdk/gdkseat.c:203 #: gdk/gdkglcontext.c:320 gdk/gdkseat.c:202 gdk/gdkseat.c:203
@ -779,11 +779,11 @@ msgstr "این که موارد باید با شماره نشان داده شون
#: gtk/deprecated/gtkstatusicon.c:234 gtk/gtkimage.c:256 #: gtk/deprecated/gtkstatusicon.c:234 gtk/gtkimage.c:256
msgid "Pixbuf" msgid "Pixbuf"
msgstr "میانیگر پیکسل" msgstr "میانیگر تصدانه"
#: gtk/deprecated/gtkstatusicon.c:235 gtk/gtkimage.c:257 #: gtk/deprecated/gtkstatusicon.c:235 gtk/gtkimage.c:257
msgid "A GdkPixbuf to display" msgid "A GdkPixbuf to display"
msgstr "میانیگر پیکسل برای نمایش" msgstr "میانیگر تصدانه برای نمایش"
#: gtk/deprecated/gtkstatusicon.c:242 gtk/gtkimage.c:270 #: gtk/deprecated/gtkstatusicon.c:242 gtk/gtkimage.c:270
#: gtk/gtkrecentmanager.c:289 #: gtk/gtkrecentmanager.c:289
@ -1073,7 +1073,7 @@ msgstr "اندازهٔ نقشک"
#: gtk/deprecated/gtktrayicon-x11.c:179 #: gtk/deprecated/gtktrayicon-x11.c:179
msgid "The pixel size that icons should be forced to, or zero" msgid "The pixel size that icons should be forced to, or zero"
msgstr "اندازهٔ پیکسلی که نقشک باید به آن اجبار شود. یا صفر" msgstr "اندازهٔ تصدانه‌ای که نقشک باید به آن اجبار شود. یا صفر"
#: gtk/deprecated/gtkuimanager.c:463 gtk/gtkcombobox.c:1010 #: gtk/deprecated/gtkuimanager.c:463 gtk/gtkcombobox.c:1010
msgid "Add tearoffs to menus" msgid "Add tearoffs to menus"
@ -1510,7 +1510,7 @@ msgstr "لایه‌گذاری سربرگ"
#: gtk/gtkassistant.c:541 #: gtk/gtkassistant.c:541
msgid "Number of pixels around the header." msgid "Number of pixels around the header."
msgstr "تعداد پیکسلها دور سرایند." msgstr "تعداد تصدانهها دور سرایند."
#: gtk/gtkassistant.c:556 #: gtk/gtkassistant.c:556
msgid "Content Padding" msgid "Content Padding"
@ -1518,7 +1518,7 @@ msgstr "فاصله‌دهی محتوا"
#: gtk/gtkassistant.c:557 #: gtk/gtkassistant.c:557
msgid "Number of pixels around the content pages." msgid "Number of pixels around the content pages."
msgstr "تعداد پیکسلها دور صفحه‌های محتوا." msgstr "تعداد تصدانهها دور صفحه‌های محتوا."
#: gtk/gtkassistant.c:573 #: gtk/gtkassistant.c:573
msgid "Page type" msgid "Page type"
@ -1791,7 +1791,7 @@ msgstr "فاصله‌گذاری تصویر"
#: gtk/gtkbutton.c:627 #: gtk/gtkbutton.c:627
msgid "Spacing in pixels between the image and label" msgid "Spacing in pixels between the image and label"
msgstr "فاصله‌گذاری بین تصویر و برچسب به پیکسل" msgstr "فاصله‌گذاری بین تصویر و برچسب به تصدانه"
# naashenaakhte, naashenaas, naama'loom, naamoshakhkhas # naashenaakhte, naashenaas, naama'loom, naamoshakhkhas
#: gtk/gtkcalendar.c:398 #: gtk/gtkcalendar.c:398
@ -3355,7 +3355,7 @@ msgstr ""
#: gtk/gtkentry.c:1137 #: gtk/gtkentry.c:1137
msgid "Secondary pixbuf" msgid "Secondary pixbuf"
msgstr "میانگیر پیکسل ثانویه" msgstr "میانگیر تصدانهٔ ثانویه"
#: gtk/gtkentry.c:1138 #: gtk/gtkentry.c:1138
msgid "Secondary pixbuf for the entry" msgid "Secondary pixbuf for the entry"
@ -3857,11 +3857,11 @@ msgstr "برچسب لغو"
msgid "The label on the cancel button" msgid "The label on the cancel button"
msgstr "برچسب دکمهٔ لغو" msgstr "برچسب دکمهٔ لغو"
#: gtk/gtkfilechooserwidget.c:8674 gtk/gtkfilechooserwidget.c:8675 #: gtk/gtkfilechooserwidget.c:8675 gtk/gtkfilechooserwidget.c:8676
msgid "Search mode" msgid "Search mode"
msgstr "حالت جست‌وجو" msgstr "حالت جست‌وجو"
#: gtk/gtkfilechooserwidget.c:8681 gtk/gtkfilechooserwidget.c:8682 #: gtk/gtkfilechooserwidget.c:8682 gtk/gtkfilechooserwidget.c:8683
#: gtk/gtkheaderbar.c:2034 gtk/gtkshortcutsshortcut.c:592 #: gtk/gtkheaderbar.c:2034 gtk/gtkshortcutsshortcut.c:592
msgid "Subtitle" msgid "Subtitle"
msgstr "زیرنویس" msgstr "زیرنویس"
@ -4049,15 +4049,15 @@ msgstr ""
msgid "A widget to display in place of the usual frame label" msgid "A widget to display in place of the usual frame label"
msgstr "" msgstr ""
#: gtk/gtkgesture.c:879 #: gtk/gtkgesture.c:888
msgid "Number of points" msgid "Number of points"
msgstr "تعداد نقطه‌ها" msgstr "تعداد نقطه‌ها"
#: gtk/gtkgesture.c:880 #: gtk/gtkgesture.c:889
msgid "Number of points needed to trigger the gesture" msgid "Number of points needed to trigger the gesture"
msgstr "تعداد نقطه‌های تحریک شدهٔ مورد نیاز برای ژست" msgstr "تعداد نقطه‌های تحریک شدهٔ مورد نیاز برای ژست"
#: gtk/gtkgesture.c:896 gtk/gtkgesture.c:897 #: gtk/gtkgesture.c:905 gtk/gtkgesture.c:906
msgid "GdkWindow to receive events about" msgid "GdkWindow to receive events about"
msgstr "" msgstr ""
@ -7998,7 +7998,7 @@ msgstr "حاشیهٔ بالا"
#: gtk/gtktextview.c:906 #: gtk/gtktextview.c:906
msgid "Height of the top margin in pixels" msgid "Height of the top margin in pixels"
msgstr "بلندای حاشیهٔ بالایی به پیکسل" msgstr "بلندای حاشیهٔ بالایی به تصدانه"
#: gtk/gtktextview.c:926 #: gtk/gtktextview.c:926
msgid "Bottom Margin" msgid "Bottom Margin"
@ -8006,7 +8006,7 @@ msgstr "حاشیهٔ پایینی"
#: gtk/gtktextview.c:927 #: gtk/gtktextview.c:927
msgid "Height of the bottom margin in pixels" msgid "Height of the bottom margin in pixels"
msgstr "بلندای حاشیهٔ پایینی به پیکسل" msgstr "بلندای حاشیهٔ پایینی به تصدانه"
#: gtk/gtktextview.c:950 #: gtk/gtktextview.c:950
msgid "Cursor Visible" msgid "Cursor Visible"
@ -8184,7 +8184,7 @@ msgstr "فاصله‌گذاری نقشک"
#: gtk/gtktoolbutton.c:312 #: gtk/gtktoolbutton.c:312
msgid "Spacing in pixels between the icon and label" msgid "Spacing in pixels between the icon and label"
msgstr "فاصله‌گذاری بین نقشک و برچسب به پیکسل" msgstr "فاصله‌گذاری بین نقشک و برچسب به تصدانه"
#: gtk/gtktoolitem.c:194 #: gtk/gtktoolitem.c:194
msgid "" msgid ""

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
#'gtk/po-properties/ # gtk/po-properties/
# Slovenian translation of gtk+-properties. # Slovenian translation of gtk+-properties.
# Copyright (C) 1999-2011 Free Software Foundation, Inc. # Copyright (C) 1999-2011 Free Software Foundation, Inc.
# This file is distributed under the same license as the gtk+-properties package. # This file is distributed under the same license as the gtk+-properties package.

8080
po/hi.po

File diff suppressed because it is too large Load Diff

View File

@ -11,8 +11,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gtk master\n" "Project-Id-Version: gtk master\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-06-16 13:18+0000\n" "POT-Creation-Date: 2024-06-28 15:27+0000\n"
"PO-Revision-Date: 2024-06-28 17:20+0200\n" "PO-Revision-Date: 2024-06-28 18:51+0200\n"
"Last-Translator: Balázs Úr <ur.balazs at fsf dot hu>\n" "Last-Translator: Balázs Úr <ur.balazs at fsf dot hu>\n"
"Language-Team: Hungarian <openscope at fsf dot hu>\n" "Language-Team: Hungarian <openscope at fsf dot hu>\n"
"Language: hu\n" "Language: hu\n"
@ -20,7 +20,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Lokalize 23.08.4\n" "X-Generator: Poedit 3.4.4\n"
#: gdk/broadway/gdkbroadway-server.c:144 #: gdk/broadway/gdkbroadway-server.c:144
#, c-format #, c-format
@ -2576,8 +2576,9 @@ msgid "Yesterday"
msgstr "Tegnap" msgstr "Tegnap"
#: gtk/gtkfilechooserwidget.c:4912 #: gtk/gtkfilechooserwidget.c:4912
#, c-format
msgid "%-e %b" msgid "%-e %b"
msgstr "%b. %-e." msgstr "%2$b. %1$-e."
#: gtk/gtkfilechooserwidget.c:4916 #: gtk/gtkfilechooserwidget.c:4916
msgid "%-e %b %Y" msgid "%-e %b %Y"
@ -8397,4 +8398,3 @@ msgstr "tesztkimenet.%s"
#: modules/printbackends/test/gtkprintbackendtest.c:465 #: modules/printbackends/test/gtkprintbackendtest.c:465
msgid "Print to Test Printer" msgid "Print to Test Printer"
msgstr "Nyomtatás tesztnyomtatóra" msgstr "Nyomtatás tesztnyomtatóra"

19105
po/is.po

File diff suppressed because it is too large Load Diff

476
po/lv.po

File diff suppressed because it is too large Load Diff

282
po/sr.po
View File

@ -11,17 +11,18 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gtk+ 2.14\n" "Project-Id-Version: gtk+ 2.14\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-04-07 16:28+0000\n" "POT-Creation-Date: 2024-11-04 10:04+0000\n"
"PO-Revision-Date: 2023-04-09 13:34+0200\n" "PO-Revision-Date: 2024-11-07 18:56+0100\n"
"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n" "Last-Translator: Марко М. Костић <marko.m.kostic@gmail.com>\n"
"Language-Team: Serbian <gnome-sr@googlegroups.org>\n" "Language-Team: Serbian <gnome-sr@googlegroups.org>\n"
"Language: sr\n" "Language: sr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : " "Plural-Forms: nplurals=4; plural=n==1? 3 : n%10==1 && n%100!=11 ? 0 : "
"n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n" "n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Project-Style: gnome\n" "X-Project-Style: gnome\n"
"X-Generator: Poedit 3.4.4\n"
#: gdk/broadway/gdkbroadway-server.c:144 #: gdk/broadway/gdkbroadway-server.c:144
#, c-format #, c-format
@ -1219,9 +1220,9 @@ msgstr ""
#: gtk/deprecated/gtkcolorseldialog.c:191 gtk/deprecated/gtkfontsel.c:1689 #: gtk/deprecated/gtkcolorseldialog.c:191 gtk/deprecated/gtkfontsel.c:1689
#: gtk/gtkfilechoosernative.c:545 gtk/gtkfilechoosernative.c:637 #: gtk/gtkfilechoosernative.c:545 gtk/gtkfilechoosernative.c:637
#: gtk/gtkfilechooserwidget.c:1502 gtk/gtkfilechooserwidget.c:6578 #: gtk/gtkfilechooserwidget.c:1502 gtk/gtkfilechooserwidget.c:6579
#: gtk/gtkmessagedialog.c:952 gtk/gtkmessagedialog.c:965 #: gtk/gtkmessagedialog.c:971 gtk/gtkmessagedialog.c:984
#: gtk/gtkmountoperation.c:594 gtk/gtkpagesetupunixdialog.c:197 #: gtk/gtkmountoperation.c:599 gtk/gtkpagesetupunixdialog.c:197
#: gtk/gtkprintbackend.c:779 gtk/gtkprinteroptionwidget.c:545 #: gtk/gtkprintbackend.c:779 gtk/gtkprinteroptionwidget.c:545
#: gtk/gtkprintunixdialog.c:674 gtk/gtkprintunixdialog.c:747 #: gtk/gtkprintunixdialog.c:674 gtk/gtkprintunixdialog.c:747
#: gtk/gtkwindow.c:12829 gtk/inspector/css-editor.c:201 #: gtk/gtkwindow.c:12829 gtk/inspector/css-editor.c:201
@ -1272,8 +1273,8 @@ msgstr "_Претпреглед:"
msgid "_Apply" msgid "_Apply"
msgstr "_Примени" msgstr "_Примени"
#: gtk/deprecated/gtkfontsel.c:1698 gtk/gtkmessagedialog.c:944 #: gtk/deprecated/gtkfontsel.c:1698 gtk/gtkmessagedialog.c:963
#: gtk/gtkmessagedialog.c:966 gtk/gtkprintbackend.c:780 gtk/gtkwindow.c:12830 #: gtk/gtkmessagedialog.c:985 gtk/gtkprintbackend.c:780 gtk/gtkwindow.c:12830
msgid "_OK" msgid "_OK"
msgstr "У _реду" msgstr "У _реду"
@ -1518,7 +1519,7 @@ msgid "_License"
msgstr "_Лиценца" msgstr "_Лиценца"
#: gtk/gtkaboutdialog.c:720 gtk/gtkcustompaperunixdialog.c:329 #: gtk/gtkaboutdialog.c:720 gtk/gtkcustompaperunixdialog.c:329
#: gtk/gtkmessagedialog.c:948 gtk/ui/gtkassistant.ui:144 #: gtk/gtkmessagedialog.c:967 gtk/ui/gtkassistant.ui:144
msgid "_Close" msgid "_Close"
msgstr "_Затвори" msgstr "_Затвори"
@ -2336,7 +2337,7 @@ msgstr "От_вори"
msgid "_Save" msgid "_Save"
msgstr "_Сачувај" msgstr "_Сачувај"
#: gtk/gtkfilechoosernativequartz.c:331 gtk/ui/gtkfilechooserwidget.ui:435 #: gtk/gtkfilechoosernativequartz.c:332 gtk/ui/gtkfilechooserwidget.ui:435
msgid "Select which types of files are shown" msgid "Select which types of files are shown"
msgstr "Изабери које врсте датотека се приказују" msgstr "Изабери које врсте датотека се приказују"
@ -2560,7 +2561,7 @@ msgstr "Унесите путању"
msgid "Enter location or URL" msgid "Enter location or URL"
msgstr "Унесите путању или адресу" msgstr "Унесите путању или адресу"
#: gtk/gtkfilechooserwidget.c:4454 gtk/gtkfilechooserwidget.c:7498 #: gtk/gtkfilechooserwidget.c:4454 gtk/gtkfilechooserwidget.c:7499
#: gtk/ui/gtkfilechooserwidget.ui:278 #: gtk/ui/gtkfilechooserwidget.ui:278
msgid "Modified" msgid "Modified"
msgstr "Измењена" msgstr "Измењена"
@ -2574,11 +2575,11 @@ msgstr "Не могу да прочитам садржај „%s“"
msgid "Could not read the contents of the folder" msgid "Could not read the contents of the folder"
msgstr "Не могу да прочитам садржај фасцикле" msgstr "Не могу да прочитам садржај фасцикле"
#: gtk/gtkfilechooserwidget.c:4898 gtk/gtkfilechooserwidget.c:4946 #: gtk/gtkfilechooserwidget.c:4898 gtk/gtkfilechooserwidget.c:4947
msgid "%H:%M" msgid "%H:%M"
msgstr "%H:%M" msgstr "%H:%M"
#: gtk/gtkfilechooserwidget.c:4900 gtk/gtkfilechooserwidget.c:4948 #: gtk/gtkfilechooserwidget.c:4900 gtk/gtkfilechooserwidget.c:4949
msgid "%l:%M %p" msgid "%l:%M %p"
msgstr "%l:%M %p" msgstr "%l:%M %p"
@ -2586,110 +2587,111 @@ msgstr "%l:%M %p"
msgid "Yesterday" msgid "Yesterday"
msgstr "Јуче" msgstr "Јуче"
#: gtk/gtkfilechooserwidget.c:4912 #: gtk/gtkfilechooserwidget.c:4913
#, no-c-format
msgid "%-e %b" msgid "%-e %b"
msgstr "%-e %b" msgstr "%-e %b"
#: gtk/gtkfilechooserwidget.c:4916 #: gtk/gtkfilechooserwidget.c:4917
msgid "%-e %b %Y" msgid "%-e %b %Y"
msgstr "%-e. %b %Y." msgstr "%-e. %b %Y."
#: gtk/gtkfilechooserwidget.c:5015 gtk/gtkfilechooserwidget.c:5023 #: gtk/gtkfilechooserwidget.c:5016 gtk/gtkfilechooserwidget.c:5024
msgid "Program" msgid "Program"
msgstr "Програм" msgstr "Програм"
#: gtk/gtkfilechooserwidget.c:5016 #: gtk/gtkfilechooserwidget.c:5017
msgid "Audio" msgid "Audio"
msgstr "Звук" msgstr "Звук"
#: gtk/gtkfilechooserwidget.c:5017 gtk/inspector/visual.ui:230 #: gtk/gtkfilechooserwidget.c:5018 gtk/inspector/visual.ui:230
#: gtk/ui/gtkfontbutton.ui:13 #: gtk/ui/gtkfontbutton.ui:13
msgid "Font" msgid "Font"
msgstr "Слова" msgstr "Слова"
#: gtk/gtkfilechooserwidget.c:5018 gtk/inspector/visual.ui:488 #: gtk/gtkfilechooserwidget.c:5019 gtk/inspector/visual.ui:488
msgid "Image" msgid "Image"
msgstr "Слика" msgstr "Слика"
#: gtk/gtkfilechooserwidget.c:5019 #: gtk/gtkfilechooserwidget.c:5020
msgid "Archive" msgid "Archive"
msgstr "Архива" msgstr "Архива"
#: gtk/gtkfilechooserwidget.c:5020 #: gtk/gtkfilechooserwidget.c:5021
msgid "Markup" msgid "Markup"
msgstr "Означавање" msgstr "Означавање"
#: gtk/gtkfilechooserwidget.c:5021 gtk/gtkfilechooserwidget.c:5022 #: gtk/gtkfilechooserwidget.c:5022 gtk/gtkfilechooserwidget.c:5023
msgid "Text" msgid "Text"
msgstr "Текст" msgstr "Текст"
#: gtk/gtkfilechooserwidget.c:5024 #: gtk/gtkfilechooserwidget.c:5025
msgid "Video" msgid "Video"
msgstr "Видео" msgstr "Видео"
#: gtk/gtkfilechooserwidget.c:5025 #: gtk/gtkfilechooserwidget.c:5026
msgid "Contacts" msgid "Contacts"
msgstr "Контакти" msgstr "Контакти"
#: gtk/gtkfilechooserwidget.c:5026 #: gtk/gtkfilechooserwidget.c:5027
msgid "Calendar" msgid "Calendar"
msgstr "Календар" msgstr "Календар"
#: gtk/gtkfilechooserwidget.c:5027 #: gtk/gtkfilechooserwidget.c:5028
msgid "Document" msgid "Document"
msgstr "Документ" msgstr "Документ"
#: gtk/gtkfilechooserwidget.c:5028 #: gtk/gtkfilechooserwidget.c:5029
msgid "Presentation" msgid "Presentation"
msgstr "Презентација" msgstr "Презентација"
#: gtk/gtkfilechooserwidget.c:5029 #: gtk/gtkfilechooserwidget.c:5030
msgid "Spreadsheet" msgid "Spreadsheet"
msgstr "Табела" msgstr "Табела"
#: gtk/gtkfilechooserwidget.c:5060 gtk/gtkfilechooserwidget.c:5249 #: gtk/gtkfilechooserwidget.c:5061 gtk/gtkfilechooserwidget.c:5250
#: gtk/inspector/prop-editor.c:1689 #: gtk/inspector/prop-editor.c:1689
msgid "Unknown" msgid "Unknown"
msgstr "Непознато" msgstr "Непознато"
# ako je za "home directory", onda bi bilo dobro "licni direktorijum", ako je za "home page", onda za "licna stranica" # ako je za "home directory", onda bi bilo dobro "licni direktorijum", ako je za "home page", onda za "licna stranica"
#: gtk/gtkfilechooserwidget.c:5288 gtk/gtkplacessidebar.c:1097 #: gtk/gtkfilechooserwidget.c:5289 gtk/gtkplacessidebar.c:1097
msgid "Home" msgid "Home"
msgstr "Лична фасцикла" msgstr "Лична фасцикла"
#: gtk/gtkfilechooserwidget.c:5785 #: gtk/gtkfilechooserwidget.c:5786
msgid "Cannot change to folder because it is not local" msgid "Cannot change to folder because it is not local"
msgstr "Не могу да уђем у фасциклу зато што није локална" msgstr "Не могу да уђем у фасциклу зато што није локална"
#: gtk/gtkfilechooserwidget.c:6571 gtk/gtkprintunixdialog.c:665 #: gtk/gtkfilechooserwidget.c:6572 gtk/gtkprintunixdialog.c:665
#, c-format #, c-format
msgid "A file named “%s” already exists. Do you want to replace it?" msgid "A file named “%s” already exists. Do you want to replace it?"
msgstr "Датотека под називом „%s“ већ постоји. Да ли желите да је замените?" msgstr "Датотека под називом „%s“ већ постоји. Да ли желите да је замените?"
#: gtk/gtkfilechooserwidget.c:6574 gtk/gtkprintunixdialog.c:669 #: gtk/gtkfilechooserwidget.c:6575 gtk/gtkprintunixdialog.c:669
#, c-format #, c-format
msgid "" msgid ""
"The file already exists in “%s”. Replacing it will overwrite its contents." "The file already exists in “%s”. Replacing it will overwrite its contents."
msgstr "Датотека већ постоји у „%s“. Ако је замените преписаћете њен садржај." msgstr "Датотека већ постоји у „%s“. Ако је замените преписаћете њен садржај."
#: gtk/gtkfilechooserwidget.c:6579 gtk/gtkprintunixdialog.c:677 #: gtk/gtkfilechooserwidget.c:6580 gtk/gtkprintunixdialog.c:677
msgid "_Replace" msgid "_Replace"
msgstr "_Замени" msgstr "_Замени"
#: gtk/gtkfilechooserwidget.c:6798 #: gtk/gtkfilechooserwidget.c:6799
msgid "You do not have access to the specified folder." msgid "You do not have access to the specified folder."
msgstr "Немате овлашћења за приступ наведеној фасцикли." msgstr "Немате овлашћења за приступ наведеној фасцикли."
#: gtk/gtkfilechooserwidget.c:7421 #: gtk/gtkfilechooserwidget.c:7422
msgid "Could not send the search request" msgid "Could not send the search request"
msgstr "Не могу да пошаљем захтев претраге" msgstr "Не могу да пошаљем захтев претраге"
# Треба проверити на шта се односи. # Треба проверити на шта се односи.
#: gtk/gtkfilechooserwidget.c:7709 #: gtk/gtkfilechooserwidget.c:7710
msgid "Accessed" msgid "Accessed"
msgstr "Датум приступа" msgstr "Датум приступа"
#: gtk/gtkfilechooserwidget.c:8829 gtk/ui/gtkfilechooserwidget.ui:89 #: gtk/gtkfilechooserwidget.c:8830 gtk/ui/gtkfilechooserwidget.ui:89
msgid "Create Folder" msgid "Create Folder"
msgstr "Направи фасциклу" msgstr "Направи фасциклу"
@ -2794,30 +2796,30 @@ msgctxt "input method menu"
msgid "None" msgid "None"
msgstr "Ништа" msgstr "Ништа"
#: gtk/gtkimmulticontext.c:615 #: gtk/gtkimmulticontext.c:607
msgctxt "input method menu" msgctxt "input method menu"
msgid "System" msgid "System"
msgstr "Систем" msgstr "Систем"
#: gtk/gtkimmulticontext.c:694 #: gtk/gtkimmulticontext.c:686
#, c-format #, c-format
msgctxt "input method menu" msgctxt "input method menu"
msgid "System (%s)" msgid "System (%s)"
msgstr "Систем (%s)" msgstr "Систем (%s)"
#: gtk/gtkinfobar.c:1307 gtk/gtkmessagedialog.c:385 #: gtk/gtkinfobar.c:1307 gtk/gtkmessagedialog.c:386
msgid "Information" msgid "Information"
msgstr "Обавештење" msgstr "Обавештење"
#: gtk/gtkinfobar.c:1311 gtk/gtkmessagedialog.c:389 #: gtk/gtkinfobar.c:1311 gtk/gtkmessagedialog.c:390
msgid "Question" msgid "Question"
msgstr "Питање" msgstr "Питање"
#: gtk/gtkinfobar.c:1315 gtk/gtkmessagedialog.c:393 #: gtk/gtkinfobar.c:1315 gtk/gtkmessagedialog.c:394
msgid "Warning" msgid "Warning"
msgstr "Упозорење" msgstr "Упозорење"
#: gtk/gtkinfobar.c:1319 gtk/gtkmessagedialog.c:397 #: gtk/gtkinfobar.c:1319 gtk/gtkmessagedialog.c:398
msgid "Error" msgid "Error"
msgstr "Грешка" msgstr "Грешка"
@ -2975,81 +2977,81 @@ msgstr "Приказује Гтк+ опције"
msgid "default:LTR" msgid "default:LTR"
msgstr "default:LTR" msgstr "default:LTR"
#: gtk/gtkmessagedialog.c:956 #: gtk/gtkmessagedialog.c:975
msgid "_No" msgid "_No"
msgstr "_Не" msgstr "_Не"
#: gtk/gtkmessagedialog.c:957 #: gtk/gtkmessagedialog.c:976
msgid "_Yes" msgid "_Yes"
msgstr "_Да" msgstr "_Да"
#: gtk/gtkmountoperation.c:595 #: gtk/gtkmountoperation.c:600
msgid "Co_nnect" msgid "Co_nnect"
msgstr "Поежи се" msgstr "Поежи се"
#: gtk/gtkmountoperation.c:668 #: gtk/gtkmountoperation.c:673
msgid "Connect As" msgid "Connect As"
msgstr "Повежи се као" msgstr "Повежи се као"
#: gtk/gtkmountoperation.c:677 #: gtk/gtkmountoperation.c:682
msgid "_Anonymous" msgid "_Anonymous"
msgstr "_Безимено" msgstr "_Безимено"
#: gtk/gtkmountoperation.c:686 #: gtk/gtkmountoperation.c:691
msgid "Registered U_ser" msgid "Registered U_ser"
msgstr "Као уписани _корисник" msgstr "Као уписани _корисник"
#: gtk/gtkmountoperation.c:697 #: gtk/gtkmountoperation.c:702
msgid "_Username" msgid "_Username"
msgstr "_Корисничко име" msgstr "_Корисничко име"
#: gtk/gtkmountoperation.c:702 #: gtk/gtkmountoperation.c:707
msgid "_Domain" msgid "_Domain"
msgstr "_Домен" msgstr "_Домен"
#: gtk/gtkmountoperation.c:711 #: gtk/gtkmountoperation.c:716
msgid "Volume type" msgid "Volume type"
msgstr "Врста јачине звука" msgstr "Врста јачине звука"
#: gtk/gtkmountoperation.c:721 #: gtk/gtkmountoperation.c:726
msgid "_Hidden" msgid "_Hidden"
msgstr "_Скривен" msgstr "_Скривен"
#: gtk/gtkmountoperation.c:724 #: gtk/gtkmountoperation.c:729
msgid "_Windows system" msgid "_Windows system"
msgstr "_Систем прозора" msgstr "_Систем прозора"
#: gtk/gtkmountoperation.c:727 #: gtk/gtkmountoperation.c:732
msgid "_PIM" msgid "_PIM"
msgstr "_ПИМ" msgstr "_ПИМ"
#: gtk/gtkmountoperation.c:733 #: gtk/gtkmountoperation.c:738
msgid "_Password" msgid "_Password"
msgstr "_Лозинка" msgstr "_Лозинка"
#: gtk/gtkmountoperation.c:755 #: gtk/gtkmountoperation.c:760
msgid "Forget password _immediately" msgid "Forget password _immediately"
msgstr "_Одмах заборави лозинку" msgstr "_Одмах заборави лозинку"
#: gtk/gtkmountoperation.c:765 #: gtk/gtkmountoperation.c:770
msgid "Remember password until you _logout" msgid "Remember password until you _logout"
msgstr "Запамти лозинку _до одјављивања" msgstr "Запамти лозинку _до одјављивања"
#: gtk/gtkmountoperation.c:775 #: gtk/gtkmountoperation.c:780
msgid "Remember _forever" msgid "Remember _forever"
msgstr "Запамти _заувек" msgstr "Запамти _заувек"
#: gtk/gtkmountoperation.c:1170 #: gtk/gtkmountoperation.c:1175
#, c-format #, c-format
msgid "Unknown Application (PID %d)" msgid "Unknown Application (PID %d)"
msgstr "Непознат програм (ПИБ %d)" msgstr "Непознат програм (ПИБ %d)"
#: gtk/gtkmountoperation.c:1355 #: gtk/gtkmountoperation.c:1360
#, c-format #, c-format
msgid "Unable to end process" msgid "Unable to end process"
msgstr "Не могу да окончам процес" msgstr "Не могу да окончам процес"
#: gtk/gtkmountoperation.c:1389 #: gtk/gtkmountoperation.c:1394
msgid "_End Process" msgid "_End Process"
msgstr "_Окончај процес" msgstr "_Окончај процес"
@ -3125,7 +3127,7 @@ msgstr "Управљај произвољним величинама…"
msgid "Page Setup" msgid "Page Setup"
msgstr "Поставке странице" msgstr "Поставке странице"
#: gtk/gtkpathbar.c:1571 #: gtk/gtkpathbar.c:1572
msgid "File System Root" msgid "File System Root"
msgstr "Корен система датотека" msgstr "Корен система датотека"
@ -3633,42 +3635,42 @@ msgstr "Прикупљам податке о штампачу…"
#. * multiple pages on a sheet when printing #. * multiple pages on a sheet when printing
#. #.
#: gtk/gtkprintunixdialog.c:3120 #: gtk/gtkprintunixdialog.c:3120
#: modules/printbackends/cups/gtkprintbackendcups.c:5709 #: modules/printbackends/cups/gtkprintbackendcups.c:5736
msgid "Left to right, top to bottom" msgid "Left to right, top to bottom"
msgstr "С лева на десно, одозго на доле" msgstr "С лева на десно, одозго на доле"
#: gtk/gtkprintunixdialog.c:3120 #: gtk/gtkprintunixdialog.c:3120
#: modules/printbackends/cups/gtkprintbackendcups.c:5709 #: modules/printbackends/cups/gtkprintbackendcups.c:5736
msgid "Left to right, bottom to top" msgid "Left to right, bottom to top"
msgstr "С лева на десно, одоздо на горе" msgstr "С лева на десно, одоздо на горе"
#: gtk/gtkprintunixdialog.c:3121 #: gtk/gtkprintunixdialog.c:3121
#: modules/printbackends/cups/gtkprintbackendcups.c:5710 #: modules/printbackends/cups/gtkprintbackendcups.c:5737
msgid "Right to left, top to bottom" msgid "Right to left, top to bottom"
msgstr "С десна на лево, одозго на доле" msgstr "С десна на лево, одозго на доле"
#: gtk/gtkprintunixdialog.c:3121 #: gtk/gtkprintunixdialog.c:3121
#: modules/printbackends/cups/gtkprintbackendcups.c:5710 #: modules/printbackends/cups/gtkprintbackendcups.c:5737
msgid "Right to left, bottom to top" msgid "Right to left, bottom to top"
msgstr "С десна на лево, одоздо на горе" msgstr "С десна на лево, одоздо на горе"
#: gtk/gtkprintunixdialog.c:3122 #: gtk/gtkprintunixdialog.c:3122
#: modules/printbackends/cups/gtkprintbackendcups.c:5711 #: modules/printbackends/cups/gtkprintbackendcups.c:5738
msgid "Top to bottom, left to right" msgid "Top to bottom, left to right"
msgstr "Одозго на доле, с лева на десно" msgstr "Одозго на доле, с лева на десно"
#: gtk/gtkprintunixdialog.c:3122 #: gtk/gtkprintunixdialog.c:3122
#: modules/printbackends/cups/gtkprintbackendcups.c:5711 #: modules/printbackends/cups/gtkprintbackendcups.c:5738
msgid "Top to bottom, right to left" msgid "Top to bottom, right to left"
msgstr "Одозго на доле, с десна на лево" msgstr "Одозго на доле, с десна на лево"
#: gtk/gtkprintunixdialog.c:3123 #: gtk/gtkprintunixdialog.c:3123
#: modules/printbackends/cups/gtkprintbackendcups.c:5712 #: modules/printbackends/cups/gtkprintbackendcups.c:5739
msgid "Bottom to top, left to right" msgid "Bottom to top, left to right"
msgstr "Одоздо на горе, с лева на десно" msgstr "Одоздо на горе, с лева на десно"
#: gtk/gtkprintunixdialog.c:3123 #: gtk/gtkprintunixdialog.c:3123
#: modules/printbackends/cups/gtkprintbackendcups.c:5712 #: modules/printbackends/cups/gtkprintbackendcups.c:5739
msgid "Bottom to top, right to left" msgid "Bottom to top, right to left"
msgstr "Одоздо на горе, с десна на лево" msgstr "Одоздо на горе, с десна на лево"
@ -4181,8 +4183,6 @@ msgid "Pango Fontmap"
msgstr "Панго словна мапа" msgstr "Панго словна мапа"
#: gtk/inspector/general.ui:136 #: gtk/inspector/general.ui:136
#| msgctxt "input method menu"
#| msgid "X Input Method"
msgid "Input Method" msgid "Input Method"
msgstr "Начин уноса" msgstr "Начин уноса"
@ -7133,7 +7133,6 @@ msgstr "Услуге"
#. used for the application menu on MacOS. %s is replaced with the application name. #. used for the application menu on MacOS. %s is replaced with the application name.
#: gtk/ui/gtkapplication-quartz.ui:29 #: gtk/ui/gtkapplication-quartz.ui:29
#, c-format
msgid "Hide %s" msgid "Hide %s"
msgstr "Сакриј „%s“" msgstr "Сакриј „%s“"
@ -7149,7 +7148,6 @@ msgstr "Покажи све"
#. used for the application menu on MacOS. %s is replaced with the application name. #. used for the application menu on MacOS. %s is replaced with the application name.
#: gtk/ui/gtkapplication-quartz.ui:49 #: gtk/ui/gtkapplication-quartz.ui:49
#, c-format
msgid "Quit %s" msgid "Quit %s"
msgstr "Напусти „%s“" msgstr "Напусти „%s“"
@ -7399,7 +7397,7 @@ msgstr "_Све странице"
#: gtk/ui/gtkprintunixdialog.ui:216 #: gtk/ui/gtkprintunixdialog.ui:216
msgid "C_urrent Page" msgid "C_urrent Page"
msgstr "_Тренутну странице" msgstr "Трен_утну страницу"
#: gtk/ui/gtkprintunixdialog.ui:233 #: gtk/ui/gtkprintunixdialog.ui:233
msgid "Se_lection" msgid "Se_lection"
@ -7970,241 +7968,241 @@ msgstr "Одбија послове"
msgid "; " msgid "; "
msgstr "; " msgstr "; "
#: modules/printbackends/cups/gtkprintbackendcups.c:4655 #: modules/printbackends/cups/gtkprintbackendcups.c:4682
#: modules/printbackends/cups/gtkprintbackendcups.c:4722 #: modules/printbackends/cups/gtkprintbackendcups.c:4749
msgctxt "printing option" msgctxt "printing option"
msgid "Two Sided" msgid "Two Sided"
msgstr "Двострано" msgstr "Двострано"
#: modules/printbackends/cups/gtkprintbackendcups.c:4656 #: modules/printbackends/cups/gtkprintbackendcups.c:4683
msgctxt "printing option" msgctxt "printing option"
msgid "Paper Type" msgid "Paper Type"
msgstr "Врста папира" msgstr "Врста папира"
#: modules/printbackends/cups/gtkprintbackendcups.c:4657 #: modules/printbackends/cups/gtkprintbackendcups.c:4684
msgctxt "printing option" msgctxt "printing option"
msgid "Paper Source" msgid "Paper Source"
msgstr "Извор папира" msgstr "Извор папира"
#: modules/printbackends/cups/gtkprintbackendcups.c:4658 #: modules/printbackends/cups/gtkprintbackendcups.c:4685
#: modules/printbackends/cups/gtkprintbackendcups.c:4723 #: modules/printbackends/cups/gtkprintbackendcups.c:4750
msgctxt "printing option" msgctxt "printing option"
msgid "Output Tray" msgid "Output Tray"
msgstr "Прихватна фиока" msgstr "Прихватна фиока"
#: modules/printbackends/cups/gtkprintbackendcups.c:4659 #: modules/printbackends/cups/gtkprintbackendcups.c:4686
msgctxt "printing option" msgctxt "printing option"
msgid "Resolution" msgid "Resolution"
msgstr "Резолуција" msgstr "Резолуција"
#: modules/printbackends/cups/gtkprintbackendcups.c:4660 #: modules/printbackends/cups/gtkprintbackendcups.c:4687
msgctxt "printing option" msgctxt "printing option"
msgid "GhostScript pre-filtering" msgid "GhostScript pre-filtering"
msgstr "Гост скрипт пред-филтрирање" msgstr "Гост скрипт пред-филтрирање"
#: modules/printbackends/cups/gtkprintbackendcups.c:4669 #: modules/printbackends/cups/gtkprintbackendcups.c:4696
msgctxt "printing option value" msgctxt "printing option value"
msgid "One Sided" msgid "One Sided"
msgstr "Једнострано" msgstr "Једнострано"
#. Translators: this is an option of "Two Sided" #. Translators: this is an option of "Two Sided"
#: modules/printbackends/cups/gtkprintbackendcups.c:4671 #: modules/printbackends/cups/gtkprintbackendcups.c:4698
msgctxt "printing option value" msgctxt "printing option value"
msgid "Long Edge (Standard)" msgid "Long Edge (Standard)"
msgstr "По дужој страни (стандардно)" msgstr "По дужој страни (стандардно)"
#. Translators: this is an option of "Two Sided" #. Translators: this is an option of "Two Sided"
#: modules/printbackends/cups/gtkprintbackendcups.c:4673 #: modules/printbackends/cups/gtkprintbackendcups.c:4700
msgctxt "printing option value" msgctxt "printing option value"
msgid "Short Edge (Flip)" msgid "Short Edge (Flip)"
msgstr "По краћој страни (окренуто)" msgstr "По краћој страни (окренуто)"
#. Translators: this is an option of "Paper Source" #. Translators: this is an option of "Paper Source"
#: modules/printbackends/cups/gtkprintbackendcups.c:4675 #: modules/printbackends/cups/gtkprintbackendcups.c:4702
#: modules/printbackends/cups/gtkprintbackendcups.c:4677 #: modules/printbackends/cups/gtkprintbackendcups.c:4704
#: modules/printbackends/cups/gtkprintbackendcups.c:4685 #: modules/printbackends/cups/gtkprintbackendcups.c:4712
msgctxt "printing option value" msgctxt "printing option value"
msgid "Auto Select" msgid "Auto Select"
msgstr "Сам одреди" msgstr "Сам одреди"
#. Translators: this is an option of "Paper Source" #. Translators: this is an option of "Paper Source"
#. Translators: this is an option of "Resolution" #. Translators: this is an option of "Resolution"
#: modules/printbackends/cups/gtkprintbackendcups.c:4679 #: modules/printbackends/cups/gtkprintbackendcups.c:4706
#: modules/printbackends/cups/gtkprintbackendcups.c:4681 #: modules/printbackends/cups/gtkprintbackendcups.c:4708
#: modules/printbackends/cups/gtkprintbackendcups.c:4683 #: modules/printbackends/cups/gtkprintbackendcups.c:4710
#: modules/printbackends/cups/gtkprintbackendcups.c:4687 #: modules/printbackends/cups/gtkprintbackendcups.c:4714
msgctxt "printing option value" msgctxt "printing option value"
msgid "Printer Default" msgid "Printer Default"
msgstr "Подразумевано" msgstr "Подразумевано"
#. Translators: this is an option of "GhostScript" #. Translators: this is an option of "GhostScript"
#: modules/printbackends/cups/gtkprintbackendcups.c:4689 #: modules/printbackends/cups/gtkprintbackendcups.c:4716
msgctxt "printing option value" msgctxt "printing option value"
msgid "Embed GhostScript fonts only" msgid "Embed GhostScript fonts only"
msgstr "Само угнеждени Гост скрипт словни ликови" msgstr "Само угнеждени Гост скрипт словни ликови"
#. Translators: this is an option of "GhostScript" #. Translators: this is an option of "GhostScript"
#: modules/printbackends/cups/gtkprintbackendcups.c:4691 #: modules/printbackends/cups/gtkprintbackendcups.c:4718
msgctxt "printing option value" msgctxt "printing option value"
msgid "Convert to PS level 1" msgid "Convert to PS level 1"
msgstr "Преведи у 1° ниво постскрипта" msgstr "Преведи у 1° ниво постскрипта"
#. Translators: this is an option of "GhostScript" #. Translators: this is an option of "GhostScript"
#: modules/printbackends/cups/gtkprintbackendcups.c:4693 #: modules/printbackends/cups/gtkprintbackendcups.c:4720
msgctxt "printing option value" msgctxt "printing option value"
msgid "Convert to PS level 2" msgid "Convert to PS level 2"
msgstr "Преведи у 2° ниво постскрипта" msgstr "Преведи у 2° ниво постскрипта"
#. Translators: this is an option of "GhostScript" #. Translators: this is an option of "GhostScript"
#: modules/printbackends/cups/gtkprintbackendcups.c:4695 #: modules/printbackends/cups/gtkprintbackendcups.c:4722
msgctxt "printing option value" msgctxt "printing option value"
msgid "No pre-filtering" msgid "No pre-filtering"
msgstr "Без пред-филтрирања" msgstr "Без пред-филтрирања"
#. Translators: "Miscellaneous" is the label for a button, that opens #. Translators: "Miscellaneous" is the label for a button, that opens
#. up an extra panel of settings in a print dialog. #. up an extra panel of settings in a print dialog.
#: modules/printbackends/cups/gtkprintbackendcups.c:4704 #: modules/printbackends/cups/gtkprintbackendcups.c:4731
msgctxt "printing option group" msgctxt "printing option group"
msgid "Miscellaneous" msgid "Miscellaneous"
msgstr "Додатна подешавања" msgstr "Додатна подешавања"
#: modules/printbackends/cups/gtkprintbackendcups.c:4731 #: modules/printbackends/cups/gtkprintbackendcups.c:4758
msgctxt "sides" msgctxt "sides"
msgid "One Sided" msgid "One Sided"
msgstr "Једнострано" msgstr "Једнострано"
#. Translators: this is an option of "Two Sided" #. Translators: this is an option of "Two Sided"
#: modules/printbackends/cups/gtkprintbackendcups.c:4733 #: modules/printbackends/cups/gtkprintbackendcups.c:4760
msgctxt "sides" msgctxt "sides"
msgid "Long Edge (Standard)" msgid "Long Edge (Standard)"
msgstr "По дужој ивици (стандардно)" msgstr "По дужој ивици (стандардно)"
#. Translators: this is an option of "Two Sided" #. Translators: this is an option of "Two Sided"
#: modules/printbackends/cups/gtkprintbackendcups.c:4735 #: modules/printbackends/cups/gtkprintbackendcups.c:4762
msgctxt "sides" msgctxt "sides"
msgid "Short Edge (Flip)" msgid "Short Edge (Flip)"
msgstr "По краћој ивици (окренуто)" msgstr "По краћој ивици (окренуто)"
#. Translators: Top output bin #. Translators: Top output bin
#: modules/printbackends/cups/gtkprintbackendcups.c:4738 #: modules/printbackends/cups/gtkprintbackendcups.c:4765
msgctxt "output-bin" msgctxt "output-bin"
msgid "Top Bin" msgid "Top Bin"
msgstr "Горња корпа" msgstr "Горња корпа"
#. Translators: Middle output bin #. Translators: Middle output bin
#: modules/printbackends/cups/gtkprintbackendcups.c:4740 #: modules/printbackends/cups/gtkprintbackendcups.c:4767
msgctxt "output-bin" msgctxt "output-bin"
msgid "Middle Bin" msgid "Middle Bin"
msgstr "Средња корпа" msgstr "Средња корпа"
#. Translators: Bottom output bin #. Translators: Bottom output bin
#: modules/printbackends/cups/gtkprintbackendcups.c:4742 #: modules/printbackends/cups/gtkprintbackendcups.c:4769
msgctxt "output-bin" msgctxt "output-bin"
msgid "Bottom Bin" msgid "Bottom Bin"
msgstr "Доња корпа" msgstr "Доња корпа"
#. Translators: Side output bin #. Translators: Side output bin
#: modules/printbackends/cups/gtkprintbackendcups.c:4744 #: modules/printbackends/cups/gtkprintbackendcups.c:4771
msgctxt "output-bin" msgctxt "output-bin"
msgid "Side Bin" msgid "Side Bin"
msgstr "Корпа са стране" msgstr "Корпа са стране"
#. Translators: Left output bin #. Translators: Left output bin
#: modules/printbackends/cups/gtkprintbackendcups.c:4746 #: modules/printbackends/cups/gtkprintbackendcups.c:4773
msgctxt "output-bin" msgctxt "output-bin"
msgid "Left Bin" msgid "Left Bin"
msgstr "Лева корпа" msgstr "Лева корпа"
#. Translators: Right output bin #. Translators: Right output bin
#: modules/printbackends/cups/gtkprintbackendcups.c:4748 #: modules/printbackends/cups/gtkprintbackendcups.c:4775
msgctxt "output-bin" msgctxt "output-bin"
msgid "Right Bin" msgid "Right Bin"
msgstr "Десна корпа" msgstr "Десна корпа"
#. Translators: Center output bin #. Translators: Center output bin
#: modules/printbackends/cups/gtkprintbackendcups.c:4750 #: modules/printbackends/cups/gtkprintbackendcups.c:4777
msgctxt "output-bin" msgctxt "output-bin"
msgid "Center Bin" msgid "Center Bin"
msgstr "Корпа на средини" msgstr "Корпа на средини"
#. Translators: Rear output bin #. Translators: Rear output bin
#: modules/printbackends/cups/gtkprintbackendcups.c:4752 #: modules/printbackends/cups/gtkprintbackendcups.c:4779
msgctxt "output-bin" msgctxt "output-bin"
msgid "Rear Bin" msgid "Rear Bin"
msgstr "Задња корпа" msgstr "Задња корпа"
#. Translators: Output bin where one sided output is oriented in the face-up position #. Translators: Output bin where one sided output is oriented in the face-up position
#: modules/printbackends/cups/gtkprintbackendcups.c:4754 #: modules/printbackends/cups/gtkprintbackendcups.c:4781
msgctxt "output-bin" msgctxt "output-bin"
msgid "Face Up Bin" msgid "Face Up Bin"
msgstr "Корпа на лицу" msgstr "Корпа на лицу"
#. Translators: Output bin where one sided output is oriented in the face-down position #. Translators: Output bin where one sided output is oriented in the face-down position
#: modules/printbackends/cups/gtkprintbackendcups.c:4756 #: modules/printbackends/cups/gtkprintbackendcups.c:4783
msgctxt "output-bin" msgctxt "output-bin"
msgid "Face Down Bin" msgid "Face Down Bin"
msgstr "Корпа на наличју" msgstr "Корпа на наличју"
#. Translators: Large capacity output bin #. Translators: Large capacity output bin
#: modules/printbackends/cups/gtkprintbackendcups.c:4758 #: modules/printbackends/cups/gtkprintbackendcups.c:4785
msgctxt "output-bin" msgctxt "output-bin"
msgid "Large Capacity Bin" msgid "Large Capacity Bin"
msgstr "Корпа велике запремине" msgstr "Корпа велике запремине"
#. Translators: Output stacker number %d #. Translators: Output stacker number %d
#: modules/printbackends/cups/gtkprintbackendcups.c:4780 #: modules/printbackends/cups/gtkprintbackendcups.c:4807
#, c-format #, c-format
msgctxt "output-bin" msgctxt "output-bin"
msgid "Stacker %d" msgid "Stacker %d"
msgstr "Одлагач %d" msgstr "Одлагач %d"
#. Translators: Output mailbox number %d #. Translators: Output mailbox number %d
#: modules/printbackends/cups/gtkprintbackendcups.c:4784 #: modules/printbackends/cups/gtkprintbackendcups.c:4811
#, c-format #, c-format
msgctxt "output-bin" msgctxt "output-bin"
msgid "Mailbox %d" msgid "Mailbox %d"
msgstr "Поштанско сандуче %d" msgstr "Поштанско сандуче %d"
#. Translators: Private mailbox #. Translators: Private mailbox
#: modules/printbackends/cups/gtkprintbackendcups.c:4788 #: modules/printbackends/cups/gtkprintbackendcups.c:4815
msgctxt "output-bin" msgctxt "output-bin"
msgid "My Mailbox" msgid "My Mailbox"
msgstr "Моје сандуче" msgstr "Моје сандуче"
#. Translators: Output tray number %d #. Translators: Output tray number %d
#: modules/printbackends/cups/gtkprintbackendcups.c:4792 #: modules/printbackends/cups/gtkprintbackendcups.c:4819
#, c-format #, c-format
msgctxt "output-bin" msgctxt "output-bin"
msgid "Tray %d" msgid "Tray %d"
msgstr "Касета %d" msgstr "Касета %d"
#: modules/printbackends/cups/gtkprintbackendcups.c:5263 #: modules/printbackends/cups/gtkprintbackendcups.c:5290
msgid "Printer Default" msgid "Printer Default"
msgstr "Подразумевано" msgstr "Подразумевано"
#. Translators: These strings name the possible values of the #. Translators: These strings name the possible values of the
#. * job priority option in the print dialog #. * job priority option in the print dialog
#. #.
#: modules/printbackends/cups/gtkprintbackendcups.c:5704 #: modules/printbackends/cups/gtkprintbackendcups.c:5731
msgid "Urgent" msgid "Urgent"
msgstr "Хитно" msgstr "Хитно"
#: modules/printbackends/cups/gtkprintbackendcups.c:5704 #: modules/printbackends/cups/gtkprintbackendcups.c:5731
msgid "High" msgid "High"
msgstr "Важно" msgstr "Важно"
#: modules/printbackends/cups/gtkprintbackendcups.c:5704 #: modules/printbackends/cups/gtkprintbackendcups.c:5731
msgid "Medium" msgid "Medium"
msgstr "Средње" msgstr "Средње"
#: modules/printbackends/cups/gtkprintbackendcups.c:5704 #: modules/printbackends/cups/gtkprintbackendcups.c:5731
msgid "Low" msgid "Low"
msgstr "Небитно" msgstr "Небитно"
#. Translators, this string is used to label the job priority option #. Translators, this string is used to label the job priority option
#. * in the print dialog #. * in the print dialog
#. #.
#: modules/printbackends/cups/gtkprintbackendcups.c:5734 #: modules/printbackends/cups/gtkprintbackendcups.c:5761
msgid "Job Priority" msgid "Job Priority"
msgstr "Важност" msgstr "Важност"
@ -8212,41 +8210,41 @@ msgstr "Важност"
#. Translators, this string is used to label the billing info entry #. Translators, this string is used to label the billing info entry
#. * in the print dialog #. * in the print dialog
#. #.
#: modules/printbackends/cups/gtkprintbackendcups.c:5745 #: modules/printbackends/cups/gtkprintbackendcups.c:5772
msgid "Billing Info" msgid "Billing Info"
msgstr "Фактурисање" msgstr "Фактурисање"
#: modules/printbackends/cups/gtkprintbackendcups.c:5769 #: modules/printbackends/cups/gtkprintbackendcups.c:5796
msgctxt "cover page" msgctxt "cover page"
msgid "None" msgid "None"
msgstr "Ништа" msgstr "Ништа"
#: modules/printbackends/cups/gtkprintbackendcups.c:5770 #: modules/printbackends/cups/gtkprintbackendcups.c:5797
msgctxt "cover page" msgctxt "cover page"
msgid "Classified" msgid "Classified"
msgstr "Категорисано" msgstr "Категорисано"
#: modules/printbackends/cups/gtkprintbackendcups.c:5771 #: modules/printbackends/cups/gtkprintbackendcups.c:5798
msgctxt "cover page" msgctxt "cover page"
msgid "Confidential" msgid "Confidential"
msgstr "Поверљиво" msgstr "Поверљиво"
#: modules/printbackends/cups/gtkprintbackendcups.c:5772 #: modules/printbackends/cups/gtkprintbackendcups.c:5799
msgctxt "cover page" msgctxt "cover page"
msgid "Secret" msgid "Secret"
msgstr "Тајно" msgstr "Тајно"
#: modules/printbackends/cups/gtkprintbackendcups.c:5773 #: modules/printbackends/cups/gtkprintbackendcups.c:5800
msgctxt "cover page" msgctxt "cover page"
msgid "Standard" msgid "Standard"
msgstr "Обично" msgstr "Обично"
#: modules/printbackends/cups/gtkprintbackendcups.c:5774 #: modules/printbackends/cups/gtkprintbackendcups.c:5801
msgctxt "cover page" msgctxt "cover page"
msgid "Top Secret" msgid "Top Secret"
msgstr "Строго поверљиво" msgstr "Строго поверљиво"
#: modules/printbackends/cups/gtkprintbackendcups.c:5775 #: modules/printbackends/cups/gtkprintbackendcups.c:5802
msgctxt "cover page" msgctxt "cover page"
msgid "Unclassified" msgid "Unclassified"
msgstr "Некатегорисано" msgstr "Некатегорисано"
@ -8254,7 +8252,7 @@ msgstr "Некатегорисано"
#. Translators, this string is used to label the pages-per-sheet option #. Translators, this string is used to label the pages-per-sheet option
#. * in the print dialog #. * in the print dialog
#. #.
#: modules/printbackends/cups/gtkprintbackendcups.c:5787 #: modules/printbackends/cups/gtkprintbackendcups.c:5814
msgctxt "printer option" msgctxt "printer option"
msgid "Pages per Sheet" msgid "Pages per Sheet"
msgstr "Страна на листу" msgstr "Страна на листу"
@ -8262,7 +8260,7 @@ msgstr "Страна на листу"
#. Translators, this string is used to label the option in the print #. Translators, this string is used to label the option in the print
#. * dialog that controls in what order multiple pages are arranged #. * dialog that controls in what order multiple pages are arranged
#. #.
#: modules/printbackends/cups/gtkprintbackendcups.c:5804 #: modules/printbackends/cups/gtkprintbackendcups.c:5831
msgctxt "printer option" msgctxt "printer option"
msgid "Page Ordering" msgid "Page Ordering"
msgstr "Слагање страна" msgstr "Слагање страна"
@ -8270,7 +8268,7 @@ msgstr "Слагање страна"
#. Translators, this is the label used for the option in the print #. Translators, this is the label used for the option in the print
#. * dialog that controls the front cover page. #. * dialog that controls the front cover page.
#. #.
#: modules/printbackends/cups/gtkprintbackendcups.c:5846 #: modules/printbackends/cups/gtkprintbackendcups.c:5873
msgctxt "printer option" msgctxt "printer option"
msgid "Before" msgid "Before"
msgstr "Пре" msgstr "Пре"
@ -8278,7 +8276,7 @@ msgstr "Пре"
#. Translators, this is the label used for the option in the print #. Translators, this is the label used for the option in the print
#. * dialog that controls the back cover page. #. * dialog that controls the back cover page.
#. #.
#: modules/printbackends/cups/gtkprintbackendcups.c:5861 #: modules/printbackends/cups/gtkprintbackendcups.c:5888
msgctxt "printer option" msgctxt "printer option"
msgid "After" msgid "After"
msgstr "После" msgstr "После"
@ -8287,7 +8285,7 @@ msgstr "После"
#. * a print job is printed. Possible values are 'now', a specified time, #. * a print job is printed. Possible values are 'now', a specified time,
#. * or 'on hold' #. * or 'on hold'
#. #.
#: modules/printbackends/cups/gtkprintbackendcups.c:5881 #: modules/printbackends/cups/gtkprintbackendcups.c:5908
msgctxt "printer option" msgctxt "printer option"
msgid "Print at" msgid "Print at"
msgstr "Закажи штампу" msgstr "Закажи штампу"
@ -8295,7 +8293,7 @@ msgstr "Закажи штампу"
#. Translators: this is the name of the option that allows the user #. Translators: this is the name of the option that allows the user
#. * to specify a time when a print job will be printed. #. * to specify a time when a print job will be printed.
#. #.
#: modules/printbackends/cups/gtkprintbackendcups.c:5892 #: modules/printbackends/cups/gtkprintbackendcups.c:5919
msgctxt "printer option" msgctxt "printer option"
msgid "Print at time" msgid "Print at time"
msgstr "Штампај у" msgstr "Штампај у"
@ -8305,18 +8303,18 @@ msgstr "Штампај у"
#. * the width and height in points. E.g: "Custom #. * the width and height in points. E.g: "Custom
#. * 230.4x142.9" #. * 230.4x142.9"
#. #.
#: modules/printbackends/cups/gtkprintbackendcups.c:5937 #: modules/printbackends/cups/gtkprintbackendcups.c:5964
#, c-format #, c-format
msgid "Custom %s×%s" msgid "Custom %s×%s"
msgstr "Произвољно %s×%s" msgstr "Произвољно %s×%s"
#: modules/printbackends/cups/gtkprintbackendcups.c:6047 #: modules/printbackends/cups/gtkprintbackendcups.c:6074
msgctxt "printer option" msgctxt "printer option"
msgid "Printer Profile" msgid "Printer Profile"
msgstr "Профил штампача" msgstr "Профил штампача"
#. TRANSLATORS: this is when color profile information is unavailable #. TRANSLATORS: this is when color profile information is unavailable
#: modules/printbackends/cups/gtkprintbackendcups.c:6054 #: modules/printbackends/cups/gtkprintbackendcups.c:6081
msgctxt "printer option value" msgctxt "printer option value"
msgid "Unavailable" msgid "Unavailable"
msgstr "Недоступно" msgstr "Недоступно"

View File

@ -5,5 +5,5 @@
} }
#reference2 { #reference2 {
background: url("marble.xpm") no-repeat; background: url("marble.png") no-repeat;
} }

View File

@ -25,7 +25,7 @@
<object class="GtkImage" id="image2"> <object class="GtkImage" id="image2">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="file">marble.xpm</property> <property name="file">marble.png</property>
</object> </object>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

File diff suppressed because one or more lines are too long

View File

@ -305,7 +305,7 @@ test_data = [
'link-coloring.css', 'link-coloring.css',
'link-coloring.ref.ui', 'link-coloring.ref.ui',
'link-coloring.ui', 'link-coloring.ui',
'marble.xpm', 'marble.png',
'messagedialog-secondarytext.ui', 'messagedialog-secondarytext.ui',
'messagedialog-secondarytext.ref.ui', 'messagedialog-secondarytext.ref.ui',
'misc-alignment.css', 'misc-alignment.css',