New upstream version 3.24.48
This commit is contained in:
commit
2d6be693ba
@ -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:
|
||||
- build
|
||||
- docs
|
||||
- deploy
|
||||
|
||||
cache:
|
||||
paths:
|
||||
@ -10,16 +19,23 @@ fedora-distcheck:
|
||||
image: registry.gitlab.gnome.org/gnome/gtk/fedora-gtk3:v3
|
||||
variables:
|
||||
DO_DISTCHECK: "yes"
|
||||
when: manual
|
||||
when: always
|
||||
stage: build
|
||||
script:
|
||||
- git config --global --add safe.directory $CI_PROJECT_DIR
|
||||
- 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:
|
||||
image: registry.gitlab.gnome.org/gnome/gtk/fedora-gtk3:v3
|
||||
stage: build
|
||||
variables:
|
||||
EXTRA_MESON_FLAGS: "-Ddefault_library=both"
|
||||
DO_TEST: "yes"
|
||||
script:
|
||||
- bash -x ./.gitlab-ci/test-docker-meson.sh
|
||||
artifacts:
|
||||
@ -34,6 +50,7 @@ debian-meson:
|
||||
stage: build
|
||||
variables:
|
||||
EXTRA_MESON_FLAGS: "-Ddefault_library=both"
|
||||
DO_TEST: "yes"
|
||||
script:
|
||||
- bash -x ./.gitlab-ci/test-docker-meson.sh
|
||||
artifacts:
|
||||
|
@ -22,6 +22,7 @@ meson \
|
||||
cd _build
|
||||
ninja
|
||||
|
||||
if [ -n "${DO_TEST-}" ]; then
|
||||
# Meson < 0.57 can't exclude suites in a test_setup() so we have to
|
||||
# explicitly leave out the failing and flaky suites.
|
||||
xvfb-run -a -s "-screen 0 1024x768x24" \
|
||||
@ -41,6 +42,7 @@ xvfb-run -a -s "-screen 0 1024x768x24" \
|
||||
--suite=flaky \
|
||||
--suite=failing \
|
||||
|| true
|
||||
fi
|
||||
|
||||
if [ -n "${DO_DISTCHECK-}" ]; then
|
||||
meson dist --no-tests
|
||||
|
51
NEWS
51
NEWS
@ -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
|
||||
===============================================
|
||||
|
||||
|
@ -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
|
||||
{
|
||||
GdkWindow *window = [[self contentView] gdkWindow];
|
||||
GdkEvent *event;
|
||||
|
||||
gboolean maximized = gdk_window_get_state (window) & GDK_WINDOW_STATE_MAXIMIZED;
|
||||
|
||||
/* In case the window is changed when maximized remove the maximized state */
|
||||
@ -209,16 +220,7 @@
|
||||
}
|
||||
|
||||
_gdk_quartz_window_update_position (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);
|
||||
synthesize_configure_event(window);
|
||||
|
||||
[self checkSendEnterNotify];
|
||||
}
|
||||
@ -227,7 +229,6 @@
|
||||
{
|
||||
NSRect content_rect = [self contentRectForFrameRect:[self frame]];
|
||||
GdkWindow *window = [[self contentView] gdkWindow];
|
||||
GdkEvent *event;
|
||||
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. */
|
||||
const gint scale = gdk_window_get_scale_factor (window);
|
||||
@ -245,10 +246,7 @@
|
||||
window->height = content_rect.size.height;
|
||||
|
||||
if(window->width % align)
|
||||
{
|
||||
window->width += align - window->width % align;
|
||||
content_rect.size.width = window->width;
|
||||
}
|
||||
content_rect.size.width = window->width + align - window->width % align;
|
||||
|
||||
content_rect.origin.x = 0;
|
||||
content_rect.origin.y = 0;
|
||||
@ -260,16 +258,7 @@
|
||||
*/
|
||||
_gdk_quartz_window_update_position (window);
|
||||
_gdk_window_update_size (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);
|
||||
synthesize_configure_event (window);
|
||||
|
||||
[self checkSendEnterNotify];
|
||||
}
|
||||
|
@ -1174,6 +1174,9 @@ data_device_enter (void *data,
|
||||
GdkWindow *dest_window, *dnd_owner;
|
||||
GdkAtom selection;
|
||||
|
||||
if (!surface)
|
||||
return;
|
||||
|
||||
dest_window = wl_surface_get_user_data (surface);
|
||||
|
||||
if (!GDK_IS_WINDOW (dest_window))
|
||||
|
@ -47,6 +47,7 @@
|
||||
#include "tablet-unstable-v2-client-protocol.h"
|
||||
#include "xdg-shell-unstable-v6-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"
|
||||
|
||||
#ifdef HAVE_TOPLEVEL_STATE_SUSPENDED
|
||||
@ -493,16 +494,28 @@ gdk_registry_handle_global (void *data,
|
||||
}
|
||||
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,
|
||||
&zxdg_exporter_v1_interface, 1);
|
||||
}
|
||||
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,
|
||||
&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)
|
||||
{
|
||||
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))
|
||||
size = g_value_get_int (&v);
|
||||
else
|
||||
size = 32;
|
||||
size = 24;
|
||||
g_value_unset (&v);
|
||||
|
||||
g_value_init (&v, G_TYPE_STRING);
|
||||
|
@ -32,6 +32,7 @@
|
||||
#include <gdk/wayland/xdg-shell-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-v2-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/xdg-output-unstable-v1-client-protocol.h>
|
||||
@ -96,8 +97,10 @@ struct _GdkWaylandDisplay
|
||||
struct gtk_primary_selection_device_manager *gtk_primary_selection_manager;
|
||||
struct zwp_primary_selection_device_manager_v1 *zwp_primary_selection_manager_v1;
|
||||
struct zwp_tablet_manager_v2 *tablet_manager;
|
||||
struct zxdg_exporter_v1 *xdg_exporter;
|
||||
struct zxdg_importer_v1 *xdg_importer;
|
||||
struct zxdg_exporter_v1 *xdg_exporter_v1;
|
||||
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 org_kde_kwin_server_decoration_manager *server_decoration_manager;
|
||||
struct zxdg_output_manager_v1 *xdg_output_manager;
|
||||
|
@ -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", "icon-theme", "gtk-icon-theme-name", G_TYPE_STRING, { .s = "gnome" } },
|
||||
{ FALSE, "org.gnome.desktop.interface", "cursor-theme", "gtk-cursor-theme-name", G_TYPE_STRING, { .s = "Adwaita" } },
|
||||
{ FALSE, "org.gnome.desktop.interface", "cursor-size", "gtk-cursor-theme-size", G_TYPE_INT, { .i = 32 } },
|
||||
{ FALSE, "org.gnome.desktop.interface", "cursor-size", "gtk-cursor-theme-size", G_TYPE_INT, { .i = 24 } },
|
||||
{ FALSE, "org.gnome.desktop.interface", "font-name", "gtk-font-name", G_TYPE_STRING, { .s = "Cantarell 11" } },
|
||||
{ FALSE, "org.gnome.desktop.interface", "cursor-blink", "gtk-cursor-blink", G_TYPE_BOOLEAN, { .b = TRUE } },
|
||||
{ FALSE, "org.gnome.desktop.interface", "cursor-blink-time", "gtk-cursor-blink-time", G_TYPE_INT, { .i = 1200 } },
|
||||
@ -760,16 +760,18 @@ init_settings (GdkScreen *screen)
|
||||
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_clear_pointer (&iter, g_variant_iter_free);
|
||||
g_clear_pointer (&ret, g_variant_unref);
|
||||
g_clear_object (&screen_wayland->settings_portal);
|
||||
|
||||
goto fallback;
|
||||
}
|
||||
|
||||
g_variant_get (ret, "(a{sa{sv}})", &iter);
|
||||
|
||||
while (g_variant_iter_loop (iter, "{s@a{sv}}", &schema, &val))
|
||||
{
|
||||
GVariantIter *iter2 = g_variant_iter_new (val);
|
||||
@ -1565,7 +1567,9 @@ apply_monitor_change (GdkWaylandMonitor *monitor)
|
||||
GdkRectangle logical_geometry;
|
||||
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;
|
||||
needs_scaling =
|
||||
|
@ -133,7 +133,8 @@ struct _GdkWindowImplWayland
|
||||
struct wl_subsurface *wl_subsurface;
|
||||
struct wl_egl_window *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;
|
||||
} display_server;
|
||||
|
||||
@ -236,7 +237,8 @@ struct _GdkWindowImplWayland
|
||||
guint idle_source_id;
|
||||
} 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;
|
||||
|
||||
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
|
||||
* 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);
|
||||
}
|
||||
|
||||
@ -1323,15 +1326,20 @@ gdk_wayland_window_sync_parent_of_imported (GdkWindow *window)
|
||||
if (!impl->display_server.wl_surface)
|
||||
return;
|
||||
|
||||
if (!impl->imported_transient_for)
|
||||
return;
|
||||
|
||||
if (!is_realized_toplevel (window))
|
||||
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);
|
||||
}
|
||||
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
|
||||
gdk_wayland_window_update_dialogs (GdkWindow *window)
|
||||
@ -5418,7 +5426,7 @@ invoke_exported_closures (GdkWindow *window)
|
||||
}
|
||||
|
||||
static void
|
||||
xdg_exported_handle (void *data,
|
||||
xdg_exported_v1_handle (void *data,
|
||||
struct zxdg_exported_v1 *zxdg_exported_v1,
|
||||
const char *handle)
|
||||
{
|
||||
@ -5430,8 +5438,20 @@ xdg_exported_handle (void *data,
|
||||
invoke_exported_closures (window);
|
||||
}
|
||||
|
||||
static const struct zxdg_exported_v1_listener xdg_exported_listener = {
|
||||
xdg_exported_handle
|
||||
static const struct zxdg_exported_v1_listener xdg_exported_v1_listener = {
|
||||
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);
|
||||
|
||||
return !!impl->display_server.xdg_exported;
|
||||
return impl->display_server.xdg_exported_v2 || impl->display_server.xdg_exported_v1;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@ -5520,24 +5540,44 @@ gdk_wayland_window_export_handle (GdkWindow *window,
|
||||
impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
|
||||
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");
|
||||
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->callback = callback;
|
||||
@ -5559,8 +5599,16 @@ gdk_wayland_window_unexport (GdkWindow *window)
|
||||
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
|
||||
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);
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
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--;
|
||||
if (impl->exported.export_count == 0)
|
||||
@ -5617,11 +5666,20 @@ unset_transient_for_exported (GdkWindow *window)
|
||||
{
|
||||
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
|
||||
xdg_imported_destroyed (void *data,
|
||||
xdg_imported_v1_destroyed (void *data,
|
||||
struct zxdg_imported_v1 *zxdg_imported_v1)
|
||||
{
|
||||
GdkWindow *window = data;
|
||||
@ -5629,8 +5687,19 @@ xdg_imported_destroyed (void *data,
|
||||
unset_transient_for_exported (window);
|
||||
}
|
||||
|
||||
static const struct zxdg_imported_v1_listener xdg_imported_listener = {
|
||||
xdg_imported_destroyed,
|
||||
static const struct zxdg_imported_v1_listener xdg_imported_v1_listener = {
|
||||
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);
|
||||
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");
|
||||
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);
|
||||
|
||||
return TRUE;
|
||||
|
@ -53,6 +53,7 @@ proto_sources = [
|
||||
['xdg-shell', 'unstable', 'v6', ],
|
||||
['xdg-shell', 'stable', ],
|
||||
['xdg-foreign', 'unstable', 'v1', ],
|
||||
['xdg-foreign', 'unstable', 'v2', ],
|
||||
['tablet', 'unstable', 'v2', ],
|
||||
['keyboard-shortcuts-inhibit', 'unstable', 'v1', ],
|
||||
['server-decoration', 'private' ],
|
||||
|
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.
@ -1440,14 +1440,14 @@ out:
|
||||
* modifier mask, %NULL
|
||||
*
|
||||
* 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).
|
||||
*
|
||||
* 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,
|
||||
* but the lowercase name, e.g. one would use “<Ctrl>minus” instead of
|
||||
* “<Ctrl>-”.
|
||||
* but the lowercase name, e.g. one would use `<Ctrl>minus` instead of
|
||||
* `<Ctrl>-`.
|
||||
*
|
||||
* If the parse fails, @accelerator_key and @accelerator_mods will
|
||||
* be set to 0 (zero).
|
||||
|
@ -328,6 +328,7 @@ enum {
|
||||
ICON_RELEASE,
|
||||
PREEDIT_CHANGED,
|
||||
INSERT_EMOJI,
|
||||
TOGGLE_DIRECTION,
|
||||
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_paste_clipboard (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_select_all (GtkEntry *entry);
|
||||
static void gtk_entry_real_activate (GtkEntry *entry);
|
||||
static gboolean gtk_entry_popup_menu (GtkWidget *widget);
|
||||
|
||||
static void keymap_direction_changed (GdkKeymap *keymap,
|
||||
GtkEntry *entry);
|
||||
static void keymap_state_changed (GdkKeymap *keymap,
|
||||
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->get_text_area_size = gtk_entry_get_text_area_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_password_hint = g_quark_from_static_string ("gtk-entry-password-hint");
|
||||
@ -1847,6 +1848,15 @@ gtk_entry_class_init (GtkEntryClass *class)
|
||||
NULL,
|
||||
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:
|
||||
* @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,
|
||||
"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:
|
||||
*
|
||||
@ -3002,7 +3014,6 @@ gtk_entry_dispose (GObject *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_direction_changed, entry);
|
||||
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_signal_connect (keymap, "direction-changed",
|
||||
G_CALLBACK (keymap_direction_changed), entry);
|
||||
|
||||
if (gtk_entry_buffer_get_bytes (get_buffer (entry)) == 0 &&
|
||||
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_direction_changed, entry);
|
||||
|
||||
completion = gtk_entry_get_completion (entry);
|
||||
if (completion)
|
||||
@ -6028,6 +6035,34 @@ gtk_entry_toggle_overwrite (GtkEntry *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
|
||||
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
|
||||
*/
|
||||
|
||||
@ -6398,40 +6426,11 @@ gtk_entry_create_layout (GtkEntry *entry,
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
update_resolved_dir (entry);
|
||||
|
||||
pango_layout_set_attributes (layout, tmp_attrs);
|
||||
|
||||
if (priv->tabs)
|
||||
|
@ -162,13 +162,14 @@ struct _GtkEntryClass
|
||||
|
||||
/*< private >*/
|
||||
|
||||
void (* toggle_direction) (GtkEntry *entry);
|
||||
|
||||
/* Padding for future expansion */
|
||||
void (*_gtk_reserved1) (void);
|
||||
void (*_gtk_reserved2) (void);
|
||||
void (*_gtk_reserved3) (void);
|
||||
void (*_gtk_reserved4) (void);
|
||||
void (*_gtk_reserved5) (void);
|
||||
void (*_gtk_reserved6) (void);
|
||||
};
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
/* 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 *
|
||||
my_g_format_date_for_display (GtkFileChooserWidget *impl,
|
||||
glong secs)
|
||||
@ -4918,7 +4890,6 @@ my_g_format_date_for_display (GtkFileChooserWidget *impl,
|
||||
}
|
||||
|
||||
date_str = g_date_time_format (time, format);
|
||||
replace_ratio (&date_str);
|
||||
|
||||
g_date_time_unref (now);
|
||||
g_date_time_unref (now_date);
|
||||
@ -4949,7 +4920,6 @@ my_g_format_time_for_display (GtkFileChooserWidget *impl,
|
||||
format = _("%l:%M %p");
|
||||
|
||||
date_str = g_date_time_format (time, format);
|
||||
replace_ratio (&date_str);
|
||||
|
||||
g_date_time_unref (time);
|
||||
|
||||
|
@ -125,6 +125,7 @@
|
||||
#include "gtkmain.h"
|
||||
#include "gtkintl.h"
|
||||
#include "gtkmarshalers.h"
|
||||
#include <math.h>
|
||||
|
||||
typedef struct _GtkGesturePrivate GtkGesturePrivate;
|
||||
typedef struct _PointData PointData;
|
||||
@ -472,7 +473,7 @@ _update_widget_coordinates (GtkGesture *gesture,
|
||||
GtkWidget *event_widget, *widget;
|
||||
GtkAllocation allocation;
|
||||
gdouble event_x, event_y;
|
||||
gint wx, wy, x, y;
|
||||
gint x, y;
|
||||
|
||||
event_widget = gtk_get_event_widget (data->event);
|
||||
|
||||
@ -486,6 +487,7 @@ _update_widget_coordinates (GtkGesture *gesture,
|
||||
|
||||
while (window && window != event_widget_window)
|
||||
{
|
||||
gint wx, wy;
|
||||
gdk_window_get_position (window, &wx, &wy);
|
||||
event_x += wx;
|
||||
event_y += wy;
|
||||
@ -502,13 +504,20 @@ _update_widget_coordinates (GtkGesture *gesture,
|
||||
event_y -= allocation.y;
|
||||
}
|
||||
|
||||
gtk_widget_translate_coordinates (event_widget, widget,
|
||||
event_x, event_y, &x, &y);
|
||||
if (gtk_widget_translate_coordinates (event_widget, widget,
|
||||
event_x, event_y, &x, &y))
|
||||
{
|
||||
/* gtk_widget_translate() loses the fractional part so we need to
|
||||
* add it back to not lose accuracy */
|
||||
data->widget_x = x + (event_x - (int)event_x);
|
||||
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
|
||||
|
@ -102,8 +102,6 @@ static gboolean gtk_im_multicontext_delete_surrounding_cb (GtkIMContext *
|
||||
|
||||
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)
|
||||
|
||||
static void
|
||||
@ -256,10 +254,7 @@ get_effective_context_id (GtkIMMulticontext *multicontext)
|
||||
if (priv->context_id_aux)
|
||||
return priv->context_id_aux;
|
||||
|
||||
if (!global_context_id)
|
||||
global_context_id = _gtk_im_module_get_default_context_id ();
|
||||
|
||||
return global_context_id;
|
||||
return _gtk_im_module_get_default_context_id ();
|
||||
}
|
||||
|
||||
static GtkIMContext *
|
||||
@ -267,9 +262,6 @@ gtk_im_multicontext_get_slave (GtkIMMulticontext *multicontext)
|
||||
{
|
||||
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)
|
||||
{
|
||||
GtkIMContext *slave;
|
||||
@ -291,22 +283,30 @@ gtk_im_multicontext_get_slave (GtkIMMulticontext *multicontext)
|
||||
|
||||
static void
|
||||
im_module_setting_changed (GtkSettings *settings,
|
||||
gpointer data)
|
||||
GtkIMMulticontext *self)
|
||||
{
|
||||
global_context_id = NULL;
|
||||
gtk_im_multicontext_set_slave (self, NULL, FALSE);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
gtk_im_multicontext_set_client_window (GtkIMContext *context,
|
||||
GdkWindow *window)
|
||||
{
|
||||
GtkIMMulticontext *multicontext = GTK_IM_MULTICONTEXT (context);
|
||||
GtkIMMulticontextPrivate *priv = multicontext->priv;
|
||||
GtkIMMulticontext *self = GTK_IM_MULTICONTEXT (context);
|
||||
GtkIMMulticontextPrivate *priv = self->priv;
|
||||
GtkIMContext *slave;
|
||||
GdkScreen *screen;
|
||||
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;
|
||||
|
||||
@ -315,20 +315,12 @@ gtk_im_multicontext_set_client_window (GtkIMContext *context,
|
||||
screen = gdk_window_get_screen (window);
|
||||
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_CALLBACK (im_module_setting_changed), NULL);
|
||||
g_object_set_data (G_OBJECT (settings), "gtk-im-module-connected",
|
||||
GINT_TO_POINTER (TRUE));
|
||||
|
||||
global_context_id = NULL;
|
||||
}
|
||||
G_CALLBACK (im_module_setting_changed),
|
||||
self);
|
||||
}
|
||||
|
||||
slave = gtk_im_multicontext_get_slave (multicontext);
|
||||
slave = gtk_im_multicontext_get_slave (self);
|
||||
if (slave)
|
||||
gtk_im_context_set_client_window (slave, window);
|
||||
}
|
||||
@ -723,9 +715,14 @@ gtk_im_multicontext_append_menuitems (GtkIMMulticontext *context,
|
||||
const char *
|
||||
gtk_im_multicontext_get_context_id (GtkIMMulticontext *context)
|
||||
{
|
||||
GtkIMMulticontextPrivate *priv = context->priv;
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2082,6 +2082,13 @@ typedef struct
|
||||
GdkEvent *trigger_event;
|
||||
} 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
|
||||
gtk_menu_item_popup_timeout (gpointer data)
|
||||
{
|
||||
@ -2105,9 +2112,6 @@ gtk_menu_item_popup_timeout (gpointer data)
|
||||
|
||||
priv->timer = 0;
|
||||
|
||||
g_clear_pointer (&info->trigger_event, gdk_event_free);
|
||||
g_slice_free (PopupInfo, info);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ -2148,9 +2152,11 @@ _gtk_menu_item_popup_submenu (GtkWidget *widget,
|
||||
info->menu_item = menu_item;
|
||||
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,
|
||||
info);
|
||||
info,
|
||||
(GDestroyNotify) _gtk_menu_item_popup_info_destroy);
|
||||
g_source_set_name_by_id (priv->timer, "[gtk+] gtk_menu_item_popup_timeout");
|
||||
|
||||
return;
|
||||
|
@ -367,19 +367,20 @@ setup_primary_label_font (GtkMessageDialog *dialog)
|
||||
}
|
||||
|
||||
static void
|
||||
setup_type (GtkMessageDialog *dialog,
|
||||
GtkMessageType type)
|
||||
update_accessible_name (GtkMessageDialog *dialog)
|
||||
{
|
||||
GtkMessageDialogPrivate *priv = dialog->priv;
|
||||
const gchar *name = NULL;
|
||||
AtkObject *atk_obj;
|
||||
|
||||
if (priv->message_type == type)
|
||||
AtkObject *atk_obj = gtk_widget_get_accessible (GTK_WIDGET (dialog));
|
||||
if (!GTK_IS_ACCESSIBLE (atk_obj))
|
||||
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:
|
||||
name = _("Information");
|
||||
@ -401,16 +402,32 @@ setup_type (GtkMessageDialog *dialog,
|
||||
break;
|
||||
|
||||
default:
|
||||
g_warning ("Unknown GtkMessageType %u", type);
|
||||
g_warning ("Unknown GtkMessageType %u", dialog->priv->message_type);
|
||||
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));
|
||||
if (GTK_IS_ACCESSIBLE (atk_obj))
|
||||
{
|
||||
atk_object_set_role (atk_obj, ATK_ROLE_ALERT);
|
||||
if (name)
|
||||
atk_object_set_name (atk_obj, name);
|
||||
update_accessible_name (dialog);
|
||||
}
|
||||
|
||||
g_object_notify (G_OBJECT (dialog), "message-type");
|
||||
@ -426,6 +443,8 @@ update_title (GObject *dialog,
|
||||
title = gtk_window_get_title (GTK_WINDOW (dialog));
|
||||
gtk_label_set_label (GTK_LABEL (label), title);
|
||||
gtk_widget_set_visible (label, title && title[0]);
|
||||
|
||||
update_accessible_name (GTK_MESSAGE_DIALOG (dialog));
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -2024,11 +2024,7 @@ gtk_selection_data_get_uris (const GtkSelectionData *selection_data)
|
||||
GPtrArray *uris = g_ptr_array_new ();
|
||||
|
||||
for (int i = 0; files[i]; i++)
|
||||
{
|
||||
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, g_filename_to_uri (files[i], NULL, NULL));
|
||||
|
||||
g_ptr_array_add (uris, NULL);
|
||||
result = (char **) g_ptr_array_free (uris, FALSE);
|
||||
|
@ -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));
|
||||
|
||||
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_parent (entry_node, 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",
|
||||
GTK_WIDGET (spin_button));
|
||||
_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_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));
|
||||
@ -823,7 +837,8 @@ gtk_spin_button_init (GtkSpinButton *spin_button)
|
||||
priv->up_button = gtk_icon_helper_new_named ("button",
|
||||
GTK_WIDGET (spin_button));
|
||||
_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_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));
|
||||
@ -2416,6 +2431,10 @@ gtk_spin_button_set_numeric (GtkSpinButton *spin_button,
|
||||
if (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");
|
||||
}
|
||||
}
|
||||
|
@ -683,6 +683,8 @@ static gboolean gtk_widget_real_button_event (GtkWidget
|
||||
GdkEventButton *event);
|
||||
static gboolean gtk_widget_real_motion_event (GtkWidget *widget,
|
||||
GdkEventMotion *event);
|
||||
static gboolean gtk_widget_real_crossing_event (GtkWidget *widget,
|
||||
GdkEventCrossing *event);
|
||||
static gboolean gtk_widget_real_key_press_event (GtkWidget *widget,
|
||||
GdkEventKey *event);
|
||||
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->key_press_event = gtk_widget_real_key_press_event;
|
||||
klass->key_release_event = gtk_widget_real_key_release_event;
|
||||
klass->enter_notify_event = NULL;
|
||||
klass->leave_notify_event = NULL;
|
||||
klass->enter_notify_event = gtk_widget_real_crossing_event;
|
||||
klass->leave_notify_event = gtk_widget_real_crossing_event;
|
||||
klass->configure_event = NULL;
|
||||
klass->focus_in_event = gtk_widget_real_focus_in_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);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gtk_widget_real_crossing_event (GtkWidget *widget,
|
||||
GdkEventCrossing *event)
|
||||
{
|
||||
return _gtk_widget_run_controllers (widget, (GdkEvent *) event,
|
||||
GTK_PHASE_BUBBLE);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gtk_widget_real_key_press_event (GtkWidget *widget,
|
||||
GdkEventKey *event)
|
||||
@ -10984,7 +10994,10 @@ gtk_widget_get_scale_factor (GtkWidget *widget)
|
||||
display = gtk_widget_get_display (widget);
|
||||
monitor = gdk_display_get_monitor (display, 0);
|
||||
|
||||
if (monitor)
|
||||
return gdk_monitor_get_scale_factor (monitor);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -13028,8 +13028,6 @@ gtk_window_export_handle (GtkWindow *window,
|
||||
}
|
||||
#endif
|
||||
|
||||
g_warning ("Couldn't export handle, unsupported windowing system");
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -644,14 +644,17 @@ scan_directory (const gchar *base_path,
|
||||
directories = scan_directory (base_path, subsubdir, files,
|
||||
directories, depth + 1);
|
||||
g_free (subsubdir);
|
||||
g_free (path);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
/* ignore images in the toplevel directory */
|
||||
if (subdir == NULL)
|
||||
{
|
||||
g_free (path);
|
||||
continue;
|
||||
|
||||
}
|
||||
retval = g_file_test (path, G_FILE_TEST_IS_REGULAR);
|
||||
if (retval)
|
||||
{
|
||||
@ -665,7 +668,10 @@ scan_directory (const gchar *base_path,
|
||||
flags |= HAS_ICON_FILE;
|
||||
|
||||
if (flags == 0)
|
||||
{
|
||||
g_free (path);
|
||||
continue;
|
||||
}
|
||||
|
||||
basename = g_strdup (name);
|
||||
dot = strrchr (basename, '.');
|
||||
|
@ -1,5 +1,5 @@
|
||||
project('gtk+', 'c',
|
||||
version: '3.24.43',
|
||||
project('gtk', 'c',
|
||||
version: '3.24.48',
|
||||
default_options: [
|
||||
'buildtype=debugoptimized',
|
||||
'warning_level=1'
|
||||
@ -41,8 +41,8 @@ xkbcommon_req = '>= 0.2.0'
|
||||
gnome = import('gnome')
|
||||
|
||||
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_MAX_ALLOWED_VERSION=' + glib_max_allowed, language: 'c')
|
||||
add_project_arguments('-DGLIB_VERSION_MIN_REQUIRED=' + glib_min_required, language: 'c')
|
||||
add_project_arguments('-DGLIB_VERSION_MAX_ALLOWED=' + glib_max_allowed, language: 'c')
|
||||
|
||||
# Making releases:
|
||||
# 1. gtk_micro_version += 1;
|
||||
|
7315
po-properties/bg.po
7315
po-properties/bg.po
File diff suppressed because it is too large
Load Diff
@ -10,8 +10,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gtk+ 2.3.1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-04-24 12:06+0000\n"
|
||||
"PO-Revision-Date: 2024-04-28 15:13+0330\n"
|
||||
"POT-Creation-Date: 2024-09-29 13:26+0000\n"
|
||||
"PO-Revision-Date: 2024-11-04 13:20+0330\n"
|
||||
"Last-Translator: Danial Behzadi <dani.behzi@ubuntu.com>\n"
|
||||
"Language-Team: Persian <translate@ifsug.org>\n"
|
||||
"Language: fa\n"
|
||||
@ -19,7 +19,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\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/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
|
||||
msgid "Pixbuf"
|
||||
msgstr "میانیگر پیکسل"
|
||||
msgstr "میانیگر تصدانه"
|
||||
|
||||
#: gtk/deprecated/gtkstatusicon.c:235 gtk/gtkimage.c:257
|
||||
msgid "A GdkPixbuf to display"
|
||||
msgstr "میانیگر پیکسل برای نمایش"
|
||||
msgstr "میانیگر تصدانه برای نمایش"
|
||||
|
||||
#: gtk/deprecated/gtkstatusicon.c:242 gtk/gtkimage.c:270
|
||||
#: gtk/gtkrecentmanager.c:289
|
||||
@ -1073,7 +1073,7 @@ msgstr "اندازهٔ نقشک"
|
||||
|
||||
#: gtk/deprecated/gtktrayicon-x11.c:179
|
||||
msgid "The pixel size that icons should be forced to, or zero"
|
||||
msgstr "اندازهٔ پیکسلی که نقشک باید به آن اجبار شود. یا صفر"
|
||||
msgstr "اندازهٔ تصدانهای که نقشک باید به آن اجبار شود. یا صفر"
|
||||
|
||||
#: gtk/deprecated/gtkuimanager.c:463 gtk/gtkcombobox.c:1010
|
||||
msgid "Add tearoffs to menus"
|
||||
@ -1510,7 +1510,7 @@ msgstr "لایهگذاری سربرگ"
|
||||
|
||||
#: gtk/gtkassistant.c:541
|
||||
msgid "Number of pixels around the header."
|
||||
msgstr "تعداد پیکسلها دور سرایند."
|
||||
msgstr "تعداد تصدانهها دور سرایند."
|
||||
|
||||
#: gtk/gtkassistant.c:556
|
||||
msgid "Content Padding"
|
||||
@ -1518,7 +1518,7 @@ msgstr "فاصلهدهی محتوا"
|
||||
|
||||
#: gtk/gtkassistant.c:557
|
||||
msgid "Number of pixels around the content pages."
|
||||
msgstr "تعداد پیکسلها دور صفحههای محتوا."
|
||||
msgstr "تعداد تصدانهها دور صفحههای محتوا."
|
||||
|
||||
#: gtk/gtkassistant.c:573
|
||||
msgid "Page type"
|
||||
@ -1791,7 +1791,7 @@ msgstr "فاصلهگذاری تصویر"
|
||||
|
||||
#: gtk/gtkbutton.c:627
|
||||
msgid "Spacing in pixels between the image and label"
|
||||
msgstr "فاصلهگذاری بین تصویر و برچسب به پیکسل"
|
||||
msgstr "فاصلهگذاری بین تصویر و برچسب به تصدانه"
|
||||
|
||||
# naashenaakhte, naashenaas, naama'loom, naamoshakhkhas
|
||||
#: gtk/gtkcalendar.c:398
|
||||
@ -3355,7 +3355,7 @@ msgstr ""
|
||||
|
||||
#: gtk/gtkentry.c:1137
|
||||
msgid "Secondary pixbuf"
|
||||
msgstr "میانگیر پیکسل ثانویه"
|
||||
msgstr "میانگیر تصدانهٔ ثانویه"
|
||||
|
||||
#: gtk/gtkentry.c:1138
|
||||
msgid "Secondary pixbuf for the entry"
|
||||
@ -3857,11 +3857,11 @@ msgstr "برچسب لغو"
|
||||
msgid "The label on the cancel button"
|
||||
msgstr "برچسب دکمهٔ لغو"
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:8674 gtk/gtkfilechooserwidget.c:8675
|
||||
#: gtk/gtkfilechooserwidget.c:8675 gtk/gtkfilechooserwidget.c:8676
|
||||
msgid "Search mode"
|
||||
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
|
||||
msgid "Subtitle"
|
||||
msgstr "زیرنویس"
|
||||
@ -4049,15 +4049,15 @@ msgstr ""
|
||||
msgid "A widget to display in place of the usual frame label"
|
||||
msgstr ""
|
||||
|
||||
#: gtk/gtkgesture.c:879
|
||||
#: gtk/gtkgesture.c:888
|
||||
msgid "Number of points"
|
||||
msgstr "تعداد نقطهها"
|
||||
|
||||
#: gtk/gtkgesture.c:880
|
||||
#: gtk/gtkgesture.c:889
|
||||
msgid "Number of points needed to trigger the gesture"
|
||||
msgstr "تعداد نقطههای تحریک شدهٔ مورد نیاز برای ژست"
|
||||
|
||||
#: gtk/gtkgesture.c:896 gtk/gtkgesture.c:897
|
||||
#: gtk/gtkgesture.c:905 gtk/gtkgesture.c:906
|
||||
msgid "GdkWindow to receive events about"
|
||||
msgstr ""
|
||||
|
||||
@ -7998,7 +7998,7 @@ msgstr "حاشیهٔ بالا"
|
||||
|
||||
#: gtk/gtktextview.c:906
|
||||
msgid "Height of the top margin in pixels"
|
||||
msgstr "بلندای حاشیهٔ بالایی به پیکسل"
|
||||
msgstr "بلندای حاشیهٔ بالایی به تصدانه"
|
||||
|
||||
#: gtk/gtktextview.c:926
|
||||
msgid "Bottom Margin"
|
||||
@ -8006,7 +8006,7 @@ msgstr "حاشیهٔ پایینی"
|
||||
|
||||
#: gtk/gtktextview.c:927
|
||||
msgid "Height of the bottom margin in pixels"
|
||||
msgstr "بلندای حاشیهٔ پایینی به پیکسل"
|
||||
msgstr "بلندای حاشیهٔ پایینی به تصدانه"
|
||||
|
||||
#: gtk/gtktextview.c:950
|
||||
msgid "Cursor Visible"
|
||||
@ -8184,7 +8184,7 @@ msgstr "فاصلهگذاری نقشک"
|
||||
|
||||
#: gtk/gtktoolbutton.c:312
|
||||
msgid "Spacing in pixels between the icon and label"
|
||||
msgstr "فاصلهگذاری بین نقشک و برچسب به پیکسل"
|
||||
msgstr "فاصلهگذاری بین نقشک و برچسب به تصدانه"
|
||||
|
||||
#: gtk/gtktoolitem.c:194
|
||||
msgid ""
|
||||
|
7952
po-properties/hi.po
7952
po-properties/hi.po
File diff suppressed because it is too large
Load Diff
23230
po-properties/is.po
23230
po-properties/is.po
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
#'gtk/po-properties/
|
||||
# gtk/po-properties/
|
||||
# Slovenian translation of gtk+-properties.
|
||||
# Copyright (C) 1999-2011 Free Software Foundation, Inc.
|
||||
# This file is distributed under the same license as the gtk+-properties package.
|
||||
|
10
po/hu.po
10
po/hu.po
@ -11,8 +11,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gtk master\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-06-16 13:18+0000\n"
|
||||
"PO-Revision-Date: 2024-06-28 17:20+0200\n"
|
||||
"POT-Creation-Date: 2024-06-28 15:27+0000\n"
|
||||
"PO-Revision-Date: 2024-06-28 18:51+0200\n"
|
||||
"Last-Translator: Balázs Úr <ur.balazs at fsf dot hu>\n"
|
||||
"Language-Team: Hungarian <openscope at fsf dot hu>\n"
|
||||
"Language: hu\n"
|
||||
@ -20,7 +20,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Lokalize 23.08.4\n"
|
||||
"X-Generator: Poedit 3.4.4\n"
|
||||
|
||||
#: gdk/broadway/gdkbroadway-server.c:144
|
||||
#, c-format
|
||||
@ -2576,8 +2576,9 @@ msgid "Yesterday"
|
||||
msgstr "Tegnap"
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:4912
|
||||
#, c-format
|
||||
msgid "%-e %b"
|
||||
msgstr "%b. %-e."
|
||||
msgstr "%2$b. %1$-e."
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:4916
|
||||
msgid "%-e %b %Y"
|
||||
@ -8397,4 +8398,3 @@ msgstr "tesztkimenet.%s"
|
||||
#: modules/printbackends/test/gtkprintbackendtest.c:465
|
||||
msgid "Print to Test Printer"
|
||||
msgstr "Nyomtatás tesztnyomtatóra"
|
||||
|
||||
|
282
po/sr.po
282
po/sr.po
@ -11,17 +11,18 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gtk+ 2.14\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-04-07 16:28+0000\n"
|
||||
"PO-Revision-Date: 2023-04-09 13:34+0200\n"
|
||||
"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
|
||||
"POT-Creation-Date: 2024-11-04 10:04+0000\n"
|
||||
"PO-Revision-Date: 2024-11-07 18:56+0100\n"
|
||||
"Last-Translator: Марко М. Костић <marko.m.kostic@gmail.com>\n"
|
||||
"Language-Team: Serbian <gnome-sr@googlegroups.org>\n"
|
||||
"Language: sr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=4; plural=n==1? 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-Generator: Poedit 3.4.4\n"
|
||||
|
||||
#: gdk/broadway/gdkbroadway-server.c:144
|
||||
#, c-format
|
||||
@ -1219,9 +1220,9 @@ msgstr ""
|
||||
|
||||
#: gtk/deprecated/gtkcolorseldialog.c:191 gtk/deprecated/gtkfontsel.c:1689
|
||||
#: gtk/gtkfilechoosernative.c:545 gtk/gtkfilechoosernative.c:637
|
||||
#: gtk/gtkfilechooserwidget.c:1502 gtk/gtkfilechooserwidget.c:6578
|
||||
#: gtk/gtkmessagedialog.c:952 gtk/gtkmessagedialog.c:965
|
||||
#: gtk/gtkmountoperation.c:594 gtk/gtkpagesetupunixdialog.c:197
|
||||
#: gtk/gtkfilechooserwidget.c:1502 gtk/gtkfilechooserwidget.c:6579
|
||||
#: gtk/gtkmessagedialog.c:971 gtk/gtkmessagedialog.c:984
|
||||
#: gtk/gtkmountoperation.c:599 gtk/gtkpagesetupunixdialog.c:197
|
||||
#: gtk/gtkprintbackend.c:779 gtk/gtkprinteroptionwidget.c:545
|
||||
#: gtk/gtkprintunixdialog.c:674 gtk/gtkprintunixdialog.c:747
|
||||
#: gtk/gtkwindow.c:12829 gtk/inspector/css-editor.c:201
|
||||
@ -1272,8 +1273,8 @@ msgstr "_Претпреглед:"
|
||||
msgid "_Apply"
|
||||
msgstr "_Примени"
|
||||
|
||||
#: gtk/deprecated/gtkfontsel.c:1698 gtk/gtkmessagedialog.c:944
|
||||
#: gtk/gtkmessagedialog.c:966 gtk/gtkprintbackend.c:780 gtk/gtkwindow.c:12830
|
||||
#: gtk/deprecated/gtkfontsel.c:1698 gtk/gtkmessagedialog.c:963
|
||||
#: gtk/gtkmessagedialog.c:985 gtk/gtkprintbackend.c:780 gtk/gtkwindow.c:12830
|
||||
msgid "_OK"
|
||||
msgstr "У _реду"
|
||||
|
||||
@ -1518,7 +1519,7 @@ msgid "_License"
|
||||
msgstr "_Лиценца"
|
||||
|
||||
#: 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"
|
||||
msgstr "_Затвори"
|
||||
|
||||
@ -2336,7 +2337,7 @@ msgstr "От_вори"
|
||||
msgid "_Save"
|
||||
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"
|
||||
msgstr "Изабери које врсте датотека се приказују"
|
||||
|
||||
@ -2560,7 +2561,7 @@ msgstr "Унесите путању"
|
||||
msgid "Enter location or URL"
|
||||
msgstr "Унесите путању или адресу"
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:4454 gtk/gtkfilechooserwidget.c:7498
|
||||
#: gtk/gtkfilechooserwidget.c:4454 gtk/gtkfilechooserwidget.c:7499
|
||||
#: gtk/ui/gtkfilechooserwidget.ui:278
|
||||
msgid "Modified"
|
||||
msgstr "Измењена"
|
||||
@ -2574,11 +2575,11 @@ msgstr "Не могу да прочитам садржај „%s“"
|
||||
msgid "Could not read the contents of the folder"
|
||||
msgstr "Не могу да прочитам садржај фасцикле"
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:4898 gtk/gtkfilechooserwidget.c:4946
|
||||
#: gtk/gtkfilechooserwidget.c:4898 gtk/gtkfilechooserwidget.c:4947
|
||||
msgid "%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"
|
||||
msgstr "%l:%M %p"
|
||||
|
||||
@ -2586,110 +2587,111 @@ msgstr "%l:%M %p"
|
||||
msgid "Yesterday"
|
||||
msgstr "Јуче"
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:4912
|
||||
#: gtk/gtkfilechooserwidget.c:4913
|
||||
#, no-c-format
|
||||
msgid "%-e %b"
|
||||
msgstr "%-e %b"
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:4916
|
||||
#: gtk/gtkfilechooserwidget.c:4917
|
||||
msgid "%-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"
|
||||
msgstr "Програм"
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:5016
|
||||
#: gtk/gtkfilechooserwidget.c:5017
|
||||
msgid "Audio"
|
||||
msgstr "Звук"
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:5017 gtk/inspector/visual.ui:230
|
||||
#: gtk/gtkfilechooserwidget.c:5018 gtk/inspector/visual.ui:230
|
||||
#: gtk/ui/gtkfontbutton.ui:13
|
||||
msgid "Font"
|
||||
msgstr "Слова"
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:5018 gtk/inspector/visual.ui:488
|
||||
#: gtk/gtkfilechooserwidget.c:5019 gtk/inspector/visual.ui:488
|
||||
msgid "Image"
|
||||
msgstr "Слика"
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:5019
|
||||
#: gtk/gtkfilechooserwidget.c:5020
|
||||
msgid "Archive"
|
||||
msgstr "Архива"
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:5020
|
||||
#: gtk/gtkfilechooserwidget.c:5021
|
||||
msgid "Markup"
|
||||
msgstr "Означавање"
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:5021 gtk/gtkfilechooserwidget.c:5022
|
||||
#: gtk/gtkfilechooserwidget.c:5022 gtk/gtkfilechooserwidget.c:5023
|
||||
msgid "Text"
|
||||
msgstr "Текст"
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:5024
|
||||
#: gtk/gtkfilechooserwidget.c:5025
|
||||
msgid "Video"
|
||||
msgstr "Видео"
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:5025
|
||||
#: gtk/gtkfilechooserwidget.c:5026
|
||||
msgid "Contacts"
|
||||
msgstr "Контакти"
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:5026
|
||||
#: gtk/gtkfilechooserwidget.c:5027
|
||||
msgid "Calendar"
|
||||
msgstr "Календар"
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:5027
|
||||
#: gtk/gtkfilechooserwidget.c:5028
|
||||
msgid "Document"
|
||||
msgstr "Документ"
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:5028
|
||||
#: gtk/gtkfilechooserwidget.c:5029
|
||||
msgid "Presentation"
|
||||
msgstr "Презентација"
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:5029
|
||||
#: gtk/gtkfilechooserwidget.c:5030
|
||||
msgid "Spreadsheet"
|
||||
msgstr "Табела"
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:5060 gtk/gtkfilechooserwidget.c:5249
|
||||
#: gtk/gtkfilechooserwidget.c:5061 gtk/gtkfilechooserwidget.c:5250
|
||||
#: gtk/inspector/prop-editor.c:1689
|
||||
msgid "Unknown"
|
||||
msgstr "Непознато"
|
||||
|
||||
# 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"
|
||||
msgstr "Лична фасцикла"
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:5785
|
||||
#: gtk/gtkfilechooserwidget.c:5786
|
||||
msgid "Cannot change to folder because it is not local"
|
||||
msgstr "Не могу да уђем у фасциклу зато што није локална"
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:6571 gtk/gtkprintunixdialog.c:665
|
||||
#: gtk/gtkfilechooserwidget.c:6572 gtk/gtkprintunixdialog.c:665
|
||||
#, c-format
|
||||
msgid "A file named “%s” already exists. Do you want to replace it?"
|
||||
msgstr "Датотека под називом „%s“ већ постоји. Да ли желите да је замените?"
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:6574 gtk/gtkprintunixdialog.c:669
|
||||
#: gtk/gtkfilechooserwidget.c:6575 gtk/gtkprintunixdialog.c:669
|
||||
#, c-format
|
||||
msgid ""
|
||||
"The file already exists in “%s”. Replacing it will overwrite its contents."
|
||||
msgstr "Датотека већ постоји у „%s“. Ако је замените преписаћете њен садржај."
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:6579 gtk/gtkprintunixdialog.c:677
|
||||
#: gtk/gtkfilechooserwidget.c:6580 gtk/gtkprintunixdialog.c:677
|
||||
msgid "_Replace"
|
||||
msgstr "_Замени"
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:6798
|
||||
#: gtk/gtkfilechooserwidget.c:6799
|
||||
msgid "You do not have access to the specified folder."
|
||||
msgstr "Немате овлашћења за приступ наведеној фасцикли."
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:7421
|
||||
#: gtk/gtkfilechooserwidget.c:7422
|
||||
msgid "Could not send the search request"
|
||||
msgstr "Не могу да пошаљем захтев претраге"
|
||||
|
||||
# Треба проверити на шта се односи.
|
||||
#: gtk/gtkfilechooserwidget.c:7709
|
||||
#: gtk/gtkfilechooserwidget.c:7710
|
||||
msgid "Accessed"
|
||||
msgstr "Датум приступа"
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:8829 gtk/ui/gtkfilechooserwidget.ui:89
|
||||
#: gtk/gtkfilechooserwidget.c:8830 gtk/ui/gtkfilechooserwidget.ui:89
|
||||
msgid "Create Folder"
|
||||
msgstr "Направи фасциклу"
|
||||
|
||||
@ -2794,30 +2796,30 @@ msgctxt "input method menu"
|
||||
msgid "None"
|
||||
msgstr "Ништа"
|
||||
|
||||
#: gtk/gtkimmulticontext.c:615
|
||||
#: gtk/gtkimmulticontext.c:607
|
||||
msgctxt "input method menu"
|
||||
msgid "System"
|
||||
msgstr "Систем"
|
||||
|
||||
#: gtk/gtkimmulticontext.c:694
|
||||
#: gtk/gtkimmulticontext.c:686
|
||||
#, c-format
|
||||
msgctxt "input method menu"
|
||||
msgid "System (%s)"
|
||||
msgstr "Систем (%s)"
|
||||
|
||||
#: gtk/gtkinfobar.c:1307 gtk/gtkmessagedialog.c:385
|
||||
#: gtk/gtkinfobar.c:1307 gtk/gtkmessagedialog.c:386
|
||||
msgid "Information"
|
||||
msgstr "Обавештење"
|
||||
|
||||
#: gtk/gtkinfobar.c:1311 gtk/gtkmessagedialog.c:389
|
||||
#: gtk/gtkinfobar.c:1311 gtk/gtkmessagedialog.c:390
|
||||
msgid "Question"
|
||||
msgstr "Питање"
|
||||
|
||||
#: gtk/gtkinfobar.c:1315 gtk/gtkmessagedialog.c:393
|
||||
#: gtk/gtkinfobar.c:1315 gtk/gtkmessagedialog.c:394
|
||||
msgid "Warning"
|
||||
msgstr "Упозорење"
|
||||
|
||||
#: gtk/gtkinfobar.c:1319 gtk/gtkmessagedialog.c:397
|
||||
#: gtk/gtkinfobar.c:1319 gtk/gtkmessagedialog.c:398
|
||||
msgid "Error"
|
||||
msgstr "Грешка"
|
||||
|
||||
@ -2975,81 +2977,81 @@ msgstr "Приказује Гтк+ опције"
|
||||
msgid "default:LTR"
|
||||
msgstr "default:LTR"
|
||||
|
||||
#: gtk/gtkmessagedialog.c:956
|
||||
#: gtk/gtkmessagedialog.c:975
|
||||
msgid "_No"
|
||||
msgstr "_Не"
|
||||
|
||||
#: gtk/gtkmessagedialog.c:957
|
||||
#: gtk/gtkmessagedialog.c:976
|
||||
msgid "_Yes"
|
||||
msgstr "_Да"
|
||||
|
||||
#: gtk/gtkmountoperation.c:595
|
||||
#: gtk/gtkmountoperation.c:600
|
||||
msgid "Co_nnect"
|
||||
msgstr "По_вежи се"
|
||||
|
||||
#: gtk/gtkmountoperation.c:668
|
||||
#: gtk/gtkmountoperation.c:673
|
||||
msgid "Connect As"
|
||||
msgstr "Повежи се као"
|
||||
|
||||
#: gtk/gtkmountoperation.c:677
|
||||
#: gtk/gtkmountoperation.c:682
|
||||
msgid "_Anonymous"
|
||||
msgstr "_Безимено"
|
||||
|
||||
#: gtk/gtkmountoperation.c:686
|
||||
#: gtk/gtkmountoperation.c:691
|
||||
msgid "Registered U_ser"
|
||||
msgstr "Као уписани _корисник"
|
||||
|
||||
#: gtk/gtkmountoperation.c:697
|
||||
#: gtk/gtkmountoperation.c:702
|
||||
msgid "_Username"
|
||||
msgstr "_Корисничко име"
|
||||
|
||||
#: gtk/gtkmountoperation.c:702
|
||||
#: gtk/gtkmountoperation.c:707
|
||||
msgid "_Domain"
|
||||
msgstr "_Домен"
|
||||
|
||||
#: gtk/gtkmountoperation.c:711
|
||||
#: gtk/gtkmountoperation.c:716
|
||||
msgid "Volume type"
|
||||
msgstr "Врста јачине звука"
|
||||
|
||||
#: gtk/gtkmountoperation.c:721
|
||||
#: gtk/gtkmountoperation.c:726
|
||||
msgid "_Hidden"
|
||||
msgstr "_Скривен"
|
||||
|
||||
#: gtk/gtkmountoperation.c:724
|
||||
#: gtk/gtkmountoperation.c:729
|
||||
msgid "_Windows system"
|
||||
msgstr "_Систем прозора"
|
||||
|
||||
#: gtk/gtkmountoperation.c:727
|
||||
#: gtk/gtkmountoperation.c:732
|
||||
msgid "_PIM"
|
||||
msgstr "_ПИМ"
|
||||
|
||||
#: gtk/gtkmountoperation.c:733
|
||||
#: gtk/gtkmountoperation.c:738
|
||||
msgid "_Password"
|
||||
msgstr "_Лозинка"
|
||||
|
||||
#: gtk/gtkmountoperation.c:755
|
||||
#: gtk/gtkmountoperation.c:760
|
||||
msgid "Forget password _immediately"
|
||||
msgstr "_Одмах заборави лозинку"
|
||||
|
||||
#: gtk/gtkmountoperation.c:765
|
||||
#: gtk/gtkmountoperation.c:770
|
||||
msgid "Remember password until you _logout"
|
||||
msgstr "Запамти лозинку _до одјављивања"
|
||||
|
||||
#: gtk/gtkmountoperation.c:775
|
||||
#: gtk/gtkmountoperation.c:780
|
||||
msgid "Remember _forever"
|
||||
msgstr "Запамти _заувек"
|
||||
|
||||
#: gtk/gtkmountoperation.c:1170
|
||||
#: gtk/gtkmountoperation.c:1175
|
||||
#, c-format
|
||||
msgid "Unknown Application (PID %d)"
|
||||
msgstr "Непознат програм (ПИБ %d)"
|
||||
|
||||
#: gtk/gtkmountoperation.c:1355
|
||||
#: gtk/gtkmountoperation.c:1360
|
||||
#, c-format
|
||||
msgid "Unable to end process"
|
||||
msgstr "Не могу да окончам процес"
|
||||
|
||||
#: gtk/gtkmountoperation.c:1389
|
||||
#: gtk/gtkmountoperation.c:1394
|
||||
msgid "_End Process"
|
||||
msgstr "_Окончај процес"
|
||||
|
||||
@ -3125,7 +3127,7 @@ msgstr "Управљај произвољним величинама…"
|
||||
msgid "Page Setup"
|
||||
msgstr "Поставке странице"
|
||||
|
||||
#: gtk/gtkpathbar.c:1571
|
||||
#: gtk/gtkpathbar.c:1572
|
||||
msgid "File System Root"
|
||||
msgstr "Корен система датотека"
|
||||
|
||||
@ -3633,42 +3635,42 @@ msgstr "Прикупљам податке о штампачу…"
|
||||
#. * multiple pages on a sheet when printing
|
||||
#.
|
||||
#: gtk/gtkprintunixdialog.c:3120
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5709
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5736
|
||||
msgid "Left to right, top to bottom"
|
||||
msgstr "С лева на десно, одозго на доле"
|
||||
|
||||
#: gtk/gtkprintunixdialog.c:3120
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5709
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5736
|
||||
msgid "Left to right, bottom to top"
|
||||
msgstr "С лева на десно, одоздо на горе"
|
||||
|
||||
#: gtk/gtkprintunixdialog.c:3121
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5710
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5737
|
||||
msgid "Right to left, top to bottom"
|
||||
msgstr "С десна на лево, одозго на доле"
|
||||
|
||||
#: gtk/gtkprintunixdialog.c:3121
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5710
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5737
|
||||
msgid "Right to left, bottom to top"
|
||||
msgstr "С десна на лево, одоздо на горе"
|
||||
|
||||
#: gtk/gtkprintunixdialog.c:3122
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5711
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5738
|
||||
msgid "Top to bottom, left to right"
|
||||
msgstr "Одозго на доле, с лева на десно"
|
||||
|
||||
#: gtk/gtkprintunixdialog.c:3122
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5711
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5738
|
||||
msgid "Top to bottom, right to left"
|
||||
msgstr "Одозго на доле, с десна на лево"
|
||||
|
||||
#: gtk/gtkprintunixdialog.c:3123
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5712
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5739
|
||||
msgid "Bottom to top, left to right"
|
||||
msgstr "Одоздо на горе, с лева на десно"
|
||||
|
||||
#: gtk/gtkprintunixdialog.c:3123
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5712
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5739
|
||||
msgid "Bottom to top, right to left"
|
||||
msgstr "Одоздо на горе, с десна на лево"
|
||||
|
||||
@ -4181,8 +4183,6 @@ msgid "Pango Fontmap"
|
||||
msgstr "Панго словна мапа"
|
||||
|
||||
#: gtk/inspector/general.ui:136
|
||||
#| msgctxt "input method menu"
|
||||
#| msgid "X Input Method"
|
||||
msgid "Input Method"
|
||||
msgstr "Начин уноса"
|
||||
|
||||
@ -7133,7 +7133,6 @@ msgstr "Услуге"
|
||||
|
||||
#. used for the application menu on MacOS. %s is replaced with the application name.
|
||||
#: gtk/ui/gtkapplication-quartz.ui:29
|
||||
#, c-format
|
||||
msgid "Hide %s"
|
||||
msgstr "Сакриј „%s“"
|
||||
|
||||
@ -7149,7 +7148,6 @@ msgstr "Покажи све"
|
||||
|
||||
#. used for the application menu on MacOS. %s is replaced with the application name.
|
||||
#: gtk/ui/gtkapplication-quartz.ui:49
|
||||
#, c-format
|
||||
msgid "Quit %s"
|
||||
msgstr "Напусти „%s“"
|
||||
|
||||
@ -7399,7 +7397,7 @@ msgstr "_Све странице"
|
||||
|
||||
#: gtk/ui/gtkprintunixdialog.ui:216
|
||||
msgid "C_urrent Page"
|
||||
msgstr "_Тренутну странице"
|
||||
msgstr "Трен_утну страницу"
|
||||
|
||||
#: gtk/ui/gtkprintunixdialog.ui:233
|
||||
msgid "Se_lection"
|
||||
@ -7970,241 +7968,241 @@ msgstr "Одбија послове"
|
||||
msgid "; "
|
||||
msgstr "; "
|
||||
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4655
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4722
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4682
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4749
|
||||
msgctxt "printing option"
|
||||
msgid "Two Sided"
|
||||
msgstr "Двострано"
|
||||
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4656
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4683
|
||||
msgctxt "printing option"
|
||||
msgid "Paper Type"
|
||||
msgstr "Врста папира"
|
||||
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4657
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4684
|
||||
msgctxt "printing option"
|
||||
msgid "Paper Source"
|
||||
msgstr "Извор папира"
|
||||
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4658
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4723
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4685
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4750
|
||||
msgctxt "printing option"
|
||||
msgid "Output Tray"
|
||||
msgstr "Прихватна фиока"
|
||||
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4659
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4686
|
||||
msgctxt "printing option"
|
||||
msgid "Resolution"
|
||||
msgstr "Резолуција"
|
||||
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4660
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4687
|
||||
msgctxt "printing option"
|
||||
msgid "GhostScript pre-filtering"
|
||||
msgstr "Гост скрипт пред-филтрирање"
|
||||
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4669
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4696
|
||||
msgctxt "printing option value"
|
||||
msgid "One Sided"
|
||||
msgstr "Једнострано"
|
||||
|
||||
#. Translators: this is an option of "Two Sided"
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4671
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4698
|
||||
msgctxt "printing option value"
|
||||
msgid "Long Edge (Standard)"
|
||||
msgstr "По дужој страни (стандардно)"
|
||||
|
||||
#. Translators: this is an option of "Two Sided"
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4673
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4700
|
||||
msgctxt "printing option value"
|
||||
msgid "Short Edge (Flip)"
|
||||
msgstr "По краћој страни (окренуто)"
|
||||
|
||||
#. Translators: this is an option of "Paper Source"
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4675
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4677
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4685
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4702
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4704
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4712
|
||||
msgctxt "printing option value"
|
||||
msgid "Auto Select"
|
||||
msgstr "Сам одреди"
|
||||
|
||||
#. Translators: this is an option of "Paper Source"
|
||||
#. Translators: this is an option of "Resolution"
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4679
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4681
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4683
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4687
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4706
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4708
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4710
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4714
|
||||
msgctxt "printing option value"
|
||||
msgid "Printer Default"
|
||||
msgstr "Подразумевано"
|
||||
|
||||
#. Translators: this is an option of "GhostScript"
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4689
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4716
|
||||
msgctxt "printing option value"
|
||||
msgid "Embed GhostScript fonts only"
|
||||
msgstr "Само угнеждени Гост скрипт словни ликови"
|
||||
|
||||
#. Translators: this is an option of "GhostScript"
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4691
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4718
|
||||
msgctxt "printing option value"
|
||||
msgid "Convert to PS level 1"
|
||||
msgstr "Преведи у 1° ниво постскрипта"
|
||||
|
||||
#. Translators: this is an option of "GhostScript"
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4693
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4720
|
||||
msgctxt "printing option value"
|
||||
msgid "Convert to PS level 2"
|
||||
msgstr "Преведи у 2° ниво постскрипта"
|
||||
|
||||
#. Translators: this is an option of "GhostScript"
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4695
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4722
|
||||
msgctxt "printing option value"
|
||||
msgid "No pre-filtering"
|
||||
msgstr "Без пред-филтрирања"
|
||||
|
||||
#. Translators: "Miscellaneous" is the label for a button, that opens
|
||||
#. up an extra panel of settings in a print dialog.
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4704
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4731
|
||||
msgctxt "printing option group"
|
||||
msgid "Miscellaneous"
|
||||
msgstr "Додатна подешавања"
|
||||
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4731
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4758
|
||||
msgctxt "sides"
|
||||
msgid "One Sided"
|
||||
msgstr "Једнострано"
|
||||
|
||||
#. Translators: this is an option of "Two Sided"
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4733
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4760
|
||||
msgctxt "sides"
|
||||
msgid "Long Edge (Standard)"
|
||||
msgstr "По дужој ивици (стандардно)"
|
||||
|
||||
#. Translators: this is an option of "Two Sided"
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4735
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4762
|
||||
msgctxt "sides"
|
||||
msgid "Short Edge (Flip)"
|
||||
msgstr "По краћој ивици (окренуто)"
|
||||
|
||||
#. Translators: Top output bin
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4738
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4765
|
||||
msgctxt "output-bin"
|
||||
msgid "Top Bin"
|
||||
msgstr "Горња корпа"
|
||||
|
||||
#. Translators: Middle output bin
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4740
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4767
|
||||
msgctxt "output-bin"
|
||||
msgid "Middle Bin"
|
||||
msgstr "Средња корпа"
|
||||
|
||||
#. Translators: Bottom output bin
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4742
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4769
|
||||
msgctxt "output-bin"
|
||||
msgid "Bottom Bin"
|
||||
msgstr "Доња корпа"
|
||||
|
||||
#. Translators: Side output bin
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4744
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4771
|
||||
msgctxt "output-bin"
|
||||
msgid "Side Bin"
|
||||
msgstr "Корпа са стране"
|
||||
|
||||
#. Translators: Left output bin
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4746
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4773
|
||||
msgctxt "output-bin"
|
||||
msgid "Left Bin"
|
||||
msgstr "Лева корпа"
|
||||
|
||||
#. Translators: Right output bin
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4748
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4775
|
||||
msgctxt "output-bin"
|
||||
msgid "Right Bin"
|
||||
msgstr "Десна корпа"
|
||||
|
||||
#. Translators: Center output bin
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4750
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4777
|
||||
msgctxt "output-bin"
|
||||
msgid "Center Bin"
|
||||
msgstr "Корпа на средини"
|
||||
|
||||
#. Translators: Rear output bin
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4752
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4779
|
||||
msgctxt "output-bin"
|
||||
msgid "Rear Bin"
|
||||
msgstr "Задња корпа"
|
||||
|
||||
#. 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"
|
||||
msgid "Face Up Bin"
|
||||
msgstr "Корпа на лицу"
|
||||
|
||||
#. 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"
|
||||
msgid "Face Down Bin"
|
||||
msgstr "Корпа на наличју"
|
||||
|
||||
#. Translators: Large capacity output bin
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4758
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4785
|
||||
msgctxt "output-bin"
|
||||
msgid "Large Capacity Bin"
|
||||
msgstr "Корпа велике запремине"
|
||||
|
||||
#. Translators: Output stacker number %d
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4780
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4807
|
||||
#, c-format
|
||||
msgctxt "output-bin"
|
||||
msgid "Stacker %d"
|
||||
msgstr "Одлагач %d"
|
||||
|
||||
#. Translators: Output mailbox number %d
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4784
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4811
|
||||
#, c-format
|
||||
msgctxt "output-bin"
|
||||
msgid "Mailbox %d"
|
||||
msgstr "Поштанско сандуче %d"
|
||||
|
||||
#. Translators: Private mailbox
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4788
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4815
|
||||
msgctxt "output-bin"
|
||||
msgid "My Mailbox"
|
||||
msgstr "Моје сандуче"
|
||||
|
||||
#. Translators: Output tray number %d
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4792
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:4819
|
||||
#, c-format
|
||||
msgctxt "output-bin"
|
||||
msgid "Tray %d"
|
||||
msgstr "Касета %d"
|
||||
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5263
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5290
|
||||
msgid "Printer Default"
|
||||
msgstr "Подразумевано"
|
||||
|
||||
#. Translators: These strings name the possible values of the
|
||||
#. * job priority option in the print dialog
|
||||
#.
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5704
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5731
|
||||
msgid "Urgent"
|
||||
msgstr "Хитно"
|
||||
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5704
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5731
|
||||
msgid "High"
|
||||
msgstr "Важно"
|
||||
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5704
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5731
|
||||
msgid "Medium"
|
||||
msgstr "Средње"
|
||||
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5704
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5731
|
||||
msgid "Low"
|
||||
msgstr "Небитно"
|
||||
|
||||
#. Translators, this string is used to label the job priority option
|
||||
#. * in the print dialog
|
||||
#.
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5734
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5761
|
||||
msgid "Job Priority"
|
||||
msgstr "Важност"
|
||||
|
||||
@ -8212,41 +8210,41 @@ msgstr "Важност"
|
||||
#. Translators, this string is used to label the billing info entry
|
||||
#. * in the print dialog
|
||||
#.
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5745
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5772
|
||||
msgid "Billing Info"
|
||||
msgstr "Фактурисање"
|
||||
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5769
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5796
|
||||
msgctxt "cover page"
|
||||
msgid "None"
|
||||
msgstr "Ништа"
|
||||
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5770
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5797
|
||||
msgctxt "cover page"
|
||||
msgid "Classified"
|
||||
msgstr "Категорисано"
|
||||
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5771
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5798
|
||||
msgctxt "cover page"
|
||||
msgid "Confidential"
|
||||
msgstr "Поверљиво"
|
||||
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5772
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5799
|
||||
msgctxt "cover page"
|
||||
msgid "Secret"
|
||||
msgstr "Тајно"
|
||||
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5773
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5800
|
||||
msgctxt "cover page"
|
||||
msgid "Standard"
|
||||
msgstr "Обично"
|
||||
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5774
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5801
|
||||
msgctxt "cover page"
|
||||
msgid "Top Secret"
|
||||
msgstr "Строго поверљиво"
|
||||
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5775
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5802
|
||||
msgctxt "cover page"
|
||||
msgid "Unclassified"
|
||||
msgstr "Некатегорисано"
|
||||
@ -8254,7 +8252,7 @@ msgstr "Некатегорисано"
|
||||
#. Translators, this string is used to label the pages-per-sheet option
|
||||
#. * in the print dialog
|
||||
#.
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5787
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5814
|
||||
msgctxt "printer option"
|
||||
msgid "Pages per Sheet"
|
||||
msgstr "Страна на листу"
|
||||
@ -8262,7 +8260,7 @@ msgstr "Страна на листу"
|
||||
#. Translators, this string is used to label the option in the print
|
||||
#. * dialog that controls in what order multiple pages are arranged
|
||||
#.
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5804
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5831
|
||||
msgctxt "printer option"
|
||||
msgid "Page Ordering"
|
||||
msgstr "Слагање страна"
|
||||
@ -8270,7 +8268,7 @@ msgstr "Слагање страна"
|
||||
#. Translators, this is the label used for the option in the print
|
||||
#. * dialog that controls the front cover page.
|
||||
#.
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5846
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5873
|
||||
msgctxt "printer option"
|
||||
msgid "Before"
|
||||
msgstr "Пре"
|
||||
@ -8278,7 +8276,7 @@ msgstr "Пре"
|
||||
#. Translators, this is the label used for the option in the print
|
||||
#. * dialog that controls the back cover page.
|
||||
#.
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5861
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5888
|
||||
msgctxt "printer option"
|
||||
msgid "After"
|
||||
msgstr "После"
|
||||
@ -8287,7 +8285,7 @@ msgstr "После"
|
||||
#. * a print job is printed. Possible values are 'now', a specified time,
|
||||
#. * or 'on hold'
|
||||
#.
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5881
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5908
|
||||
msgctxt "printer option"
|
||||
msgid "Print at"
|
||||
msgstr "Закажи штампу"
|
||||
@ -8295,7 +8293,7 @@ msgstr "Закажи штампу"
|
||||
#. Translators: this is the name of the option that allows the user
|
||||
#. * to specify a time when a print job will be printed.
|
||||
#.
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5892
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5919
|
||||
msgctxt "printer option"
|
||||
msgid "Print at time"
|
||||
msgstr "Штампај у"
|
||||
@ -8305,18 +8303,18 @@ msgstr "Штампај у"
|
||||
#. * the width and height in points. E.g: "Custom
|
||||
#. * 230.4x142.9"
|
||||
#.
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5937
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:5964
|
||||
#, c-format
|
||||
msgid "Custom %s×%s"
|
||||
msgstr "Произвољно %s×%s"
|
||||
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:6047
|
||||
#: modules/printbackends/cups/gtkprintbackendcups.c:6074
|
||||
msgctxt "printer option"
|
||||
msgid "Printer Profile"
|
||||
msgstr "Профил штампача"
|
||||
|
||||
#. 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"
|
||||
msgid "Unavailable"
|
||||
msgstr "Недоступно"
|
||||
|
@ -5,5 +5,5 @@
|
||||
}
|
||||
|
||||
#reference2 {
|
||||
background: url("marble.xpm") no-repeat;
|
||||
background: url("marble.png") no-repeat;
|
||||
}
|
||||
|
@ -25,7 +25,7 @@
|
||||
<object class="GtkImage" id="image2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="file">marble.xpm</property>
|
||||
<property name="file">marble.png</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
|
BIN
testsuite/reftests/marble.png
Normal file
BIN
testsuite/reftests/marble.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 38 KiB |
File diff suppressed because one or more lines are too long
@ -305,7 +305,7 @@ test_data = [
|
||||
'link-coloring.css',
|
||||
'link-coloring.ref.ui',
|
||||
'link-coloring.ui',
|
||||
'marble.xpm',
|
||||
'marble.png',
|
||||
'messagedialog-secondarytext.ui',
|
||||
'messagedialog-secondarytext.ref.ui',
|
||||
'misc-alignment.css',
|
||||
|
Loading…
Reference in New Issue
Block a user