Compare commits
154 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 127685ef22 | |||
| be81f6b4ab | |||
| 716e0b97bd | |||
| ff862dc926 | |||
| 17c2a1cb4e | |||
| 895e640fd0 | |||
| e8f5f86ad5 | |||
| 5055b41ee7 | |||
| 7efd08ca2e | |||
| 76b421e064 | |||
| 063e6baa0a | |||
| 9e5d412a8b | |||
| fa9b634d8f | |||
| d76379428d | |||
| 46509b6dd2 | |||
| 89dbf9cc81 | |||
| c138aaabf3 | |||
| 7cef454c86 | |||
| 5cb8d15505 | |||
| 2aab55983d | |||
| 31714e5c1d | |||
| 96c351e792 | |||
| edd57004d3 | |||
| 234d20641c | |||
| dd802f21e7 | |||
| dbbc990c72 | |||
| 3a6e772cba | |||
| c9fa16fcfa | |||
| 07b04fbea9 | |||
| 1c633cbea2 | |||
| 2f685d5d2a | |||
| 0fdf2cc195 | |||
| 4f7d18a28f | |||
| c77272a7d7 | |||
| 7a1004df73 | |||
| 0e86d2b345 | |||
| 2441bdb900 | |||
| 57679b7b7f | |||
| 37063e7a05 | |||
| 791dc7b9be | |||
| ff24dfb2e7 | |||
| 4db60fa5a8 | |||
| 5301367630 | |||
| 9409b7ef7d | |||
| afeb7f668b | |||
| 38b8da0f5f | |||
| d029b62d23 | |||
| 1e9bdb4647 | |||
| 1d72024605 | |||
| 06570443b7 | |||
| 77f7caf18d | |||
| 8767ffde2f | |||
| d58b7fa779 | |||
| dcbf3f8879 | |||
| 30d8c8e17c | |||
| b803bb5edb | |||
| 985a39d41f | |||
| f846eec894 | |||
| e7fc8ad1f5 | |||
| 95169ad54b | |||
| ddb2e91a42 | |||
| 90357193c9 | |||
| a336fe2850 | |||
| fcb8e4cf37 | |||
| b7b6c147f9 | |||
| 35ee82ca07 | |||
| 2dc56a6e9b | |||
| e12ef76de5 | |||
| 536b05e35b | |||
| 1354854d23 | |||
| 2b062d60f2 | |||
| c8bdb4c7fb | |||
| 80328e8a4f | |||
| 1138e3770b | |||
| ec58013b22 | |||
| 70cb61fb71 | |||
| 8e6a0ec23d | |||
| e2ab334636 | |||
| dd0effe957 | |||
| ac210c1765 | |||
| c58e48e648 | |||
| acdadab617 | |||
| aa19194f7b | |||
| 9319a6e39b | |||
| b41206abab | |||
| 07c3dc6b6f | |||
| fa71a2a993 | |||
| b997d1e892 | |||
| 4b71fba540 | |||
| 48d39c0a57 | |||
| 0aad053507 | |||
| 6ed14b2a5f | |||
| c7df5ef957 | |||
| a9013febcf | |||
| 815c430ba1 | |||
| e94d5bf006 | |||
| a00480f4a1 | |||
| 6da952100c | |||
| df8588e9b7 | |||
| fce9b35e4d | |||
| 6fd4421add | |||
| 7149bfd100 | |||
| 344ad0355e | |||
| e7871fbc43 | |||
| 99d8dd751e | |||
| 22b1abb36d | |||
| aa289d1023 | |||
| ef51e02767 | |||
| 7118127139 | |||
| 2ce2afa036 | |||
| 5803dd765d | |||
| 6a310b5069 | |||
| 2caab68be9 | |||
| 4e2dbc1258 | |||
| 40eca1a68e | |||
| 98f937ba15 | |||
| a70988ecd5 | |||
| 6f2ff620bd | |||
| bd772610b1 | |||
| de42b5bfae | |||
| fcdd5173bd | |||
| c419799313 | |||
| c5973a630b | |||
| e5a88b64b1 | |||
| 74f58a49b9 | |||
| cff9d9f5eb | |||
| ddd64f2918 | |||
| 9f06f53a59 | |||
| 4c00d7a306 | |||
| 88726e12f7 | |||
| 248bb148af | |||
| 49589e1da1 | |||
| 552267b93d | |||
| 855357f871 | |||
| c83cba2322 | |||
| 20dcc31d19 | |||
| 29e6cc5808 | |||
| 4e6ee28bcb | |||
| 4b3247576a | |||
| 69edf17c2a | |||
| d91a4ad1dd | |||
| 9b750ef69f | |||
| 0bf22ee3ce | |||
| 981ed22dff | |||
| d40321ef63 | |||
| c94996e8e8 | |||
| 4b19dd46dd | |||
| 942e841cbc | |||
| e0a595273a | |||
| 92ca52822c | |||
| f89dbce93c | |||
| e2b4108377 | |||
| a619e8af4a | |||
| 0579220546 |
@@ -31,7 +31,8 @@ pacman --noconfirm -S --needed \
|
||||
mingw-w64-$MSYS2_ARCH-pango \
|
||||
mingw-w64-$MSYS2_ARCH-fribidi \
|
||||
mingw-w64-$MSYS2_ARCH-gst-plugins-bad \
|
||||
mingw-w64-$MSYS2_ARCH-shared-mime-info
|
||||
mingw-w64-$MSYS2_ARCH-shared-mime-info \
|
||||
mingw-w64-$MSYS2_ARCH-python-gobject
|
||||
|
||||
mkdir -p _ccache
|
||||
export CCACHE_BASEDIR="$(pwd)"
|
||||
|
||||
@@ -1,3 +1,39 @@
|
||||
Overview of Changes
|
||||
===================
|
||||
|
||||
* GtkProgressBar:
|
||||
- Fix handling of "inverted"
|
||||
|
||||
* GtkLabel:
|
||||
- Add a "natural wrap mode" property to influence how
|
||||
natural width is determined
|
||||
|
||||
* GtkTextView
|
||||
- Scroll insertion on-screen after undo / redo
|
||||
|
||||
* gsk:
|
||||
- Abort region diffing when changes are too complex
|
||||
|
||||
* gdk:
|
||||
- Avoid compressing discrete scroll events
|
||||
- Fix problems with hiding windows
|
||||
- Improve GL and GLES version checks
|
||||
|
||||
* Wayland:
|
||||
- Support new high-contrast setting
|
||||
|
||||
* Inspector:
|
||||
- Add DND inspection support
|
||||
|
||||
* build:
|
||||
- Avoid deprecated meson apis
|
||||
|
||||
* Translation updates
|
||||
Galician
|
||||
Portuguese
|
||||
Ukrainian
|
||||
|
||||
|
||||
Overview of Changes in 4.5.1, 16-12-2021
|
||||
========================================
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ executable('gtk4-constraint-editor',
|
||||
c_args: common_cflags,
|
||||
dependencies: libgtk_dep,
|
||||
include_directories: confinc,
|
||||
gui_app: true,
|
||||
win_subsystem: 'windows',
|
||||
link_args: extra_demo_ldflags,
|
||||
install: false,
|
||||
)
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">Save _As...</attribute>
|
||||
<attribute name="action">app.save-as</attribute>
|
||||
<attribute name="accel"><Control>s</attribute>
|
||||
<attribute name="accel"><Control><Shift>s</attribute>
|
||||
</item>
|
||||
</section>
|
||||
<section>
|
||||
|
||||
@@ -242,7 +242,7 @@ executable('gtk4-demo',
|
||||
c_args: gtkdemo_args + demo_cflags,
|
||||
dependencies: gtkdemo_deps,
|
||||
include_directories: confinc,
|
||||
gui_app: true,
|
||||
win_subsystem: 'windows',
|
||||
link_args: extra_demo_ldflags,
|
||||
install: true,
|
||||
)
|
||||
@@ -252,7 +252,7 @@ executable('gtk4-demo-application',
|
||||
c_args: gtkdemo_args + common_cflags,
|
||||
dependencies: gtkdemo_deps,
|
||||
include_directories: confinc,
|
||||
gui_app: true,
|
||||
win_subsystem: 'windows',
|
||||
link_args: extra_demo_ldflags,
|
||||
install: true,
|
||||
)
|
||||
|
||||
@@ -16,7 +16,7 @@ executable('gtk4-icon-browser',
|
||||
c_args: common_cflags,
|
||||
dependencies: [ libgtk_dep, demo_conf_h ],
|
||||
include_directories: confinc,
|
||||
gui_app: true,
|
||||
win_subsystem: 'windows',
|
||||
link_args: extra_demo_ldflags,
|
||||
install: true,
|
||||
)
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@ demo_profile = get_option('profile')
|
||||
|
||||
demo_conf_h = declare_dependency(
|
||||
sources: custom_target('demo-header',
|
||||
command: [gen_demo_header, meson.source_root(), demo_profile],
|
||||
command: [gen_demo_header, meson.project_source_root(), demo_profile],
|
||||
capture: true,
|
||||
output: 'demo_conf.h',
|
||||
build_by_default: true,
|
||||
|
||||
@@ -17,7 +17,7 @@ executable('gtk4-node-editor',
|
||||
c_args: [
|
||||
'-DNODE_EDITOR_SOURCE_DIR="@0@/../../testsuite/gsk/compare/"'.format(meson.current_source_dir())
|
||||
] + common_cflags,
|
||||
gui_app: true,
|
||||
win_subsystem: 'windows',
|
||||
link_args: extra_demo_ldflags,
|
||||
install: false,
|
||||
)
|
||||
|
||||
@@ -3,7 +3,7 @@ executable('gtk4-print-editor',
|
||||
c_args: common_cflags,
|
||||
dependencies: [ libgtk_dep, demo_conf_h ],
|
||||
include_directories: confinc,
|
||||
gui_app: true,
|
||||
win_subsystem: 'windows',
|
||||
link_args: extra_demo_ldflags,
|
||||
install: true,
|
||||
)
|
||||
|
||||
@@ -74,7 +74,7 @@ executable('gtk4-widget-factory',
|
||||
c_args: common_cflags,
|
||||
dependencies: [ libgtk_dep, demo_conf_h ],
|
||||
include_directories: confinc,
|
||||
gui_app: true,
|
||||
win_subsystem: 'windows',
|
||||
link_args: extra_demo_ldflags,
|
||||
install: true,
|
||||
)
|
||||
|
||||
@@ -264,7 +264,7 @@ gdk_content_deserializer_get_priority (GdkContentDeserializer *deserializer)
|
||||
*
|
||||
* This is the `GCancellable` that was passed to [func@Gdk.content_deserialize_async].
|
||||
*
|
||||
* Returns: (transfer none): the cancellable for the current operation
|
||||
* Returns: (transfer none) (nullable): the cancellable for the current operation
|
||||
*/
|
||||
GCancellable *
|
||||
gdk_content_deserializer_get_cancellable (GdkContentDeserializer *deserializer)
|
||||
|
||||
@@ -342,7 +342,7 @@ gdk_content_provider_write_mime_type_finish (GdkContentProvider *provider,
|
||||
/**
|
||||
* gdk_content_provider_get_value:
|
||||
* @provider: a `GdkContentProvider`
|
||||
* @value: the `GValue` to fill
|
||||
* @value: (out caller-allocates): the `GValue` to fill
|
||||
* @error: a `GError` location to store the error occurring
|
||||
*
|
||||
* Gets the contents of @provider stored in @value.
|
||||
|
||||
@@ -270,7 +270,7 @@ gdk_content_serializer_get_priority (GdkContentSerializer *serializer)
|
||||
*
|
||||
* This is the `GCancellable` that was passed to [func@content_serialize_async].
|
||||
*
|
||||
* Returns: (transfer none): the cancellable for the current operation
|
||||
* Returns: (transfer none) (nullable): the cancellable for the current operation
|
||||
*/
|
||||
GCancellable *
|
||||
gdk_content_serializer_get_cancellable (GdkContentSerializer *serializer)
|
||||
|
||||
+1
-2
@@ -47,8 +47,7 @@
|
||||
* Cursors by themselves are not very interesting: they must be bound to a
|
||||
* window for users to see them. This is done with [method@Gdk.Surface.set_cursor]
|
||||
* or [method@Gdk.Surface.set_device_cursor]. Applications will typically
|
||||
* use higher-level GTK functions such as [method@Gtk.Widget.set_cursor]`
|
||||
* instead.
|
||||
* use higher-level GTK functions such as [method@Gtk.Widget.set_cursor] instead.
|
||||
*
|
||||
* Cursors are not bound to a given [class@Gdk.Display], so they can be shared.
|
||||
* However, the appearance of cursors may vary when used on different
|
||||
|
||||
+3
-2
@@ -522,7 +522,8 @@ _gdk_event_queue_find_first (GdkDisplay *display)
|
||||
if (pending_motion)
|
||||
return pending_motion;
|
||||
|
||||
if ((event->event_type == GDK_MOTION_NOTIFY || event->event_type == GDK_SCROLL) &&
|
||||
if ((event->event_type == GDK_MOTION_NOTIFY ||
|
||||
(event->event_type == GDK_SCROLL && gdk_scroll_event_get_direction (event) == GDK_SCROLL_SMOOTH)) &&
|
||||
(event->flags & GDK_EVENT_FLUSHED) == 0)
|
||||
pending_motion = tmp_list;
|
||||
else
|
||||
@@ -1224,7 +1225,7 @@ gdk_event_get_event_type (GdkEvent *event)
|
||||
*
|
||||
* Extracts the surface associated with an event.
|
||||
*
|
||||
* Returns: (transfer none): The `GdkSurface` associated with the event
|
||||
* Returns: (transfer none) (nullable): The `GdkSurface` associated with the event
|
||||
*/
|
||||
GdkSurface *
|
||||
gdk_event_get_surface (GdkEvent *event)
|
||||
|
||||
+69
-11
@@ -151,6 +151,12 @@ unmask_context (MaskedContext *mask)
|
||||
return GDK_GL_CONTEXT (GSIZE_TO_POINTER (GPOINTER_TO_SIZE (mask) & ~(gsize) 1));
|
||||
}
|
||||
|
||||
static inline gboolean
|
||||
mask_is_surfaceless (MaskedContext *mask)
|
||||
{
|
||||
return GPOINTER_TO_SIZE (mask) & (gsize) 1;
|
||||
}
|
||||
|
||||
static void
|
||||
unref_unmasked (gpointer data)
|
||||
{
|
||||
@@ -574,8 +580,8 @@ gdk_gl_context_real_begin_frame (GdkDrawContext *draw_context,
|
||||
glViewport (0, 0, ww, wh);
|
||||
|
||||
#ifdef HAVE_EGL
|
||||
if (priv->egl_context)
|
||||
glDrawBuffers (1, (GLenum[1]) { GL_BACK_LEFT });
|
||||
if (priv->egl_context && gdk_gl_context_check_version (context, 0, 0, 3, 0))
|
||||
glDrawBuffers (1, (GLenum[1]) { gdk_gl_context_get_use_es (context) ? GL_BACK : GL_BACK_LEFT });
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -997,16 +1003,33 @@ gdk_gl_context_set_required_version (GdkGLContext *context,
|
||||
}
|
||||
|
||||
gboolean
|
||||
gdk_gl_context_check_version (GdkGLContext *context,
|
||||
int required_major,
|
||||
int required_minor)
|
||||
gdk_gl_context_check_version (GdkGLContext *self,
|
||||
int required_gl_major,
|
||||
int required_gl_minor,
|
||||
int required_gles_major,
|
||||
int required_gles_minor)
|
||||
{
|
||||
GdkGLContextPrivate *priv = gdk_gl_context_get_instance_private (context);
|
||||
GdkGLContextPrivate *priv = gdk_gl_context_get_instance_private (self);
|
||||
|
||||
g_return_val_if_fail (GDK_IS_GL_CONTEXT (context), FALSE);
|
||||
g_return_val_if_fail (required_minor < 10, FALSE);
|
||||
g_return_val_if_fail (GDK_IS_GL_CONTEXT (self), FALSE);
|
||||
g_return_val_if_fail (required_gl_minor < 10, FALSE);
|
||||
g_return_val_if_fail (required_gles_minor < 10, FALSE);
|
||||
|
||||
return priv->gl_version >= required_major * 10 + required_minor;
|
||||
if (!gdk_gl_context_is_realized (self))
|
||||
return FALSE;
|
||||
|
||||
switch (priv->api)
|
||||
{
|
||||
case GDK_GL_API_GL:
|
||||
return priv->gl_version >= required_gl_major * 10 + required_gl_minor;
|
||||
|
||||
case GDK_GL_API_GLES:
|
||||
return priv->gl_version >= required_gles_major * 10 + required_gles_minor;
|
||||
|
||||
default:
|
||||
g_return_val_if_reached (FALSE);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1323,6 +1346,7 @@ gl_debug_message_callback (GLenum source,
|
||||
const char *message_source;
|
||||
const char *message_type;
|
||||
const char *message_severity;
|
||||
GLogLevelFlags log_level;
|
||||
|
||||
if (severity == GL_DEBUG_SEVERITY_NOTIFICATION)
|
||||
return;
|
||||
@@ -1384,22 +1408,31 @@ gl_debug_message_callback (GLenum source,
|
||||
{
|
||||
case GL_DEBUG_SEVERITY_HIGH:
|
||||
message_severity = "High";
|
||||
log_level = G_LOG_LEVEL_CRITICAL;
|
||||
break;
|
||||
case GL_DEBUG_SEVERITY_MEDIUM:
|
||||
message_severity = "Medium";
|
||||
log_level = G_LOG_LEVEL_WARNING;
|
||||
break;
|
||||
case GL_DEBUG_SEVERITY_LOW:
|
||||
message_severity = "Low";
|
||||
log_level = G_LOG_LEVEL_MESSAGE;
|
||||
break;
|
||||
case GL_DEBUG_SEVERITY_NOTIFICATION:
|
||||
message_severity = "Notification";
|
||||
log_level = G_LOG_LEVEL_INFO;
|
||||
break;
|
||||
default:
|
||||
message_severity = "Unknown";
|
||||
log_level = G_LOG_LEVEL_MESSAGE;
|
||||
}
|
||||
|
||||
g_warning ("OPENGL:\n Source: %s\n Type: %s\n Severity: %s\n Message: %s",
|
||||
message_source, message_type, message_severity, message);
|
||||
/* There's no higher level function taking a log level argument... */
|
||||
g_log_structured_standard (G_LOG_DOMAIN, log_level,
|
||||
__FILE__, G_STRINGIFY (__LINE__),
|
||||
G_STRFUNC,
|
||||
"OPENGL:\n Source: %s\n Type: %s\n Severity: %s\n Message: %s",
|
||||
message_source, message_type, message_severity, message);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1655,6 +1688,31 @@ gdk_gl_context_clear_current (void)
|
||||
}
|
||||
}
|
||||
|
||||
/*<private>
|
||||
* gdk_gl_context_clear_current_if_surface:
|
||||
* @surface: surface to clear for
|
||||
*
|
||||
* Does a gdk_gl_context_clear_current() if the current context is attached
|
||||
* to @surface, leaves the current context alone otherwise.
|
||||
**/
|
||||
void
|
||||
gdk_gl_context_clear_current_if_surface (GdkSurface *surface)
|
||||
{
|
||||
MaskedContext *current;
|
||||
|
||||
current = g_private_get (&thread_current_context);
|
||||
if (current != NULL && !mask_is_surfaceless (current))
|
||||
{
|
||||
GdkGLContext *context = unmask_context (current);
|
||||
|
||||
if (gdk_gl_context_get_surface (context) != surface)
|
||||
return;
|
||||
|
||||
if (GDK_GL_CONTEXT_GET_CLASS (context)->clear_current (context))
|
||||
g_private_replace (&thread_current_context, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_gl_context_get_current:
|
||||
*
|
||||
|
||||
@@ -99,6 +99,8 @@ gboolean gdk_gl_backend_can_be_used (GdkGLBackend
|
||||
GError **error);
|
||||
void gdk_gl_backend_use (GdkGLBackend backend_type);
|
||||
|
||||
void gdk_gl_context_clear_current_if_surface (GdkSurface *surface);
|
||||
|
||||
GdkGLContext * gdk_gl_context_new (GdkDisplay *display,
|
||||
GdkSurface *surface);
|
||||
|
||||
@@ -109,8 +111,10 @@ void gdk_gl_context_set_is_legacy (GdkGLContext
|
||||
gboolean is_legacy);
|
||||
|
||||
gboolean gdk_gl_context_check_version (GdkGLContext *context,
|
||||
int required_major,
|
||||
int required_minor);
|
||||
int required_gl_major,
|
||||
int required_gl_minor,
|
||||
int required_gles_major,
|
||||
int required_gles_minor);
|
||||
|
||||
gboolean gdk_gl_context_has_unpack_subimage (GdkGLContext *context);
|
||||
void gdk_gl_context_push_debug_group (GdkGLContext *context,
|
||||
|
||||
+5
-2
@@ -21,6 +21,7 @@
|
||||
#include "gdkgltextureprivate.h"
|
||||
|
||||
#include "gdkdisplayprivate.h"
|
||||
#include "gdkglcontextprivate.h"
|
||||
#include "gdkmemoryformatprivate.h"
|
||||
#include "gdkmemorytextureprivate.h"
|
||||
#include "gdktextureprivate.h"
|
||||
@@ -305,9 +306,11 @@ gdk_gl_texture_determine_format (GdkGLTexture *self)
|
||||
GLint active_texture;
|
||||
GLint internal_format;
|
||||
|
||||
if (self->context != gdk_gl_context_get_current ())
|
||||
/* Abort if somebody else is GL-ing here... */
|
||||
if (self->context != gdk_gl_context_get_current () ||
|
||||
/* ... or glGetTexLevelParameter() isn't supported */
|
||||
!gdk_gl_context_check_version (self->context, 0, 0, 3, 1))
|
||||
{
|
||||
/* Somebody else is GL-ing here, abort! */
|
||||
texture->format = GDK_MEMORY_DEFAULT;
|
||||
return;
|
||||
}
|
||||
|
||||
+1
-1
@@ -187,7 +187,7 @@ gdk_popup_get_rect_anchor (GdkPopup *popup)
|
||||
*
|
||||
* Returns the parent surface of a popup.
|
||||
*
|
||||
* Returns: (transfer none): the parent surface
|
||||
* Returns: (transfer none) (nullable): the parent surface
|
||||
*/
|
||||
GdkSurface *
|
||||
gdk_popup_get_parent (GdkPopup *popup)
|
||||
|
||||
@@ -1095,6 +1095,7 @@ gdk_surface_set_egl_native_window (GdkSurface *self,
|
||||
|
||||
if (priv->egl_surface != NULL)
|
||||
{
|
||||
gdk_gl_context_clear_current_if_surface (self);
|
||||
eglDestroySurface (gdk_surface_get_display (self), priv->egl_surface);
|
||||
priv->egl_surface = NULL;
|
||||
}
|
||||
@@ -1123,6 +1124,7 @@ gdk_surface_ensure_egl_surface (GdkSurface *self,
|
||||
priv->egl_surface != NULL &&
|
||||
gdk_display_get_egl_config_high_depth (display) != gdk_display_get_egl_config (display))
|
||||
{
|
||||
gdk_gl_context_clear_current_if_surface (self);
|
||||
eglDestroySurface (gdk_surface_get_display (self), priv->egl_surface);
|
||||
priv->egl_surface = NULL;
|
||||
}
|
||||
|
||||
+1
-1
@@ -454,7 +454,7 @@ gdk_texture_new_from_resource (const char *resource_path)
|
||||
texture = NULL;
|
||||
|
||||
if (texture == NULL)
|
||||
g_error ("Resource path %s s not a valid image: %s", resource_path, error->message);
|
||||
g_error ("Resource path %s is not a valid image: %s", resource_path, error->message);
|
||||
|
||||
return texture;
|
||||
}
|
||||
|
||||
@@ -1662,6 +1662,7 @@ static TranslationEntry translations[] = {
|
||||
{ FALSE, "org.gnome.desktop.wm.preferences", "action-middle-click-titlebar", "gtk-titlebar-middle-click", G_TYPE_STRING, { .s = "none" } },
|
||||
{ FALSE, "org.gnome.desktop.wm.preferences", "action-right-click-titlebar", "gtk-titlebar-right-click", G_TYPE_STRING, { .s = "menu" } },
|
||||
{ FALSE, "org.gnome.desktop.a11y", "always-show-text-caret", "gtk-keynav-use-caret", G_TYPE_BOOLEAN, { .b = FALSE } },
|
||||
{ FALSE, "org.gnome.desktop.a11y.interface", "high-contrast", "high-contast", G_TYPE_NONE, { .b = FALSE } },
|
||||
/* Note, this setting doesn't exist, the portal and gsd fake it */
|
||||
{ FALSE, "org.gnome.fontconfig", "serial", "gtk-fontconfig-timestamp", G_TYPE_NONE, { .i = 0 } },
|
||||
};
|
||||
@@ -1711,6 +1712,13 @@ find_translation_entry_by_setting (const char *setting)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
high_contrast_changed (GdkDisplay *display)
|
||||
{
|
||||
gdk_display_setting_changed (display, "gtk-theme-name");
|
||||
gdk_display_setting_changed (display, "gtk-icon-theme-name");
|
||||
}
|
||||
|
||||
static void
|
||||
settings_changed (GSettings *settings,
|
||||
const char *key,
|
||||
@@ -1724,6 +1732,8 @@ settings_changed (GSettings *settings,
|
||||
{
|
||||
if (entry->type != G_TYPE_NONE)
|
||||
gdk_display_setting_changed (display, entry->setting);
|
||||
else if (strcmp (key, "high-contrast") == 0)
|
||||
high_contrast_changed (display);
|
||||
else
|
||||
update_xft_settings (display);
|
||||
}
|
||||
@@ -2090,6 +2100,36 @@ set_decoration_layout_from_entry (GdkDisplay *display,
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
set_theme_from_entry (GdkDisplay *display,
|
||||
TranslationEntry *entry,
|
||||
GValue *value)
|
||||
{
|
||||
GdkWaylandDisplay *display_wayland = GDK_WAYLAND_DISPLAY (display);
|
||||
GSettings *settings = NULL;
|
||||
GSettingsSchema *schema = NULL;
|
||||
gboolean hc = FALSE;
|
||||
|
||||
if (display_wayland->settings_portal == NULL)
|
||||
{
|
||||
settings = (GSettings *)g_hash_table_lookup (display_wayland->settings,
|
||||
"org.gnome.desktop.a11y.interface");
|
||||
}
|
||||
|
||||
if (settings)
|
||||
g_object_get (settings, "settings-schema", &schema, NULL);
|
||||
|
||||
if (schema && g_settings_schema_has_key (schema, "high-contrast"))
|
||||
hc = g_settings_get_boolean (settings, "high-contrast");
|
||||
|
||||
g_clear_pointer (&schema, g_settings_schema_unref);
|
||||
|
||||
if (hc)
|
||||
g_value_set_static_string (value, "HighContrast");
|
||||
else
|
||||
set_value_from_entry (display, entry, value);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
set_capability_setting (GdkDisplay *display,
|
||||
GValue *value,
|
||||
@@ -2121,6 +2161,9 @@ gdk_wayland_display_get_setting (GdkDisplay *display,
|
||||
{
|
||||
if (strcmp (name, "gtk-decoration-layout") == 0)
|
||||
set_decoration_layout_from_entry (display, entry, value);
|
||||
else if (strcmp (name, "gtk-theme-name") == 0 ||
|
||||
strcmp (name, "gtk-icon-theme-name") == 0)
|
||||
set_theme_from_entry (display, entry, value);
|
||||
else
|
||||
set_value_from_entry (display, entry, value);
|
||||
return TRUE;
|
||||
|
||||
@@ -1,406 +0,0 @@
|
||||
/* GDK - The GIMP Drawing Kit
|
||||
* Copyright (C) 2001 Stefan Ondrejicka
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
#include <ctype.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
typedef struct {
|
||||
char *name;
|
||||
int id;
|
||||
char *bitmap;
|
||||
int hotx;
|
||||
int hoty;
|
||||
} font_info_t;
|
||||
|
||||
typedef struct {
|
||||
char *name;
|
||||
int id;
|
||||
int width;
|
||||
int height;
|
||||
int hotx;
|
||||
int hoty;
|
||||
char *data;
|
||||
} cursor_info_t;
|
||||
|
||||
static GSList *fonts = NULL;
|
||||
static GSList *cursors = NULL;
|
||||
|
||||
static int dw,dh;
|
||||
|
||||
static gboolean debug = FALSE;
|
||||
|
||||
#define HEX(c) (((c) >= '0' && (c) <= '9') ? \
|
||||
((c) - '0') : (toupper(c) - 'A' + 10))
|
||||
|
||||
static void print_font(fi)
|
||||
font_info_t *fi;
|
||||
{
|
||||
int x,y;
|
||||
|
||||
for (y = 0; y < dh; y++)
|
||||
{
|
||||
for (x = 0; x < dw; x++)
|
||||
{
|
||||
printf(fi->bitmap[y*dw+x]? "X" : " ");
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
|
||||
static void print_cursor(ci)
|
||||
cursor_info_t *ci;
|
||||
{
|
||||
int x,y;
|
||||
|
||||
for (y = 0; y < ci->height; y++)
|
||||
{
|
||||
printf("/* ");
|
||||
for (x = 0; x < ci->width; x++)
|
||||
{
|
||||
if (ci->hotx == x && ci->hoty == y)
|
||||
printf("o");
|
||||
else
|
||||
switch (ci->data[y*ci->width+x])
|
||||
{
|
||||
case 0:
|
||||
printf(" ");
|
||||
break;
|
||||
case 1:
|
||||
printf(".");
|
||||
break;
|
||||
case 2:
|
||||
printf("X");
|
||||
break;
|
||||
}
|
||||
}
|
||||
printf(" */\n");
|
||||
}
|
||||
}
|
||||
|
||||
static int read_bdf_font(fname)
|
||||
char *fname;
|
||||
{
|
||||
FILE *f;
|
||||
char line[2048];
|
||||
int rv = 0;
|
||||
gboolean startchar = FALSE, startbitmap = FALSE;
|
||||
char *charname,*p,*bitmap;
|
||||
int dx = 0,dy = 0;
|
||||
int w,h,x,y,py;
|
||||
int id,tmp;
|
||||
|
||||
dw = 0;
|
||||
dh = 0;
|
||||
|
||||
if (!(f = fopen(fname, "r")))
|
||||
{
|
||||
perror(fname);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (fgets(line, sizeof(line), f) && strncasecmp("STARTFONT ", line, 10))
|
||||
{
|
||||
printf("!BDF font file\n");
|
||||
fclose(f);
|
||||
return -1;
|
||||
}
|
||||
|
||||
p = line;
|
||||
while (fgets(line, sizeof(line), f))
|
||||
{
|
||||
if (!startchar)
|
||||
{
|
||||
if (!strncasecmp("STARTCHAR ", line, 10))
|
||||
{
|
||||
startchar = TRUE;
|
||||
charname = g_strndup(p + 10,
|
||||
strcspn(p+10, "\r\n"));
|
||||
}
|
||||
else if (!strncasecmp("FONTBOUNDINGBOX ", line, 16))
|
||||
sscanf(p+16, "%d %d %d %d", &dw, &dh, &dx, &dy);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!strncasecmp("ENDCHAR", line, 7))
|
||||
{
|
||||
font_info_t *nfi;
|
||||
|
||||
if (debug)
|
||||
printf(" %*s*/\n", dw, "");
|
||||
startchar = FALSE;
|
||||
startbitmap = FALSE;
|
||||
|
||||
nfi = g_malloc(sizeof(font_info_t));
|
||||
memset(nfi, '\0', sizeof(font_info_t));
|
||||
|
||||
nfi->name = charname;
|
||||
nfi->id = id;
|
||||
nfi->bitmap = bitmap;
|
||||
nfi->hotx = 0 - dx;
|
||||
nfi->hoty = 0 - dy;
|
||||
|
||||
fonts = g_slist_append(fonts, nfi);
|
||||
}
|
||||
else if (startbitmap)
|
||||
{
|
||||
int px,cx;
|
||||
guchar mask;
|
||||
|
||||
px = x - dx + py * dw;
|
||||
for (cx = 0; cx < w; cx++)
|
||||
{
|
||||
mask = 1 << (3 - (cx % 4));
|
||||
|
||||
bitmap[px+cx] =
|
||||
(mask & HEX(line[cx/4])) != 0;
|
||||
|
||||
if (debug)
|
||||
printf(bitmap[px+cx] ? "X" : " ");
|
||||
}
|
||||
py++;
|
||||
if (debug)
|
||||
printf(" %*s*/\n/* %*s", dw-w, "", dw+dx, "");
|
||||
}
|
||||
else if (!strncasecmp("BBX ", line, 4))
|
||||
{
|
||||
sscanf(p+4, "%d %d %d %d", &w, &h, &x, &y);
|
||||
if (debug)
|
||||
printf("/* %s: */\n/* %*s", charname, dw+dx, "");
|
||||
}
|
||||
else if (!strncasecmp("ENCODING ", line, 9))
|
||||
{
|
||||
if (sscanf(p+9, "%d %d", &tmp, &id) != 2)
|
||||
id = tmp;
|
||||
}
|
||||
else if (!strncasecmp("BITMAP", line, 6))
|
||||
{
|
||||
py = y - dy;
|
||||
startbitmap = TRUE;
|
||||
bitmap = g_malloc(dw*dh);
|
||||
memset(bitmap, '\0', dw*dh);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (strncasecmp("ENDFONT", line, 7))
|
||||
rv = -1;
|
||||
|
||||
fclose(f);
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
static int font_info_compare(fi, name)
|
||||
font_info_t *fi;
|
||||
char *name;
|
||||
{
|
||||
return strcmp(name, fi->name);
|
||||
}
|
||||
|
||||
static cursor_info_t *gen_cursor(bmap, mask)
|
||||
font_info_t *bmap;
|
||||
font_info_t *mask;
|
||||
{
|
||||
cursor_info_t *ci;
|
||||
int bx = dw,by = dh,ex = 0,ey = 0;
|
||||
int i,j;
|
||||
|
||||
for (j = 0; j < dh; j++)
|
||||
{
|
||||
gboolean havep = FALSE;
|
||||
|
||||
for (i = 0; i < dw; i++)
|
||||
{
|
||||
if (bmap->bitmap[j*dw+i] || mask->bitmap[j*dw+i])
|
||||
{
|
||||
havep = TRUE;
|
||||
bx = MIN(bx, i);
|
||||
ex = MAX(i+1, ex);
|
||||
}
|
||||
}
|
||||
|
||||
if (havep)
|
||||
{
|
||||
by = MIN(by, j);
|
||||
ey = MAX(ey, j+1);
|
||||
}
|
||||
}
|
||||
|
||||
ci = g_malloc(sizeof(cursor_info_t));
|
||||
ci->name = g_strdup(bmap->name);
|
||||
ci->id = bmap->id;
|
||||
|
||||
ci->width = ex - bx;
|
||||
ci->height = ey - by;
|
||||
|
||||
ci->hotx = bmap->hotx - bx;
|
||||
ci->hoty = ci->height - (bmap->hoty - by);
|
||||
|
||||
ci->data = g_malloc(ci->width * ci->height);
|
||||
memset(ci->data, '\0', ci->width * ci->height);
|
||||
|
||||
for (j = 0; j < ci->height; j++)
|
||||
{
|
||||
for (i = 0; i < ci->width; i++)
|
||||
{
|
||||
int ofs = (by + j) * dw + bx + i;
|
||||
|
||||
ci->data[j*ci->width + i] = mask->bitmap[ofs] *
|
||||
(1 + bmap->bitmap[ofs]);
|
||||
}
|
||||
}
|
||||
|
||||
return ci;
|
||||
}
|
||||
|
||||
static void compose_cursors_from_fonts()
|
||||
{
|
||||
GSList *l;
|
||||
|
||||
for (l = g_slist_copy (fonts); l; l = g_slist_delete_link (l,l))
|
||||
{
|
||||
font_info_t *fi = l->data;
|
||||
char *name;
|
||||
GSList *ml;
|
||||
|
||||
name = g_strconcat(fi->name, "_mask", NULL);
|
||||
|
||||
if ((ml = g_slist_find_custom(fonts, name,
|
||||
(GCompareFunc) font_info_compare)))
|
||||
{
|
||||
cursors = g_slist_append(cursors, gen_cursor(l->data, ml->data));
|
||||
fonts = g_slist_remove(fonts, l->data);
|
||||
fonts = g_slist_remove(fonts, ml->data);
|
||||
}
|
||||
|
||||
g_free(name);
|
||||
}
|
||||
}
|
||||
|
||||
static char *dump_cursor(ci, id)
|
||||
cursor_info_t *ci;
|
||||
int id;
|
||||
{
|
||||
static char cdata[8192];
|
||||
char *p;
|
||||
int i;
|
||||
int c;
|
||||
gboolean flushed;
|
||||
|
||||
sprintf(cdata, " { \"%s\", %d, %d, %d, %d, %d, \n \"",
|
||||
ci->name, ci->id, ci->width, ci->height, ci->hotx, ci->hoty);
|
||||
p = cdata + strlen(cdata);
|
||||
|
||||
for (i = 0; i < ci->width * ci->height; i++)
|
||||
{
|
||||
flushed = FALSE;
|
||||
|
||||
if (!(i%4))
|
||||
c = 0;
|
||||
|
||||
c = c << 2;
|
||||
|
||||
c += ci->data[i];
|
||||
|
||||
if ((i % 4) == 3)
|
||||
{
|
||||
flushed = TRUE;
|
||||
sprintf(p, "\\%03o", c);
|
||||
p += strlen(p);
|
||||
}
|
||||
|
||||
if (i > 0 && !(i % 64))
|
||||
{
|
||||
strcpy(p ,"\"\n \"");
|
||||
p += strlen(p);
|
||||
}
|
||||
}
|
||||
if (!flushed)
|
||||
{
|
||||
sprintf(p, "\\%03o", c);
|
||||
p += strlen(p);
|
||||
}
|
||||
|
||||
strcpy(p, "\" }");
|
||||
|
||||
return cdata;
|
||||
}
|
||||
|
||||
static int dump_cursors()
|
||||
{
|
||||
GSList *ptr;
|
||||
FILE *f = stdout;
|
||||
|
||||
fprintf(f, "static const struct { const char *name; int type; guchar width; guchar height; guchar hotx; guchar hoty; guchar *data; } cursors[] = {\n");
|
||||
|
||||
for (ptr = cursors; ptr; ptr = ptr->next)
|
||||
{
|
||||
if (debug)
|
||||
print_cursor(ptr->data);
|
||||
fprintf(f, "%s, \n", dump_cursor(ptr->data));
|
||||
}
|
||||
|
||||
fprintf(f, " { NULL, 0, 0, 0, 0, 0, NULL },\n};\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int main(argc, argv)
|
||||
int argc;
|
||||
char **argv;
|
||||
{
|
||||
if (argc != 2)
|
||||
{
|
||||
printf("missing parameters !\n");
|
||||
printf("Usage: %s [BDF cursor file]\n", argv[0]);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (g_getenv ("BDFCURSOR_DEBUG") != NULL)
|
||||
debug = TRUE;
|
||||
|
||||
if (read_bdf_font(argv[1]) || !fonts)
|
||||
{
|
||||
printf("Error reading font\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
compose_cursors_from_fonts();
|
||||
|
||||
if (!cursors)
|
||||
{
|
||||
printf("failed to generate cursors from font!\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
dump_cursors();
|
||||
|
||||
if (fonts)
|
||||
{
|
||||
printf("some fonts remained unconverted!\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -157,7 +157,6 @@ static HKL latin_locale = NULL;
|
||||
|
||||
static gboolean in_ime_composition = FALSE;
|
||||
static UINT modal_timer;
|
||||
static UINT sync_timer = 0;
|
||||
|
||||
static int debug_indent = 0;
|
||||
|
||||
@@ -1453,23 +1452,6 @@ _gdk_win32_end_modal_call (GdkWin32ModalOpKind kind)
|
||||
}
|
||||
}
|
||||
|
||||
static VOID CALLBACK
|
||||
sync_timer_proc (HWND hwnd,
|
||||
UINT msg,
|
||||
UINT_PTR id,
|
||||
DWORD time)
|
||||
{
|
||||
MSG message;
|
||||
if (PeekMessageW (&message, hwnd, WM_PAINT, WM_PAINT, PM_REMOVE))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
RedrawWindow (hwnd, NULL, NULL, RDW_INVALIDATE|RDW_UPDATENOW|RDW_ALLCHILDREN);
|
||||
|
||||
KillTimer (hwnd, sync_timer);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
handle_nchittest (HWND hwnd,
|
||||
GdkSurface *window,
|
||||
@@ -2854,12 +2836,6 @@ gdk_event_translate (MSG *msg,
|
||||
*ret_valp = 1;
|
||||
break;
|
||||
|
||||
case WM_SYNCPAINT:
|
||||
sync_timer = SetTimer (GDK_SURFACE_HWND (window),
|
||||
1,
|
||||
200, sync_timer_proc);
|
||||
break;
|
||||
|
||||
case WM_PAINT:
|
||||
handle_wm_paint (msg, window);
|
||||
break;
|
||||
|
||||
@@ -787,26 +787,6 @@ show_window_internal (GdkSurface *window,
|
||||
if (!unminimize && !already_mapped && IsWindowVisible (GDK_SURFACE_HWND (window)))
|
||||
return;
|
||||
|
||||
/* Other cases */
|
||||
|
||||
exstyle = GetWindowLong (GDK_SURFACE_HWND (window), GWL_EXSTYLE);
|
||||
|
||||
/* Use SetWindowPos to show transparent windows so automatic redraws
|
||||
* in other windows can be suppressed.
|
||||
*/
|
||||
if (exstyle & WS_EX_TRANSPARENT)
|
||||
{
|
||||
UINT flags = SWP_SHOWWINDOW | SWP_NOREDRAW | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER;
|
||||
|
||||
if (GDK_IS_DRAG_SURFACE (window))
|
||||
flags |= SWP_NOACTIVATE;
|
||||
|
||||
SetWindowPos (GDK_SURFACE_HWND (window),
|
||||
SWP_NOZORDER_SPECIFIED, 0, 0, 0, 0, flags);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/* For initial map of "normal" windows we want to emulate WM window
|
||||
* positioning behaviour, which means:
|
||||
* + default to the initial CW_USEDEFAULT placement,
|
||||
@@ -953,6 +933,8 @@ show_window_internal (GdkSurface *window,
|
||||
GtkShowWindow (window, SW_SHOW);
|
||||
}
|
||||
|
||||
exstyle = GetWindowLong (GDK_SURFACE_HWND (window), GWL_EXSTYLE);
|
||||
|
||||
/* Sync STATE_ABOVE to TOPMOST */
|
||||
if (!GDK_IS_DRAG_SURFACE (window) &&
|
||||
(((window->state & GDK_TOPLEVEL_STATE_ABOVE) &&
|
||||
@@ -989,22 +971,7 @@ gdk_win32_surface_hide (GdkSurface *window)
|
||||
|
||||
_gdk_surface_clear_update_area (window);
|
||||
|
||||
if (GDK_IS_TOPLEVEL (window))
|
||||
ShowOwnedPopups (GDK_SURFACE_HWND (window), FALSE);
|
||||
|
||||
/* Use SetWindowPos to hide transparent windows so automatic redraws
|
||||
* in other windows can be suppressed.
|
||||
*/
|
||||
if (GetWindowLong (GDK_SURFACE_HWND (window), GWL_EXSTYLE) & WS_EX_TRANSPARENT)
|
||||
{
|
||||
SetWindowPos (GDK_SURFACE_HWND (window), SWP_NOZORDER_SPECIFIED,
|
||||
0, 0, 0, 0,
|
||||
SWP_HIDEWINDOW | SWP_NOREDRAW | SWP_NOZORDER | SWP_NOMOVE | SWP_NOSIZE);
|
||||
}
|
||||
else
|
||||
{
|
||||
GtkShowWindow (window, SW_HIDE);
|
||||
}
|
||||
GtkShowWindow (window, SW_HIDE);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1336,33 +1303,22 @@ gdk_win32_surface_set_urgency_hint (GdkSurface *window,
|
||||
gboolean urgent)
|
||||
{
|
||||
FLASHWINFO flashwinfo;
|
||||
typedef BOOL (WINAPI *PFN_FlashWindowEx) (FLASHWINFO*);
|
||||
PFN_FlashWindowEx flashWindowEx = NULL;
|
||||
|
||||
g_return_if_fail (GDK_IS_SURFACE (window));
|
||||
|
||||
if (GDK_SURFACE_DESTROYED (window))
|
||||
return;
|
||||
|
||||
flashWindowEx = (PFN_FlashWindowEx) GetProcAddress (GetModuleHandle ("user32.dll"), "FlashWindowEx");
|
||||
|
||||
if (flashWindowEx)
|
||||
{
|
||||
flashwinfo.cbSize = sizeof (flashwinfo);
|
||||
flashwinfo.hwnd = GDK_SURFACE_HWND (window);
|
||||
if (urgent)
|
||||
flashwinfo.dwFlags = FLASHW_ALL | FLASHW_TIMER;
|
||||
else
|
||||
flashwinfo.dwFlags = FLASHW_STOP;
|
||||
flashwinfo.uCount = 0;
|
||||
flashwinfo.dwTimeout = 0;
|
||||
|
||||
flashWindowEx (&flashwinfo);
|
||||
}
|
||||
flashwinfo.cbSize = sizeof (flashwinfo);
|
||||
flashwinfo.hwnd = GDK_SURFACE_HWND (window);
|
||||
if (urgent)
|
||||
flashwinfo.dwFlags = FLASHW_ALL | FLASHW_TIMER;
|
||||
else
|
||||
{
|
||||
FlashWindow (GDK_SURFACE_HWND (window), urgent);
|
||||
}
|
||||
flashwinfo.dwFlags = FLASHW_STOP;
|
||||
flashwinfo.uCount = 0;
|
||||
flashwinfo.dwTimeout = 0;
|
||||
|
||||
FlashWindowEx (&flashwinfo);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
# libwntab32x.la - a libtool library file
|
||||
# Generated by hand, compatible with libtool
|
||||
# Just a wrapper for libwntab32x.a, which is just a copy of wntab32x.lib
|
||||
#
|
||||
# The name that we can dlopen(3).
|
||||
dlname=''
|
||||
|
||||
# Names of this library.
|
||||
library_names=''
|
||||
|
||||
# The name of the static archive.
|
||||
old_library='libwntab32x.a'
|
||||
|
||||
# Libraries that this one depends upon.
|
||||
dependency_libs=''
|
||||
|
||||
# Version information
|
||||
current=0
|
||||
age=0
|
||||
revision=0
|
||||
|
||||
# Is this an already installed library?
|
||||
installed=no
|
||||
|
||||
# Files to dlopen/dlpreopen
|
||||
dlopen=''
|
||||
dlpreopen=''
|
||||
|
||||
# Directory that this library needs to be installed in:
|
||||
libdir=''
|
||||
@@ -71,6 +71,8 @@ gdk_x11_surface_destroy_glx_drawable (GdkX11Surface *self)
|
||||
if (self->glx_drawable == None)
|
||||
return;
|
||||
|
||||
gdk_gl_context_clear_current_if_surface (GDK_SURFACE (self));
|
||||
|
||||
glXDestroyWindow (gdk_x11_display_get_xdisplay (gdk_surface_get_display (GDK_SURFACE (self))),
|
||||
self->glx_drawable);
|
||||
|
||||
|
||||
@@ -3535,7 +3535,7 @@ gdk_x11_surface_unfullscreen (GdkSurface *surface)
|
||||
*
|
||||
* Returns the group this surface belongs to.
|
||||
*
|
||||
* Returns: (transfer none): The group of this surface;
|
||||
* Returns: (transfer none) (nullable): The group of this surface;
|
||||
*/
|
||||
GdkSurface *
|
||||
gdk_x11_surface_get_group (GdkSurface *surface)
|
||||
|
||||
@@ -1396,7 +1396,7 @@ gsk_gl_command_queue_do_upload_texture (GskGLCommandQueue *self,
|
||||
glTexImage2D (GL_TEXTURE_2D, 0, gl_internalformat, width, height, 0, gl_format, gl_type, data);
|
||||
}
|
||||
else if (stride % bpp == 0 &&
|
||||
(!use_es || gdk_gl_context_check_version (context, 3, 0) || gdk_gl_context_has_unpack_subimage (context)))
|
||||
(gdk_gl_context_check_version (context, 0, 0, 3, 0) || gdk_gl_context_has_unpack_subimage (context)))
|
||||
{
|
||||
glPixelStorei (GL_UNPACK_ROW_LENGTH, stride / bpp);
|
||||
|
||||
|
||||
@@ -147,7 +147,8 @@ gsk_gl_compiler_new (GskGLDriver *driver,
|
||||
|
||||
gdk_gl_context_get_version (context, &maj, &min);
|
||||
|
||||
if (maj == 3)
|
||||
/* On Windows, legacy contexts can give us a GL 4.x context */
|
||||
if (maj >= 3)
|
||||
self->glsl_version = SHADER_VERSION_GL3_LEGACY;
|
||||
else
|
||||
self->glsl_version = SHADER_VERSION_GL2_LEGACY;
|
||||
|
||||
@@ -4117,14 +4117,19 @@ gsk_gl_render_job_set_debug_fallback (GskGLRenderJob *job,
|
||||
}
|
||||
|
||||
static int
|
||||
get_framebuffer_format (guint framebuffer)
|
||||
get_framebuffer_format (GdkGLContext *context,
|
||||
guint framebuffer)
|
||||
{
|
||||
int size;
|
||||
|
||||
if (!gdk_gl_context_check_version (context, 0, 0, 3, 0))
|
||||
return GL_RGBA8;
|
||||
|
||||
glBindFramebuffer (GL_FRAMEBUFFER, framebuffer);
|
||||
glGetFramebufferAttachmentParameteriv (GL_FRAMEBUFFER,
|
||||
framebuffer ? GL_COLOR_ATTACHMENT0
|
||||
: GL_BACK_LEFT,
|
||||
: gdk_gl_context_get_use_es (context) ? GL_BACK
|
||||
: GL_BACK_LEFT,
|
||||
GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE, &size);
|
||||
|
||||
if (size > 16)
|
||||
@@ -4161,7 +4166,7 @@ gsk_gl_render_job_new (GskGLDriver *driver,
|
||||
job->scale_x = scale_factor;
|
||||
job->scale_y = scale_factor;
|
||||
job->viewport = *viewport;
|
||||
job->target_format = get_framebuffer_format (framebuffer);
|
||||
job->target_format = get_framebuffer_format (job->command_queue->context, framebuffer);
|
||||
|
||||
gsk_gl_render_job_set_alpha (job, 1.0f);
|
||||
gsk_gl_render_job_set_projection_from_rect (job, viewport, NULL);
|
||||
|
||||
+14
-5
@@ -356,6 +356,8 @@ compare (gconstpointer *elem1,
|
||||
const GskDiffSettings *settings,
|
||||
gpointer data)
|
||||
{
|
||||
GskDiffResult res;
|
||||
|
||||
/*
|
||||
* Shrink the box by walking through each diagonal snake (SW and NE).
|
||||
*/
|
||||
@@ -364,7 +366,9 @@ compare (gconstpointer *elem1,
|
||||
if (settings->compare_func (elem1[off1], elem2[off2], data) != 0)
|
||||
break;
|
||||
|
||||
settings->keep_func (elem1[off1], elem2[off2], data);
|
||||
res = settings->keep_func (elem1[off1], elem2[off2], data);
|
||||
if (res != GSK_DIFF_OK)
|
||||
return res;
|
||||
}
|
||||
|
||||
for (; off1 < lim1 && off2 < lim2; lim1--, lim2--)
|
||||
@@ -372,7 +376,9 @@ compare (gconstpointer *elem1,
|
||||
if (settings->compare_func (elem1[lim1 - 1], elem2[lim2 - 1], data) != 0)
|
||||
break;
|
||||
|
||||
settings->keep_func (elem1[lim1 - 1], elem2[lim2 - 1], data);
|
||||
res = settings->keep_func (elem1[lim1 - 1], elem2[lim2 - 1], data);
|
||||
if (res != GSK_DIFF_OK)
|
||||
return res;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -383,20 +389,23 @@ compare (gconstpointer *elem1,
|
||||
{
|
||||
for (; off2 < lim2; off2++)
|
||||
{
|
||||
settings->insert_func (elem2[off2], off2, data);
|
||||
res = settings->insert_func (elem2[off2], off2, data);
|
||||
if (res != GSK_DIFF_OK)
|
||||
return res;
|
||||
}
|
||||
}
|
||||
else if (off2 == lim2)
|
||||
{
|
||||
for (; off1 < lim1; off1++)
|
||||
{
|
||||
settings->delete_func (elem1[off1], off1, data);
|
||||
res = settings->delete_func (elem1[off1], off1, data);
|
||||
if (res != GSK_DIFF_OK)
|
||||
return res;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
SplitResult spl = { 0, };
|
||||
GskDiffResult res;
|
||||
|
||||
/*
|
||||
* Divide ...
|
||||
|
||||
@@ -29,9 +29,9 @@ typedef enum {
|
||||
GSK_DIFF_ABORTED,
|
||||
} GskDiffResult;
|
||||
|
||||
typedef void (* GskKeepFunc) (gconstpointer elem1, gconstpointer elem2, gpointer data);
|
||||
typedef void (* GskDeleteFunc) (gconstpointer elem, gsize idx, gpointer data);
|
||||
typedef void (* GskInsertFunc) (gconstpointer elem, gsize idx, gpointer data);
|
||||
typedef GskDiffResult (* GskKeepFunc) (gconstpointer elem1, gconstpointer elem2, gpointer data);
|
||||
typedef GskDiffResult (* GskDeleteFunc) (gconstpointer elem, gsize idx, gpointer data);
|
||||
typedef GskDiffResult (* GskInsertFunc) (gconstpointer elem, gsize idx, gpointer data);
|
||||
|
||||
typedef struct _GskDiffSettings GskDiffSettings;
|
||||
|
||||
|
||||
+22
-13
@@ -33,6 +33,12 @@
|
||||
|
||||
#include <hb-ot.h>
|
||||
|
||||
/* maximal number of rectangles we keep in a diff region before we throw
|
||||
* the towel and just use the bounding box of the parent node.
|
||||
* Meant to avoid performance corner cases.
|
||||
*/
|
||||
#define MAX_RECTS_IN_DIFF 30
|
||||
|
||||
static inline void
|
||||
gsk_cairo_rectangle (cairo_t *cr,
|
||||
const graphene_rect_t *rect)
|
||||
@@ -2601,32 +2607,35 @@ gsk_container_node_draw (GskRenderNode *node,
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gsk_render_node_add_to_region (GskRenderNode *node,
|
||||
cairo_region_t *region)
|
||||
{
|
||||
cairo_rectangle_int_t rect;
|
||||
|
||||
rectangle_init_from_graphene (&rect, &node->bounds);
|
||||
cairo_region_union_rectangle (region, &rect);
|
||||
}
|
||||
|
||||
static int
|
||||
gsk_container_node_compare_func (gconstpointer elem1, gconstpointer elem2, gpointer data)
|
||||
{
|
||||
return gsk_render_node_can_diff ((const GskRenderNode *) elem1, (const GskRenderNode *) elem2) ? 0 : 1;
|
||||
}
|
||||
|
||||
static void
|
||||
static GskDiffResult
|
||||
gsk_container_node_keep_func (gconstpointer elem1, gconstpointer elem2, gpointer data)
|
||||
{
|
||||
gsk_render_node_diff ((GskRenderNode *) elem1, (GskRenderNode *) elem2, data);
|
||||
if (cairo_region_num_rectangles (data) > MAX_RECTS_IN_DIFF)
|
||||
return GSK_DIFF_ABORTED;
|
||||
|
||||
return GSK_DIFF_OK;
|
||||
}
|
||||
|
||||
static void
|
||||
static GskDiffResult
|
||||
gsk_container_node_change_func (gconstpointer elem, gsize idx, gpointer data)
|
||||
{
|
||||
gsk_render_node_add_to_region ((GskRenderNode *) elem, data);
|
||||
const GskRenderNode *node = elem;
|
||||
cairo_region_t *region = data;
|
||||
cairo_rectangle_int_t rect;
|
||||
|
||||
rectangle_init_from_graphene (&rect, &node->bounds);
|
||||
cairo_region_union_rectangle (region, &rect);
|
||||
if (cairo_region_num_rectangles (region) > MAX_RECTS_IN_DIFF)
|
||||
return GSK_DIFF_ABORTED;
|
||||
|
||||
return GSK_DIFF_OK;
|
||||
}
|
||||
|
||||
static GskDiffSettings *
|
||||
|
||||
@@ -140,7 +140,7 @@ gtk_css_section_get_parent (const GtkCssSection *section)
|
||||
* If no such file exists, for example because the CSS was loaded via
|
||||
* [method@Gtk.CssProvider.load_from_data], then `NULL` is returned.
|
||||
*
|
||||
* Returns: (transfer none): the `GFile` from which the `section`
|
||||
* Returns: (transfer none) (nullable): the `GFile` from which the `section`
|
||||
* was parsed
|
||||
**/
|
||||
GFile *
|
||||
|
||||
@@ -435,9 +435,11 @@ gtk_application_window_measure (GtkWidget *widget,
|
||||
gtk_widget_measure (priv->menubar, GTK_ORIENTATION_VERTICAL,
|
||||
for_size, &menubar_height, NULL, NULL, NULL);
|
||||
|
||||
|
||||
GTK_WIDGET_CLASS (gtk_application_window_parent_class)->measure (widget,
|
||||
orientation,
|
||||
for_size - menubar_height,
|
||||
for_size > -1 ?
|
||||
for_size - menubar_height : -1,
|
||||
minimum, natural,
|
||||
minimum_baseline, natural_baseline);
|
||||
|
||||
|
||||
+1
-1
@@ -83,7 +83,7 @@ gtk_buildable_set_buildable_id (GtkBuildable *buildable,
|
||||
* `GtkBuilder` sets the name based on the ID attribute
|
||||
* of the <object> tag used to construct the @buildable.
|
||||
*
|
||||
* Returns: the ID of the buildable object
|
||||
* Returns: (nullable): the ID of the buildable object
|
||||
**/
|
||||
const char *
|
||||
gtk_buildable_get_buildable_id (GtkBuildable *buildable)
|
||||
|
||||
@@ -942,7 +942,7 @@ _gtk_css_transform_value_parse (GtkCssParser *parser)
|
||||
|
||||
while (TRUE)
|
||||
{
|
||||
GtkCssTransform transform;
|
||||
GtkCssTransform transform = { 0, };
|
||||
|
||||
if (gtk_css_parser_has_function (parser, "matrix"))
|
||||
{
|
||||
|
||||
@@ -285,6 +285,31 @@ typedef enum
|
||||
GTK_MOVEMENT_HORIZONTAL_PAGES
|
||||
} GtkMovementStep;
|
||||
|
||||
/**
|
||||
* GtkNaturalWrapMode:
|
||||
* @GTK_NATURAL_WRAP_INHERIT: Inherit the minimum size request.
|
||||
* In particular, this should be used with %PANGO_WRAP_CHAR.
|
||||
* @GTK_NATURAL_WRAP_NONE: Try not to wrap the text. This mode is the
|
||||
* closest to GTK3's behavior but can lead to a wide label leaving
|
||||
* lots of empty space below the text.
|
||||
* @GTK_NATURAL_WRAP_WORD: Attempt to wrap at word boundaries. This
|
||||
* is useful in particular when using %PANGO_WRAP_WORD_CHAR as the
|
||||
* wrap mode.
|
||||
*
|
||||
* Options for selecting a different wrap mode for natural size
|
||||
* requests.
|
||||
*
|
||||
* See for example the [property@Gtk.Label:natural-wrap-mode] property.
|
||||
*
|
||||
* Since: 4.6
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
GTK_NATURAL_WRAP_INHERIT,
|
||||
GTK_NATURAL_WRAP_NONE,
|
||||
GTK_NATURAL_WRAP_WORD
|
||||
} GtkNaturalWrapMode;
|
||||
|
||||
/**
|
||||
* GtkScrollStep:
|
||||
* @GTK_SCROLL_STEPS: Scroll in steps.
|
||||
|
||||
+1
-2
@@ -1,4 +1,3 @@
|
||||
|
||||
/*
|
||||
* Copyright © 2019 Benjamin Otte
|
||||
*
|
||||
@@ -1372,7 +1371,7 @@ gtk_property_expression_new_for_pspec (GtkExpression *expression,
|
||||
* Gets the expression specifying the object of
|
||||
* a property expression.
|
||||
*
|
||||
* Returns: (transfer none): the object expression
|
||||
* Returns: (transfer none) (nullable): the object expression
|
||||
*/
|
||||
GtkExpression *
|
||||
gtk_property_expression_get_expression (GtkExpression *expression)
|
||||
|
||||
@@ -50,6 +50,7 @@ GDK_AVAILABLE_IN_ALL
|
||||
GtkExpression * gtk_expression_ref (GtkExpression *self);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
void gtk_expression_unref (GtkExpression *self);
|
||||
G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkExpression, gtk_expression_unref)
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
GType gtk_expression_get_value_type (GtkExpression *self);
|
||||
|
||||
@@ -523,7 +523,7 @@ gtk_file_chooser_set_file (GtkFileChooser *chooser,
|
||||
* If the file chooser is in folder mode, this function returns
|
||||
* the selected folder.
|
||||
*
|
||||
* Returns: (transfer full): a selected `GFile`. You own the
|
||||
* Returns: (transfer full) (nullable): a selected `GFile`. You own the
|
||||
* returned file; use g_object_unref() to release it.
|
||||
*/
|
||||
GFile *
|
||||
@@ -794,7 +794,7 @@ gtk_file_chooser_set_choice (GtkFileChooser *chooser,
|
||||
*
|
||||
* Gets the currently selected option in the 'choice' with the given ID.
|
||||
*
|
||||
* Returns: the ID of the currently selected option
|
||||
* Returns: (nullable): the ID of the currently selected option
|
||||
*/
|
||||
const char *
|
||||
gtk_file_chooser_get_choice (GtkFileChooser *chooser,
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
#include "gtktogglebutton.h"
|
||||
#include "gtkheaderbar.h"
|
||||
#include "gtklabel.h"
|
||||
#include "gtkmain.h"
|
||||
#include "gtkfilefilterprivate.h"
|
||||
#include "gtknative.h"
|
||||
|
||||
@@ -50,6 +51,9 @@
|
||||
|
||||
typedef struct {
|
||||
GtkFileChooserNative *self;
|
||||
|
||||
GtkWidget *grab_widget;
|
||||
|
||||
IFileDialogEvents *events;
|
||||
|
||||
HWND parent;
|
||||
@@ -318,6 +322,12 @@ filechooser_win32_thread_data_free (FilechooserWin32ThreadData *data)
|
||||
if (data->events)
|
||||
IFileDialogEvents_Release (data->events);
|
||||
|
||||
if (data->grab_widget)
|
||||
{
|
||||
gtk_grab_remove (data->grab_widget);
|
||||
g_object_unref (data->grab_widget);
|
||||
}
|
||||
|
||||
g_clear_object (&data->current_folder);
|
||||
g_clear_object (&data->current_file);
|
||||
g_free (data->current_name);
|
||||
@@ -969,6 +979,12 @@ gtk_file_chooser_native_win32_show (GtkFileChooserNative *self)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (data->modal)
|
||||
{
|
||||
data->grab_widget = g_object_ref_sink (gtk_label_new (""));
|
||||
gtk_grab_add (GTK_WIDGET (data->grab_widget));
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
@@ -510,7 +510,7 @@ gtk_flatten_list_model_get_model (GtkFlattenListModel *self)
|
||||
*
|
||||
* Returns the model containing the item at the given position.
|
||||
*
|
||||
* Returns: (transfer none): the model containing the item at @position
|
||||
* Returns: (transfer none) (nullable): the model containing the item at @position
|
||||
*/
|
||||
GListModel *
|
||||
gtk_flatten_list_model_get_model_for_item (GtkFlattenListModel *self,
|
||||
|
||||
@@ -433,6 +433,8 @@ gtk_font_button_font_chooser_set_font_map (GtkFontChooser *chooser,
|
||||
|
||||
context = gtk_widget_get_pango_context (font_button->font_label);
|
||||
pango_context_set_font_map (context, font_map);
|
||||
if (font_button->font_dialog)
|
||||
gtk_font_chooser_set_font_map (GTK_FONT_CHOOSER (font_button->font_dialog), font_map);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+233
-198
@@ -64,9 +64,6 @@
|
||||
#include "gtkstringsorter.h"
|
||||
|
||||
#include <hb-ot.h>
|
||||
#if defined(HAVE_PANGOFT) && defined(HAVE_HARFBUZZ)
|
||||
#include <pango/pangofc-font.h>
|
||||
#endif
|
||||
|
||||
#include "language-names.h"
|
||||
#include "script-names.h"
|
||||
@@ -155,6 +152,8 @@ struct _GtkFontChooserWidget
|
||||
GList *feature_items;
|
||||
|
||||
GAction *tweak_action;
|
||||
|
||||
hb_map_t *glyphmap;
|
||||
};
|
||||
|
||||
struct _GtkFontChooserWidgetClass
|
||||
@@ -362,7 +361,6 @@ user_filter_cb (gpointer item,
|
||||
!pango_font_family_is_monospace (family))
|
||||
return FALSE;
|
||||
|
||||
#ifdef HAVE_PANGOFT
|
||||
if (self->filter_by_language &&
|
||||
self->filter_language)
|
||||
{
|
||||
@@ -370,6 +368,7 @@ user_filter_cb (gpointer item,
|
||||
PangoContext *context;
|
||||
PangoFont *font;
|
||||
gboolean ret;
|
||||
PangoLanguage **langs;
|
||||
|
||||
desc = pango_font_face_describe (face);
|
||||
pango_font_description_set_size (desc, 20);
|
||||
@@ -377,27 +376,19 @@ user_filter_cb (gpointer item,
|
||||
context = gtk_widget_get_pango_context (GTK_WIDGET (self));
|
||||
font = pango_context_load_font (context, desc);
|
||||
|
||||
ret = TRUE;
|
||||
ret = FALSE;
|
||||
|
||||
if (PANGO_IS_FC_FONT (font))
|
||||
langs = pango_font_get_languages (font);
|
||||
if (langs)
|
||||
{
|
||||
PangoLanguage **langs;
|
||||
int i;
|
||||
|
||||
ret = FALSE;
|
||||
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
langs = pango_fc_font_get_languages (PANGO_FC_FONT (font));
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||
if (langs)
|
||||
for (i = 0; langs[i]; i++)
|
||||
{
|
||||
if (langs[i] == self->filter_language)
|
||||
{
|
||||
ret = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (int i = 0; langs[i]; i++)
|
||||
{
|
||||
if (langs[i] == self->filter_language)
|
||||
{
|
||||
ret = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
g_object_unref (font);
|
||||
@@ -405,7 +396,6 @@ G_GNUC_END_IGNORE_DEPRECATIONS
|
||||
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -549,10 +539,16 @@ maybe_update_preview_text (GtkFontChooserWidget *self,
|
||||
PangoFontFace *face,
|
||||
PangoFontDescription *desc)
|
||||
{
|
||||
#if defined(HAVE_PANGOFT) && defined(HAVE_HARFBUZZ)
|
||||
PangoContext *context;
|
||||
PangoFont *font;
|
||||
const char *sample;
|
||||
PangoLanguage **languages;
|
||||
GHashTable *langs = NULL;
|
||||
PangoLanguage *default_lang;
|
||||
PangoLanguage *alt_default = NULL;
|
||||
PangoLanguage *lang = NULL;
|
||||
int i;
|
||||
const char *p;
|
||||
|
||||
/* If the user has typed text into the entry, we don't touch it */
|
||||
if (self->preview_text_set)
|
||||
@@ -576,88 +572,77 @@ maybe_update_preview_text (GtkFontChooserWidget *self,
|
||||
context = gtk_widget_get_pango_context (GTK_WIDGET (self));
|
||||
font = pango_context_load_font (context, desc);
|
||||
|
||||
if (PANGO_IS_FC_FONT (font))
|
||||
default_lang = pango_language_get_default ();
|
||||
p = pango_language_to_string (default_lang);
|
||||
|
||||
/* The default language tends to be of the form en-us.
|
||||
* Since fontconfig languages just have the language part,
|
||||
* and we want to use direct pointer comparisons, we need
|
||||
* an PangoLanguage for the shortened default language.
|
||||
*/
|
||||
if (strchr (p, '-'))
|
||||
{
|
||||
PangoLanguage **languages;
|
||||
GHashTable *langs = NULL;
|
||||
PangoLanguage *default_lang;
|
||||
PangoLanguage *alt_default = NULL;
|
||||
PangoLanguage *lang = NULL;
|
||||
int i;
|
||||
const char *p;
|
||||
char q[10];
|
||||
for (i = 0; p[i] != '-' && i < 9; i++)
|
||||
q[i] = p[i];
|
||||
q[i] = '\0';
|
||||
alt_default = pango_language_from_string (q);
|
||||
}
|
||||
|
||||
default_lang = pango_language_get_default ();
|
||||
p = pango_language_to_string (default_lang);
|
||||
languages = pango_font_get_languages (font);
|
||||
|
||||
/* The default language tends to be of the form en-us.
|
||||
* Since fontconfig languages just have the language part,
|
||||
* and we want to use direct pointer comparisons, we need
|
||||
* an PangoLanguage for the shortened default language.
|
||||
*/
|
||||
if (strchr (p, '-'))
|
||||
{
|
||||
char q[10];
|
||||
for (i = 0; p[i] != '-' && i < 9; i++)
|
||||
q[i] = p[i];
|
||||
q[i] = '\0';
|
||||
alt_default = pango_language_from_string (q);
|
||||
}
|
||||
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
languages = pango_fc_font_get_languages (PANGO_FC_FONT (font));
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||
|
||||
/* If the font supports the default language, just use it. */
|
||||
if (languages)
|
||||
for (i = 0; languages[i]; i++)
|
||||
/* If the font supports the default language, just use it. */
|
||||
if (languages)
|
||||
for (i = 0; languages[i]; i++)
|
||||
{
|
||||
if (languages[i] == default_lang || languages[i] == alt_default)
|
||||
{
|
||||
if (languages[i] == default_lang || languages[i] == alt_default)
|
||||
{
|
||||
lang = default_lang;
|
||||
goto found;
|
||||
}
|
||||
lang = default_lang;
|
||||
goto found;
|
||||
}
|
||||
}
|
||||
|
||||
/* Otherwise, we make a list of representative languages */
|
||||
langs = g_hash_table_new (NULL, NULL);
|
||||
/* Otherwise, we make a list of representative languages */
|
||||
langs = g_hash_table_new (NULL, NULL);
|
||||
|
||||
for (i = 0; languages[i]; i++)
|
||||
if (languages)
|
||||
for (i = 0; languages[i]; i++)
|
||||
{
|
||||
const PangoScript *scripts;
|
||||
int num, j;
|
||||
|
||||
scripts = pango_language_get_scripts (languages[i], &num);
|
||||
for (j = 0; j < num; j++)
|
||||
{
|
||||
lang = pango_script_get_sample_language (scripts[j]);
|
||||
if (lang)
|
||||
g_hash_table_add (langs, lang);
|
||||
}
|
||||
}
|
||||
|
||||
/* ... and compare it to the users default and preferred languages */
|
||||
if (g_hash_table_contains (langs, default_lang) ||
|
||||
g_hash_table_contains (langs, alt_default))
|
||||
{
|
||||
lang = default_lang;
|
||||
}
|
||||
else
|
||||
{
|
||||
PangoLanguage **preferred;
|
||||
|
||||
preferred = pango_language_get_preferred ();
|
||||
if (preferred)
|
||||
{
|
||||
const PangoScript *scripts;
|
||||
int num, j;
|
||||
|
||||
scripts = pango_language_get_scripts (languages[i], &num);
|
||||
for (j = 0; j < num; j++)
|
||||
for (i = 0; preferred[i]; i++)
|
||||
{
|
||||
lang = pango_script_get_sample_language (scripts[j]);
|
||||
if (lang)
|
||||
g_hash_table_add (langs, lang);
|
||||
}
|
||||
}
|
||||
|
||||
/* ... and compare it to the users default and preferred languages */
|
||||
if (g_hash_table_contains (langs, default_lang) ||
|
||||
g_hash_table_contains (langs, alt_default))
|
||||
{
|
||||
lang = default_lang;
|
||||
}
|
||||
else
|
||||
{
|
||||
PangoLanguage **preferred;
|
||||
|
||||
preferred = pango_language_get_preferred ();
|
||||
if (preferred)
|
||||
{
|
||||
for (i = 0; preferred[i]; i++)
|
||||
if (g_hash_table_contains (langs, preferred[i]))
|
||||
{
|
||||
if (g_hash_table_contains (langs, preferred[i]))
|
||||
{
|
||||
lang = preferred[i];
|
||||
break;
|
||||
}
|
||||
lang = preferred[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
g_hash_table_unref (langs);
|
||||
|
||||
found:
|
||||
@@ -667,7 +652,6 @@ found:
|
||||
}
|
||||
|
||||
g_object_unref (font);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -1027,7 +1011,6 @@ axis_free (gpointer v)
|
||||
g_free (a);
|
||||
}
|
||||
|
||||
#ifdef HAVE_PANGOFT
|
||||
static void
|
||||
select_added (GListModel *model,
|
||||
guint position,
|
||||
@@ -1051,6 +1034,10 @@ add_languages_from_font (GtkFontChooserWidget *self,
|
||||
PangoFontDescription *desc;
|
||||
PangoFont *font;
|
||||
PangoContext *context;
|
||||
GtkSelectionModel *model = gtk_list_view_get_model (GTK_LIST_VIEW (self->language_list));
|
||||
PangoLanguage *default_lang = pango_language_get_default ();
|
||||
PangoLanguage **langs;
|
||||
int i;
|
||||
|
||||
if (PANGO_IS_FONT_FAMILY (item))
|
||||
face = pango_font_family_get_face (PANGO_FONT_FAMILY (item), NULL);
|
||||
@@ -1066,44 +1053,35 @@ add_languages_from_font (GtkFontChooserWidget *self,
|
||||
context = gtk_widget_get_pango_context (GTK_WIDGET (self));
|
||||
font = pango_context_load_font (context, desc);
|
||||
|
||||
if (PANGO_IS_FC_FONT (font))
|
||||
langs = pango_font_get_languages (font);
|
||||
if (langs)
|
||||
{
|
||||
GtkSelectionModel *model = gtk_list_view_get_model (GTK_LIST_VIEW (self->language_list));
|
||||
PangoLanguage *default_lang = pango_language_get_default ();
|
||||
PangoLanguage **langs;
|
||||
int i;
|
||||
for (i = 0; langs[i]; i++)
|
||||
{
|
||||
if (!g_hash_table_contains (self->language_table, langs[i]))
|
||||
{
|
||||
g_hash_table_add (self->language_table, langs[i]);
|
||||
if (get_language_name (langs[i]))
|
||||
{
|
||||
const char *l = pango_language_to_string (langs[i]);
|
||||
gulong id = 0;
|
||||
|
||||
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
||||
langs = pango_fc_font_get_languages (PANGO_FC_FONT (font));
|
||||
G_GNUC_END_IGNORE_DEPRECATIONS
|
||||
if (langs)
|
||||
for (i = 0; langs[i]; i++)
|
||||
{
|
||||
if (!g_hash_table_contains (self->language_table, langs[i]))
|
||||
{
|
||||
g_hash_table_add (self->language_table, langs[i]);
|
||||
if (get_language_name (langs[i]))
|
||||
{
|
||||
const char *l = pango_language_to_string (langs[i]);
|
||||
gulong id = 0;
|
||||
/* Pre-select the default language */
|
||||
if (pango_language_matches (default_lang, l))
|
||||
id = g_signal_connect (model, "items-changed", G_CALLBACK (select_added), NULL);
|
||||
|
||||
/* Pre-select the default language */
|
||||
if (pango_language_matches (default_lang, l))
|
||||
id = g_signal_connect (model, "items-changed", G_CALLBACK (select_added), NULL);
|
||||
gtk_string_list_append (self->languages, l);
|
||||
|
||||
gtk_string_list_append (self->languages, l);
|
||||
|
||||
if (id)
|
||||
g_signal_handler_disconnect (model, id);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (id)
|
||||
g_signal_handler_disconnect (model, id);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
g_object_unref (font);
|
||||
pango_font_description_free (desc);
|
||||
}
|
||||
#endif
|
||||
|
||||
static gboolean
|
||||
gtk_font_chooser_widget_ensure_matching_selection (GtkFontChooserWidget *self);
|
||||
@@ -1130,7 +1108,6 @@ add_to_fontlist (GtkWidget *widget,
|
||||
|
||||
n = gtk_slice_list_model_get_size (model);
|
||||
|
||||
#ifdef HAVE_PANGOFT
|
||||
for (i = n; i < n + 10; i++)
|
||||
{
|
||||
gpointer item = g_list_model_get_item (child_model, i);
|
||||
@@ -1139,7 +1116,6 @@ add_to_fontlist (GtkWidget *widget,
|
||||
add_languages_from_font (self, item);
|
||||
g_object_unref (item);
|
||||
}
|
||||
#endif
|
||||
|
||||
n += 10;
|
||||
|
||||
@@ -1179,7 +1155,6 @@ update_fontlist (GtkFontChooserWidget *self)
|
||||
g_object_unref (model);
|
||||
}
|
||||
|
||||
#ifdef HAVE_PANGOFT
|
||||
static void
|
||||
setup_lang_item (GtkSignalListItemFactory *factory,
|
||||
gpointer item,
|
||||
@@ -1269,7 +1244,6 @@ setup_language_list (GtkFontChooserWidget *self)
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
#endif
|
||||
|
||||
static void
|
||||
gtk_font_chooser_widget_init (GtkFontChooserWidget *self)
|
||||
@@ -1310,12 +1284,7 @@ gtk_font_chooser_widget_init (GtkFontChooserWidget *self)
|
||||
|
||||
gtk_custom_filter_set_filter_func (self->user_filter, user_filter_cb, self, NULL);
|
||||
|
||||
#ifdef HAVE_PANGOFT
|
||||
setup_language_list (self);
|
||||
#else
|
||||
gtk_widget_hide (GTK_WIDGET (self->language_button));
|
||||
gtk_widget_hide (GTK_WIDGET (self->language_frame));
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1501,26 +1470,23 @@ add_font_variations (GtkFontChooserWidget *fontchooser,
|
||||
{
|
||||
GHashTableIter iter;
|
||||
Axis *axis;
|
||||
const char *sep = "";
|
||||
char buf[G_ASCII_DTOSTR_BUF_SIZE];
|
||||
|
||||
g_hash_table_iter_init (&iter, fontchooser->axes);
|
||||
while (g_hash_table_iter_next (&iter, (gpointer *)NULL, (gpointer *)&axis))
|
||||
{
|
||||
char tag[5];
|
||||
double value;
|
||||
char buf[128];
|
||||
|
||||
value = gtk_adjustment_get_value (axis->adjustment);
|
||||
|
||||
if (value == axis->default_value)
|
||||
continue;
|
||||
|
||||
tag[0] = (axis->tag >> 24) & 0xff;
|
||||
tag[1] = (axis->tag >> 16) & 0xff;
|
||||
tag[2] = (axis->tag >> 8) & 0xff;
|
||||
tag[3] = (axis->tag >> 0) & 0xff;
|
||||
tag[4] = '\0';
|
||||
g_string_append_printf (s, "%s%s=%s", sep, tag, g_ascii_dtostr (buf, sizeof(buf), value));
|
||||
sep = ",";
|
||||
hb_variation_to_string (&(hb_variation_t) { axis->tag, value }, buf, sizeof (buf));
|
||||
|
||||
if (s->len > 0)
|
||||
g_string_append_c (s, ',');
|
||||
g_string_append (s, buf);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1549,10 +1515,7 @@ adjustment_changed (GtkAdjustment *adjustment,
|
||||
static gboolean
|
||||
should_show_axis (hb_ot_var_axis_info_t *ax)
|
||||
{
|
||||
if (ax->flags & HB_OT_VAR_AXIS_FLAG_HIDDEN)
|
||||
return FALSE;
|
||||
|
||||
return TRUE;
|
||||
return (ax->flags & HB_OT_VAR_AXIS_FLAG_HIDDEN) == 0;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@@ -1566,11 +1529,11 @@ static struct {
|
||||
guint32 tag;
|
||||
const char *name;
|
||||
} axis_names[] = {
|
||||
{ HB_OT_TAG_VAR_AXIS_WIDTH, N_("Width") },
|
||||
{ HB_OT_TAG_VAR_AXIS_WEIGHT, N_("Weight") },
|
||||
{ HB_OT_TAG_VAR_AXIS_ITALIC, N_("Italic") },
|
||||
{ HB_OT_TAG_VAR_AXIS_SLANT, N_("Slant") },
|
||||
{ HB_OT_TAG_VAR_AXIS_OPTICAL_SIZE, N_("Optical Size") },
|
||||
{ HB_OT_TAG_VAR_AXIS_WIDTH, NC_("Font variation axis", "Width") },
|
||||
{ HB_OT_TAG_VAR_AXIS_WEIGHT, NC_("Font variation axis", "Weight") },
|
||||
{ HB_OT_TAG_VAR_AXIS_ITALIC, NC_("Font variation axis", "Italic") },
|
||||
{ HB_OT_TAG_VAR_AXIS_SLANT, NC_("Font variation axis", "Slant") },
|
||||
{ HB_OT_TAG_VAR_AXIS_OPTICAL_SIZE, NC_("Font variation axis", "Optical Size") },
|
||||
};
|
||||
|
||||
static gboolean
|
||||
@@ -1601,7 +1564,7 @@ add_axis (GtkFontChooserWidget *fontchooser,
|
||||
{
|
||||
if (axis_names[i].tag == ax->tag)
|
||||
{
|
||||
name = _(axis_names[i].name);
|
||||
name = g_dpgettext2 (NULL, "Font variation axis", axis_names[i].name);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1643,6 +1606,33 @@ add_axis (GtkFontChooserWidget *fontchooser,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
#if HB_VERSION_ATLEAST (3, 3, 0)
|
||||
static void
|
||||
get_axes_and_values (hb_font_t *font,
|
||||
unsigned int n_axes,
|
||||
hb_ot_var_axis_info_t *axes,
|
||||
float *coords)
|
||||
{
|
||||
const float *dcoords;
|
||||
unsigned int length = n_axes;
|
||||
|
||||
hb_ot_var_get_axis_infos (hb_font_get_face (font), 0, &length, axes);
|
||||
|
||||
dcoords = hb_font_get_var_coords_design (font, &length);
|
||||
if (dcoords)
|
||||
memcpy (coords, dcoords, sizeof (float) * length);
|
||||
else
|
||||
{
|
||||
for (int i = 0; i < n_axes; i++)
|
||||
{
|
||||
hb_ot_var_axis_info_t *axis = &axes[i];
|
||||
coords[axis->axis_index] = axis->default_value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
/* FIXME: This doesn't work if the font has an avar table */
|
||||
static float
|
||||
denorm_coord (hb_ot_var_axis_info_t *axis, int coord)
|
||||
@@ -1655,16 +1645,40 @@ denorm_coord (hb_ot_var_axis_info_t *axis, int coord)
|
||||
return axis->default_value + r * (axis->max_value - axis->default_value);
|
||||
}
|
||||
|
||||
static void
|
||||
get_axes_and_values (hb_font_t *font,
|
||||
unsigned int n_axes,
|
||||
hb_ot_var_axis_info_t *axes,
|
||||
float *coords)
|
||||
{
|
||||
const int *ncoords;
|
||||
unsigned int length = n_axes;
|
||||
|
||||
hb_ot_var_get_axis_infos (hb_font_get_face (font), 0, &length, axes);
|
||||
|
||||
ncoords = hb_font_get_var_coords_normalized (font, &length);
|
||||
|
||||
for (int i = 0; i < n_axes; i++)
|
||||
{
|
||||
hb_ot_var_axis_info_t *axis = &axes[i];
|
||||
int idx = axis->axis_index;
|
||||
if (ncoords)
|
||||
coords[idx] = denorm_coord (axis, ncoords[idx]);
|
||||
else
|
||||
coords[idx] = axis->default_value;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
static gboolean
|
||||
gtk_font_chooser_widget_update_font_variations (GtkFontChooserWidget *fontchooser)
|
||||
{
|
||||
PangoFont *pango_font;
|
||||
hb_font_t *hb_font;
|
||||
hb_face_t *hb_face;
|
||||
const int *coords;
|
||||
unsigned int n_coords;
|
||||
unsigned int n_axes;
|
||||
hb_ot_var_axis_info_t *axes;
|
||||
float *coords;
|
||||
gboolean has_axis = FALSE;
|
||||
int i;
|
||||
|
||||
@@ -1685,24 +1699,17 @@ gtk_font_chooser_widget_update_font_variations (GtkFontChooserWidget *fontchoose
|
||||
if (!hb_ot_var_has_data (hb_face))
|
||||
return FALSE;
|
||||
|
||||
coords = hb_font_get_var_coords_normalized (hb_font, &n_coords);
|
||||
|
||||
n_axes = hb_ot_var_get_axis_count (hb_face);
|
||||
axes = g_new0 (hb_ot_var_axis_info_t, n_axes);
|
||||
hb_ot_var_get_axis_infos (hb_face, 0, &n_axes, axes);
|
||||
axes = g_alloca (sizeof (hb_ot_var_axis_info_t) * n_axes);
|
||||
coords = g_alloca (sizeof (float) * n_axes);
|
||||
get_axes_and_values (hb_font, n_axes, axes, coords);
|
||||
|
||||
for (i = 0; i < n_axes; i++)
|
||||
{
|
||||
float value;
|
||||
if (coords && i < n_coords)
|
||||
value = denorm_coord (&axes[i], coords[i]);
|
||||
else
|
||||
value = axes[i].default_value;
|
||||
if (add_axis (fontchooser, hb_font, &axes[i], value, i + 4))
|
||||
if (add_axis (fontchooser, hb_font, &axes[i], coords[axes[i].axis_index], i + 4))
|
||||
has_axis = TRUE;
|
||||
}
|
||||
|
||||
g_free (axes);
|
||||
g_object_unref (pango_font);
|
||||
|
||||
return has_axis;
|
||||
@@ -1827,11 +1834,12 @@ feat_pressed (GtkGestureClick *gesture,
|
||||
}
|
||||
|
||||
static char *
|
||||
find_affected_text (hb_tag_t feature_tag,
|
||||
hb_font_t *hb_font,
|
||||
hb_tag_t script_tag,
|
||||
hb_tag_t lang_tag,
|
||||
int max_chars)
|
||||
find_affected_text (GtkFontChooserWidget *fontchooser,
|
||||
hb_tag_t feature_tag,
|
||||
hb_font_t *hb_font,
|
||||
hb_tag_t script_tag,
|
||||
hb_tag_t lang_tag,
|
||||
int max_chars)
|
||||
{
|
||||
hb_face_t *hb_face;
|
||||
unsigned int script_index = 0;
|
||||
@@ -1881,24 +1889,35 @@ find_affected_text (hb_tag_t feature_tag,
|
||||
glyphs_after,
|
||||
glyphs_output);
|
||||
|
||||
gid = -1;
|
||||
while (hb_set_next (glyphs_input, &gid)) {
|
||||
hb_codepoint_t ch;
|
||||
if (n_chars == max_chars)
|
||||
{
|
||||
g_string_append (chars, "…");
|
||||
break;
|
||||
}
|
||||
for (ch = 0; ch < 0xffff; ch++) {
|
||||
hb_codepoint_t glyph = 0;
|
||||
hb_font_get_nominal_glyph (hb_font, ch, &glyph);
|
||||
if (glyph == gid) {
|
||||
g_string_append_unichar (chars, (gunichar)ch);
|
||||
n_chars++;
|
||||
break;
|
||||
}
|
||||
if (!fontchooser->glyphmap)
|
||||
{
|
||||
fontchooser->glyphmap = hb_map_create ();
|
||||
for (hb_codepoint_t ch = 0; ch < 0xffff; ch++)
|
||||
{
|
||||
hb_codepoint_t glyph = 0;
|
||||
if (hb_font_get_nominal_glyph (hb_font, ch, &glyph) &&
|
||||
!hb_map_has (fontchooser->glyphmap, glyph))
|
||||
hb_map_set (fontchooser->glyphmap, glyph, ch);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
while (hb_set_next (glyphs_input, &gid))
|
||||
{
|
||||
hb_codepoint_t ch;
|
||||
|
||||
if (n_chars == max_chars)
|
||||
{
|
||||
g_string_append (chars, "…");
|
||||
break;
|
||||
}
|
||||
ch = hb_map_get (fontchooser->glyphmap, gid);
|
||||
if (ch != HB_MAP_VALUE_INVALID)
|
||||
{
|
||||
g_string_append_unichar (chars, (gunichar)ch);
|
||||
n_chars++;
|
||||
}
|
||||
}
|
||||
|
||||
hb_set_destroy (glyphs_input);
|
||||
}
|
||||
}
|
||||
@@ -1907,7 +1926,8 @@ find_affected_text (hb_tag_t feature_tag,
|
||||
}
|
||||
|
||||
static void
|
||||
update_feature_example (FeatureItem *item,
|
||||
update_feature_example (GtkFontChooserWidget *fontchooser,
|
||||
FeatureItem *item,
|
||||
hb_font_t *hb_font,
|
||||
hb_tag_t script_tag,
|
||||
hb_tag_t lang_tag,
|
||||
@@ -1962,9 +1982,9 @@ update_feature_example (FeatureItem *item,
|
||||
else if (strcmp (item->name, "frac") == 0)
|
||||
input = g_strdup ("1/2 2/3 7/8");
|
||||
else if (strcmp (item->name, "nalt") == 0)
|
||||
input = find_affected_text (item->tag, hb_font, script_tag, lang_tag, 3);
|
||||
input = find_affected_text (fontchooser, item->tag, hb_font, script_tag, lang_tag, 3);
|
||||
else
|
||||
input = find_affected_text (item->tag, hb_font, script_tag, lang_tag, 10);
|
||||
input = find_affected_text (fontchooser, item->tag, hb_font, script_tag, lang_tag, 10);
|
||||
|
||||
if (input[0] != '\0')
|
||||
{
|
||||
@@ -2244,7 +2264,7 @@ gtk_font_chooser_widget_update_font_features (GtkFontChooserWidget *fontchooser)
|
||||
gtk_widget_show (item->top);
|
||||
gtk_widget_show (gtk_widget_get_parent (item->top));
|
||||
|
||||
update_feature_example (item, hb_font, script_tag, lang_tag, fontchooser->font_desc);
|
||||
update_feature_example (fontchooser, item, hb_font, script_tag, lang_tag, fontchooser->font_desc);
|
||||
|
||||
if (GTK_IS_CHECK_BUTTON (item->feat))
|
||||
{
|
||||
@@ -2260,6 +2280,12 @@ gtk_font_chooser_widget_update_font_features (GtkFontChooserWidget *fontchooser)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (fontchooser->glyphmap)
|
||||
{
|
||||
hb_map_destroy (fontchooser->glyphmap);
|
||||
fontchooser->glyphmap = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
g_object_unref (pango_font);
|
||||
@@ -2272,6 +2298,7 @@ update_font_features (GtkFontChooserWidget *fontchooser)
|
||||
{
|
||||
GString *s;
|
||||
GList *l;
|
||||
char buf[128];
|
||||
|
||||
s = g_string_new ("");
|
||||
|
||||
@@ -2287,17 +2314,24 @@ update_font_features (GtkFontChooserWidget *fontchooser)
|
||||
if (gtk_check_button_get_active (GTK_CHECK_BUTTON (item->feat)) &&
|
||||
strcmp (item->name, "xxxx") != 0)
|
||||
{
|
||||
g_string_append_printf (s, "%s\"%s\" %d", s->len > 0 ? ", " : "", item->name, 1);
|
||||
hb_feature_to_string (&(hb_feature_t) { item->tag, 1, 0, -1 }, buf, sizeof (buf));
|
||||
if (s->len > 0)
|
||||
g_string_append_c (s, ',');
|
||||
g_string_append (s, buf);
|
||||
}
|
||||
}
|
||||
else if (GTK_IS_CHECK_BUTTON (item->feat))
|
||||
{
|
||||
guint32 value;
|
||||
|
||||
if (gtk_check_button_get_inconsistent (GTK_CHECK_BUTTON (item->feat)))
|
||||
continue;
|
||||
|
||||
g_string_append_printf (s, "%s\"%s\" %d",
|
||||
s->len > 0 ? ", " : "", item->name,
|
||||
gtk_check_button_get_active (GTK_CHECK_BUTTON (item->feat)));
|
||||
value = gtk_check_button_get_active (GTK_CHECK_BUTTON (item->feat));
|
||||
hb_feature_to_string (&(hb_feature_t) { item->tag, value, 0, -1 }, buf, sizeof (buf));
|
||||
if (s->len > 0)
|
||||
g_string_append_c (s, ',');
|
||||
g_string_append (s, buf);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2335,7 +2369,8 @@ gtk_font_chooser_widget_merge_font_desc (GtkFontChooserWidget *fontchooser
|
||||
{
|
||||
double font_size = (double) pango_font_description_get_size (fontchooser->font_desc) / PANGO_SCALE;
|
||||
/* XXX: This clamps, which can cause it to reloop into here, do we need
|
||||
* to block its signal handler? */
|
||||
* to block its signal handler?
|
||||
*/
|
||||
gtk_range_set_value (GTK_RANGE (fontchooser->size_slider), font_size);
|
||||
gtk_spin_button_set_value (GTK_SPIN_BUTTON (fontchooser->size_spin), font_size);
|
||||
}
|
||||
|
||||
+1
-1
@@ -1317,7 +1317,7 @@ gtk_gl_area_set_auto_render (GtkGLArea *area,
|
||||
*
|
||||
* Retrieves the `GdkGLContext` used by @area.
|
||||
*
|
||||
* Returns: (transfer none): the `GdkGLContext`
|
||||
* Returns: (transfer none) (nullable): the `GdkGLContext`
|
||||
*/
|
||||
GdkGLContext *
|
||||
gtk_gl_area_get_context (GtkGLArea *area)
|
||||
|
||||
+1
-1
@@ -6519,7 +6519,7 @@ gtk_icon_view_get_dest_item_at_pos (GtkIconView *icon_view,
|
||||
* Creates a `GdkPaintable` representation of the item at @path.
|
||||
* This image is used for a drag icon.
|
||||
*
|
||||
* Returns: (transfer full): a newly-allocated `GdkPaintable` of the drag icon.
|
||||
* Returns: (transfer full) (nullable): a newly-allocated `GdkPaintable` of the drag icon.
|
||||
**/
|
||||
GdkPaintable *
|
||||
gtk_icon_view_create_drag_icon (GtkIconView *icon_view,
|
||||
|
||||
+102
-9
@@ -55,6 +55,7 @@
|
||||
#include "gtkjoinedmenuprivate.h"
|
||||
|
||||
#include <math.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
/**
|
||||
@@ -272,6 +273,7 @@ struct _GtkLabel
|
||||
guint ellipsize : 3;
|
||||
guint use_markup : 1;
|
||||
guint wrap_mode : 3;
|
||||
guint natural_wrap_mode : 3;
|
||||
guint single_line_mode : 1;
|
||||
guint in_click : 1;
|
||||
guint track_links : 1;
|
||||
@@ -380,6 +382,7 @@ enum {
|
||||
PROP_JUSTIFY,
|
||||
PROP_WRAP,
|
||||
PROP_WRAP_MODE,
|
||||
PROP_NATURAL_WRAP_MODE,
|
||||
PROP_SELECTABLE,
|
||||
PROP_MNEMONIC_KEYVAL,
|
||||
PROP_MNEMONIC_WIDGET,
|
||||
@@ -484,6 +487,9 @@ gtk_label_set_property (GObject *object,
|
||||
case PROP_WRAP_MODE:
|
||||
gtk_label_set_wrap_mode (self, g_value_get_enum (value));
|
||||
break;
|
||||
case PROP_NATURAL_WRAP_MODE:
|
||||
gtk_label_set_natural_wrap_mode (self, g_value_get_enum (value));
|
||||
break;
|
||||
case PROP_SELECTABLE:
|
||||
gtk_label_set_selectable (self, g_value_get_boolean (value));
|
||||
break;
|
||||
@@ -551,6 +557,9 @@ gtk_label_get_property (GObject *object,
|
||||
case PROP_WRAP_MODE:
|
||||
g_value_set_enum (value, self->wrap_mode);
|
||||
break;
|
||||
case PROP_NATURAL_WRAP_MODE:
|
||||
g_value_set_enum (value, self->natural_wrap_mode);
|
||||
break;
|
||||
case PROP_SELECTABLE:
|
||||
g_value_set_boolean (value, gtk_label_get_selectable (self));
|
||||
break;
|
||||
@@ -604,6 +613,7 @@ gtk_label_init (GtkLabel *self)
|
||||
self->jtype = GTK_JUSTIFY_LEFT;
|
||||
self->wrap = FALSE;
|
||||
self->wrap_mode = PANGO_WRAP_WORD;
|
||||
self->natural_wrap_mode = GTK_NATURAL_WRAP_INHERIT;
|
||||
self->ellipsize = PANGO_ELLIPSIZE_NONE;
|
||||
|
||||
self->use_underline = FALSE;
|
||||
@@ -1218,8 +1228,6 @@ get_width_for_height (GtkLabel *self,
|
||||
gtk_label_ensure_layout (self);
|
||||
layout = pango_layout_copy (self->layout);
|
||||
pango_layout_set_ellipsize (layout, PANGO_ELLIPSIZE_NONE);
|
||||
if (self->wrap_mode == PANGO_WRAP_WORD_CHAR)
|
||||
pango_layout_set_wrap (layout, PANGO_WRAP_WORD);
|
||||
|
||||
/* binary search for the smallest width where the height doesn't
|
||||
* eclipse the given height */
|
||||
@@ -1228,8 +1236,19 @@ get_width_for_height (GtkLabel *self,
|
||||
pango_layout_set_width (layout, -1);
|
||||
pango_layout_get_size (layout, &max, NULL);
|
||||
|
||||
*natural_width = my_pango_layout_get_width_for_height (layout, height, min, max);
|
||||
/* first, do natural width */
|
||||
if (self->natural_wrap_mode == GTK_NATURAL_WRAP_NONE)
|
||||
{
|
||||
*natural_width = max;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (self->natural_wrap_mode == GTK_NATURAL_WRAP_WORD)
|
||||
pango_layout_set_wrap (layout, PANGO_WRAP_WORD);
|
||||
*natural_width = my_pango_layout_get_width_for_height (layout, height, min, max);
|
||||
}
|
||||
|
||||
/* then, do minimum width */
|
||||
if (self->ellipsize != PANGO_ELLIPSIZE_NONE)
|
||||
{
|
||||
g_object_unref (layout);
|
||||
@@ -1237,14 +1256,14 @@ get_width_for_height (GtkLabel *self,
|
||||
pango_layout_get_size (layout, minimum_width, NULL);
|
||||
*minimum_width = MAX (*minimum_width, minimum_default);
|
||||
}
|
||||
else if (self->wrap_mode == PANGO_WRAP_WORD_CHAR)
|
||||
else if (self->natural_wrap_mode == GTK_NATURAL_WRAP_INHERIT)
|
||||
{
|
||||
pango_layout_set_wrap (layout, PANGO_WRAP_WORD_CHAR);
|
||||
*minimum_width = my_pango_layout_get_width_for_height (layout, height, min, *natural_width);
|
||||
*minimum_width = *natural_width;
|
||||
}
|
||||
else
|
||||
{
|
||||
*minimum_width = *natural_width;
|
||||
pango_layout_set_wrap (layout, self->wrap_mode);
|
||||
*minimum_width = my_pango_layout_get_width_for_height (layout, height, min, *natural_width);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2375,6 +2394,9 @@ gtk_label_class_init (GtkLabelClass *class)
|
||||
* This only affects the formatting if line wrapping is on (see the
|
||||
* [property@Gtk.Label:wrap] property). The default is %PANGO_WRAP_WORD,
|
||||
* which means wrap on word boundaries.
|
||||
*
|
||||
* For sizing behavior, also consider the [property@Gtk.Label:natural-wrap-mode]
|
||||
* property.
|
||||
*/
|
||||
label_props[PROP_WRAP_MODE] =
|
||||
g_param_spec_enum ("wrap-mode",
|
||||
@@ -2384,6 +2406,27 @@ gtk_label_class_init (GtkLabelClass *class)
|
||||
PANGO_WRAP_WORD,
|
||||
GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY);
|
||||
|
||||
/**
|
||||
* GtkLabel:natural-wrap-mode: (attributes org.gtk.Property.get=gtk_label_get_natural_wrap_mode org.gtk.Property.set=gtk_label_set_natural_wrap_mode)
|
||||
*
|
||||
* Select the line wrapping for the natural size request.
|
||||
*
|
||||
* This only affects the natural size requested. For the actual wrapping used,
|
||||
* see the [property@Gtk.Label:wrap-mode] property.
|
||||
*
|
||||
* The default is %GTK_NATURAL_WRAP_INHERIT, which inherits the behavior of the
|
||||
* [property@Gtk.Label:wrap-mode] property.
|
||||
*
|
||||
* Since: 4.6
|
||||
*/
|
||||
label_props[PROP_NATURAL_WRAP_MODE] =
|
||||
g_param_spec_enum ("natural-wrap-mode",
|
||||
P_("Natural wrap mode"),
|
||||
P_("If wrap is set, controls linewrapping for natural size requests"),
|
||||
GTK_TYPE_NATURAL_WRAP_MODE,
|
||||
GTK_NATURAL_WRAP_INHERIT,
|
||||
GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY);
|
||||
|
||||
/**
|
||||
* GtkLabel:selectable: (attributes org.gtk.Property.get=gtk_label_get_selectable og.gtk.Property.set=gtk_label_set_selectable)
|
||||
*
|
||||
@@ -2450,7 +2493,7 @@ gtk_label_class_init (GtkLabelClass *class)
|
||||
*
|
||||
* If this property is set to -1, the width will be calculated automatically.
|
||||
*
|
||||
* See the section on [text layout](#text-layout) for details of how
|
||||
* See the section on [text layout](class.Label.html#text-layout) for details of how
|
||||
* [property@Gtk.Label:width-chars] and [property@Gtk.Label:max-width-chars]
|
||||
* determine the width of ellipsized and wrapped labels.
|
||||
*/
|
||||
@@ -2486,7 +2529,7 @@ gtk_label_class_init (GtkLabelClass *class)
|
||||
*
|
||||
* If this property is set to -1, the width will be calculated automatically.
|
||||
*
|
||||
* See the section on [text layout](#text-layout) for details of how
|
||||
* See the section on [text layout](class.Label.html#text-layout) for details of how
|
||||
* [property@Gtk.Label:width-chars] and [property@Gtk.Label:max-width-chars]
|
||||
* determine the width of ellipsized and wrapped labels.
|
||||
*/
|
||||
@@ -3998,6 +4041,9 @@ gtk_label_get_wrap (GtkLabel *self)
|
||||
* This only affects the label if line wrapping is on. (See
|
||||
* [method@Gtk.Label.set_wrap]) The default is %PANGO_WRAP_WORD
|
||||
* which means wrap on word boundaries.
|
||||
*
|
||||
* For sizing behavior, also consider the [property@Gtk.Label:natural-wrap-mode]
|
||||
* property.
|
||||
*/
|
||||
void
|
||||
gtk_label_set_wrap_mode (GtkLabel *self,
|
||||
@@ -4032,6 +4078,53 @@ gtk_label_get_wrap_mode (GtkLabel *self)
|
||||
return self->wrap_mode;
|
||||
}
|
||||
|
||||
/**
|
||||
* gtk_label_set_natural_wrap_mode: (attributes org.gtk.Method.set_property=natural-wrap-mode)
|
||||
* @self: a `GtkLabel`
|
||||
* @wrap_mode: the line wrapping mode
|
||||
*
|
||||
* Select the line wrapping for the natural size request.
|
||||
*
|
||||
* This only affects the natural size requested, for the actual wrapping used,
|
||||
* see the [property@Gtk.Label:wrap-mode] property.
|
||||
*
|
||||
* Since: 4.6
|
||||
*/
|
||||
void
|
||||
gtk_label_set_natural_wrap_mode (GtkLabel *self,
|
||||
GtkNaturalWrapMode wrap_mode)
|
||||
{
|
||||
g_return_if_fail (GTK_IS_LABEL (self));
|
||||
|
||||
if (self->natural_wrap_mode != wrap_mode)
|
||||
{
|
||||
self->natural_wrap_mode = wrap_mode;
|
||||
g_object_notify_by_pspec (G_OBJECT (self), label_props[PROP_NATURAL_WRAP_MODE]);
|
||||
|
||||
gtk_widget_queue_resize (GTK_WIDGET (self));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gtk_label_get_natural_wrap_mode: (attributes org.gtk.Method.get_property=natural-wrap-mode)
|
||||
* @self: a `GtkLabel`
|
||||
*
|
||||
* Returns line wrap mode used by the label.
|
||||
*
|
||||
* See [method@Gtk.Label.set_natural_wrap_mode].
|
||||
*
|
||||
* Returns: the natural line wrap mode
|
||||
*
|
||||
* Since: 4.6
|
||||
*/
|
||||
GtkNaturalWrapMode
|
||||
gtk_label_get_natural_wrap_mode (GtkLabel *self)
|
||||
{
|
||||
g_return_val_if_fail (GTK_IS_LABEL (self), GTK_NATURAL_WRAP_INHERIT);
|
||||
|
||||
return self->natural_wrap_mode;
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_label_clear_layout (GtkLabel *self)
|
||||
{
|
||||
|
||||
@@ -122,6 +122,11 @@ void gtk_label_set_wrap_mode (GtkLabel *self,
|
||||
PangoWrapMode wrap_mode);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
PangoWrapMode gtk_label_get_wrap_mode (GtkLabel *self);
|
||||
GDK_AVAILABLE_IN_4_6
|
||||
void gtk_label_set_natural_wrap_mode (GtkLabel *self,
|
||||
GtkNaturalWrapMode wrap_mode);
|
||||
GDK_AVAILABLE_IN_4_6
|
||||
GtkNaturalWrapMode gtk_label_get_natural_wrap_mode(GtkLabel *self);
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
void gtk_label_set_selectable (GtkLabel *self,
|
||||
gboolean setting);
|
||||
|
||||
+1
-1
@@ -1078,7 +1078,7 @@ gtk_list_box_set_adjustment (GtkListBox *box,
|
||||
* Gets the adjustment (if any) that the widget uses to
|
||||
* for vertical scrolling.
|
||||
*
|
||||
* Returns: (transfer none): the adjustment
|
||||
* Returns: (transfer none) (nullable): the adjustment
|
||||
*/
|
||||
GtkAdjustment *
|
||||
gtk_list_box_get_adjustment (GtkListBox *box)
|
||||
|
||||
+1
-1
@@ -535,7 +535,7 @@ gtk_lock_button_new (GPermission *permission)
|
||||
*
|
||||
* Obtains the `GPermission` object that controls @button.
|
||||
*
|
||||
* Returns: (transfer none): the `GPermission` of @button
|
||||
* Returns: (transfer none) (nullable): the `GPermission` of @button
|
||||
*/
|
||||
GPermission *
|
||||
gtk_lock_button_get_permission (GtkLockButton *button)
|
||||
|
||||
@@ -68,6 +68,7 @@
|
||||
#include "gtknative.h"
|
||||
#include "gtkpopcountprivate.h"
|
||||
|
||||
#include "inspector/init.h"
|
||||
#include "inspector/window.h"
|
||||
|
||||
#include "gdk/gdkeventsprivate.h"
|
||||
@@ -566,6 +567,8 @@ do_post_parse_initialization (void)
|
||||
g_signal_connect (display_manager, "notify::default-display",
|
||||
G_CALLBACK (default_display_notify_cb),
|
||||
NULL);
|
||||
|
||||
gtk_inspector_register_extension ();
|
||||
}
|
||||
|
||||
#ifdef G_PLATFORM_WIN32
|
||||
|
||||
@@ -45,8 +45,7 @@
|
||||
*
|
||||
* widgets = gtk_widget_observe_children (widget);
|
||||
*
|
||||
* controllers = gtk_map_list_model_new (G_TYPE_LIST_MODEL,
|
||||
* widgets,
|
||||
* controllers = gtk_map_list_model_new (widgets,
|
||||
* map_to_controllers,
|
||||
* NULL, NULL);
|
||||
*
|
||||
|
||||
+4
-2
@@ -1028,6 +1028,7 @@ gtk_menu_button_set_icon_name (GtkMenuButton *menu_button,
|
||||
*/
|
||||
gtk_accessible_update_relation (GTK_ACCESSIBLE (menu_button->button),
|
||||
GTK_ACCESSIBLE_RELATION_LABELLED_BY, menu_button, NULL,
|
||||
GTK_ACCESSIBLE_RELATION_DESCRIBED_BY, menu_button, NULL,
|
||||
-1);
|
||||
|
||||
image_widget = g_object_new (GTK_TYPE_IMAGE,
|
||||
@@ -1059,7 +1060,7 @@ gtk_menu_button_set_icon_name (GtkMenuButton *menu_button,
|
||||
*
|
||||
* Gets the name of the icon shown in the button.
|
||||
*
|
||||
* Returns: the name of the icon shown in the button
|
||||
* Returns: (nullable): the name of the icon shown in the button
|
||||
*/
|
||||
const char *
|
||||
gtk_menu_button_get_icon_name (GtkMenuButton *menu_button)
|
||||
@@ -1164,6 +1165,7 @@ gtk_menu_button_set_label (GtkMenuButton *menu_button,
|
||||
|
||||
gtk_accessible_update_relation (GTK_ACCESSIBLE (menu_button->button),
|
||||
GTK_ACCESSIBLE_RELATION_LABELLED_BY, menu_button->label_widget, NULL,
|
||||
GTK_ACCESSIBLE_RELATION_DESCRIBED_BY, menu_button->label_widget, NULL,
|
||||
-1);
|
||||
|
||||
menu_button->image_widget = NULL;
|
||||
@@ -1182,7 +1184,7 @@ gtk_menu_button_set_label (GtkMenuButton *menu_button,
|
||||
*
|
||||
* Gets the label shown in the button
|
||||
*
|
||||
* Returns: the label shown in the button
|
||||
* Returns: (nullable): the label shown in the button
|
||||
*/
|
||||
const char *
|
||||
gtk_menu_button_get_label (GtkMenuButton *menu_button)
|
||||
|
||||
@@ -1873,7 +1873,7 @@ gtk_mount_operation_set_parent (GtkMountOperation *op,
|
||||
*
|
||||
* Gets the transient parent used by the `GtkMountOperation`.
|
||||
*
|
||||
* Returns: (transfer none): the transient parent for windows shown by @op
|
||||
* Returns: (transfer none) (nullable): the transient parent for windows shown by @op
|
||||
*/
|
||||
GtkWindow *
|
||||
gtk_mount_operation_get_parent (GtkMountOperation *op)
|
||||
|
||||
@@ -396,7 +396,7 @@ gtk_multi_selection_new (GListModel *model)
|
||||
*
|
||||
* Returns the underlying model of @self.
|
||||
*
|
||||
* Returns: (transfer none): the underlying model
|
||||
* Returns: (transfer none) (nullable): the underlying model
|
||||
*/
|
||||
GListModel *
|
||||
gtk_multi_selection_get_model (GtkMultiSelection *self)
|
||||
|
||||
+1
-1
@@ -267,7 +267,7 @@ gtk_native_get_surface_transform (GtkNative *self,
|
||||
*
|
||||
* Finds the `GtkNative` associated with the surface.
|
||||
*
|
||||
* Returns: (transfer none): the `GtkNative` that is associated with @surface
|
||||
* Returns: (transfer none) (nullable): the `GtkNative` that is associated with @surface
|
||||
*/
|
||||
GtkNative *
|
||||
gtk_native_get_for_surface (GdkSurface *surface)
|
||||
|
||||
@@ -242,7 +242,7 @@ gtk_no_selection_new (GListModel *model)
|
||||
*
|
||||
* Gets the model that @self is wrapping.
|
||||
*
|
||||
* Returns: (transfer none): The model being wrapped
|
||||
* Returns: (transfer none) (nullable): The model being wrapped
|
||||
*/
|
||||
GListModel *
|
||||
gtk_no_selection_get_model (GtkNoSelection *self)
|
||||
|
||||
@@ -729,7 +729,7 @@ gtk_password_entry_set_extra_menu (GtkPasswordEntry *entry,
|
||||
*
|
||||
* Gets the menu model set with gtk_password_entry_set_extra_menu().
|
||||
*
|
||||
* Returns: (transfer none): (nullable): the menu model
|
||||
* Returns: (transfer none) (nullable): the menu model
|
||||
*/
|
||||
GMenuModel *
|
||||
gtk_password_entry_get_extra_menu (GtkPasswordEntry *entry)
|
||||
|
||||
+1
-1
@@ -2103,7 +2103,7 @@ gtk_popover_buildable_init (GtkBuildableIface *iface)
|
||||
/**
|
||||
* gtk_popover_set_pointing_to: (attributes org.gtk.Method.set_property=pointing-to)
|
||||
* @popover: a `GtkPopover`
|
||||
* @rect: rectangle to point to
|
||||
* @rect: (nullable): rectangle to point to
|
||||
*
|
||||
* Sets the rectangle that @popover points to.
|
||||
*
|
||||
|
||||
@@ -819,7 +819,7 @@ gtk_popover_menu_set_menu_model (GtkPopoverMenu *popover,
|
||||
*
|
||||
* Returns the menu model used to populate the popover.
|
||||
*
|
||||
* Returns: (transfer none): the menu model of @popover
|
||||
* Returns: (transfer none) (nullable): the menu model of @popover
|
||||
*/
|
||||
GMenuModel *
|
||||
gtk_popover_menu_get_menu_model (GtkPopoverMenu *popover)
|
||||
|
||||
@@ -746,7 +746,7 @@ gtk_popover_menu_bar_set_menu_model (GtkPopoverMenuBar *bar,
|
||||
*
|
||||
* Returns the model from which the contents of @bar are taken.
|
||||
*
|
||||
* Returns: (transfer none): a `GMenuModel`
|
||||
* Returns: (transfer none) (nullable): a `GMenuModel`
|
||||
*/
|
||||
GMenuModel *
|
||||
gtk_popover_menu_bar_get_menu_model (GtkPopoverMenuBar *bar)
|
||||
|
||||
@@ -154,7 +154,7 @@ gtk_print_settings_copy (GtkPrintSettings *other)
|
||||
*
|
||||
* Looks up the string value associated with @key.
|
||||
*
|
||||
* Returns: the string value for @key
|
||||
* Returns: (nullable): the string value for @key
|
||||
*/
|
||||
const char *
|
||||
gtk_print_settings_get (GtkPrintSettings *settings,
|
||||
@@ -480,7 +480,7 @@ gtk_print_settings_foreach (GtkPrintSettings *settings,
|
||||
* Convenience function to obtain the value of
|
||||
* %GTK_PRINT_SETTINGS_PRINTER.
|
||||
*
|
||||
* Returns: the printer name
|
||||
* Returns: (nullable): the printer name
|
||||
*/
|
||||
const char *
|
||||
gtk_print_settings_get_printer (GtkPrintSettings *settings)
|
||||
@@ -574,7 +574,7 @@ gtk_print_settings_set_orientation (GtkPrintSettings *settings,
|
||||
* Gets the value of %GTK_PRINT_SETTINGS_PAPER_FORMAT,
|
||||
* converted to a `GtkPaperSize`.
|
||||
*
|
||||
* Returns: the paper size
|
||||
* Returns: (nullable): the paper size
|
||||
*/
|
||||
GtkPaperSize *
|
||||
gtk_print_settings_get_paper_size (GtkPrintSettings *settings)
|
||||
@@ -779,7 +779,7 @@ gtk_print_settings_set_collate (GtkPrintSettings *settings,
|
||||
*
|
||||
* Gets the value of %GTK_PRINT_SETTINGS_REVERSE.
|
||||
*
|
||||
* Returns: whether to reverse the order of the printed pages
|
||||
* Returns: whether to reverse the order of the printed pages
|
||||
*/
|
||||
gboolean
|
||||
gtk_print_settings_get_reverse (GtkPrintSettings *settings)
|
||||
@@ -1415,7 +1415,7 @@ gtk_print_settings_set_page_ranges (GtkPrintSettings *settings,
|
||||
*
|
||||
* Gets the value of %GTK_PRINT_SETTINGS_DEFAULT_SOURCE.
|
||||
*
|
||||
* Returns: the default source
|
||||
* Returns: (nullable): the default source
|
||||
*/
|
||||
const char *
|
||||
gtk_print_settings_get_default_source (GtkPrintSettings *settings)
|
||||
@@ -1445,7 +1445,7 @@ gtk_print_settings_set_default_source (GtkPrintSettings *settings,
|
||||
*
|
||||
* The set of media types is defined in PWG 5101.1-2002 PWG.
|
||||
*
|
||||
* Returns: the media type
|
||||
* Returns: (nullable): the media type
|
||||
*/
|
||||
const char *
|
||||
gtk_print_settings_get_media_type (GtkPrintSettings *settings)
|
||||
@@ -1475,7 +1475,7 @@ gtk_print_settings_set_media_type (GtkPrintSettings *settings,
|
||||
*
|
||||
* Gets the value of %GTK_PRINT_SETTINGS_DITHER.
|
||||
*
|
||||
* Returns: the dithering that is used
|
||||
* Returns: (nullable): the dithering that is used
|
||||
*/
|
||||
const char *
|
||||
gtk_print_settings_get_dither (GtkPrintSettings *settings)
|
||||
@@ -1503,7 +1503,7 @@ gtk_print_settings_set_dither (GtkPrintSettings *settings,
|
||||
*
|
||||
* Gets the value of %GTK_PRINT_SETTINGS_FINISHINGS.
|
||||
*
|
||||
* Returns: the finishings
|
||||
* Returns: (nullable): the finishings
|
||||
*/
|
||||
const char *
|
||||
gtk_print_settings_get_finishings (GtkPrintSettings *settings)
|
||||
@@ -1531,7 +1531,7 @@ gtk_print_settings_set_finishings (GtkPrintSettings *settings,
|
||||
*
|
||||
* Gets the value of %GTK_PRINT_SETTINGS_OUTPUT_BIN.
|
||||
*
|
||||
* Returns: the output bin
|
||||
* Returns: (nullable): the output bin
|
||||
*/
|
||||
const char *
|
||||
gtk_print_settings_get_output_bin (GtkPrintSettings *settings)
|
||||
|
||||
@@ -1025,6 +1025,7 @@ gtk_progress_bar_set_inverted (GtkProgressBar *pbar,
|
||||
|
||||
pbar->inverted = inverted;
|
||||
|
||||
gtk_widget_queue_allocate (pbar->trough_widget);
|
||||
update_node_classes (pbar);
|
||||
|
||||
g_object_notify_by_pspec (G_OBJECT (pbar), progress_props[PROP_INVERTED]);
|
||||
|
||||
+2
-2
@@ -130,7 +130,7 @@ gtk_scrollable_default_init (GtkScrollableInterface *iface)
|
||||
*
|
||||
* Retrieves the `GtkAdjustment` used for horizontal scrolling.
|
||||
*
|
||||
* Returns: (transfer none): horizontal `GtkAdjustment`.
|
||||
* Returns: (transfer none) (nullable): horizontal `GtkAdjustment`.
|
||||
*/
|
||||
GtkAdjustment *
|
||||
gtk_scrollable_get_hadjustment (GtkScrollable *scrollable)
|
||||
@@ -174,7 +174,7 @@ gtk_scrollable_set_hadjustment (GtkScrollable *scrollable,
|
||||
*
|
||||
* Retrieves the `GtkAdjustment` used for vertical scrolling.
|
||||
*
|
||||
* Returns: (transfer none): vertical `GtkAdjustment`.
|
||||
* Returns: (transfer none) (nullable): vertical `GtkAdjustment`.
|
||||
*/
|
||||
GtkAdjustment *
|
||||
gtk_scrollable_get_vadjustment (GtkScrollable *scrollable)
|
||||
|
||||
+1
-1
@@ -663,7 +663,7 @@ gtk_search_bar_set_key_capture_widget (GtkSearchBar *bar,
|
||||
*
|
||||
* Gets the widget that @bar is capturing key events from.
|
||||
*
|
||||
* Returns: (transfer none): The key capture widget.
|
||||
* Returns: (nullable) (transfer none): The key capture widget.
|
||||
**/
|
||||
GtkWidget *
|
||||
gtk_search_bar_get_key_capture_widget (GtkSearchBar *bar)
|
||||
|
||||
@@ -763,7 +763,7 @@ gtk_search_entry_set_key_capture_widget (GtkSearchEntry *entry,
|
||||
*
|
||||
* Gets the widget that @entry is capturing key events from.
|
||||
*
|
||||
* Returns: (transfer none): The key capture widget.
|
||||
* Returns: (nullable) (transfer none): The key capture widget.
|
||||
*/
|
||||
GtkWidget *
|
||||
gtk_search_entry_get_key_capture_widget (GtkSearchEntry *entry)
|
||||
|
||||
@@ -461,9 +461,9 @@ gtk_widget_query_size_for_orientation (GtkWidget *widget,
|
||||
* @minimum: (out) (optional): location to store the minimum size
|
||||
* @natural: (out) (optional): location to store the natural size
|
||||
* @minimum_baseline: (out) (optional): location to store the baseline
|
||||
* position for the minimum size
|
||||
* position for the minimum size, or -1 to report no baseline
|
||||
* @natural_baseline: (out) (optional): location to store the baseline
|
||||
* position for the natural size
|
||||
* position for the natural size, or -1 to report no baseline
|
||||
*
|
||||
* Measures @widget in the orientation @orientation and for the given @for_size.
|
||||
*
|
||||
@@ -493,11 +493,7 @@ gtk_widget_measure (GtkWidget *widget,
|
||||
int min_opposite_size;
|
||||
gtk_widget_measure (widget, OPPOSITE_ORIENTATION (orientation), -1, &min_opposite_size, NULL, NULL, NULL);
|
||||
if (for_size < min_opposite_size)
|
||||
{
|
||||
g_critical ("gtk_widget_measure: assertion 'for_size >= minimum opposite size' failed: %u >= %u",
|
||||
for_size, min_opposite_size);
|
||||
for_size = min_opposite_size;
|
||||
}
|
||||
for_size = min_opposite_size;
|
||||
}
|
||||
|
||||
/* This is the main function that checks for a cached size and
|
||||
|
||||
@@ -981,11 +981,8 @@ gtk_text_history_selection_changed (GtkTextHistory *self,
|
||||
return_if_applying (self);
|
||||
return_if_irreversible (self);
|
||||
|
||||
if (self->in_user == 0 && self->irreversible == 0)
|
||||
{
|
||||
self->selection.insert = CLAMP (selection_insert, -1, G_MAXINT);
|
||||
self->selection.bound = CLAMP (selection_bound, -1, G_MAXINT);
|
||||
}
|
||||
self->selection.insert = CLAMP (selection_insert, -1, G_MAXINT);
|
||||
self->selection.bound = CLAMP (selection_bound, -1, G_MAXINT);
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
+1
-1
@@ -346,7 +346,7 @@ gtk_text_mark_get_deleted (GtkTextMark *mark)
|
||||
*
|
||||
* Returns %NULL if the mark is deleted.
|
||||
*
|
||||
* Returns: (transfer none): the mark’s `GtkTextBuffer`
|
||||
* Returns: (transfer none) (nullable): the mark’s `GtkTextBuffer`
|
||||
*/
|
||||
GtkTextBuffer*
|
||||
gtk_text_mark_get_buffer (GtkTextMark *mark)
|
||||
|
||||
+10
-2
@@ -10101,7 +10101,11 @@ gtk_text_view_real_undo (GtkWidget *widget,
|
||||
GtkTextView *text_view = GTK_TEXT_VIEW (widget);
|
||||
|
||||
if (gtk_text_view_get_editable (text_view))
|
||||
gtk_text_buffer_undo (text_view->priv->buffer);
|
||||
{
|
||||
gtk_text_buffer_undo (text_view->priv->buffer);
|
||||
gtk_text_view_scroll_mark_onscreen (text_view,
|
||||
gtk_text_buffer_get_insert (text_view->priv->buffer));
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -10112,7 +10116,11 @@ gtk_text_view_real_redo (GtkWidget *widget,
|
||||
GtkTextView *text_view = GTK_TEXT_VIEW (widget);
|
||||
|
||||
if (gtk_text_view_get_editable (text_view))
|
||||
gtk_text_buffer_redo (text_view->priv->buffer);
|
||||
{
|
||||
gtk_text_buffer_redo (text_view->priv->buffer);
|
||||
gtk_text_view_scroll_mark_onscreen (text_view,
|
||||
gtk_text_buffer_get_insert (text_view->priv->buffer));
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
+2
-1
@@ -4971,7 +4971,8 @@ gtk_widget_real_css_changed (GtkWidget *widget,
|
||||
{
|
||||
gtk_widget_queue_resize (widget);
|
||||
}
|
||||
else if (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_TRANSFORM))
|
||||
else if (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_TRANSFORM) &&
|
||||
priv->parent)
|
||||
{
|
||||
gtk_widget_queue_allocate (priv->parent);
|
||||
}
|
||||
|
||||
+9
-1
@@ -148,6 +148,14 @@
|
||||
* # Accessibility
|
||||
*
|
||||
* `GtkWindow` uses the %GTK_ACCESSIBLE_ROLE_WINDOW role.
|
||||
*
|
||||
* # Actions
|
||||
*
|
||||
* `GtkWindow` defines a set of built-in actions:
|
||||
* - `default.activate`: Activate the default widget.
|
||||
* - `window.minimize`: Minimize the window.
|
||||
* - `window.toggle-maximized`: Maximize or restore the window.
|
||||
* - `window.close`: Close the window.
|
||||
*/
|
||||
|
||||
#define MENU_BAR_ACCEL GDK_KEY_F10
|
||||
@@ -1200,7 +1208,7 @@ gtk_window_class_init (GtkWindowClass *klass)
|
||||
/**
|
||||
* GtkWindow|window.minimize:
|
||||
*
|
||||
* Close the window.
|
||||
* Minimize the window.
|
||||
*/
|
||||
gtk_widget_class_install_action (widget_class, "window.minimize", NULL,
|
||||
gtk_window_activate_minimize);
|
||||
|
||||
+131
-38
@@ -25,6 +25,7 @@
|
||||
#include "gtkbinlayout.h"
|
||||
#include "gtkbox.h"
|
||||
#include "gtkdebug.h"
|
||||
#include "gtkdropcontrollermotion.h"
|
||||
#include "gtklabel.h"
|
||||
#include "gtklistbox.h"
|
||||
#include "gtktogglebutton.h"
|
||||
@@ -37,6 +38,9 @@ struct _GtkInspectorClipboard
|
||||
|
||||
GtkWidget *swin;
|
||||
|
||||
GtkWidget *dnd_formats;
|
||||
GtkWidget *dnd_info;
|
||||
|
||||
GtkWidget *clipboard_formats;
|
||||
GtkWidget *clipboard_info;
|
||||
|
||||
@@ -56,12 +60,17 @@ load_gtype_value (GObject *source,
|
||||
GAsyncResult *res,
|
||||
gpointer data)
|
||||
{
|
||||
GdkClipboard *clipboard = GDK_CLIPBOARD (source);
|
||||
GtkDataViewer *viewer = data;
|
||||
const GValue *value;
|
||||
GError *error = NULL;
|
||||
|
||||
value = gdk_clipboard_read_value_finish (clipboard, res, &error);
|
||||
if (GDK_IS_CLIPBOARD (source))
|
||||
value = gdk_clipboard_read_value_finish (GDK_CLIPBOARD (source), res, &error);
|
||||
else if (GDK_IS_DROP (source))
|
||||
value = gdk_drop_read_value_finish (GDK_DROP (source), res, &error);
|
||||
else
|
||||
g_assert_not_reached ();
|
||||
|
||||
if (value == NULL)
|
||||
gtk_data_viewer_load_error (viewer, error);
|
||||
else
|
||||
@@ -75,14 +84,30 @@ load_gtype (GtkDataViewer *viewer,
|
||||
GCancellable *cancellable,
|
||||
gpointer gtype)
|
||||
{
|
||||
GdkClipboard *clipboard = g_object_get_data (G_OBJECT (viewer), "clipboard");
|
||||
GObject *data_source = g_object_get_data (G_OBJECT (viewer), "data-source");
|
||||
|
||||
gdk_clipboard_read_value_async (clipboard,
|
||||
GPOINTER_TO_SIZE (gtype),
|
||||
G_PRIORITY_DEFAULT,
|
||||
cancellable,
|
||||
load_gtype_value,
|
||||
g_object_ref (viewer));
|
||||
if (GDK_IS_CLIPBOARD (data_source))
|
||||
{
|
||||
gdk_clipboard_read_value_async (GDK_CLIPBOARD (data_source),
|
||||
GPOINTER_TO_SIZE (gtype),
|
||||
G_PRIORITY_DEFAULT,
|
||||
cancellable,
|
||||
load_gtype_value,
|
||||
g_object_ref (viewer));
|
||||
}
|
||||
else if (GDK_IS_DROP (data_source))
|
||||
{
|
||||
gdk_drop_read_value_async (GDK_DROP (data_source),
|
||||
GPOINTER_TO_SIZE (gtype),
|
||||
G_PRIORITY_DEFAULT,
|
||||
cancellable,
|
||||
load_gtype_value,
|
||||
g_object_ref (viewer));
|
||||
}
|
||||
else
|
||||
{
|
||||
g_assert_not_reached ();
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -92,13 +117,18 @@ load_mime_type_stream (GObject *source,
|
||||
GAsyncResult *res,
|
||||
gpointer data)
|
||||
{
|
||||
GdkClipboard *clipboard = GDK_CLIPBOARD (source);
|
||||
GtkDataViewer *viewer = data;
|
||||
GInputStream *stream;
|
||||
GError *error = NULL;
|
||||
const char *mime_type;
|
||||
|
||||
stream = gdk_clipboard_read_finish (clipboard, res, &mime_type, &error);
|
||||
if (GDK_IS_CLIPBOARD (source))
|
||||
stream = gdk_clipboard_read_finish (GDK_CLIPBOARD (source), res, &mime_type, &error);
|
||||
else if (GDK_IS_DROP (source))
|
||||
stream = gdk_drop_read_finish (GDK_DROP (source), res, &mime_type, &error);
|
||||
else
|
||||
g_assert_not_reached ();
|
||||
|
||||
if (stream == NULL)
|
||||
gtk_data_viewer_load_error (viewer, error);
|
||||
else
|
||||
@@ -112,23 +142,48 @@ load_mime_type (GtkDataViewer *viewer,
|
||||
GCancellable *cancellable,
|
||||
gpointer mime_type)
|
||||
{
|
||||
GdkClipboard *clipboard = g_object_get_data (G_OBJECT (viewer), "clipboard");
|
||||
GObject *data_source = g_object_get_data (G_OBJECT (viewer), "data-source");
|
||||
|
||||
gdk_clipboard_read_async (clipboard,
|
||||
(const char *[2]) { mime_type, NULL },
|
||||
G_PRIORITY_DEFAULT,
|
||||
cancellable,
|
||||
load_mime_type_stream,
|
||||
g_object_ref (viewer));
|
||||
if (GDK_IS_CLIPBOARD (data_source))
|
||||
{
|
||||
gdk_clipboard_read_async (GDK_CLIPBOARD (data_source),
|
||||
(const char *[2]) { mime_type, NULL },
|
||||
G_PRIORITY_DEFAULT,
|
||||
cancellable,
|
||||
load_mime_type_stream,
|
||||
g_object_ref (viewer));
|
||||
}
|
||||
else if (GDK_IS_DROP (data_source))
|
||||
{
|
||||
gdk_drop_read_async (GDK_DROP (data_source),
|
||||
(const char *[2]) { mime_type, NULL },
|
||||
G_PRIORITY_DEFAULT,
|
||||
cancellable,
|
||||
load_mime_type_stream,
|
||||
g_object_ref (viewer));
|
||||
}
|
||||
else
|
||||
{
|
||||
g_assert_not_reached ();
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
on_drop_row_enter (GtkDropControllerMotion *motion,
|
||||
double x,
|
||||
double y,
|
||||
GtkWidget *viewer)
|
||||
{
|
||||
gtk_widget_set_visible (viewer, TRUE);
|
||||
}
|
||||
|
||||
static void
|
||||
add_content_type_row (GtkInspectorClipboard *self,
|
||||
GtkListBox *list,
|
||||
const char *type_name,
|
||||
GdkClipboard *clipboard,
|
||||
GObject *data_source,
|
||||
GCallback load_func,
|
||||
gpointer load_func_data)
|
||||
{
|
||||
@@ -146,19 +201,39 @@ add_content_type_row (GtkInspectorClipboard *self,
|
||||
gtk_widget_set_hexpand (label, TRUE);
|
||||
gtk_box_append (GTK_BOX (hbox), label);
|
||||
|
||||
button = gtk_toggle_button_new_with_label (_("Show"));
|
||||
gtk_widget_set_halign (button, GTK_ALIGN_END);
|
||||
gtk_widget_set_valign (button, GTK_ALIGN_BASELINE);
|
||||
gtk_box_append (GTK_BOX (hbox), button);
|
||||
|
||||
viewer = gtk_data_viewer_new ();
|
||||
g_signal_connect (viewer, "load", load_func, load_func_data);
|
||||
g_object_set_data (G_OBJECT (viewer), "clipboard", clipboard);
|
||||
g_object_bind_property (G_OBJECT (button), "active",
|
||||
G_OBJECT (viewer), "visible",
|
||||
G_BINDING_SYNC_CREATE);
|
||||
g_object_set_data (G_OBJECT (viewer), "data-source", data_source);
|
||||
gtk_box_append (GTK_BOX (vbox), viewer);
|
||||
|
||||
if (GDK_IS_CLIPBOARD (data_source))
|
||||
{
|
||||
button = gtk_toggle_button_new_with_label (_("Show"));
|
||||
gtk_widget_set_halign (button, GTK_ALIGN_END);
|
||||
gtk_widget_set_valign (button, GTK_ALIGN_BASELINE);
|
||||
gtk_box_append (GTK_BOX (hbox), button);
|
||||
|
||||
g_object_bind_property (G_OBJECT (button), "active",
|
||||
G_OBJECT (viewer), "visible",
|
||||
G_BINDING_SYNC_CREATE);
|
||||
}
|
||||
else
|
||||
{
|
||||
GtkEventController *controller = gtk_drop_controller_motion_new ();
|
||||
g_signal_connect (controller, "enter", G_CALLBACK (on_drop_row_enter), viewer);
|
||||
gtk_widget_add_controller (vbox, controller);
|
||||
|
||||
gtk_widget_set_visible (viewer, FALSE);
|
||||
|
||||
label = gtk_label_new (_("Hover to load"));
|
||||
g_object_bind_property (G_OBJECT (viewer), "visible",
|
||||
G_OBJECT (label), "visible",
|
||||
G_BINDING_SYNC_CREATE | G_BINDING_INVERT_BOOLEAN);
|
||||
gtk_widget_set_halign (label, GTK_ALIGN_END);
|
||||
gtk_widget_set_valign (label, GTK_ALIGN_BASELINE);
|
||||
gtk_box_append (GTK_BOX (hbox), label);
|
||||
}
|
||||
|
||||
row = gtk_list_box_row_new ();
|
||||
gtk_list_box_row_set_child (GTK_LIST_BOX_ROW (row), vbox);
|
||||
gtk_list_box_row_set_activatable (GTK_LIST_BOX_ROW (row), FALSE);
|
||||
@@ -169,10 +244,10 @@ add_content_type_row (GtkInspectorClipboard *self,
|
||||
static void
|
||||
init_formats (GtkInspectorClipboard *self,
|
||||
GtkListBox *list,
|
||||
GdkClipboard *clipboard)
|
||||
GdkContentFormats *formats,
|
||||
GObject *data_source)
|
||||
{
|
||||
GtkListBoxRow *row;
|
||||
GdkContentFormats *formats;
|
||||
const char * const *mime_types;
|
||||
const GType *gtypes;
|
||||
gsize i, n;
|
||||
@@ -180,15 +255,13 @@ init_formats (GtkInspectorClipboard *self,
|
||||
while ((row = gtk_list_box_get_row_at_index (list, 1)))
|
||||
gtk_list_box_remove (list, GTK_WIDGET (row));
|
||||
|
||||
formats = gdk_clipboard_get_formats (clipboard);
|
||||
|
||||
gtypes = gdk_content_formats_get_gtypes (formats, &n);
|
||||
for (i = 0; i < n; i++)
|
||||
add_content_type_row (self, list, g_type_name (gtypes[i]), clipboard, G_CALLBACK (load_gtype), GSIZE_TO_POINTER (gtypes[i]));
|
||||
add_content_type_row (self, list, g_type_name (gtypes[i]), data_source, G_CALLBACK (load_gtype), GSIZE_TO_POINTER (gtypes[i]));
|
||||
|
||||
mime_types = gdk_content_formats_get_mime_types (formats, &n);
|
||||
for (i = 0; i < n; i++)
|
||||
add_content_type_row (self, list, mime_types[i], clipboard, G_CALLBACK (load_mime_type), (gpointer) mime_types[i]);
|
||||
add_content_type_row (self, list, mime_types[i], data_source, G_CALLBACK (load_mime_type), (gpointer) mime_types[i]);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -219,7 +292,7 @@ clipboard_notify (GdkClipboard *clipboard,
|
||||
{
|
||||
if (g_str_equal (pspec->name, "formats"))
|
||||
{
|
||||
init_formats (self, GTK_LIST_BOX (self->clipboard_formats), clipboard);
|
||||
init_formats (self, GTK_LIST_BOX (self->clipboard_formats), gdk_clipboard_get_formats (clipboard), G_OBJECT (clipboard));
|
||||
}
|
||||
|
||||
init_info (self, GTK_LABEL (self->clipboard_info), clipboard);
|
||||
@@ -232,12 +305,28 @@ primary_notify (GdkClipboard *clipboard,
|
||||
{
|
||||
if (g_str_equal (pspec->name, "formats"))
|
||||
{
|
||||
init_formats (self, GTK_LIST_BOX (self->primary_formats), clipboard);
|
||||
init_formats (self, GTK_LIST_BOX (self->primary_formats), gdk_clipboard_get_formats (clipboard), G_OBJECT (clipboard));
|
||||
}
|
||||
|
||||
init_info (self, GTK_LABEL (self->primary_info), clipboard);
|
||||
}
|
||||
|
||||
static void
|
||||
on_drop_enter (GtkDropControllerMotion *motion,
|
||||
double x,
|
||||
double y,
|
||||
GtkInspectorClipboard *self)
|
||||
{
|
||||
GdkDrop *drop = gtk_drop_controller_motion_get_drop (motion);
|
||||
|
||||
init_formats (self, GTK_LIST_BOX (self->dnd_formats), gdk_drop_get_formats (drop), G_OBJECT (drop));
|
||||
|
||||
if (gdk_drop_get_drag (drop))
|
||||
gtk_label_set_text (GTK_LABEL (self->dnd_info), C_("clipboard", "local"));
|
||||
else
|
||||
gtk_label_set_text (GTK_LABEL (self->dnd_info), C_("clipboard", "remote"));
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_inspector_clipboard_unset_display (GtkInspectorClipboard *self)
|
||||
{
|
||||
@@ -281,11 +370,15 @@ gtk_inspector_clipboard_class_init (GtkInspectorClipboardClass *klass)
|
||||
|
||||
gtk_widget_class_set_template_from_resource (widget_class, "/org/gtk/libgtk/inspector/clipboard.ui");
|
||||
gtk_widget_class_bind_template_child (widget_class, GtkInspectorClipboard, swin);
|
||||
gtk_widget_class_bind_template_child (widget_class, GtkInspectorClipboard, dnd_formats);
|
||||
gtk_widget_class_bind_template_child (widget_class, GtkInspectorClipboard, dnd_info);
|
||||
gtk_widget_class_bind_template_child (widget_class, GtkInspectorClipboard, clipboard_formats);
|
||||
gtk_widget_class_bind_template_child (widget_class, GtkInspectorClipboard, clipboard_info);
|
||||
gtk_widget_class_bind_template_child (widget_class, GtkInspectorClipboard, primary_formats);
|
||||
gtk_widget_class_bind_template_child (widget_class, GtkInspectorClipboard, primary_info);
|
||||
|
||||
gtk_widget_class_bind_template_callback (widget_class, on_drop_enter);
|
||||
|
||||
gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BIN_LAYOUT);
|
||||
}
|
||||
|
||||
@@ -304,12 +397,12 @@ gtk_inspector_clipboard_set_display (GtkInspectorClipboard *self,
|
||||
|
||||
clipboard = gdk_display_get_clipboard (display);
|
||||
g_signal_connect (clipboard, "notify", G_CALLBACK (clipboard_notify), self);
|
||||
init_formats (self, GTK_LIST_BOX (self->clipboard_formats), clipboard);
|
||||
init_formats (self, GTK_LIST_BOX (self->clipboard_formats), gdk_clipboard_get_formats (clipboard), G_OBJECT (clipboard));
|
||||
init_info (self, GTK_LABEL (self->clipboard_info), clipboard);
|
||||
|
||||
clipboard = gdk_display_get_primary_clipboard (display);
|
||||
g_signal_connect (clipboard, "notify", G_CALLBACK (primary_notify), self);
|
||||
init_formats (self, GTK_LIST_BOX (self->primary_formats), clipboard);
|
||||
init_formats (self, GTK_LIST_BOX (self->primary_formats), gdk_clipboard_get_formats (clipboard), G_OBJECT (clipboard));
|
||||
init_info (self, GTK_LABEL (self->primary_info), clipboard);
|
||||
}
|
||||
|
||||
|
||||
@@ -12,6 +12,50 @@
|
||||
<property name="margin-top">60</property>
|
||||
<property name="margin-bottom">60</property>
|
||||
<property name="spacing">10</property>
|
||||
<child>
|
||||
<object class="GtkFrame">
|
||||
<child>
|
||||
<object class="GtkListBox" id="dnd_formats">
|
||||
<property name="selection-mode">none</property>
|
||||
<style>
|
||||
<class name="rich-list"/>
|
||||
</style>
|
||||
<child>
|
||||
<object class="GtkListBoxRow">
|
||||
<property name="activatable">0</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="spacing">40</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="label" translatable="yes">Drag and hold here</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">baseline</property>
|
||||
<property name="xalign">0.0</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="dnd_info">
|
||||
<property name="selectable">1</property>
|
||||
<property name="halign">end</property>
|
||||
<property name="valign">baseline</property>
|
||||
<property name="ellipsize">end</property>
|
||||
<property name="hexpand">1</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkDropControllerMotion">
|
||||
<signal name="enter" handler="on_drop_enter" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkFrame">
|
||||
<child>
|
||||
|
||||
+21
-17
@@ -55,10 +55,14 @@
|
||||
|
||||
#include "gtkmodulesprivate.h"
|
||||
|
||||
static GIOExtensionPoint *extension_point = NULL;
|
||||
|
||||
void
|
||||
gtk_inspector_init (void)
|
||||
{
|
||||
static GIOExtensionPoint *extension_point = NULL;
|
||||
GIOModuleScope *scope;
|
||||
char **paths;
|
||||
int i;
|
||||
|
||||
g_type_ensure (G_TYPE_LIST_STORE);
|
||||
|
||||
@@ -89,26 +93,26 @@ gtk_inspector_init (void)
|
||||
g_type_ensure (GTK_TYPE_INSPECTOR_VISUAL);
|
||||
g_type_ensure (GTK_TYPE_INSPECTOR_WINDOW);
|
||||
|
||||
if (extension_point == NULL)
|
||||
{
|
||||
GIOModuleScope *scope;
|
||||
char **paths;
|
||||
int i;
|
||||
paths = _gtk_get_module_path ("inspector");
|
||||
scope = g_io_module_scope_new (G_IO_MODULE_SCOPE_BLOCK_DUPLICATES);
|
||||
|
||||
extension_point = g_io_extension_point_register ("gtk-inspector-page");
|
||||
g_io_extension_point_set_required_type (extension_point, GTK_TYPE_WIDGET);
|
||||
for (i = 0; paths[i] != NULL; i++)
|
||||
g_io_modules_load_all_in_directory_with_scope (paths[i], scope);
|
||||
|
||||
paths = _gtk_get_module_path ("inspector");
|
||||
scope = g_io_module_scope_new (G_IO_MODULE_SCOPE_BLOCK_DUPLICATES);
|
||||
|
||||
for (i = 0; paths[i] != NULL; i++)
|
||||
g_io_modules_load_all_in_directory_with_scope (paths[i], scope);
|
||||
|
||||
g_strfreev (paths);
|
||||
g_io_module_scope_free (scope);
|
||||
}
|
||||
g_strfreev (paths);
|
||||
g_io_module_scope_free (scope);
|
||||
|
||||
gtk_css_provider_set_keep_css_sections ();
|
||||
}
|
||||
|
||||
void
|
||||
gtk_inspector_register_extension (void)
|
||||
{
|
||||
if (extension_point == NULL)
|
||||
{
|
||||
extension_point = g_io_extension_point_register ("gtk-inspector-page");
|
||||
g_io_extension_point_set_required_type (extension_point, GTK_TYPE_WIDGET);
|
||||
}
|
||||
}
|
||||
|
||||
// vim: set et sw=2 ts=2:
|
||||
|
||||
@@ -18,12 +18,10 @@
|
||||
#ifndef _GTK_INSPECTOR_INIT_H_
|
||||
#define _GTK_INSPECTOR_INIT_H_
|
||||
|
||||
#include <gdk/gdkversionmacros.h>
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
GDK_AVAILABLE_IN_ALL
|
||||
void gtk_inspector_init (void);
|
||||
void gtk_inspector_init (void);
|
||||
void gtk_inspector_register_extension (void);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
||||
+16
-2
@@ -18,6 +18,7 @@
|
||||
#include <hb-ot.h>
|
||||
|
||||
#include "language-names.h"
|
||||
#include "gtkprivate.h"
|
||||
|
||||
#ifndef ISO_CODES_PREFIX
|
||||
#define ISO_CODES_PREFIX "/usr"
|
||||
@@ -200,11 +201,22 @@ languages_variant_init (const char *variant)
|
||||
char *filename;
|
||||
GError *error;
|
||||
|
||||
bindtextdomain (variant, ISO_CODES_LOCALESDIR);
|
||||
char *iso_codes_datadir;
|
||||
char *iso_codes_localedir;
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
iso_codes_datadir = g_build_filename (_gtk_get_datadir (), "xml", "iso-codes", NULL);
|
||||
iso_codes_localedir = _gtk_get_localedir ();
|
||||
#else
|
||||
iso_codes_datadir = g_strdup (ISO_CODES_DATADIR);
|
||||
iso_codes_localedir = g_strdup (ISO_CODES_LOCALESDIR);
|
||||
#endif
|
||||
|
||||
bindtextdomain (variant, iso_codes_localedir);
|
||||
bind_textdomain_codeset (variant, "UTF-8");
|
||||
|
||||
error = NULL;
|
||||
filename = g_strconcat (ISO_CODES_DATADIR, "/", variant, ".xml", NULL);
|
||||
filename = g_strconcat (iso_codes_datadir, "/", variant, ".xml", NULL);
|
||||
res = g_file_get_contents (filename, &buf, &buf_len, &error);
|
||||
if (res)
|
||||
{
|
||||
@@ -230,6 +242,8 @@ languages_variant_init (const char *variant)
|
||||
|
||||
g_free (filename);
|
||||
g_free (buf);
|
||||
g_free (iso_codes_datadir);
|
||||
g_free (iso_codes_localedir);
|
||||
}
|
||||
|
||||
static void
|
||||
|
||||
+7
-19
@@ -883,6 +883,7 @@ if not meson.is_cross_build() and build_machine.system() == 'linux' and objcopy.
|
||||
depfile : 'gtk.gresource.d',
|
||||
command : [glib_compile_resources,
|
||||
'--generate',
|
||||
'--internal',
|
||||
'--target=@OUTPUT@',
|
||||
'--dependency-file=@DEPFILE@',
|
||||
'--sourcedir=' + meson.current_source_dir(),
|
||||
@@ -897,6 +898,7 @@ if not meson.is_cross_build() and build_machine.system() == 'linux' and objcopy.
|
||||
depfile : 'gtkresources.c.d',
|
||||
command : [glib_compile_resources,
|
||||
'--generate-source',
|
||||
'--internal',
|
||||
'--target=@OUTPUT@',
|
||||
'--dependency-file=@DEPFILE@',
|
||||
'--sourcedir=' + meson.current_source_dir(),
|
||||
@@ -913,6 +915,7 @@ if not meson.is_cross_build() and build_machine.system() == 'linux' and objcopy.
|
||||
depfile : 'gtkresources.h.d',
|
||||
command : [glib_compile_resources,
|
||||
'--generate-header',
|
||||
'--internal',
|
||||
'--target=@OUTPUT@',
|
||||
'--dependency-file=@DEPFILE@',
|
||||
'--sourcedir=' + meson.current_source_dir(),
|
||||
@@ -927,6 +930,7 @@ if not meson.is_cross_build() and build_machine.system() == 'linux' and objcopy.
|
||||
input : gtk_gresource,
|
||||
output : 'gtkresources_blob.o',
|
||||
command : [ld,
|
||||
'-z', 'noexecstack',
|
||||
'-r',
|
||||
'-b','binary',
|
||||
'@INPUT@',
|
||||
@@ -937,6 +941,7 @@ if not meson.is_cross_build() and build_machine.system() == 'linux' and objcopy.
|
||||
input : gtk_resources_binary,
|
||||
output : 'gtkresources_blob2.o',
|
||||
command : [objcopy,
|
||||
'--strip-all',
|
||||
'--add-symbol','_gtk_resource_data=.data:0',
|
||||
'@INPUT@',
|
||||
'@OUTPUT@'])
|
||||
@@ -1101,7 +1106,7 @@ if harfbuzz_dep.found() and pangoft_dep.found()
|
||||
endif
|
||||
|
||||
if x11_enabled
|
||||
x11_data_prefix = dependency('x11').get_pkgconfig_variable('prefix')
|
||||
x11_data_prefix = dependency('x11').get_variable(pkgconfig: 'prefix')
|
||||
|
||||
gtk_cargs += [ '-DX11_DATA_PREFIX="@0@"'.format(x11_data_prefix), ]
|
||||
gtk_sources += gtk_x11_sources
|
||||
@@ -1205,28 +1210,11 @@ libgtk_static = static_library('gtk',
|
||||
link_with: [libgtk_css, libgdk, libgsk ],
|
||||
)
|
||||
|
||||
# `link_whole:` is actually only supported on Visual Studio 2015 Update 2
|
||||
# or later via the linker flag `/WHOLEARCHIVE:<static_lib>`, so we need
|
||||
# to work around it for Visual Studio 2013. Note that all needed static
|
||||
# libs are required so that we grab the object files from each of them to
|
||||
# link the final GTK DLL.
|
||||
whole_archives = []
|
||||
gtk4_objs = []
|
||||
|
||||
if cc.get_id() == 'msvc' and cc.version().split('.').get(0) < '19'
|
||||
foreach target : [ libgtk_static, libgtk_css, libgdk, libgdk_win32, libgsk, libgsk_f16c ]
|
||||
gtk4_objs += target.extract_all_objects(recursive: false)
|
||||
endforeach
|
||||
else
|
||||
whole_archives = [libgtk_static, libgtk_css, libgdk, libgsk ]
|
||||
endif
|
||||
|
||||
libgtk = shared_library('gtk-4',
|
||||
c_args: gtk_cargs + common_cflags,
|
||||
include_directories: [confinc, gdkinc, gskinc, gtkinc],
|
||||
dependencies: gtk_deps + [libgtk_css_dep, libgdk_dep, libgsk_dep],
|
||||
link_whole: whole_archives,
|
||||
objects: gtk4_objs,
|
||||
link_whole: [libgtk_static, libgtk_css, libgdk, libgsk ],
|
||||
link_args: common_ldflags,
|
||||
soversion: gtk_soversion,
|
||||
version: gtk_library_version,
|
||||
|
||||
+6
-6
@@ -1,5 +1,5 @@
|
||||
project('gtk', 'c',
|
||||
version: '4.5.1',
|
||||
version: '4.6.0',
|
||||
default_options: [
|
||||
'buildtype=debugoptimized',
|
||||
'warning_level=1',
|
||||
@@ -456,7 +456,7 @@ colord_dep = dependency('colord', version: '>= 0.1.9', required: get_option('col
|
||||
cdata.set('HAVE_COLORD', colord_dep.found())
|
||||
|
||||
if iso_codes_dep.found()
|
||||
cdata.set_quoted('ISO_CODES_PREFIX', iso_codes_dep.get_pkgconfig_variable('prefix'))
|
||||
cdata.set_quoted('ISO_CODES_PREFIX', iso_codes_dep.get_variable(pkgconfig: 'prefix'))
|
||||
else
|
||||
cdata.set_quoted('ISO_CODES_PREFIX', '/usr')
|
||||
endif
|
||||
@@ -515,7 +515,7 @@ if wayland_enabled
|
||||
if not wlprotocolsdep.found()
|
||||
wlproto_dir = subproject('wayland-protocols').get_variable('wayland_protocols_srcdir')
|
||||
else
|
||||
wlproto_dir = wlprotocolsdep.get_pkgconfig_variable('pkgdatadir')
|
||||
wlproto_dir = wlprotocolsdep.get_variable(pkgconfig: 'pkgdatadir')
|
||||
endif
|
||||
|
||||
wayland_pkgs = [
|
||||
@@ -614,7 +614,7 @@ if win32_enabled
|
||||
else
|
||||
pc_gdk_extra_libs += ['-Wl,-luuid']
|
||||
endif
|
||||
pc_gdk_extra_libs += ['-lwinmm', '-ldwmapi', '-lsetupapi', '-lcfgmgr32']
|
||||
pc_gdk_extra_libs += ['-lwinmm', '-ldwmapi', '-lsetupapi', '-lcfgmgr32', '-lhid']
|
||||
|
||||
# Check whether libepoxy is built with EGL support on Windows
|
||||
endif
|
||||
@@ -709,8 +709,8 @@ endif
|
||||
|
||||
graphene_dep_type = graphene_dep.type_name()
|
||||
if graphene_dep_type == 'pkgconfig'
|
||||
graphene_has_sse2 = graphene_dep.get_pkgconfig_variable('graphene_has_sse2') == '1'
|
||||
graphene_has_gcc = graphene_dep.get_pkgconfig_variable('graphene_has_gcc') == '1'
|
||||
graphene_has_sse2 = graphene_dep.get_variable(pkgconfig: 'graphene_has_sse2') == '1'
|
||||
graphene_has_gcc = graphene_dep.get_variable(pkgconfig: 'graphene_has_gcc') == '1'
|
||||
else
|
||||
graphene_simd = subproject('graphene').get_variable('graphene_simd')
|
||||
graphene_has_sse2 = graphene_simd.contains('sse2')
|
||||
|
||||
@@ -7,6 +7,7 @@ demos/gtk-demo/appwindow.c
|
||||
demos/gtk-demo/blendmodes.ui
|
||||
demos/gtk-demo/changedisplay.c
|
||||
demos/gtk-demo/clipboard.c
|
||||
demos/gtk-demo/clipboard.ui
|
||||
demos/gtk-demo/combobox.c
|
||||
demos/gtk-demo/constraints_builder.ui
|
||||
demos/gtk-demo/constraints.ui
|
||||
|
||||
+248
-232
File diff suppressed because it is too large
Load Diff
+268
-283
File diff suppressed because it is too large
Load Diff
+51
-39
@@ -7,12 +7,13 @@
|
||||
# Sérgio Cardeira <cardeira dot sergio at gmail dot com>, 2016.
|
||||
# Tiago Santos <tiagofsantos81@sapo.pt>, 2014 - 2016.
|
||||
# Hugo Carvalho <hugokarvalho@hotmail.com>, 2021.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: 3.12\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n"
|
||||
"POT-Creation-Date: 2021-12-13 19:56+0000\n"
|
||||
"PO-Revision-Date: 2021-12-14 14:19+0000\n"
|
||||
"POT-Creation-Date: 2021-12-22 08:10+0000\n"
|
||||
"PO-Revision-Date: 2021-12-22 14:05+0000\n"
|
||||
"Last-Translator: Hugo Carvalho <hugokarvalho@hotmail.com>\n"
|
||||
"Language-Team: Hugo Carvalho\n"
|
||||
"Language: pt\n"
|
||||
@@ -797,7 +798,7 @@ msgid "Bookmark file to load"
|
||||
msgstr "Ficheiro favorito para carregar"
|
||||
|
||||
#: gtk/gtkbookmarklist.c:228 gtk/gtkcellrenderertext.c:267 gtk/gtkentry.c:965
|
||||
#: gtk/gtklabel.c:2260 gtk/gtktext.c:929
|
||||
#: gtk/gtklabel.c:2297 gtk/gtktext.c:929
|
||||
msgid "Attributes"
|
||||
msgstr "Atributos"
|
||||
|
||||
@@ -920,7 +921,7 @@ msgid "scope to use when instantiating listitems"
|
||||
msgstr "escopo para usar ao instanciar “listitems”"
|
||||
|
||||
#: gtk/gtkbutton.c:222 gtk/gtkcheckbutton.c:562 gtk/gtkexpander.c:333
|
||||
#: gtk/gtkframe.c:170 gtk/gtklabel.c:2248 gtk/gtkmenubutton.c:478
|
||||
#: gtk/gtkframe.c:170 gtk/gtklabel.c:2285 gtk/gtkmenubutton.c:478
|
||||
msgid "Label"
|
||||
msgstr "Rótulo"
|
||||
|
||||
@@ -933,12 +934,12 @@ msgstr ""
|
||||
"componente"
|
||||
|
||||
#: gtk/gtkbutton.c:235 gtk/gtkcheckbutton.c:590 gtk/gtkexpander.c:346
|
||||
#: gtk/gtklabel.c:2286 gtk/gtkmenubutton.c:490 gtk/gtkstack.c:491
|
||||
#: gtk/gtklabel.c:2323 gtk/gtkmenubutton.c:490 gtk/gtkstack.c:491
|
||||
msgid "Use underline"
|
||||
msgstr "Utilizar sublinhado"
|
||||
|
||||
#: gtk/gtkbutton.c:236 gtk/gtkcheckbutton.c:591 gtk/gtkexpander.c:347
|
||||
#: gtk/gtklabel.c:2287 gtk/gtkmenubutton.c:491
|
||||
#: gtk/gtklabel.c:2324 gtk/gtkmenubutton.c:491
|
||||
msgid ""
|
||||
"If set, an underline in the text indicates the next character should be used "
|
||||
"for the mnemonic accelerator key"
|
||||
@@ -1612,7 +1613,7 @@ msgstr ""
|
||||
"dica quando for renderizar o texto. Se não entende este parâmetro, "
|
||||
"provavelmente não precisa dele"
|
||||
|
||||
#: gtk/gtkcellrenderertext.c:444 gtk/gtklabel.c:2421 gtk/gtkprogressbar.c:267
|
||||
#: gtk/gtkcellrenderertext.c:444 gtk/gtklabel.c:2482 gtk/gtkprogressbar.c:267
|
||||
msgid "Ellipsize"
|
||||
msgstr "Reticências"
|
||||
|
||||
@@ -1624,15 +1625,15 @@ msgstr ""
|
||||
"O local preferido onde colocar reticências na cadeia, se o desenhador de "
|
||||
"célula não possuir espaço suficiente para mostrar a cadeia completa"
|
||||
|
||||
#: gtk/gtkcellrenderertext.c:461 gtk/gtklabel.c:2440
|
||||
#: gtk/gtkcellrenderertext.c:461 gtk/gtklabel.c:2501
|
||||
msgid "Width In Characters"
|
||||
msgstr "Largura em caracteres"
|
||||
|
||||
#: gtk/gtkcellrenderertext.c:462 gtk/gtklabel.c:2441
|
||||
#: gtk/gtkcellrenderertext.c:462 gtk/gtklabel.c:2502
|
||||
msgid "The desired width of the label, in characters"
|
||||
msgstr "A largura desejada da etiqueta, em caracteres"
|
||||
|
||||
#: gtk/gtkcellrenderertext.c:481 gtk/gtklabel.c:2476
|
||||
#: gtk/gtkcellrenderertext.c:481 gtk/gtklabel.c:2537
|
||||
msgid "Maximum Width In Characters"
|
||||
msgstr "Largura máxima em caracteres"
|
||||
|
||||
@@ -1955,7 +1956,7 @@ msgstr "Cor RGBA"
|
||||
msgid "Color as RGBA"
|
||||
msgstr "Cor como RGBA"
|
||||
|
||||
#: gtk/gtkcolorswatch.c:515 gtk/gtklabel.c:2375 gtk/gtklistbox.c:3570
|
||||
#: gtk/gtkcolorswatch.c:515 gtk/gtklabel.c:2436 gtk/gtklistbox.c:3570
|
||||
#: gtk/gtklistitem.c:217
|
||||
msgid "Selectable"
|
||||
msgstr "Selecionável"
|
||||
@@ -2547,11 +2548,11 @@ msgstr "Largura máxima em caracteres"
|
||||
msgid "The desired maximum width of the entry, in characters"
|
||||
msgstr "A largura máxima desejada da entrada, em caracteres"
|
||||
|
||||
#: gtk/gtkeditable.c:473 gtk/gtklabel.c:2317
|
||||
#: gtk/gtkeditable.c:473 gtk/gtklabel.c:2354
|
||||
msgid "X align"
|
||||
msgstr "Alinh x"
|
||||
|
||||
#: gtk/gtkeditable.c:474 gtk/gtklabel.c:2318
|
||||
#: gtk/gtkeditable.c:474 gtk/gtklabel.c:2355
|
||||
msgid ""
|
||||
"The horizontal alignment, from 0 (left) to 1 (right). Reversed for RTL "
|
||||
"layouts."
|
||||
@@ -2868,7 +2869,7 @@ msgstr "Ícone de Emoji"
|
||||
msgid "Whether to show an icon for Emoji"
|
||||
msgstr "Se mostra ou não um ícone para o Emoji"
|
||||
|
||||
#: gtk/gtkentry.c:1002 gtk/gtklabel.c:2506 gtk/gtkpasswordentry.c:504
|
||||
#: gtk/gtkentry.c:1002 gtk/gtklabel.c:2567 gtk/gtkpasswordentry.c:504
|
||||
#: gtk/gtktext.c:990 gtk/gtktextview.c:1158
|
||||
msgid "Extra menu"
|
||||
msgstr "Menu extra"
|
||||
@@ -3011,11 +3012,11 @@ msgstr "Se o expansor foi aberto ou não para revelar o widget do sub-processo"
|
||||
msgid "Text of the expander’s label"
|
||||
msgstr "Texto do rótulo do expansor"
|
||||
|
||||
#: gtk/gtkexpander.c:359 gtk/gtklabel.c:2274 gtk/gtkmodelbutton.c:1211
|
||||
#: gtk/gtkexpander.c:359 gtk/gtklabel.c:2311 gtk/gtkmodelbutton.c:1211
|
||||
msgid "Use markup"
|
||||
msgstr "Usar markup"
|
||||
|
||||
#: gtk/gtkexpander.c:360 gtk/gtklabel.c:2275
|
||||
#: gtk/gtkexpander.c:360 gtk/gtklabel.c:2312
|
||||
msgid "The text of the label includes XML markup. See pango_parse_markup()"
|
||||
msgstr "O texto da etiqueta inclui código XML. Consulte pango_parse_markup()"
|
||||
|
||||
@@ -3714,19 +3715,19 @@ msgstr "Se incluir ou não um botão de fechar padrão"
|
||||
msgid "Controls whether the info bar shows its contents or not"
|
||||
msgstr "Controla se a barra de informações mostra seu conteúdo"
|
||||
|
||||
#: gtk/gtklabel.c:2249
|
||||
#: gtk/gtklabel.c:2286
|
||||
msgid "The text of the label"
|
||||
msgstr "O texto da etiqueta"
|
||||
|
||||
#: gtk/gtklabel.c:2261
|
||||
#: gtk/gtklabel.c:2298
|
||||
msgid "A list of style attributes to apply to the text of the label"
|
||||
msgstr "Uma lista de atributos de estilo a aplicar ao texto da etiqueta"
|
||||
|
||||
#: gtk/gtklabel.c:2301 gtk/gtktexttag.c:475 gtk/gtktextview.c:922
|
||||
#: gtk/gtklabel.c:2338 gtk/gtktexttag.c:475 gtk/gtktextview.c:922
|
||||
msgid "Justification"
|
||||
msgstr "Alinhamento"
|
||||
|
||||
#: gtk/gtklabel.c:2302
|
||||
#: gtk/gtklabel.c:2339
|
||||
msgid ""
|
||||
"The alignment of the lines in the text of the label relative to each other. "
|
||||
"This does NOT affect the alignment of the label within its allocation. See "
|
||||
@@ -3736,51 +3737,62 @@ msgstr ""
|
||||
"alinhamento da etiqueta dentro da sua alocação. Consulte GtkMisc::xalign "
|
||||
"para tal"
|
||||
|
||||
#: gtk/gtklabel.c:2333
|
||||
#: gtk/gtklabel.c:2370
|
||||
msgid "Y align"
|
||||
msgstr "Alinh y"
|
||||
|
||||
#: gtk/gtklabel.c:2334
|
||||
#: gtk/gtklabel.c:2371
|
||||
msgid "The vertical alignment, from 0 (top) to 1 (bottom)"
|
||||
msgstr "O alinhamento vertical, de 0 (topo) até 1 (fundo)"
|
||||
|
||||
#: gtk/gtklabel.c:2346
|
||||
#: gtk/gtklabel.c:2383
|
||||
msgid "Line wrap"
|
||||
msgstr "Quebra de linha"
|
||||
|
||||
#: gtk/gtklabel.c:2347
|
||||
#: gtk/gtklabel.c:2384
|
||||
msgid "If set, wrap lines if the text becomes too wide"
|
||||
msgstr "Se definido, quebrar linhas se o texto se tornar demasiado longo"
|
||||
|
||||
#: gtk/gtklabel.c:2362
|
||||
#: gtk/gtklabel.c:2402
|
||||
msgid "Line wrap mode"
|
||||
msgstr "Modo de quebra de linha"
|
||||
|
||||
#: gtk/gtklabel.c:2363
|
||||
#: gtk/gtklabel.c:2403
|
||||
msgid "If wrap is set, controls how linewrapping is done"
|
||||
msgstr "Se quebra de linha estiver ativa, controla como é efetuada a quebra"
|
||||
msgstr ""
|
||||
"Se a quebra de linha estiver definida, controla como é efetuada a quebra"
|
||||
|
||||
#: gtk/gtklabel.c:2376
|
||||
#: gtk/gtklabel.c:2423
|
||||
msgid "Natural wrap mode"
|
||||
msgstr "Modo de quebra de linha natural"
|
||||
|
||||
#: gtk/gtklabel.c:2424
|
||||
msgid "If wrap is set, controls linewrapping for natural size requests"
|
||||
msgstr ""
|
||||
"Se a quebra de linha estiver definida, controla a quebra de linha para "
|
||||
"pedidos de tamanho natural"
|
||||
|
||||
#: gtk/gtklabel.c:2437
|
||||
msgid "Whether the label text can be selected with the mouse"
|
||||
msgstr "Se o texto da etiqueta pode ou não ser selecionado com o rato"
|
||||
|
||||
#: gtk/gtklabel.c:2387
|
||||
#: gtk/gtklabel.c:2448
|
||||
msgid "Mnemonic key"
|
||||
msgstr "Chave mnemónica"
|
||||
|
||||
#: gtk/gtklabel.c:2388
|
||||
#: gtk/gtklabel.c:2449
|
||||
msgid "The mnemonic accelerator key for this label"
|
||||
msgstr "A tecla de atalho mnemónica para esta etiqueta"
|
||||
|
||||
#: gtk/gtklabel.c:2400
|
||||
#: gtk/gtklabel.c:2461
|
||||
msgid "Mnemonic widget"
|
||||
msgstr "Widget da mnemónica"
|
||||
|
||||
#: gtk/gtklabel.c:2401
|
||||
#: gtk/gtklabel.c:2462
|
||||
msgid "The widget to be activated when the label’s mnemonic key is pressed"
|
||||
msgstr "O componente ativado quando a tecla mnemônica do rótulo é pressionada"
|
||||
|
||||
#: gtk/gtklabel.c:2422
|
||||
#: gtk/gtklabel.c:2483
|
||||
msgid ""
|
||||
"The preferred place to ellipsize the string, if the label does not have "
|
||||
"enough room to display the entire string"
|
||||
@@ -3788,30 +3800,30 @@ msgstr ""
|
||||
"O local preferido para colocar reticências na cadeia, se a etiqueta não "
|
||||
"possuir espaço suficiente para mostrar a cadeia completa"
|
||||
|
||||
#: gtk/gtklabel.c:2458
|
||||
#: gtk/gtklabel.c:2519
|
||||
msgid "Single Line Mode"
|
||||
msgstr "Modo de linha única"
|
||||
|
||||
#: gtk/gtklabel.c:2459
|
||||
#: gtk/gtklabel.c:2520
|
||||
msgid "Whether the label is in single line mode"
|
||||
msgstr "Se a etiqueta está ou não em modo de linha única"
|
||||
|
||||
#: gtk/gtklabel.c:2477
|
||||
#: gtk/gtklabel.c:2538
|
||||
msgid "The desired maximum width of the label, in characters"
|
||||
msgstr "A largura máxima desejada da etiqueta, em caracteres"
|
||||
|
||||
#: gtk/gtklabel.c:2493
|
||||
#: gtk/gtklabel.c:2554
|
||||
msgid "Number of lines"
|
||||
msgstr "Número de linhas"
|
||||
|
||||
# Quando um rótulo é redu... -- Rafael
|
||||
#: gtk/gtklabel.c:2494
|
||||
#: gtk/gtklabel.c:2555
|
||||
msgid "The desired number of lines, when ellipsizing a wrapping label"
|
||||
msgstr ""
|
||||
"O número de linhas desejado, ao pôr reticências numa etiqueta que contém "
|
||||
"quebras de linha"
|
||||
|
||||
#: gtk/gtklabel.c:2507 gtk/gtktext.c:991 gtk/gtktextview.c:1159
|
||||
#: gtk/gtklabel.c:2568 gtk/gtktext.c:991 gtk/gtktextview.c:1159
|
||||
msgid "Menu model to append to the context menu"
|
||||
msgstr "O modelo de menu para acrescentar ao menu de contexto"
|
||||
|
||||
|
||||
+3792
-5547
File diff suppressed because it is too large
Load Diff
+49
-40
@@ -9,8 +9,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gtk+ 2.4.0\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n"
|
||||
"POT-Creation-Date: 2021-12-13 03:40+0000\n"
|
||||
"PO-Revision-Date: 2021-12-13 15:16+0200\n"
|
||||
"POT-Creation-Date: 2021-12-22 08:10+0000\n"
|
||||
"PO-Revision-Date: 2021-12-22 14:52+0200\n"
|
||||
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
|
||||
"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
|
||||
"Language: uk\n"
|
||||
@@ -789,7 +789,7 @@ msgid "Bookmark file to load"
|
||||
msgstr "Файл закладок, який слід завантажити"
|
||||
|
||||
#: gtk/gtkbookmarklist.c:228 gtk/gtkcellrenderertext.c:267 gtk/gtkentry.c:965
|
||||
#: gtk/gtklabel.c:2260 gtk/gtktext.c:929
|
||||
#: gtk/gtklabel.c:2297 gtk/gtktext.c:929
|
||||
msgid "Attributes"
|
||||
msgstr "Атрибути"
|
||||
|
||||
@@ -911,7 +911,7 @@ msgid "scope to use when instantiating listitems"
|
||||
msgstr "область, яку слід використати для створення екземплярів пунктів списку"
|
||||
|
||||
#: gtk/gtkbutton.c:222 gtk/gtkcheckbutton.c:562 gtk/gtkexpander.c:333
|
||||
#: gtk/gtkframe.c:170 gtk/gtklabel.c:2248 gtk/gtkmenubutton.c:478
|
||||
#: gtk/gtkframe.c:170 gtk/gtklabel.c:2285 gtk/gtkmenubutton.c:478
|
||||
msgid "Label"
|
||||
msgstr "Позначка"
|
||||
|
||||
@@ -922,12 +922,12 @@ msgid ""
|
||||
msgstr "Текст віджета позначки в кнопці, якщо кнопка містить віджет позначки"
|
||||
|
||||
#: gtk/gtkbutton.c:235 gtk/gtkcheckbutton.c:590 gtk/gtkexpander.c:346
|
||||
#: gtk/gtklabel.c:2286 gtk/gtkmenubutton.c:490 gtk/gtkstack.c:491
|
||||
#: gtk/gtklabel.c:2323 gtk/gtkmenubutton.c:490 gtk/gtkstack.c:491
|
||||
msgid "Use underline"
|
||||
msgstr "Використовувати підкреслення"
|
||||
|
||||
#: gtk/gtkbutton.c:236 gtk/gtkcheckbutton.c:591 gtk/gtkexpander.c:347
|
||||
#: gtk/gtklabel.c:2287 gtk/gtkmenubutton.c:491
|
||||
#: gtk/gtklabel.c:2324 gtk/gtkmenubutton.c:491
|
||||
msgid ""
|
||||
"If set, an underline in the text indicates the next character should be used "
|
||||
"for the mnemonic accelerator key"
|
||||
@@ -1598,7 +1598,7 @@ msgstr ""
|
||||
"під час відтворення тексту. Якщо ви не розумієте цей параметр, то, напевно, "
|
||||
"він вам не потрібний."
|
||||
|
||||
#: gtk/gtkcellrenderertext.c:444 gtk/gtklabel.c:2421 gtk/gtkprogressbar.c:267
|
||||
#: gtk/gtkcellrenderertext.c:444 gtk/gtklabel.c:2482 gtk/gtkprogressbar.c:267
|
||||
msgid "Ellipsize"
|
||||
msgstr "Багатокрапка"
|
||||
|
||||
@@ -1610,15 +1610,15 @@ msgstr ""
|
||||
"Бажане місце обривання рядка багатокрапкою, якщо механізму відтворення рядка "
|
||||
"не вистачає місця для показу всього рядка"
|
||||
|
||||
#: gtk/gtkcellrenderertext.c:461 gtk/gtklabel.c:2440
|
||||
#: gtk/gtkcellrenderertext.c:461 gtk/gtklabel.c:2501
|
||||
msgid "Width In Characters"
|
||||
msgstr "Ширина у символах"
|
||||
|
||||
#: gtk/gtkcellrenderertext.c:462 gtk/gtklabel.c:2441
|
||||
#: gtk/gtkcellrenderertext.c:462 gtk/gtklabel.c:2502
|
||||
msgid "The desired width of the label, in characters"
|
||||
msgstr "Бажана ширина, у символах"
|
||||
|
||||
#: gtk/gtkcellrenderertext.c:481 gtk/gtklabel.c:2476
|
||||
#: gtk/gtkcellrenderertext.c:481 gtk/gtklabel.c:2537
|
||||
msgid "Maximum Width In Characters"
|
||||
msgstr "Максимальна ширина в символах"
|
||||
|
||||
@@ -1944,7 +1944,7 @@ msgstr "Колір RGBA"
|
||||
msgid "Color as RGBA"
|
||||
msgstr "Колір як RGBA"
|
||||
|
||||
#: gtk/gtkcolorswatch.c:515 gtk/gtklabel.c:2375 gtk/gtklistbox.c:3570
|
||||
#: gtk/gtkcolorswatch.c:515 gtk/gtklabel.c:2436 gtk/gtklistbox.c:3570
|
||||
#: gtk/gtklistitem.c:217
|
||||
msgid "Selectable"
|
||||
msgstr "Вибирається"
|
||||
@@ -1970,12 +1970,10 @@ msgid "Whether the swatch should accept drops"
|
||||
msgstr "Чи прийматиме пробник події скидання"
|
||||
|
||||
#: gtk/gtkcolorswatch.c:524
|
||||
#| msgid "Can Drop"
|
||||
msgid "Can Drag"
|
||||
msgstr "Можна перетягувати"
|
||||
|
||||
#: gtk/gtkcolorswatch.c:524
|
||||
#| msgid "Whether the swatch should accept drops"
|
||||
msgid "Whether the swatch should allow drags"
|
||||
msgstr "Чи дозволятиме пробник перетягування"
|
||||
|
||||
@@ -2541,11 +2539,11 @@ msgstr "Максимальна ширина у символах"
|
||||
msgid "The desired maximum width of the entry, in characters"
|
||||
msgstr "Бажана максимальна ширина поля введення, у символах"
|
||||
|
||||
#: gtk/gtkeditable.c:473 gtk/gtklabel.c:2317
|
||||
#: gtk/gtkeditable.c:473 gtk/gtklabel.c:2354
|
||||
msgid "X align"
|
||||
msgstr "Вирівнювання за X"
|
||||
|
||||
#: gtk/gtkeditable.c:474 gtk/gtklabel.c:2318
|
||||
#: gtk/gtkeditable.c:474 gtk/gtklabel.c:2355
|
||||
msgid ""
|
||||
"The horizontal alignment, from 0 (left) to 1 (right). Reversed for RTL "
|
||||
"layouts."
|
||||
@@ -2865,7 +2863,7 @@ msgstr "Піктограма емодзі"
|
||||
msgid "Whether to show an icon for Emoji"
|
||||
msgstr "Чи слід показувати піктограму емодзі"
|
||||
|
||||
#: gtk/gtkentry.c:1002 gtk/gtklabel.c:2506 gtk/gtkpasswordentry.c:504
|
||||
#: gtk/gtkentry.c:1002 gtk/gtklabel.c:2567 gtk/gtkpasswordentry.c:504
|
||||
#: gtk/gtktext.c:990 gtk/gtktextview.c:1158
|
||||
msgid "Extra menu"
|
||||
msgstr "Додаткове меню"
|
||||
@@ -3008,11 +3006,11 @@ msgstr "Чи розширювач був відкритий для показу
|
||||
msgid "Text of the expander’s label"
|
||||
msgstr "Текст мітки розгортання"
|
||||
|
||||
#: gtk/gtkexpander.c:359 gtk/gtklabel.c:2274 gtk/gtkmodelbutton.c:1211
|
||||
#: gtk/gtkexpander.c:359 gtk/gtklabel.c:2311 gtk/gtkmodelbutton.c:1211
|
||||
msgid "Use markup"
|
||||
msgstr "Використовувати розмітку"
|
||||
|
||||
#: gtk/gtkexpander.c:360 gtk/gtklabel.c:2275
|
||||
#: gtk/gtkexpander.c:360 gtk/gtklabel.c:2312
|
||||
msgid "The text of the label includes XML markup. See pango_parse_markup()"
|
||||
msgstr "Текст позначки включає розмітку XML. Див. pango_parse_markup()"
|
||||
|
||||
@@ -3715,19 +3713,19 @@ msgstr "Чи потрібно додавати стандартну кнопку
|
||||
msgid "Controls whether the info bar shows its contents or not"
|
||||
msgstr "Керує тим, чи буде показано вміст інформаційної панелі"
|
||||
|
||||
#: gtk/gtklabel.c:2249
|
||||
#: gtk/gtklabel.c:2286
|
||||
msgid "The text of the label"
|
||||
msgstr "Текст позначки"
|
||||
|
||||
#: gtk/gtklabel.c:2261
|
||||
#: gtk/gtklabel.c:2298
|
||||
msgid "A list of style attributes to apply to the text of the label"
|
||||
msgstr "Список стильових ознак для застосування до тексту позначки"
|
||||
|
||||
#: gtk/gtklabel.c:2301 gtk/gtktexttag.c:475 gtk/gtktextview.c:922
|
||||
#: gtk/gtklabel.c:2338 gtk/gtktexttag.c:475 gtk/gtktextview.c:922
|
||||
msgid "Justification"
|
||||
msgstr "Вирівнювання"
|
||||
|
||||
#: gtk/gtklabel.c:2302
|
||||
#: gtk/gtklabel.c:2339
|
||||
msgid ""
|
||||
"The alignment of the lines in the text of the label relative to each other. "
|
||||
"This does NOT affect the alignment of the label within its allocation. See "
|
||||
@@ -3737,53 +3735,64 @@ msgstr ""
|
||||
"вирівнювання мітки всередині вказаного для неї місця. З цього питання див. "
|
||||
"GtkLabel::xalign"
|
||||
|
||||
#: gtk/gtklabel.c:2333
|
||||
#: gtk/gtklabel.c:2370
|
||||
msgid "Y align"
|
||||
msgstr "Вирівнювання за Y"
|
||||
|
||||
#: gtk/gtklabel.c:2334
|
||||
#: gtk/gtklabel.c:2371
|
||||
msgid "The vertical alignment, from 0 (top) to 1 (bottom)"
|
||||
msgstr "Вертикальне вирівнювання, від 0 (вгору) до 1 (вниз)"
|
||||
|
||||
#: gtk/gtklabel.c:2346
|
||||
#: gtk/gtklabel.c:2383
|
||||
msgid "Line wrap"
|
||||
msgstr "Перенос рядків"
|
||||
|
||||
#: gtk/gtklabel.c:2347
|
||||
#: gtk/gtklabel.c:2384
|
||||
msgid "If set, wrap lines if the text becomes too wide"
|
||||
msgstr "Якщо встановлено, занадто довгі рядки переносяться"
|
||||
|
||||
#: gtk/gtklabel.c:2362
|
||||
#: gtk/gtklabel.c:2402
|
||||
msgid "Line wrap mode"
|
||||
msgstr "Режим переносу рядків"
|
||||
|
||||
#: gtk/gtklabel.c:2363
|
||||
#: gtk/gtklabel.c:2403
|
||||
msgid "If wrap is set, controls how linewrapping is done"
|
||||
msgstr ""
|
||||
"Якщо встановлено перенос рядків, контролює як виконувати перенос рядків"
|
||||
|
||||
#: gtk/gtklabel.c:2376
|
||||
#: gtk/gtklabel.c:2423
|
||||
#| msgid "Natrural wrap mode"
|
||||
msgid "Natural wrap mode"
|
||||
msgstr "Природний режим перенесення"
|
||||
|
||||
#: gtk/gtklabel.c:2424
|
||||
msgid "If wrap is set, controls linewrapping for natural size requests"
|
||||
msgstr ""
|
||||
"Якщо встановлено перенос рядків, контролює перенос рядків для запитів щодо "
|
||||
"природного розміру"
|
||||
|
||||
#: gtk/gtklabel.c:2437
|
||||
msgid "Whether the label text can be selected with the mouse"
|
||||
msgstr "Чи може текст позначки бути виділений використовуючи мишу"
|
||||
|
||||
#: gtk/gtklabel.c:2387
|
||||
#: gtk/gtklabel.c:2448
|
||||
msgid "Mnemonic key"
|
||||
msgstr "Мнемонічна клавіша"
|
||||
|
||||
#: gtk/gtklabel.c:2388
|
||||
#: gtk/gtklabel.c:2449
|
||||
msgid "The mnemonic accelerator key for this label"
|
||||
msgstr "Мнемонічна клавіша-прискорювач для цієї позначки"
|
||||
|
||||
#: gtk/gtklabel.c:2400
|
||||
#: gtk/gtklabel.c:2461
|
||||
msgid "Mnemonic widget"
|
||||
msgstr "Мнемонічний віджет"
|
||||
|
||||
#: gtk/gtklabel.c:2401
|
||||
#: gtk/gtklabel.c:2462
|
||||
msgid "The widget to be activated when the label’s mnemonic key is pressed"
|
||||
msgstr ""
|
||||
"Віджет, який буде активовано під час натиснення мнемонічної клавіші позначки"
|
||||
|
||||
#: gtk/gtklabel.c:2422
|
||||
#: gtk/gtklabel.c:2483
|
||||
msgid ""
|
||||
"The preferred place to ellipsize the string, if the label does not have "
|
||||
"enough room to display the entire string"
|
||||
@@ -3791,27 +3800,27 @@ msgstr ""
|
||||
"Бажане місце для багатокрапки у рядку, якщо для показу усього рядка не "
|
||||
"вистачає місця."
|
||||
|
||||
#: gtk/gtklabel.c:2458
|
||||
#: gtk/gtklabel.c:2519
|
||||
msgid "Single Line Mode"
|
||||
msgstr "Режим одного рядка"
|
||||
|
||||
#: gtk/gtklabel.c:2459
|
||||
#: gtk/gtklabel.c:2520
|
||||
msgid "Whether the label is in single line mode"
|
||||
msgstr "Чи знаходиться рядок у режимі одного рядка"
|
||||
|
||||
#: gtk/gtklabel.c:2477
|
||||
#: gtk/gtklabel.c:2538
|
||||
msgid "The desired maximum width of the label, in characters"
|
||||
msgstr "Бажана максимальна ширина ярлика, у символах"
|
||||
|
||||
#: gtk/gtklabel.c:2493
|
||||
#: gtk/gtklabel.c:2554
|
||||
msgid "Number of lines"
|
||||
msgstr "Кількість ліній"
|
||||
|
||||
#: gtk/gtklabel.c:2494
|
||||
#: gtk/gtklabel.c:2555
|
||||
msgid "The desired number of lines, when ellipsizing a wrapping label"
|
||||
msgstr "Число рядків при скороченні мітки з використанням трьох крапок"
|
||||
|
||||
#: gtk/gtklabel.c:2507 gtk/gtktext.c:991 gtk/gtktextview.c:1159
|
||||
#: gtk/gtklabel.c:2568 gtk/gtktext.c:991 gtk/gtktextview.c:1159
|
||||
msgid "Menu model to append to the context menu"
|
||||
msgstr "Модель меню для долучення до контекстного меню"
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ demos/gtk-demo/appwindow.c
|
||||
demos/gtk-demo/blendmodes.ui
|
||||
demos/gtk-demo/changedisplay.c
|
||||
demos/gtk-demo/clipboard.c
|
||||
demos/gtk-demo/clipboard.ui
|
||||
demos/gtk-demo/combobox.c
|
||||
demos/gtk-demo/constraints_builder.ui
|
||||
demos/gtk-demo/constraints.ui
|
||||
|
||||
@@ -14,16 +14,16 @@
|
||||
# Antón Méixome <meixome@certima.net>, 2009, 2010.
|
||||
# Fran Diéguez <frandieguez@gnome.org>, 2009, 2010, 2011, 2012.
|
||||
# Leandro Regueiro <leandro.regueiro@gmail.com>, 2012.
|
||||
# Fran Dieguez <fran.dieguez@gnome.org>, 2012-2021.
|
||||
# Fran Dieguez <frandieguez@gnome.org>, 2012-2021.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gtk+-master-po-gl-77922___.merged\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n"
|
||||
"POT-Creation-Date: 2021-11-18 23:46+0000\n"
|
||||
"PO-Revision-Date: 2021-11-19 23:21+0100\n"
|
||||
"Last-Translator: Fran Dieguez <fran.dieguez@gnome.org>\n"
|
||||
"Language-Team: Galician <proxecto@trasno.gal>\n"
|
||||
"POT-Creation-Date: 2021-12-18 06:30+0000\n"
|
||||
"PO-Revision-Date: 2021-12-20 09:45+0100\n"
|
||||
"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n"
|
||||
"Language-Team: Galician <Proxecto Trasno <proxecto@trasno.gal>>\n"
|
||||
"Language: gl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -33,7 +33,7 @@ msgstr ""
|
||||
"X-Project-Style: gnome\n"
|
||||
"X-DL-Team: gl\n"
|
||||
"X-DL-Module: gtk\n"
|
||||
"X-DL-Branch: master\n"
|
||||
"X-DL-Branch: main\n"
|
||||
"X-DL-Domain: po\n"
|
||||
"X-DL-State: Translating\n"
|
||||
|
||||
@@ -73,46 +73,45 @@ msgstr "O backend actual non admite o OpenGL"
|
||||
msgid "GL support disabled via GDK_DEBUG"
|
||||
msgstr "Compatibilidade de GL desactivada mediante GDK_DEBUG"
|
||||
|
||||
#: gdk/gdkdisplay.c:1569
|
||||
#: gdk/gdkdisplay.c:1544
|
||||
msgid "No EGL configuration available"
|
||||
msgstr "Non hai unha configuración de EGL dispoñíbel"
|
||||
|
||||
#: gdk/gdkdisplay.c:1577
|
||||
#: gdk/gdkdisplay.c:1552
|
||||
msgid "Failed to get EGL configurations"
|
||||
msgstr "Produciuse un fallo ao obter as configuracións de EGL"
|
||||
|
||||
#: gdk/gdkdisplay.c:1607
|
||||
#: gdk/gdkdisplay.c:1582
|
||||
msgid "No EGL configuration with required features found"
|
||||
msgstr "Non se atoparon configuracións de EGL coas características requiridas"
|
||||
|
||||
#: gdk/gdkdisplay.c:1614
|
||||
#: gdk/gdkdisplay.c:1589
|
||||
msgid "No perfect EGL configuration found"
|
||||
msgstr "Non se atopou a configuración de EGL perfecta"
|
||||
|
||||
#: gdk/gdkdisplay.c:1656
|
||||
#: gdk/gdkdisplay.c:1631
|
||||
msgid "EGL implementation is missing extension %2$s"
|
||||
msgid_plural "EGL implementation is missing %d extensions: %s"
|
||||
msgstr[0] "Á implementación de EGL fáltalle a extensión %2$s"
|
||||
msgstr[1] "Á implementación de EGL fáltanlle %s extensións: %2$s"
|
||||
|
||||
#: gdk/gdkdisplay.c:1689
|
||||
#: gdk/gdkdisplay.c:1664
|
||||
msgid "libEGL not available in this sandbox"
|
||||
msgstr "libEGL non está dispoñíbel neste sandbox"
|
||||
|
||||
#: gdk/gdkdisplay.c:1690
|
||||
#| msgid "Not available"
|
||||
#: gdk/gdkdisplay.c:1665
|
||||
msgid "libEGL not available"
|
||||
msgstr "libEGL non dispoñíbel"
|
||||
|
||||
#: gdk/gdkdisplay.c:1700
|
||||
#: gdk/gdkdisplay.c:1675
|
||||
msgid "Failed to create EGL display"
|
||||
msgstr "Non é posíbel crear unha pantalla de EGL"
|
||||
|
||||
#: gdk/gdkdisplay.c:1710
|
||||
#: gdk/gdkdisplay.c:1685
|
||||
msgid "Could not initialize EGL display"
|
||||
msgstr "Non foi posíbel inicializar a pantalla de EGL"
|
||||
|
||||
#: gdk/gdkdisplay.c:1721
|
||||
#: gdk/gdkdisplay.c:1696
|
||||
#, c-format
|
||||
msgid "EGL version %d.%d is too old. GTK requires %d.%d"
|
||||
msgstr "A versión de EGL %d.%d é demasiado antiga. GTK require %d.%d"
|
||||
@@ -129,13 +128,12 @@ msgstr "Formatos non compatíbeis para transferir contidos."
|
||||
msgid "The EGL implementation does not support any allowed APIs"
|
||||
msgstr "A implementación de EGL non admite algúnha das APIs permitidas"
|
||||
|
||||
#: gdk/gdkglcontext.c:404 gdk/win32/gdkglcontext-win32-egl.c:401
|
||||
#: gdk/win32/gdkglcontext-win32-wgl.c:627 gdk/x11/gdkglcontext-glx.c:622
|
||||
#: gdk/gdkglcontext.c:404 gdk/win32/gdkglcontext-win32-wgl.c:624
|
||||
#: gdk/x11/gdkglcontext-glx.c:622
|
||||
msgid "Unable to create a GL context"
|
||||
msgstr "Non é posíbel crear un contexto GL"
|
||||
|
||||
#: gdk/gdkglcontext.c:1237
|
||||
#| msgid "GL support disabled via GDK_DEBUG"
|
||||
msgid "Anything but OpenGL ES disabled via GDK_DEBUG"
|
||||
msgstr "Todo está desactivado salvo OpenGL ES mediante GDK_DEBUG"
|
||||
|
||||
@@ -151,11 +149,11 @@ msgstr "A aplicación non admite a API de %s"
|
||||
msgid "Trying to use %s, but %s is already in use"
|
||||
msgstr "Tentando usar %s, pero %s xa está en uso"
|
||||
|
||||
#: gdk/gdksurface.c:1235
|
||||
#: gdk/gdksurface.c:1238
|
||||
msgid "Vulkan support disabled via GDK_DEBUG"
|
||||
msgstr "Compatibilidade de Vulkan desactivada mediante GDK_DEBUG"
|
||||
|
||||
#: gdk/gdktexture.c:530
|
||||
#: gdk/gdktexture.c:529
|
||||
msgid "Unknown image format."
|
||||
msgstr "O formato de imaxe é descoñecido."
|
||||
|
||||
@@ -546,15 +544,13 @@ msgstr "Produciuse un erro ao interpretar o ficheiro de imaxe do JPEG (%s)"
|
||||
msgid "Unsupported JPEG colorspace (%d)"
|
||||
msgstr "Espazo de cor JPEG non admitido (%d)"
|
||||
|
||||
#: gdk/loaders/gdkjpeg.c:197 gdk/loaders/gdkpng.c:273 gdk/loaders/gdktiff.c:446
|
||||
#: gdk/loaders/gdkjpeg.c:197 gdk/loaders/gdkpng.c:273 gdk/loaders/gdktiff.c:453
|
||||
#, c-format
|
||||
#| msgid "Not enough memory"
|
||||
msgid "Not enough memory for image size %ux%u"
|
||||
msgstr "Non hai memoria dabondo para o tamaño de imaxe %ux%u"
|
||||
|
||||
#: gdk/loaders/gdkpng.c:119
|
||||
#, c-format
|
||||
#| msgid "Error creating print preview"
|
||||
msgid "Error reading png (%s)"
|
||||
msgstr "Produciuse un erro ao ler o png (%s)"
|
||||
|
||||
@@ -572,7 +568,11 @@ msgstr "Tipo de cor %u non admitida na imaxe png"
|
||||
msgid "Failed to load RGB data from TIFF file"
|
||||
msgstr "Produciuse un fallo ao cargar os datos RGB desde o ficheiro TIFF"
|
||||
|
||||
#: gdk/loaders/gdktiff.c:458
|
||||
#: gdk/loaders/gdktiff.c:383
|
||||
msgid "Could not load TIFF data"
|
||||
msgstr "Non foi posíbel cargar os datos TIFF"
|
||||
|
||||
#: gdk/loaders/gdktiff.c:465
|
||||
#, c-format
|
||||
msgid "Reading data failed at row %d"
|
||||
msgstr "Fallou a lectura o dato na fila %d"
|
||||
@@ -580,7 +580,7 @@ msgstr "Fallou a lectura o dato na fila %d"
|
||||
#: gdk/macos/gdkmacosclipboard.c:557 gdk/wayland/gdkclipboard-wayland.c:231
|
||||
#: gdk/wayland/gdkdrop-wayland.c:203 gdk/wayland/gdkprimary-wayland.c:312
|
||||
#: gdk/win32/gdkdrop-win32.c:1006 gdk/win32/gdkdrop-win32.c:1051
|
||||
#: gdk/x11/gdkclipboard-x11.c:763 gdk/x11/gdkdrop-x11.c:233
|
||||
#: gdk/x11/gdkclipboard-x11.c:787 gdk/x11/gdkdrop-x11.c:233
|
||||
msgid "No compatible transfer format found"
|
||||
msgstr "Non se atopou un formato de transferencia compatíbel"
|
||||
|
||||
@@ -735,18 +735,15 @@ msgid "Failed to transmute DnD data W32 format 0x%x to %p (%s)"
|
||||
msgstr ""
|
||||
"Produciuse un fallo ao transmutar os datos DnD W32 ao formato 0x%x to %p (%s)"
|
||||
|
||||
#: gdk/win32/gdkglcontext-win32-egl.c:215
|
||||
#: gdk/win32/gdkglcontext-win32-egl.c:225
|
||||
#: gdk/win32/gdkglcontext-win32-wgl.c:593
|
||||
msgid "No available configurations for the given pixel format"
|
||||
msgstr "Non hai configuracións dispoñíbeis para o formato de píxel fornecido"
|
||||
|
||||
#: gdk/win32/gdkglcontext-win32-egl.c:275
|
||||
#: gdk/win32/gdkglcontext-win32-wgl.c:282
|
||||
#: gdk/win32/gdkglcontext-win32-wgl.c:299
|
||||
#: gdk/win32/gdkglcontext-win32-wgl.c:279
|
||||
#: gdk/win32/gdkglcontext-win32-wgl.c:296
|
||||
msgid "No GL implementation is available"
|
||||
msgstr "Non hai unha implementación de GL dispoñíbel"
|
||||
|
||||
#: gdk/win32/gdkglcontext-win32-wgl.c:590
|
||||
msgid "No available configurations for the given pixel format"
|
||||
msgstr "Non hai configuracións dispoñíbeis para o formato de píxel fornecido"
|
||||
|
||||
#: gdk/win32/gdkhdataoutputstream-win32.c:63
|
||||
msgid "writing a closed stream"
|
||||
msgstr "escribindo un fluxo de peche"
|
||||
@@ -798,11 +795,11 @@ msgid_plural "Opening %d Items"
|
||||
msgstr[0] "Abrindo %d elemento"
|
||||
msgstr[1] "Abrindo %d elementos"
|
||||
|
||||
#: gdk/x11/gdkclipboard-x11.c:433
|
||||
#: gdk/x11/gdkclipboard-x11.c:457
|
||||
msgid "Clipboard manager could not store selection."
|
||||
msgstr "O xestor do portapapeis non pode almacenar a selección."
|
||||
|
||||
#: gdk/x11/gdkclipboard-x11.c:613
|
||||
#: gdk/x11/gdkclipboard-x11.c:637
|
||||
msgid "Cannot store clipboard. No clipboard manager is active."
|
||||
msgstr ""
|
||||
"Non é posíbel almacenar o portapapeis. Non hai un xestor de portapapeis "
|
||||
@@ -1737,16 +1734,16 @@ msgctxt "progress bar label"
|
||||
msgid "%d %%"
|
||||
msgstr "%d %%"
|
||||
|
||||
#: gtk/gtkcolorbutton.c:181 gtk/gtkcolorbutton.c:310
|
||||
#: gtk/gtkcolorbutton.c:181 gtk/gtkcolorbutton.c:311
|
||||
msgid "Pick a Color"
|
||||
msgstr "Escolla unha cor"
|
||||
|
||||
#: gtk/gtkcolorbutton.c:499 gtk/gtkcolorchooserwidget.c:308
|
||||
#: gtk/gtkcolorbutton.c:500 gtk/gtkcolorchooserwidget.c:308
|
||||
#, c-format
|
||||
msgid "Red %d%%, Green %d%%, Blue %d%%, Alpha %d%%"
|
||||
msgstr "Vermello %d%%, verde %d%%, Azul %d%%, Alfa %d%%"
|
||||
|
||||
#: gtk/gtkcolorbutton.c:505 gtk/gtkcolorchooserwidget.c:314
|
||||
#: gtk/gtkcolorbutton.c:506 gtk/gtkcolorchooserwidget.c:314
|
||||
#, c-format
|
||||
msgid "Red %d%%, Green %d%%, Blue %d%%"
|
||||
msgstr "Vermello %d%%, Verde %d%%, Azul %d%%"
|
||||
@@ -1991,7 +1988,7 @@ msgstr "Personalizado"
|
||||
msgid "Custom color %d: %s"
|
||||
msgstr "Cor personalizado %d: %s"
|
||||
|
||||
#: gtk/gtkcolorswatch.c:229
|
||||
#: gtk/gtkcolorswatch.c:231
|
||||
msgid "Customize"
|
||||
msgstr "Personalizar"
|
||||
|
||||
@@ -2133,8 +2130,8 @@ msgstr "Xa existe un ficheiro con ese nome"
|
||||
#: gtk/gtkmountoperation.c:610 gtk/gtkpagesetupunixdialog.c:283
|
||||
#: gtk/gtkprintbackend.c:642 gtk/gtkprinteroptionwidget.c:713
|
||||
#: gtk/gtkprintunixdialog.c:667 gtk/gtkprintunixdialog.c:823
|
||||
#: gtk/gtkwindow.c:6138 gtk/inspector/css-editor.c:248
|
||||
#: gtk/inspector/recorder.c:1271
|
||||
#: gtk/gtkwindow.c:6218 gtk/inspector/css-editor.c:248
|
||||
#: gtk/inspector/recorder.c:1706
|
||||
msgid "_Cancel"
|
||||
msgstr "_Cancelar"
|
||||
|
||||
@@ -2145,7 +2142,7 @@ msgid "_Open"
|
||||
msgstr "_Abrir"
|
||||
|
||||
#: gtk/gtkfilechoosernative.c:574 gtk/inspector/css-editor.c:249
|
||||
#: gtk/inspector/recorder.c:1272
|
||||
#: gtk/inspector/recorder.c:1707
|
||||
msgid "_Save"
|
||||
msgstr "_Gardar"
|
||||
|
||||
@@ -2225,7 +2222,7 @@ msgid "If you delete an item, it will be permanently lost."
|
||||
msgstr "Se elimina un elemento perderase para sempre."
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:1210 gtk/gtkfilechooserwidget.c:1826
|
||||
#: gtk/gtklabel.c:5515 gtk/gtktext.c:6062 gtk/gtktextview.c:8908
|
||||
#: gtk/gtklabel.c:5552 gtk/gtktext.c:6064 gtk/gtktextview.c:8920
|
||||
msgid "_Delete"
|
||||
msgstr "E_liminar"
|
||||
|
||||
@@ -2440,51 +2437,51 @@ msgctxt "font"
|
||||
msgid "None"
|
||||
msgstr "Ningún"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:1568
|
||||
#: gtk/gtkfontchooserwidget.c:1569
|
||||
msgid "Width"
|
||||
msgstr "Anchura"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:1569
|
||||
#: gtk/gtkfontchooserwidget.c:1570
|
||||
msgid "Weight"
|
||||
msgstr "Peso"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:1570
|
||||
#: gtk/gtkfontchooserwidget.c:1571
|
||||
msgid "Italic"
|
||||
msgstr "Cursiva"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:1571
|
||||
#: gtk/gtkfontchooserwidget.c:1572
|
||||
msgid "Slant"
|
||||
msgstr "Inclinación"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:1572
|
||||
#: gtk/gtkfontchooserwidget.c:1573
|
||||
msgid "Optical Size"
|
||||
msgstr "Tamaño óptico"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:2118
|
||||
#: gtk/gtkfontchooserwidget.c:2120
|
||||
msgid "Default"
|
||||
msgstr "Por omisión"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:2164
|
||||
#: gtk/gtkfontchooserwidget.c:2166
|
||||
msgid "Ligatures"
|
||||
msgstr "Ligaduras"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:2165
|
||||
#: gtk/gtkfontchooserwidget.c:2167
|
||||
msgid "Letter Case"
|
||||
msgstr "Letra maiúscula"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:2166
|
||||
#: gtk/gtkfontchooserwidget.c:2168
|
||||
msgid "Number Case"
|
||||
msgstr "Maiúsculas e minúsculas de números"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:2167
|
||||
#: gtk/gtkfontchooserwidget.c:2169
|
||||
msgid "Number Spacing"
|
||||
msgstr "Espaciado de números"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:2168
|
||||
#: gtk/gtkfontchooserwidget.c:2170
|
||||
msgid "Number Formatting"
|
||||
msgstr "Formato numérico"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:2169
|
||||
#: gtk/gtkfontchooserwidget.c:2171
|
||||
msgid "Character Variants"
|
||||
msgstr "Variantes de carácter"
|
||||
|
||||
@@ -2492,27 +2489,27 @@ msgstr "Variantes de carácter"
|
||||
msgid "OpenGL context creation failed"
|
||||
msgstr "Produciuse un fallo ao crear o contexto de OpenGL"
|
||||
|
||||
#: gtk/gtklabel.c:5512 gtk/gtktext.c:6050 gtk/gtktextview.c:8896
|
||||
#: gtk/gtklabel.c:5549 gtk/gtktext.c:6052 gtk/gtktextview.c:8908
|
||||
msgid "Cu_t"
|
||||
msgstr "Cor_tar"
|
||||
|
||||
#: gtk/gtklabel.c:5513 gtk/gtktext.c:6054 gtk/gtktextview.c:8900
|
||||
#: gtk/gtklabel.c:5550 gtk/gtktext.c:6056 gtk/gtktextview.c:8912
|
||||
msgid "_Copy"
|
||||
msgstr "_Copiar"
|
||||
|
||||
#: gtk/gtklabel.c:5514 gtk/gtktext.c:6058 gtk/gtktextview.c:8904
|
||||
#: gtk/gtklabel.c:5551 gtk/gtktext.c:6060 gtk/gtktextview.c:8916
|
||||
msgid "_Paste"
|
||||
msgstr "_Pegar"
|
||||
|
||||
#: gtk/gtklabel.c:5520 gtk/gtktext.c:6071 gtk/gtktextview.c:8929
|
||||
#: gtk/gtklabel.c:5557 gtk/gtktext.c:6073 gtk/gtktextview.c:8941
|
||||
msgid "Select _All"
|
||||
msgstr "Seleccionar _todo"
|
||||
|
||||
#: gtk/gtklabel.c:5525
|
||||
#: gtk/gtklabel.c:5562
|
||||
msgid "_Open Link"
|
||||
msgstr "_Abrir ligazón"
|
||||
|
||||
#: gtk/gtklabel.c:5529
|
||||
#: gtk/gtklabel.c:5566
|
||||
msgid "Copy _Link Address"
|
||||
msgstr "Copiar enderezo da _ligazón"
|
||||
|
||||
@@ -2614,7 +2611,7 @@ msgid "%d:%02d"
|
||||
msgstr "%d:%02d"
|
||||
|
||||
#: gtk/gtkmessagedialog.c:158 gtk/gtkmessagedialog.c:176
|
||||
#: gtk/gtkprintbackend.c:643 gtk/gtkwindow.c:6139
|
||||
#: gtk/gtkprintbackend.c:643 gtk/gtkwindow.c:6219
|
||||
msgid "_OK"
|
||||
msgstr "_Aceptar"
|
||||
|
||||
@@ -3453,7 +3450,7 @@ msgid "Swipe right"
|
||||
msgstr "Deslizar á dereita"
|
||||
|
||||
#. Translators: This is the window title for the shortcuts window in normal mode
|
||||
#: gtk/gtkshortcutswindow.c:874 gtk/inspector/window.ui:490
|
||||
#: gtk/gtkshortcutswindow.c:874 gtk/inspector/window.ui:498
|
||||
msgid "Shortcuts"
|
||||
msgstr "Atallos"
|
||||
|
||||
@@ -3479,19 +3476,19 @@ msgstr "Tente unha busca diferente"
|
||||
msgid "Could not show link"
|
||||
msgstr "Non foi posíbel mostrar a ligazón"
|
||||
|
||||
#: gtk/gtktext.c:6076 gtk/gtktextview.c:8934
|
||||
#: gtk/gtktext.c:6078 gtk/gtktextview.c:8946
|
||||
msgid "Insert _Emoji"
|
||||
msgstr "Inserir _emoticono"
|
||||
|
||||
#: gtk/gtktextview.c:8916
|
||||
#: gtk/gtktextview.c:8928
|
||||
msgid "_Undo"
|
||||
msgstr "_Desfacer"
|
||||
|
||||
#: gtk/gtktextview.c:8920
|
||||
#: gtk/gtktextview.c:8932
|
||||
msgid "_Redo"
|
||||
msgstr "_Refacer"
|
||||
|
||||
#: gtk/gtktreeexpander.c:205
|
||||
#: gtk/gtktreeexpander.c:205 gtk/inspector/misc-info.ui:278
|
||||
msgid "Expand"
|
||||
msgstr "Expandir"
|
||||
|
||||
@@ -3514,12 +3511,12 @@ msgctxt "volume percentage"
|
||||
msgid "%d %%"
|
||||
msgstr "%d %%"
|
||||
|
||||
#: gtk/gtkwindow.c:6126
|
||||
#: gtk/gtkwindow.c:6206
|
||||
#, c-format
|
||||
msgid "Do you want to use GTK Inspector?"
|
||||
msgstr "Desexa usar o Inspector de GTK?"
|
||||
|
||||
#: gtk/gtkwindow.c:6128
|
||||
#: gtk/gtkwindow.c:6208
|
||||
#, c-format
|
||||
msgid ""
|
||||
"GTK Inspector is an interactive debugger that lets you explore and modify "
|
||||
@@ -3530,7 +3527,7 @@ msgstr ""
|
||||
"modificar propiedades internas de calquera aplicación GTK+. Ao usalo pode "
|
||||
"causar que a aplicación se rompa ou se interrompa."
|
||||
|
||||
#: gtk/gtkwindow.c:6133
|
||||
#: gtk/gtkwindow.c:6213
|
||||
msgid "Don’t show this message again"
|
||||
msgstr "Non mostrar este mensaxe de novo"
|
||||
|
||||
@@ -3575,7 +3572,8 @@ msgid "Attribute"
|
||||
msgstr "Atributo"
|
||||
|
||||
#: gtk/inspector/a11y.ui:78 gtk/inspector/css-node-tree.ui:119
|
||||
#: gtk/inspector/prop-list.ui:57 gtk/inspector/recorder.ui:124
|
||||
#: gtk/inspector/prop-list.ui:57 gtk/inspector/recorder.ui:155
|
||||
#: gtk/inspector/recorder.ui:221
|
||||
msgid "Value"
|
||||
msgstr "Valor"
|
||||
|
||||
@@ -3600,6 +3598,35 @@ msgstr "Tipo de parámetro"
|
||||
msgid "State"
|
||||
msgstr "Estado"
|
||||
|
||||
#: gtk/inspector/clipboard.c:149
|
||||
#| msgid "Show All"
|
||||
msgid "Show"
|
||||
msgstr "Mostrar"
|
||||
|
||||
#: gtk/inspector/clipboard.c:205
|
||||
msgctxt "clipboard"
|
||||
msgid "empty"
|
||||
msgstr "baleiro"
|
||||
|
||||
#: gtk/inspector/clipboard.c:210
|
||||
msgctxt "clipboard"
|
||||
msgid "local"
|
||||
msgstr "local"
|
||||
|
||||
#: gtk/inspector/clipboard.c:212
|
||||
msgctxt "clipboard"
|
||||
msgid "remote"
|
||||
msgstr "remoto"
|
||||
|
||||
#: gtk/inspector/clipboard.ui:31 gtk/inspector/window.ui:574
|
||||
#| msgid "Copy to clipboard"
|
||||
msgid "Clipboard"
|
||||
msgstr "Portapapeis"
|
||||
|
||||
#: gtk/inspector/clipboard.ui:70
|
||||
msgid "Primary"
|
||||
msgstr "Primario"
|
||||
|
||||
#: gtk/inspector/controllers.c:126
|
||||
msgctxt "event phase"
|
||||
msgid "None"
|
||||
@@ -3667,46 +3694,51 @@ msgstr "Clases de estilo"
|
||||
msgid "CSS Property"
|
||||
msgstr "Propiedade CSS"
|
||||
|
||||
#: gtk/inspector/general.c:307 gtk/inspector/general.c:387
|
||||
#: gtk/inspector/general.c:309 gtk/inspector/general.c:389
|
||||
msgctxt "GL version"
|
||||
msgid "None"
|
||||
msgstr "Ningún"
|
||||
|
||||
#: gtk/inspector/general.c:316
|
||||
#: gtk/inspector/general.c:318
|
||||
msgctxt "GL version"
|
||||
msgid "Disabled"
|
||||
msgstr "Desactivada"
|
||||
|
||||
#: gtk/inspector/general.c:317
|
||||
#: gtk/inspector/general.c:319
|
||||
msgctxt "GL vendor"
|
||||
msgid "Disabled"
|
||||
msgstr "Desactivado"
|
||||
|
||||
#: gtk/inspector/general.c:388
|
||||
#: gtk/inspector/general.c:390
|
||||
msgctxt "GL vendor"
|
||||
msgid "None"
|
||||
msgstr "Ningún"
|
||||
|
||||
#: gtk/inspector/general.c:439
|
||||
#: gtk/inspector/general.c:441
|
||||
msgctxt "Vulkan device"
|
||||
msgid "Disabled"
|
||||
msgstr "Desactivado"
|
||||
|
||||
#: gtk/inspector/general.c:440 gtk/inspector/general.c:441
|
||||
#: gtk/inspector/general.c:442 gtk/inspector/general.c:443
|
||||
msgctxt "Vulkan version"
|
||||
msgid "Disabled"
|
||||
msgstr "Desactivada"
|
||||
|
||||
#: gtk/inspector/general.c:497
|
||||
#: gtk/inspector/general.c:499
|
||||
msgctxt "Vulkan device"
|
||||
msgid "None"
|
||||
msgstr "Ningún"
|
||||
|
||||
#: gtk/inspector/general.c:498 gtk/inspector/general.c:499
|
||||
#: gtk/inspector/general.c:500 gtk/inspector/general.c:501
|
||||
msgctxt "Vulkan version"
|
||||
msgid "None"
|
||||
msgstr "Ningunha"
|
||||
|
||||
#: gtk/inspector/general.c:771
|
||||
#| msgid "Theme is hardcoded by GTK_THEME"
|
||||
msgid "IM Context is hardcoded by GTK_IM_MODULE"
|
||||
msgstr "O contexto de IM está incrustado á man por GTK_IM_MODULE"
|
||||
|
||||
#: gtk/inspector/general.ui:32
|
||||
msgid "GTK Version"
|
||||
msgstr "Versión de GTK"
|
||||
@@ -3727,39 +3759,43 @@ msgstr "Mapa de fontes Pango"
|
||||
msgid "Media Backend"
|
||||
msgstr "Backend multimedia"
|
||||
|
||||
#: gtk/inspector/general.ui:175
|
||||
#: gtk/inspector/general.ui:162
|
||||
msgid "Input Method"
|
||||
msgstr "Método da entrada"
|
||||
|
||||
#: gtk/inspector/general.ui:201
|
||||
msgid "Prefix"
|
||||
msgstr "Prefixo"
|
||||
|
||||
#: gtk/inspector/general.ui:377
|
||||
#: gtk/inspector/general.ui:403
|
||||
msgid "Display"
|
||||
msgstr "Pantalla"
|
||||
|
||||
#: gtk/inspector/general.ui:404
|
||||
#: gtk/inspector/general.ui:430
|
||||
msgid "RGBA Visual"
|
||||
msgstr "RGBA visual"
|
||||
|
||||
#: gtk/inspector/general.ui:430
|
||||
#: gtk/inspector/general.ui:456
|
||||
msgid "Composited"
|
||||
msgstr "Composto"
|
||||
|
||||
#: gtk/inspector/general.ui:482
|
||||
#: gtk/inspector/general.ui:508
|
||||
msgid "GL Version"
|
||||
msgstr "Versión de GL"
|
||||
|
||||
#: gtk/inspector/general.ui:532
|
||||
#: gtk/inspector/general.ui:558
|
||||
msgid "GL Vendor"
|
||||
msgstr "Fabricante do GL"
|
||||
|
||||
#: gtk/inspector/general.ui:572
|
||||
#: gtk/inspector/general.ui:598
|
||||
msgid "Vulkan Device"
|
||||
msgstr "Dispositivo Vulkan"
|
||||
|
||||
#: gtk/inspector/general.ui:599
|
||||
#: gtk/inspector/general.ui:625
|
||||
msgid "Vulkan API version"
|
||||
msgstr "Versión da API Vulkan"
|
||||
|
||||
#: gtk/inspector/general.ui:626
|
||||
#: gtk/inspector/general.ui:652
|
||||
msgid "Vulkan driver version"
|
||||
msgstr "Versión do driver de Vulkan"
|
||||
|
||||
@@ -3813,56 +3849,60 @@ msgid "Request Mode"
|
||||
msgstr "Modo de solicitude"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:269
|
||||
msgid "Measure map"
|
||||
msgstr "Mapa de medida"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:328
|
||||
msgid "Allocation"
|
||||
msgstr "Asignación"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:298
|
||||
#: gtk/inspector/misc-info.ui:357
|
||||
msgid "Baseline"
|
||||
msgstr "Liña de base"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:327
|
||||
#: gtk/inspector/misc-info.ui:386
|
||||
msgid "Surface"
|
||||
msgstr "Superficie"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:346 gtk/inspector/misc-info.ui:385
|
||||
#: gtk/inspector/misc-info.ui:424 gtk/inspector/prop-editor.c:1111
|
||||
#: gtk/inspector/prop-editor.c:1471 gtk/inspector/window.ui:388
|
||||
#: gtk/inspector/misc-info.ui:405 gtk/inspector/misc-info.ui:444
|
||||
#: gtk/inspector/misc-info.ui:483 gtk/inspector/prop-editor.c:1116
|
||||
#: gtk/inspector/prop-editor.c:1476 gtk/inspector/window.ui:396
|
||||
msgid "Properties"
|
||||
msgstr "Propiedades"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:366
|
||||
#: gtk/inspector/misc-info.ui:425
|
||||
msgid "Renderer"
|
||||
msgstr "Renderizador"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:405
|
||||
#: gtk/inspector/misc-info.ui:464
|
||||
msgid "Frame Clock"
|
||||
msgstr "Reloxo do marco"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:444
|
||||
#: gtk/inspector/misc-info.ui:503
|
||||
msgid "Tick Callback"
|
||||
msgstr "Retorno de chamada de tick"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:474
|
||||
#: gtk/inspector/misc-info.ui:533
|
||||
msgid "Frame Count"
|
||||
msgstr "Contía de marcos"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:503
|
||||
#: gtk/inspector/misc-info.ui:562
|
||||
msgid "Frame Rate"
|
||||
msgstr "Taxa de marcos"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:532
|
||||
#: gtk/inspector/misc-info.ui:591
|
||||
msgid "Mapped"
|
||||
msgstr "Mapeado"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:562
|
||||
#: gtk/inspector/misc-info.ui:621
|
||||
msgid "Realized"
|
||||
msgstr "Realizado"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:592
|
||||
#: gtk/inspector/misc-info.ui:651
|
||||
msgid "Is Toplevel"
|
||||
msgstr "É de nivel superior"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:622
|
||||
#: gtk/inspector/misc-info.ui:681
|
||||
msgid "Child Visible"
|
||||
msgstr "Fillo visíbel"
|
||||
|
||||
@@ -3903,66 +3943,66 @@ msgstr "%s para %s %p"
|
||||
msgid "%s with value type %s"
|
||||
msgstr "%s con tipo de valor %s"
|
||||
|
||||
#: gtk/inspector/prop-editor.c:1179
|
||||
#: gtk/inspector/prop-editor.c:1184
|
||||
#, c-format
|
||||
msgid "Uneditable property type: %s"
|
||||
msgstr "Tipo de propiedade non editábel: %s"
|
||||
|
||||
#: gtk/inspector/prop-editor.c:1323
|
||||
#: gtk/inspector/prop-editor.c:1328
|
||||
msgctxt "column number"
|
||||
msgid "None"
|
||||
msgstr "Ningún"
|
||||
|
||||
#: gtk/inspector/prop-editor.c:1360
|
||||
#: gtk/inspector/prop-editor.c:1365
|
||||
msgid "Attribute:"
|
||||
msgstr "Atributo:"
|
||||
|
||||
#: gtk/inspector/prop-editor.c:1363
|
||||
#: gtk/inspector/prop-editor.c:1368
|
||||
msgid "Model"
|
||||
msgstr "Modelo"
|
||||
|
||||
#: gtk/inspector/prop-editor.c:1368
|
||||
#: gtk/inspector/prop-editor.c:1373
|
||||
msgid "Column:"
|
||||
msgstr "Columna:"
|
||||
|
||||
#. Translators: %s is a type name, for example
|
||||
#. * Action from 0x2345678 (GtkApplicationWindow)
|
||||
#.
|
||||
#: gtk/inspector/prop-editor.c:1467
|
||||
#: gtk/inspector/prop-editor.c:1472
|
||||
#, c-format
|
||||
msgid "Action from: %p (%s)"
|
||||
msgstr "Acción desde: %p (%s)"
|
||||
|
||||
#: gtk/inspector/prop-editor.c:1522
|
||||
#: gtk/inspector/prop-editor.c:1527
|
||||
msgid "Reset"
|
||||
msgstr "Restabelecer"
|
||||
|
||||
#: gtk/inspector/prop-editor.c:1530
|
||||
#: gtk/inspector/prop-editor.c:1535
|
||||
msgctxt "GtkSettings source"
|
||||
msgid "Default"
|
||||
msgstr "Por omisión"
|
||||
|
||||
#: gtk/inspector/prop-editor.c:1533
|
||||
#: gtk/inspector/prop-editor.c:1538
|
||||
msgctxt "GtkSettings source"
|
||||
msgid "Theme"
|
||||
msgstr "Tema"
|
||||
|
||||
#: gtk/inspector/prop-editor.c:1536
|
||||
#: gtk/inspector/prop-editor.c:1541
|
||||
msgctxt "GtkSettings source"
|
||||
msgid "XSettings"
|
||||
msgstr "XSettings"
|
||||
|
||||
#: gtk/inspector/prop-editor.c:1540
|
||||
#: gtk/inspector/prop-editor.c:1545
|
||||
msgctxt "GtkSettings source"
|
||||
msgid "Application"
|
||||
msgstr "Aplicación"
|
||||
|
||||
#: gtk/inspector/prop-editor.c:1543
|
||||
#: gtk/inspector/prop-editor.c:1548
|
||||
msgctxt "GtkSettings source"
|
||||
msgid "Unknown"
|
||||
msgstr "Descoñecido"
|
||||
|
||||
#: gtk/inspector/prop-editor.c:1546
|
||||
#: gtk/inspector/prop-editor.c:1551
|
||||
msgid "Source:"
|
||||
msgstr "Orixe:"
|
||||
|
||||
@@ -3970,36 +4010,40 @@ msgstr "Orixe:"
|
||||
msgid "Defined At"
|
||||
msgstr "Definido en"
|
||||
|
||||
#: gtk/inspector/recorder.c:1242
|
||||
#: gtk/inspector/recorder.c:1677
|
||||
#, c-format
|
||||
msgid "Saving RenderNode failed"
|
||||
msgstr "Fallou o gardado do RenderNode"
|
||||
|
||||
#: gtk/inspector/recorder.ui:15
|
||||
#: gtk/inspector/recorder.ui:20
|
||||
msgid "Record frames"
|
||||
msgstr "Gravar marcos"
|
||||
|
||||
#: gtk/inspector/recorder.ui:22
|
||||
#: gtk/inspector/recorder.ui:27
|
||||
msgid "Clear recorded frames"
|
||||
msgstr "Limpar marcos gravados"
|
||||
|
||||
#: gtk/inspector/recorder.ui:29
|
||||
#: gtk/inspector/recorder.ui:34
|
||||
msgid "Add debug nodes"
|
||||
msgstr "Engadir nodos de depuración"
|
||||
|
||||
#: gtk/inspector/recorder.ui:38
|
||||
#: gtk/inspector/recorder.ui:42
|
||||
msgid "Highlight event sequences"
|
||||
msgstr "Realce da secuencia de eventos"
|
||||
|
||||
#: gtk/inspector/recorder.ui:51
|
||||
msgid "Use a dark background"
|
||||
msgstr "Usar o fondo escuro"
|
||||
|
||||
#: gtk/inspector/recorder.ui:46
|
||||
#: gtk/inspector/recorder.ui:59
|
||||
msgid "Save selected node"
|
||||
msgstr "Gardar o nodo seleccionado"
|
||||
|
||||
#: gtk/inspector/recorder.ui:54
|
||||
#: gtk/inspector/recorder.ui:67
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Copiar ao portapapeis"
|
||||
|
||||
#: gtk/inspector/recorder.ui:111
|
||||
#: gtk/inspector/recorder.ui:142 gtk/inspector/recorder.ui:208
|
||||
msgid "Property"
|
||||
msgstr "Propiedade"
|
||||
|
||||
@@ -4223,111 +4267,111 @@ msgstr "Mostrar todos os obxectos"
|
||||
msgid "Show all Resources"
|
||||
msgstr "Mostrar todos os recursos"
|
||||
|
||||
#: gtk/inspector/window.ui:139
|
||||
#: gtk/inspector/window.ui:147
|
||||
msgid "Collect Statistics"
|
||||
msgstr "Recoller estatísticas"
|
||||
|
||||
#: gtk/inspector/window.ui:191
|
||||
#: gtk/inspector/window.ui:199
|
||||
msgid "Objects"
|
||||
msgstr "Obxectos"
|
||||
|
||||
#: gtk/inspector/window.ui:223
|
||||
#: gtk/inspector/window.ui:231
|
||||
msgid "Toggle Sidebar"
|
||||
msgstr "Trocar barra lateral"
|
||||
|
||||
#: gtk/inspector/window.ui:245
|
||||
#: gtk/inspector/window.ui:253
|
||||
msgid "Refresh action state"
|
||||
msgstr "Actualizar estado da acción"
|
||||
|
||||
#: gtk/inspector/window.ui:319
|
||||
#: gtk/inspector/window.ui:327
|
||||
msgid "Previous object"
|
||||
msgstr "Anterior obxecto"
|
||||
|
||||
#: gtk/inspector/window.ui:326
|
||||
#: gtk/inspector/window.ui:334
|
||||
msgid "Child object"
|
||||
msgstr "Obxecto fillo"
|
||||
|
||||
#: gtk/inspector/window.ui:333
|
||||
#: gtk/inspector/window.ui:341
|
||||
msgid "Previous sibling"
|
||||
msgstr "Anterior irmán"
|
||||
|
||||
#: gtk/inspector/window.ui:339
|
||||
#: gtk/inspector/window.ui:347
|
||||
msgid "List Position"
|
||||
msgstr "Posición na lista"
|
||||
|
||||
#: gtk/inspector/window.ui:348
|
||||
#: gtk/inspector/window.ui:356
|
||||
msgid "Next sibling"
|
||||
msgstr "Seguinte irmán"
|
||||
|
||||
#: gtk/inspector/window.ui:378
|
||||
#: gtk/inspector/window.ui:386
|
||||
msgid "Miscellaneous"
|
||||
msgstr "Miscelánea"
|
||||
|
||||
#: gtk/inspector/window.ui:399
|
||||
#: gtk/inspector/window.ui:407
|
||||
msgid "Layout"
|
||||
msgstr "Disposición"
|
||||
|
||||
#: gtk/inspector/window.ui:410
|
||||
#: gtk/inspector/window.ui:418
|
||||
msgid "CSS Nodes"
|
||||
msgstr "Nodos CSS"
|
||||
|
||||
#: gtk/inspector/window.ui:421
|
||||
#: gtk/inspector/window.ui:429
|
||||
msgid "Size Groups"
|
||||
msgstr "Grupos de tamaño"
|
||||
|
||||
#: gtk/inspector/window.ui:430 gtk/inspector/window.ui:439
|
||||
#: gtk/inspector/window.ui:438 gtk/inspector/window.ui:447
|
||||
msgid "Data"
|
||||
msgstr "Datos"
|
||||
|
||||
#: gtk/inspector/window.ui:449
|
||||
#: gtk/inspector/window.ui:457
|
||||
msgid "Actions"
|
||||
msgstr "Accións"
|
||||
|
||||
#: gtk/inspector/window.ui:460
|
||||
#: gtk/inspector/window.ui:468
|
||||
msgid "Menu"
|
||||
msgstr "Menú"
|
||||
|
||||
#: gtk/inspector/window.ui:469
|
||||
#: gtk/inspector/window.ui:477
|
||||
msgid "Controllers"
|
||||
msgstr "Controladores"
|
||||
|
||||
#: gtk/inspector/window.ui:479
|
||||
#: gtk/inspector/window.ui:487
|
||||
msgid "Magnifier"
|
||||
msgstr "Lupa"
|
||||
|
||||
#: gtk/inspector/window.ui:500
|
||||
#: gtk/inspector/window.ui:508
|
||||
msgid "Accessibility"
|
||||
msgstr "Accesibilidade"
|
||||
|
||||
#: gtk/inspector/window.ui:524
|
||||
#: gtk/inspector/window.ui:532
|
||||
msgid "Global"
|
||||
msgstr "Global"
|
||||
|
||||
#: gtk/inspector/window.ui:537
|
||||
#: gtk/inspector/window.ui:545
|
||||
msgid "Information"
|
||||
msgstr "Información"
|
||||
|
||||
#: gtk/inspector/window.ui:546
|
||||
#: gtk/inspector/window.ui:554
|
||||
msgid "Settings"
|
||||
msgstr "Preferencias"
|
||||
|
||||
#: gtk/inspector/window.ui:555
|
||||
#: gtk/inspector/window.ui:563
|
||||
msgid "Resources"
|
||||
msgstr "Recursos"
|
||||
|
||||
#: gtk/inspector/window.ui:566
|
||||
#: gtk/inspector/window.ui:584
|
||||
msgid "Statistics"
|
||||
msgstr "Estatisticas"
|
||||
|
||||
#: gtk/inspector/window.ui:577
|
||||
#: gtk/inspector/window.ui:595
|
||||
msgid "Logging"
|
||||
msgstr "Rexistrando"
|
||||
|
||||
#: gtk/inspector/window.ui:592
|
||||
#: gtk/inspector/window.ui:610
|
||||
msgid "CSS"
|
||||
msgstr "CSS"
|
||||
|
||||
#: gtk/inspector/window.ui:601
|
||||
#: gtk/inspector/window.ui:619
|
||||
msgid "Recorder"
|
||||
msgstr "Gravar"
|
||||
|
||||
@@ -7427,42 +7471,54 @@ msgstr ""
|
||||
"\n"
|
||||
"Leva a cabo varias tarefas en ficheiros .ui de GtkBuilder.\n"
|
||||
|
||||
#: tools/gtk-builder-tool-simplify.c:437
|
||||
#: tools/gtk-builder-tool-simplify.c:440
|
||||
#, c-format
|
||||
msgid "%s:%d: Couldn’t parse value for property '%s': %s\n"
|
||||
msgstr "%s:%d: Non foi posíbel analizar o valor para «%s»: %s\n"
|
||||
|
||||
#: tools/gtk-builder-tool-simplify.c:638
|
||||
#: tools/gtk-builder-tool-simplify.c:649
|
||||
#, c-format
|
||||
msgid "%s:%d: %sproperty %s::%s not found\n"
|
||||
msgstr "%s:%d: %spropiedade %s::%s non atopada\n"
|
||||
|
||||
#: tools/gtk-builder-tool-simplify.c:2275
|
||||
#: tools/gtk-builder-tool-simplify.c:2286
|
||||
#, c-format
|
||||
msgid "Can’t load “%s”: %s\n"
|
||||
msgstr "Non foi posíbel cargar o ficheiro «%s»: %s\n"
|
||||
|
||||
#: tools/gtk-builder-tool-simplify.c:2286
|
||||
#: tools/gtk-builder-tool-simplify.c:2297
|
||||
#, c-format
|
||||
msgid "Can’t parse “%s”: %s\n"
|
||||
msgstr "Non é posíbel analizar o ficheiro «%s»: %s\n"
|
||||
|
||||
#: tools/gtk-builder-tool-simplify.c:2310
|
||||
#: tools/gtk-builder-tool-simplify.c:2303
|
||||
#, c-format
|
||||
#| msgid "Can’t parse “%s”: %s\n"
|
||||
msgid "Can't parse “%s”: %s\n"
|
||||
msgstr "Non é posíbel analizar «%s»: %s\n"
|
||||
|
||||
#: tools/gtk-builder-tool-simplify.c:2309
|
||||
#, c-format
|
||||
#| msgid "Can’t parse “%s”: %s\n"
|
||||
msgid "Can't parse “%s”\n"
|
||||
msgstr "Non é posíbel analizar «%s»\n"
|
||||
|
||||
#: tools/gtk-builder-tool-simplify.c:2333
|
||||
#, c-format
|
||||
msgid "Failed to read “%s”: %s\n"
|
||||
msgstr "Produciuse un erro ao ler «%s» : %s\n"
|
||||
|
||||
#: tools/gtk-builder-tool-simplify.c:2316
|
||||
#: tools/gtk-builder-tool-simplify.c:2339
|
||||
#, c-format
|
||||
msgid "Failed to write %s: “%s”\n"
|
||||
msgstr "Produciuse un erro ao escribir %s : «%s»\n"
|
||||
|
||||
#: tools/gtk-builder-tool-simplify.c:2356
|
||||
#: tools/gtk-builder-tool-simplify.c:2379
|
||||
#, c-format
|
||||
msgid "No .ui file specified\n"
|
||||
msgstr "Non se especificou ningún ficheiro .ui\n"
|
||||
|
||||
#: tools/gtk-builder-tool-simplify.c:2362
|
||||
#: tools/gtk-builder-tool-simplify.c:2385
|
||||
#, c-format
|
||||
msgid "Can only simplify a single .ui file without --replace\n"
|
||||
msgstr "Só pode simplificar un ficheiro .ui sen --replace\n"
|
||||
|
||||
@@ -12,8 +12,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: 3.10\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n"
|
||||
"POT-Creation-Date: 2021-12-16 14:58+0000\n"
|
||||
"PO-Revision-Date: 2021-12-16 15:47+0000\n"
|
||||
"POT-Creation-Date: 2022-01-04 11:18+0000\n"
|
||||
"PO-Revision-Date: 2022-01-04 14:12+0000\n"
|
||||
"Last-Translator: Hugo Carvalho <hugokarvalho@hotmail.com>\n"
|
||||
"Language-Team: Português <https://l10n.gnome.org/teams/pt/>\n"
|
||||
"Language: pt\n"
|
||||
@@ -26,7 +26,7 @@ msgstr ""
|
||||
#: gdk/broadway/gdkbroadway-server.c:135
|
||||
#, c-format
|
||||
msgid "Broadway display type not supported: %s"
|
||||
msgstr "Tipo de ecrã broadway não suportado: %s"
|
||||
msgstr "Tipo de gráfica broadway não suportada: %s"
|
||||
|
||||
#: gdk/gdkclipboard.c:231
|
||||
msgid "This clipboard cannot store data."
|
||||
@@ -52,7 +52,7 @@ msgstr "Não foi possível fornecer o conteúdo como “%s”"
|
||||
msgid "Cannot provide contents as %s"
|
||||
msgstr "Não foi possível fornecer o conteúdo como %s"
|
||||
|
||||
#: gdk/gdkdisplay.c:154 gdk/gdkglcontext.c:421
|
||||
#: gdk/gdkdisplay.c:154 gdk/gdkglcontext.c:427
|
||||
msgid "The current backend does not support OpenGL"
|
||||
msgstr "O motor atual não suporta OpenGL"
|
||||
|
||||
@@ -113,32 +113,32 @@ msgstr "Não há suporte a arrastar e largar de outras aplicações."
|
||||
msgid "No compatible formats to transfer contents."
|
||||
msgstr "Nenhum formato compatível para transferir conteúdo de transferência."
|
||||
|
||||
#: gdk/gdkglcontext.c:323
|
||||
#: gdk/gdkglcontext.c:329
|
||||
msgid "The EGL implementation does not support any allowed APIs"
|
||||
msgstr "A implementação da EGL não suporta quaisquer APIs permitidas"
|
||||
|
||||
#: gdk/gdkglcontext.c:404 gdk/win32/gdkglcontext-win32-wgl.c:624
|
||||
#: gdk/x11/gdkglcontext-glx.c:622
|
||||
#: gdk/gdkglcontext.c:410 gdk/win32/gdkglcontext-win32-wgl.c:624
|
||||
#: gdk/x11/gdkglcontext-glx.c:624
|
||||
msgid "Unable to create a GL context"
|
||||
msgstr "Impossível criar um contexto GL"
|
||||
|
||||
#: gdk/gdkglcontext.c:1237
|
||||
#: gdk/gdkglcontext.c:1260
|
||||
msgid "Anything but OpenGL ES disabled via GDK_DEBUG"
|
||||
msgstr "Qualquer coisa menos OpenGL ES desativado via GDK_DEBUG"
|
||||
|
||||
#: gdk/gdkglcontext.c:1246
|
||||
#: gdk/gdkglcontext.c:1269
|
||||
#, c-format
|
||||
msgid "Application does not support %s API"
|
||||
msgstr "Aplicação não suporta API %s"
|
||||
|
||||
#. translators: This is about OpenGL backend names, like
|
||||
#. * "Trying to use X11 GLX, but EGL is already in use"
|
||||
#: gdk/gdkglcontext.c:1732
|
||||
#: gdk/gdkglcontext.c:1790
|
||||
#, c-format
|
||||
msgid "Trying to use %s, but %s is already in use"
|
||||
msgstr "A tentar usar %s, mas %s já está em uso"
|
||||
|
||||
#: gdk/gdksurface.c:1238
|
||||
#: gdk/gdksurface.c:1240
|
||||
msgid "Vulkan support disabled via GDK_DEBUG"
|
||||
msgstr "Suporte a Vulkan desativado via GDK_DEBUG"
|
||||
|
||||
@@ -798,17 +798,17 @@ msgid "Cannot store clipboard. No clipboard manager is active."
|
||||
msgstr ""
|
||||
"Não foi possível armazenar a área de transferência. Nenhum gestor está ativo."
|
||||
|
||||
#: gdk/x11/gdkglcontext-glx.c:778
|
||||
#: gdk/x11/gdkglcontext-glx.c:780
|
||||
msgid "No GLX configurations available"
|
||||
msgstr "Nenhuma configuração GLX disponível"
|
||||
|
||||
#: gdk/x11/gdkglcontext-glx.c:851
|
||||
#: gdk/x11/gdkglcontext-glx.c:853
|
||||
msgid "No GLX configuration with required features found"
|
||||
msgstr ""
|
||||
"Não foi encontrada nenhuma configuração de GLX com as características "
|
||||
"necessárias"
|
||||
|
||||
#: gdk/x11/gdkglcontext-glx.c:925
|
||||
#: gdk/x11/gdkglcontext-glx.c:927
|
||||
msgid "GLX is not supported"
|
||||
msgstr "A GLX não é suportada"
|
||||
|
||||
@@ -2125,7 +2125,7 @@ msgstr "Já existe um ficheiro com esse nome"
|
||||
#: gtk/gtkmountoperation.c:610 gtk/gtkpagesetupunixdialog.c:283
|
||||
#: gtk/gtkprintbackend.c:642 gtk/gtkprinteroptionwidget.c:713
|
||||
#: gtk/gtkprintunixdialog.c:667 gtk/gtkprintunixdialog.c:823
|
||||
#: gtk/gtkwindow.c:6218 gtk/inspector/css-editor.c:248
|
||||
#: gtk/gtkwindow.c:6226 gtk/inspector/css-editor.c:248
|
||||
#: gtk/inspector/recorder.c:1706
|
||||
msgid "_Cancel"
|
||||
msgstr "_Cancelar"
|
||||
@@ -2215,7 +2215,7 @@ msgid "If you delete an item, it will be permanently lost."
|
||||
msgstr "Se eliminar um item, estará permanentemente perdido."
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:1210 gtk/gtkfilechooserwidget.c:1826
|
||||
#: gtk/gtklabel.c:5533 gtk/gtktext.c:6064 gtk/gtktextview.c:8920
|
||||
#: gtk/gtklabel.c:5645 gtk/gtktext.c:6064 gtk/gtktextview.c:8920
|
||||
msgid "_Delete"
|
||||
msgstr "_Eliminar"
|
||||
|
||||
@@ -2336,7 +2336,7 @@ msgstr "Programa"
|
||||
msgid "Audio"
|
||||
msgstr "Áudio"
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:4303 gtk/gtkfontbutton.c:602
|
||||
#: gtk/gtkfilechooserwidget.c:4303 gtk/gtkfontbutton.c:604
|
||||
#: gtk/inspector/visual.ui:170
|
||||
msgid "Font"
|
||||
msgstr "Letra"
|
||||
@@ -2421,60 +2421,65 @@ msgstr "Acedido"
|
||||
msgid "Sans 12"
|
||||
msgstr "Sans 12"
|
||||
|
||||
#: gtk/gtkfontbutton.c:506 gtk/gtkfontbutton.c:626
|
||||
#: gtk/gtkfontbutton.c:508 gtk/gtkfontbutton.c:628
|
||||
msgid "Pick a Font"
|
||||
msgstr "Escolha uma letra"
|
||||
|
||||
#: gtk/gtkfontbutton.c:1363
|
||||
#: gtk/gtkfontbutton.c:1365
|
||||
msgctxt "font"
|
||||
msgid "None"
|
||||
msgstr "Nenhuma"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:1569
|
||||
#: gtk/gtkfontchooserwidget.c:1532
|
||||
msgctxt "Font variation axis"
|
||||
msgid "Width"
|
||||
msgstr "Largura"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:1570
|
||||
#: gtk/gtkfontchooserwidget.c:1533
|
||||
msgctxt "Font variation axis"
|
||||
msgid "Weight"
|
||||
msgstr "Peso"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:1571
|
||||
#: gtk/gtkfontchooserwidget.c:1534
|
||||
msgctxt "Font variation axis"
|
||||
msgid "Italic"
|
||||
msgstr "Itálico"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:1572
|
||||
#: gtk/gtkfontchooserwidget.c:1535
|
||||
msgctxt "Font variation axis"
|
||||
msgid "Slant"
|
||||
msgstr "Inclinado"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:1573
|
||||
#: gtk/gtkfontchooserwidget.c:1536
|
||||
msgctxt "Font variation axis"
|
||||
msgid "Optical Size"
|
||||
msgstr "Tamanho ótico"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:2120
|
||||
#: gtk/gtkfontchooserwidget.c:2140
|
||||
msgid "Default"
|
||||
msgstr "Predefinição"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:2166
|
||||
#: gtk/gtkfontchooserwidget.c:2186
|
||||
msgid "Ligatures"
|
||||
msgstr "Ligaduras"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:2167
|
||||
#: gtk/gtkfontchooserwidget.c:2187
|
||||
msgid "Letter Case"
|
||||
msgstr "Caixa de letra"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:2168
|
||||
#: gtk/gtkfontchooserwidget.c:2188
|
||||
msgid "Number Case"
|
||||
msgstr "Caixa de número"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:2169
|
||||
#: gtk/gtkfontchooserwidget.c:2189
|
||||
msgid "Number Spacing"
|
||||
msgstr "Espaçamento de número"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:2170
|
||||
#: gtk/gtkfontchooserwidget.c:2190
|
||||
msgid "Number Formatting"
|
||||
msgstr "Formatação de número"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:2171
|
||||
#: gtk/gtkfontchooserwidget.c:2191
|
||||
msgid "Character Variants"
|
||||
msgstr "Variantes de carácter"
|
||||
|
||||
@@ -2482,27 +2487,27 @@ msgstr "Variantes de carácter"
|
||||
msgid "OpenGL context creation failed"
|
||||
msgstr "Falha ao criar o contexto OpenGL"
|
||||
|
||||
#: gtk/gtklabel.c:5530 gtk/gtktext.c:6052 gtk/gtktextview.c:8908
|
||||
#: gtk/gtklabel.c:5642 gtk/gtktext.c:6052 gtk/gtktextview.c:8908
|
||||
msgid "Cu_t"
|
||||
msgstr "Cor_tar"
|
||||
|
||||
#: gtk/gtklabel.c:5531 gtk/gtktext.c:6056 gtk/gtktextview.c:8912
|
||||
#: gtk/gtklabel.c:5643 gtk/gtktext.c:6056 gtk/gtktextview.c:8912
|
||||
msgid "_Copy"
|
||||
msgstr "_Copiar"
|
||||
|
||||
#: gtk/gtklabel.c:5532 gtk/gtktext.c:6060 gtk/gtktextview.c:8916
|
||||
#: gtk/gtklabel.c:5644 gtk/gtktext.c:6060 gtk/gtktextview.c:8916
|
||||
msgid "_Paste"
|
||||
msgstr "Co_lar"
|
||||
|
||||
#: gtk/gtklabel.c:5538 gtk/gtktext.c:6073 gtk/gtktextview.c:8941
|
||||
#: gtk/gtklabel.c:5650 gtk/gtktext.c:6073 gtk/gtktextview.c:8941
|
||||
msgid "Select _All"
|
||||
msgstr "Selecionar _tudo"
|
||||
|
||||
#: gtk/gtklabel.c:5543
|
||||
#: gtk/gtklabel.c:5655
|
||||
msgid "_Open Link"
|
||||
msgstr "_Abrir Ligação"
|
||||
|
||||
#: gtk/gtklabel.c:5547
|
||||
#: gtk/gtklabel.c:5659
|
||||
msgid "Copy _Link Address"
|
||||
msgstr "Copiar endereço da _ligação"
|
||||
|
||||
@@ -2551,7 +2556,7 @@ msgstr ""
|
||||
#. * Do *not* translate it to "predefinito:LTR", if it
|
||||
#. * it isn't default:LTR or default:RTL it will not work
|
||||
#.
|
||||
#: gtk/gtkmain.c:768
|
||||
#: gtk/gtkmain.c:771
|
||||
msgid "default:LTR"
|
||||
msgstr "default:LTR"
|
||||
|
||||
@@ -2604,7 +2609,7 @@ msgid "%d:%02d"
|
||||
msgstr "%d:%02d"
|
||||
|
||||
#: gtk/gtkmessagedialog.c:158 gtk/gtkmessagedialog.c:176
|
||||
#: gtk/gtkprintbackend.c:643 gtk/gtkwindow.c:6219
|
||||
#: gtk/gtkprintbackend.c:643 gtk/gtkwindow.c:6227
|
||||
msgid "_OK"
|
||||
msgstr "_Aceitar"
|
||||
|
||||
@@ -3483,7 +3488,7 @@ msgstr "_Desfazer"
|
||||
msgid "_Redo"
|
||||
msgstr "_Refazer"
|
||||
|
||||
#: gtk/gtktreeexpander.c:205
|
||||
#: gtk/gtktreeexpander.c:205 gtk/inspector/misc-info.ui:278
|
||||
msgid "Expand"
|
||||
msgstr "Expandir"
|
||||
|
||||
@@ -3506,12 +3511,12 @@ msgctxt "volume percentage"
|
||||
msgid "%d %%"
|
||||
msgstr "%d %%"
|
||||
|
||||
#: gtk/gtkwindow.c:6206
|
||||
#: gtk/gtkwindow.c:6214
|
||||
#, c-format
|
||||
msgid "Do you want to use GTK Inspector?"
|
||||
msgstr "Deseja usar o Inspetor GTK?"
|
||||
|
||||
#: gtk/gtkwindow.c:6208
|
||||
#: gtk/gtkwindow.c:6216
|
||||
#, c-format
|
||||
msgid ""
|
||||
"GTK Inspector is an interactive debugger that lets you explore and modify "
|
||||
@@ -3522,7 +3527,7 @@ msgstr ""
|
||||
"estado interno de qualquer aplicação GTK. Usá-lo pode fazer que a aplicação "
|
||||
"se encerre ou falhe."
|
||||
|
||||
#: gtk/gtkwindow.c:6213
|
||||
#: gtk/gtkwindow.c:6221
|
||||
msgid "Don’t show this message again"
|
||||
msgstr "Não mostrar esta mensagem novamente"
|
||||
|
||||
@@ -3593,30 +3598,38 @@ msgstr "Tipo de parâmetro"
|
||||
msgid "State"
|
||||
msgstr "Estado"
|
||||
|
||||
#: gtk/inspector/clipboard.c:149
|
||||
#: gtk/inspector/clipboard.c:211
|
||||
msgid "Show"
|
||||
msgstr "Mostrar"
|
||||
|
||||
#: gtk/inspector/clipboard.c:205
|
||||
#: gtk/inspector/clipboard.c:228
|
||||
msgid "Hover to load"
|
||||
msgstr "Pairar para carregar"
|
||||
|
||||
#: gtk/inspector/clipboard.c:278
|
||||
msgctxt "clipboard"
|
||||
msgid "empty"
|
||||
msgstr "vazio"
|
||||
|
||||
#: gtk/inspector/clipboard.c:210
|
||||
#: gtk/inspector/clipboard.c:283 gtk/inspector/clipboard.c:325
|
||||
msgctxt "clipboard"
|
||||
msgid "local"
|
||||
msgstr "local"
|
||||
|
||||
#: gtk/inspector/clipboard.c:212
|
||||
#: gtk/inspector/clipboard.c:285 gtk/inspector/clipboard.c:327
|
||||
msgctxt "clipboard"
|
||||
msgid "remote"
|
||||
msgstr "remoto"
|
||||
|
||||
#: gtk/inspector/clipboard.ui:31 gtk/inspector/window.ui:574
|
||||
#: gtk/inspector/clipboard.ui:31
|
||||
msgid "Drag and hold here"
|
||||
msgstr "Arrastar e manter aqui"
|
||||
|
||||
#: gtk/inspector/clipboard.ui:75 gtk/inspector/window.ui:574
|
||||
msgid "Clipboard"
|
||||
msgstr "Área de transferência"
|
||||
|
||||
#: gtk/inspector/clipboard.ui:70
|
||||
#: gtk/inspector/clipboard.ui:114
|
||||
msgid "Primary"
|
||||
msgstr "Principal"
|
||||
|
||||
@@ -3842,56 +3855,60 @@ msgid "Request Mode"
|
||||
msgstr "Modo de solicitação"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:269
|
||||
msgid "Allocation"
|
||||
msgstr "Alocação"
|
||||
msgid "Measure map"
|
||||
msgstr "Mapa de medida"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:298
|
||||
#: gtk/inspector/misc-info.ui:328
|
||||
msgid "Allocation"
|
||||
msgstr "Atribuição"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:357
|
||||
msgid "Baseline"
|
||||
msgstr "Linha base"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:327
|
||||
#: gtk/inspector/misc-info.ui:386
|
||||
msgid "Surface"
|
||||
msgstr "Surpefície"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:346 gtk/inspector/misc-info.ui:385
|
||||
#: gtk/inspector/misc-info.ui:424 gtk/inspector/prop-editor.c:1116
|
||||
#: gtk/inspector/misc-info.ui:405 gtk/inspector/misc-info.ui:444
|
||||
#: gtk/inspector/misc-info.ui:483 gtk/inspector/prop-editor.c:1116
|
||||
#: gtk/inspector/prop-editor.c:1476 gtk/inspector/window.ui:396
|
||||
msgid "Properties"
|
||||
msgstr "Propriedades"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:366
|
||||
#: gtk/inspector/misc-info.ui:425
|
||||
msgid "Renderer"
|
||||
msgstr "Renderizador"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:405
|
||||
#: gtk/inspector/misc-info.ui:464
|
||||
msgid "Frame Clock"
|
||||
msgstr "Moldura do relógio"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:444
|
||||
#: gtk/inspector/misc-info.ui:503
|
||||
msgid "Tick Callback"
|
||||
msgstr "Retorno do tique"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:474
|
||||
#: gtk/inspector/misc-info.ui:533
|
||||
msgid "Frame Count"
|
||||
msgstr "Contagem de imagem"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:503
|
||||
#: gtk/inspector/misc-info.ui:562
|
||||
msgid "Frame Rate"
|
||||
msgstr "Taxa de atualização"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:532
|
||||
#: gtk/inspector/misc-info.ui:591
|
||||
msgid "Mapped"
|
||||
msgstr "Mapeado"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:562
|
||||
#: gtk/inspector/misc-info.ui:621
|
||||
msgid "Realized"
|
||||
msgstr "Realizado"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:592
|
||||
#: gtk/inspector/misc-info.ui:651
|
||||
msgid "Is Toplevel"
|
||||
msgstr "É nível de topo"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:622
|
||||
#: gtk/inspector/misc-info.ui:681
|
||||
msgid "Child Visible"
|
||||
msgstr "Filho visível"
|
||||
|
||||
|
||||
@@ -4,13 +4,13 @@
|
||||
# Maxim Dziumanenko <dziumanenko@gmail.com>, 2004-2010.
|
||||
# wanderlust <wanderlust@ukr.net>, 2009.
|
||||
# Daniel Korostil <ted.korostiled@gmail.com>, 2013, 2014, 2015, 2016.
|
||||
# Yuri Chornoivan <yurchor@ukr.net>, 2014, 2020, 2021.
|
||||
# Yuri Chornoivan <yurchor@ukr.net>, 2014, 2020, 2021, 2022.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gtk+\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gtk/-/issues/\n"
|
||||
"POT-Creation-Date: 2021-12-14 00:32+0000\n"
|
||||
"PO-Revision-Date: 2021-12-14 15:20+0200\n"
|
||||
"POT-Creation-Date: 2022-01-03 02:53+0000\n"
|
||||
"PO-Revision-Date: 2022-01-03 22:50+0200\n"
|
||||
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
|
||||
"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
|
||||
"Language: uk\n"
|
||||
@@ -49,7 +49,7 @@ msgstr "Не вдалося надати дані як «%s»"
|
||||
msgid "Cannot provide contents as %s"
|
||||
msgstr "Не вдалося надати дані як %s"
|
||||
|
||||
#: gdk/gdkdisplay.c:154 gdk/gdkglcontext.c:421
|
||||
#: gdk/gdkdisplay.c:154 gdk/gdkglcontext.c:427
|
||||
msgid "The current backend does not support OpenGL"
|
||||
msgstr "Цей модуль не підтримує OpenGL"
|
||||
|
||||
@@ -111,34 +111,34 @@ msgstr ""
|
||||
msgid "No compatible formats to transfer contents."
|
||||
msgstr "Немає сумісних форматів для передавання даних."
|
||||
|
||||
#: gdk/gdkglcontext.c:323
|
||||
#: gdk/gdkglcontext.c:329
|
||||
msgid "The EGL implementation does not support any allowed APIs"
|
||||
msgstr ""
|
||||
"У реалізації EGL не передбачено підтримки жодного з дозволених програмних "
|
||||
"інтерфейсів"
|
||||
|
||||
#: gdk/gdkglcontext.c:404 gdk/win32/gdkglcontext-win32-wgl.c:624
|
||||
#: gdk/x11/gdkglcontext-glx.c:622
|
||||
#: gdk/gdkglcontext.c:410 gdk/win32/gdkglcontext-win32-wgl.c:624
|
||||
#: gdk/x11/gdkglcontext-glx.c:624
|
||||
msgid "Unable to create a GL context"
|
||||
msgstr "Неможливо створити вміст GL"
|
||||
|
||||
#: gdk/gdkglcontext.c:1237
|
||||
#: gdk/gdkglcontext.c:1260
|
||||
msgid "Anything but OpenGL ES disabled via GDK_DEBUG"
|
||||
msgstr "За допомогою GDK_DEBUG вимкнено усе, окрім OpenGL ES"
|
||||
|
||||
#: gdk/gdkglcontext.c:1246
|
||||
#: gdk/gdkglcontext.c:1269
|
||||
#, c-format
|
||||
msgid "Application does not support %s API"
|
||||
msgstr "У програмі не передбачено підтримки програмного інтерфейсу %s"
|
||||
|
||||
#. translators: This is about OpenGL backend names, like
|
||||
#. * "Trying to use X11 GLX, but EGL is already in use"
|
||||
#: gdk/gdkglcontext.c:1732
|
||||
#: gdk/gdkglcontext.c:1790
|
||||
#, c-format
|
||||
msgid "Trying to use %s, but %s is already in use"
|
||||
msgstr "Намагаємося скористатися %s, але %s вже використано"
|
||||
|
||||
#: gdk/gdksurface.c:1238
|
||||
#: gdk/gdksurface.c:1240
|
||||
msgid "Vulkan support disabled via GDK_DEBUG"
|
||||
msgstr "Вимкнено підтримування Vulkan через GDK_DEBUG"
|
||||
|
||||
@@ -559,8 +559,7 @@ msgstr "Не вдалося завантажити дані RGB з файлу ф
|
||||
|
||||
#: gdk/loaders/gdktiff.c:383
|
||||
msgid "Could not load TIFF data"
|
||||
msgstr ""
|
||||
"Не вдалося завантажити дані TIFF"
|
||||
msgstr "Не вдалося завантажити дані TIFF"
|
||||
|
||||
#: gdk/loaders/gdktiff.c:465
|
||||
#, c-format
|
||||
@@ -801,15 +800,15 @@ msgstr ""
|
||||
"Не вдалося зберегти буфер обміну. Немає активної програми для керування "
|
||||
"буфером обміну."
|
||||
|
||||
#: gdk/x11/gdkglcontext-glx.c:778
|
||||
#: gdk/x11/gdkglcontext-glx.c:780
|
||||
msgid "No GLX configurations available"
|
||||
msgstr "Немає доступних налаштувань GLX"
|
||||
|
||||
#: gdk/x11/gdkglcontext-glx.c:851
|
||||
#: gdk/x11/gdkglcontext-glx.c:853
|
||||
msgid "No GLX configuration with required features found"
|
||||
msgstr "Не знайдено налаштувань GLX із потрібними можливостями"
|
||||
|
||||
#: gdk/x11/gdkglcontext-glx.c:925
|
||||
#: gdk/x11/gdkglcontext-glx.c:927
|
||||
msgid "GLX is not supported"
|
||||
msgstr "Підтримки GLX не передбачено"
|
||||
|
||||
@@ -2127,8 +2126,8 @@ msgstr "Файл з такою назвою вже існує"
|
||||
#: gtk/gtkmountoperation.c:610 gtk/gtkpagesetupunixdialog.c:283
|
||||
#: gtk/gtkprintbackend.c:642 gtk/gtkprinteroptionwidget.c:713
|
||||
#: gtk/gtkprintunixdialog.c:667 gtk/gtkprintunixdialog.c:823
|
||||
#: gtk/gtkwindow.c:6218 gtk/inspector/css-editor.c:248
|
||||
#: gtk/inspector/recorder.c:1271
|
||||
#: gtk/gtkwindow.c:6226 gtk/inspector/css-editor.c:248
|
||||
#: gtk/inspector/recorder.c:1706
|
||||
msgid "_Cancel"
|
||||
msgstr "_Скасувати"
|
||||
|
||||
@@ -2139,7 +2138,7 @@ msgid "_Open"
|
||||
msgstr "_Відкрити"
|
||||
|
||||
#: gtk/gtkfilechoosernative.c:574 gtk/inspector/css-editor.c:249
|
||||
#: gtk/inspector/recorder.c:1272
|
||||
#: gtk/inspector/recorder.c:1707
|
||||
msgid "_Save"
|
||||
msgstr "З_берегти"
|
||||
|
||||
@@ -2216,7 +2215,7 @@ msgid "If you delete an item, it will be permanently lost."
|
||||
msgstr "Якщо вилучити об'єкт, його буде втрачено назавжди."
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:1210 gtk/gtkfilechooserwidget.c:1826
|
||||
#: gtk/gtklabel.c:5533 gtk/gtktext.c:6064 gtk/gtktextview.c:8920
|
||||
#: gtk/gtklabel.c:5644 gtk/gtktext.c:6064 gtk/gtktextview.c:8920
|
||||
msgid "_Delete"
|
||||
msgstr "В_илучити"
|
||||
|
||||
@@ -2337,7 +2336,7 @@ msgstr "Програма"
|
||||
msgid "Audio"
|
||||
msgstr "Звук"
|
||||
|
||||
#: gtk/gtkfilechooserwidget.c:4303 gtk/gtkfontbutton.c:602
|
||||
#: gtk/gtkfilechooserwidget.c:4303 gtk/gtkfontbutton.c:604
|
||||
#: gtk/inspector/visual.ui:170
|
||||
msgid "Font"
|
||||
msgstr "Шрифт"
|
||||
@@ -2421,60 +2420,70 @@ msgstr "Дозволено"
|
||||
msgid "Sans 12"
|
||||
msgstr "Sans 12"
|
||||
|
||||
#: gtk/gtkfontbutton.c:506 gtk/gtkfontbutton.c:626
|
||||
#: gtk/gtkfontbutton.c:508 gtk/gtkfontbutton.c:628
|
||||
msgid "Pick a Font"
|
||||
msgstr "Виберіть шрифт"
|
||||
|
||||
#: gtk/gtkfontbutton.c:1363
|
||||
#: gtk/gtkfontbutton.c:1365
|
||||
msgctxt "font"
|
||||
msgid "None"
|
||||
msgstr "Немає"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:1569
|
||||
#: gtk/gtkfontchooserwidget.c:1532
|
||||
#| msgid "Width"
|
||||
msgctxt "Font variation axis"
|
||||
msgid "Width"
|
||||
msgstr "Ширина"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:1570
|
||||
#: gtk/gtkfontchooserwidget.c:1533
|
||||
#| msgid "Weight"
|
||||
msgctxt "Font variation axis"
|
||||
msgid "Weight"
|
||||
msgstr "Вага"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:1571
|
||||
#: gtk/gtkfontchooserwidget.c:1534
|
||||
#| msgid "Italic"
|
||||
msgctxt "Font variation axis"
|
||||
msgid "Italic"
|
||||
msgstr "Курсив"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:1572
|
||||
#: gtk/gtkfontchooserwidget.c:1535
|
||||
#| msgid "Slant"
|
||||
msgctxt "Font variation axis"
|
||||
msgid "Slant"
|
||||
msgstr "Нахил"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:1573
|
||||
#: gtk/gtkfontchooserwidget.c:1536
|
||||
#| msgid "Optical Size"
|
||||
msgctxt "Font variation axis"
|
||||
msgid "Optical Size"
|
||||
msgstr "Оптичний розмір"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:2120
|
||||
#: gtk/gtkfontchooserwidget.c:2140
|
||||
msgid "Default"
|
||||
msgstr "Типово"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:2166
|
||||
#: gtk/gtkfontchooserwidget.c:2186
|
||||
msgid "Ligatures"
|
||||
msgstr "Лігатури"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:2167
|
||||
#: gtk/gtkfontchooserwidget.c:2187
|
||||
msgid "Letter Case"
|
||||
msgstr "Розмір літер"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:2168
|
||||
#: gtk/gtkfontchooserwidget.c:2188
|
||||
msgid "Number Case"
|
||||
msgstr "Розмір цифр"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:2169
|
||||
#: gtk/gtkfontchooserwidget.c:2189
|
||||
msgid "Number Spacing"
|
||||
msgstr "Інтервали між цифрами"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:2170
|
||||
#: gtk/gtkfontchooserwidget.c:2190
|
||||
msgid "Number Formatting"
|
||||
msgstr "Форматування чисел"
|
||||
|
||||
#: gtk/gtkfontchooserwidget.c:2171
|
||||
#: gtk/gtkfontchooserwidget.c:2191
|
||||
msgid "Character Variants"
|
||||
msgstr "Варіанти символів"
|
||||
|
||||
@@ -2482,27 +2491,27 @@ msgstr "Варіанти символів"
|
||||
msgid "OpenGL context creation failed"
|
||||
msgstr "Не вдалося створити контекст OpenGL"
|
||||
|
||||
#: gtk/gtklabel.c:5530 gtk/gtktext.c:6052 gtk/gtktextview.c:8908
|
||||
#: gtk/gtklabel.c:5641 gtk/gtktext.c:6052 gtk/gtktextview.c:8908
|
||||
msgid "Cu_t"
|
||||
msgstr "Ви_різати"
|
||||
|
||||
#: gtk/gtklabel.c:5531 gtk/gtktext.c:6056 gtk/gtktextview.c:8912
|
||||
#: gtk/gtklabel.c:5642 gtk/gtktext.c:6056 gtk/gtktextview.c:8912
|
||||
msgid "_Copy"
|
||||
msgstr "_Копіювати"
|
||||
|
||||
#: gtk/gtklabel.c:5532 gtk/gtktext.c:6060 gtk/gtktextview.c:8916
|
||||
#: gtk/gtklabel.c:5643 gtk/gtktext.c:6060 gtk/gtktextview.c:8916
|
||||
msgid "_Paste"
|
||||
msgstr "Вст_авити"
|
||||
|
||||
#: gtk/gtklabel.c:5538 gtk/gtktext.c:6073 gtk/gtktextview.c:8941
|
||||
#: gtk/gtklabel.c:5649 gtk/gtktext.c:6073 gtk/gtktextview.c:8941
|
||||
msgid "Select _All"
|
||||
msgstr "Виді_лити все"
|
||||
|
||||
#: gtk/gtklabel.c:5543
|
||||
#: gtk/gtklabel.c:5654
|
||||
msgid "_Open Link"
|
||||
msgstr "_Відкрити посилання"
|
||||
|
||||
#: gtk/gtklabel.c:5547
|
||||
#: gtk/gtklabel.c:5658
|
||||
msgid "Copy _Link Address"
|
||||
msgstr "Копіювати _адресу посилання"
|
||||
|
||||
@@ -2551,7 +2560,7 @@ msgstr ""
|
||||
#. * Do *not* translate it to "predefinito:LTR", if it
|
||||
#. * it isn't default:LTR or default:RTL it will not work
|
||||
#.
|
||||
#: gtk/gtkmain.c:768
|
||||
#: gtk/gtkmain.c:771
|
||||
msgid "default:LTR"
|
||||
msgstr "default:LTR"
|
||||
|
||||
@@ -2604,7 +2613,7 @@ msgid "%d:%02d"
|
||||
msgstr "%d:%02d"
|
||||
|
||||
#: gtk/gtkmessagedialog.c:158 gtk/gtkmessagedialog.c:176
|
||||
#: gtk/gtkprintbackend.c:643 gtk/gtkwindow.c:6219
|
||||
#: gtk/gtkprintbackend.c:643 gtk/gtkwindow.c:6227
|
||||
msgid "_OK"
|
||||
msgstr "_Гаразд"
|
||||
|
||||
@@ -2943,7 +2952,7 @@ msgstr "_Додати до закладок"
|
||||
|
||||
#: gtk/gtkplacessidebar.c:3244
|
||||
msgid "_Remove"
|
||||
msgstr "В_лучити"
|
||||
msgstr "Ви_лучити"
|
||||
|
||||
#: gtk/gtkplacessidebar.c:3260 gtk/gtkplacesview.c:1692
|
||||
msgid "_Mount"
|
||||
@@ -3482,7 +3491,7 @@ msgstr "_Скасувати"
|
||||
msgid "_Redo"
|
||||
msgstr "Пов_торити"
|
||||
|
||||
#: gtk/gtktreeexpander.c:205
|
||||
#: gtk/gtktreeexpander.c:205 gtk/inspector/misc-info.ui:278
|
||||
msgid "Expand"
|
||||
msgstr "Розгорнути"
|
||||
|
||||
@@ -3505,12 +3514,12 @@ msgctxt "volume percentage"
|
||||
msgid "%d %%"
|
||||
msgstr "%d %%"
|
||||
|
||||
#: gtk/gtkwindow.c:6206
|
||||
#: gtk/gtkwindow.c:6214
|
||||
#, c-format
|
||||
msgid "Do you want to use GTK Inspector?"
|
||||
msgstr "Бажаєте використовувати інспектор GTK?"
|
||||
|
||||
#: gtk/gtkwindow.c:6208
|
||||
#: gtk/gtkwindow.c:6216
|
||||
#, c-format
|
||||
msgid ""
|
||||
"GTK Inspector is an interactive debugger that lets you explore and modify "
|
||||
@@ -3521,7 +3530,7 @@ msgstr ""
|
||||
"редагувати внутрішні частини будь-які програми GTK. Його використання може "
|
||||
"спричинити збої в програмі."
|
||||
|
||||
#: gtk/gtkwindow.c:6213
|
||||
#: gtk/gtkwindow.c:6221
|
||||
msgid "Don’t show this message again"
|
||||
msgstr "Не показувати це повідомлення надалі"
|
||||
|
||||
@@ -3566,7 +3575,8 @@ msgid "Attribute"
|
||||
msgstr "Атрибут"
|
||||
|
||||
#: gtk/inspector/a11y.ui:78 gtk/inspector/css-node-tree.ui:119
|
||||
#: gtk/inspector/prop-list.ui:57 gtk/inspector/recorder.ui:124
|
||||
#: gtk/inspector/prop-list.ui:57 gtk/inspector/recorder.ui:155
|
||||
#: gtk/inspector/recorder.ui:221
|
||||
msgid "Value"
|
||||
msgstr "Значення"
|
||||
|
||||
@@ -3591,30 +3601,38 @@ msgstr "Тип параметра"
|
||||
msgid "State"
|
||||
msgstr "Стан"
|
||||
|
||||
#: gtk/inspector/clipboard.c:149
|
||||
#: gtk/inspector/clipboard.c:211
|
||||
msgid "Show"
|
||||
msgstr "Показати"
|
||||
|
||||
#: gtk/inspector/clipboard.c:205
|
||||
#: gtk/inspector/clipboard.c:228
|
||||
msgid "Hover to load"
|
||||
msgstr "Наведення для завантаження"
|
||||
|
||||
#: gtk/inspector/clipboard.c:278
|
||||
msgctxt "clipboard"
|
||||
msgid "empty"
|
||||
msgstr "порожній"
|
||||
|
||||
#: gtk/inspector/clipboard.c:210
|
||||
#: gtk/inspector/clipboard.c:283 gtk/inspector/clipboard.c:325
|
||||
msgctxt "clipboard"
|
||||
msgid "local"
|
||||
msgstr "локальний"
|
||||
|
||||
#: gtk/inspector/clipboard.c:212
|
||||
#: gtk/inspector/clipboard.c:285 gtk/inspector/clipboard.c:327
|
||||
msgctxt "clipboard"
|
||||
msgid "remote"
|
||||
msgstr "віддалений"
|
||||
|
||||
#: gtk/inspector/clipboard.ui:31 gtk/inspector/window.ui:574
|
||||
#: gtk/inspector/clipboard.ui:31
|
||||
msgid "Drag and hold here"
|
||||
msgstr "Перетягніть і затримайте тут"
|
||||
|
||||
#: gtk/inspector/clipboard.ui:75 gtk/inspector/window.ui:574
|
||||
msgid "Clipboard"
|
||||
msgstr "Буфер обміну"
|
||||
|
||||
#: gtk/inspector/clipboard.ui:70
|
||||
#: gtk/inspector/clipboard.ui:114
|
||||
msgid "Primary"
|
||||
msgstr "Основний"
|
||||
|
||||
@@ -3837,56 +3855,60 @@ msgid "Request Mode"
|
||||
msgstr "Режим запиту"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:269
|
||||
msgid "Measure map"
|
||||
msgstr "Мапа вимірювання"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:328
|
||||
msgid "Allocation"
|
||||
msgstr "Розміщення"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:298
|
||||
#: gtk/inspector/misc-info.ui:357
|
||||
msgid "Baseline"
|
||||
msgstr "Базова лінія"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:327
|
||||
#: gtk/inspector/misc-info.ui:386
|
||||
msgid "Surface"
|
||||
msgstr "Поверхня"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:346 gtk/inspector/misc-info.ui:385
|
||||
#: gtk/inspector/misc-info.ui:424 gtk/inspector/prop-editor.c:1116
|
||||
#: gtk/inspector/misc-info.ui:405 gtk/inspector/misc-info.ui:444
|
||||
#: gtk/inspector/misc-info.ui:483 gtk/inspector/prop-editor.c:1116
|
||||
#: gtk/inspector/prop-editor.c:1476 gtk/inspector/window.ui:396
|
||||
msgid "Properties"
|
||||
msgstr "Властивості"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:366
|
||||
#: gtk/inspector/misc-info.ui:425
|
||||
msgid "Renderer"
|
||||
msgstr "Відтворювач"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:405
|
||||
#: gtk/inspector/misc-info.ui:464
|
||||
msgid "Frame Clock"
|
||||
msgstr "Годинник кадрів"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:444
|
||||
#: gtk/inspector/misc-info.ui:503
|
||||
msgid "Tick Callback"
|
||||
msgstr "Позначити зворотний виклик"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:474
|
||||
#: gtk/inspector/misc-info.ui:533
|
||||
msgid "Frame Count"
|
||||
msgstr "Підрахунок кадрів"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:503
|
||||
#: gtk/inspector/misc-info.ui:562
|
||||
msgid "Frame Rate"
|
||||
msgstr "Частота кадрів"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:532
|
||||
#: gtk/inspector/misc-info.ui:591
|
||||
msgid "Mapped"
|
||||
msgstr "Відображення"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:562
|
||||
#: gtk/inspector/misc-info.ui:621
|
||||
msgid "Realized"
|
||||
msgstr "Спостереження"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:592
|
||||
#: gtk/inspector/misc-info.ui:651
|
||||
msgid "Is Toplevel"
|
||||
msgstr "На верхньому рівні"
|
||||
|
||||
#: gtk/inspector/misc-info.ui:622
|
||||
#: gtk/inspector/misc-info.ui:681
|
||||
msgid "Child Visible"
|
||||
msgstr "Видимі діти"
|
||||
|
||||
@@ -3994,36 +4016,40 @@ msgstr "Джерело:"
|
||||
msgid "Defined At"
|
||||
msgstr "Визначено в"
|
||||
|
||||
#: gtk/inspector/recorder.c:1242
|
||||
#: gtk/inspector/recorder.c:1677
|
||||
#, c-format
|
||||
msgid "Saving RenderNode failed"
|
||||
msgstr "Не вдалося зберегти RenderNode"
|
||||
|
||||
#: gtk/inspector/recorder.ui:15
|
||||
#: gtk/inspector/recorder.ui:20
|
||||
msgid "Record frames"
|
||||
msgstr "Запис кадрів"
|
||||
|
||||
#: gtk/inspector/recorder.ui:22
|
||||
#: gtk/inspector/recorder.ui:27
|
||||
msgid "Clear recorded frames"
|
||||
msgstr "Вилучити записані кадри"
|
||||
|
||||
#: gtk/inspector/recorder.ui:29
|
||||
#: gtk/inspector/recorder.ui:34
|
||||
msgid "Add debug nodes"
|
||||
msgstr "Додати діагностичні вузли"
|
||||
|
||||
#: gtk/inspector/recorder.ui:38
|
||||
#: gtk/inspector/recorder.ui:42
|
||||
msgid "Highlight event sequences"
|
||||
msgstr "Підсвітити послідовності подій"
|
||||
|
||||
#: gtk/inspector/recorder.ui:51
|
||||
msgid "Use a dark background"
|
||||
msgstr "Використовувати темне тло"
|
||||
|
||||
#: gtk/inspector/recorder.ui:46
|
||||
#: gtk/inspector/recorder.ui:59
|
||||
msgid "Save selected node"
|
||||
msgstr "Зберегти позначений вузол"
|
||||
|
||||
#: gtk/inspector/recorder.ui:54
|
||||
#: gtk/inspector/recorder.ui:67
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Скопіювати до буфера"
|
||||
|
||||
#: gtk/inspector/recorder.ui:111
|
||||
#: gtk/inspector/recorder.ui:142 gtk/inspector/recorder.ui:208
|
||||
msgid "Property"
|
||||
msgstr "Властивість"
|
||||
|
||||
@@ -7474,13 +7500,11 @@ msgstr "Не вдалося обробити «%s»: %s\n"
|
||||
|
||||
#: tools/gtk-builder-tool-simplify.c:2303
|
||||
#, c-format
|
||||
#| msgid "Can’t parse “%s”: %s\n"
|
||||
msgid "Can't parse “%s”: %s\n"
|
||||
msgstr "Не вдалося обробити «%s»: %s\n"
|
||||
|
||||
#: tools/gtk-builder-tool-simplify.c:2309
|
||||
#, c-format
|
||||
#| msgid "Can’t parse “%s”: %s\n"
|
||||
msgid "Can't parse “%s”\n"
|
||||
msgstr "Не вдалося обробити «%s»\n"
|
||||
|
||||
|
||||
@@ -15,10 +15,15 @@
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <string.h>
|
||||
#ifdef HAVE_PANGOFT
|
||||
#include <pango/pangofc-fontmap.h>
|
||||
#endif
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
|
||||
static gboolean
|
||||
monospace_filter (const PangoFontFamily *family,
|
||||
const PangoFontFace *face,
|
||||
@@ -86,6 +91,7 @@ main (int argc, char *argv[])
|
||||
|
||||
font_button = gtk_font_button_new ();
|
||||
|
||||
#ifdef HAVE_PANGOFT
|
||||
if (argc > 0)
|
||||
{
|
||||
FcConfig *config;
|
||||
@@ -103,6 +109,7 @@ main (int argc, char *argv[])
|
||||
pango_fc_font_map_set_config (PANGO_FC_FONT_MAP (fontmap), config);
|
||||
gtk_font_chooser_set_font_map (GTK_FONT_CHOOSER (font_button), fontmap);
|
||||
}
|
||||
#endif
|
||||
|
||||
gtk_font_button_set_use_font (GTK_FONT_BUTTON (font_button), TRUE);
|
||||
|
||||
|
||||
@@ -452,6 +452,9 @@ test_data = [
|
||||
'radial-positions.errors',
|
||||
'radial-positions.ref.css',
|
||||
'radial.ref.css',
|
||||
'rotate3d-crash.css',
|
||||
'rotate3d-crash.errors',
|
||||
'rotate3d-crash.ref.css',
|
||||
'selector.css',
|
||||
'selector.ref.css',
|
||||
'selector-original.css',
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
* {
|
||||
transform: rotate3d(90,90,90);
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
rotate3d-crash.css:2:31-32: error: GTK_CSS_PARSER_ERROR_SYNTAX
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user