Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8b49ebe34f |
@@ -438,10 +438,11 @@ gdk_display_dispose (GObject *object)
|
||||
g_clear_pointer (&display->egl_dmabuf_formats, gdk_dmabuf_formats_unref);
|
||||
g_clear_pointer (&display->egl_internal_formats, gdk_dmabuf_formats_unref);
|
||||
#ifdef GDK_RENDERING_VULKAN
|
||||
if (display->vk_instance)
|
||||
gdk_display_destroy_vulkan_instance (display);
|
||||
g_assert (display->vk_dmabuf_formats == NULL);
|
||||
g_clear_error (&display->vulkan_error);
|
||||
if (display->vk_dmabuf_formats)
|
||||
{
|
||||
gdk_display_unref_vulkan (display);
|
||||
g_assert (display->vk_dmabuf_formats == NULL);
|
||||
}
|
||||
#endif
|
||||
|
||||
g_clear_object (&priv->gl_context);
|
||||
@@ -1285,53 +1286,6 @@ gdk_display_get_keymap (GdkDisplay *display)
|
||||
return GDK_DISPLAY_GET_CLASS (display)->get_keymap (display);
|
||||
}
|
||||
|
||||
/*< private >
|
||||
* gdk_display_prepare_vulkan:
|
||||
* @self: a `GdkDisplay`
|
||||
* @error: return location for a `GError`
|
||||
*
|
||||
* Checks that Vulkan is available for @self and ensures that it is
|
||||
* properly initialized.
|
||||
*
|
||||
* When this fails, an @error will be set describing the error and this
|
||||
* function returns %FALSE.
|
||||
*
|
||||
* Note that even if this function succeeds, creating a `GdkVulkanContext`
|
||||
* may still fail.
|
||||
*
|
||||
* This function is idempotent. Calling it multiple times will just
|
||||
* return the same value or error.
|
||||
*
|
||||
* You never need to call this function, GDK will call it automatically
|
||||
* as needed.
|
||||
*
|
||||
* Returns: %TRUE if the display supports Vulkan
|
||||
*/
|
||||
gboolean
|
||||
gdk_display_prepare_vulkan (GdkDisplay *self,
|
||||
GError **error)
|
||||
{
|
||||
g_return_val_if_fail (GDK_IS_DISPLAY (self), FALSE);
|
||||
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
|
||||
|
||||
#ifdef GDK_RENDERING_VULKAN
|
||||
if (!self->vk_instance && !self->vulkan_error)
|
||||
gdk_display_create_vulkan_instance (self, &self->vulkan_error);
|
||||
|
||||
if (self->vk_instance == NULL)
|
||||
{
|
||||
if (error)
|
||||
*error = g_error_copy (self->vulkan_error);
|
||||
}
|
||||
|
||||
return self->vk_instance != NULL;
|
||||
#else
|
||||
g_set_error (error, GDK_VULKAN_ERROR, GDK_VULKAN_ERROR_UNSUPPORTED,
|
||||
"GTK was built without Vulkan support");
|
||||
return FALSE;
|
||||
#endif
|
||||
}
|
||||
|
||||
/*<private>
|
||||
* gdk_display_create_vulkan_context:
|
||||
* @self: a `GdkDisplay`
|
||||
|
||||
@@ -126,7 +126,7 @@ struct _GdkDisplay
|
||||
GdkDmabufFormats *vk_dmabuf_formats;
|
||||
GdkVulkanFeatures vulkan_features;
|
||||
|
||||
GError *vulkan_error;
|
||||
guint vulkan_refcount;
|
||||
#endif /* GDK_RENDERING_VULKAN */
|
||||
|
||||
/* egl info */
|
||||
@@ -239,8 +239,6 @@ void _gdk_display_unpause_events (GdkDisplay *display
|
||||
|
||||
void gdk_display_init_dmabuf (GdkDisplay *self);
|
||||
|
||||
gboolean gdk_display_prepare_vulkan (GdkDisplay *self,
|
||||
GError **error);
|
||||
gboolean gdk_display_has_vulkan_feature (GdkDisplay *self,
|
||||
GdkVulkanFeatures feature);
|
||||
GdkVulkanContext * gdk_display_create_vulkan_context (GdkDisplay *self,
|
||||
|
||||
@@ -367,6 +367,7 @@ gdk_vulkan_context_dispose (GObject *gobject)
|
||||
{
|
||||
GdkVulkanContext *context = GDK_VULKAN_CONTEXT (gobject);
|
||||
GdkVulkanContextPrivate *priv = gdk_vulkan_context_get_instance_private (context);
|
||||
GdkDisplay *display;
|
||||
VkDevice device;
|
||||
guint i;
|
||||
|
||||
@@ -396,6 +397,11 @@ gdk_vulkan_context_dispose (GObject *gobject)
|
||||
priv->surface = VK_NULL_HANDLE;
|
||||
}
|
||||
|
||||
/* display will be unset in gdk_draw_context_dispose() */
|
||||
display = gdk_draw_context_get_display (GDK_DRAW_CONTEXT (context));
|
||||
if (display && priv->vulkan_ref)
|
||||
gdk_display_unref_vulkan (display);
|
||||
|
||||
G_OBJECT_CLASS (gdk_vulkan_context_parent_class)->dispose (gobject);
|
||||
}
|
||||
|
||||
@@ -881,7 +887,8 @@ gdk_vulkan_context_real_init (GInitable *initable,
|
||||
VkBool32 supported;
|
||||
uint32_t i;
|
||||
|
||||
if (!gdk_display_prepare_vulkan (display, error))
|
||||
priv->vulkan_ref = gdk_display_init_vulkan (display, error);
|
||||
if (!priv->vulkan_ref)
|
||||
return FALSE;
|
||||
|
||||
if (surface == NULL)
|
||||
@@ -1661,7 +1668,7 @@ gdk_vulkan_debug_report (VkDebugReportFlagsEXT flags,
|
||||
return VK_FALSE;
|
||||
}
|
||||
|
||||
gboolean
|
||||
static gboolean
|
||||
gdk_display_create_vulkan_instance (GdkDisplay *display,
|
||||
GError **error)
|
||||
{
|
||||
@@ -1671,8 +1678,6 @@ gdk_display_create_vulkan_instance (GdkDisplay *display,
|
||||
gboolean have_debug_report = FALSE;
|
||||
VkResult res;
|
||||
|
||||
g_assert (display->vk_instance == NULL);
|
||||
|
||||
if (!gdk_has_feature (GDK_FEATURE_VULKAN))
|
||||
{
|
||||
g_set_error_literal (error, GDK_VULKAN_ERROR, GDK_VULKAN_ERROR_NOT_AVAILABLE,
|
||||
@@ -1799,16 +1804,66 @@ gdk_display_create_vulkan_instance (GdkDisplay *display,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* gdk_display_init_vulkan:
|
||||
* @display: a display
|
||||
* @error: A potential error message
|
||||
*
|
||||
* Initializes Vulkan and returns an error on failure.
|
||||
*
|
||||
* If Vulkan is already initialized, this function returns
|
||||
* %TRUE and increases the refcount of the existing instance.
|
||||
*
|
||||
* You need to gdk_display_unref_vulkan() to close it again.
|
||||
*
|
||||
* Returns: %TRUE if Vulkan is initialized.
|
||||
**/
|
||||
gboolean
|
||||
gdk_display_init_vulkan (GdkDisplay *display,
|
||||
GError **error)
|
||||
{
|
||||
if (display->vulkan_refcount == 0)
|
||||
{
|
||||
if (!gdk_display_create_vulkan_instance (display, error))
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
display->vulkan_refcount++;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* gdk_display_ref_vulkan:
|
||||
* @display: a GdkDisplay
|
||||
*
|
||||
* Increases the refcount of an existing Vulkan instance.
|
||||
*
|
||||
* This function must not be called if Vulkan may not be initialized
|
||||
* yet, call gdk_display_init_vulkan() in that case.
|
||||
**/
|
||||
void
|
||||
gdk_display_destroy_vulkan_instance (GdkDisplay *display)
|
||||
gdk_display_ref_vulkan (GdkDisplay *display)
|
||||
{
|
||||
g_assert (display->vulkan_refcount > 0);
|
||||
|
||||
display->vulkan_refcount++;
|
||||
}
|
||||
|
||||
void
|
||||
gdk_display_unref_vulkan (GdkDisplay *display)
|
||||
{
|
||||
GHashTableIter iter;
|
||||
gpointer key, value;
|
||||
|
||||
g_assert (GDK_IS_DISPLAY (display));
|
||||
g_assert (display->vk_instance != NULL);
|
||||
g_return_if_fail (GDK_IS_DISPLAY (display));
|
||||
g_return_if_fail (display->vulkan_refcount > 0);
|
||||
|
||||
GDK_DEBUG (VULKAN, "Destroy Vulkan instance");
|
||||
display->vulkan_refcount--;
|
||||
if (display->vulkan_refcount > 0)
|
||||
return;
|
||||
|
||||
GDK_DEBUG (VULKAN, "Closing Vulkan instance");
|
||||
display->vulkan_features = 0;
|
||||
g_clear_pointer (&display->vk_dmabuf_formats, gdk_dmabuf_formats_unref);
|
||||
g_hash_table_iter_init (&iter, display->vk_shader_modules);
|
||||
@@ -1886,9 +1941,11 @@ gdk_vulkan_init_dmabuf (GdkDisplay *display)
|
||||
return;
|
||||
|
||||
if (!gdk_has_feature (GDK_FEATURE_DMABUF) ||
|
||||
!gdk_display_prepare_vulkan (display, NULL) ||
|
||||
(display->vulkan_features & GDK_VULKAN_FEATURE_DMABUF) == 0)
|
||||
return;
|
||||
!gdk_display_init_vulkan (display, NULL) ||
|
||||
((display->vulkan_features & GDK_VULKAN_FEATURE_DMABUF) == 0))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
vulkan_builder = gdk_dmabuf_formats_builder_new ();
|
||||
|
||||
|
||||
@@ -73,9 +73,10 @@ gdk_vulkan_handle_result (VkResult res,
|
||||
|
||||
#define GDK_VK_CHECK(func, ...) gdk_vulkan_handle_result (func (__VA_ARGS__), G_STRINGIFY (func))
|
||||
|
||||
gboolean gdk_display_create_vulkan_instance (GdkDisplay *display,
|
||||
gboolean gdk_display_init_vulkan (GdkDisplay *display,
|
||||
GError **error);
|
||||
void gdk_display_destroy_vulkan_instance (GdkDisplay *display);
|
||||
void gdk_display_ref_vulkan (GdkDisplay *display);
|
||||
void gdk_display_unref_vulkan (GdkDisplay *display);
|
||||
|
||||
void gdk_vulkan_init_dmabuf (GdkDisplay *display);
|
||||
|
||||
|
||||
@@ -2032,7 +2032,7 @@ init_settings (GdkDisplay *display)
|
||||
if (entry)
|
||||
{
|
||||
char *a = g_variant_print (v, FALSE);
|
||||
g_debug ("Using portal setting for %s %s: %s", schema_str, key, a);
|
||||
g_debug ("Using portal setting for %s %s: %s\n", schema_str, key, a);
|
||||
g_free (a);
|
||||
entry->valid = TRUE;
|
||||
apply_portal_setting (entry, v, display);
|
||||
|
||||
@@ -928,10 +928,6 @@ preferred_changed (GdkWaylandColorSurface *color,
|
||||
{
|
||||
GdkWaylandSurface *self = GDK_WAYLAND_SURFACE (data);
|
||||
|
||||
GDK_DISPLAY_DEBUG (gdk_surface_get_display (GDK_SURFACE (self)), EVENTS,
|
||||
"preferred color state, surface %p color state %s",
|
||||
self, gdk_color_state_get_name (color_state));
|
||||
|
||||
gdk_surface_set_color_state (GDK_SURFACE (self), color_state);
|
||||
|
||||
self->color_state_changed = TRUE;
|
||||
|
||||
@@ -1365,7 +1365,9 @@ modal_timer_proc (HWND hwnd,
|
||||
DWORD time)
|
||||
{
|
||||
int arbitrary_limit = 10;
|
||||
GdkWin32Display *display = GDK_WIN32_DISPLAY (gdk_surface_get_display (GDK_SURFACE (id)));
|
||||
|
||||
/* todo: if we support multiple GdkDisplay's on Windows? */
|
||||
GdkWin32Display *display = GDK_WIN32_DISPLAY (gdk_display_get_default ());
|
||||
|
||||
while (display->display_surface_record->modal_operation_in_progress != GDK_WIN32_MODAL_OP_NONE &&
|
||||
g_main_context_pending (NULL) &&
|
||||
|
||||
@@ -343,6 +343,8 @@ gsk_vulkan_device_finalize (GObject *object)
|
||||
g_clear_pointer (&self->allocators[i], gsk_vulkan_allocator_unref);
|
||||
g_clear_pointer (&self->external_allocator, gsk_vulkan_allocator_unref);
|
||||
|
||||
gdk_display_unref_vulkan (display);
|
||||
|
||||
G_OBJECT_CLASS (gsk_vulkan_device_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
@@ -420,7 +422,7 @@ gsk_vulkan_device_get_for_display (GdkDisplay *display,
|
||||
if (self)
|
||||
return GSK_GPU_DEVICE (g_object_ref (self));
|
||||
|
||||
if (!gdk_display_prepare_vulkan (display, error))
|
||||
if (!gdk_display_init_vulkan (display, error))
|
||||
return NULL;
|
||||
|
||||
self = g_object_new (GSK_TYPE_VULKAN_DEVICE, NULL);
|
||||
|
||||
@@ -653,16 +653,7 @@ vulkan_supported_platform (GdkSurface *surface,
|
||||
VkPhysicalDeviceProperties props;
|
||||
GError *error = NULL;
|
||||
|
||||
#ifdef GDK_WINDOWING_WAYLAND
|
||||
if (!GDK_IS_WAYLAND_DISPLAY (gdk_surface_get_display (surface)) && !as_fallback)
|
||||
{
|
||||
GSK_DEBUG (RENDERER, "Not using '%s': platform is not Wayland",
|
||||
g_type_name (renderer_type));
|
||||
return FALSE;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (!gdk_display_prepare_vulkan (display, &error))
|
||||
if (!gdk_display_init_vulkan (display, &error))
|
||||
{
|
||||
GSK_DEBUG (RENDERER, "Not using Vulkan%s: %s",
|
||||
as_fallback ? " as fallback" : "",
|
||||
@@ -694,7 +685,15 @@ vulkan_supported_platform (GdkSurface *surface,
|
||||
}
|
||||
#endif
|
||||
|
||||
return TRUE;
|
||||
#ifdef GDK_WINDOWING_WAYLAND
|
||||
if (GDK_IS_WAYLAND_DISPLAY (gdk_surface_get_display (surface)))
|
||||
return TRUE;
|
||||
#endif
|
||||
|
||||
GSK_DEBUG (RENDERER, "Not using '%s': platform is not Wayland",
|
||||
g_type_name (renderer_type));
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static GType
|
||||
|
||||
@@ -590,7 +590,6 @@ populate_servers (GtkPlacesView *view)
|
||||
gtk_widget_set_valign (button, GTK_ALIGN_CENTER);
|
||||
gtk_button_set_has_frame (GTK_BUTTON (button), FALSE);
|
||||
gtk_widget_add_css_class (button, "sidebar-button");
|
||||
gtk_widget_set_tooltip_text (button, _("Remove server"));
|
||||
gtk_grid_attach (GTK_GRID (grid), button, 1, 0, 1, 2);
|
||||
|
||||
gtk_list_box_row_set_child (GTK_LIST_BOX_ROW (row), grid);
|
||||
|
||||
@@ -291,7 +291,6 @@ struct _GtkTextPrivate
|
||||
guint propagate_text_width : 1;
|
||||
guint text_handles_enabled : 1;
|
||||
guint enable_undo : 1;
|
||||
guint emoji_chooser_open : 1;
|
||||
};
|
||||
|
||||
struct _GtkTextPasswordHint
|
||||
@@ -3460,7 +3459,7 @@ gtk_text_grab_focus (GtkWidget *widget)
|
||||
if (!GTK_WIDGET_CLASS (gtk_text_parent_class)->grab_focus (GTK_WIDGET (self)))
|
||||
return FALSE;
|
||||
|
||||
if (priv->editable && !priv->in_click && !prev_focus_was_child && !priv->emoji_chooser_open)
|
||||
if (priv->editable && !priv->in_click && !prev_focus_was_child)
|
||||
{
|
||||
g_object_get (gtk_widget_get_settings (widget),
|
||||
"gtk-entry-select-on-focus",
|
||||
@@ -7184,15 +7183,6 @@ gtk_text_get_tabs (GtkText *self)
|
||||
return priv->tabs;
|
||||
}
|
||||
|
||||
static void
|
||||
emoji_chooser_closed (GtkWidget *chooser,
|
||||
GtkText *text)
|
||||
{
|
||||
GtkTextPrivate *priv = gtk_text_get_instance_private (text);
|
||||
|
||||
priv->emoji_chooser_open = 1;
|
||||
}
|
||||
|
||||
static void
|
||||
emoji_picked (GtkEmojiChooser *chooser,
|
||||
const char *text,
|
||||
@@ -7218,7 +7208,6 @@ emoji_picked (GtkEmojiChooser *chooser,
|
||||
static void
|
||||
gtk_text_insert_emoji (GtkText *self)
|
||||
{
|
||||
GtkTextPrivate *priv = gtk_text_get_instance_private (self);
|
||||
GtkWidget *chooser;
|
||||
|
||||
if (gtk_widget_get_ancestor (GTK_WIDGET (self), GTK_TYPE_EMOJI_CHOOSER) != NULL)
|
||||
@@ -7232,11 +7221,10 @@ gtk_text_insert_emoji (GtkText *self)
|
||||
|
||||
gtk_widget_set_parent (chooser, GTK_WIDGET (self));
|
||||
g_signal_connect (chooser, "emoji-picked", G_CALLBACK (emoji_picked), self);
|
||||
g_signal_connect_swapped (chooser, "hide", G_CALLBACK (emoji_chooser_closed), self);
|
||||
g_signal_connect_swapped (chooser, "hide", G_CALLBACK (gtk_text_grab_focus_without_selecting), self);
|
||||
}
|
||||
|
||||
gtk_popover_popup (GTK_POPOVER (chooser));
|
||||
priv->emoji_chooser_open = 1;
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
@@ -577,7 +577,7 @@ init_vulkan (GtkInspectorGeneral *gen)
|
||||
const char *types[] = { "other", "integrated GPU", "discrete GPU", "virtual GPU", "CPU" };
|
||||
GError *error = NULL;
|
||||
|
||||
if (!gdk_display_prepare_vulkan (gen->display, &error))
|
||||
if (!gdk_display_init_vulkan (gen->display, &error))
|
||||
{
|
||||
gtk_label_set_text (GTK_LABEL (gen->vk_device), C_("Vulkan device", "None"));
|
||||
gtk_widget_set_visible (gen->vk_error_row, TRUE);
|
||||
@@ -617,6 +617,8 @@ init_vulkan (GtkInspectorGeneral *gen)
|
||||
add_instance_extensions (gen->vulkan_extensions_list);
|
||||
add_device_extensions (gen->display->vk_physical_device, gen->vulkan_extensions_list);
|
||||
add_layers (gen->vulkan_layers_list);
|
||||
|
||||
gdk_display_unref_vulkan (gen->display);
|
||||
#else
|
||||
gtk_label_set_text (GTK_LABEL (gen->vk_device), C_("Vulkan device", "None"));
|
||||
gtk_widget_set_visible (gen->vk_api_version_row, FALSE);
|
||||
|
||||
@@ -183,13 +183,8 @@ update_allocation (GtkWidget *w,
|
||||
char *size_label;
|
||||
GEnumClass *class;
|
||||
GEnumValue *value;
|
||||
GtkWidget *target;
|
||||
|
||||
target = gtk_widget_get_parent (w);
|
||||
if (target == NULL)
|
||||
target = w;
|
||||
|
||||
if (!gtk_widget_compute_bounds (w, target, &bounds))
|
||||
if (!gtk_widget_compute_bounds (w, gtk_widget_get_parent (w), &bounds))
|
||||
graphene_rect_init (&bounds, 0, 0, 0, 0);
|
||||
|
||||
size_label = g_strdup_printf ("%g × %g +%g +%g",
|
||||
|
||||
@@ -45,7 +45,6 @@
|
||||
#include "gtklabel.h"
|
||||
#include "gtklistitem.h"
|
||||
#include "gtkpopover.h"
|
||||
#include "gtknative.h"
|
||||
#include "gtksettings.h"
|
||||
#include "gtksingleselection.h"
|
||||
#include "gtksignallistitemfactory.h"
|
||||
@@ -133,37 +132,6 @@ object_tree_widget_get_children (GObject *object)
|
||||
return G_LIST_MODEL (gtk_flatten_list_model_new (G_LIST_MODEL (list)));
|
||||
}
|
||||
|
||||
static GObject *
|
||||
object_tree_window_get_parent (GObject *object)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static GListModel *
|
||||
object_tree_native_get_children (GObject *object)
|
||||
{
|
||||
GtkNative *native = GTK_NATIVE (object);
|
||||
GListStore *list;
|
||||
GListModel *sublist;
|
||||
|
||||
list = g_list_store_new (G_TYPE_LIST_MODEL);
|
||||
|
||||
sublist = G_LIST_MODEL (g_list_store_new (G_TYPE_OBJECT));
|
||||
|
||||
if (gtk_native_get_surface (native))
|
||||
g_list_store_append (G_LIST_STORE (sublist), gtk_native_get_surface (native));
|
||||
if (gtk_native_get_renderer (native))
|
||||
g_list_store_append (G_LIST_STORE (sublist), gtk_native_get_renderer (native));
|
||||
g_list_store_append (list, sublist);
|
||||
g_object_unref (sublist);
|
||||
|
||||
sublist = object_tree_widget_get_children (object);
|
||||
g_list_store_append (list, sublist);
|
||||
g_object_unref (sublist);
|
||||
|
||||
return G_LIST_MODEL (gtk_flatten_list_model_new (G_LIST_MODEL (list)));
|
||||
}
|
||||
|
||||
static GListModel *
|
||||
object_tree_tree_model_sort_get_children (GObject *object)
|
||||
{
|
||||
@@ -550,16 +518,6 @@ static const ObjectTreeClassFuncs object_tree_class_funcs[] = {
|
||||
object_tree_widget_get_parent,
|
||||
object_tree_combo_box_get_children
|
||||
},
|
||||
{
|
||||
gtk_window_get_type,
|
||||
object_tree_window_get_parent,
|
||||
object_tree_native_get_children,
|
||||
},
|
||||
{
|
||||
gtk_popover_get_type,
|
||||
object_tree_widget_get_parent,
|
||||
object_tree_native_get_children,
|
||||
},
|
||||
{
|
||||
gtk_widget_get_type,
|
||||
object_tree_widget_get_parent,
|
||||
|
||||
@@ -275,7 +275,6 @@
|
||||
<property name="direction">0</property>
|
||||
<property name="popover">recent_servers_popover</property>
|
||||
<property name="icon-name">pan-down-symbolic</property>
|
||||
<property name="tooltip-text" translatable="yes">Show recent servers</property>
|
||||
<style>
|
||||
<class name="server-list-button"/>
|
||||
</style>
|
||||
|
||||
181
po/sr.po
181
po/sr.po
@@ -3,26 +3,26 @@
|
||||
# This file is distributed under the same license as the gtk package.
|
||||
# Translators:
|
||||
# Данило Шеган <dsegan@gmx.net>, 2004–2005.
|
||||
# Милош Поповић <gpopac@gmail.com>, 2010–2017.
|
||||
# Марко М. Костић (Marko M. Kostić) <marko.m.kostic@gmail.com>, 2015.
|
||||
# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2011–20-2024.
|
||||
# Милош Поповић <gpopac@gmail.com>, 2010–20-2024.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gtk+ 2.14\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n"
|
||||
"POT-Creation-Date: 2024-11-07 18:03+0000\n"
|
||||
"PO-Revision-Date: 2024-11-11 14:13+0100\n"
|
||||
"Last-Translator: Милош Поповић <gpopac@gmail.com>\n"
|
||||
"Language-Team: Serbian <Serbian <gnome-sr@googlegroups.com>>\n"
|
||||
"POT-Creation-Date: 2024-11-01 19:50+0000\n"
|
||||
"PO-Revision-Date: 2024-11-07 19:03+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: Gtranslator 46.1\n"
|
||||
"X-Generator: Poedit 3.4.4\n"
|
||||
|
||||
#: gdk/broadway/gdkbroadway-server.c:135
|
||||
#, c-format
|
||||
@@ -52,14 +52,16 @@ msgid "cicp: Unspecified parameters not supported"
|
||||
msgstr "cicp: ненаведени параметри нису подржани"
|
||||
|
||||
#: gdk/gdkcolorstate.c:724
|
||||
#, c-format
|
||||
#, fuzzy, c-format
|
||||
#| msgid "Format %s not supported"
|
||||
msgid "cicp: Transfer function %u not supported"
|
||||
msgstr "cicp: није подржаја функција преноса „%u“"
|
||||
msgstr "Формат „%s“ није подржан"
|
||||
|
||||
#: gdk/gdkcolorstate.c:754
|
||||
#, c-format
|
||||
#, fuzzy, c-format
|
||||
#| msgid "Format %s not supported"
|
||||
msgid "cicp: Color primaries %u not supported"
|
||||
msgstr "cicp: нису подржане основне боје „%u“"
|
||||
msgstr "Формат „%s“ није подржан"
|
||||
|
||||
#: gdk/gdkcontentprovider.c:106 gdk/gdkcontentproviderimpl.c:313
|
||||
#: gdk/gdkcontentproviderimpl.c:532
|
||||
@@ -77,12 +79,16 @@ msgid "The current backend does not support OpenGL"
|
||||
msgstr "Текући позадинац не подржава ОупенГЛ"
|
||||
|
||||
#: gdk/gdkdisplay.c:1317 gdk/gdkvulkancontext.c:1710
|
||||
#, fuzzy
|
||||
#| msgid "Vulkan support disabled via GDK_DEBUG"
|
||||
msgid "Vulkan support disabled via GDK_DISABLE"
|
||||
msgstr "Подршка за Вулкан је онемогућена са „GDK_DISABLE“"
|
||||
msgstr "Подршка за Вулкан је онемогућена са „GDK_DEBUG“"
|
||||
|
||||
#: gdk/gdkdisplay.c:1371
|
||||
#, fuzzy
|
||||
#| msgid "GL support disabled via GDK_DEBUG"
|
||||
msgid "OpenGL support disabled via GDK_DISABLE"
|
||||
msgstr "Подршка за OypenГЛ је онемогућена са „GDK_DISABLE“"
|
||||
msgstr "Подршка за ГЛ је онемогућена са „GDK_DEBUG“"
|
||||
|
||||
#: gdk/gdkdisplay.c:1685
|
||||
msgid "No EGL configuration available"
|
||||
@@ -149,12 +155,16 @@ msgid "Unable to create a GL context"
|
||||
msgstr "Не могу да направим ГЛ садржај"
|
||||
|
||||
#: gdk/gdkglcontext.c:1338
|
||||
#, fuzzy
|
||||
#| msgid "OpenGL ES disabled via GDK_DEBUG"
|
||||
msgid "OpenGL ES API disabled via GDK_DISABLE"
|
||||
msgstr "ОупенГЛ ЕС АПИ је онемогућен преко „GDK_DISABLE“"
|
||||
msgstr "Све осим ОупенГЛЕС-а је искључено преко „GDK_DEBUG“"
|
||||
|
||||
#: gdk/gdkglcontext.c:1350
|
||||
#, fuzzy
|
||||
#| msgid "OpenGL disabled via GDK_DEBUG"
|
||||
msgid "OpenGL API disabled via GDK_DISABLE"
|
||||
msgstr "ОупенГЛ АПИ је онемогућен преко „GDK_DISABLE“"
|
||||
msgstr "Подршка за ОупенГЛ је онемогућена преко „GDK_DEBUG“"
|
||||
|
||||
#: gdk/gdkglcontext.c:1361
|
||||
#, c-format
|
||||
@@ -170,9 +180,10 @@ msgid "Trying to use %s, but %s is already in use"
|
||||
msgstr "Покушавам да користим „%s“, али је „%s“ већ у употреби"
|
||||
|
||||
#: gdk/gdkglcontext.c:2182
|
||||
#, c-format
|
||||
#, fuzzy, c-format
|
||||
#| msgid "Trying to use %s, but %s is already in use"
|
||||
msgid "Trying to use %s, but it is disabled via GDK_DISABLE"
|
||||
msgstr "Покушавам да користим „%s“, али је онемогућен преко „GDK_DISABLE“"
|
||||
msgstr "Покушавам да користим „%s“, али је „%s“ већ у употреби"
|
||||
|
||||
#: gdk/gdktexture.c:672
|
||||
msgid "Unknown image format."
|
||||
@@ -7443,9 +7454,10 @@ msgid "%s only accepts three children"
|
||||
msgstr "%s прихвата само три нижа елемента"
|
||||
|
||||
#: tools/gtk-builder-tool-simplify.c:1773
|
||||
#, c-format
|
||||
#, fuzzy, c-format
|
||||
#| msgid "%s only accepts three children"
|
||||
msgid "%s only accepts one center child"
|
||||
msgstr "%s прихвата само један нижи елемент на средини"
|
||||
msgstr "%s прихвата само три нижа елемента"
|
||||
|
||||
#: tools/gtk-builder-tool-simplify.c:2549
|
||||
#, c-format
|
||||
@@ -7505,7 +7517,20 @@ msgid "Validate the file."
|
||||
msgstr "Потврди датотеку."
|
||||
|
||||
#: tools/gtk-image-tool.c:36
|
||||
#, c-format
|
||||
#, fuzzy, c-format
|
||||
#| msgid ""
|
||||
#| "Usage:\n"
|
||||
#| " gtk4-rendernode-tool [COMMAND] [OPTION…] FILE\n"
|
||||
#| "\n"
|
||||
#| "Perform various tasks on GTK render nodes.\n"
|
||||
#| "\n"
|
||||
#| "Commands:\n"
|
||||
#| " benchmark Benchmark rendering of a node\n"
|
||||
#| " compare Compare nodes or images\n"
|
||||
#| " info Provide information about the node\n"
|
||||
#| " show Show the node\n"
|
||||
#| " render Take a screenshot of the node\n"
|
||||
#| "\n"
|
||||
msgid ""
|
||||
"Usage:\n"
|
||||
" gtk4-image-tool [COMMAND] [OPTION…] FILE…\n"
|
||||
@@ -7521,16 +7546,16 @@ msgid ""
|
||||
"\n"
|
||||
msgstr ""
|
||||
"Коришћење:\n"
|
||||
" gtk4-image-tool [НАРЕДБА] [ОПЦИЈА…] ДАТОТЕКА…\n"
|
||||
" gtk4-rendernode-tool [НАРЕДБА] [ОПЦИЈА…] ДАТОТЕКА\n"
|
||||
"\n"
|
||||
"Обавља разне задатке на сликама.\n"
|
||||
"Обавља разне задатке на чворовима Гтк цртача.\n"
|
||||
"\n"
|
||||
"Наредбе:\n"
|
||||
" compare Приказује разлике између две слике\n"
|
||||
" convert Претвара слику у други формат или стање боја\n"
|
||||
" info Приказује опште податке о слици\n"
|
||||
" relabel Мења стање боја слике без претварања у други формат\n"
|
||||
" show Приказује слику\n"
|
||||
" benchmark Прати учинак исцртавања чвора\n"
|
||||
" compare Упореди чворове или слике\n"
|
||||
" info Обезбеђује податке о чвору\n"
|
||||
" show Приказује чвор\n"
|
||||
" render Прави снимак екрана чвора\n"
|
||||
"\n"
|
||||
|
||||
#: tools/gtk-image-tool-compare.c:43 tools/gtk-rendernode-tool-compare.c:67
|
||||
@@ -7544,14 +7569,16 @@ msgstr "Упореди две слике"
|
||||
#: tools/gtk-image-tool-compare.c:70 tools/gtk-image-tool-convert.c:113
|
||||
#: tools/gtk-image-tool-info.c:90 tools/gtk-image-tool-relabel.c:109
|
||||
#: tools/gtk-image-tool-show.c:141
|
||||
#, c-format
|
||||
#, fuzzy, c-format
|
||||
#| msgid "No .ui file specified\n"
|
||||
msgid "No image file specified\n"
|
||||
msgstr "Није одређена датотека са сликом\n"
|
||||
msgstr "Није наведена „.ui“ датотека\n"
|
||||
|
||||
#: tools/gtk-image-tool-compare.c:76
|
||||
#, c-format
|
||||
#, fuzzy, c-format
|
||||
#| msgid "Can only accept a single .node file\n"
|
||||
msgid "Can only accept two image files\n"
|
||||
msgstr "Може да прихвати само две датотеке са сликом\n"
|
||||
msgstr "Може да прихвати само једну .node датотеку\n"
|
||||
|
||||
#: tools/gtk-image-tool-compare.c:85 tools/gtk-rendernode-tool-compare.c:111
|
||||
#, c-format
|
||||
@@ -7579,8 +7606,10 @@ msgid "No differences.\n"
|
||||
msgstr "Нема разлике.\n"
|
||||
|
||||
#: tools/gtk-image-tool-convert.c:86
|
||||
#, fuzzy
|
||||
#| msgid "_Format for:"
|
||||
msgid "Format to use"
|
||||
msgstr "Формат за коришћење"
|
||||
msgstr "_Формат за:"
|
||||
|
||||
#: tools/gtk-image-tool-convert.c:86
|
||||
msgid "FORMAT"
|
||||
@@ -7591,8 +7620,10 @@ msgid "Color state to use"
|
||||
msgstr "Стање боје за коришћење"
|
||||
|
||||
#: tools/gtk-image-tool-convert.c:87 tools/gtk-image-tool-relabel.c:84
|
||||
#, fuzzy
|
||||
#| msgid "COLOR"
|
||||
msgid "COLORSTATE"
|
||||
msgstr "СТАЊЕ_БОЈА"
|
||||
msgstr "БОЈА"
|
||||
|
||||
#: tools/gtk-image-tool-convert.c:88 tools/gtk-image-tool-relabel.c:85
|
||||
msgid "Color state to use, as cicp tuple"
|
||||
@@ -7607,9 +7638,10 @@ msgid "Convert the image to a different format or color state."
|
||||
msgstr "Претвори слику у други формат или стање боје."
|
||||
|
||||
#: tools/gtk-image-tool-convert.c:119 tools/gtk-image-tool-relabel.c:115
|
||||
#, c-format
|
||||
#, fuzzy, c-format
|
||||
#| msgid "Can only render a single .ui file to a single output file\n"
|
||||
msgid "Can only accept a single image file and output file\n"
|
||||
msgstr "Може да прихвати само једну датотеку са сликом и излазну датотеку\n"
|
||||
msgstr "Могу да исцртам само једну .ui датотеку у једну излазну датотеку\n"
|
||||
|
||||
#: tools/gtk-image-tool-convert.c:133
|
||||
#, c-format
|
||||
@@ -7629,19 +7661,16 @@ msgid ""
|
||||
"Possible values:\n"
|
||||
" %s\n"
|
||||
msgstr ""
|
||||
"Није стање боја: %s\n"
|
||||
"Могуће вредности:\n"
|
||||
" %s\n"
|
||||
|
||||
#: tools/gtk-image-tool-convert.c:160 tools/gtk-image-tool-relabel.c:140
|
||||
#, c-format
|
||||
msgid "Can't specify both --color-state and --cicp\n"
|
||||
msgstr "Не можете да одредите и --color-state и --cicp\n"
|
||||
msgstr ""
|
||||
|
||||
#: tools/gtk-image-tool-convert.c:168 tools/gtk-image-tool-relabel.c:148
|
||||
#, c-format
|
||||
msgid "Not a supported cicp tuple: %s\n"
|
||||
msgstr "Није подржан cicp типл: %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: tools/gtk-image-tool-info.c:55
|
||||
msgid "Format:"
|
||||
@@ -7652,17 +7681,20 @@ msgid "Color state:"
|
||||
msgstr "Стање боје:"
|
||||
|
||||
#: tools/gtk-image-tool-info.c:77
|
||||
#, fuzzy
|
||||
#| msgid "Provide information about the render node."
|
||||
msgid "Provide information about the image."
|
||||
msgstr "Обезбеђује податке о слици."
|
||||
msgstr "Обезбеђује податке о чвору цртача."
|
||||
|
||||
#: tools/gtk-image-tool-info.c:96
|
||||
#, c-format
|
||||
#, fuzzy, c-format
|
||||
#| msgid "Can only accept a single .node file\n"
|
||||
msgid "Can only accept a single image file\n"
|
||||
msgstr "Може да прихвати само једну датотеку са сликом\n"
|
||||
msgstr "Може да прихвати само једну .node датотеку\n"
|
||||
|
||||
#: tools/gtk-image-tool-relabel.c:96
|
||||
msgid "Change the color state of the image without conversion."
|
||||
msgstr "Мења стање боја слике без њеног претварања у други формат."
|
||||
msgstr ""
|
||||
|
||||
#: tools/gtk-image-tool-relabel.c:130
|
||||
#, c-format
|
||||
@@ -7670,8 +7702,6 @@ msgid ""
|
||||
"Not a color state: %s\n"
|
||||
"Possible values: %s\n"
|
||||
msgstr ""
|
||||
"Није стање боје: %s\n"
|
||||
"Могуће вредности: %s\n"
|
||||
|
||||
#: tools/gtk-image-tool-show.c:117 tools/gtk-rendernode-tool-show.c:115
|
||||
msgid "Don't add a titlebar"
|
||||
@@ -7679,12 +7709,12 @@ msgstr "Без траке за наслов"
|
||||
|
||||
#: tools/gtk-image-tool-show.c:128
|
||||
msgid "Show one or more images."
|
||||
msgstr "Прикажи једну или више слика."
|
||||
msgstr ""
|
||||
|
||||
#: tools/gtk-image-tool-utils.c:234
|
||||
#, c-format
|
||||
msgid "cicp must be 4 numbers, separated by /\n"
|
||||
msgstr "cicp мора да садржи 4 броја раздвојена са „/“\n"
|
||||
msgstr ""
|
||||
|
||||
#: tools/gtk-launch.c:40
|
||||
msgid "Show program version"
|
||||
@@ -8052,7 +8082,20 @@ msgid "Failed to parse '%s' as number"
|
||||
msgstr "Не могу да рашчланим „%s“ као број"
|
||||
|
||||
#: tools/gtk-rendernode-tool.c:35
|
||||
#, c-format
|
||||
#, fuzzy, c-format
|
||||
#| msgid ""
|
||||
#| "Usage:\n"
|
||||
#| " gtk4-rendernode-tool [COMMAND] [OPTION…] FILE\n"
|
||||
#| "\n"
|
||||
#| "Perform various tasks on GTK render nodes.\n"
|
||||
#| "\n"
|
||||
#| "Commands:\n"
|
||||
#| " benchmark Benchmark rendering of a node\n"
|
||||
#| " compare Compare nodes or images\n"
|
||||
#| " info Provide information about the node\n"
|
||||
#| " show Show the node\n"
|
||||
#| " render Take a screenshot of the node\n"
|
||||
#| "\n"
|
||||
msgid ""
|
||||
"Usage:\n"
|
||||
" gtk4-rendernode-tool [COMMAND] [OPTION…] FILE\n"
|
||||
@@ -8074,12 +8117,11 @@ msgstr ""
|
||||
"Обавља разне задатке на чворовима Гтк цртача.\n"
|
||||
"\n"
|
||||
"Наредбе:\n"
|
||||
" benchmark Прати учинак исцртавања чвора\n"
|
||||
" benchmark Прати учинак исцртавања чвора\n"
|
||||
" compare Упореди чворове или слике\n"
|
||||
" extract Извлачи урл адресе са подацима\n"
|
||||
" info Обезбеђује податке о чвору\n"
|
||||
" show Приказује чвор\n"
|
||||
" render Прави снимак екрана чвора\n"
|
||||
" info Обезбеђује податке о чвору\n"
|
||||
" show Приказује чвор\n"
|
||||
" render Прави снимак екрана чвора\n"
|
||||
"\n"
|
||||
|
||||
#: tools/gtk-rendernode-tool-benchmark.c:96
|
||||
@@ -8146,13 +8188,16 @@ msgstr "Не могу да направим цртач: %s\n"
|
||||
|
||||
#: tools/gtk-rendernode-tool-extract.c:73
|
||||
#: tools/gtk-rendernode-tool-extract.c:149
|
||||
#, c-format
|
||||
#, fuzzy, c-format
|
||||
#| msgid "Failed to write header\n"
|
||||
msgid "Failed to write %s\n"
|
||||
msgstr "Не могу да упишем %s\n"
|
||||
msgstr "Нисам успео да запишем заглавље\n"
|
||||
|
||||
#: tools/gtk-rendernode-tool-extract.c:292
|
||||
#, fuzzy
|
||||
#| msgid "Renderer to use"
|
||||
msgid "Directory to use"
|
||||
msgstr "Директоријум за коришћење"
|
||||
msgstr "Цртач који се користи"
|
||||
|
||||
#: tools/gtk-rendernode-tool-extract.c:292
|
||||
msgid "DIRECTORY"
|
||||
@@ -8163,8 +8208,10 @@ msgid "Be verbose"
|
||||
msgstr "Опширнији испис"
|
||||
|
||||
#: tools/gtk-rendernode-tool-extract.c:303
|
||||
#, fuzzy
|
||||
#| msgid "Show the render node."
|
||||
msgid "Extract data urls from the render node."
|
||||
msgstr "Извлачи адресе података из чвора цртача."
|
||||
msgstr "Приказује исцртани чвор."
|
||||
|
||||
#: tools/gtk-rendernode-tool-extract.c:322 tools/gtk-rendernode-tool-info.c:254
|
||||
#, c-format
|
||||
@@ -8172,24 +8219,32 @@ msgid "Can only accept a single .node file\n"
|
||||
msgstr "Може да прихвати само једну .node датотеку\n"
|
||||
|
||||
#: tools/gtk-rendernode-tool-info.c:193
|
||||
#, fuzzy
|
||||
#| msgid "Number of nodes: %u\n"
|
||||
msgid "Number of nodes:"
|
||||
msgstr "Број чворова:"
|
||||
msgstr "Број чворова: %u\n"
|
||||
|
||||
#: tools/gtk-rendernode-tool-info.c:200
|
||||
#, fuzzy
|
||||
#| msgid "Depth: %u\n"
|
||||
msgid "Depth:"
|
||||
msgstr "Дубина:"
|
||||
msgstr "Дубина: %u\n"
|
||||
|
||||
#: tools/gtk-rendernode-tool-info.c:203
|
||||
#, fuzzy
|
||||
#| msgid "Bounds"
|
||||
msgid "Bounds:"
|
||||
msgstr "Границе:"
|
||||
msgstr "Границе"
|
||||
|
||||
#: tools/gtk-rendernode-tool-info.c:204
|
||||
#, fuzzy
|
||||
#| msgid "Origin: %g %g\n"
|
||||
msgid "Origin:"
|
||||
msgstr "Почетак:"
|
||||
msgstr "Почетак: %g %g\n"
|
||||
|
||||
#: tools/gtk-rendernode-tool-info.c:208 tools/gtk-rendernode-tool-info.c:214
|
||||
msgid "Opaque part:"
|
||||
msgstr "Непровидни део:"
|
||||
msgstr ""
|
||||
|
||||
#: tools/gtk-rendernode-tool-info.c:235
|
||||
msgid "Provide information about the render node."
|
||||
|
||||
10394
po/sr@latin.po
10394
po/sr@latin.po
File diff suppressed because it is too large
Load Diff
@@ -1708,7 +1708,6 @@ main (int argc, char **argv)
|
||||
g_option_context_add_main_entries (context, args, GETTEXT_PACKAGE);
|
||||
|
||||
g_option_context_parse (context, &argc, &argv, NULL);
|
||||
g_option_context_free (context);
|
||||
|
||||
path = argv[1];
|
||||
#ifdef G_OS_WIN32
|
||||
|
||||
Reference in New Issue
Block a user