Compare commits

..

10 Commits

Author SHA1 Message Date
Alexander Larsson 21ff39ba8a Don't queue resize for hidden widgets without a size group
queue_resize basically tells the parent widget that it may need
to pick a different size/layout. However, for a hidden child widget
that should never be needed. It may be that the widget is in a
sizegroup that has ignore_hidden == FALSE though, so it may
affect the size group calculations.

However, if a widget is not visible and not in a size group then
its safe to avoid the resize, as the widget will be resized on
becoming visible anyway.

This avoids a lot of size allocation for hidden things like menus
and tooltips.
2012-12-04 16:59:08 +01:00
Alexander Larsson 0cf03dd13b Don't unnecessarily queue resize in GtkWindow.style_updated
GtkWindow always queues a resize on style updates if there is
a grip, because it may have been the grip size style properties
that changed. However, even if it *were*, and it likely wasn't
that would not affect the windows size request, so no need
to queue a resize.
2012-12-04 16:59:08 +01:00
Alexander Larsson 8751b59b3c css: Avoid queue_resize in _gtk_widget_style_context_invalidated
We've already emitted style_updated, and the handler for that queues
a resize if necessary.
2012-12-04 16:59:07 +01:00
Alexander Larsson 340c7f9419 css: Short circuit gtk_css_value_initial_compute when possible
For almost all properties the initial value does not need computing.
If we skip computing these then gtk_css_value_initial_compute goes
from > 6% to 2% in my testcase profiles.
2012-12-04 16:59:07 +01:00
Alexander Larsson cdc5053fd9 css: Introduce _gtk_css_value_needs_compute
This returns TRUE for all css values that always compute to themselves
and thus does not need computation. This is useful for the initial
values as these are static and we can avoid computing them in a lot of
cases.
2012-12-04 16:59:07 +01:00
Alexander Larsson ab7e332296 css: Have a separate GtkCssInitialValue per property
This allows us to avoid a lookup in a very common path, and later
cache some more things.
2012-12-04 16:59:07 +01:00
Alexander Larsson 28283e645f css: Avoid allocations in gtk_css_value_array_compute
Almost all array computations lead to no changes (99% in nautilus)
so we avoid the upfront allocation and delay it until we know its
needed. This drops the allocate/free from the profile.
2012-12-04 16:59:07 +01:00
Alexander Larsson 39d94a73e3 css: Start array allocation with a better size
All computed values will compute all normal properties at least, so
we might as well allocate these upfront, which leads to a lot less
reallocations.
2012-12-04 16:59:07 +01:00
Alexander Larsson 5952707d87 css: Use internal return_if_fail in some commonly called code
These are internal apis, and any external issues should have been
caught by checks at public API points. We use the internal checks
here because these checks show up in a non-neglible way on profiles.
2012-12-04 16:59:07 +01:00
Alexander Larsson f0b09f6366 Add internal versions of g_return_[val_]_if_fail
These are only enabled on debug=yes, so not by default
in released tarballs.
2012-12-04 16:59:07 +01:00
96 changed files with 4124 additions and 4618 deletions
-71
View File
@@ -1,74 +1,3 @@
Overview of Changes in GTK+ 3.7.4
=================================
* GtkBuilder now lets you refer to external objects from a ui
file if the objects have been exported with the new function
gtk_builder_expose_object()
* Font handling has been improved:
- The default font is no longer handled like a custom style sheet
that overrides everything, but as the initial value. This is the
same behavior as in web browsers.
- It is now possible to set font-family and font-size like other
CSS properties, and relative font sizes are supported. Font
sizes in CSS can be specified as numbers or with keywords
like xx-small, medium, smaller, larger,...
* GTK+ now uses proper Unicode ellipses in strings.
* The releases includes several noticable performance improvements:
- Size allocation has been optimized, by avoiding excessive
resizing in various situations.
- The performance of size groups has been improved.
- Text rendering in GtkLabel and other widgets has been optimized
to avoid excessive recreation of Pango layouts.
- Icon loading overhead was reduced by caching of GtkIconInfo.
- The CSS is now keeping a tree of selectors to speed up matchinh.
* Deprecations and removals:
- Custom CSS properties have been deprecated
- Support for color schemes has been removed
- gtk_style_provider_get_style, gtk_style_provider_get_icon_factory
- GtkGradient and GtkSymbolicColor
- All the padding style properties in menus
* Bugs closed:
132333 Can't add a palette to the dialog of a color button
371034 Doc for gtk_file_chooser_get_filename: Is the resulting path...
447972 Add a way to specify user_data sent to signals
548793 funny pattern for iterating GtkTreeModel
595615 Use proper ellipses
626499 GtkClipboard unnotified on change of OS X pasteboard owner
668239 texts disappear when notebook switch page at zh_CN locate!
677339 GTK+ 3 documentation wrong about GtkWidget scroll-event signal
680065 treemodelfilter: Make the constructor binding friendly
687065 InstallableOptions is not filtered in cups backend
687816 GtkTreeView does not draw correctly since commit aaedc7b6
688710 [PATCH] Splash screens shouldn't stay on top of all applicat...
688744 Don't use gtk_style_context_set_background() to render icon/...
688884 Typo in gtk_tree_view_set_tooltip_column documentation
689012 "Copy file's location" menu item in file chooser dialog uses...
689047 Obtain the recent files max age setting from xsettings
689081 No caching of icons
689168 Deprecate some menu style properties
689401 xi2: Abort early if we don't have a proper GDK window
689584 Add summary and description to "show-hidden" key
689847 Add fast repeated typename -> GType resolver
689923 Missing null-check in GtkEntryAccessible
690099 GtkScrolledWindow with NEVER policy don't resize with children
690266 Freeze with F10/Shift-F10 on submenus
* Translation updates:
Assamese
British English
Dutch
German
Hebrew
Polish
Slovenian
Spanish
Overview of Changes in GTK+ 3.7.2
=================================
+3 -3
View File
@@ -10,7 +10,7 @@
m4_define([gtk_major_version], [3])
m4_define([gtk_minor_version], [7])
m4_define([gtk_micro_version], [4])
m4_define([gtk_micro_version], [3])
m4_define([gtk_interface_age], [0])
m4_define([gtk_binary_age],
[m4_eval(100 * gtk_minor_version + gtk_micro_version)])
@@ -39,8 +39,8 @@ AC_CONFIG_AUX_DIR([build-aux])
m4_define([gtk_binary_version], [3.0.0])
# required versions of other packages
m4_define([glib_required_version], [2.35.3])
m4_define([pango_required_version], [1.32.4])
m4_define([glib_required_version], [2.35.0])
m4_define([pango_required_version], [1.30.0])
m4_define([atk_required_version], [2.5.3])
m4_define([cairo_required_version], [1.10.0])
m4_define([gdk_pixbuf_required_version], [2.26.0])
-4
View File
@@ -406,10 +406,6 @@
<title>Index of new symbols in 3.6</title>
<xi:include href="xml/api-index-3.6.xml"><xi:fallback /></xi:include>
</index>
<index id="api-index-3-8" role="3.8">
<title>Index of new symbols in 3.8</title>
<xi:include href="xml/api-index-3.8.xml"><xi:fallback /></xi:include>
</index>
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
-1
View File
@@ -536,7 +536,6 @@ gtk_builder_add_objects_from_string
gtk_builder_add_objects_from_resource
gtk_builder_get_object
gtk_builder_get_objects
gtk_builder_expose_object
gtk_builder_connect_signals
gtk_builder_connect_signals_full
gtk_builder_set_translation_domain
+2 -2
View File
@@ -1060,7 +1060,7 @@ _gdk_broadway_display_open (const gchar *display_name)
{
GdkDisplay *display;
GdkBroadwayDisplay *broadway_display;
GError *error = NULL;
GError *error;
int port;
display = g_object_new (GDK_TYPE_BROADWAY_DISPLAY, NULL);
@@ -1104,7 +1104,7 @@ _gdk_broadway_display_open (const gchar *display_name)
G_OBJECT (display),
&error))
{
g_printerr ("Unable to listen to port %d: %s\n", port, error->message);
g_printerr ("Unable to listen to port %d: %s\n", 8080, error->message);
g_error_free (error);
return NULL;
}
+2 -2
View File
@@ -6549,8 +6549,8 @@ gdk_window_set_background (GdkWindow *window,
* See also gdk_window_set_background_pattern().
**/
void
gdk_window_set_background_rgba (GdkWindow *window,
const GdkRGBA *rgba)
gdk_window_set_background_rgba (GdkWindow *window,
GdkRGBA *rgba)
{
cairo_pattern_t *pattern;
+2 -2
View File
@@ -659,8 +659,8 @@ void gdk_window_set_transient_for (GdkWindow *window,
GDK_DEPRECATED_IN_3_4_FOR(gdk_window_set_background_rgba)
void gdk_window_set_background (GdkWindow *window,
const GdkColor *color);
void gdk_window_set_background_rgba (GdkWindow *window,
const GdkRGBA *rgba);
void gdk_window_set_background_rgba (GdkWindow *window,
GdkRGBA *rgba);
void gdk_window_set_background_pattern (GdkWindow *window,
cairo_pattern_t *pattern);
cairo_pattern_t *gdk_window_get_background_pattern (GdkWindow *window);
+5 -18
View File
@@ -917,14 +917,12 @@ is_parent_of (GdkWindow *parent,
return FALSE;
}
static gboolean
static GdkWindow *
get_event_window (GdkEventTranslator *translator,
XIEvent *ev,
GdkWindow **window_p)
XIEvent *ev)
{
GdkDisplay *display;
GdkWindow *window = NULL;
gboolean should_have_window = TRUE;
display = gdk_device_manager_get_display (GDK_DEVICE_MANAGER (translator));
@@ -978,17 +976,9 @@ get_event_window (GdkEventTranslator *translator,
window = gdk_x11_window_lookup_for_display (display, xev->event);
}
break;
default:
should_have_window = FALSE;
break;
}
*window_p = window;
if (should_have_window && !window)
return FALSE;
return TRUE;
return window;
}
static gboolean
@@ -1132,8 +1122,7 @@ gdk_x11_device_manager_xi2_translate_event (GdkEventTranslator *translator,
if (!ev)
return FALSE;
if (!get_event_window (translator, ev, &window))
return FALSE;
window = get_event_window (translator, ev);
if (window && GDK_WINDOW_DESTROYED (window))
return FALSE;
@@ -1661,7 +1650,6 @@ gdk_x11_device_manager_xi2_get_window (GdkEventTranslator *translator,
{
GdkX11DeviceManagerXI2 *device_manager;
XIEvent *ev;
GdkWindow *window = NULL;
device_manager = (GdkX11DeviceManagerXI2 *) translator;
@@ -1671,8 +1659,7 @@ gdk_x11_device_manager_xi2_get_window (GdkEventTranslator *translator,
ev = (XIEvent *) xevent->xcookie.data;
get_event_window (translator, ev, &window);
return window;
return get_event_window (translator, ev);
}
GdkDevice *
+2 -4
View File
@@ -549,8 +549,7 @@ gtk_entry_accessible_notify_gtk (GObject *obj,
const gchar *name;
name = gtk_entry_get_icon_name (gtk_entry,
GTK_ENTRY_ICON_PRIMARY);
if (name)
atk_object_set_name (priv->icons[GTK_ENTRY_ICON_PRIMARY], name);
atk_object_set_name (priv->icons[GTK_ENTRY_ICON_PRIMARY], name);
}
}
else if (g_strcmp0 (pspec->name, "secondary-icon-name") == 0)
@@ -560,8 +559,7 @@ gtk_entry_accessible_notify_gtk (GObject *obj,
const gchar *name;
name = gtk_entry_get_icon_name (gtk_entry,
GTK_ENTRY_ICON_SECONDARY);
if (name)
atk_object_set_name (priv->icons[GTK_ENTRY_ICON_SECONDARY], name);
atk_object_set_name (priv->icons[GTK_ENTRY_ICON_SECONDARY], name);
}
}
else if (g_strcmp0 (pspec->name, "primary-icon-tooltip-text") == 0)
-6
View File
@@ -23,7 +23,6 @@
struct _GtkMenuItemAccessiblePrivate
{
gchar *text;
gboolean selected;
};
#define KEYBINDING_SEPARATOR ";"
@@ -148,10 +147,6 @@ gtk_menu_item_accessible_ref_state_set (AtkObject *obj)
state_set = ATK_OBJECT_CLASS (_gtk_menu_item_accessible_parent_class)->ref_state_set (obj);
atk_state_set_add_state (state_set, ATK_STATE_SELECTABLE);
if (GTK_MENU_ITEM_ACCESSIBLE (obj)->priv->selected)
atk_state_set_add_state (state_set, ATK_STATE_SELECTED);
menu_item = atk_object_get_parent (obj);
if (menu_item)
@@ -625,7 +620,6 @@ menu_item_selection (GtkMenuItem *item,
gint i;
obj = gtk_widget_get_accessible (GTK_WIDGET (item));
GTK_MENU_ITEM_ACCESSIBLE (obj)->priv->selected = selected;
atk_object_notify_state_change (obj, ATK_STATE_SELECTED, selected);
for (i = 0; i < atk_object_get_n_accessible_children (obj); i++)
-9
View File
@@ -140,21 +140,12 @@ gtk_notebook_page_accessible_ref_child (AtkObject *accessible,
static AtkStateSet *
gtk_notebook_page_accessible_ref_state_set (AtkObject *accessible)
{
GtkNotebookPageAccessible *page = GTK_NOTEBOOK_PAGE_ACCESSIBLE (accessible);
AtkStateSet *state_set, *label_state_set, *merged_state_set;
AtkObject *atk_label;
GtkWidget *label;
AtkObject *selected;
state_set = ATK_OBJECT_CLASS (_gtk_notebook_page_accessible_parent_class)->ref_state_set (accessible);
atk_state_set_add_state (state_set, ATK_STATE_SELECTABLE);
selected = atk_selection_ref_selection (ATK_SELECTION (page->priv->notebook), 0);
if (selected == accessible)
atk_state_set_add_state (state_set, ATK_STATE_SELECTED);
g_object_unref (selected);
label = get_label_from_notebook_page (GTK_NOTEBOOK_PAGE_ACCESSIBLE (accessible));
if (label)
{
+5 -6
View File
@@ -474,12 +474,6 @@ gtk_widget_accessible_notify_gtk (GObject *obj,
* focus changes so we ignore this.
*/
return;
else if (g_strcmp0 (pspec->name, "tooltip-text") == 0)
{
gtk_widget_accessible_update_tooltip (GTK_WIDGET_ACCESSIBLE (atk_obj),
widget);
return;
}
else if (g_strcmp0 (pspec->name, "visible") == 0)
{
state = ATK_STATE_VISIBLE;
@@ -500,6 +494,11 @@ gtk_widget_accessible_notify_gtk (GObject *obj,
state = ATK_STATE_HORIZONTAL;
value = (gtk_orientable_get_orientation (orientable) == GTK_ORIENTATION_HORIZONTAL);
}
else if (g_strcmp0 (pspec->name, "tooltip-text") == 0)
{
gtk_widget_accessible_update_tooltip (GTK_WIDGET_ACCESSIBLE (atk_obj),
widget);
}
else
return;
-1
View File
@@ -338,7 +338,6 @@ gtk_builder_connect_signals
gtk_builder_connect_signals_full
gtk_builder_error_get_type
gtk_builder_error_quark
gtk_builder_expose_object
gtk_builder_get_object
gtk_builder_get_objects
gtk_builder_get_translation_domain
+12 -7
View File
@@ -2095,9 +2095,11 @@ text_view_new (GtkAboutDialog *about,
GdkColor color;
GdkColor link_color;
GdkColor visited_link_color;
gint size;
PangoFontDescription *font_desc;
GtkAboutDialogPrivate *priv = about->priv;
GtkTextIter start_iter, end_iter;
GtkTextTag *tag;
GtkStyleContext *context;
GtkStateFlags state;
gtk_widget_style_get (GTK_WIDGET (about),
"link-color", &style_link_color,
@@ -2126,11 +2128,14 @@ text_view_new (GtkAboutDialog *about,
gtk_text_view_set_editable (text_view, FALSE);
gtk_text_view_set_wrap_mode (text_view, wrap_mode);
gtk_text_buffer_get_start_iter (buffer, &start_iter);
gtk_text_buffer_get_start_iter (buffer, &end_iter);
tag = gtk_text_tag_new (NULL);
g_object_set (tag, "font-scale", PANGO_SCALE_SMALL, NULL);
gtk_text_buffer_apply_tag (buffer, tag, &start_iter, &end_iter);
context = gtk_widget_get_style_context (view);
state = gtk_widget_get_state_flags (view);
size = pango_font_description_get_size (gtk_style_context_get_font (context, state));
font_desc = pango_font_description_new ();
pango_font_description_set_size (font_desc, size * PANGO_SCALE_SMALL);
gtk_widget_override_font (view, font_desc);
pango_font_description_free (font_desc);
gtk_text_view_set_left_margin (text_view, 8);
gtk_text_view_set_right_margin (text_view, 8);
+24 -64
View File
@@ -123,14 +123,12 @@
* (can be specified by their name, nick or integer value), flags (can be
* specified by their name, nick, integer value, optionally combined with "|",
* e.g. "GTK_VISIBLE|GTK_REALIZED") and colors (in a format understood by
* gdk_color_parse()). Pixbufs can be specified as a filename of an image file to load.
* Objects can be referred to by their name and by default refer to objects declared
* in the local xml fragment and objects exposed via gtk_builder_expose_object().
*
* In general, GtkBuilder allows forward references to objects &mdash declared
* in the local xml; an object doesn't have to be constructed before it can be referred to.
* The exception to this rule is that an object has to be constructed before
* it can be used as the value of a construct-only property.
* gdk_color_parse()). Objects can be referred to by their name. Pixbufs can be
* specified as a filename of an image file to load. In general, GtkBuilder
* allows forward references to objects &mdash; an object doesn't have to be
* constructed before it can be referred to. The exception to this rule is that
* an object has to be constructed before it can be used as the value of a
* construct-only property.
*
* Signal handlers are set up with the &lt;signal&gt; element. The "name"
* attribute specifies the name of the signal, and the "handler" attribute
@@ -576,24 +574,6 @@ gtk_builder_get_internal_child (GtkBuilder *builder,
return obj;
}
static inline void
object_set_name (GObject *object, const gchar *name)
{
if (GTK_IS_BUILDABLE (object))
gtk_buildable_set_name (GTK_BUILDABLE (object), name);
else
g_object_set_data_full (object, "gtk-builder-name", g_strdup (name), g_free);
}
void
_gtk_builder_add_object (GtkBuilder *builder,
const gchar *id,
GObject *object)
{
object_set_name (object, id);
g_hash_table_insert (builder->priv->objects, g_strdup (id), g_object_ref (object));
}
GObject *
_gtk_builder_construct (GtkBuilder *builder,
ObjectInfo *info,
@@ -723,16 +703,29 @@ _gtk_builder_construct (GtkBuilder *builder,
g_value_unset (&param->value);
}
g_array_free (parameters, TRUE);
/* put it in the hash table. */
_gtk_builder_add_object (builder, info->id, obj);
/* we already own a reference to obj. */
g_object_unref (obj);
if (GTK_IS_BUILDABLE (obj))
gtk_buildable_set_name (buildable, info->id);
else
g_object_set_data_full (obj,
"gtk-builder-name",
g_strdup (info->id),
g_free);
/* we already own a reference to obj. put it in the hash table. */
g_hash_table_insert (builder->priv->objects, g_strdup (info->id), obj);
return obj;
}
void
_gtk_builder_add_object (GtkBuilder *builder,
const gchar *id,
GObject *object)
{
g_hash_table_insert (builder->priv->objects, g_strdup (id), g_object_ref (object));
}
void
_gtk_builder_add (GtkBuilder *builder,
ChildInfo *child_info)
@@ -1347,39 +1340,6 @@ gtk_builder_get_translation_domain (GtkBuilder *builder)
return builder->priv->domain;
}
/**
* gtk_builder_expose_object:
* @builder: a #GtkBuilder
* @name: the name of the object exposed to the builder
* @object: the object to expose
*
* Add @object to the @builder object pool so it can be referenced just like any
* other object built by builder.
*
* To make this function even more useful a new special entry point element
* &lt;external-object&gt; is defined. It is similar to &lt;object&gt; but has
* to reference an external object exposed with this function.
* This way you can change properties and even add children to an
* external object using builder, not just reference it.
*
* Since: 3.8
**/
void
gtk_builder_expose_object (GtkBuilder *builder,
const gchar *name,
GObject *object)
{
g_return_if_fail (GTK_IS_BUILDER (builder));
g_return_if_fail (name && name[0]);
g_return_if_fail (gtk_builder_get_object (builder, name) == NULL);
object_set_name (object, name);
g_hash_table_insert (builder->priv->objects,
g_strdup (name),
g_object_ref (object));
}
typedef struct {
GModule *module;
gpointer data;
-4
View File
@@ -141,10 +141,6 @@ guint gtk_builder_add_objects_from_string (GtkBuilder *builder,
GObject* gtk_builder_get_object (GtkBuilder *builder,
const gchar *name);
GSList* gtk_builder_get_objects (GtkBuilder *builder);
GDK_AVAILABLE_IN_3_8
void gtk_builder_expose_object (GtkBuilder *builder,
const gchar *name,
GObject *object);
void gtk_builder_connect_signals (GtkBuilder *builder,
gpointer user_data);
void gtk_builder_connect_signals_full (GtkBuilder *builder,
+7 -3
View File
@@ -1768,7 +1768,7 @@ get_size (GtkCellRenderer *cell,
style_context = gtk_widget_get_style_context (widget);
state = gtk_widget_get_state_flags (widget);
gtk_style_context_get (style_context, state, "font", &font_desc, NULL);
font_desc = pango_font_description_copy_static (gtk_style_context_get_font (style_context, state));
pango_font_description_merge_static (font_desc, priv->font, TRUE);
if (priv->scale_set)
@@ -2128,6 +2128,8 @@ gtk_cell_renderer_text_get_preferred_width (GtkCellRenderer *cell,
{
GtkCellRendererTextPrivate *priv;
GtkCellRendererText *celltext;
GtkStyleContext *style_context;
const PangoFontDescription *font_desc;
PangoLayout *layout;
PangoContext *context;
PangoFontMetrics *metrics;
@@ -2147,6 +2149,8 @@ gtk_cell_renderer_text_get_preferred_width (GtkCellRenderer *cell,
celltext = GTK_CELL_RENDERER_TEXT (cell);
priv = celltext->priv;
style_context = gtk_widget_get_style_context (widget);
gtk_cell_renderer_get_padding (cell, &xpad, NULL);
layout = get_layout (celltext, widget, NULL, 0);
@@ -2158,8 +2162,8 @@ gtk_cell_renderer_text_get_preferred_width (GtkCellRenderer *cell,
/* Fetch the average size of a charachter */
context = pango_layout_get_context (layout);
metrics = pango_context_get_metrics (context,
pango_context_get_font_description (context),
font_desc = gtk_style_context_get_font (style_context, 0);
metrics = pango_context_get_metrics (context, font_desc,
pango_context_get_language (context));
char_width = pango_font_metrics_get_approximate_char_width (metrics);
+21 -39
View File
@@ -31,29 +31,20 @@
#include "gtktextbuffer.h"
#include "gtkselectionprivate.h"
#include "gtkquartz.h"
#include "../gdk/quartz/gdkquartz.h"
enum {
OWNER_CHANGE,
LAST_SIGNAL
};
@interface GtkClipboardOwner : NSObject {
GtkClipboard *clipboard;
@public
gboolean setting_same_owner;
}
@end
typedef struct _GtkClipboardClass GtkClipboardClass;
struct _GtkClipboard
struct _GtkClipboard
{
GObject parent_instance;
NSPasteboard *pasteboard;
GtkClipboardOwner *owner;
NSInteger change_count;
GdkAtom selection;
@@ -96,6 +87,12 @@ static GtkClipboard *clipboard_peek (GdkDisplay *display,
GdkAtom selection,
gboolean only_if_exists);
@interface GtkClipboardOwner : NSObject {
GtkClipboard *clipboard;
}
@end
@implementation GtkClipboardOwner
-(void)pasteboard:(NSPasteboard *)sender provideDataForType:(NSString *)type
{
@@ -134,8 +131,9 @@ static GtkClipboard *clipboard_peek (GdkDisplay *display,
*/
- (void)pasteboardChangedOwner:(NSPasteboard *)sender
{
if (! setting_same_owner)
clipboard_unset (clipboard);
clipboard_unset (clipboard);
[self release];
}
- (id)initWithClipboard:(GtkClipboard *)aClipboard
@@ -145,7 +143,6 @@ static GtkClipboard *clipboard_peek (GdkDisplay *display,
if (self)
{
clipboard = aClipboard;
setting_same_owner = FALSE;
}
return self;
@@ -336,6 +333,10 @@ gtk_clipboard_set_contents (GtkClipboard *clipboard,
NSSet *types;
NSAutoreleasePool *pool;
pool = [[NSAutoreleasePool alloc] init];
owner = [[GtkClipboardOwner alloc] initWithClipboard:clipboard];
if (!(clipboard->have_owner && have_owner) ||
clipboard->user_data != user_data)
{
@@ -350,44 +351,26 @@ gtk_clipboard_set_contents (GtkClipboard *clipboard,
clipboard->user_data != user_data)
{
(*clear_func) (clipboard, user_data);
[pool release];
return FALSE;
}
else
{
[pool release];
return TRUE;
}
}
}
pool = [[NSAutoreleasePool alloc] init];
types = _gtk_quartz_target_entries_to_pasteboard_types (targets, n_targets);
/* call declareTypes before setting the clipboard members because
* declareTypes might clear the clipboard
*/
if (user_data && user_data == clipboard->user_data)
{
owner = [clipboard->owner retain];
owner->setting_same_owner = TRUE;
clipboard->change_count = [clipboard->pasteboard declareTypes: [types allObjects]
owner: owner];
owner->setting_same_owner = FALSE;
}
else
{
owner = [[GtkClipboardOwner alloc] initWithClipboard:clipboard];
clipboard->change_count = [clipboard->pasteboard declareTypes: [types allObjects]
owner: owner];
}
[owner release];
types = _gtk_quartz_target_entries_to_pasteboard_types (targets, n_targets);
clipboard->change_count = [clipboard->pasteboard declareTypes: [types allObjects]
owner: owner];
[types release];
[pool release];
clipboard->owner = owner;
clipboard->user_data = user_data;
clipboard->have_owner = have_owner;
if (have_owner)
@@ -476,8 +459,7 @@ clipboard_unset (GtkClipboard *clipboard)
clipboard->n_storable_targets = -1;
g_free (clipboard->storable_targets);
clipboard->storable_targets = NULL;
clipboard->owner = NULL;
clipboard->get_func = NULL;
clipboard->clear_func = NULL;
clipboard->user_data = NULL;
+8 -2
View File
@@ -5446,9 +5446,12 @@ gtk_combo_box_get_preferred_width (GtkWidget *widget,
gint font_size, arrow_size;
PangoContext *context;
PangoFontMetrics *metrics;
const PangoFontDescription *font_desc;
GtkWidget *child;
gint minimum_width = 0, natural_width = 0;
gint child_min, child_nat;
GtkStyleContext *style_context;
GtkStateFlags state;
GtkBorder padding;
gfloat arrow_scaling;
@@ -5462,11 +5465,14 @@ gtk_combo_box_get_preferred_width (GtkWidget *widget,
"arrow-scaling", &arrow_scaling,
NULL);
style_context = gtk_widget_get_style_context (widget);
state = gtk_widget_get_state_flags (widget);
get_widget_padding_and_border (widget, &padding);
font_desc = gtk_style_context_get_font (style_context, state);
context = gtk_widget_get_pango_context (GTK_WIDGET (widget));
metrics = pango_context_get_metrics (context,
pango_context_get_font_description (context),
metrics = pango_context_get_metrics (context, font_desc,
pango_context_get_language (context));
font_size = PANGO_PIXELS (pango_font_metrics_get_ascent (metrics) +
pango_font_metrics_get_descent (metrics));
+15
View File
@@ -82,6 +82,20 @@ gtk_css_value_array_compute (GtkCssValue *value,
return result;
}
static gboolean
gtk_css_value_array_needs_compute (const GtkCssValue *value)
{
guint i;
for (i = 0; i < value->n_values; i++)
{
if (_gtk_css_value_needs_compute (value->values[i]))
return TRUE;
}
return FALSE;
}
static gboolean
gtk_css_value_array_equal (const GtkCssValue *value1,
const GtkCssValue *value2)
@@ -323,6 +337,7 @@ gtk_css_value_array_print (const GtkCssValue *value,
static const GtkCssValueClass GTK_CSS_VALUE_ARRAY = {
gtk_css_value_array_free,
gtk_css_value_array_compute,
gtk_css_value_array_needs_compute,
gtk_css_value_array_equal,
gtk_css_value_array_transition,
gtk_css_value_array_print
+9
View File
@@ -69,6 +69,14 @@ gtk_css_value_bg_size_compute (GtkCssValue *value,
value->y ? y : NULL);
}
static gboolean
gtk_css_value_bg_size_needs_compute (const GtkCssValue *value)
{
return
_gtk_css_value_needs_compute (value->x) ||
_gtk_css_value_needs_compute (value->y);
}
static gboolean
gtk_css_value_bg_size_equal (const GtkCssValue *value1,
const GtkCssValue *value2)
@@ -150,6 +158,7 @@ gtk_css_value_bg_size_print (const GtkCssValue *value,
static const GtkCssValueClass GTK_CSS_VALUE_BG_SIZE = {
gtk_css_value_bg_size_free,
gtk_css_value_bg_size_compute,
gtk_css_value_bg_size_needs_compute,
gtk_css_value_bg_size_equal,
gtk_css_value_bg_size_transition,
gtk_css_value_bg_size_print
+15
View File
@@ -76,6 +76,20 @@ gtk_css_value_border_compute (GtkCssValue *value,
return computed;
}
static gboolean
gtk_css_value_border_needs_compute (const GtkCssValue *value)
{
guint i;
for (i = 0; i < 4; i++)
{
if (_gtk_css_value_needs_compute (value->values[i]))
return TRUE;
}
return FALSE;
}
static gboolean
gtk_css_value_border_equal (const GtkCssValue *value1,
const GtkCssValue *value2)
@@ -136,6 +150,7 @@ gtk_css_value_border_print (const GtkCssValue *value,
static const GtkCssValueClass GTK_CSS_VALUE_BORDER = {
gtk_css_value_border_free,
gtk_css_value_border_compute,
gtk_css_value_border_needs_compute,
gtk_css_value_border_equal,
gtk_css_value_border_transition,
gtk_css_value_border_print
+7
View File
@@ -334,6 +334,12 @@ gtk_css_value_color_compute (GtkCssValue *value,
return resolved;
}
static gboolean
gtk_css_value_color_needs_compute (const GtkCssValue *value)
{
return TRUE;
}
static gboolean
gtk_css_value_color_equal (const GtkCssValue *value1,
const GtkCssValue *value2)
@@ -449,6 +455,7 @@ gtk_css_value_color_print (const GtkCssValue *value,
static const GtkCssValueClass GTK_CSS_VALUE_COLOR = {
gtk_css_value_color_free,
gtk_css_value_color_compute,
gtk_css_value_color_needs_compute,
gtk_css_value_color_equal,
gtk_css_value_color_transition,
gtk_css_value_color_print
+1 -1
View File
@@ -137,7 +137,7 @@ _gtk_css_computed_values_compute_value (GtkCssComputedValues *values,
if (_gtk_css_style_property_is_inherit (prop))
specified = _gtk_css_inherit_value_new ();
else
specified = _gtk_css_initial_value_new ();
specified = _gtk_css_initial_value_new (prop);
}
else
_gtk_css_value_ref (specified);
+9
View File
@@ -60,6 +60,14 @@ gtk_css_value_corner_compute (GtkCssValue *corner,
return _gtk_css_corner_value_new (x, y);
}
static gboolean
gtk_css_value_corner_needs_compute (const GtkCssValue *corner)
{
return
_gtk_css_value_needs_compute (corner->x) ||
_gtk_css_value_needs_compute (corner->y);
}
static gboolean
gtk_css_value_corner_equal (const GtkCssValue *corner1,
const GtkCssValue *corner2)
@@ -104,6 +112,7 @@ gtk_css_value_corner_print (const GtkCssValue *corner,
static const GtkCssValueClass GTK_CSS_VALUE_CORNER = {
gtk_css_value_corner_free,
gtk_css_value_corner_compute,
gtk_css_value_corner_needs_compute,
gtk_css_value_corner_equal,
gtk_css_value_corner_transition,
gtk_css_value_corner_print
+7
View File
@@ -60,6 +60,12 @@ gtk_css_value_ease_compute (GtkCssValue *value,
return _gtk_css_value_ref (value);
}
static gboolean
gtk_css_value_ease_needs_compute (const GtkCssValue *value)
{
return FALSE;
}
static gboolean
gtk_css_value_ease_equal (const GtkCssValue *ease1,
const GtkCssValue *ease2)
@@ -138,6 +144,7 @@ gtk_css_value_ease_print (const GtkCssValue *ease,
static const GtkCssValueClass GTK_CSS_VALUE_EASE = {
gtk_css_value_ease_free,
gtk_css_value_ease_compute,
gtk_css_value_ease_needs_compute,
gtk_css_value_ease_equal,
gtk_css_value_ease_transition,
gtk_css_value_ease_print
+7
View File
@@ -45,6 +45,12 @@ gtk_css_value_engine_compute (GtkCssValue *value,
return _gtk_css_value_ref (value);
}
static gboolean
gtk_css_value_engine_needs_compute (const GtkCssValue *value)
{
return FALSE;
}
static gboolean
gtk_css_value_engine_equal (const GtkCssValue *value1,
const GtkCssValue *value2)
@@ -80,6 +86,7 @@ gtk_css_value_engine_print (const GtkCssValue *value,
static const GtkCssValueClass GTK_CSS_VALUE_ENGINE = {
gtk_css_value_engine_free,
gtk_css_value_engine_compute,
gtk_css_value_engine_needs_compute,
gtk_css_value_engine_equal,
gtk_css_value_engine_transition,
gtk_css_value_engine_print
+22
View File
@@ -48,6 +48,12 @@ gtk_css_value_enum_compute (GtkCssValue *value,
return _gtk_css_value_ref (value);
}
static gboolean
gtk_css_value_enum_needs_compute (const GtkCssValue *value)
{
return FALSE;
}
static gboolean
gtk_css_value_enum_equal (const GtkCssValue *enum1,
const GtkCssValue *enum2)
@@ -76,6 +82,7 @@ gtk_css_value_enum_print (const GtkCssValue *value,
static const GtkCssValueClass GTK_CSS_VALUE_BORDER_STYLE = {
gtk_css_value_enum_free,
gtk_css_value_enum_compute,
gtk_css_value_enum_needs_compute,
gtk_css_value_enum_equal,
gtk_css_value_enum_transition,
gtk_css_value_enum_print
@@ -219,9 +226,17 @@ gtk_css_value_font_size_compute (GtkCssValue *value,
return _gtk_css_number_value_new (font_size, GTK_CSS_PX);
}
static gboolean
gtk_css_value_font_size_needs_compute (const GtkCssValue *value)
{
return TRUE;
}
static const GtkCssValueClass GTK_CSS_VALUE_FONT_SIZE = {
gtk_css_value_enum_free,
gtk_css_value_font_size_compute,
gtk_css_value_font_size_needs_compute,
gtk_css_value_enum_equal,
gtk_css_value_enum_transition,
gtk_css_value_enum_print
@@ -276,6 +291,7 @@ _gtk_css_font_size_value_get (const GtkCssValue *value)
static const GtkCssValueClass GTK_CSS_VALUE_FONT_STYLE = {
gtk_css_value_enum_free,
gtk_css_value_enum_compute,
gtk_css_value_enum_needs_compute,
gtk_css_value_enum_equal,
gtk_css_value_enum_transition,
gtk_css_value_enum_print
@@ -324,6 +340,7 @@ _gtk_css_font_style_value_get (const GtkCssValue *value)
static const GtkCssValueClass GTK_CSS_VALUE_FONT_VARIANT = {
gtk_css_value_enum_free,
gtk_css_value_enum_compute,
gtk_css_value_enum_needs_compute,
gtk_css_value_enum_equal,
gtk_css_value_enum_transition,
gtk_css_value_enum_print
@@ -371,6 +388,7 @@ _gtk_css_font_variant_value_get (const GtkCssValue *value)
static const GtkCssValueClass GTK_CSS_VALUE_FONT_WEIGHT = {
gtk_css_value_enum_free,
gtk_css_value_enum_compute,
gtk_css_value_enum_needs_compute,
gtk_css_value_enum_equal,
gtk_css_value_enum_transition,
gtk_css_value_enum_print
@@ -439,6 +457,7 @@ _gtk_css_font_weight_value_get (const GtkCssValue *value)
static const GtkCssValueClass GTK_CSS_VALUE_AREA = {
gtk_css_value_enum_free,
gtk_css_value_enum_compute,
gtk_css_value_enum_needs_compute,
gtk_css_value_enum_equal,
gtk_css_value_enum_transition,
gtk_css_value_enum_print
@@ -493,6 +512,7 @@ _gtk_css_area_value_get (const GtkCssValue *value)
static const GtkCssValueClass GTK_CSS_VALUE_DIRECTION = {
gtk_css_value_enum_free,
gtk_css_value_enum_compute,
gtk_css_value_enum_needs_compute,
gtk_css_value_enum_equal,
gtk_css_value_enum_transition,
gtk_css_value_enum_print
@@ -548,6 +568,7 @@ _gtk_css_direction_value_get (const GtkCssValue *value)
static const GtkCssValueClass GTK_CSS_VALUE_PLAY_STATE = {
gtk_css_value_enum_free,
gtk_css_value_enum_compute,
gtk_css_value_enum_needs_compute,
gtk_css_value_enum_equal,
gtk_css_value_enum_transition,
gtk_css_value_enum_print
@@ -601,6 +622,7 @@ _gtk_css_play_state_value_get (const GtkCssValue *value)
static const GtkCssValueClass GTK_CSS_VALUE_FILL_MODE = {
gtk_css_value_enum_free,
gtk_css_value_enum_compute,
gtk_css_value_enum_needs_compute,
gtk_css_value_enum_equal,
gtk_css_value_enum_transition,
gtk_css_value_enum_print
+7
View File
@@ -59,6 +59,12 @@ gtk_css_value_image_compute (GtkCssValue *value,
return _gtk_css_image_value_new (computed);
}
static gboolean
gtk_css_value_image_needs_compute (const GtkCssValue *value)
{
return _gtk_css_image_value_get_image (value) != NULL;
}
static gboolean
gtk_css_value_image_equal (const GtkCssValue *value1,
const GtkCssValue *value2)
@@ -95,6 +101,7 @@ gtk_css_value_image_print (const GtkCssValue *value,
static const GtkCssValueClass GTK_CSS_VALUE_IMAGE = {
gtk_css_value_image_free,
gtk_css_value_image_compute,
gtk_css_value_image_needs_compute,
gtk_css_value_image_equal,
gtk_css_value_image_transition,
gtk_css_value_image_print
+8 -1
View File
@@ -48,7 +48,7 @@ gtk_css_value_inherit_compute (GtkCssValue *value,
}
else
{
return _gtk_css_value_compute (_gtk_css_initial_value_get (),
return _gtk_css_value_compute (_gtk_css_initial_value_get (_gtk_css_style_property_lookup_by_id (property_id)),
property_id,
provider,
values,
@@ -57,6 +57,12 @@ gtk_css_value_inherit_compute (GtkCssValue *value,
}
}
static gboolean
gtk_css_value_inherit_needs_compute (const GtkCssValue *value)
{
return TRUE;
}
static gboolean
gtk_css_value_inherit_equal (const GtkCssValue *value1,
const GtkCssValue *value2)
@@ -83,6 +89,7 @@ gtk_css_value_inherit_print (const GtkCssValue *value,
static const GtkCssValueClass GTK_CSS_VALUE_INHERIT = {
gtk_css_value_inherit_free,
gtk_css_value_inherit_compute,
gtk_css_value_inherit_needs_compute,
gtk_css_value_inherit_equal,
gtk_css_value_inherit_transition,
gtk_css_value_inherit_print
+25 -5
View File
@@ -27,6 +27,8 @@
struct _GtkCssValue {
GTK_CSS_VALUE_BASE
GtkCssStyleProperty *property;
gboolean needs_compute;
};
static void
@@ -46,6 +48,9 @@ gtk_css_value_initial_compute (GtkCssValue *value,
{
GtkSettings *settings;
if (!value->needs_compute)
return _gtk_css_value_ref (_gtk_css_style_property_get_initial_value (value->property));
switch (property_id)
{
case GTK_CSS_PROPERTY_FONT_FAMILY:
@@ -77,7 +82,7 @@ gtk_css_value_initial_compute (GtkCssValue *value,
break;
}
return _gtk_css_value_compute (_gtk_css_style_property_get_initial_value (_gtk_css_style_property_lookup_by_id (property_id)),
return _gtk_css_value_compute (_gtk_css_style_property_get_initial_value (value->property),
property_id,
provider,
values,
@@ -85,6 +90,12 @@ gtk_css_value_initial_compute (GtkCssValue *value,
dependencies);
}
static gboolean
gtk_css_value_initial_needs_compute (const GtkCssValue *value)
{
return TRUE;
}
static gboolean
gtk_css_value_initial_equal (const GtkCssValue *value1,
const GtkCssValue *value2)
@@ -111,6 +122,7 @@ gtk_css_value_initial_print (const GtkCssValue *value,
static const GtkCssValueClass GTK_CSS_VALUE_INITIAL = {
gtk_css_value_initial_free,
gtk_css_value_initial_compute,
gtk_css_value_initial_needs_compute,
gtk_css_value_initial_equal,
gtk_css_value_initial_transition,
gtk_css_value_initial_print
@@ -119,13 +131,21 @@ static const GtkCssValueClass GTK_CSS_VALUE_INITIAL = {
static GtkCssValue initial = { &GTK_CSS_VALUE_INITIAL, 1 };
GtkCssValue *
_gtk_css_initial_value_new (void)
_gtk_css_initial_value_new (GtkCssStyleProperty *property)
{
return _gtk_css_value_ref (&initial);
return _gtk_css_value_ref (_gtk_css_initial_value_get (property));
}
GtkCssValue *
_gtk_css_initial_value_get (void)
_gtk_css_initial_value_get (GtkCssStyleProperty *property)
{
return &initial;
if (property->css_initial_value == NULL)
{
property->css_initial_value = g_new0 (GtkCssValue, 1);
*property->css_initial_value = initial;
property->css_initial_value->property = property;
property->css_initial_value->needs_compute =
_gtk_css_value_needs_compute (_gtk_css_style_property_get_initial_value (property));
}
return property->css_initial_value;
}
+3 -3
View File
@@ -21,11 +21,11 @@
#define __GTK_CSS_INITIAL_VALUE_PRIVATE_H__
#include "gtkcssvalueprivate.h"
#include "gtkcssstylepropertyprivate.h"
G_BEGIN_DECLS
GtkCssValue * _gtk_css_initial_value_new (void);
GtkCssValue * _gtk_css_initial_value_get (void);
GtkCssValue * _gtk_css_initial_value_new (GtkCssStyleProperty *property);
GtkCssValue * _gtk_css_initial_value_get (GtkCssStyleProperty *property);
G_END_DECLS
+13 -11
View File
@@ -62,11 +62,13 @@ gtk_css_matcher_widget_path_get_state (const GtkCssMatcher *matcher)
}
static gboolean
gtk_css_matcher_widget_path_has_type (const GtkCssMatcher *matcher,
GType type)
gtk_css_matcher_widget_path_has_name (const GtkCssMatcher *matcher,
const char *name)
{
const GtkWidgetPath *siblings;
GType type;
type = g_type_from_name (name);
siblings = gtk_widget_path_iter_get_siblings (matcher->path.path, matcher->path.index);
if (siblings && matcher->path.sibling_index != gtk_widget_path_iter_get_sibling_index (matcher->path.path, matcher->path.index))
return g_type_is_a (gtk_widget_path_iter_get_object_type (siblings, matcher->path.sibling_index), type);
@@ -177,7 +179,7 @@ static const GtkCssMatcherClass GTK_CSS_MATCHER_WIDGET_PATH = {
gtk_css_matcher_widget_path_get_parent,
gtk_css_matcher_widget_path_get_previous,
gtk_css_matcher_widget_path_get_state,
gtk_css_matcher_widget_path_has_type,
gtk_css_matcher_widget_path_has_name,
gtk_css_matcher_widget_path_has_class,
gtk_css_matcher_widget_path_has_id,
gtk_css_matcher_widget_path_has_regions,
@@ -234,8 +236,8 @@ gtk_css_matcher_any_get_state (const GtkCssMatcher *matcher)
}
static gboolean
gtk_css_matcher_any_has_type (const GtkCssMatcher *matcher,
GType type)
gtk_css_matcher_any_has_name (const GtkCssMatcher *matcher,
const char *name)
{
return TRUE;
}
@@ -281,7 +283,7 @@ static const GtkCssMatcherClass GTK_CSS_MATCHER_ANY = {
gtk_css_matcher_any_get_parent,
gtk_css_matcher_any_get_previous,
gtk_css_matcher_any_get_state,
gtk_css_matcher_any_has_type,
gtk_css_matcher_any_has_name,
gtk_css_matcher_any_has_class,
gtk_css_matcher_any_has_id,
gtk_css_matcher_any_has_regions,
@@ -330,11 +332,11 @@ gtk_css_matcher_superset_get_state (const GtkCssMatcher *matcher)
}
static gboolean
gtk_css_matcher_superset_has_type (const GtkCssMatcher *matcher,
GType type)
gtk_css_matcher_superset_has_name (const GtkCssMatcher *matcher,
const char *name)
{
if (matcher->superset.relevant & GTK_CSS_CHANGE_NAME)
return _gtk_css_matcher_has_type (matcher->superset.subset, type);
return _gtk_css_matcher_has_name (matcher->superset.subset, name);
else
return TRUE;
}
@@ -400,7 +402,7 @@ static const GtkCssMatcherClass GTK_CSS_MATCHER_SUPERSET = {
gtk_css_matcher_superset_get_parent,
gtk_css_matcher_superset_get_previous,
gtk_css_matcher_superset_get_state,
gtk_css_matcher_superset_has_type,
gtk_css_matcher_superset_has_name,
gtk_css_matcher_superset_has_class,
gtk_css_matcher_superset_has_id,
gtk_css_matcher_superset_has_regions,
+5 -5
View File
@@ -36,8 +36,8 @@ struct _GtkCssMatcherClass {
const GtkCssMatcher *next);
GtkStateFlags (* get_state) (const GtkCssMatcher *matcher);
gboolean (* has_type) (const GtkCssMatcher *matcher,
GType type);
gboolean (* has_name) (const GtkCssMatcher *matcher,
const char *name);
gboolean (* has_class) (const GtkCssMatcher *matcher,
GQuark class_name);
gboolean (* has_id) (const GtkCssMatcher *matcher,
@@ -103,10 +103,10 @@ _gtk_css_matcher_get_state (const GtkCssMatcher *matcher)
}
static inline gboolean
_gtk_css_matcher_has_type (const GtkCssMatcher *matcher,
GType type)
_gtk_css_matcher_has_name (const GtkCssMatcher *matcher,
const char *name)
{
return matcher->klass->has_type (matcher, type);
return matcher->klass->has_name (matcher, name);
}
static inline gboolean
+33
View File
@@ -123,6 +123,38 @@ gtk_css_value_number_compute (GtkCssValue *number,
}
}
static gboolean
gtk_css_value_number_needs_compute (const GtkCssValue *number)
{
switch (number->unit)
{
default:
g_assert_not_reached();
/* fall through */
case GTK_CSS_PERCENT:
/* percentages for font sizes are computed, other percentages aren't */
return TRUE;
case GTK_CSS_NUMBER:
case GTK_CSS_PX:
case GTK_CSS_DEG:
case GTK_CSS_S:
return FALSE;
case GTK_CSS_PT:
case GTK_CSS_PC:
case GTK_CSS_IN:
case GTK_CSS_CM:
case GTK_CSS_MM:
case GTK_CSS_EM:
case GTK_CSS_EX:
case GTK_CSS_RAD:
case GTK_CSS_GRAD:
case GTK_CSS_TURN:
case GTK_CSS_MS:
return TRUE;
}
}
static gboolean
gtk_css_value_number_equal (const GtkCssValue *number1,
const GtkCssValue *number2)
@@ -180,6 +212,7 @@ gtk_css_value_number_print (const GtkCssValue *number,
static const GtkCssValueClass GTK_CSS_VALUE_NUMBER = {
gtk_css_value_number_free,
gtk_css_value_number_compute,
gtk_css_value_number_needs_compute,
gtk_css_value_number_equal,
gtk_css_value_number_transition,
gtk_css_value_number_print
+9
View File
@@ -60,6 +60,14 @@ gtk_css_value_position_compute (GtkCssValue *position,
return _gtk_css_position_value_new (x, y);
}
static gboolean
gtk_css_value_position_needs_compute (const GtkCssValue *position)
{
return
_gtk_css_value_needs_compute (position->x) ||
_gtk_css_value_needs_compute (position->y);
}
static gboolean
gtk_css_value_position_equal (const GtkCssValue *position1,
const GtkCssValue *position2)
@@ -155,6 +163,7 @@ done:
static const GtkCssValueClass GTK_CSS_VALUE_POSITION = {
gtk_css_value_position_free,
gtk_css_value_position_compute,
gtk_css_value_position_needs_compute,
gtk_css_value_position_equal,
gtk_css_value_position_transition,
gtk_css_value_position_print
+24 -46
View File
@@ -1273,6 +1273,12 @@ gtk_css_ruleset_add (GtkCssRuleset *ruleset,
ruleset->styles[i].section = NULL;
}
static GtkCssChange
gtk_css_ruleset_get_change (GtkCssRuleset *ruleset)
{
return _gtk_css_selector_tree_match_get_change (ruleset->selector_match);
}
static void
gtk_css_scanner_destroy (GtkCssScanner *scanner)
{
@@ -1435,49 +1441,6 @@ verify_tree_match_results (GtkCssProvider *provider,
#endif
}
static void
verify_tree_get_change_results (GtkCssProvider *provider,
const GtkCssMatcher *matcher,
GtkCssChange change)
{
#ifdef VERIFY_TREE
{
GtkCssChange verify_change = 0;
GPtrArray *tree_rules;
int i;
tree_rules = _gtk_css_selector_tree_match_all (provider->priv->tree, matcher);
verify_tree_match_results (provider, matcher, tree_rules);
for (i = tree_rules->len - 1; i >= 0; i--)
{
GtkCssRuleset *ruleset;
ruleset = tree_rules->pdata[i];
verify_change |= _gtk_css_selector_tree_match_get_change (ruleset->selector_match);
}
if (change != verify_change)
{
GString *s;
s = g_string_new ("");
g_string_append_printf (s, "expected change 0x%x, but it was 0x%x", verify_change, change);
if ((change & ~verify_change) != 0)
g_string_append_printf (s, ", unexpectedly set: 0x%x", change & ~verify_change);
if ((~change & verify_change) != 0)
g_string_append_printf (s, ", unexpectedly no set: 0x%x", ~change & verify_change);
g_warning (s->str);
g_string_free (s, TRUE);
}
g_ptr_array_free (tree_rules, TRUE);
}
#endif
}
static gboolean
gtk_css_provider_get_style_property (GtkStyleProvider *provider,
GtkWidgetPath *path,
@@ -1622,14 +1585,29 @@ gtk_css_style_provider_get_change (GtkStyleProviderPrivate *provider,
{
GtkCssProvider *css_provider;
GtkCssProviderPrivate *priv;
GtkCssChange change;
GtkCssChange change = 0;
GPtrArray *tree_rules;
int i;
css_provider = GTK_CSS_PROVIDER (provider);
priv = css_provider->priv;
change = _gtk_css_selector_tree_get_change_all (priv->tree, matcher);
tree_rules = _gtk_css_selector_tree_match_all (priv->tree, matcher);
verify_tree_match_results (css_provider, matcher, tree_rules);
verify_tree_get_change_results (css_provider, matcher, change);
for (i = tree_rules->len - 1; i >= 0; i--)
{
GtkCssRuleset *ruleset;
ruleset = tree_rules->pdata[i];
if (ruleset->styles == NULL)
continue;
change |= gtk_css_ruleset_get_change (ruleset);
}
g_ptr_array_free (tree_rules, TRUE);
return change;
}
+8
View File
@@ -44,6 +44,12 @@ gtk_css_value_repeat_compute (GtkCssValue *value,
return _gtk_css_value_ref (value);
}
static gboolean
gtk_css_value_repeat_needs_compute (const GtkCssValue *value)
{
return FALSE;
}
static gboolean
gtk_css_value_repeat_equal (const GtkCssValue *repeat1,
const GtkCssValue *repeat2)
@@ -116,6 +122,7 @@ gtk_css_value_border_repeat_print (const GtkCssValue *repeat,
static const GtkCssValueClass GTK_CSS_VALUE_BACKGROUND_REPEAT = {
gtk_css_value_repeat_free,
gtk_css_value_repeat_compute,
gtk_css_value_repeat_needs_compute,
gtk_css_value_repeat_equal,
gtk_css_value_repeat_transition,
gtk_css_value_background_repeat_print
@@ -124,6 +131,7 @@ static const GtkCssValueClass GTK_CSS_VALUE_BACKGROUND_REPEAT = {
static const GtkCssValueClass GTK_CSS_VALUE_BORDER_REPEAT = {
gtk_css_value_repeat_free,
gtk_css_value_repeat_compute,
gtk_css_value_repeat_needs_compute,
gtk_css_value_repeat_equal,
gtk_css_value_repeat_transition,
gtk_css_value_border_repeat_print
+7
View File
@@ -44,6 +44,12 @@ gtk_css_value_rgba_compute (GtkCssValue *value,
return _gtk_css_value_ref (value);
}
static gboolean
gtk_css_value_rgba_needs_compute (const GtkCssValue *value)
{
return FALSE;
}
static gboolean
gtk_css_value_rgba_equal (const GtkCssValue *rgba1,
const GtkCssValue *rgba2)
@@ -80,6 +86,7 @@ gtk_css_value_rgba_print (const GtkCssValue *rgba,
static const GtkCssValueClass GTK_CSS_VALUE_RGBA = {
gtk_css_value_rgba_free,
gtk_css_value_rgba_compute,
gtk_css_value_rgba_needs_compute,
gtk_css_value_rgba_equal,
gtk_css_value_rgba_transition,
gtk_css_value_rgba_print
+139 -537
View File
File diff suppressed because it is too large Load Diff
-2
View File
@@ -42,8 +42,6 @@ int _gtk_css_selector_compare (const GtkCssSelector *a,
void _gtk_css_selector_tree_free (GtkCssSelectorTree *tree);
GPtrArray * _gtk_css_selector_tree_match_all (const GtkCssSelectorTree *tree,
const GtkCssMatcher *matcher);
GtkCssChange _gtk_css_selector_tree_get_change_all (const GtkCssSelectorTree *tree,
const GtkCssMatcher *matcher);
void _gtk_css_selector_tree_match_print (const GtkCssSelectorTree *tree,
GString *str);
GtkCssChange _gtk_css_selector_tree_match_get_change (const GtkCssSelectorTree *tree);
+15
View File
@@ -72,6 +72,20 @@ gtk_css_value_shadows_compute (GtkCssValue *value,
return result;
}
static gboolean
gtk_css_value_shadows_needs_compute (const GtkCssValue *value)
{
guint i;
for (i = 0; i < value->len; i++)
{
if (_gtk_css_value_needs_compute (value->values[i]))
return TRUE;
}
return FALSE;
}
static gboolean
gtk_css_value_shadows_equal (const GtkCssValue *value1,
const GtkCssValue *value2)
@@ -181,6 +195,7 @@ gtk_css_value_shadows_print (const GtkCssValue *value,
static const GtkCssValueClass GTK_CSS_VALUE_SHADOWS = {
gtk_css_value_shadows_free,
gtk_css_value_shadows_compute,
gtk_css_value_shadows_needs_compute,
gtk_css_value_shadows_equal,
gtk_css_value_shadows_transition,
gtk_css_value_shadows_print
+13
View File
@@ -94,6 +94,18 @@ gtk_css_value_shadow_compute (GtkCssValue *shadow,
return gtk_css_shadow_value_new (hoffset, voffset, radius, spread, shadow->inset, color);
}
static gboolean
gtk_css_value_shadow_needs_compute (const GtkCssValue *shadow)
{
return
_gtk_css_value_needs_compute (shadow->hoffset) ||
_gtk_css_value_needs_compute (shadow->voffset) ||
_gtk_css_value_needs_compute (shadow->radius) ||
_gtk_css_value_needs_compute (shadow->spread) ||
_gtk_css_value_needs_compute (shadow->color);
}
static gboolean
gtk_css_value_shadow_equal (const GtkCssValue *shadow1,
const GtkCssValue *shadow2)
@@ -154,6 +166,7 @@ gtk_css_value_shadow_print (const GtkCssValue *shadow,
static const GtkCssValueClass GTK_CSS_VALUE_SHADOW = {
gtk_css_value_shadow_free,
gtk_css_value_shadow_compute,
gtk_css_value_shadow_needs_compute,
gtk_css_value_shadow_equal,
gtk_css_value_shadow_transition,
gtk_css_value_shadow_print
+2 -2
View File
@@ -102,7 +102,7 @@ gtk_css_shorthand_property_parse_value (GtkStyleProperty *property,
*/
for (i = 0; i < shorthand->subproperties->len; i++)
{
data[i] = _gtk_css_initial_value_new ();
data[i] = _gtk_css_initial_value_new (shorthand->subproperties->pdata[i]);
}
}
else if (_gtk_css_parser_try (parser, "inherit", TRUE))
@@ -135,7 +135,7 @@ gtk_css_shorthand_property_parse_value (GtkStyleProperty *property,
for (i = 0; i < shorthand->subproperties->len; i++)
{
if (data[i] == NULL)
data[i] = _gtk_css_initial_value_new ();
data[i] = _gtk_css_initial_value_new (shorthand->subproperties->pdata[i]);
}
result = _gtk_css_array_value_new_from_array (data, shorthand->subproperties->len);
+8
View File
@@ -44,6 +44,12 @@ gtk_css_value_string_compute (GtkCssValue *value,
return _gtk_css_value_ref (value);
}
static gboolean
gtk_css_value_string_needs_compute (const GtkCssValue *value)
{
return FALSE;
}
static gboolean
gtk_css_value_string_equal (const GtkCssValue *value1,
const GtkCssValue *value2)
@@ -150,6 +156,7 @@ gtk_css_value_ident_print (const GtkCssValue *value,
static const GtkCssValueClass GTK_CSS_VALUE_STRING = {
gtk_css_value_string_free,
gtk_css_value_string_compute,
gtk_css_value_string_needs_compute,
gtk_css_value_string_equal,
gtk_css_value_string_transition,
gtk_css_value_string_print
@@ -158,6 +165,7 @@ static const GtkCssValueClass GTK_CSS_VALUE_STRING = {
static const GtkCssValueClass GTK_CSS_VALUE_IDENT = {
gtk_css_value_string_free,
gtk_css_value_string_compute,
gtk_css_value_string_needs_compute,
gtk_css_value_string_equal,
gtk_css_value_string_transition,
gtk_css_value_ident_print
+15 -57
View File
@@ -39,7 +39,6 @@ enum {
PROP_0,
PROP_ANIMATED,
PROP_AFFECTS_SIZE,
PROP_AFFECTS_FONT,
PROP_ID,
PROP_INHERIT,
PROP_INITIAL
@@ -48,9 +47,6 @@ enum {
G_DEFINE_TYPE (GtkCssStyleProperty, _gtk_css_style_property, GTK_TYPE_STYLE_PROPERTY)
static GtkBitmask *_properties_affecting_size = NULL;
static GtkBitmask *_properties_affecting_font = NULL;
static GtkCssStylePropertyClass *gtk_css_style_property_class = NULL;
static void
gtk_css_style_property_constructed (GObject *object)
@@ -64,9 +60,6 @@ gtk_css_style_property_constructed (GObject *object)
if (property->affects_size)
_properties_affecting_size = _gtk_bitmask_set (_properties_affecting_size, property->id, TRUE);
if (property->affects_font)
_properties_affecting_font = _gtk_bitmask_set (_properties_affecting_font, property->id, TRUE);
G_OBJECT_CLASS (_gtk_css_style_property_parent_class)->constructed (object);
}
@@ -86,9 +79,6 @@ gtk_css_style_property_set_property (GObject *object,
case PROP_AFFECTS_SIZE:
property->affects_size = g_value_get_boolean (value);
break;
case PROP_AFFECTS_FONT:
property->affects_font = g_value_get_boolean (value);
break;
case PROP_INHERIT:
property->inherit = g_value_get_boolean (value);
break;
@@ -118,9 +108,6 @@ gtk_css_style_property_get_property (GObject *object,
case PROP_AFFECTS_SIZE:
g_value_set_boolean (value, property->affects_size);
break;
case PROP_AFFECTS_FONT:
g_value_set_boolean (value, property->affects_font);
break;
case PROP_ID:
g_value_set_boolean (value, property->id);
break;
@@ -243,7 +230,7 @@ gtk_css_style_property_parse_value (GtkStyleProperty *property,
/* the initial value can be explicitly specified with the
* initial keyword which all properties accept.
*/
return _gtk_css_initial_value_new ();
return _gtk_css_initial_value_new (style_property);
}
else if (_gtk_css_parser_try (parser, "inherit", TRUE))
{
@@ -283,13 +270,6 @@ _gtk_css_style_property_class_init (GtkCssStylePropertyClass *klass)
P_("Set if the value affects the sizing of elements"),
TRUE,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
g_object_class_install_property (object_class,
PROP_AFFECTS_FONT,
g_param_spec_boolean ("affects-font",
P_("Affects font"),
P_("Set if the value affects the font"),
FALSE,
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
g_object_class_install_property (object_class,
PROP_ID,
g_param_spec_uint ("id",
@@ -319,9 +299,6 @@ _gtk_css_style_property_class_init (GtkCssStylePropertyClass *klass)
klass->style_properties = g_ptr_array_new ();
_properties_affecting_size = _gtk_bitmask_new ();
_properties_affecting_font = _gtk_bitmask_new ();
gtk_css_style_property_class = klass;
}
static GtkCssValue *
@@ -349,13 +326,17 @@ _gtk_css_style_property_init (GtkCssStyleProperty *property)
guint
_gtk_css_style_property_get_n_properties (void)
{
if (G_UNLIKELY (gtk_css_style_property_class == NULL))
GtkCssStylePropertyClass *klass;
klass = g_type_class_peek (GTK_TYPE_CSS_STYLE_PROPERTY);
if (G_UNLIKELY (klass == NULL))
{
_gtk_style_property_init_properties ();
g_assert (gtk_css_style_property_class);
klass = g_type_class_peek (GTK_TYPE_CSS_STYLE_PROPERTY);
g_assert (klass);
}
return gtk_css_style_property_class->style_properties->len;
return klass->style_properties->len;
}
/**
@@ -371,16 +352,18 @@ _gtk_css_style_property_get_n_properties (void)
GtkCssStyleProperty *
_gtk_css_style_property_lookup_by_id (guint id)
{
GtkCssStylePropertyClass *klass;
if (G_UNLIKELY (gtk_css_style_property_class == NULL))
klass = g_type_class_peek (GTK_TYPE_CSS_STYLE_PROPERTY);
if (G_UNLIKELY (klass == NULL))
{
_gtk_style_property_init_properties ();
g_assert (gtk_css_style_property_class);
klass = g_type_class_peek (GTK_TYPE_CSS_STYLE_PROPERTY);
g_assert (klass);
}
g_return_val_if_fail (id < klass->style_properties->len, NULL);
g_return_val_if_fail (id < gtk_css_style_property_class->style_properties->len, NULL);
return g_ptr_array_index (gtk_css_style_property_class->style_properties, id);
return g_ptr_array_index (klass->style_properties, id);
}
/**
@@ -436,25 +419,6 @@ _gtk_css_style_property_affects_size (GtkCssStyleProperty *property)
return property->affects_size;
}
/**
* _gtk_css_style_property_affects_font:
* @property: the property
*
* Queries if the given @property affects the default font. This is
* used for optimizations inside GTK, where clearing pango
* layouts can be avoided if the font doesn't change.
*
* Returns: %TRUE if the property affects the font.
**/
gboolean
_gtk_css_style_property_affects_font (GtkCssStyleProperty *property)
{
g_return_val_if_fail (GTK_IS_CSS_STYLE_PROPERTY (property), FALSE);
return property->affects_font;
}
/**
* _gtk_css_style_property_get_id:
* @property: the property
@@ -495,9 +459,3 @@ _gtk_css_style_property_changes_affect_size (const GtkBitmask *changes)
{
return _gtk_bitmask_intersects (changes, _properties_affecting_size);
}
gboolean
_gtk_css_style_property_changes_affect_font (const GtkBitmask *changes)
{
return _gtk_bitmask_intersects (changes, _properties_affecting_font);
}
+7 -9
View File
@@ -66,8 +66,7 @@
typedef enum {
GTK_STYLE_PROPERTY_INHERIT = (1 << 0),
GTK_STYLE_PROPERTY_ANIMATED = (1 << 1),
GTK_STYLE_PROPERTY_NO_RESIZE = (1 << 2),
GTK_STYLE_PROPERTY_AFFECTS_FONT = (1 << 3)
GTK_STYLE_PROPERTY_NO_RESIZE = (1 << 2)
} GtkStylePropertyFlags;
static void
@@ -90,7 +89,6 @@ gtk_css_style_property_register (const char * name,
node = g_object_new (GTK_TYPE_CSS_STYLE_PROPERTY,
"value-type", value_type,
"affects-size", (flags & GTK_STYLE_PROPERTY_NO_RESIZE) ? FALSE : TRUE,
"affects-font", (flags & GTK_STYLE_PROPERTY_AFFECTS_FONT) ? TRUE : FALSE,
"animated", (flags & GTK_STYLE_PROPERTY_ANIMATED) ? TRUE : FALSE,
"inherit", (flags & GTK_STYLE_PROPERTY_INHERIT) ? TRUE : FALSE,
"initial-value", initial_value,
@@ -164,7 +162,7 @@ assign_border (GtkCssStyleProperty *property,
const GtkBorder *border = g_value_get_boxed (value);
if (border == NULL)
return _gtk_css_initial_value_new ();
return _gtk_css_initial_value_new (property);
else
return _gtk_css_border_value_new (_gtk_css_number_value_new (border->top, GTK_CSS_PX),
_gtk_css_number_value_new (border->right, GTK_CSS_PX),
@@ -878,7 +876,7 @@ _gtk_css_style_property_init_properties (void)
gtk_css_style_property_register ("font-size",
GTK_CSS_PROPERTY_FONT_SIZE,
G_TYPE_DOUBLE,
GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_ANIMATED | GTK_STYLE_PROPERTY_AFFECTS_FONT,
GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_ANIMATED,
font_size_parse,
query_length_as_double,
assign_length_from_double,
@@ -898,7 +896,7 @@ _gtk_css_style_property_init_properties (void)
gtk_css_style_property_register ("font-family",
GTK_CSS_PROPERTY_FONT_FAMILY,
G_TYPE_STRV,
GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_AFFECTS_FONT,
GTK_STYLE_PROPERTY_INHERIT,
font_family_parse,
font_family_query,
font_family_assign,
@@ -906,7 +904,7 @@ _gtk_css_style_property_init_properties (void)
gtk_css_style_property_register ("font-style",
GTK_CSS_PROPERTY_FONT_STYLE,
PANGO_TYPE_STYLE,
GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_AFFECTS_FONT,
GTK_STYLE_PROPERTY_INHERIT,
parse_pango_style,
query_pango_style,
assign_pango_style,
@@ -914,7 +912,7 @@ _gtk_css_style_property_init_properties (void)
gtk_css_style_property_register ("font-variant",
GTK_CSS_PROPERTY_FONT_VARIANT,
PANGO_TYPE_VARIANT,
GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_AFFECTS_FONT,
GTK_STYLE_PROPERTY_INHERIT,
parse_pango_variant,
query_pango_variant,
assign_pango_variant,
@@ -922,7 +920,7 @@ _gtk_css_style_property_init_properties (void)
gtk_css_style_property_register ("font-weight",
GTK_CSS_PROPERTY_FONT_WEIGHT,
PANGO_TYPE_WEIGHT,
GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_AFFECTS_FONT,
GTK_STYLE_PROPERTY_INHERIT,
parse_pango_weight,
query_pango_weight,
assign_pango_weight,
+3 -4
View File
@@ -50,7 +50,8 @@ struct _GtkCssStyleProperty
guint inherit :1;
guint animated :1;
guint affects_size :1;
guint affects_font :1;
GtkCssValue *css_initial_value; /* Used to quickly find the GCssInitialValue for a property */
GtkCssStylePropertyParseFunc parse_value;
GtkCssStylePropertyQueryFunc query_value;
@@ -74,7 +75,6 @@ GtkCssStyleProperty * _gtk_css_style_property_lookup_by_id (guint
gboolean _gtk_css_style_property_is_inherit (GtkCssStyleProperty *property);
gboolean _gtk_css_style_property_is_animated (GtkCssStyleProperty *property);
gboolean _gtk_css_style_property_affects_size (GtkCssStyleProperty *property);
gboolean _gtk_css_style_property_affects_font (GtkCssStyleProperty *property);
guint _gtk_css_style_property_get_id (GtkCssStyleProperty *property);
GtkCssValue * _gtk_css_style_property_get_initial_value
(GtkCssStyleProperty *property);
@@ -85,8 +85,7 @@ void _gtk_css_style_property_print_value (GtkCssStyleProp
gboolean _gtk_css_style_property_changes_affect_size
(const GtkBitmask *changes);
gboolean _gtk_css_style_property_changes_affect_font
(const GtkBitmask *changes);
G_END_DECLS
+7
View File
@@ -47,6 +47,12 @@ gtk_css_value_typed_compute (GtkCssValue *value,
return _gtk_css_style_compute_value (provider, values, parent_values, custom->pspec->value_type, value, dependencies);
}
static gboolean
gtk_css_value_typed_needs_compute (const GtkCssValue *value)
{
return TRUE;
}
static gboolean
gtk_css_value_typed_equal (const GtkCssValue *value1,
const GtkCssValue *value2)
@@ -73,6 +79,7 @@ gtk_css_value_typed_print (const GtkCssValue *value,
static const GtkCssValueClass GTK_CSS_VALUE_TYPED = {
gtk_css_value_typed_free,
gtk_css_value_typed_compute,
gtk_css_value_typed_needs_compute,
gtk_css_value_typed_equal,
gtk_css_value_typed_transition,
gtk_css_value_typed_print
+1 -3
View File
@@ -50,9 +50,7 @@ typedef enum { /*< skip >*/
/* add more */
GTK_CSS_CHANGE_SOURCE = (1 << 16),
GTK_CSS_CHANGE_ANIMATE = (1 << 17),
GTK_CSS_CHANGE_FORCE_INVALIDATE = (1 << 18),
GTK_CSS_CHANGE_RESERVED_BIT = (1 << 31) /* Used internally in gtkcssselector.c */
GTK_CSS_CHANGE_FORCE_INVALIDATE = (1 << 18)
} GtkCssChange;
#define GTK_CSS_CHANGE_ANY ((1 << 19) - 1)
+21
View File
@@ -106,6 +106,27 @@ _gtk_css_value_compute (GtkCssValue *value,
return value->class->compute (value, property_id, provider, values, parent_values, dependencies);
}
/**
* _gtk_css_value_needs_compute:
* @value: the value to check or %null
*
* Checks whether a particular css value *really* needs computation.
* A lot of css values are "absolute" (like say "10 px") and never need
* any computation done. Such a value would always just return itself
* as the computed value. This can be used in some cases to avoid
* repeated computations.
*
* Returns: %false if computing this value always returns itself, %false otherwise
**/
gboolean
_gtk_css_value_needs_compute (GtkCssValue *value)
{
if (value == NULL)
return FALSE;
return value->class->needs_compute (value);
}
gboolean
_gtk_css_value_equal (const GtkCssValue *value1,
const GtkCssValue *value2)
+2
View File
@@ -46,6 +46,7 @@ struct _GtkCssValueClass {
GtkCssComputedValues *values,
GtkCssComputedValues *parent_values,
GtkCssDependencies *dependencies);
gboolean (* needs_compute) (const GtkCssValue *value);
gboolean (* equal) (const GtkCssValue *value1,
const GtkCssValue *value2);
GtkCssValue * (* transition) (GtkCssValue *start,
@@ -71,6 +72,7 @@ GtkCssValue *_gtk_css_value_compute (GtkCssValue
GtkCssComputedValues *values,
GtkCssComputedValues *parent_values,
GtkCssDependencies *dependencies);
gboolean _gtk_css_value_needs_compute (GtkCssValue *value);
gboolean _gtk_css_value_equal (const GtkCssValue *value1,
const GtkCssValue *value2);
gboolean _gtk_css_value_equal0 (const GtkCssValue *value1,
-1
View File
@@ -41,7 +41,6 @@
#include "gtkquartz.h"
#include "gdk/quartz/gdkquartz.h"
#include "gtkselectionprivate.h"
#include "gtksettings.h"
typedef struct _GtkDragSourceSite GtkDragSourceSite;
typedef struct _GtkDragSourceInfo GtkDragSourceInfo;
+19 -3
View File
@@ -3216,14 +3216,19 @@ gtk_entry_get_preferred_width (GtkWidget *widget,
PangoFontMetrics *metrics;
GtkBorder borders;
PangoContext *context;
GtkStyleContext *style_context;
GtkStateFlags state;
gint icon_widths = 0;
gint icon_width, i;
gint width;
context = gtk_widget_get_pango_context (widget);
style_context = gtk_widget_get_style_context (widget);
state = gtk_widget_get_state_flags (widget);
metrics = pango_context_get_metrics (context,
pango_context_get_font_description (context),
gtk_style_context_get_font (style_context, state),
pango_context_get_language (context));
_gtk_entry_get_borders (entry, &borders);
@@ -3264,6 +3269,8 @@ gtk_entry_get_preferred_height (GtkWidget *widget,
GtkEntryPrivate *priv = entry->priv;
PangoFontMetrics *metrics;
GtkBorder borders;
GtkStyleContext *style_context;
GtkStateFlags state;
PangoContext *context;
gint height;
PangoLayout *layout;
@@ -3271,8 +3278,11 @@ gtk_entry_get_preferred_height (GtkWidget *widget,
layout = gtk_entry_ensure_layout (entry, TRUE);
context = gtk_widget_get_pango_context (widget);
style_context = gtk_widget_get_style_context (widget);
state = gtk_widget_get_state_flags (widget);
metrics = pango_context_get_metrics (context,
pango_context_get_font_description (context),
gtk_style_context_get_font (style_context, state),
pango_context_get_language (context));
priv->ascent = pango_font_metrics_get_ascent (metrics);
@@ -4865,6 +4875,8 @@ gtk_entry_style_updated (GtkWidget *widget)
gtk_entry_update_cached_style_values (entry);
gtk_entry_recompute (entry);
icon_theme_changed (entry);
}
@@ -6562,6 +6574,8 @@ gtk_entry_move_adjustments (GtkEntry *entry)
GtkAdjustment *adjustment;
PangoContext *context;
PangoFontMetrics *metrics;
GtkStyleContext *style_context;
GtkStateFlags state;
GtkBorder borders;
gint x, layout_x;
gint char_width;
@@ -6580,9 +6594,11 @@ gtk_entry_move_adjustments (GtkEntry *entry)
/* Approximate width of a char, so user can see what is ahead/behind */
context = gtk_widget_get_pango_context (widget);
style_context = gtk_widget_get_style_context (widget);
state = gtk_widget_get_state_flags (widget);
metrics = pango_context_get_metrics (context,
pango_context_get_font_description (context),
gtk_style_context_get_font (style_context, state),
pango_context_get_language (context));
char_width = pango_font_metrics_get_approximate_char_width (metrics) / PANGO_SCALE;
+3 -3
View File
@@ -8187,7 +8187,7 @@ find_good_size_from_style (GtkWidget *widget,
{
GtkStyleContext *context;
GtkStateFlags state;
double font_size;
int font_size;
GdkScreen *screen;
double resolution;
@@ -8204,8 +8204,8 @@ find_good_size_from_style (GtkWidget *widget,
else
resolution = 96.0; /* wheeee */
gtk_style_context_get (context, state, "font-size", &font_size, NULL);
font_size = font_size * resolution / 72.0 + 0.5;
font_size = pango_font_description_get_size (gtk_style_context_get_font (context, state));
font_size = PANGO_PIXELS (font_size) * resolution / 72.0;
*width = font_size * NUM_CHARS;
*height = font_size * NUM_LINES;
+1 -4
View File
@@ -325,10 +325,7 @@ _gtk_icon_helper_ensure_pixbuf (GtkIconHelper *self,
case GTK_IMAGE_STOCK:
icon_set = gtk_style_context_lookup_icon_set (context, self->priv->stock_id);
if (icon_set != NULL)
ensure_pixbuf_for_icon_set (self, context, icon_set);
else
pixbuf = NULL;
ensure_pixbuf_for_icon_set (self, context, icon_set);
break;
case GTK_IMAGE_ICON_SET:
+50 -6
View File
@@ -384,6 +384,9 @@ static void gtk_label_size_allocate (GtkWidget *widget,
GtkAllocation *allocation);
static void gtk_label_state_flags_changed (GtkWidget *widget,
GtkStateFlags prev_state);
static void gtk_label_style_updated (GtkWidget *widget);
static void gtk_label_direction_changed (GtkWidget *widget,
GtkTextDirection previous_dir);
static gint gtk_label_draw (GtkWidget *widget,
cairo_t *cr);
static gboolean gtk_label_focus (GtkWidget *widget,
@@ -563,7 +566,9 @@ gtk_label_class_init (GtkLabelClass *class)
widget_class->destroy = gtk_label_destroy;
widget_class->size_allocate = gtk_label_size_allocate;
widget_class->state_flags_changed = gtk_label_state_flags_changed;
widget_class->style_updated = gtk_label_style_updated;
widget_class->query_tooltip = gtk_label_query_tooltip;
widget_class->direction_changed = gtk_label_direction_changed;
widget_class->draw = gtk_label_draw;
widget_class->realize = gtk_label_realize;
widget_class->unrealize = gtk_label_unrealize;
@@ -1847,9 +1852,6 @@ gtk_label_screen_changed (GtkWidget *widget,
GtkSettings *settings;
gboolean shortcuts_connected;
/* The PangoContext is replaced when the screen changes, so clear the layouts */
gtk_label_clear_layout (GTK_LABEL (widget));
if (!gtk_widget_has_screen (widget))
return;
@@ -3134,6 +3136,23 @@ gtk_label_clear_layout (GtkLabel *label)
}
}
static PangoFontMetrics *
get_font_metrics (PangoContext *context, GtkWidget *widget)
{
GtkStyleContext *style_context;
const PangoFontDescription *font;
PangoFontMetrics *retval;
style_context = gtk_widget_get_style_context (widget);
font = gtk_style_context_get_font (style_context, GTK_STATE_FLAG_NORMAL);
retval = pango_context_get_metrics (context,
font,
pango_context_get_language (context));
return retval;
}
/**
* gtk_label_get_measuring_layout:
* @label: the label
@@ -3466,9 +3485,7 @@ get_char_pixels (GtkWidget *label,
gint char_width, digit_width;
context = pango_layout_get_context (layout);
metrics = pango_context_get_metrics (context,
pango_context_get_font_description (context),
pango_context_get_language (context));
metrics = get_font_metrics (context, GTK_WIDGET (label));
char_width = pango_font_metrics_get_approximate_char_width (metrics);
digit_width = pango_font_metrics_get_approximate_digit_width (metrics);
pango_font_metrics_unref (metrics);
@@ -3809,10 +3826,37 @@ gtk_label_state_flags_changed (GtkWidget *widget,
gtk_label_update_cursor (label);
}
/* We have to clear the layout, fonts etc. may have changed */
gtk_label_clear_layout (label);
if (GTK_WIDGET_CLASS (gtk_label_parent_class)->state_flags_changed)
GTK_WIDGET_CLASS (gtk_label_parent_class)->state_flags_changed (widget, prev_state);
}
static void
gtk_label_style_updated (GtkWidget *widget)
{
GtkLabel *label = GTK_LABEL (widget);
GTK_WIDGET_CLASS (gtk_label_parent_class)->style_updated (widget);
/* We have to clear the layout, fonts etc. may have changed */
gtk_label_clear_layout (label);
}
static void
gtk_label_direction_changed (GtkWidget *widget,
GtkTextDirection previous_dir)
{
GtkLabel *label = GTK_LABEL (widget);
GtkLabelPrivate *priv = label->priv;
if (priv->layout)
pango_layout_context_changed (priv->layout);
GTK_WIDGET_CLASS (gtk_label_parent_class)->direction_changed (widget, previous_dir);
}
static void
get_layout_location (GtkLabel *label,
gint *xp,
+1 -1
View File
@@ -1555,7 +1555,7 @@ gtk_main_do_event (GdkEvent *event)
* This is the key to implementing modality.
*/
if (!grab_widget ||
((gtk_widget_is_sensitive (event_widget) || event->type == GDK_SCROLL) &&
(gtk_widget_is_sensitive (event_widget) &&
gtk_widget_is_ancestor (event_widget, grab_widget)))
grab_widget = event_widget;
+10 -2
View File
@@ -758,6 +758,8 @@ get_arrow_size (GtkWidget *widget,
gint *size,
gint *spacing)
{
GtkStyleContext *style_context;
GtkStateFlags state;
PangoContext *context;
PangoFontMetrics *metrics;
gfloat arrow_scaling;
@@ -774,9 +776,11 @@ get_arrow_size (GtkWidget *widget,
*spacing = arrow_spacing;
context = gtk_widget_get_pango_context (child);
style_context = gtk_widget_get_style_context (child);
state = gtk_widget_get_state_flags (child);
metrics = pango_context_get_metrics (context,
pango_context_get_font_description (context),
gtk_style_context_get_font (style_context, state),
pango_context_get_language (context));
*size = (PANGO_PIXELS (pango_font_metrics_get_ascent (metrics) +
@@ -810,15 +814,19 @@ gtk_menu_item_accel_width_foreach (GtkWidget *widget,
static gint
get_minimum_width (GtkWidget *widget)
{
GtkStyleContext *style_context;
GtkStateFlags state;
PangoContext *context;
PangoFontMetrics *metrics;
gint width;
gint width_chars;
context = gtk_widget_get_pango_context (widget);
style_context = gtk_widget_get_style_context (widget);
state = gtk_widget_get_state_flags (widget);
metrics = pango_context_get_metrics (context,
pango_context_get_font_description (context),
gtk_style_context_get_font (style_context, state),
pango_context_get_language (context));
width = pango_font_metrics_get_approximate_char_width (metrics);
+4 -2
View File
@@ -1723,10 +1723,12 @@ static void
gtk_real_menu_shell_cycle_focus (GtkMenuShell *menu_shell,
GtkDirectionType dir)
{
GtkMenuShellPrivate *priv = menu_shell->priv;
while (menu_shell && !GTK_IS_MENU_BAR (menu_shell))
{
if (menu_shell->priv->parent_menu_shell)
menu_shell = GTK_MENU_SHELL (menu_shell->priv->parent_menu_shell);
if (priv->parent_menu_shell)
menu_shell = GTK_MENU_SHELL (priv->parent_menu_shell);
else
menu_shell = NULL;
}
-1
View File
@@ -23,7 +23,6 @@
#include <gdk/gdkkeysyms.h>
#include "gtkaccelmapprivate.h"
#include "gtkactionhelper.h"
#include "../gdk/quartz/gdkquartz.h"
#import <Cocoa/Cocoa.h>
+1 -4
View File
@@ -423,10 +423,7 @@ gtk_overlay_realize (GtkWidget *widget)
child = children->data;
if (child->window == NULL)
{
child->window = gtk_overlay_create_child_window (overlay, child->widget);
gtk_overlay_child_allocate (overlay, child);
}
child->window = gtk_overlay_create_child_window (overlay, child->widget);
}
}
+3 -3
View File
@@ -556,15 +556,15 @@ gtk_progress_bar_get_preferred_width (GtkWidget *widget,
if (priv->ellipsize)
{
const PangoFontDescription *font_desc;
PangoContext *context;
PangoFontMetrics *metrics;
gint char_width;
/* The minimum size for ellipsized text is ~ 3 chars */
context = pango_layout_get_context (layout);
metrics = pango_context_get_metrics (context,
pango_context_get_font_description (context),
pango_context_get_language (context));
font_desc = gtk_style_context_get_font (style_context, state);
metrics = pango_context_get_metrics (context, font_desc, pango_context_get_language (context));
char_width = pango_font_metrics_get_approximate_char_width (metrics);
pango_font_metrics_unref (metrics);
+5 -4
View File
@@ -922,7 +922,7 @@ set_default_size (GtkRecentChooserDefault *impl)
GtkScrolledWindow *scrollw;
GtkWidget *widget;
gint width, height;
double font_size;
gint font_size;
GdkScreen *screen;
gint monitor_num;
GtkRequisition req;
@@ -935,10 +935,11 @@ set_default_size (GtkRecentChooserDefault *impl)
state = gtk_widget_get_state_flags (widget);
/* Size based on characters and the icon size */
gtk_style_context_get (context, state, "font-size", &font_size, NULL);
font_size = pango_font_description_get_size (gtk_style_context_get_font (context, state));
font_size = PANGO_PIXELS (font_size);
width = impl->icon_size + font_size * NUM_CHARS + 0.5;
height = (impl->icon_size + font_size) * NUM_LINES + 0.5;
width = impl->icon_size + font_size * NUM_CHARS;
height = (impl->icon_size + font_size) * NUM_LINES;
/* Use at least the requisition size... */
gtk_widget_get_preferred_size (widget, &req, NULL);
-4
View File
@@ -1196,9 +1196,7 @@ gtk_scale_draw (GtkWidget *widget,
gtk_style_context_save (context);
gtk_style_context_add_class (context, GTK_STYLE_CLASS_MARK);
gtk_style_context_add_class (context, GTK_STYLE_CLASS_SEPARATOR);
gtk_render_line (context, cr, x1, y1, x1, y2);
gtk_style_context_remove_class (context, GTK_STYLE_CLASS_SEPARATOR);
if (mark->markup)
{
@@ -1249,9 +1247,7 @@ gtk_scale_draw (GtkWidget *widget,
gtk_style_context_save (context);
gtk_style_context_add_class (context, GTK_STYLE_CLASS_MARK);
gtk_style_context_add_class (context, GTK_STYLE_CLASS_SEPARATOR);
gtk_render_line (context, cr, x1, y1, x2, y1);
gtk_style_context_remove_class (context, GTK_STYLE_CLASS_SEPARATOR);
if (mark->markup)
{
-9
View File
@@ -1414,14 +1414,6 @@ gtk_settings_provider_iface_init (GtkStyleProviderIface *iface)
{
}
static GtkCssChange
gtk_settings_style_provider_get_change (GtkStyleProviderPrivate *provider,
const GtkCssMatcher *matcher)
{
return 0;
}
static GtkSettings *
gtk_settings_style_provider_get_settings (GtkStyleProviderPrivate *provider)
{
@@ -1432,7 +1424,6 @@ static void
gtk_settings_provider_private_init (GtkStyleProviderPrivateInterface *iface)
{
iface->get_settings = gtk_settings_style_provider_get_settings;
iface->get_change = gtk_settings_style_provider_get_change;
}
static void
+17 -37
View File
@@ -25,7 +25,6 @@
#include "gtkstylecontextprivate.h"
#include "gtkcontainerprivate.h"
#include "gtkcsscolorvalueprivate.h"
#include "gtkcsscornervalueprivate.h"
#include "gtkcssenginevalueprivate.h"
#include "gtkcssnumbervalueprivate.h"
#include "gtkcssrgbavalueprivate.h"
@@ -3231,13 +3230,6 @@ gtk_style_context_invalidate (GtkStyleContext *context)
_gtk_bitmask_free (changes);
}
static gboolean
corner_value_is_right_angle (GtkCssValue *value)
{
return _gtk_css_corner_value_get_x (value, 100) <= 0.0 &&
_gtk_css_corner_value_get_y (value, 100) <= 0.0;
}
/**
* gtk_style_context_set_background:
* @context: a #GtkStyleContext
@@ -3252,33 +3244,21 @@ void
gtk_style_context_set_background (GtkStyleContext *context,
GdkWindow *window)
{
const GdkRGBA *color;
GtkStateFlags state;
GdkRGBA *color;
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (GDK_IS_WINDOW (window));
/* This is a sophisitcated optimization.
* If we know the GDK window's background will be opaque, we mark
* it as opaque. This is so GDK can do all the optimizations it does
* for opaque windows and be fast.
* This is mainly used when scrolling.
*
* We could indeed just set black instead of the color we have.
*/
color = _gtk_css_rgba_value_get_rgba (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_BACKGROUND_COLOR));
state = gtk_style_context_get_state (context);
if (color->alpha >= 1.0 &&
corner_value_is_right_angle (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_BORDER_TOP_LEFT_RADIUS)) &&
corner_value_is_right_angle (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_BORDER_TOP_RIGHT_RADIUS)) &&
corner_value_is_right_angle (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_BORDER_BOTTOM_RIGHT_RADIUS)) &&
corner_value_is_right_angle (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_BORDER_BOTTOM_LEFT_RADIUS)))
gtk_style_context_get (context, state,
"background-color", &color,
NULL);
if (color)
{
gdk_window_set_background_rgba (window, color);
}
else
{
GdkRGBA transparent = { 0.0, 0.0, 0.0, 0.0 };
gdk_window_set_background_rgba (window, &transparent);
gdk_rgba_free (color);
}
}
@@ -3488,9 +3468,6 @@ gtk_style_context_get_margin (GtkStyleContext *context,
* freed.
*
* Since: 3.0
*
* Deprecated: 3.8: Use gtk_style_context_get() for "font" or
* subproperties instead.
**/
const PangoFontDescription *
gtk_style_context_get_font (GtkStyleContext *context,
@@ -3509,12 +3486,15 @@ gtk_style_context_get_font (GtkStyleContext *context,
/* Yuck, fonts are created on-demand but we don't return a ref.
* Do bad things to achieve this requirement */
gtk_style_context_get (context, state, "font", &description, NULL);
g_object_set_data_full (G_OBJECT (data->store),
"font-cache-for-get_font",
description,
(GDestroyNotify) pango_font_description_free);
description = g_object_get_data (G_OBJECT (data->store), "font-cache-for-get_font");
if (description == NULL)
{
gtk_style_context_get (context, state, "font", &description, NULL);
g_object_set_data_full (G_OBJECT (data->store),
"font-cache-for-get_font",
description,
(GDestroyNotify) pango_font_description_free);
}
return description;
}
-2
View File
@@ -879,8 +879,6 @@ void gtk_style_context_get_background_color (GtkStyleContext *context,
void gtk_style_context_get_border_color (GtkStyleContext *context,
GtkStateFlags state,
GdkRGBA *color);
GDK_DEPRECATED_IN_3_8_FOR(gtk_style_context_get)
const PangoFontDescription *
gtk_style_context_get_font (GtkStyleContext *context,
GtkStateFlags state);
+20
View File
@@ -524,12 +524,15 @@ gtk_switch_draw (GtkWidget *widget,
GtkStyleContext *context;
GdkRectangle handle;
PangoLayout *layout;
PangoFontDescription *desc;
const PangoFontDescription *style_desc;
PangoRectangle rect;
gint label_x, label_y;
GtkBorder padding;
GtkStateFlags state;
gint focus_width, focus_pad;
gint x, y, width, height;
gint font_size, style_font_size;
gtk_widget_style_get (widget,
"focus-line-width", &focus_width,
@@ -582,6 +585,20 @@ gtk_switch_draw (GtkWidget *widget,
*/
layout = gtk_widget_create_pango_layout (widget, C_("switch", "ON"));
/* FIXME: this should be really done in the theme, but overriding font size
* from it doesn't currently work. So we have to hardcode this here and
* below for the "OFF" label.
*/
desc = pango_font_description_new ();
style_desc = gtk_style_context_get_font (context, state);
style_font_size = pango_font_description_get_size (style_desc);
font_size = MAX (style_font_size - 1 * PANGO_SCALE, ceil (style_font_size * PANGO_SCALE_SMALL));
pango_font_description_set_size (desc, font_size);
pango_layout_set_font_description (layout, desc);
pango_layout_get_extents (layout, NULL, &rect);
pango_extents_to_pixels (&rect, NULL);
@@ -596,6 +613,7 @@ gtk_switch_draw (GtkWidget *widget,
* glyphs then use WHITE CIRCLE (U+25CB) as the text for the state
*/
layout = gtk_widget_create_pango_layout (widget, C_("switch", "OFF"));
pango_layout_set_font_description (layout, desc);
pango_layout_get_extents (layout, NULL, &rect);
pango_extents_to_pixels (&rect, NULL);
@@ -618,6 +636,8 @@ gtk_switch_draw (GtkWidget *widget,
gtk_switch_paint_handle (widget, cr, &handle);
pango_font_description_free (desc);
return FALSE;
}
+1 -1
View File
@@ -298,7 +298,7 @@ gtk_text_view_set_attributes_from_style (GtkTextView *text_view,
if (values->font)
pango_font_description_free (values->font);
gtk_style_context_get (context, state, "font", &values->font, NULL);
values->font = pango_font_description_copy (gtk_style_context_get_font (context, state));
}
cairo_surface_t *
+2 -10
View File
@@ -51,8 +51,6 @@
#include "gtkscrollable.h"
#include "gtktypebuiltins.h"
#include "gtktexthandleprivate.h"
#include "gtkstylecontextprivate.h"
#include "gtkcssstylepropertyprivate.h"
#include "a11y/gtktextviewaccessible.h"
@@ -4232,8 +4230,6 @@ gtk_text_view_style_updated (GtkWidget *widget)
GtkTextView *text_view;
GtkTextViewPrivate *priv;
PangoContext *ltr_context, *rtl_context;
GtkStyleContext *style_context;
const GtkBitmask *changes;
text_view = GTK_TEXT_VIEW (widget);
priv = text_view->priv;
@@ -4245,11 +4241,7 @@ gtk_text_view_style_updated (GtkWidget *widget)
gtk_text_view_set_background (text_view);
}
style_context = gtk_widget_get_style_context (widget);
changes = _gtk_style_context_get_changes (style_context);
if ((changes == NULL || _gtk_css_style_property_changes_affect_font (changes)) &&
priv->layout && priv->layout->default_style)
if (priv->layout && priv->layout->default_style)
{
gtk_text_view_set_attributes_from_style (text_view,
priv->layout->default_style);
@@ -6927,7 +6919,7 @@ gtk_text_view_set_attributes_from_style (GtkTextView *text_view,
if (values->font)
pango_font_description_free (values->font);
gtk_style_context_get (context, state, "font", &values->font, NULL);
values->font = pango_font_description_copy (gtk_style_context_get_font (context, state));
gtk_style_context_restore (context);
}
-4
View File
@@ -853,8 +853,6 @@ gtk_theming_engine_get_margin (GtkThemingEngine *engine,
* freed.
*
* Since: 3.0
*
* Deprecated: 3.8: Use gtk_theming_engine_get()
**/
const PangoFontDescription *
gtk_theming_engine_get_font (GtkThemingEngine *engine,
@@ -864,10 +862,8 @@ gtk_theming_engine_get_font (GtkThemingEngine *engine,
g_return_val_if_fail (GTK_IS_THEMING_ENGINE (engine), NULL);
G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
priv = engine->priv;
return gtk_style_context_get_font (priv->context, state);
G_GNUC_END_IGNORE_DEPRECATIONS;
}
/* GtkThemingModule */
-1
View File
@@ -249,7 +249,6 @@ void gtk_theming_engine_get_margin (GtkThemingEngine *engine,
GtkStateFlags state,
GtkBorder *margin);
GDK_DEPRECATED_IN_3_8_FOR(gtk_theming_engine_get)
const PangoFontDescription * gtk_theming_engine_get_font (GtkThemingEngine *engine,
GtkStateFlags state);
+8 -2
View File
@@ -3336,12 +3336,18 @@ calculate_max_homogeneous_pixels (GtkWidget *widget)
{
PangoContext *context;
PangoFontMetrics *metrics;
const PangoFontDescription *font_desc;
GtkStyleContext *style_context;
GtkStateFlags state;
gint char_width;
context = gtk_widget_get_pango_context (widget);
style_context = gtk_widget_get_style_context (widget);
state = gtk_widget_get_state_flags (widget);
metrics = pango_context_get_metrics (context,
pango_context_get_font_description (context),
font_desc = gtk_style_context_get_font (style_context, state);
metrics = pango_context_get_metrics (context, font_desc,
pango_context_get_language (context));
char_width = pango_font_metrics_get_approximate_char_width (metrics);
pango_font_metrics_unref (metrics);
+19 -11
View File
@@ -3758,14 +3758,10 @@ gtk_tree_model_filter_set_root (GtkTreeModelFilter *filter,
{
g_return_if_fail (GTK_IS_TREE_MODEL_FILTER (filter));
if (root)
{
filter->priv->virtual_root = gtk_tree_path_copy (root);
gtk_tree_model_filter_ref_path (filter, filter->priv->virtual_root);
filter->priv->virtual_root_deleted = FALSE;
}
else
if (!root)
filter->priv->virtual_root = NULL;
else
filter->priv->virtual_root = gtk_tree_path_copy (root);
}
/* public API */
@@ -3786,12 +3782,24 @@ GtkTreeModel *
gtk_tree_model_filter_new (GtkTreeModel *child_model,
GtkTreePath *root)
{
GtkTreeModel *retval;
GtkTreeModelFilter *filter;
g_return_val_if_fail (GTK_IS_TREE_MODEL (child_model), NULL);
return g_object_new (GTK_TYPE_TREE_MODEL_FILTER,
"child-model", child_model,
"virtual-root", root,
NULL);
retval = g_object_new (GTK_TYPE_TREE_MODEL_FILTER,
"child-model", child_model,
"virtual-root", root,
NULL);
filter = GTK_TREE_MODEL_FILTER (retval);
if (filter->priv->virtual_root)
{
gtk_tree_model_filter_ref_path (filter, filter->priv->virtual_root);
filter->priv->virtual_root_deleted = FALSE;
}
return retval;
}
/**
+1 -1
View File
@@ -54,7 +54,7 @@
*
* One of the important things to remember when monitoring the selection of
* a view is that the #GtkTreeSelection::changed signal is mostly a hint.
* That is, it may only emit one signal when a range of rows is selected.
* That is,it may only emit one signal when a range of rows is selected.
* Additionally, it may on occasion emit a #GtkTreeSelection::changed signal
* when nothing has happened (mostly as a result of programmers calling
* select_row on an already selected row).
+8 -14
View File
@@ -48,7 +48,6 @@
#include "gtkwidgetprivate.h"
#include "gtkentryprivate.h"
#include "gtkstylecontextprivate.h"
#include "gtkcssstylepropertyprivate.h"
#include "gtktypebuiltins.h"
#include "gtkmain.h"
#include "gtksettings.h"
@@ -8462,8 +8461,6 @@ gtk_tree_view_style_updated (GtkWidget *widget)
GtkTreeView *tree_view = GTK_TREE_VIEW (widget);
GList *list;
GtkTreeViewColumn *column;
GtkStyleContext *style_context;
const GtkBitmask *changes;
GTK_WIDGET_CLASS (gtk_tree_view_parent_class)->style_updated (widget);
@@ -8475,19 +8472,16 @@ gtk_tree_view_style_updated (GtkWidget *widget)
gtk_tree_view_set_enable_tree_lines (tree_view, tree_view->priv->tree_lines_enabled);
}
style_context = gtk_widget_get_style_context (widget);
changes = _gtk_style_context_get_changes (style_context);
if (changes == NULL || _gtk_css_style_property_changes_affect_size (changes))
for (list = tree_view->priv->columns; list; list = list->next)
{
for (list = tree_view->priv->columns; list; list = list->next)
{
column = list->data;
_gtk_tree_view_column_cell_set_dirty (column, TRUE);
}
tree_view->priv->fixed_height = -1;
_gtk_rbtree_mark_invalid (tree_view->priv->tree);
column = list->data;
_gtk_tree_view_column_cell_set_dirty (column, TRUE);
}
tree_view->priv->fixed_height = -1;
_gtk_rbtree_mark_invalid (tree_view->priv->tree);
gtk_widget_queue_resize (widget);
}
+1
View File
@@ -241,6 +241,7 @@ gtk_viewport_init (GtkViewport *viewport)
gtk_widget_set_has_window (GTK_WIDGET (viewport), TRUE);
gtk_widget_set_redraw_on_allocate (GTK_WIDGET (viewport), FALSE);
gtk_container_set_resize_mode (GTK_CONTAINER (viewport), GTK_RESIZE_QUEUE);
priv->shadow_type = GTK_SHADOW_IN;
priv->view_window = NULL;
+18 -14
View File
@@ -4654,7 +4654,9 @@ gtk_widget_queue_resize (GtkWidget *widget)
if (gtk_widget_get_realized (widget))
gtk_widget_queue_draw (widget);
_gtk_size_group_queue_resize (widget, 0);
if (gtk_widget_get_visible (widget) ||
widget->priv->have_size_groups)
_gtk_size_group_queue_resize (widget, 0);
}
/**
@@ -8705,8 +8707,12 @@ gtk_widget_peek_pango_context (GtkWidget *widget)
* by gtk_widget_create_pango_context(), this context is owned by
* the widget (it can be used until the screen for the widget changes
* or the widget is removed from its toplevel), and will be updated to
* match any changes to the widget's attributes. This can be tracked
* by using the #GtkWidget::screen-changed signal on the widget.
* match any changes to the widget's attributes.
*
* If you create and keep a #PangoLayout using this context, you must
* deal with changes to the context by calling pango_layout_context_changed()
* on the layout in response to the #GtkWidget::style-updated and
* #GtkWidget::direction-changed signals for the widget.
*
* Return value: (transfer none): the #PangoContext for the widget.
**/
@@ -8734,21 +8740,18 @@ static void
update_pango_context (GtkWidget *widget,
PangoContext *context)
{
PangoFontDescription *font_desc;
const PangoFontDescription *font_desc;
GtkStyleContext *style_context;
style_context = gtk_widget_get_style_context (widget);
gtk_style_context_get (style_context,
gtk_widget_get_state_flags (widget),
"font", &font_desc,
NULL);
font_desc = gtk_style_context_get_font (style_context,
gtk_widget_get_state_flags (widget));
pango_context_set_font_description (context, font_desc);
pango_context_set_base_dir (context,
gtk_widget_get_direction (widget) == GTK_TEXT_DIR_LTR ?
PANGO_DIRECTION_LTR : PANGO_DIRECTION_RTL);
pango_font_description_free (font_desc);
}
static void
@@ -8817,10 +8820,11 @@ gtk_widget_create_pango_context (GtkWidget *widget)
* font description, and base direction for drawing text for
* this widget.
*
* If you keep a #PangoLayout created in this way around, you need
* to re-create it when the widget #PangoContext is replaced.
* This can be tracked by using the #GtkWidget::screen-changed signal
* on the widget.
* If you keep a #PangoLayout created in this way around, in order to
* notify the layout of changes to the base direction or font of this
* widget, you must call pango_layout_context_changed() in response to
* the #GtkWidget::style-updated and #GtkWidget::direction-changed signals
* for the widget.
*
* Return value: (transfer full): the new #PangoLayout
**/
@@ -42,8 +42,6 @@
</key>
<key name='show-hidden' type='b'>
<default>false</default>
<summary>Whether to show hidden files</summary>
<description>If set to true, then hidden files are shown by default. Hidden files are either dotfiles, listed in the folder's .hidden file or backup files ending with a tilde (~).</description>
</key>
<key name='expand-folders' type='b'>
<default>false</default>
-51
View File
@@ -2715,56 +2715,6 @@ test_level_bar (void)
g_object_unref (builder);
}
static GObject *external_object = NULL, *external_object_swapped = NULL;
void
on_button_clicked (GtkButton *button, GObject *data)
{
external_object = data;
}
void
on_button_clicked_swapped (GObject *data, GtkButton *button)
{
external_object_swapped = data;
}
static void
test_expose_object (void)
{
GtkBuilder *builder;
GError *error = NULL;
GtkWidget *image;
GObject *obj;
const gchar buffer[] =
"<interface>"
" <object class=\"GtkButton\" id=\"button\">"
" <property name=\"image\">external_image</property>"
" <signal name=\"clicked\" handler=\"on_button_clicked\" object=\"builder\" swapped=\"no\"/>"
" <signal name=\"clicked\" handler=\"on_button_clicked_swapped\" object=\"builder\"/>"
" </object>"
"</interface>";
image = gtk_image_new ();
builder = gtk_builder_new ();
gtk_builder_expose_object (builder, "external_image", G_OBJECT (image));
gtk_builder_expose_object (builder, "builder", G_OBJECT (builder));
gtk_builder_add_from_string (builder, buffer, -1, &error);
g_assert (error == NULL);
obj = gtk_builder_get_object (builder, "button");
g_assert (GTK_IS_BUTTON (obj));
g_assert (gtk_button_get_image (GTK_BUTTON (obj)) == image);
/* Connect signals and fake clicked event */
gtk_builder_connect_signals (builder, NULL);
gtk_button_clicked (GTK_BUTTON (obj));
g_assert (external_object == G_OBJECT (builder));
g_assert (external_object_swapped == G_OBJECT (builder));
}
int
main (int argc, char **argv)
{
@@ -2813,7 +2763,6 @@ main (int argc, char **argv)
g_test_add_func ("/Builder/MessageDialog", test_message_dialog);
g_test_add_func ("/Builder/GMenu", test_gmenu);
g_test_add_func ("/Builder/LevelBar", test_level_bar);
g_test_add_func ("/Builder/Expose Object", test_expose_object);
return g_test_run();
}
+14 -14
View File
@@ -279,7 +279,7 @@ gtk_im_context_ime_set_client_window (GtkIMContext *context,
HIMC himc;
HWND hwnd;
hwnd = gdk_win32_window_get_impl_hwnd (client_window);
hwnd = GDK_WINDOW_HWND (client_window);
himc = ImmGetContext (hwnd);
if (himc)
{
@@ -349,7 +349,7 @@ gtk_im_context_ime_reset (GtkIMContext *context)
if (!context_ime->client_window)
return;
hwnd = gdk_win32_window_get_impl_hwnd (context_ime->client_window);
hwnd = GDK_WINDOW_HWND (context_ime->client_window);
himc = ImmGetContext (hwnd);
if (!himc)
return;
@@ -380,7 +380,7 @@ get_utf8_preedit_string (GtkIMContextIME *context_ime, gint *pos_ret)
if (!context_ime->client_window)
return g_strdup ("");
hwnd = gdk_win32_window_get_impl_hwnd (context_ime->client_window);
hwnd = GDK_WINDOW_HWND (context_ime->client_window);
himc = ImmGetContext (hwnd);
if (!himc)
return g_strdup ("");
@@ -441,7 +441,7 @@ get_pango_attr_list (GtkIMContextIME *context_ime, const gchar *utf8str)
if (!context_ime->client_window)
return attrs;
hwnd = gdk_win32_window_get_impl_hwnd (context_ime->client_window);
hwnd = GDK_WINDOW_HWND (context_ime->client_window);
himc = ImmGetContext (hwnd);
if (!himc)
return attrs;
@@ -579,7 +579,7 @@ gtk_im_context_ime_focus_in (GtkIMContext *context)
/* swtich current context */
context_ime->focus = TRUE;
hwnd = gdk_win32_window_get_impl_hwnd (context_ime->client_window);
hwnd = GDK_WINDOW_HWND (context_ime->client_window);
himc = ImmGetContext (hwnd);
if (!himc)
return;
@@ -589,7 +589,7 @@ gtk_im_context_ime_focus_in (GtkIMContext *context)
{
gdk_window_add_filter (toplevel,
gtk_im_context_ime_message_filter, context_ime);
top_hwnd = gdk_win32_window_get_impl_hwnd (toplevel);
top_hwnd = GDK_WINDOW_HWND (toplevel);
context_ime->toplevel = toplevel;
}
@@ -652,7 +652,7 @@ gtk_im_context_ime_focus_out (GtkIMContext *context)
/* swtich current context */
context_ime->focus = FALSE;
hwnd = gdk_win32_window_get_impl_hwnd (context_ime->client_window);
hwnd = GDK_WINDOW_HWND (context_ime->client_window);
himc = ImmGetContext (hwnd);
if (!himc)
return;
@@ -714,7 +714,7 @@ gtk_im_context_ime_focus_out (GtkIMContext *context)
gdk_window_remove_filter (toplevel,
gtk_im_context_ime_message_filter,
context_ime);
top_hwnd = gdk_win32_window_get_impl_hwnd (toplevel);
top_hwnd = GDK_WINDOW_HWND (toplevel);
context_ime->toplevel = NULL;
}
@@ -748,7 +748,7 @@ gtk_im_context_ime_set_cursor_location (GtkIMContext *context,
if (!context_ime->client_window)
return;
hwnd = gdk_win32_window_get_impl_hwnd (context_ime->client_window);
hwnd = GDK_WINDOW_HWND (context_ime->client_window);
himc = ImmGetContext (hwnd);
if (!himc)
return;
@@ -778,7 +778,7 @@ gtk_im_context_ime_set_use_preedit (GtkIMContext *context,
HWND hwnd;
HIMC himc;
hwnd = gdk_win32_window_get_impl_hwnd (context_ime->client_window);
hwnd = GDK_WINDOW_HWND (context_ime->client_window);
himc = ImmGetContext (hwnd);
if (!himc)
return;
@@ -814,7 +814,7 @@ gtk_im_context_ime_set_preedit_font (GtkIMContext *context)
if (!GTK_IS_WIDGET (widget))
return;
hwnd = gdk_win32_window_get_impl_hwnd (context_ime->client_window);
hwnd = GDK_WINDOW_HWND (context_ime->client_window);
himc = ImmGetContext (hwnd);
if (!himc)
return;
@@ -921,7 +921,7 @@ gtk_im_context_ime_message_filter (GdkXEvent *xevent,
if (!context_ime->focus)
return retval;
hwnd = gdk_win32_window_get_impl_hwnd (context_ime->client_window);
hwnd = GDK_WINDOW_HWND (context_ime->client_window);
himc = ImmGetContext (hwnd);
if (!himc)
return retval;
@@ -941,8 +941,8 @@ gtk_im_context_ime_message_filter (GdkXEvent *xevent,
RECT rc;
hwnd_top =
gdk_win32_window_get_impl_hwnd (gdk_window_get_toplevel
(context_ime->client_window));
GDK_WINDOW_HWND (gdk_window_get_toplevel
(context_ime->client_window));
GetWindowRect (hwnd_top, &rc);
pt.x = wx;
pt.y = wy;
-1
View File
@@ -97,7 +97,6 @@ all-no:
$(srcdir)/$(GETTEXT_PACKAGE).pot: $(POTFILES)
$(XGETTEXT) --default-domain=$(GETTEXT_PACKAGE) --directory=$(top_srcdir) \
--add-comments --keyword --keyword=P_ \
--from-code=utf-8 \
--files-from=$(srcdir)/POTFILES.in \
&& test ! -f $(GETTEXT_PACKAGE).po \
|| ( rm -f $(srcdir)/$(GETTEXT_PACKAGE).pot \
+433 -450
View File
File diff suppressed because it is too large Load Diff
+586 -605
View File
File diff suppressed because it is too large Load Diff
+724 -743
View File
File diff suppressed because it is too large Load Diff
+755 -771
View File
File diff suppressed because it is too large Load Diff
-1
View File
@@ -95,7 +95,6 @@ all-no:
$(srcdir)/$(GETTEXT_PACKAGE).pot: $(POTFILES)
$(XGETTEXT) --default-domain=$(GETTEXT_PACKAGE) --directory=$(top_srcdir) \
--add-comments --keyword=_ --keyword=N_ --keyword=C_:1c,2 --keyword=NC_:1c,2 \
--from-code=utf-8 \
--keyword=g_dngettext:2,3 \
--flag=g_dngettext:2:pass-c-format \
--flag=g_strdup_printf:1:c-format \
+208 -222
View File
File diff suppressed because it is too large Load Diff
+164 -175
View File
@@ -15,18 +15,18 @@
msgid ""
msgstr ""
"Project-Id-Version: gtk+.master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk"
"%2b&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2012-12-04 18:57+0000\n"
"PO-Revision-Date: 2012-12-05 19:08+0100\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%"
"2b&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2012-10-29 08:39+0000\n"
"PO-Revision-Date: 2012-10-29 11:53+0100\n"
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: Español; Castellano <gnome-es-list@gnome.org>\n"
"Language-Team: Español <gnome-es-list@gnome.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Gtranslator 2.91.5\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
#: ../gdk/gdk.c:155
#, c-format
@@ -701,19 +701,19 @@ msgstr "Página web"
msgid "About %s"
msgstr "Acerca de %s"
#: ../gtk/gtkaboutdialog.c:2401
#: ../gtk/gtkaboutdialog.c:2399
msgid "Created by"
msgstr "Creado por"
#: ../gtk/gtkaboutdialog.c:2404
#: ../gtk/gtkaboutdialog.c:2402
msgid "Documented by"
msgstr "Documentado por"
#: ../gtk/gtkaboutdialog.c:2414
#: ../gtk/gtkaboutdialog.c:2412
msgid "Translated by"
msgstr "Traducido por"
#: ../gtk/gtkaboutdialog.c:2419
#: ../gtk/gtkaboutdialog.c:2417
msgid "Artwork by"
msgstr "Arte por"
@@ -788,8 +788,7 @@ msgid "Backslash"
msgstr "Contrabarra"
#: ../gtk/gtkappchooserbutton.c:290
#| msgid "Other application..."
msgid "Other application…"
msgid "Other application..."
msgstr "Otra aplicación…"
#: ../gtk/gtkappchooserdialog.c:137
@@ -867,7 +866,7 @@ msgstr "Aplicaciones relacionadas"
msgid "Other Applications"
msgstr "Otras aplicaciones"
#: ../gtk/gtkapplication.c:1557
#: ../gtk/gtkapplication.c:1558
#, c-format
msgid ""
"%s cannot quit at this time:\n"
@@ -1032,8 +1031,7 @@ msgstr "No válido"
#. * acelerator.
#.
#: ../gtk/gtkcellrendereraccel.c:416 ../gtk/gtkcellrendereraccel.c:747
#| msgid "New accelerator..."
msgid "New accelerator…"
msgid "New accelerator..."
msgstr "Acelerador nuevo…"
#: ../gtk/gtkcellrendererprogress.c:372 ../gtk/gtkcellrendererprogress.c:462
@@ -1336,8 +1334,7 @@ msgid "mm"
msgstr "mm"
#: ../gtk/gtkcustompaperunixdialog.c:605
#| msgid "Margins from Printer..."
msgid "Margins from Printer…"
msgid "Margins from Printer..."
msgstr "Márgenes de la impresora…"
#: ../gtk/gtkcustompaperunixdialog.c:771
@@ -1377,15 +1374,15 @@ msgstr "_Derecho:"
msgid "Paper Margins"
msgstr "Márgenes del papel"
#: ../gtk/gtkentry.c:9143 ../gtk/gtktextview.c:8583
#: ../gtk/gtkentry.c:9140 ../gtk/gtktextview.c:8583
msgid "Input _Methods"
msgstr "_Métodos de entrada"
#: ../gtk/gtkentry.c:9157 ../gtk/gtktextview.c:8597
#: ../gtk/gtkentry.c:9154 ../gtk/gtktextview.c:8597
msgid "_Insert Unicode Control Character"
msgstr "_Insertar un carácter de control Unicode"
#: ../gtk/gtkentry.c:10110
#: ../gtk/gtkentry.c:10107
msgid "Caps Lock is on"
msgstr "Bloq Mayús está activado"
@@ -1434,7 +1431,7 @@ msgstr "Bloq Mayús está activado"
msgid "Select a File"
msgstr "Seleccionar un archivo"
#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1820
#: ../gtk/gtkfilechooserbutton.c:105 ../gtk/gtkfilechooserdefault.c:1819
msgid "Desktop"
msgstr "Escritorio"
@@ -1444,31 +1441,30 @@ msgid "(None)"
msgstr "(Ninguno)"
#: ../gtk/gtkfilechooserbutton.c:2046
#| msgid "Other..."
msgid "Other…"
msgstr "Otro…"
msgid "Other..."
msgstr "Otra…"
#: ../gtk/gtkfilechooserdefault.c:152
msgid "Type name of new folder"
msgstr "Teclee el nombre de la carpeta nueva"
#: ../gtk/gtkfilechooserdefault.c:971
#: ../gtk/gtkfilechooserdefault.c:970
msgid "Could not retrieve information about the file"
msgstr "No se pudo obtener la información acerca del archivo"
#: ../gtk/gtkfilechooserdefault.c:982
#: ../gtk/gtkfilechooserdefault.c:981
msgid "Could not add a bookmark"
msgstr "No se pudo añadir un marcador"
#: ../gtk/gtkfilechooserdefault.c:993
#: ../gtk/gtkfilechooserdefault.c:992
msgid "Could not remove bookmark"
msgstr "No se pudo quitar el marcador"
#: ../gtk/gtkfilechooserdefault.c:1004
#: ../gtk/gtkfilechooserdefault.c:1003
msgid "The folder could not be created"
msgstr "No se pudo crear la carpeta"
#: ../gtk/gtkfilechooserdefault.c:1017
#: ../gtk/gtkfilechooserdefault.c:1016
msgid ""
"The folder could not be created, as a file with the same name already "
"exists. Try using a different name for the folder, or rename the file first."
@@ -1476,16 +1472,16 @@ msgstr ""
"No se pudo crear la carpeta, debido a que ya existe un archivo con el mismo "
"nombre. Intente usar un nombre distinto o renombre el archivo primero."
#: ../gtk/gtkfilechooserdefault.c:1031
#: ../gtk/gtkfilechooserdefault.c:1030
msgid "You need to choose a valid filename."
msgstr "Debe elegir un nombre de archivo válido."
#: ../gtk/gtkfilechooserdefault.c:1034
#: ../gtk/gtkfilechooserdefault.c:1033
#, c-format
msgid "Cannot create a file under %s as it is not a folder"
msgstr "No se puede crear un archivo bajo %s ya que no es una carpeta"
#: ../gtk/gtkfilechooserdefault.c:1046
#: ../gtk/gtkfilechooserdefault.c:1045
msgid ""
"You may only select folders. The item that you selected is not a folder; "
"try using a different item."
@@ -1493,11 +1489,11 @@ msgstr ""
"Sólo puede seleccionar carpetas. El elemento que ha seleccionado no es una "
"carpeta; intente seleccionar un elemento diferente."
#: ../gtk/gtkfilechooserdefault.c:1056
#: ../gtk/gtkfilechooserdefault.c:1055
msgid "Invalid file name"
msgstr "Nombre de archivo no válido"
#: ../gtk/gtkfilechooserdefault.c:1066
#: ../gtk/gtkfilechooserdefault.c:1065
msgid "The folder contents could not be displayed"
msgstr "No se pudo mostrar el contenido de la carpeta"
@@ -1505,143 +1501,142 @@ msgstr "No se pudo mostrar el contenido de la carpeta"
#. * is a hostname. Nautilus and the panel contain the same string
#. * to translate.
#.
#: ../gtk/gtkfilechooserdefault.c:1592
#: ../gtk/gtkfilechooserdefault.c:1591
#, c-format
msgid "%1$s on %2$s"
msgstr "%1$s en %2$s"
#: ../gtk/gtkfilechooserdefault.c:1741
#: ../gtk/gtkfilechooserdefault.c:1740
msgid "Search"
msgstr "Buscar"
#: ../gtk/gtkfilechooserdefault.c:1765 ../gtk/gtkfilechooserdefault.c:4991
#: ../gtk/gtkfilechooserdefault.c:1764 ../gtk/gtkfilechooserdefault.c:4990
msgid "Recently Used"
msgstr "Usados recientemente"
#: ../gtk/gtkfilechooserdefault.c:2364
#: ../gtk/gtkfilechooserdefault.c:2363
msgid "Select which types of files are shown"
msgstr "Seleccionar qué tipos de archivos se muestran"
#: ../gtk/gtkfilechooserdefault.c:2723
#: ../gtk/gtkfilechooserdefault.c:2722
#, c-format
msgid "Add the folder '%s' to the bookmarks"
msgstr "Añadir la carpeta «%s» a los marcadores"
#: ../gtk/gtkfilechooserdefault.c:2767
#: ../gtk/gtkfilechooserdefault.c:2766
#, c-format
msgid "Add the current folder to the bookmarks"
msgstr "Añadir la carpeta actual a los marcadores"
#: ../gtk/gtkfilechooserdefault.c:2769
#: ../gtk/gtkfilechooserdefault.c:2768
#, c-format
msgid "Add the selected folders to the bookmarks"
msgstr "Añadir las carpetas seleccionadas a los marcadores"
#: ../gtk/gtkfilechooserdefault.c:2807
#: ../gtk/gtkfilechooserdefault.c:2806
#, c-format
msgid "Remove the bookmark '%s'"
msgstr "Quitar el marcador «%s»"
#: ../gtk/gtkfilechooserdefault.c:2809
#: ../gtk/gtkfilechooserdefault.c:2808
#, c-format
msgid "Bookmark '%s' cannot be removed"
msgstr "No se puede quitar el marcador «%s»"
#: ../gtk/gtkfilechooserdefault.c:2816 ../gtk/gtkfilechooserdefault.c:3702
#: ../gtk/gtkfilechooserdefault.c:2815 ../gtk/gtkfilechooserdefault.c:3701
msgid "Remove the selected bookmark"
msgstr "Quitar el marcador seleccionado"
#: ../gtk/gtkfilechooserdefault.c:3380
#: ../gtk/gtkfilechooserdefault.c:3379
msgid "Remove"
msgstr "Quitar"
#: ../gtk/gtkfilechooserdefault.c:3389
#| msgid "_Rename"
msgid "Rename…"
#: ../gtk/gtkfilechooserdefault.c:3388
msgid "Rename..."
msgstr "Renombrar…"
#. Accessible object name for the file chooser's shortcuts pane
#: ../gtk/gtkfilechooserdefault.c:3553
#: ../gtk/gtkfilechooserdefault.c:3552
msgid "Places"
msgstr "Lugares"
#. Column header for the file chooser's shortcuts pane
#: ../gtk/gtkfilechooserdefault.c:3610
#: ../gtk/gtkfilechooserdefault.c:3609
msgid "_Places"
msgstr "_Lugares"
#: ../gtk/gtkfilechooserdefault.c:3690
#: ../gtk/gtkfilechooserdefault.c:3689
msgid "Add the selected folder to the Bookmarks"
msgstr "Añade la carpeta seleccionada a los marcadores"
#: ../gtk/gtkfilechooserdefault.c:3951
#: ../gtk/gtkfilechooserdefault.c:3950
msgid "Could not select file"
msgstr "No se pudo seleccionar el archivo"
#: ../gtk/gtkfilechooserdefault.c:4176
#: ../gtk/gtkfilechooserdefault.c:4175
msgid "_Visit this file"
msgstr "_Visitar este archivo"
#: ../gtk/gtkfilechooserdefault.c:4179
#: ../gtk/gtkfilechooserdefault.c:4178
msgid "_Copy files location"
msgstr "_Copiar la ubicación del archivo"
#: ../gtk/gtkfilechooserdefault.c:4182
#: ../gtk/gtkfilechooserdefault.c:4181
msgid "_Add to Bookmarks"
msgstr "_Añadir a los marcadores"
#: ../gtk/gtkfilechooserdefault.c:4189
#: ../gtk/gtkfilechooserdefault.c:4188
msgid "Show _Hidden Files"
msgstr "Mostrar archivos _ocultos"
#: ../gtk/gtkfilechooserdefault.c:4192
#: ../gtk/gtkfilechooserdefault.c:4191
msgid "Show _Size Column"
msgstr "Mostrar columna de _tamaño"
#: ../gtk/gtkfilechooserdefault.c:4417
#: ../gtk/gtkfilechooserdefault.c:4416
msgid "Files"
msgstr "Archivos"
#: ../gtk/gtkfilechooserdefault.c:4468
#: ../gtk/gtkfilechooserdefault.c:4467
msgid "Name"
msgstr "Nombre"
#: ../gtk/gtkfilechooserdefault.c:4491
#: ../gtk/gtkfilechooserdefault.c:4490
msgid "Size"
msgstr "Tamaño"
#: ../gtk/gtkfilechooserdefault.c:4505
#: ../gtk/gtkfilechooserdefault.c:4504
msgid "Modified"
msgstr "Modificado"
#. Label
#: ../gtk/gtkfilechooserdefault.c:4598
#: ../gtk/gtkfilechooserdefault.c:4597
msgid "_Name:"
msgstr "_Nombre:"
#: ../gtk/gtkfilechooserdefault.c:4829
#: ../gtk/gtkfilechooserdefault.c:4828
msgid "Type a file name"
msgstr "Teclee un nombre de archivo"
#: ../gtk/gtkfilechooserdefault.c:4876 ../gtk/gtkfilechooserdefault.c:4887
#: ../gtk/gtkfilechooserdefault.c:4875 ../gtk/gtkfilechooserdefault.c:4886
msgid "Please select a folder below"
msgstr "Seleccionar una carpeta a continuación"
#: ../gtk/gtkfilechooserdefault.c:4882
#: ../gtk/gtkfilechooserdefault.c:4881
msgid "Please type a file name"
msgstr "Escriba un nombre de archivo"
# C en conflicto con Cancelar
#. Create Folder
#: ../gtk/gtkfilechooserdefault.c:4953
#: ../gtk/gtkfilechooserdefault.c:4952
msgid "Create Fo_lder"
msgstr "Crear car_peta"
#: ../gtk/gtkfilechooserdefault.c:5001
#: ../gtk/gtkfilechooserdefault.c:5000
msgid "Search:"
msgstr "Buscar:"
#: ../gtk/gtkfilechooserdefault.c:5052
#: ../gtk/gtkfilechooserdefault.c:5051
msgid "_Location:"
msgstr "_Lugar:"
@@ -1654,63 +1649,63 @@ msgstr "Guardar _en la carpeta:"
msgid "Create in _folder:"
msgstr "Crear en la _carpeta:"
#: ../gtk/gtkfilechooserdefault.c:6597
#: ../gtk/gtkfilechooserdefault.c:6591
#, c-format
msgid "Could not read the contents of %s"
msgstr "No se pudo leer el contenido de %s"
#: ../gtk/gtkfilechooserdefault.c:6601
#: ../gtk/gtkfilechooserdefault.c:6595
msgid "Could not read the contents of the folder"
msgstr "No se pudo leer el contenido del la carpeta"
#: ../gtk/gtkfilechooserdefault.c:6694 ../gtk/gtkfilechooserdefault.c:6762
#: ../gtk/gtkfilechooserdefault.c:6942
#: ../gtk/gtkfilechooserdefault.c:6688 ../gtk/gtkfilechooserdefault.c:6756
#: ../gtk/gtkfilechooserdefault.c:6936
msgid "Unknown"
msgstr "Desconocido"
#: ../gtk/gtkfilechooserdefault.c:6709
#: ../gtk/gtkfilechooserdefault.c:6703
msgid "%H:%M"
msgstr "%H:%M"
#: ../gtk/gtkfilechooserdefault.c:6711
#: ../gtk/gtkfilechooserdefault.c:6705
msgid "Yesterday at %H:%M"
msgstr "Ayer a las %H:%M"
#: ../gtk/gtkfilechooserdefault.c:7413
#: ../gtk/gtkfilechooserdefault.c:7407
msgid "Cannot change to folder because it is not local"
msgstr "No se pudo cambiar a la carpeta porque no es local"
#: ../gtk/gtkfilechooserdefault.c:8020 ../gtk/gtkfilechooserdefault.c:8041
#: ../gtk/gtkfilechooserdefault.c:8011 ../gtk/gtkfilechooserdefault.c:8032
#, c-format
msgid "Shortcut %s already exists"
msgstr "La combinación %s ya existe"
#: ../gtk/gtkfilechooserdefault.c:8131
#: ../gtk/gtkfilechooserdefault.c:8122
#, c-format
msgid "Shortcut %s does not exist"
msgstr "La combinación %s no existe"
#: ../gtk/gtkfilechooserdefault.c:8377 ../gtk/gtkprintunixdialog.c:548
#: ../gtk/gtkfilechooserdefault.c:8368 ../gtk/gtkprintunixdialog.c:548
#, c-format
msgid "A file named \"%s\" already exists. Do you want to replace it?"
msgstr "Ya existe un archivo llamado «%s». ¿Quiere reemplazarlo?"
#: ../gtk/gtkfilechooserdefault.c:8380 ../gtk/gtkprintunixdialog.c:552
#: ../gtk/gtkfilechooserdefault.c:8371 ../gtk/gtkprintunixdialog.c:552
#, c-format
msgid ""
"The file already exists in \"%s\". Replacing it will overwrite its contents."
msgstr ""
"El archivo ya existe en «%s». Si lo reemplaza sobreescribirá su contenido."
#: ../gtk/gtkfilechooserdefault.c:8385 ../gtk/gtkprintunixdialog.c:559
#: ../gtk/gtkfilechooserdefault.c:8376 ../gtk/gtkprintunixdialog.c:559
msgid "_Replace"
msgstr "_Reemplazar"
#: ../gtk/gtkfilechooserdefault.c:9192
#: ../gtk/gtkfilechooserdefault.c:9183
msgid "Could not start the search process"
msgstr "No se ha podido iniciar el proceso de búsqueda"
#: ../gtk/gtkfilechooserdefault.c:9193
#: ../gtk/gtkfilechooserdefault.c:9184
msgid ""
"The program was not able to create a connection to the indexer daemon. "
"Please make sure it is running."
@@ -1718,11 +1713,11 @@ msgstr ""
"El programa no fue capaz de crear una conexión con el demonio indexador. Por "
"favor asegúrese de que se está ejecutando."
#: ../gtk/gtkfilechooserdefault.c:9207
#: ../gtk/gtkfilechooserdefault.c:9198
msgid "Could not send the search request"
msgstr "No se ha podido enviar la petición de búsqueda"
#: ../gtk/gtkfilechooserdefault.c:9817
#: ../gtk/gtkfilechooserdefault.c:9808
#, c-format
msgid "Could not mount %s"
msgstr "No se pudo montar %s"
@@ -1762,12 +1757,12 @@ msgstr "Buscar nombre de tipografía"
msgid "Font Family"
msgstr "Familia tipográfica"
#: ../gtk/gtkicontheme.c:1931
#: ../gtk/gtkicontheme.c:1627
#, c-format
msgid "Icon '%s' not present in theme"
msgstr "El icono «%s» no está presente en el tema"
#: ../gtk/gtkicontheme.c:3462
#: ../gtk/gtkicontheme.c:3137
msgid "Failed to load icon"
msgstr "No se pudo cargar el icono"
@@ -1793,23 +1788,22 @@ msgid "System (%s)"
msgstr "Sistema (%s)"
#. Open Link
#: ../gtk/gtklabel.c:6183
#: ../gtk/gtklabel.c:6224
msgid "_Open Link"
msgstr "_Abrir enlace"
#. Copy Link Address
#: ../gtk/gtklabel.c:6195
#: ../gtk/gtklabel.c:6236
msgid "Copy _Link Address"
msgstr "Copiar la dirección del _enlace"
#: ../gtk/gtk-launch.c:71
#| msgid "APPLICATION [URI...] - launch an APPLICATION with URI."
msgid "APPLICATION [URI…] — launch an APPLICATION with URI."
msgstr "APLICACIÓN [URI…]: lanzar una APLICACIÓN con URI."
#: ../gtk/gtk-launch.c:73
msgid "APPLICATION [URI...] - launch an APPLICATION with URI."
msgstr "APLICACION [URI...]: lanzar una APLICACION con URI."
#. Translators: this message will appear after the usage string
#. and before the list of options.
#: ../gtk/gtk-launch.c:75
#: ../gtk/gtk-launch.c:77
msgid ""
"Launch specified application by its desktop file info\n"
"optionally passing list of URIs as arguments."
@@ -1817,38 +1811,38 @@ msgstr ""
"Lanzar la aplicación indicada por su archivo .desktop\n"
"pasándole opcionalmente la lista de URI como argumentos."
#: ../gtk/gtk-launch.c:87
#: ../gtk/gtk-launch.c:89
#, c-format
msgid "Error parsing commandline options: %s\n"
msgstr "Error al analizar las opciones de la línea de comandos: %s\n"
#: ../gtk/gtk-launch.c:89 ../gtk/gtk-launch.c:102
#: ../gtk/gtk-launch.c:91 ../gtk/gtk-launch.c:104
#, c-format
msgid "Try \"%s --help\" for more information."
msgstr "Intente «%s --help» para obtener más información."
#. Translators: the %s is the program name. This error message
#. means the user is calling gtk-launch without any argument.
#: ../gtk/gtk-launch.c:100
#: ../gtk/gtk-launch.c:102
#, c-format
msgid "%s: missing application name"
msgstr "%s: falta el nombre de la aplicación"
#: ../gtk/gtk-launch.c:121
#: ../gtk/gtk-launch.c:123
#, c-format
msgid "Creating AppInfo from id not supported on non unix operating systems"
msgstr "No se soporta crear AppInfo desde ID en sistemas operativos no UNIX"
#. Translators: the first %s is the program name, the second one
#. is the application name.
#: ../gtk/gtk-launch.c:129
#: ../gtk/gtk-launch.c:131
#, c-format
msgid "%s: no such application %s"
msgstr "%s:no existe la aplicación %s"
#. Translators: the first %s is the program name, the second one
#. is the error message.
#: ../gtk/gtk-launch.c:147
#: ../gtk/gtk-launch.c:149
#, c-format
msgid "%s: error launching application: %s\n"
msgstr "%s: error al lanzar la aplicación: %s\n"
@@ -1927,16 +1921,16 @@ msgstr "Opciones de depuración GTK+ a quitar"
msgid "default:LTR"
msgstr "default:LTR"
#: ../gtk/gtkmain.c:769
#: ../gtk/gtkmain.c:772
#, c-format
msgid "Cannot open display: %s"
msgstr "No se puede abrir el visor: %s"
#: ../gtk/gtkmain.c:835
#: ../gtk/gtkmain.c:838
msgid "GTK+ Options"
msgstr "Opciones GTK+"
#: ../gtk/gtkmain.c:835
#: ../gtk/gtkmain.c:838
msgid "Show GTK+ Options"
msgstr "Mostrar opciones GTK+"
@@ -2025,7 +2019,7 @@ msgstr "Shell Z"
msgid "Cannot end process with PID %d: %s"
msgstr "No se puede finalizar el proceso con PID %d: %s"
#: ../gtk/gtknotebook.c:5069 ../gtk/gtknotebook.c:7723
#: ../gtk/gtknotebook.c:5067 ../gtk/gtknotebook.c:7721
#, c-format
msgid "Page %u"
msgstr "Página %u"
@@ -2068,9 +2062,8 @@ msgstr ""
" Inferior: %s %s"
#: ../gtk/gtkpagesetupunixdialog.c:845 ../gtk/gtkprintunixdialog.c:3329
#| msgid "Manage Custom Sizes"
msgid "Manage Custom Sizes…"
msgstr "Gestionar tamaños personalizados…"
msgid "Manage Custom Sizes..."
msgstr "Gestión de tamaños personalizados…"
#: ../gtk/gtkpagesetupunixdialog.c:896
msgid "_Format for:"
@@ -2252,8 +2245,7 @@ msgid "Getting printer information failed"
msgstr "Falló la obtención de la información de la impresora"
#: ../gtk/gtkprintunixdialog.c:1916
#| msgid "Getting printer information..."
msgid "Getting printer information…"
msgid "Getting printer information..."
msgstr "Obteniendo la información de la impresora…"
#: ../gtk/gtkprintunixdialog.c:2184
@@ -2330,42 +2322,42 @@ msgstr "General"
#. * multiple pages on a sheet when printing
#.
#: ../gtk/gtkprintunixdialog.c:3058
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3692
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3686
msgid "Left to right, top to bottom"
msgstr "De izquierda a derecha, de arriba a abajo"
#: ../gtk/gtkprintunixdialog.c:3058
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3692
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3686
msgid "Left to right, bottom to top"
msgstr "De izquierda a derecha, de abajo a arriba"
#: ../gtk/gtkprintunixdialog.c:3059
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3693
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687
msgid "Right to left, top to bottom"
msgstr "De derecha a izquierda, de arriba a abajo"
#: ../gtk/gtkprintunixdialog.c:3059
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3693
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687
msgid "Right to left, bottom to top"
msgstr "De derecha a izquierda, de abajo a arriba"
#: ../gtk/gtkprintunixdialog.c:3060
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3694
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3688
msgid "Top to bottom, left to right"
msgstr "De arriba a abajo, de izquierda a derecha"
#: ../gtk/gtkprintunixdialog.c:3060
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3694
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3688
msgid "Top to bottom, right to left"
msgstr "De arriba a abajo, de derecha a izquierda"
#: ../gtk/gtkprintunixdialog.c:3061
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3695
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3689
msgid "Bottom to top, left to right"
msgstr "De abajo a arriba, de izquierda a derecha"
#: ../gtk/gtkprintunixdialog.c:3061
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3695
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3689
msgid "Bottom to top, right to left"
msgstr "De abajo a arriba, de derecha a izquierda"
@@ -2373,7 +2365,7 @@ msgstr "De abajo a arriba, de derecha a izquierda"
#. * dialog that controls in what order multiple pages are arranged
#.
#: ../gtk/gtkprintunixdialog.c:3065 ../gtk/gtkprintunixdialog.c:3078
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3772
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3766
msgid "Page Ordering"
msgstr "Orden de las hojas"
@@ -4547,117 +4539,117 @@ msgstr "Pausado; rechazando trabajos"
msgid "Rejecting Jobs"
msgstr "Rechazando trabajos"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2915
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2909
msgid "Two Sided"
msgstr "Dos caras"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2916
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2910
msgid "Paper Type"
msgstr "Tipo de papel"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2917
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2911
msgid "Paper Source"
msgstr "Fuente de papel"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2918
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2912
msgid "Output Tray"
msgstr "Bandeja de salida"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2919
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2913
msgid "Resolution"
msgstr "Resolución"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2920
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2914
msgid "GhostScript pre-filtering"
msgstr "Prefiltrado GhostScript"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2929
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2923
msgid "One Sided"
msgstr "Una cara"
#. Translators: this is an option of "Two Sided"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2931
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2925
msgid "Long Edge (Standard)"
msgstr "Margen largo (estándar)"
#. Translators: this is an option of "Two Sided"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2933
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2927
msgid "Short Edge (Flip)"
msgstr "Margen corto (girar)"
#. Translators: this is an option of "Paper Source"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2935
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2937
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2945
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2929
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2931
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2939
msgid "Auto Select"
msgstr "Autoseleccionar"
#. Translators: this is an option of "Paper Source"
#. Translators: this is an option of "Resolution"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2939
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2933
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2935
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2937
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2941
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2943
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2947
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3435
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3429
msgid "Printer Default"
msgstr "Predeterminado de la impresora"
#. Translators: this is an option of "GhostScript"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2949
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2943
msgid "Embed GhostScript fonts only"
msgstr "Sólo empotrar tipografías GhostScript"
#. Translators: this is an option of "GhostScript"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2951
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2945
msgid "Convert to PS level 1"
msgstr "Convertir a PS de nivel 1"
#. Translators: this is an option of "GhostScript"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2953
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2947
msgid "Convert to PS level 2"
msgstr "Convertir a PS de nivel 2"
#. Translators: this is an option of "GhostScript"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2955
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2949
msgid "No pre-filtering"
msgstr "Sin prefiltrado"
#. 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:2964
#: ../modules/printbackends/cups/gtkprintbackendcups.c:2958
msgid "Miscellaneous"
msgstr "Miscelánea"
#. Translators: These strings name the possible values of the
#. * job priority option in the print dialog
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681
msgid "Urgent"
msgstr "Urgente"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681
msgid "High"
msgstr "Alta"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681
msgid "Medium"
msgstr "Media"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3681
msgid "Low"
msgstr "Baja"
#. Translators, this string is used to label the job priority option
#. * in the print dialog
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3717
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3711
msgid "Job Priority"
msgstr "Prioridad del trabajo"
#. Translators, this string is used to label the billing info entry
#. * in the print dialog
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3728
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3722
msgid "Billing Info"
msgstr "Información de facturación"
@@ -4665,52 +4657,52 @@ msgstr "Información de facturación"
#. Translators, these strings are names for various 'standard' cover
#. * pages that the printing system may support.
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737
msgid "None"
msgstr "Ninguna"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737
msgid "Classified"
msgstr "Clasificado"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737
msgid "Confidential"
msgstr "Confidencial"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737
msgid "Secret"
msgstr "Secreto"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737
msgid "Standard"
msgstr "Estándar"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737
msgid "Top Secret"
msgstr "Alto secreto"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3743
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737
msgid "Unclassified"
msgstr "Desclasificado"
#. Translators, this string is used to label the pages-per-sheet option
#. * in the print dialog
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3754
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3748
msgid "Pages per Sheet"
msgstr "Páginas por hoja"
#. Translators, this is the label used for the option in the print
#. * dialog that controls the front cover page.
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3814
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3808
msgid "Before"
msgstr "Antes"
#. Translators, this is the label used for the option in the print
#. * dialog that controls the back cover page.
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3829
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3823
msgid "After"
msgstr "Después"
@@ -4718,14 +4710,14 @@ msgstr "Después"
#. * a print job is printed. Possible values are 'now', a specified time,
#. * or 'on hold'
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3849
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3843
msgid "Print at"
msgstr "Imprimir en"
#. 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:3860
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3854
msgid "Print at time"
msgstr "Imprimir a la hora"
@@ -4733,17 +4725,17 @@ msgstr "Imprimir a la hora"
#. * size. The two placeholders are replaced with the width and height
#. * in points. E.g: "Custom 230.4x142.9"
#.
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3895
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3889
#, c-format
msgid "Custom %sx%s"
msgstr "Personalizado %sx%s"
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3976
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3970
msgid "Printer Profile"
msgstr "Perfil de la impresora"
#. TRANSLATORS: this is when color profile information is unavailable
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3983
#: ../modules/printbackends/cups/gtkprintbackendcups.c:3977
msgid "Unavailable"
msgstr "No disponible"
@@ -4843,12 +4835,6 @@ msgstr "salida-de-prueba.%s"
msgid "Print to Test Printer"
msgstr "Imprimir a la impresora de prueba"
#~ msgid "Rename..."
#~ msgstr "Renombrar…"
#~ msgid "Manage Custom Sizes..."
#~ msgstr "Gestión de tamaños personalizados…"
#~ msgid "Select a folder"
#~ msgstr "Seleccionar una carpeta"
@@ -4928,8 +4914,8 @@ msgstr "Imprimir a la impresora de prueba"
#~ msgid "different idatas found for symlinked '%s' and '%s'\n"
#~ msgstr ""
#~ "se encontraron diferentes idatas para el «%s» enlazado simbólicamente y "
#~ "«%s»\n"
#~ "se encontraron diferentes idatas para el «%s» enlazado simbólicamente y «%"
#~ "s»\n"
#~ msgid "_Add"
#~ msgstr "_Añadir"
@@ -5041,8 +5027,8 @@ msgstr "Imprimir a la impresora de prueba"
#~ "Internal error: Image loader module '%s' failed to complete an operation, "
#~ "but didn't give a reason for the failure"
#~ msgstr ""
#~ "Error interno: El módulo de carga de imágenes «%s» ha fallado al "
#~ "completar una operación, pero no ha dado ninguna razón del fallo"
#~ "Error interno: El módulo de carga de imágenes «%s» ha fallado al completar "
#~ "una operación, pero no ha dado ninguna razón del fallo"
#~ msgid "Incremental loading of image type '%s' is not supported"
#~ msgstr ""
@@ -5245,8 +5231,8 @@ msgstr "Imprimir a la impresora de prueba"
#~ "JPEG quality must be a value between 0 and 100; value '%s' could not be "
#~ "parsed."
#~ msgstr ""
#~ "La calidad de un JPEG debe ser un valor entre 0 y 100; el valor «%s» no "
#~ "se puede interpretar."
#~ "La calidad de un JPEG debe ser un valor entre 0 y 100; el valor «%s» no se "
#~ "puede interpretar."
#~ msgid ""
#~ "JPEG quality must be a value between 0 and 100; value '%d' is not allowed."
@@ -5343,15 +5329,15 @@ msgstr "Imprimir a la impresora de prueba"
#~ "PNG compression level must be a value between 0 and 9; value '%s' could "
#~ "not be parsed."
#~ msgstr ""
#~ "El nivel de compresión PNG debe ser un valor entre 0 y 9; el valor «%s» "
#~ "no se puede interpretar."
#~ "El nivel de compresión PNG debe ser un valor entre 0 y 9; el valor «%s» no "
#~ "se puede interpretar."
#~ msgid ""
#~ "PNG compression level must be a value between 0 and 9; value '%d' is not "
#~ "allowed."
#~ msgstr ""
#~ "El nivel de compresión PNG debe ser un valor entre 0 y 9; el valor «%d» "
#~ "no está permitido."
#~ "El nivel de compresión PNG debe ser un valor entre 0 y 9; el valor «%d» no "
#~ "está permitido."
#~ msgid ""
#~ "Value for PNG text chunk %s cannot be converted to ISO-8859-1 encoding."
@@ -5711,6 +5697,9 @@ msgstr "Imprimir a la impresora de prueba"
#~ msgid "Rename file \"%s\" to:"
#~ msgstr "Renombrar archivo «%s» a:"
#~ msgid "_Rename"
#~ msgstr "_Renombrar"
#~ msgid ""
#~ "The filename \"%s\" couldn't be converted to UTF-8. (try setting the "
#~ "environment variable G_FILENAME_ENCODING): %s"
+268 -277
View File
File diff suppressed because it is too large Load Diff
+206 -213
View File
File diff suppressed because it is too large Load Diff
+6 -6
View File
@@ -73,7 +73,7 @@ window1
"menu"
parent: combo1
index: 0
state: enabled sensitive
state: enabled selectable sensitive
toolkit: gtk
<AtkComponent>
layer: popup
@@ -95,7 +95,7 @@ window1
"menu"
parent: combo2
index: 0
state: enabled sensitive
state: enabled selectable sensitive
toolkit: gtk
<AtkComponent>
layer: popup
@@ -105,7 +105,7 @@ window1
"text"
parent: combo2
index: 1
state: editable enabled focusable sensitive single-line visible
state: editable enabled focusable selectable sensitive single-line visible
toolkit: gtk
<AtkComponent>
layer: widget
@@ -157,7 +157,7 @@ window1
"menu"
parent: combo3
index: 0
state: enabled sensitive
state: enabled selectable sensitive
toolkit: gtk
<AtkComponent>
layer: popup
@@ -179,7 +179,7 @@ window1
"menu"
parent: combo4
index: 0
state: enabled sensitive
state: enabled selectable sensitive
toolkit: gtk
<AtkComponent>
layer: popup
@@ -189,7 +189,7 @@ window1
"text"
parent: combo4
index: 1
state: editable enabled focusable sensitive single-line visible
state: editable enabled focusable selectable sensitive single-line visible
toolkit: gtk
<AtkComponent>
layer: widget
+3 -3
View File
@@ -55,7 +55,7 @@ window1
"menu"
parent: unnamed-GtkComboBoxAccessible-1
index: 0
state: enabled sensitive
state: enabled selectable sensitive
toolkit: gtk
<AtkComponent>
layer: popup
@@ -125,7 +125,7 @@ window1
"menu item"
parent: unnamed-GtkMenuAccessible-2
index: 5
name: Other
name: Other...
state: enabled selectable sensitive visible
toolkit: gtk
<AtkComponent>
@@ -179,7 +179,7 @@ window1
"menu"
parent: button1
index: 0
state: enabled sensitive
state: enabled selectable sensitive
toolkit: gtk
<AtkComponent>
layer: popup
+3 -3
View File
@@ -152,9 +152,9 @@ EXTRA_DIST += \
entry-progress-coloring.css \
entry-progress-coloring.ref.ui \
entry-progress-coloring.ui \
font-sizes-names.css \
font-sizes-names.ref.ui \
font-sizes-names.ui \
font-size-names.css \
font-size-names.ref.ui \
font-size-names.ui \
green-20x20.png \
grid-empty-with-spacing.ref.ui \
grid-empty-with-spacing.ui \
+2 -3
View File
@@ -396,7 +396,7 @@ create_calendar(void)
GtkSizeGroup *size;
GtkStyleContext *context;
PangoFontDescription *font_desc;
const PangoFontDescription *font_desc;
gchar *font;
gint i;
@@ -476,11 +476,10 @@ create_calendar(void)
size = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
context = gtk_widget_get_style_context (calendar);
gtk_style_context_get (context, GTK_STATE_FLAG_NORMAL, &font_desc, NULL);
font_desc = gtk_style_context_get_font (context, GTK_STATE_FLAG_NORMAL);
font = pango_font_description_to_string (font_desc);
button = gtk_font_button_new_with_font (font);
g_free (font);
pango_font_description_free (font_desc);
g_signal_connect (button, "font-set",
G_CALLBACK(calendar_select_font),