Update upstream source from tag 'upstream/3.24.42'

Update to upstream version '3.24.42'
with Debian dir f8814cf53e
This commit is contained in:
Jeremy Bícha 2024-05-28 16:48:03 -04:00
commit f4acf7073e
34 changed files with 19280 additions and 1458 deletions

43
NEWS
View File

@ -1,3 +1,46 @@
Overview of Changes in GTK+ 3.24.42, 15-05-2024
===============================================
* GtkFileChooser:
- Avoid warnings about floating refs
- Improve performance of recursive search
- Populate search model in an idle
* GtkGLArea:
- Fix a regression in transparency handling
* Printing:
- Avoid accessing freed printers
* Accessibility:
- Drop support for the deprecated atk_focus_tracker
* Wayland:
- Fix monitor sizes
- Fix a crash related to tablet removal
- Infer resizable edges for tiled windows
- Always commit soon after acking a configure
* Windows:
- Avoid committing NULL strings to IME
* gdk:
- Use css cursor names as far as possible
- Sync DND cursor use with GTK4
* macOs:
- Fix cocoa pasteboard constants
* build:
- Allow building against sysprof-capture-4
* Translation updates:
Georgian
Hebrew
Kabyle
Persian
Overview of Changes in GTK+ 3.24.41, 23-01-2024
===============================================

View File

@ -36,12 +36,12 @@ static struct {
const gchar *name;
GdkCursor *cursor;
} drag_cursors[] = {
{ GDK_ACTION_DEFAULT, NULL, NULL },
{ GDK_ACTION_ASK, "dnd-ask", NULL },
{ GDK_ACTION_COPY, "dnd-copy", NULL },
{ GDK_ACTION_DEFAULT, NULL, NULL },
{ GDK_ACTION_ASK, "dnd-ask", NULL },
{ GDK_ACTION_COPY, "copy", NULL },
{ GDK_ACTION_MOVE, "dnd-move", NULL },
{ GDK_ACTION_LINK, "dnd-link", NULL },
{ 0, "dnd-none", NULL },
{ 0, "default", NULL },
};
enum {

View File

@ -540,6 +540,30 @@ gdk_cairo_draw_from_gl (cairo_t *cr,
/* Translate to impl coords */
cairo_region_translate (clip_region, dx, dy);
if (alpha_size != 0)
{
cairo_region_t *opaque_region, *blend_region;
opaque_region = cairo_region_copy (clip_region);
cairo_region_subtract (opaque_region, impl_window->current_paint.flushed_region);
cairo_region_subtract (opaque_region, impl_window->current_paint.need_blend_region);
if (!cairo_region_is_empty (opaque_region))
gdk_gl_texture_from_surface (impl_window->current_paint.surface,
opaque_region);
blend_region = cairo_region_copy (clip_region);
cairo_region_intersect (blend_region, impl_window->current_paint.need_blend_region);
glEnable (GL_BLEND);
if (!cairo_region_is_empty (blend_region))
gdk_gl_texture_from_surface (impl_window->current_paint.surface,
blend_region);
cairo_region_destroy (opaque_region);
cairo_region_destroy (blend_region);
}
glBindTexture (GL_TEXTURE_2D, source);
if (gdk_gl_context_get_use_es (paint_context) ||

View File

@ -508,7 +508,7 @@ copy_rectangle_argb32 (cairo_surface_t *dest, cairo_surface_t *source,
owner: self
userInfo: nil];
[self addTrackingArea: trackingArea];
trackingRect = (NSInteger)[trackingArea retain];
trackingRect = (NSInteger)trackingArea;
#else
trackingRect = [self addTrackingRect: rect
owner: self

View File

@ -27,6 +27,20 @@
#include <gdk/gdk.h>
#include <gdk/quartz/gdkquartz.h>
#if MAC_OS_X_VERSION_MIN_REQUIRED < 101400
#define GDK_QUARTZ_FILE_PBOARD_TYPE NSURLPboardType
#define GDK_QUARTZ_URL_PBOARD_TYPE NSURLPboardType
#define GDK_QUARTZ_COLOR_PBOARD_TYPE NSColorPboardType
#define GDK_QUARTZ_STRING_PBOARD_TYPE NSStringPboardType
#define GDK_QUARTZ_TIFF_PBOARD_TYPE NSTIFFPboardType
#else
#define GDK_QUARTZ_FILE_PBOARD_TYPE NSPasteboardTypeFileURL
#define GDK_QUARTZ_URL_PBOARD_TYPE NSPasteboardTypeURL
#define GDK_QUARTZ_COLOR_PBOARD_TYPE NSPasteboardTypeColor
#define GDK_QUARTZ_STRING_PBOARD_TYPE NSPasteboardTypeString
#define GDK_QUARTZ_TIFF_PBOARD_TYPE NSPasteboardTypeTIFF
#endif
/* Drag and Drop/Clipboard */
GDK_AVAILABLE_IN_ALL
GdkAtom gdk_quartz_pasteboard_type_to_atom_libgtk_only (NSString *type);

View File

@ -174,19 +174,6 @@ _gdk_quartz_display_text_property_to_utf8_list (GdkDisplay *display,
}
}
#if MAC_OS_X_VERSION_MIN_REQUIRED < 101400
#define GDK_QUARTZ_URL_PBOARD_TYPE NSURLPboardType
#define GDK_QUARTZ_COLOR_PBOARD_TYPE NSColorPboardType
#define GDK_QUARTZ_STRING_PBOARD_TYPE NSStringPboardType
#define GDK_QUARTZ_TIFF_PBOARD_TYPE NSTIFFPboardType
#else
#define GDK_QUARTZ_FILE_PBOARD_TYPE NSPasteboardTypeFileURL
#define GDK_QUARTZ_URL_PBOARD_TYPE NSPasteboardTypeURL
#define GDK_QUARTZ_COLOR_PBOARD_TYPE NSPasteboardTypeColor
#define GDK_QUARTZ_STRING_PBOARD_TYPE NSPasteboardTypeString
#define GDK_QUARTZ_TIFF_PBOARD_TYPE NSPasteboardTypeTIFF
#endif
GdkAtom
gdk_quartz_pasteboard_type_to_atom_libgtk_only (NSString *type)
{
@ -196,12 +183,9 @@ gdk_quartz_pasteboard_type_to_atom_libgtk_only (NSString *type)
return gdk_atom_intern_static_string ("image/tiff");
else if ([type isEqualToString:GDK_QUARTZ_COLOR_PBOARD_TYPE])
return gdk_atom_intern_static_string ("application/x-color");
else if ([type isEqualToString:GDK_QUARTZ_URL_PBOARD_TYPE])
else if ([type isEqualToString:GDK_QUARTZ_URL_PBOARD_TYPE] ||
[type isEqualToString:GDK_QUARTZ_FILE_PBOARD_TYPE])
return gdk_atom_intern_static_string ("text/uri-list");
#if MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
else if ([type isEqualToString:GDK_QUARTZ_FILE_PBOARD_TYPE])
return gdk_atom_intern_static_string ("text/uri-list");
#endif
else
return gdk_atom_intern ([type UTF8String], FALSE);
}

View File

@ -101,6 +101,7 @@ static const struct {
{ "move", "dnd-move" },
{ "no-drop", "dnd-none" },
{ "dnd-ask", "dnd-copy" }, /* not CSS, but we want to guarantee it anyway */
{ "dnd-move", "default" },
{ "not-allowed", "crossed_circle" },
{ "grab", "hand2" },
{ "grabbing", "hand2" },
@ -423,6 +424,36 @@ _gdk_wayland_display_get_cursor_for_type_with_scale (GdkDisplay *display,
g_free (cursor_name);
if (!result)
{
const char *name = NULL;
/* Map cursors back to standard names.
* Currently, we just list the cursor values
* that are used in GTK. More can be added.
*/
switch ((int)cursor_type)
{
case GDK_XTERM:
name = "text";
break;
case GDK_FLEUR:
name = "move";
break;
case GDK_CROSSHAIR:
name = "cross";
break;
default:
name = "default";
break;
}
if (name)
result = _gdk_wayland_display_get_cursor_for_name_with_scale (display,
name,
scale);
}
return result;
}

View File

@ -4560,7 +4560,10 @@ tablet_pad_handle_leave (void *data,
wp_tablet_pad, surface));
if (pad->current_tablet)
pad->current_tablet->pads = g_list_remove (pad->current_tablet->pads, pad);
{
pad->current_tablet->pads = g_list_remove (pad->current_tablet->pads, pad);
pad->current_tablet = NULL;
}
}
static void

View File

@ -31,11 +31,10 @@ struct _GdkWaylandMonitor {
struct wl_output *output;
struct zxdg_output_v1 *xdg_output;
/* Size and position, can be either from wl_output or xdg_output */
int32_t x;
int32_t y;
int32_t width;
int32_t height;
/* Raw wl_output data */
GdkRectangle output_geometry;
/* Raw xdg_output data */
GdkRectangle xdg_output_geometry;
char *name;
gboolean wl_output_done;
gboolean xdg_output_done;

View File

@ -1552,17 +1552,43 @@ should_expect_xdg_output_done (GdkWaylandMonitor *monitor)
static void
apply_monitor_change (GdkWaylandMonitor *monitor)
{
GDK_NOTE (MISC,
g_message ("monitor %d changed position %d %d, size %d %d",
monitor->id, monitor->output_geometry.x,
monitor->output_geometry.y,
monitor->output_geometry.width,
monitor->output_geometry.height));
GdkDisplay *display = GDK_MONITOR (monitor)->display;
GdkWaylandScreen *screen_wayland = GDK_WAYLAND_SCREEN (gdk_display_get_default_screen (display));
GDK_NOTE (MISC,
g_message ("monitor %d changed position %d %d, size %d %d",
monitor->id,
monitor->x, monitor->y,
monitor->width, monitor->height));
GdkRectangle logical_geometry;
gboolean needs_scaling = FALSE;
gdk_monitor_set_position (GDK_MONITOR (monitor), monitor->x, monitor->y);
gdk_monitor_set_size (GDK_MONITOR (monitor), monitor->width, monitor->height);
if (monitor->xdg_output_done)
{
logical_geometry = monitor->xdg_output_geometry;
needs_scaling =
logical_geometry.width == monitor->output_geometry.width ||
logical_geometry.height == monitor->output_geometry.height;
}
else
{
logical_geometry = monitor->output_geometry;
needs_scaling = TRUE;
}
if (needs_scaling)
{
int scale = gdk_monitor_get_scale_factor (GDK_MONITOR (monitor));
logical_geometry.y /= scale;
logical_geometry.x /= scale;
logical_geometry.width /= scale;
logical_geometry.height /= scale;
}
gdk_monitor_set_position (GDK_MONITOR (monitor), logical_geometry.x, logical_geometry.y);
gdk_monitor_set_size (GDK_MONITOR (monitor), logical_geometry.width, logical_geometry.height);
gdk_monitor_set_connector (GDK_MONITOR (monitor), monitor->name);
monitor->wl_output_done = FALSE;
monitor->xdg_output_done = FALSE;
@ -1582,8 +1608,9 @@ xdg_output_handle_logical_position (void *data,
GDK_NOTE (MISC,
g_message ("handle logical position xdg-output %d, position %d %d",
monitor->id, x, y));
monitor->x = x;
monitor->y = y;
monitor->xdg_output_geometry.x = x;
monitor->xdg_output_geometry.y = y;
}
static void
@ -1597,8 +1624,9 @@ xdg_output_handle_logical_size (void *data,
GDK_NOTE (MISC,
g_message ("handle logical size xdg-output %d, size %d %d",
monitor->id, width, height));
monitor->width = width;
monitor->height = height;
monitor->xdg_output_geometry.width = width;
monitor->xdg_output_geometry.height = height;
}
static void
@ -1685,8 +1713,8 @@ output_handle_geometry (void *data,
g_message ("handle geometry output %d, position %d %d, phys. size %d %d, subpixel layout %s, manufacturer %s, model %s, transform %s",
monitor->id, x, y, physical_width, physical_height, subpixel_to_string (subpixel), make, model, transform_to_string (transform)));
monitor->x = x;
monitor->y = y;
monitor->output_geometry.x = x;
monitor->output_geometry.y = y;
switch (transform)
{
@ -1731,29 +1759,13 @@ output_handle_scale (void *data,
int32_t scale)
{
GdkWaylandMonitor *monitor = (GdkWaylandMonitor *)data;
GdkRectangle previous_geometry;
int previous_scale;
int width;
int height;
GDK_NOTE (MISC,
g_message ("handle scale output %d, scale %d", monitor->id, scale));
gdk_monitor_get_geometry (GDK_MONITOR (monitor), &previous_geometry);
previous_scale = gdk_monitor_get_scale_factor (GDK_MONITOR (monitor));
/* Set the scale from wl_output protocol, regardless of xdg-output support */
gdk_monitor_set_scale_factor (GDK_MONITOR (monitor), scale);
if (monitor_has_xdg_output (monitor))
return;
width = previous_geometry.width * previous_scale;
height = previous_geometry.height * previous_scale;
monitor->width = width / scale;
monitor->height = height / scale;
if (should_update_monitor (monitor))
apply_monitor_change (monitor);
}
@ -1767,7 +1779,6 @@ output_handle_mode (void *data,
int refresh)
{
GdkWaylandMonitor *monitor = (GdkWaylandMonitor *)data;
int scale;
GDK_NOTE (MISC,
g_message ("handle mode output %d, size %d %d, rate %d",
@ -1776,9 +1787,8 @@ output_handle_mode (void *data,
if ((flags & WL_OUTPUT_MODE_CURRENT) == 0)
return;
scale = gdk_monitor_get_scale_factor (GDK_MONITOR (monitor));
monitor->width = width / scale;
monitor->height = height / scale;
monitor->output_geometry.width = width;
monitor->output_geometry.height = height;
gdk_monitor_set_refresh_rate (GDK_MONITOR (monitor), refresh);
if (should_update_monitor (monitor) || !monitor_has_xdg_output (monitor))

View File

@ -1082,6 +1082,14 @@ gdk_window_impl_wayland_end_paint (GdkWindow *window)
impl->pending_commit = TRUE;
}
else if (window->current_paint.use_gl &&
window->current_paint.surface_needs_composite &&
impl->pending_commit)
{
/* Discard issuing pending commit, as when we reach here, it means it'll
* be done implicitly by eglSwapBuffers(). */
impl->pending_commit = FALSE;
}
gdk_wayland_window_sync_margin (window);
gdk_wayland_window_sync_opaque_region (window);
@ -1664,6 +1672,49 @@ should_use_fixed_size (GdkWindowState state)
GDK_WINDOW_STATE_TILED);
}
static gboolean
has_per_edge_tiling_info (GdkWindowState state)
{
return state & (GDK_WINDOW_STATE_TOP_TILED |
GDK_WINDOW_STATE_RIGHT_TILED |
GDK_WINDOW_STATE_BOTTOM_TILED |
GDK_WINDOW_STATE_LEFT_TILED);
}
static GdkWindowState
infer_edge_constraints (GdkWindowState state)
{
if (state & (GDK_WINDOW_STATE_MAXIMIZED | GDK_WINDOW_STATE_FULLSCREEN))
return state;
if (!(state & GDK_WINDOW_STATE_TILED) || !has_per_edge_tiling_info (state))
return state |
GDK_WINDOW_STATE_TOP_RESIZABLE |
GDK_WINDOW_STATE_RIGHT_RESIZABLE |
GDK_WINDOW_STATE_BOTTOM_RESIZABLE |
GDK_WINDOW_STATE_LEFT_RESIZABLE;
if (!(state & GDK_WINDOW_STATE_TOP_TILED))
state |= GDK_WINDOW_STATE_TOP_RESIZABLE;
if (!(state & GDK_WINDOW_STATE_RIGHT_TILED))
state |= GDK_WINDOW_STATE_RIGHT_RESIZABLE;
if (!(state & GDK_WINDOW_STATE_BOTTOM_TILED))
state |= GDK_WINDOW_STATE_BOTTOM_RESIZABLE;
if (!(state & GDK_WINDOW_STATE_LEFT_TILED))
state |= GDK_WINDOW_STATE_LEFT_RESIZABLE;
return state;
}
static gboolean
supports_native_edge_constraints (GdkWindowImplWayland *impl)
{
struct gtk_surface1 *gtk_surface = impl->display_server.gtk_surface;
if (!gtk_surface)
return FALSE;
return gtk_surface1_get_version (gtk_surface) >= GTK_SURFACE1_CONFIGURE_EDGES_SINCE_VERSION;
}
static void
gdk_wayland_window_handle_configure (GdkWindow *window,
uint32_t serial)
@ -1671,6 +1722,7 @@ gdk_wayland_window_handle_configure (GdkWindow *window,
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
GdkWaylandDisplay *display_wayland =
GDK_WAYLAND_DISPLAY (gdk_window_get_display (window));
GdkFrameClock *frame_clock = gdk_window_get_frame_clock (window);
GdkWindowState new_state;
gboolean suspended;
int width = impl->pending.width;
@ -1712,6 +1764,9 @@ gdk_wayland_window_handle_configure (GdkWindow *window,
new_state = impl->pending.state;
impl->pending.state = 0;
if (!supports_native_edge_constraints (impl))
new_state = infer_edge_constraints (new_state);
fixed_size = should_use_fixed_size (new_state);
saved_size = (width == 0 && height == 0);
@ -1817,6 +1872,10 @@ gdk_wayland_window_handle_configure (GdkWindow *window,
if (impl->hint != GDK_WINDOW_TYPE_HINT_DIALOG &&
new_state & GDK_WINDOW_STATE_FOCUSED)
gdk_wayland_window_update_dialogs (window);
impl->pending_commit = TRUE;
gdk_frame_clock_request_phase (frame_clock,
GDK_FRAME_CLOCK_PHASE_AFTER_PAINT);
}
static void

View File

@ -525,11 +525,9 @@ gail_focus_notify (GtkWidget *widget)
/*
* Do not report focus on redundant object
*/
G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
if (atk_obj &&
(atk_object_get_role(atk_obj) != ATK_ROLE_REDUNDANT_OBJECT))
atk_focus_tracker_notify (atk_obj);
G_GNUC_END_IGNORE_DEPRECATIONS;
atk_object_notify_state_change (atk_obj, ATK_STATE_FOCUSED, TRUE);
if (atk_obj && transient)
g_object_unref (atk_obj);
if (subsequent_focus_widget)

View File

@ -1297,8 +1297,8 @@ gtk_handle_box_button_press (GtkWidget *widget,
}
priv->in_drag = TRUE;
priv->grab_device = event->device;
fleur = gdk_cursor_new_for_display (gtk_widget_get_display (widget),
GDK_FLEUR);
fleur = gdk_cursor_new_from_name (gtk_widget_get_display (widget),
"move");
if (gdk_device_grab (event->device,
gtk_widget_get_window (invisible),
GDK_OWNERSHIP_WINDOW,

View File

@ -616,8 +616,8 @@ set_cross_grab (GtkHSV *hsv,
GtkHSVPrivate *priv = hsv->priv;
GdkCursor *cursor;
cursor = gdk_cursor_new_for_display (gtk_widget_get_display (GTK_WIDGET (hsv)),
GDK_CROSSHAIR);
cursor = gdk_cursor_new_from_name (gtk_widget_get_display (GTK_WIDGET (hsv)),
"crosshair");
gdk_device_grab (device,
priv->window,
GDK_OWNERSHIP_NONE,

View File

@ -170,7 +170,6 @@ gtk_box_gadget_distribute (GtkBoxGadget *gadget,
if G_UNLIKELY (size < 0)
{
g_critical ("%s: assertion 'size >= 0' failed in %s", G_STRFUNC, G_OBJECT_TYPE_NAME (gtk_css_gadget_get_owner (GTK_CSS_GADGET (gadget))));
return;
}

View File

@ -966,7 +966,7 @@ pack_border (GtkCssShorthandProperty *shorthand,
{
GtkCssStyleProperty *prop;
GtkBorder border;
GValue v;
GValue v = G_VALUE_INIT;
prop = _gtk_css_shorthand_property_get_subproperty (shorthand, 0);
_gtk_style_property_query (GTK_STYLE_PROPERTY (prop), &v, query_func, query_data);

View File

@ -4724,7 +4724,7 @@ gtk_entry_drag_gesture_update (GtkGestureDrag *gesture,
button = gtk_gesture_single_get_current_button (GTK_GESTURE_SINGLE (gesture));
gtk_drag_begin_with_coordinates (widget, target_list, actions,
button, (GdkEvent*) event,
priv->drag_start_x + ranges[0],
priv->drag_start_x + (n_ranges > 0 ? ranges[0] : 0),
priv->drag_start_y);
g_free (ranges);
@ -9931,7 +9931,7 @@ gtk_entry_drag_begin (GtkWidget *widget,
gtk_entry_get_pixel_ranges (entry, &ranges, &n_ranges);
cairo_surface_get_device_scale (surface, &sx, &sy);
cairo_surface_set_device_offset (surface,
-(priv->drag_start_x - ranges[0]) * sx,
-(priv->drag_start_x - (n_ranges > 0 ? ranges[0] : 0)) * sx,
-(priv->drag_start_y) * sy);
g_free (ranges);

View File

@ -759,6 +759,7 @@ refresh_current_folder_and_file_part (GtkFileChooserEntry *chooser_entry)
filter = gtk_file_filter_new ();
pattern = g_strconcat (chooser_entry->file_part, "*", NULL);
gtk_file_filter_add_pattern (filter, pattern);
g_object_ref_sink (filter);
_gtk_file_system_model_set_filter (GTK_FILE_SYSTEM_MODEL (chooser_entry->completion_store),
filter);

View File

@ -5455,8 +5455,8 @@ gtk_label_create_window (GtkLabel *label)
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_NOREDIR;
if (gtk_widget_is_sensitive (widget) && priv->select_info->selectable)
{
attributes.cursor = gdk_cursor_new_for_display (gtk_widget_get_display (widget),
GDK_XTERM);
attributes.cursor = gdk_cursor_new_from_name (gtk_widget_get_display (widget),
"text");
attributes_mask |= GDK_WA_CURSOR;
}

View File

@ -195,7 +195,8 @@ indicator_is_left (GtkWidget *widget)
}
static void
gtk_model_button_update_state (GtkModelButton *button)
gtk_model_button_update_state (GtkModelButton *button,
GtkStateFlags previous_flags)
{
GtkStateFlags state;
GtkStateFlags indicator_state;
@ -252,9 +253,10 @@ gtk_model_button_update_state (GtkModelButton *button)
button->role == GTK_BUTTON_ROLE_RADIO)
{
AtkObject *object = _gtk_widget_peek_accessible (GTK_WIDGET (button));
if (object)
atk_object_notify_state_change (object, ATK_STATE_CHECKED,
(indicator_state & GTK_STATE_FLAG_CHECKED));
gboolean was_checked = (previous_flags & GTK_STATE_FLAG_CHECKED) != 0;
gboolean is_checked = (indicator_state & GTK_STATE_FLAG_CHECKED) != 0;
if (object && (was_checked != is_checked))
atk_object_notify_state_change (object, ATK_STATE_CHECKED, is_checked);
}
}
@ -290,7 +292,7 @@ static void
gtk_model_button_state_flags_changed (GtkWidget *widget,
GtkStateFlags previous_flags)
{
gtk_model_button_update_state (GTK_MODEL_BUTTON (widget));
gtk_model_button_update_state (GTK_MODEL_BUTTON (widget), previous_flags);
GTK_WIDGET_CLASS (gtk_model_button_parent_class)->state_flags_changed (widget, previous_flags);
}
@ -301,7 +303,7 @@ gtk_model_button_direction_changed (GtkWidget *widget,
{
GtkModelButton *button = GTK_MODEL_BUTTON (widget);
gtk_model_button_update_state (button);
gtk_model_button_update_state (button, GTK_STATE_FLAG_NORMAL);
update_node_ordering (button);
GTK_WIDGET_CLASS (gtk_model_button_parent_class)->direction_changed (widget, previous_dir);
@ -370,7 +372,7 @@ gtk_model_button_set_role (GtkModelButton *button,
update_node_name (button);
gtk_model_button_update_state (button);
gtk_model_button_update_state (button, GTK_STATE_FLAG_NORMAL);
gtk_widget_queue_draw (GTK_WIDGET (button));
g_object_notify_by_pspec (G_OBJECT (button), properties[PROP_ROLE]);
}
@ -428,7 +430,7 @@ gtk_model_button_set_active (GtkModelButton *button,
return;
button->active = active;
gtk_model_button_update_state (button);
gtk_model_button_update_state (button, GTK_STATE_FLAG_NORMAL);
gtk_widget_queue_draw (GTK_WIDGET (button));
g_object_notify_by_pspec (G_OBJECT (button), properties[PROP_ACTIVE]);
}
@ -441,7 +443,7 @@ gtk_model_button_set_menu_name (GtkModelButton *button,
button->menu_name = g_strdup (menu_name);
update_node_name (button);
gtk_model_button_update_state (button);
gtk_model_button_update_state (button, GTK_STATE_FLAG_NORMAL);
gtk_widget_queue_resize (GTK_WIDGET (button));
g_object_notify_by_pspec (G_OBJECT (button), properties[PROP_MENU_NAME]);
@ -456,7 +458,7 @@ gtk_model_button_set_inverted (GtkModelButton *button,
return;
button->inverted = inverted;
gtk_model_button_update_state (button);
gtk_model_button_update_state (button, GTK_STATE_FLAG_NORMAL);
update_node_ordering (button);
gtk_widget_queue_resize (GTK_WIDGET (button));
g_object_notify_by_pspec (G_OBJECT (button), properties[PROP_INVERTED]);
@ -1106,7 +1108,7 @@ gtk_model_button_get_accessible (GtkWidget *widget)
object = GTK_WIDGET_CLASS (gtk_model_button_parent_class)->get_accessible (widget);
gtk_model_button_update_state (GTK_MODEL_BUTTON (widget));
gtk_model_button_update_state (GTK_MODEL_BUTTON (widget), GTK_STATE_FLAG_NORMAL);
return object;
}

View File

@ -186,7 +186,7 @@ _gtk_quartz_get_selection_data_from_pasteboard (NSPasteboard *pasteboard,
selection_data->display = gdk_display_get_default ();
if (target == gdk_atom_intern_static_string ("UTF8_STRING"))
{
NSString *s = [pasteboard stringForType:NSStringPboardType];
NSString *s = [pasteboard stringForType:GDK_QUARTZ_STRING_PBOARD_TYPE];
if (s)
{
@ -237,7 +237,8 @@ _gtk_quartz_get_selection_data_from_pasteboard (NSPasteboard *pasteboard,
gtk_selection_data_set_uris (selection_data, uris);
g_free (uris);
}
else if ([[pasteboard types] containsObject:NSURLPboardType])
else if ([[pasteboard types] containsObject:GDK_QUARTZ_URL_PBOARD_TYPE] ||
[[pasteboard types] containsObject:GDK_QUARTZ_FILE_PBOARD_TYPE])
{
gchar *uris[2];
NSURL *url = [NSURL URLFromPasteboard:pasteboard];
@ -258,7 +259,7 @@ _gtk_quartz_get_selection_data_from_pasteboard (NSPasteboard *pasteboard,
name = gdk_atom_name (target);
if (strcmp (name, "image/tiff") == 0)
data = [pasteboard dataForType:NSTIFFPboardType];
data = [pasteboard dataForType:GDK_QUARTZ_TIFF_PBOARD_TYPE];
else
data = [pasteboard dataForType:[NSString stringWithUTF8String:name]];
@ -292,10 +293,10 @@ _gtk_quartz_set_selection_data_for_pasteboard (NSPasteboard *pasteboard,
type = gdk_quartz_atom_to_pasteboard_type_libgtk_only (gtk_selection_data_get_target (selection_data));
if ([type isEqualTo:NSStringPboardType])
if ([type isEqualTo:GDK_QUARTZ_STRING_PBOARD_TYPE])
[pasteboard setString:[NSString stringWithUTF8String:(const char *)data]
forType:type];
else if ([type isEqualTo:NSColorPboardType])
else if ([type isEqualTo:GDK_QUARTZ_COLOR_PBOARD_TYPE])
{
guint16 *color = (guint16 *)data;
float red, green, blue, alpha;
@ -309,7 +310,7 @@ _gtk_quartz_set_selection_data_for_pasteboard (NSPasteboard *pasteboard,
nscolor = [NSColor colorWithDeviceRed:red green:green blue:blue alpha:alpha];
[nscolor writeToPasteboard:pasteboard];
}
else if ([type isEqualTo:NSURLPboardType])
else if ([type isEqualTo:GDK_QUARTZ_URL_PBOARD_TYPE])
{
gchar **uris;

View File

@ -241,7 +241,7 @@ gtk_render_arrow (GtkStyleContext *context,
*
* ![](background.png)
*
* Since: 3.0.
* Since: 3.0
**/
void
gtk_render_background (GtkStyleContext *context,

View File

@ -34,12 +34,14 @@
#include "gtksearchenginetracker3.h"
#define N_RESULT_BATCH_ITEMS 50
#define MINER_FS_BUS_NAME "org.freedesktop.Tracker3.Miner.Files"
#define SEARCH_QUERY_BASE(__PATTERN__) \
"SELECT ?url " \
" nfo:fileName(?urn) " \
" nie:mimeType(?urn)" \
" nie:mimeType(?ie)" \
" nfo:fileSize(?urn)" \
" nfo:fileLastModified(?urn)" \
"FROM tracker:FileSystem " \
@ -47,12 +49,13 @@
" ?urn a nfo:FileDataObject ;" \
" nie:url ?url ; " \
" fts:match ~match . " \
" OPTIONAL { ?urn nie:interpretedAs ?ie } ." \
__PATTERN__ \
"} " \
"ORDER BY DESC(fts:rank(?urn)) DESC(?url)"
"ORDER BY ASC(?url)"
#define SEARCH_QUERY SEARCH_QUERY_BASE("")
#define SEARCH_RECURSIVE_QUERY SEARCH_QUERY_BASE("?urn (nfo:belongsToContainer/nie:isStoredAs)+/nie:url ~location")
#define SEARCH_RECURSIVE_QUERY SEARCH_QUERY_BASE("FILTER (STRSTARTS (?url, CONCAT (~location, '/')))")
#define SEARCH_LOCATION_QUERY SEARCH_QUERY_BASE("?urn nfo:belongsToContainer/nie:isStoredAs/nie:url ~location")
#define FILE_CHECK_QUERY "ASK { ?urn nie:url ~url }"
@ -65,6 +68,7 @@ struct _GtkSearchEngineTracker3
TrackerSparqlStatement *search_location_query;
TrackerSparqlStatement *file_check_query;
GCancellable *cancellable;
guint idle_id;
GtkQuery *query;
gboolean query_pending;
};
@ -74,6 +78,13 @@ struct _GtkSearchEngineTracker3Class
GtkSearchEngineClass parent_class;
};
typedef struct
{
TrackerSparqlCursor *cursor;
GtkSearchEngineTracker3 *engine;
gboolean got_results;
} CursorData;
static void gtk_search_engine_tracker3_initable_iface_init (GInitableIface *iface);
G_DEFINE_TYPE_WITH_CODE (GtkSearchEngineTracker3,
@ -97,6 +108,8 @@ finalize (GObject *object)
g_object_unref (engine->cancellable);
}
g_clear_handle_id (&engine->idle_id, g_source_remove);
g_clear_object (&engine->search_query);
g_clear_object (&engine->search_location_query);
g_clear_object (&engine->file_check_query);
@ -133,7 +146,18 @@ create_file_info (TrackerSparqlCursor *cursor)
str = tracker_sparql_cursor_get_string (cursor, 2, NULL);
if (str)
g_file_info_set_content_type (info, str);
{
g_file_info_set_content_type (info, str);
g_file_info_set_attribute_uint32 (info, "standard::type",
strcmp (str, "inode/directory") == 0 ?
G_FILE_TYPE_DIRECTORY :
G_FILE_TYPE_REGULAR);
}
else
{
g_file_info_set_content_type (info, "application/text");
g_file_info_set_attribute_uint32 (info, "standard::type", G_FILE_TYPE_UNKNOWN);
}
g_file_info_set_size (info,
tracker_sparql_cursor_get_integer (cursor, 3));
@ -149,6 +173,59 @@ create_file_info (TrackerSparqlCursor *cursor)
return info;
}
static gboolean
handle_cursor_idle_cb (gpointer user_data)
{
CursorData *data = user_data;
GtkSearchEngineTracker3 *engine = data->engine;
TrackerSparqlCursor *cursor = data->cursor;
gboolean has_next;
GList *hits = NULL;
GtkSearchHit *hit;
int i = 0;
for (i = 0; i < N_RESULT_BATCH_ITEMS; i++)
{
const gchar *url;
has_next = tracker_sparql_cursor_next (cursor, NULL, NULL);
if (!has_next)
break;
url = tracker_sparql_cursor_get_string (cursor, 0, NULL);
hit = g_slice_new0 (GtkSearchHit);
hit->file = g_file_new_for_uri (url);
hit->info = create_file_info (cursor);
hits = g_list_prepend (hits, hit);
data->got_results = TRUE;
}
_gtk_search_engine_hits_added (GTK_SEARCH_ENGINE (engine), hits);
g_list_free_full (hits, free_hit);
if (has_next)
return G_SOURCE_CONTINUE;
else
{
engine->idle_id = 0;
return G_SOURCE_REMOVE;
}
}
static void
cursor_data_free (gpointer user_data)
{
CursorData *data = user_data;
tracker_sparql_cursor_close (data->cursor);
_gtk_search_engine_finished (GTK_SEARCH_ENGINE (data->engine),
data->got_results);
g_object_unref (data->cursor);
g_object_unref (data->engine);
g_free (data);
}
static void
query_callback (TrackerSparqlStatement *statement,
GAsyncResult *res,
@ -156,9 +233,8 @@ query_callback (TrackerSparqlStatement *statement,
{
GtkSearchEngineTracker3 *engine;
TrackerSparqlCursor *cursor;
GList *hits = NULL;
GError *error = NULL;
GtkSearchHit *hit;
CursorData *data;
engine = GTK_SEARCH_ENGINE_TRACKER3 (user_data);
@ -174,25 +250,14 @@ query_callback (TrackerSparqlStatement *statement,
return;
}
while (tracker_sparql_cursor_next (cursor, NULL, NULL))
{
const gchar *url;
data = g_new0 (CursorData, 1);
data->cursor = cursor;
data->engine = engine;
url = tracker_sparql_cursor_get_string (cursor, 0, NULL);
hit = g_slice_new0 (GtkSearchHit);
hit->file = g_file_new_for_uri (url);
hit->info = create_file_info (cursor);
hits = g_list_prepend (hits, hit);
}
tracker_sparql_cursor_close (cursor);
_gtk_search_engine_hits_added (GTK_SEARCH_ENGINE (engine), hits);
_gtk_search_engine_finished (GTK_SEARCH_ENGINE (engine), hits != NULL);
g_list_free_full (hits, free_hit);
g_object_unref (engine);
g_object_unref (cursor);
engine->idle_id =
g_idle_add_full (G_PRIORITY_DEFAULT_IDLE,
handle_cursor_idle_cb,
data, cursor_data_free);
}
static void
@ -219,11 +284,15 @@ gtk_search_engine_tracker3_start (GtkSearchEngine *engine)
return;
}
tracker->query_pending = TRUE;
search_text = gtk_query_get_text (tracker->query);
location = gtk_query_get_location (tracker->query);
recursive = _gtk_search_engine_get_recursive (engine);
if (strlen (search_text) <= 1)
return;
tracker->query_pending = TRUE;
if (location)
{
gchar *location_uri = g_file_get_uri (location);
@ -271,6 +340,8 @@ gtk_search_engine_tracker3_stop (GtkSearchEngine *engine)
g_cancellable_cancel (tracker->cancellable);
tracker->query_pending = FALSE;
}
g_clear_handle_id (&tracker->idle_id, g_source_remove);
}
static void

View File

@ -1,5 +1,5 @@
project('gtk+', 'c',
version: '3.24.41',
version: '3.24.42',
default_options: [
'buildtype=debugoptimized',
'warning_level=1'
@ -833,7 +833,10 @@ endif
profiler_enabled = get_option('profiler')
if profiler_enabled
profiler_dep = dependency('sysprof-capture-3', static: true, required: true)
profiler_dep = dependency('sysprof-capture-3', static: true, required: false)
if not profiler_dep.found()
profiler_dep = dependency('sysprof-capture-4', static: true, required: false)
endif
if profiler_dep.found()
cdata.set('HAVE_SYSPROF_CAPTURE', profiler_dep.found())
else

View File

@ -336,6 +336,9 @@ gtk_im_context_ime_filter_keypress (GtkIMContext *context,
return FALSE;
utf8 = g_utf16_to_utf8 (event_priv->translation, event_priv->translation_len, NULL, NULL, NULL);
if (!utf8)
return FALSE;
g_signal_emit_by_name (context_ime, "commit", utf8);
g_free (utf8);

View File

@ -3690,6 +3690,19 @@ avahi_request_printer_list (GtkPrintBackendCups *cups_backend)
g_bus_get (G_BUS_TYPE_SYSTEM, cups_backend->avahi_cancellable, avahi_create_browsers, cups_backend);
}
/*
* Print backend can be disposed together with all its printers
* as a reaction to user stopping enumeration of printers.
*/
static void
backend_finalized_cb (gpointer data,
GObject *where_the_object_was)
{
gboolean *backend_finalized = data;
*backend_finalized = TRUE;
}
static void
cups_request_printer_list_cb (GtkPrintBackendCups *cups_backend,
GtkCupsResult *result,
@ -3702,6 +3715,7 @@ cups_request_printer_list_cb (GtkPrintBackendCups *cups_backend,
GList *removed_printer_checklist;
gchar *remote_default_printer = NULL;
GList *iter;
gboolean backend_finalized = FALSE;
gdk_threads_enter ();
@ -3738,6 +3752,8 @@ cups_request_printer_list_cb (GtkPrintBackendCups *cups_backend,
*/
removed_printer_checklist = gtk_print_backend_get_printer_list (backend);
g_object_weak_ref (G_OBJECT (backend), backend_finalized_cb, &backend_finalized);
response = gtk_cups_result_get_response (result);
for (attr = ippFirstAttribute (response); attr != NULL;
attr = ippNextAttribute (response))
@ -3848,6 +3864,9 @@ cups_request_printer_list_cb (GtkPrintBackendCups *cups_backend,
{
g_signal_emit_by_name (backend, "printer-added", printer);
if (backend_finalized)
break;
gtk_printer_set_is_new (printer, FALSE);
}
@ -3884,36 +3903,44 @@ cups_request_printer_list_cb (GtkPrintBackendCups *cups_backend,
break;
}
/* look at the removed printers checklist and mark any printer
as inactive if it is in the list, emitting a printer_removed signal */
if (removed_printer_checklist != NULL)
if (!backend_finalized)
{
for (iter = removed_printer_checklist; iter; iter = iter->next)
g_object_weak_unref (G_OBJECT (backend), backend_finalized_cb, &backend_finalized);
/* look at the removed printers checklist and mark any printer
as inactive if it is in the list, emitting a printer_removed signal */
if (removed_printer_checklist != NULL)
{
if (!GTK_PRINTER_CUPS (iter->data)->avahi_browsed)
for (iter = removed_printer_checklist; iter; iter = iter->next)
{
mark_printer_inactive (GTK_PRINTER (iter->data), backend);
list_has_changed = TRUE;
if (!GTK_PRINTER_CUPS (iter->data)->avahi_browsed)
{
mark_printer_inactive (GTK_PRINTER (iter->data), backend);
list_has_changed = TRUE;
}
}
}
g_list_free (removed_printer_checklist);
}
g_list_free (removed_printer_checklist);
done:
if (list_has_changed)
g_signal_emit_by_name (backend, "printer-list-changed");
gtk_print_backend_set_list_done (backend);
if (!cups_backend->got_default_printer && remote_default_printer != NULL)
if (!backend_finalized)
{
set_default_printer (cups_backend, remote_default_printer);
g_free (remote_default_printer);
}
if (list_has_changed)
g_signal_emit_by_name (backend, "printer-list-changed");
if (!cups_backend->got_default_printer && cups_backend->avahi_default_printer != NULL)
set_default_printer (cups_backend, cups_backend->avahi_default_printer);
gtk_print_backend_set_list_done (backend);
if (!cups_backend->got_default_printer && remote_default_printer != NULL)
{
set_default_printer (cups_backend, remote_default_printer);
g_free (remote_default_printer);
}
if (!cups_backend->got_default_printer && cups_backend->avahi_default_printer != NULL)
set_default_printer (cups_backend, cups_backend->avahi_default_printer);
}
gdk_threads_leave ();
}

View File

@ -61,6 +61,7 @@ is
it
ja
ka
kab
kg
kk
km

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

9311
po-properties/kab.po Normal file

File diff suppressed because it is too large Load Diff

View File

@ -61,6 +61,7 @@ is
it
ja
ka
kab
kg
kk
km

206
po/he.po
View File

@ -12,8 +12,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gtk+.HEAD.he\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-01-13 21:16+0000\n"
"PO-Revision-Date: 2024-01-14 08:56+0200\n"
"POT-Creation-Date: 2024-04-04 09:09+0000\n"
"PO-Revision-Date: 2024-04-07 08:12+0300\n"
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
"Language-Team: Hebrew <yoseforb@gmail.com>\n"
"Language: he\n"
@ -3673,42 +3673,42 @@ msgstr "נתוני המדפסת מתקבלים…"
#. * multiple pages on a sheet when printing
#.
#: gtk/gtkprintunixdialog.c:3120
#: modules/printbackends/cups/gtkprintbackendcups.c:5709
#: modules/printbackends/cups/gtkprintbackendcups.c:5736
msgid "Left to right, top to bottom"
msgstr "שמאל לימין, מלמעלה למטה"
#: gtk/gtkprintunixdialog.c:3120
#: modules/printbackends/cups/gtkprintbackendcups.c:5709
#: modules/printbackends/cups/gtkprintbackendcups.c:5736
msgid "Left to right, bottom to top"
msgstr "שמאל לימין, מלמטה למעלה"
#: gtk/gtkprintunixdialog.c:3121
#: modules/printbackends/cups/gtkprintbackendcups.c:5710
#: modules/printbackends/cups/gtkprintbackendcups.c:5737
msgid "Right to left, top to bottom"
msgstr "ימין לשמאל, מלמעלה למטה"
#: gtk/gtkprintunixdialog.c:3121
#: modules/printbackends/cups/gtkprintbackendcups.c:5710
#: modules/printbackends/cups/gtkprintbackendcups.c:5737
msgid "Right to left, bottom to top"
msgstr "ימין לשמאל, מלמטה למעלה"
#: gtk/gtkprintunixdialog.c:3122
#: modules/printbackends/cups/gtkprintbackendcups.c:5711
#: modules/printbackends/cups/gtkprintbackendcups.c:5738
msgid "Top to bottom, left to right"
msgstr "מלמעלה למטה, משמאל לימין"
#: gtk/gtkprintunixdialog.c:3122
#: modules/printbackends/cups/gtkprintbackendcups.c:5711
#: modules/printbackends/cups/gtkprintbackendcups.c:5738
msgid "Top to bottom, right to left"
msgstr "מלמעלה למטה, מימין לשמאל"
#: gtk/gtkprintunixdialog.c:3123
#: modules/printbackends/cups/gtkprintbackendcups.c:5712
#: modules/printbackends/cups/gtkprintbackendcups.c:5739
msgid "Bottom to top, left to right"
msgstr "מלמטה למעלה, משמאל לימין"
#: gtk/gtkprintunixdialog.c:3123
#: modules/printbackends/cups/gtkprintbackendcups.c:5712
#: modules/printbackends/cups/gtkprintbackendcups.c:5739
msgid "Bottom to top, right to left"
msgstr "מלמטה למעלה, מימין לשמאל"
@ -6845,7 +6845,7 @@ msgstr "ג׳אוואנית"
#: gtk/script-names.c:101
msgctxt "Script"
msgid "Kaithi"
msgstr ""
msgstr "קאיתי"
#: gtk/script-names.c:102
msgctxt "Script"
@ -6900,7 +6900,7 @@ msgstr "מנדאית"
#: gtk/script-names.c:112
msgctxt "Script"
msgid "Chakma"
msgstr ""
msgstr "צ׳אקמה"
#: gtk/script-names.c:113
msgctxt "Script"
@ -6920,22 +6920,22 @@ msgstr "מיאו"
#: gtk/script-names.c:116
msgctxt "Script"
msgid "Sharada"
msgstr ""
msgstr "שרדה"
#: gtk/script-names.c:117
msgctxt "Script"
msgid "Sora Sompeng"
msgstr ""
msgstr "סורה סומפנג"
#: gtk/script-names.c:118
msgctxt "Script"
msgid "Takri"
msgstr ""
msgstr "טאקרי"
#: gtk/script-names.c:119
msgctxt "Script"
msgid "Bassa"
msgstr ""
msgstr "באסה ואה"
#: gtk/script-names.c:120
msgctxt "Script"
@ -6945,7 +6945,7 @@ msgstr "אלבנית קווקזית"
#: gtk/script-names.c:121
msgctxt "Script"
msgid "Duployan"
msgstr ""
msgstr "דובילרן"
#: gtk/script-names.c:122
msgctxt "Script"
@ -6955,17 +6955,17 @@ msgstr "אלבסן"
#: gtk/script-names.c:123
msgctxt "Script"
msgid "Grantha"
msgstr ""
msgstr "גרנתה"
#: gtk/script-names.c:124
msgctxt "Script"
msgid "Khojki"
msgstr ""
msgstr "חוג׳קי"
#: gtk/script-names.c:125
msgctxt "Script"
msgid "Khudawadi, Sindhi"
msgstr ""
msgstr "חודוואדי, סינדית"
#: gtk/script-names.c:126
msgctxt "Script"
@ -6975,17 +6975,17 @@ msgstr "קווי א׳"
#: gtk/script-names.c:127
msgctxt "Script"
msgid "Mahajani"
msgstr ""
msgstr "מהג׳אני"
#: gtk/script-names.c:128
msgctxt "Script"
msgid "Manichaean"
msgstr ""
msgstr "מניצ׳י"
#: gtk/script-names.c:129
msgctxt "Script"
msgid "Mende Kikakui"
msgstr ""
msgstr "מנדה קיקקוי"
#: gtk/script-names.c:130
msgctxt "Script"
@ -7015,42 +7015,42 @@ msgstr "פרמית עתיקה"
#: gtk/script-names.c:135
msgctxt "Script"
msgid "Pahawh Hmong"
msgstr ""
msgstr "פאהח המונג"
#: gtk/script-names.c:136
msgctxt "Script"
msgid "Palmyrene"
msgstr ""
msgstr "פלמירן"
#: gtk/script-names.c:137
msgctxt "Script"
msgid "Pau Cin Hau"
msgstr ""
msgstr "פאו צ׳ין האו"
#: gtk/script-names.c:138
msgctxt "Script"
msgid "Psalter Pahlavi"
msgstr ""
msgstr "מזמור פהלווי"
#: gtk/script-names.c:139
msgctxt "Script"
msgid "Siddham"
msgstr ""
msgstr "סידהם"
#: gtk/script-names.c:140
msgctxt "Script"
msgid "Tirhuta"
msgstr ""
msgstr "תרותא"
#: gtk/script-names.c:141
msgctxt "Script"
msgid "Warang Citi"
msgstr ""
msgstr "ווראנג סיטי"
#: gtk/script-names.c:142
msgctxt "Script"
msgid "Ahom"
msgstr ""
msgstr "אהום"
#: gtk/script-names.c:143
msgctxt "Script"
@ -7060,12 +7060,12 @@ msgstr "הירוגליפים אנטוליים"
#: gtk/script-names.c:144
msgctxt "Script"
msgid "Hatran"
msgstr ""
msgstr "חטרן"
#: gtk/script-names.c:145
msgctxt "Script"
msgid "Multani"
msgstr ""
msgstr "מולטני"
#: gtk/script-names.c:146
msgctxt "Script"
@ -7080,27 +7080,27 @@ msgstr "שפת סימנים בכתב"
#: gtk/script-names.c:148
msgctxt "Script"
msgid "Adlam"
msgstr ""
msgstr "אדלם"
#: gtk/script-names.c:149
msgctxt "Script"
msgid "Bhaiksuki"
msgstr ""
msgstr "בהיקסוקי"
#: gtk/script-names.c:150
msgctxt "Script"
msgid "Marchen"
msgstr ""
msgstr "מרצ׳ן"
#: gtk/script-names.c:151
msgctxt "Script"
msgid "Newa"
msgstr ""
msgstr "נווארית"
#: gtk/script-names.c:152
msgctxt "Script"
msgid "Osage"
msgstr ""
msgstr "אוסייג׳"
#: gtk/script-names.c:153
msgctxt "Script"
@ -7110,7 +7110,7 @@ msgstr "טנגוט"
#: gtk/script-names.c:154
msgctxt "Script"
msgid "Masaram Gondi"
msgstr ""
msgstr "מסארם גונדי"
#: gtk/script-names.c:155
msgctxt "Script"
@ -7990,282 +7990,282 @@ msgstr "דוחה עבודות"
msgid "; "
msgstr "; "
#: modules/printbackends/cups/gtkprintbackendcups.c:4655
#: modules/printbackends/cups/gtkprintbackendcups.c:4722
#: modules/printbackends/cups/gtkprintbackendcups.c:4682
#: modules/printbackends/cups/gtkprintbackendcups.c:4749
msgctxt "printing option"
msgid "Two Sided"
msgstr "דו צדדי"
#: modules/printbackends/cups/gtkprintbackendcups.c:4656
#: modules/printbackends/cups/gtkprintbackendcups.c:4683
msgctxt "printing option"
msgid "Paper Type"
msgstr "סוג נייר"
#: modules/printbackends/cups/gtkprintbackendcups.c:4657
#: modules/printbackends/cups/gtkprintbackendcups.c:4684
msgctxt "printing option"
msgid "Paper Source"
msgstr "מקור נייר"
#: modules/printbackends/cups/gtkprintbackendcups.c:4658
#: modules/printbackends/cups/gtkprintbackendcups.c:4723
#: modules/printbackends/cups/gtkprintbackendcups.c:4685
#: modules/printbackends/cups/gtkprintbackendcups.c:4750
msgctxt "printing option"
msgid "Output Tray"
msgstr "מגש פלט"
#: modules/printbackends/cups/gtkprintbackendcups.c:4659
#: modules/printbackends/cups/gtkprintbackendcups.c:4686
msgctxt "printing option"
msgid "Resolution"
msgstr "הבחנה"
#: modules/printbackends/cups/gtkprintbackendcups.c:4660
#: modules/printbackends/cups/gtkprintbackendcups.c:4687
msgctxt "printing option"
msgid "GhostScript pre-filtering"
msgstr "סינון קדם של GhostScript"
#: modules/printbackends/cups/gtkprintbackendcups.c:4669
#: modules/printbackends/cups/gtkprintbackendcups.c:4696
msgctxt "printing option value"
msgid "One Sided"
msgstr "צד אחד"
#. Translators: this is an option of "Two Sided"
#: modules/printbackends/cups/gtkprintbackendcups.c:4671
#: modules/printbackends/cups/gtkprintbackendcups.c:4698
msgctxt "printing option value"
msgid "Long Edge (Standard)"
msgstr "הצד הארוך (תקני)"
#. Translators: this is an option of "Two Sided"
#: modules/printbackends/cups/gtkprintbackendcups.c:4673
#: modules/printbackends/cups/gtkprintbackendcups.c:4700
msgctxt "printing option value"
msgid "Short Edge (Flip)"
msgstr "הצד הקצר (היפוך)"
#. Translators: this is an option of "Paper Source"
#: modules/printbackends/cups/gtkprintbackendcups.c:4675
#: modules/printbackends/cups/gtkprintbackendcups.c:4677
#: modules/printbackends/cups/gtkprintbackendcups.c:4685
#: modules/printbackends/cups/gtkprintbackendcups.c:4702
#: modules/printbackends/cups/gtkprintbackendcups.c:4704
#: modules/printbackends/cups/gtkprintbackendcups.c:4712
msgctxt "printing option value"
msgid "Auto Select"
msgstr "בחירה אוטומטית"
#. Translators: this is an option of "Paper Source"
#. Translators: this is an option of "Resolution"
#: modules/printbackends/cups/gtkprintbackendcups.c:4679
#: modules/printbackends/cups/gtkprintbackendcups.c:4681
#: modules/printbackends/cups/gtkprintbackendcups.c:4683
#: modules/printbackends/cups/gtkprintbackendcups.c:4687
#: modules/printbackends/cups/gtkprintbackendcups.c:4706
#: modules/printbackends/cups/gtkprintbackendcups.c:4708
#: modules/printbackends/cups/gtkprintbackendcups.c:4710
#: modules/printbackends/cups/gtkprintbackendcups.c:4714
msgctxt "printing option value"
msgid "Printer Default"
msgstr "בררת מחדל עבור המדפסת"
#. Translators: this is an option of "GhostScript"
#: modules/printbackends/cups/gtkprintbackendcups.c:4689
#: modules/printbackends/cups/gtkprintbackendcups.c:4716
msgctxt "printing option value"
msgid "Embed GhostScript fonts only"
msgstr "הטמעת גופני PostScript בלבד"
#. Translators: this is an option of "GhostScript"
#: modules/printbackends/cups/gtkprintbackendcups.c:4691
#: modules/printbackends/cups/gtkprintbackendcups.c:4718
msgctxt "printing option value"
msgid "Convert to PS level 1"
msgstr "המרה ל־PS רמה 1"
#. Translators: this is an option of "GhostScript"
#: modules/printbackends/cups/gtkprintbackendcups.c:4693
#: modules/printbackends/cups/gtkprintbackendcups.c:4720
msgctxt "printing option value"
msgid "Convert to PS level 2"
msgstr "המרה ל־PS רמה 2"
#. Translators: this is an option of "GhostScript"
#: modules/printbackends/cups/gtkprintbackendcups.c:4695
#: modules/printbackends/cups/gtkprintbackendcups.c:4722
msgctxt "printing option value"
msgid "No pre-filtering"
msgstr "אין סינון קדם"
#. Translators: "Miscellaneous" is the label for a button, that opens
#. up an extra panel of settings in a print dialog.
#: modules/printbackends/cups/gtkprintbackendcups.c:4704
#: modules/printbackends/cups/gtkprintbackendcups.c:4731
msgctxt "printing option group"
msgid "Miscellaneous"
msgstr "שונות"
#: modules/printbackends/cups/gtkprintbackendcups.c:4731
#: modules/printbackends/cups/gtkprintbackendcups.c:4758
msgctxt "sides"
msgid "One Sided"
msgstr "חד צדדי"
#. Translators: this is an option of "Two Sided"
#: modules/printbackends/cups/gtkprintbackendcups.c:4733
#: modules/printbackends/cups/gtkprintbackendcups.c:4760
msgctxt "sides"
msgid "Long Edge (Standard)"
msgstr "צד ארוך (תקני)"
#. Translators: this is an option of "Two Sided"
#: modules/printbackends/cups/gtkprintbackendcups.c:4735
#: modules/printbackends/cups/gtkprintbackendcups.c:4762
msgctxt "sides"
msgid "Short Edge (Flip)"
msgstr "צד קצר (היפוך)"
#. Translators: Top output bin
#: modules/printbackends/cups/gtkprintbackendcups.c:4738
#: modules/printbackends/cups/gtkprintbackendcups.c:4765
msgctxt "output-bin"
msgid "Top Bin"
msgstr "מגש עליון"
#. Translators: Middle output bin
#: modules/printbackends/cups/gtkprintbackendcups.c:4740
#: modules/printbackends/cups/gtkprintbackendcups.c:4767
msgctxt "output-bin"
msgid "Middle Bin"
msgstr "מגש אמצעי"
#. Translators: Bottom output bin
#: modules/printbackends/cups/gtkprintbackendcups.c:4742
#: modules/printbackends/cups/gtkprintbackendcups.c:4769
msgctxt "output-bin"
msgid "Bottom Bin"
msgstr "מגש תחתון"
#. Translators: Side output bin
#: modules/printbackends/cups/gtkprintbackendcups.c:4744
#: modules/printbackends/cups/gtkprintbackendcups.c:4771
msgctxt "output-bin"
msgid "Side Bin"
msgstr "מגש צדי"
#. Translators: Left output bin
#: modules/printbackends/cups/gtkprintbackendcups.c:4746
#: modules/printbackends/cups/gtkprintbackendcups.c:4773
msgctxt "output-bin"
msgid "Left Bin"
msgstr "מגש שמאלי"
#. Translators: Right output bin
#: modules/printbackends/cups/gtkprintbackendcups.c:4748
#: modules/printbackends/cups/gtkprintbackendcups.c:4775
msgctxt "output-bin"
msgid "Right Bin"
msgstr "מגש ימני"
#. Translators: Center output bin
#: modules/printbackends/cups/gtkprintbackendcups.c:4750
#: modules/printbackends/cups/gtkprintbackendcups.c:4777
msgctxt "output-bin"
msgid "Center Bin"
msgstr "מגש מרכזי"
#. Translators: Rear output bin
#: modules/printbackends/cups/gtkprintbackendcups.c:4752
#: modules/printbackends/cups/gtkprintbackendcups.c:4779
msgctxt "output-bin"
msgid "Rear Bin"
msgstr "מגש אחורי"
#. Translators: Output bin where one sided output is oriented in the face-up position
#: modules/printbackends/cups/gtkprintbackendcups.c:4754
#: modules/printbackends/cups/gtkprintbackendcups.c:4781
msgctxt "output-bin"
msgid "Face Up Bin"
msgstr "מגש עם הפנים כלפי מעלה"
#. Translators: Output bin where one sided output is oriented in the face-down position
#: modules/printbackends/cups/gtkprintbackendcups.c:4756
#: modules/printbackends/cups/gtkprintbackendcups.c:4783
msgctxt "output-bin"
msgid "Face Down Bin"
msgstr "מגש עם הפנים כלפי מטה"
#. Translators: Large capacity output bin
#: modules/printbackends/cups/gtkprintbackendcups.c:4758
#: modules/printbackends/cups/gtkprintbackendcups.c:4785
msgctxt "output-bin"
msgid "Large Capacity Bin"
msgstr "מגש בעל קיבולת מוגדלת"
#. Translators: Output stacker number %d
#: modules/printbackends/cups/gtkprintbackendcups.c:4780
#: modules/printbackends/cups/gtkprintbackendcups.c:4807
#, c-format
msgctxt "output-bin"
msgid "Stacker %d"
msgstr "מערם פלט נייר %d"
#. Translators: Output mailbox number %d
#: modules/printbackends/cups/gtkprintbackendcups.c:4784
#: modules/printbackends/cups/gtkprintbackendcups.c:4811
#, c-format
msgctxt "output-bin"
msgid "Mailbox %d"
msgstr "התקן למיון פלט הדפסה %d"
#. Translators: Private mailbox
#: modules/printbackends/cups/gtkprintbackendcups.c:4788
#: modules/printbackends/cups/gtkprintbackendcups.c:4815
msgctxt "output-bin"
msgid "My Mailbox"
msgstr "התקן למיון פלט ההדפסה שלי"
#. Translators: Output tray number %d
#: modules/printbackends/cups/gtkprintbackendcups.c:4792
#: modules/printbackends/cups/gtkprintbackendcups.c:4819
#, c-format
msgctxt "output-bin"
msgid "Tray %d"
msgstr "מגירת הזנת נייר %d"
#: modules/printbackends/cups/gtkprintbackendcups.c:5263
#: modules/printbackends/cups/gtkprintbackendcups.c:5290
msgid "Printer Default"
msgstr "בררת מחדל עבור המדפסת"
#. Translators: These strings name the possible values of the
#. * job priority option in the print dialog
#.
#: modules/printbackends/cups/gtkprintbackendcups.c:5704
#: modules/printbackends/cups/gtkprintbackendcups.c:5731
msgid "Urgent"
msgstr "דחוף"
#: modules/printbackends/cups/gtkprintbackendcups.c:5704
#: modules/printbackends/cups/gtkprintbackendcups.c:5731
msgid "High"
msgstr "גבוה"
#: modules/printbackends/cups/gtkprintbackendcups.c:5704
#: modules/printbackends/cups/gtkprintbackendcups.c:5731
msgid "Medium"
msgstr "בינוני"
#: modules/printbackends/cups/gtkprintbackendcups.c:5704
#: modules/printbackends/cups/gtkprintbackendcups.c:5731
msgid "Low"
msgstr "נמוך"
#. Translators, this string is used to label the job priority option
#. * in the print dialog
#.
#: modules/printbackends/cups/gtkprintbackendcups.c:5734
#: modules/printbackends/cups/gtkprintbackendcups.c:5761
msgid "Job Priority"
msgstr "עדיפות המשימה"
#. Translators, this string is used to label the billing info entry
#. * in the print dialog
#.
#: modules/printbackends/cups/gtkprintbackendcups.c:5745
#: modules/printbackends/cups/gtkprintbackendcups.c:5772
msgid "Billing Info"
msgstr "נתוני חיוב"
#: modules/printbackends/cups/gtkprintbackendcups.c:5769
#: modules/printbackends/cups/gtkprintbackendcups.c:5796
msgctxt "cover page"
msgid "None"
msgstr "ללא"
#: modules/printbackends/cups/gtkprintbackendcups.c:5770
#: modules/printbackends/cups/gtkprintbackendcups.c:5797
msgctxt "cover page"
msgid "Classified"
msgstr "מסווג"
#: modules/printbackends/cups/gtkprintbackendcups.c:5771
#: modules/printbackends/cups/gtkprintbackendcups.c:5798
msgctxt "cover page"
msgid "Confidential"
msgstr "חסוי"
#: modules/printbackends/cups/gtkprintbackendcups.c:5772
#: modules/printbackends/cups/gtkprintbackendcups.c:5799
msgctxt "cover page"
msgid "Secret"
msgstr "סודי"
#: modules/printbackends/cups/gtkprintbackendcups.c:5773
#: modules/printbackends/cups/gtkprintbackendcups.c:5800
msgctxt "cover page"
msgid "Standard"
msgstr "רגיל"
#: modules/printbackends/cups/gtkprintbackendcups.c:5774
#: modules/printbackends/cups/gtkprintbackendcups.c:5801
msgctxt "cover page"
msgid "Top Secret"
msgstr "סודי ביותר"
#: modules/printbackends/cups/gtkprintbackendcups.c:5775
#: modules/printbackends/cups/gtkprintbackendcups.c:5802
msgctxt "cover page"
msgid "Unclassified"
msgstr "לא מסווג"
@ -8273,7 +8273,7 @@ msgstr "לא מסווג"
#. Translators, this string is used to label the pages-per-sheet option
#. * in the print dialog
#.
#: modules/printbackends/cups/gtkprintbackendcups.c:5787
#: modules/printbackends/cups/gtkprintbackendcups.c:5814
msgctxt "printer option"
msgid "Pages per Sheet"
msgstr "מספר העמודים בדף"
@ -8281,7 +8281,7 @@ msgstr "מספר העמודים בדף"
#. Translators, this string is used to label the option in the print
#. * dialog that controls in what order multiple pages are arranged
#.
#: modules/printbackends/cups/gtkprintbackendcups.c:5804
#: modules/printbackends/cups/gtkprintbackendcups.c:5831
msgctxt "printer option"
msgid "Page Ordering"
msgstr "סדר דפים"
@ -8289,7 +8289,7 @@ msgstr "סדר דפים"
#. Translators, this is the label used for the option in the print
#. * dialog that controls the front cover page.
#.
#: modules/printbackends/cups/gtkprintbackendcups.c:5846
#: modules/printbackends/cups/gtkprintbackendcups.c:5873
msgctxt "printer option"
msgid "Before"
msgstr "לפני"
@ -8297,7 +8297,7 @@ msgstr "לפני"
#. Translators, this is the label used for the option in the print
#. * dialog that controls the back cover page.
#.
#: modules/printbackends/cups/gtkprintbackendcups.c:5861
#: modules/printbackends/cups/gtkprintbackendcups.c:5888
msgctxt "printer option"
msgid "After"
msgstr "אחרי"
@ -8306,7 +8306,7 @@ msgstr "אחרי"
#. * a print job is printed. Possible values are 'now', a specified time,
#. * or 'on hold'
#.
#: modules/printbackends/cups/gtkprintbackendcups.c:5881
#: modules/printbackends/cups/gtkprintbackendcups.c:5908
msgctxt "printer option"
msgid "Print at"
msgstr "הדפסה"
@ -8314,7 +8314,7 @@ msgstr "הדפסה"
#. Translators: this is the name of the option that allows the user
#. * to specify a time when a print job will be printed.
#.
#: modules/printbackends/cups/gtkprintbackendcups.c:5892
#: modules/printbackends/cups/gtkprintbackendcups.c:5919
msgctxt "printer option"
msgid "Print at time"
msgstr "הדפסה"
@ -8324,18 +8324,18 @@ msgstr "הדפסה"
#. * the width and height in points. E.g: "Custom
#. * 230.4x142.9"
#.
#: modules/printbackends/cups/gtkprintbackendcups.c:5937
#: modules/printbackends/cups/gtkprintbackendcups.c:5964
#, c-format
msgid "Custom %s×%s"
msgstr "מותאם אישית %s×%s"
#: modules/printbackends/cups/gtkprintbackendcups.c:6047
#: modules/printbackends/cups/gtkprintbackendcups.c:6074
msgctxt "printer option"
msgid "Printer Profile"
msgstr "פרופיל מדפסת"
#. TRANSLATORS: this is when color profile information is unavailable
#: modules/printbackends/cups/gtkprintbackendcups.c:6054
#: modules/printbackends/cups/gtkprintbackendcups.c:6081
msgctxt "printer option value"
msgid "Unavailable"
msgstr "לא זמין"

8314
po/kab.po Normal file

File diff suppressed because it is too large Load Diff

View File

@ -4928,7 +4928,7 @@ set_cursor_from_name (GtkWidget *entry,
if (cursor == NULL)
{
name = NULL;
cursor = gdk_cursor_new_for_display (gtk_widget_get_display (widget), GDK_BLANK_CURSOR);
cursor = gdk_cursor_new_from_name (gtk_widget_get_display (widget), "none");
}
gdk_window_set_cursor (gtk_widget_get_window (widget), cursor);
@ -8635,8 +8635,8 @@ snapshot_widget (GtkButton *button,
data->is_toplevel = widget == data->toplevel_button;
if (!data->cursor)
data->cursor = gdk_cursor_new_for_display (gtk_widget_get_display (widget),
GDK_TARGET);
data->cursor = gdk_cursor_new_from_name (gtk_widget_get_display (widget),
"crosshair");
gdk_seat_grab (gdk_device_get_seat (device),
gtk_widget_get_window (widget),