Compare commits

...

64 Commits

Author SHA1 Message Date
Benjamin Otte 14562498ea sizegroup: Remove GtkQueueResizeFlags
They were only used with geometry widgets.
2015-03-24 04:45:38 +01:00
Benjamin Otte 6141b3f9f2 widget: Remove _gtk_widget_override_size_request()
The function was only used by the geometry widget.
2015-03-24 04:37:26 +01:00
Benjamin Otte caadc20ebc window: Ignore geometry widget
Ignore the geometry widget passed to gtk_window_set_geometry_hints().
Usind the widget itself was a hack that complicates the size request
machinery.

It is also incorrect in that it doesn't respect height-for-width.

Last but not least, it was only used by gnome-terminal and that
application can easily work without it.
2015-03-24 04:34:08 +01:00
Benjamin Otte fdc620cd56 cssnode: Clear widget path more aggressively
When recomputing CSS, we need a correct widget path in the fallback mode
where we're still using widget paths.
So we need to invalidate it everytime it actually changes, and not just
when emitting the style-updated signal.

Fixes css-match-regions reftest.
2015-03-24 04:23:07 +01:00
Changwoo Ryu 59579576c6 Updated Korean translation 2015-03-24 09:54:24 +09:00
Niels Nesse 641e280311 x11/gl: Removing some more legacy GL calls
They are not required any more.

http://bugzilla.gnome.org/show_bug.cgi?id=746668
2015-03-23 22:16:34 +00:00
Emmanuele Bassi 6bd7526ee7 x11/gl: Do not call glEnable/glDisable with GL_TEXTURE_2D
These are fixed pipeline functions, and Mesa will warn (if debugging
messages are enabled). At best, they are poinless calls.
2015-03-23 22:03:00 +00:00
Inaki Larranaga Murgoitio aaff396e48 Updated Basque language 2015-03-23 22:23:30 +01:00
Inaki Larranaga Murgoitio d6f6a52c00 Updated Basque language 2015-03-23 22:22:39 +01:00
Inaki Larranaga Murgoitio 84d5f0e64d Updated Basque language 2015-03-23 22:19:10 +01:00
Piotr Drąg c88ec37037 Fix a minor typo in translatable string 2015-03-23 17:35:41 +01:00
Piotr Drąg 68ff82cbf2 Updated Polish translation 2015-03-23 17:33:38 +01:00
Piotr Drąg 81776ea3f1 Updated POTFILES.in and POTFILES.skip 2015-03-23 17:25:55 +01:00
Marek Černocký 6b1ca8b887 Updated Czech translation 2015-03-23 16:15:57 +01:00
Matthias Clasen a08ee01c64 csd: Fix an oversight for popups
After the recent rework of client-side shadow code, menus,
tooltips and similar popups were ending up with solid decorations.
Fix this oversight.
2015-03-23 10:41:10 -04:00
Balázs Úr 83b6423409 Updated Hungarian translation 2015-03-23 14:40:53 +00:00
Yosef Or Boczko 51a434ad4b Update properties Hebrew translation 2015-03-23 14:53:57 +02:00
Yosef Or Boczko 1abb28ec65 Updated Hebrew translation 2015-03-23 14:52:42 +02:00
Tom Tryfonidis 66a7636b63 Updated Greek translations 2015-03-23 11:59:24 +02:00
Milo Casagrande 72afa5c2ee Updated Italian translation 2015-03-23 07:29:55 +00:00
Milo Casagrande 6cadef7ff6 Updated Italian translation 2015-03-23 07:25:57 +00:00
Matthias Clasen eea16f03f5 Stop using GDK_POINTER_MOTION_HINT_MASK in widgets
It is deprecated and no longer needed, and,as observed in
https://bugzilla.gnome.org/show_bug.cgi?id=746253 it
interferes with turning off event compression.
2015-03-22 17:33:38 -04:00
Matthias Clasen 6f829d4450 Silence another compiler warning
Again, our habit of comparing enum values against -1.
2015-03-22 15:20:43 -04:00
Matthias Clasen 70f6faf0f1 Don't return G_TYPE_INVALID as a pointer
Use NULL for g_return_val_if_fail checks if the function returns
a pointer. Pointed out by clang.
2015-03-22 15:19:59 -04:00
Matthias Clasen c723eba135 text view: Avoid clang compiler warnings
Again, our habit to use -1 as an unset value for enum types.
2015-03-22 15:19:17 -04:00
Matthias Clasen f00f2fdf0d Remove a redundant const
const gchar const is still just const gchar, unless there's
indirections in between.
2015-03-22 15:18:35 -04:00
Matthias Clasen a14bb5578f css: Silence a clang warning
Clang complains that this check can never be true. Since this
is a argument range check which we do to catch bad input,
convince clang to not complain instead of taking it out.
2015-03-22 15:17:27 -04:00
Matthias Clasen fb573e58f1 Remove a pointless comparison
Comparing an unsigned value against < 0 is not going to succeed.
Pointed out by clang.
2015-03-22 15:16:14 -04:00
Matthias Clasen 2250cd87eb paper size: Don't use abs() on floats
Use fabs() instead. Pointed out by clang.
2015-03-22 15:15:42 -04:00
Matthias Clasen ddf7501acd More of the same
A similar case in GtkIconHelper. Here we were confusing ourselves,
and compared a icon_size against -1, although the variable is
never set to -1.
2015-03-22 15:14:42 -04:00
Matthias Clasen 543eae0d76 Avoid some clang compiler warnings
Avoid some compiler warnings from clang in deprecated code.
Most of these are around our habit of using -1 as an 'unset'
value for enumerations.
2015-03-22 15:13:32 -04:00
Matthias Clasen fbbb3d1816 Fix some clang warnings
It complains about double const, and it is right.
2015-03-22 14:40:57 -04:00
Matthias Clasen 2a444e30f7 Make the blur code compile with clang
clang complains that the expression involving sqrt() is not
constant, and thus refuses to accept it as a case label. So,
use precomputed values instead.

https://bugzilla.gnome.org/show_bug.cgi?id=746468
2015-03-22 13:49:24 -04:00
Matthias Clasen 4ef0c34b65 Fix the build 2015-03-22 11:55:33 -04:00
Matthias Clasen db28b8c600 tooltip: Minor cleanup
Preserve the symmetry in gtk_tooltip_set_last_window.
2015-03-22 11:47:23 -04:00
Matthias Clasen a17d6290e4 search bar: Clean up weak pointer handling
Break out a setter that manages the weak pointer, and
use it in finalize. This also fixes a bug where we were
forgetting to disconnect the right signal handler in
some cases.
2015-03-22 11:46:16 -04:00
Matthias Clasen b55aa154e6 mount operation: Minor formatting cleanup
The pattern for g_object_add_weak_pointer calls is to
have the same expression in both arguments.
2015-03-22 11:45:19 -04:00
Matthias Clasen 03417cf864 menu button: Minor cleanup
Preserve the symmetry in set_align_widget_pointer.
2015-03-22 11:44:37 -04:00
Matthias Clasen c0c1774b01 Clean up some unfortunate formatting
"if (...) do" just looks wrong.
2015-03-22 11:44:00 -04:00
Matthias Clasen 37774928bd dnd: Introduce a helper to manage the weak pointer
Introduce a setter that takes care of updating the weak ref
whenever we assign info->widget. Just a cleanup of the previous patch.
2015-03-22 11:16:29 -04:00
Tom Hughes e7eaca9534 DND: Clean up weak pointers when they are no longer needed
Failure to do so leads to memory corruption down the road.
This was introduced in commit 650c25e06c.

https://bugzilla.gnome.org/show_bug.cgi?id=746602
2015-03-22 11:16:29 -04:00
Christian Kirbach ec32d8dade Updated German translation 2015-03-22 11:07:20 +00:00
Jordi Mas 1c007e4196 Upload Catalan translation 2015-03-22 04:18:27 -04:00
Matthias Clasen ca41bb440d Add an index for new api to the docs 2015-03-22 02:11:03 -04:00
Matthias Clasen 5c5464a469 radio-menu-item: Add join_group()
The other Radio* widgets have this convenience method that removes the
memory management of the opaque GSList used to handle the group from the
API usable from language bindings (especially the ones not based on
introspection).

This commit adds gtk_radio_menu_item_join_group().

https://bugzilla.gnome.org/show_bug.cgi?id=671362
2015-03-22 02:10:38 -04:00
Matthias Clasen ad05d84897 radio-menu-item: Allow arguments to be NULL
Some arguments, like the group and the label of a RadioMenuItem, can be
NULL: the RadioMenuItem has all the code to deal with them. The argument
validation is too strict, though, for instance doing:

  return_if_fail (IS_RADIO_MENU_ITEM (foo))

  if (foo != NULL)
    set_foo (foo)

Which is obviously incorrect.

This commit also modifies the annotations of the API, to ensure that
language bindings do the right thing.

https://bugzilla.gnome.org/show_bug.cgi?id=671362
2015-03-22 02:10:38 -04:00
Emmanuele Bassi 955aed9227 radio-menu-item: Handle a !NULL group
If we create a RadioMenuItem without a group, and then set a group, the
menu item will still be set as active, which means an inconsistently
drawn radio menu item - as the RadioMenuItem will set the active flag on
itself, but then it won't reset it when it gets a new group.

https://bugzilla.gnome.org/show_bug.cgi?id=671362
2015-03-22 02:10:37 -04:00
Matthias Clasen c16acff3ea Start 3.17 development
Bump the version to 3.17.0 and add version macros.
2015-03-22 02:10:23 -04:00
Olivier Fourdan 03213b9509 Improve CSD decorations without a compositor
It turned out that using mwm hints to instruct wms to
create border-only decorations is not really working
universally. So, instead of doing this, render a solid
frame without shadow on the client-side to handle this
case.

https://bugzilla.gnome.org/show_bug.cgi?id=746222

Signed-off-by: Olivier Fourdan <fourdan@xfce.org>
2015-03-22 01:34:37 -04:00
Matthias Clasen bae97a4c6b image: Optimize non-resize changes
When the image content is changed, only queue a resize
if the size is actually changing, otherwise just a
redraw. Suggested by Owen in

https://bugzilla.gnome.org/show_bug.cgi?id=613833
2015-03-21 22:40:46 -04:00
Christian Hergert 7bb3d9557f a11y: handle atk race condition where widget has been destroyed
If the widget has been destroyed since a DBus message had been sent,
we could be in a condition that the widget pointer exists but it does
not have a window.

This bails as if the widget didn't exist if there is no available
GdkWindow.

We also set the extents to 0 to be defensive since this is a vfunc
implementation.

https://bugzilla.gnome.org/show_bug.cgi?id=746586
2015-03-21 20:05:08 -04:00
Muhammet Kara 9e9c0a133e Updated Turkish translation 2015-03-21 21:25:38 +00:00
Alexander Larsson 8e032622c8 box-shadow: For top/bottom and left/right parts, repeat a single line
Since these part really are the same in all of the x or y direction
and we don't blur in that direction we can just blur one line and
repeat it during drawing.

https://bugzilla.gnome.org/show_bug.cgi?id=746468
2015-03-21 21:39:15 +01:00
Alexander Larsson 967cb56275 shadow-box: Blur only horizontally/vertically for the non-corner parts
There is no need to e.g. blur in the x-direction for the top part
of a box shadow. Also, there is no need to extend the mask in the
non-blurred direction.

https://bugzilla.gnome.org/show_bug.cgi?id=746468
2015-03-21 21:31:49 +01:00
Alexander Larsson 9c2a16fb3b shadow-box: Bail out blur early if radius is 1px
For radius 1px the current implementation rounds down to a 1 px box
filter which is a no-op. Rather than creating useless shadow masks
in this case we bail out blurring early.

Another alternative would be to make radius 1px round up to a 2 px box
filter, but that would change the rendering of Adwaita which is probably
not a great idea this late in the cycle.

https://bugzilla.gnome.org/show_bug.cgi?id=746468
2015-03-21 21:07:26 +01:00
Alexander Larsson d0dc1f52cc gtkcairoblur: Unroll inner loop for common radius values
This unrolls the inner blur loop for radius 1-10, allowing
the compiler to use a divide-by-constant operation instead
of a generic division.

Here is the blur-performance output before:

Radius  1: 124.95 msec, 32.01 kpixels/msec:
Radius  2: 117.27 msec, 34.11 kpixels/msec:
Radius  3: 123.57 msec, 32.37 kpixels/msec:
Radius  4: 118.17 msec, 33.85 kpixels/msec:
Radius  5: 119.32 msec, 33.52 kpixels/msec:
Radius  6: 124.17 msec, 32.21 kpixels/msec:
Radius  7: 121.04 msec, 33.05 kpixels/msec:
Radius  8: 130.64 msec, 30.62 kpixels/msec:
Radius  9: 119.47 msec, 33.48 kpixels/msec:
Radius 10: 117.95 msec, 33.91 kpixels/msec:
Radius 11: 122.38 msec, 32.68 kpixels/msec:
Radius 12: 121.92 msec, 32.81 kpixels/msec:
Radius 13: 125.45 msec, 31.89 kpixels/msec:
Radius 14: 121.63 msec, 32.89 kpixels/msec:
Radius 15: 120.18 msec, 33.28 kpixels/msec:

And after:

Radius  1: 42.26 msec, 94.65 kpixels/msec:
Radius  2: 59.15 msec, 67.62 kpixels/msec:
Radius  3: 60.29 msec, 66.35 kpixels/msec:
Radius  4: 64.53 msec, 61.99 kpixels/msec:
Radius  5: 60.07 msec, 66.59 kpixels/msec:
Radius  6: 62.43 msec, 64.07 kpixels/msec:
Radius  7: 60.36 msec, 66.27 kpixels/msec:
Radius  8: 59.59 msec, 67.13 kpixels/msec:
Radius  9: 76.17 msec, 52.51 kpixels/msec:
Radius 10: 79.41 msec, 50.37 kpixels/msec:
Radius 11: 118.92 msec, 33.64 kpixels/msec:
Radius 12: 121.31 msec, 32.97 kpixels/msec:
Radius 13: 118.30 msec, 33.81 kpixels/msec:
Radius 14: 116.82 msec, 34.24 kpixels/msec:
Radius 15: 116.99 msec, 34.19 kpixels/msec:

I.e. almost double performance for the unrolled radius values.

https://bugzilla.gnome.org/show_bug.cgi?id=746468
2015-03-21 21:07:26 +01:00
Alexander Larsson ae21e08782 gtkcairoblur: Minor restructure
This just moves get_box_filter_size to the top and makes
it a macro (so it can be used as a constant later).

https://bugzilla.gnome.org/show_bug.cgi?id=746468
2015-03-21 20:59:57 +01:00
Alexander Larsson 9ba185b749 Add performance test for gtkcairoblur
This just creates a large cairo surface and times bluring it
at various values of radius.

https://bugzilla.gnome.org/show_bug.cgi?id=746468
2015-03-21 20:59:57 +01:00
hanniedu dd1af9bbdd Updated Dutch translation gtk and gtk-properties master 3.16 2015-03-21 18:25:17 +01:00
Matthias Clasen 8c8e6588dc HighContrast: Fix a typo
Commit 0a39d7d9 introduced a selected_bg_color with a missing $
in front of it.
2015-03-20 20:49:56 -04:00
Gábor Kelemen 4a2b44467b Updated Hungarian translation 2015-03-20 23:23:24 +00:00
Balázs Úr 5f52a2c8c9 Updated Hungarian translation 2015-03-20 22:57:03 +00:00
Matthias Clasen 40bb2a1616 reftests: Add a way to compare different runs
gtk-reftest already had an --output=DIR option to tell it where
to save all the resulting images. Now you can combine this with
the --compare-with=DIR option in a second run to make gtk-reftest
compare the .out.png files from the first run with the .out.png
files of the current run, instead of producing .ref.png files.

The intended use for this is to verify that changes do not affect
the generated output.
2015-03-20 16:42:04 -04:00
Rico Tzschichholz db8e6aa497 mir: Fix version annotation, the mir-backend is available since 3.16 2015-03-20 20:23:01 +01:00
81 changed files with 31012 additions and 29353 deletions
+2 -2
View File
@@ -9,8 +9,8 @@
# set GTK_BINARY_AGE and GTK_INTERFACE_AGE to 0.
m4_define([gtk_major_version], [3])
m4_define([gtk_minor_version], [15])
m4_define([gtk_micro_version], [12])
m4_define([gtk_minor_version], [17])
m4_define([gtk_micro_version], [0])
m4_define([gtk_interface_age], [0])
m4_define([gtk_binary_age],
[m4_eval(100 * gtk_minor_version + gtk_micro_version)])
+12 -9
View File
@@ -33,8 +33,7 @@ static GtkWidget *
create_menu (gint depth)
{
GtkWidget *menu;
GtkWidget *menuitem;
GSList *group;
GtkRadioMenuItem *last_item;
char buf[32];
int i, j;
@@ -42,20 +41,24 @@ create_menu (gint depth)
return NULL;
menu = gtk_menu_new ();
group = NULL;
last_item = NULL;
for (i = 0, j = 1; i < 5; i++, j++)
{
GtkWidget *menu_item;
sprintf (buf, "item %2d - %d", depth, j);
menuitem = gtk_radio_menu_item_new_with_label (group, buf);
group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menuitem));
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
gtk_widget_show (menuitem);
menu_item = gtk_radio_menu_item_new_with_label_from_widget (NULL, buf);
gtk_radio_menu_item_join_group (GTK_RADIO_MENU_ITEM (menu_item), last_item);
last_item = GTK_RADIO_MENU_ITEM (menu_item);
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
gtk_widget_show (menu_item);
if (i == 3)
gtk_widget_set_sensitive (menuitem, FALSE);
gtk_widget_set_sensitive (menu_item, FALSE);
gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), create_menu (depth - 1));
gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item), create_menu (depth - 1));
}
return menu;
+4
View File
@@ -467,6 +467,10 @@
<title>Index of new symbols in 3.16</title>
<xi:include href="xml/api-index-3.16.xml"><xi:fallback /></xi:include>
</index>
<index id="api-index-3-18" role="3.18">
<title>Index of new symbols in 3.18</title>
<xi:include href="xml/api-index-3.18.xml"><xi:fallback /></xi:include>
</index>
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
+1
View File
@@ -2771,6 +2771,7 @@ gtk_radio_menu_item_new_with_label_from_widget
gtk_radio_menu_item_new_with_mnemonic_from_widget
gtk_radio_menu_item_set_group
gtk_radio_menu_item_get_group
gtk_radio_menu_item_join_group
<SUBSECTION Standard>
GTK_RADIO_MENU_ITEM
GTK_IS_RADIO_MENU_ITEM
+4 -3
View File
@@ -52,7 +52,8 @@ get_vertex_type_name (int type)
}
static guint
create_shader (int type, const char const *code)
create_shader (int type,
const char *code)
{
guint shader;
int status;
@@ -85,8 +86,8 @@ create_shader (int type, const char const *code)
static void
make_program (GdkGLContextProgram *program,
const char const *vertex_shader_code,
const char const *fragment_shader_code)
const char *vertex_shader_code,
const char *fragment_shader_code)
{
guint vertex_shader, fragment_shader;
int status;
+24
View File
@@ -142,6 +142,16 @@
*/
#define GDK_VERSION_3_16 (G_ENCODE_VERSION (3, 16))
/**
* GDK_VERSION_3_18:
*
* A macro that evaluates to the 3.18 version of GDK, in a format
* that can be used by the C pre-processor.
*
* Since: 3.18
*/
#define GDK_VERSION_3_18 (G_ENCODE_VERSION (3, 18))
/* evaluates to the current stable version; for development cycles,
* this means the next stable target
*/
@@ -340,5 +350,19 @@
# define GDK_AVAILABLE_IN_3_16 _GDK_EXTERN
#endif
#if GDK_VERSION_MIN_REQUIRED >= GDK_VERSION_3_18
# define GDK_DEPRECATED_IN_3_18 GDK_DEPRECATED
# define GDK_DEPRECATED_IN_3_18_FOR(f) GDK_DEPRECATED_FOR(f)
#else
# define GDK_DEPRECATED_IN_3_18 _GDK_EXTERN
# define GDK_DEPRECATED_IN_3_18_FOR(f) _GDK_EXTERN
#endif
#if GDK_VERSION_MAX_ALLOWED < GDK_VERSION_3_18
# define GDK_AVAILABLE_IN_3_18 GDK_UNAVAILABLE(3, 18)
#else
# define GDK_AVAILABLE_IN_3_18 _GDK_EXTERN
#endif
#endif /* __GDK_VERSION_MACROS_H__ */
+3 -3
View File
@@ -30,13 +30,13 @@
#define GDK_TYPE_MIR_WINDOW (gdk_mir_window_get_type ())
#define GDK_IS_MIR_WINDOW(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_MIR_WINDOW))
GDK_AVAILABLE_IN_3_10
GDK_AVAILABLE_IN_3_16
GType gdk_mir_display_get_type (void);
GDK_AVAILABLE_IN_3_10
GDK_AVAILABLE_IN_3_16
MirConnection *gdk_mir_display_get_mir_connection (GdkDisplay *display);
GDK_AVAILABLE_IN_3_10
GDK_AVAILABLE_IN_3_16
GType gdk_mir_window_get_type (void);
GDK_AVAILABLE_IN_3_16
-2
View File
@@ -461,7 +461,6 @@ gdk_x11_gl_context_texture_from_surface (GdkGLContext *paint_context,
glGenTextures (1, &texture_id);
glBindTexture (target, texture_id);
glEnable (target);
glTexParameteri (target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri (target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
@@ -526,7 +525,6 @@ gdk_x11_gl_context_texture_from_surface (GdkGLContext *paint_context,
glXReleaseTexImageEXT (glx_pixmap->display, glx_pixmap->drawable,
GLX_FRONT_LEFT_EXT);
glDisable (target);
glDeleteTextures (1, &texture_id);
glx_pixmap_destroy(glx_pixmap);
+8
View File
@@ -509,6 +509,11 @@ gtk_text_view_accessible_get_character_extents (AtkText *text,
GdkWindow *window;
gint x_widget, y_widget, x_window, y_window;
*x = 0;
*y = 0;
*width = 0;
*height = 0;
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
if (widget == NULL)
return;
@@ -519,6 +524,9 @@ gtk_text_view_accessible_get_character_extents (AtkText *text,
gtk_text_view_get_iter_location (view, &iter, &rectangle);
window = gtk_text_view_get_window (view, GTK_TEXT_WINDOW_WIDGET);
if (window == NULL)
return;
gdk_window_get_origin (window, &x_widget, &y_widget);
*height = rectangle.height;
+2 -2
View File
@@ -1111,7 +1111,7 @@ gtk_font_selection_size_activate (GtkWidget *w,
const gchar *text;
text = gtk_entry_get_text (GTK_ENTRY (priv->size_entry));
new_size = MAX (0.1, atof (text) * PANGO_SCALE + 0.5);
new_size = (int) MAX (0.1, atof (text) * PANGO_SCALE + 0.5);
if (priv->size != new_size)
gtk_font_selection_set_size (fontsel, new_size);
@@ -1130,7 +1130,7 @@ gtk_font_selection_size_focus_out (GtkWidget *w,
const gchar *text;
text = gtk_entry_get_text (GTK_ENTRY (priv->size_entry));
new_size = MAX (0.1, atof (text) * PANGO_SCALE + 0.5);
new_size = (int) MAX (0.1, atof (text) * PANGO_SCALE + 0.5);
gtk_font_selection_set_size (fontsel, new_size);
+2 -2
View File
@@ -77,7 +77,7 @@ struct _GtkHandleBoxPrivate
{
/* Properties */
GtkPositionType handle_position;
GtkPositionType snap_edge;
gint snap_edge;
GtkShadowType shadow_type;
gboolean child_detached;
/* Properties */
@@ -1051,7 +1051,7 @@ gtk_handle_box_get_snap_edge (GtkHandleBox *handle_box)
{
g_return_val_if_fail (GTK_IS_HANDLE_BOX (handle_box), (GtkPositionType)-1);
return handle_box->priv->snap_edge;
return (GtkPositionType)handle_box->priv->snap_edge;
}
/**
+3 -3
View File
@@ -2945,17 +2945,17 @@ gtk_icon_factory_buildable_custom_tag_end (GtkBuildable *buildable,
}
if (source_data->icon_name)
gtk_icon_source_set_icon_name (icon_source, source_data->icon_name);
if (source_data->size != -1)
if ((gint)source_data->size != -1)
{
gtk_icon_source_set_size (icon_source, source_data->size);
gtk_icon_source_set_size_wildcarded (icon_source, FALSE);
}
if (source_data->direction != -1)
if ((gint)source_data->direction != -1)
{
gtk_icon_source_set_direction (icon_source, source_data->direction);
gtk_icon_source_set_direction_wildcarded (icon_source, FALSE);
}
if (source_data->state != -1)
if ((gint)source_data->state != -1)
{
gtk_icon_source_set_state (icon_source, source_data->state);
gtk_icon_source_set_state_wildcarded (icon_source, FALSE);
+1 -1
View File
@@ -95,7 +95,7 @@ real_add (const GtkStockItem *items,
gpointer old_key, old_value;
const GtkStockItem *item = &items[i];
if (replace_primary && item->modifier == PRIMARY_MODIFIER)
if (replace_primary && (guint)item->modifier == PRIMARY_MODIFIER)
{
item = gtk_stock_item_copy (item);
((GtkStockItem *)item)->modifier = (NON_STATIC_MASK |
+84 -43
View File
@@ -25,6 +25,32 @@
#include <math.h>
#include <string.h>
/*
* Gets the size for a single box blur.
*
* Much of this, the 3 * sqrt(2 * pi) / 4, is the known value for
* approximating a Gaussian using box blurs. This yields quite a good
* approximation for a Gaussian. For more details, see:
* http://www.w3.org/TR/SVG11/filters.html#feGaussianBlurElement
* https://bugzilla.mozilla.org/show_bug.cgi?id=590039#c19
*/
#define GAUSSIAN_SCALE_FACTOR ((3.0 * sqrt(2 * G_PI) / 4))
#define get_box_filter_size(radius) ((int)(GAUSSIAN_SCALE_FACTOR * (radius)))
/* Sadly, clang is picky about get_box_filter_size(2) not being a
* constant expression, thus we have to use precomputed values.
*/
#define BOX_FILTER_SIZE_2 3
#define BOX_FILTER_SIZE_3 5
#define BOX_FILTER_SIZE_4 7
#define BOX_FILTER_SIZE_5 9
#define BOX_FILTER_SIZE_6 11
#define BOX_FILTER_SIZE_7 13
#define BOX_FILTER_SIZE_8 15
#define BOX_FILTER_SIZE_9 16
#define BOX_FILTER_SIZE_10 18
/* This applies a single box blur pass to a horizontal range of pixels;
* since the box blur has the same weight for all pixels, we can
* implement an efficient sliding window algorithm where we add
@@ -60,18 +86,37 @@ blur_xspan (guchar *row,
* only divide down after all three passes. (SSE parallel implementation
* of the divide step is possible.)
*/
for (i = -d + offset; i < row_width + offset; i++)
#define BLUR_ROW_KERNEL(D) \
for (i = -(D) + offset; i < row_width + offset; i++) \
{ \
if (i >= 0 && i < row_width) \
sum += row[i]; \
\
if (i >= offset) \
{ \
if (i >= (D)) \
sum -= row[i - (D)]; \
\
tmp_buffer[i - offset] = (sum + (D) / 2) / (D); \
} \
} \
break;
/* We unroll the values for d for radius 2-10 to avoid a generic
* divide operation (not radius 1, because its a no-op) */
switch (d)
{
if (i >= 0 && i < row_width)
sum += row[i];
if (i >= offset)
{
if (i >= d)
sum -= row[i - d];
tmp_buffer[i - offset] = (sum + d / 2) / d;
}
case BOX_FILTER_SIZE_2: BLUR_ROW_KERNEL (BOX_FILTER_SIZE_2);
case BOX_FILTER_SIZE_3: BLUR_ROW_KERNEL (BOX_FILTER_SIZE_3);
case BOX_FILTER_SIZE_4: BLUR_ROW_KERNEL (BOX_FILTER_SIZE_4);
case BOX_FILTER_SIZE_5: BLUR_ROW_KERNEL (BOX_FILTER_SIZE_5);
case BOX_FILTER_SIZE_6: BLUR_ROW_KERNEL (BOX_FILTER_SIZE_6);
case BOX_FILTER_SIZE_7: BLUR_ROW_KERNEL (BOX_FILTER_SIZE_7);
case BOX_FILTER_SIZE_8: BLUR_ROW_KERNEL (BOX_FILTER_SIZE_8);
case BOX_FILTER_SIZE_9: BLUR_ROW_KERNEL (BOX_FILTER_SIZE_9);
case BOX_FILTER_SIZE_10: BLUR_ROW_KERNEL (BOX_FILTER_SIZE_10);
default: BLUR_ROW_KERNEL (d);
}
memcpy (row, tmp_buffer, row_width);
@@ -140,45 +185,35 @@ flip_buffer (guchar *dst_buffer,
#undef BLOCK_SIZE
}
/*
* Gets the size for a single box blur.
*
* Much of this, the 3 * sqrt(2 * pi) / 4, is the known value for
* approximating a Gaussian using box blurs. This yields quite a good
* approximation for a Gaussian. For more details, see:
* http://www.w3.org/TR/SVG11/filters.html#feGaussianBlurElement
* https://bugzilla.mozilla.org/show_bug.cgi?id=590039#c19
*/
#define GAUSSIAN_SCALE_FACTOR ((3.0 * sqrt(2 * G_PI) / 4))
static int
get_box_filter_size (double radius)
{
return GAUSSIAN_SCALE_FACTOR * radius;
}
static void
_boxblur (guchar *buffer,
int width,
int height,
int radius)
_boxblur (guchar *buffer,
int width,
int height,
int radius,
GtkBlurFlags flags)
{
guchar *flipped_buffer;
int d = get_box_filter_size (radius);
flipped_buffer = g_malloc (width * height);
/* Step 1: swap rows and columns */
flip_buffer (flipped_buffer, buffer, width, height);
if (flags & GTK_BLUR_Y)
{
/* Step 1: swap rows and columns */
flip_buffer (flipped_buffer, buffer, width, height);
/* Step 2: blur rows (really columns) */
blur_rows (flipped_buffer, buffer, height, width, d);
/* Step 2: blur rows (really columns) */
blur_rows (flipped_buffer, buffer, height, width, d);
/* Step 3: swap rows and columns */
flip_buffer (buffer, flipped_buffer, height, width);
/* Step 3: swap rows and columns */
flip_buffer (buffer, flipped_buffer, height, width);
}
/* Step 4: blur rows */
blur_rows (buffer, flipped_buffer, width, height, d);
if (flags & GTK_BLUR_X)
{
/* Step 4: blur rows */
blur_rows (buffer, flipped_buffer, width, height, d);
}
g_free (flipped_buffer);
}
@@ -192,7 +227,8 @@ _boxblur (guchar *buffer,
*/
void
_gtk_cairo_blur_surface (cairo_surface_t* surface,
double radius_d)
double radius_d,
GtkBlurFlags flags)
{
int radius = radius_d;
@@ -200,7 +236,12 @@ _gtk_cairo_blur_surface (cairo_surface_t* surface,
g_return_if_fail (cairo_surface_get_type (surface) == CAIRO_SURFACE_TYPE_IMAGE);
g_return_if_fail (cairo_image_surface_get_format (surface) == CAIRO_FORMAT_A8);
if (radius == 0)
/* The code doesn't actually do any blurring for radius 1, as it
* ends up with box filter size 1 */
if (radius <= 1)
return;
if ((flags & (GTK_BLUR_X|GTK_BLUR_Y)) == 0)
return;
/* Before we mess with the surface, execute any pending drawing. */
@@ -209,7 +250,7 @@ _gtk_cairo_blur_surface (cairo_surface_t* surface,
_boxblur (cairo_image_surface_get_data (surface),
cairo_image_surface_get_stride (surface),
cairo_image_surface_get_height (surface),
radius);
radius, flags);
/* Inform cairo we altered the surface contents. */
cairo_surface_mark_dirty (surface);
+9 -1
View File
@@ -29,8 +29,16 @@
G_BEGIN_DECLS
typedef enum {
GTK_BLUR_NONE = 0,
GTK_BLUR_X = 1<<0,
GTK_BLUR_Y = 1<<1,
GTK_BLUR_REPEAT = 1<<2
} GtkBlurFlags;
void _gtk_cairo_blur_surface (cairo_surface_t *surface,
double radius);
double radius,
GtkBlurFlags flags);;
int _gtk_cairo_blur_compute_pixels (double radius);
G_END_DECLS
+21 -41
View File
@@ -1941,34 +1941,6 @@ gtk_container_queue_resize_handler (GtkContainer *container)
}
}
static void
_gtk_container_queue_resize_internal (GtkContainer *container,
gboolean invalidate_only)
{
GtkWidget *widget;
g_return_if_fail (GTK_IS_CONTAINER (container));
widget = GTK_WIDGET (container);
do
{
_gtk_widget_set_alloc_needed (widget, TRUE);
_gtk_size_request_cache_clear (_gtk_widget_peek_request_cache (widget));
G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
if (GTK_IS_RESIZE_CONTAINER (widget))
break;
G_GNUC_END_IGNORE_DEPRECATIONS;
widget = gtk_widget_get_parent (widget);
}
while (widget);
if (widget && !invalidate_only)
gtk_container_queue_resize_handler (GTK_CONTAINER (widget));
}
void
_gtk_container_queue_restyle (GtkContainer *container)
{
@@ -1999,20 +1971,28 @@ _gtk_container_queue_restyle (GtkContainer *container)
void
_gtk_container_queue_resize (GtkContainer *container)
{
_gtk_container_queue_resize_internal (container, FALSE);
}
GtkWidget *widget;
/**
* _gtk_container_resize_invalidate:
* @container: a #GtkContainer
*
* Invalidates cached sizes like _gtk_container_queue_resize() but doesn't
* actually queue the resize container for resize.
*/
void
_gtk_container_resize_invalidate (GtkContainer *container)
{
_gtk_container_queue_resize_internal (container, TRUE);
g_return_if_fail (GTK_IS_CONTAINER (container));
widget = GTK_WIDGET (container);
do
{
_gtk_widget_set_alloc_needed (widget, TRUE);
_gtk_size_request_cache_clear (_gtk_widget_peek_request_cache (widget));
G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
if (GTK_IS_RESIZE_CONTAINER (widget))
break;
G_GNUC_END_IGNORE_DEPRECATIONS;
widget = gtk_widget_get_parent (widget);
}
while (widget);
if (widget)
gtk_container_queue_resize_handler (GTK_CONTAINER (widget));
}
void
-1
View File
@@ -28,7 +28,6 @@ G_BEGIN_DECLS
GList * _gtk_container_get_all_children (GtkContainer *container);
void _gtk_container_queue_resize (GtkContainer *container);
void _gtk_container_queue_restyle (GtkContainer *container);
void _gtk_container_resize_invalidate (GtkContainer *container);
void _gtk_container_clear_resize_widgets (GtkContainer *container);
gchar* _gtk_container_child_composite_name (GtkContainer *container,
GtkWidget *child);
+1 -1
View File
@@ -333,7 +333,7 @@ static GtkCssValue font_variant_values[] = {
GtkCssValue *
_gtk_css_font_variant_value_new (PangoVariant font_variant)
{
g_return_val_if_fail (font_variant < G_N_ELEMENTS (font_variant_values), NULL);
g_return_val_if_fail ((gint)font_variant < G_N_ELEMENTS (font_variant_values), NULL);
return _gtk_css_value_ref (&font_variant_values[font_variant]);
}
+61 -20
View File
@@ -297,7 +297,10 @@ static gboolean
needs_blur (const GtkCssValue *shadow)
{
double radius = _gtk_css_number_value_get (shadow->radius, 0);
if (radius == 0.0)
/* The code doesn't actually do any blurring for radius 1, as it
* ends up with box filter size 1 */
if (radius <= 1.0)
return FALSE;
return TRUE;
@@ -307,12 +310,15 @@ static const cairo_user_data_key_t original_cr_key;
static cairo_t *
gtk_css_shadow_value_start_drawing (const GtkCssValue *shadow,
cairo_t *cr)
cairo_t *cr,
GtkBlurFlags blur_flags)
{
cairo_rectangle_int_t clip_rect;
cairo_surface_t *surface;
cairo_t *blur_cr;
gdouble radius, clip_radius;
gboolean blur_x = (blur_flags & GTK_BLUR_X) != 0;
gboolean blur_y = (blur_flags & GTK_BLUR_Y) != 0;
if (!needs_blur (shadow))
return cr;
@@ -322,12 +328,22 @@ gtk_css_shadow_value_start_drawing (const GtkCssValue *shadow,
radius = _gtk_css_number_value_get (shadow->radius, 0);
clip_radius = _gtk_cairo_blur_compute_pixels (radius);
if (blur_flags & GTK_BLUR_REPEAT)
{
if (!blur_x)
clip_rect.width = 1;
if (!blur_y)
clip_rect.height = 1;
}
/* Create a larger surface to center the blur. */
surface = cairo_surface_create_similar_image (cairo_get_target (cr),
CAIRO_FORMAT_A8,
clip_rect.width + 2 * clip_radius,
clip_rect.height + 2 * clip_radius);
cairo_surface_set_device_offset (surface, clip_radius - clip_rect.x, clip_radius - clip_rect.y);
clip_rect.width + (blur_x ? 2 * clip_radius : 0),
clip_rect.height + (blur_y ? 2 * clip_radius : 0));
cairo_surface_set_device_offset (surface,
(blur_x ? clip_radius : 0) - clip_rect.x,
(blur_y ? clip_radius : 0) - clip_rect.y);
blur_cr = cairo_create (surface);
cairo_set_user_data (blur_cr, &original_cr_key, cairo_reference (cr), (cairo_destroy_func_t) cairo_destroy);
@@ -342,9 +358,24 @@ gtk_css_shadow_value_start_drawing (const GtkCssValue *shadow,
return blur_cr;
}
void
mask_surface_repeat (cairo_t *cr,
cairo_surface_t *surface)
{
cairo_pattern_t *pattern;
pattern = cairo_pattern_create_for_surface (surface);
cairo_pattern_set_extend (pattern, CAIRO_EXTEND_REPEAT);
cairo_mask (cr, pattern);
cairo_pattern_destroy (pattern);
}
static cairo_t *
gtk_css_shadow_value_finish_drawing (const GtkCssValue *shadow,
cairo_t *cr)
cairo_t *cr,
GtkBlurFlags blur_flags)
{
gdouble radius;
cairo_t *original_cr;
@@ -358,12 +389,16 @@ gtk_css_shadow_value_finish_drawing (const GtkCssValue *shadow,
/* Blur the surface. */
surface = cairo_get_target (cr);
radius = _gtk_css_number_value_get (shadow->radius, 0);
_gtk_cairo_blur_surface (surface, radius);
_gtk_cairo_blur_surface (surface, radius, blur_flags);
gdk_cairo_set_source_rgba (original_cr, _gtk_css_rgba_value_get_rgba (shadow->color));
cairo_mask_surface (original_cr, surface, 0, 0);
if (blur_flags & GTK_BLUR_REPEAT)
mask_surface_repeat (original_cr, surface);
else
cairo_mask_surface (original_cr, surface, 0, 0);
cairo_destroy (cr);
cairo_surface_destroy (surface);
return original_cr;
@@ -425,7 +460,7 @@ make_blurred_pango_surface (cairo_t *existing_cr,
cr = cairo_create (surface);
cairo_move_to (cr, 0, 0);
_gtk_pango_fill_layout (cr, layout);
_gtk_cairo_blur_surface (surface, radius * x_scale);
_gtk_cairo_blur_surface (surface, radius * x_scale, GTK_BLUR_X | GTK_BLUR_Y);
cairo_destroy (cr);
@@ -512,14 +547,14 @@ _gtk_css_shadow_value_paint_icon (const GtkCssValue *shadow,
pattern = cairo_pattern_reference (cairo_get_source (cr));
gdk_cairo_set_source_rgba (cr, _gtk_css_rgba_value_get_rgba (shadow->color));
cr = gtk_css_shadow_value_start_drawing (shadow, cr);
cr = gtk_css_shadow_value_start_drawing (shadow, cr, GTK_BLUR_X | GTK_BLUR_Y);
cairo_translate (cr,
_gtk_css_number_value_get (shadow->hoffset, 0),
_gtk_css_number_value_get (shadow->voffset, 0));
cairo_mask (cr, pattern);
cr = gtk_css_shadow_value_finish_drawing (shadow, cr);
cr = gtk_css_shadow_value_finish_drawing (shadow, cr, GTK_BLUR_X | GTK_BLUR_Y);
cairo_restore (cr);
cairo_pattern_destroy (pattern);
@@ -567,16 +602,18 @@ draw_shadow (const GtkCssValue *shadow,
cairo_t *cr,
GtkRoundedBox *box,
GtkRoundedBox *clip_box,
gboolean blur)
GtkBlurFlags blur_flags)
{
cairo_t *shadow_cr;
gboolean do_blur;
if (has_empty_clip (cr))
return;
gdk_cairo_set_source_rgba (cr, _gtk_css_rgba_value_get_rgba (shadow->color));
if (blur)
shadow_cr = gtk_css_shadow_value_start_drawing (shadow, cr);
do_blur = (blur_flags & (GTK_BLUR_X | GTK_BLUR_Y)) != 0;
if (do_blur)
shadow_cr = gtk_css_shadow_value_start_drawing (shadow, cr, blur_flags);
else
shadow_cr = cr;
@@ -587,8 +624,8 @@ draw_shadow (const GtkCssValue *shadow,
cairo_fill (shadow_cr);
if (blur)
gtk_css_shadow_value_finish_drawing (shadow, shadow_cr);
if (do_blur)
gtk_css_shadow_value_finish_drawing (shadow, shadow_cr, blur_flags);
}
void
@@ -644,7 +681,7 @@ _gtk_css_shadow_value_paint_box (const GtkCssValue *shadow,
_gtk_rounded_box_shrink (&clip_box, -clip_radius, -clip_radius, -clip_radius, -clip_radius);
if (!needs_blur (shadow))
draw_shadow (shadow, cr, &box, &clip_box, FALSE);
draw_shadow (shadow, cr, &box, &clip_box, GTK_BLUR_NONE);
else
{
int i, x1, x2, y1, y2;
@@ -714,7 +751,7 @@ _gtk_css_shadow_value_paint_box (const GtkCssValue *shadow,
/* Also clip with remaining to ensure we never draw any area twice */
gdk_cairo_region (cr, remaining);
cairo_clip (cr);
draw_shadow (shadow, cr, &box, &clip_box, TRUE);
draw_shadow (shadow, cr, &box, &clip_box, GTK_BLUR_X | GTK_BLUR_Y);
cairo_restore (cr);
/* We drew the region, remove it from remaining */
@@ -728,8 +765,11 @@ _gtk_css_shadow_value_paint_box (const GtkCssValue *shadow,
/* Then the sides */
for (i = 0; i < 4; i++)
{
GtkBlurFlags blur_flags = GTK_BLUR_REPEAT;
if (i == GTK_CSS_TOP || i == GTK_CSS_BOTTOM)
{
blur_flags |= GTK_BLUR_Y;
x1 = floor (box.box.x - clip_radius);
x2 = ceil (box.box.x + box.box.width + clip_radius);
}
@@ -746,6 +786,7 @@ _gtk_css_shadow_value_paint_box (const GtkCssValue *shadow,
if (i == GTK_CSS_LEFT || i == GTK_CSS_RIGHT)
{
blur_flags |= GTK_BLUR_X;
y1 = floor (box.box.y - clip_radius);
y2 = ceil (box.box.y + box.box.height + clip_radius);
}
@@ -766,7 +807,7 @@ _gtk_css_shadow_value_paint_box (const GtkCssValue *shadow,
/* Also clip with remaining to ensure we never draw any area twice */
gdk_cairo_region (cr, remaining);
cairo_clip (cr);
draw_shadow (shadow, cr, &box, &clip_box, TRUE);
draw_shadow (shadow, cr, &box, &clip_box, blur_flags);
cairo_restore (cr);
/* We drew the region, remove it from remaining */
@@ -782,7 +823,7 @@ _gtk_css_shadow_value_paint_box (const GtkCssValue *shadow,
cairo_save (cr);
gdk_cairo_region (cr, remaining);
cairo_clip (cr);
draw_shadow (shadow, cr, &box, &clip_box, FALSE);
draw_shadow (shadow, cr, &box, &clip_box, GTK_BLUR_NONE);
cairo_restore (cr);
cairo_region_destroy (remaining);
+3
View File
@@ -54,6 +54,9 @@ gtk_css_widget_node_style_changed (GtkCssNode *cssnode,
node = GTK_CSS_WIDGET_NODE (cssnode);
if (node->widget)
gtk_widget_clear_path (node->widget);
GTK_CSS_NODE_CLASS (gtk_css_widget_node_parent_class)->style_changed (cssnode, old_style, new_style);
diff = gtk_css_style_get_difference (new_style, old_style);
+26 -10
View File
@@ -228,6 +228,8 @@ static gboolean gtk_drag_dest_drop (GtkWidget *widget,
gint x,
gint y,
guint time);
static void gtk_drag_dest_set_widget (GtkDragDestInfo *info,
GtkWidget *widget);
static GtkDragDestInfo * gtk_drag_get_dest_info (GdkDragContext *context,
gboolean create);
@@ -1638,7 +1640,7 @@ _gtk_drag_dest_handle_event (GtkWidget *toplevel,
if (info->widget)
{
gtk_drag_dest_leave (info->widget, context, event->dnd.time);
info->widget = NULL;
gtk_drag_dest_set_widget (info, NULL);
}
break;
@@ -1658,7 +1660,7 @@ _gtk_drag_dest_handle_event (GtkWidget *toplevel,
if (info->widget)
{
gtk_drag_dest_leave (info->widget, context, event->dnd.time);
info->widget = NULL;
gtk_drag_dest_set_widget (info, NULL);
}
}
@@ -1690,7 +1692,7 @@ _gtk_drag_dest_handle_event (GtkWidget *toplevel,
if (info->widget && !found)
{
gtk_drag_dest_leave (info->widget, context, event->dnd.time);
info->widget = NULL;
gtk_drag_dest_set_widget (info, NULL);
}
/* Send a reply.
@@ -1918,15 +1920,12 @@ gtk_drag_find_widget (GtkWidget *widget,
found = callback (widget, context, x, y, time);
/* If so, send a "drag-leave" to the last widget */
if (found)
if (found && info->widget != widget)
{
if (info->widget && info->widget != widget)
{
gtk_drag_dest_leave (info->widget, context, time);
}
if (info->widget)
gtk_drag_dest_leave (info->widget, context, time);
info->widget = widget;
g_object_add_weak_pointer (G_OBJECT (widget), (gpointer *) &info->widget);
gtk_drag_dest_set_widget (info, widget);
}
}
@@ -2008,9 +2007,26 @@ gtk_drag_proxy_begin (GtkWidget *widget,
dest_info->proxy_source = source_info;
}
static void
gtk_drag_dest_set_widget (GtkDragDestInfo *info,
GtkWidget *widget)
{
if (info->widget)
g_object_remove_weak_pointer (G_OBJECT (info->widget), (gpointer *) &info->widget);
info->widget = widget;
if (info->widget)
g_object_add_weak_pointer (G_OBJECT (info->widget), (gpointer *) &info->widget);
}
static void
gtk_drag_dest_info_destroy (gpointer data)
{
GtkDragDestInfo *info = (GtkDragDestInfo *)data;
gtk_drag_dest_set_widget (info, NULL);
g_slice_free (GtkDragDestInfo, data);
}
-2
View File
@@ -3195,7 +3195,6 @@ realize_icon_info (GtkWidget *widget,
GDK_BUTTON_RELEASE_MASK |
GDK_BUTTON1_MOTION_MASK |
GDK_BUTTON3_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK |
GDK_POINTER_MOTION_MASK |
GDK_ENTER_NOTIFY_MASK |
GDK_LEAVE_NOTIFY_MASK);
@@ -3314,7 +3313,6 @@ gtk_entry_realize (GtkWidget *widget)
GDK_BUTTON_RELEASE_MASK |
GDK_BUTTON1_MOTION_MASK |
GDK_BUTTON3_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK |
GDK_POINTER_MOTION_MASK |
GDK_ENTER_NOTIFY_MASK |
GDK_LEAVE_NOTIFY_MASK);
+4 -3
View File
@@ -1033,11 +1033,12 @@ gtk_file_chooser_button_destroy (GtkWidget *widget)
priv->dialog = NULL;
}
if (priv->model && gtk_tree_model_get_iter_first (priv->model, &iter)) do
if (priv->model && gtk_tree_model_get_iter_first (priv->model, &iter))
{
model_free_row_data (button, &iter);
do
model_free_row_data (button, &iter);
while (gtk_tree_model_iter_next (priv->model, &iter));
}
while (gtk_tree_model_iter_next (priv->model, &iter));
if (priv->dnd_select_folder_cancellable)
{
+1 -1
View File
@@ -876,7 +876,7 @@ _gtk_icon_helper_get_size (GtkIconHelper *self,
width = gdk_pixbuf_animation_get_width (self->priv->animation);
height = gdk_pixbuf_animation_get_height (self->priv->animation);
}
else if (self->priv->icon_size != -1)
else if (self->priv->icon_size != GTK_ICON_SIZE_INVALID)
{
ensure_icon_size (self, context, &width, &height);
}
+90 -17
View File
@@ -155,6 +155,9 @@ static void gtk_image_size_allocate (GtkWidget *widget,
static void gtk_image_unmap (GtkWidget *widget);
static void gtk_image_realize (GtkWidget *widget);
static void gtk_image_unrealize (GtkWidget *widget);
static void gtk_image_get_preferred_size (GtkImage *image,
gint *width_out,
gint *height_out);
static void gtk_image_get_preferred_width (GtkWidget *widget,
gint *minimum,
gint *natural);
@@ -934,8 +937,8 @@ gtk_image_set_from_file (GtkImage *image,
priv = image->priv;
g_object_freeze_notify (G_OBJECT (image));
gtk_image_clear (image);
gtk_image_reset (image);
if (filename == NULL)
{
@@ -948,9 +951,7 @@ gtk_image_set_from_file (GtkImage *image,
if (anim == NULL)
{
gtk_image_set_from_icon_name (image,
"image-missing",
DEFAULT_ICON_SIZE);
gtk_image_set_from_icon_name (image, "image-missing", DEFAULT_ICON_SIZE);
g_object_thaw_notify (G_OBJECT (image));
return;
}
@@ -971,7 +972,21 @@ gtk_image_set_from_file (GtkImage *image,
g_object_unref (anim);
priv->filename = g_strdup (filename);
if (gtk_widget_get_visible (GTK_WIDGET (image)))
{
gint width, height;
gtk_image_get_preferred_size (image, &width, &height);
if (width != gtk_widget_get_allocated_width (GTK_WIDGET (image)) ||
height != gtk_widget_get_allocated_height (GTK_WIDGET (image)))
gtk_widget_queue_resize (GTK_WIDGET (image));
else
gtk_widget_queue_draw (GTK_WIDGET (image));
}
g_object_notify (G_OBJECT (image), "file");
g_object_thaw_notify (G_OBJECT (image));
}
@@ -1008,9 +1023,7 @@ gtk_image_set_from_resource (GtkImage *image,
if (animation == NULL)
{
gtk_image_set_from_icon_name (image,
"image-missing",
DEFAULT_ICON_SIZE);
gtk_image_set_from_icon_name (image, "image-missing", DEFAULT_ICON_SIZE);
g_object_thaw_notify (G_OBJECT (image));
return;
}
@@ -1046,18 +1059,29 @@ gtk_image_set_from_pixbuf (GtkImage *image,
GtkImagePrivate *priv;
g_return_if_fail (GTK_IS_IMAGE (image));
g_return_if_fail (pixbuf == NULL ||
GDK_IS_PIXBUF (pixbuf));
g_return_if_fail (pixbuf == NULL || GDK_IS_PIXBUF (pixbuf));
priv = image->priv;
g_object_freeze_notify (G_OBJECT (image));
gtk_image_clear (image);
gtk_image_reset (image);
if (pixbuf != NULL)
_gtk_icon_helper_set_pixbuf (priv->icon_helper, pixbuf);
if (gtk_widget_get_visible (GTK_WIDGET (image)))
{
gint width, height;
gtk_image_get_preferred_size (image, &width, &height);
if (width != gtk_widget_get_allocated_width (GTK_WIDGET (image)) ||
height != gtk_widget_get_allocated_height (GTK_WIDGET (image)))
gtk_widget_queue_resize (GTK_WIDGET (image));
else
gtk_widget_queue_draw (GTK_WIDGET (image));
}
g_object_notify (G_OBJECT (image), "pixbuf");
g_object_thaw_notify (G_OBJECT (image));
@@ -1171,7 +1195,7 @@ gtk_image_set_from_animation (GtkImage *image,
if (animation)
g_object_ref (animation);
gtk_image_clear (image);
gtk_image_reset (image);
if (animation != NULL)
{
@@ -1179,6 +1203,18 @@ gtk_image_set_from_animation (GtkImage *image,
g_object_unref (animation);
}
if (gtk_widget_get_visible (GTK_WIDGET (image)))
{
gint width, height;
gtk_image_get_preferred_size (image, &width, &height);
if (width != gtk_widget_get_allocated_width (GTK_WIDGET (image)) ||
height != gtk_widget_get_allocated_height (GTK_WIDGET (image)))
gtk_widget_queue_resize (GTK_WIDGET (image));
else
gtk_widget_queue_draw (GTK_WIDGET (image));
}
g_object_notify (G_OBJECT (image), "pixbuf-animation");
g_object_thaw_notify (G_OBJECT (image));
@@ -1209,7 +1245,8 @@ gtk_image_set_from_icon_name (GtkImage *image,
g_object_freeze_notify (G_OBJECT (image));
new_name = g_strdup (icon_name);
gtk_image_clear (image);
gtk_image_reset (image);
if (new_name)
{
@@ -1217,6 +1254,18 @@ gtk_image_set_from_icon_name (GtkImage *image,
g_free (new_name);
}
if (gtk_widget_get_visible (GTK_WIDGET (image)))
{
gint width, height;
gtk_image_get_preferred_size (image, &width, &height);
if (width != gtk_widget_get_allocated_width (GTK_WIDGET (image)) ||
height != gtk_widget_get_allocated_height (GTK_WIDGET (image)))
gtk_widget_queue_resize (GTK_WIDGET (image));
else
gtk_widget_queue_draw (GTK_WIDGET (image));
}
g_object_notify (G_OBJECT (image), "icon-name");
g_object_notify (G_OBJECT (image), "icon-size");
@@ -1249,7 +1298,7 @@ gtk_image_set_from_gicon (GtkImage *image,
if (icon)
g_object_ref (icon);
gtk_image_clear (image);
gtk_image_reset (image);
if (icon)
{
@@ -1257,6 +1306,18 @@ gtk_image_set_from_gicon (GtkImage *image,
g_object_unref (icon);
}
if (gtk_widget_get_visible (GTK_WIDGET (image)))
{
gint width, height;
gtk_image_get_preferred_size (image, &width, &height);
if (width != gtk_widget_get_allocated_width (GTK_WIDGET (image)) ||
height != gtk_widget_get_allocated_height (GTK_WIDGET (image)))
gtk_widget_queue_resize (GTK_WIDGET (image));
else
gtk_widget_queue_draw (GTK_WIDGET (image));
}
g_object_notify (G_OBJECT (image), "gicon");
g_object_notify (G_OBJECT (image), "icon-size");
@@ -1287,7 +1348,7 @@ gtk_image_set_from_surface (GtkImage *image,
if (surface)
cairo_surface_reference (surface);
gtk_image_clear (image);
gtk_image_reset (image);
if (surface)
{
@@ -1295,6 +1356,18 @@ gtk_image_set_from_surface (GtkImage *image,
cairo_surface_destroy (surface);
}
if (gtk_widget_get_visible (GTK_WIDGET (image)))
{
gint width, height;
gtk_image_get_preferred_size (image, &width, &height);
if (width != gtk_widget_get_allocated_width (GTK_WIDGET (image)) ||
height != gtk_widget_get_allocated_height (GTK_WIDGET (image)))
gtk_widget_queue_resize (GTK_WIDGET (image));
else
gtk_widget_queue_draw (GTK_WIDGET (image));
}
g_object_notify (G_OBJECT (image), "surface");
g_object_thaw_notify (G_OBJECT (image));
+1 -2
View File
@@ -5357,8 +5357,7 @@ gtk_label_create_window (GtkLabel *label)
GDK_BUTTON_RELEASE_MASK |
GDK_LEAVE_NOTIFY_MASK |
GDK_BUTTON_MOTION_MASK |
GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK;
GDK_POINTER_MOTION_MASK;
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_NOREDIR;
if (gtk_widget_is_sensitive (widget) && priv->select_info && priv->select_info->selectable)
{
+1 -1
View File
@@ -890,7 +890,7 @@ set_align_widget_pointer (GtkMenuButton *menu_button,
priv->align_widget = align_widget;
if (align_widget)
if (priv->align_widget)
g_object_add_weak_pointer (G_OBJECT (priv->align_widget), (gpointer *) &priv->align_widget);
}
+5 -8
View File
@@ -1436,13 +1436,10 @@ create_show_processes_dialog (GtkMountOperation *op,
gtk_box_pack_start (GTK_BOX (content_area), vbox, TRUE, TRUE, 0);
if (secondary != NULL)
{
s = g_strdup_printf ("<big><b>%s</b></big>\n\n%s", primary, secondary);
}
s = g_strdup_printf ("<big><b>%s</b></big>\n\n%s", primary, secondary);
else
{
s = g_strdup_printf ("%s", primary);
}
s = g_strdup_printf ("%s", primary);
g_free (primary);
label = gtk_label_new (NULL);
gtk_label_set_markup (GTK_LABEL (label), s);
@@ -1518,8 +1515,8 @@ create_show_processes_dialog (GtkMountOperation *op,
priv->process_list_store = list_store;
priv->process_tree_view = tree_view;
/* set pointers to NULL when dialog goes away */
g_object_add_weak_pointer (G_OBJECT (list_store), (gpointer *) &priv->process_list_store);
g_object_add_weak_pointer (G_OBJECT (tree_view), (gpointer *) &priv->process_tree_view);
g_object_add_weak_pointer (G_OBJECT (priv->process_list_store), (gpointer *) &priv->process_list_store);
g_object_add_weak_pointer (G_OBJECT (priv->process_tree_view), (gpointer *) &priv->process_tree_view);
g_object_unref (list_store);
g_object_ref (op);
+3 -2
View File
@@ -24,6 +24,7 @@
#if defined(HAVE__NL_PAPER_HEIGHT) && defined(HAVE__NL_PAPER_WIDTH)
#include <langinfo.h>
#endif
#include <math.h>
#include "gtkpapersize.h"
#include "gtkprintutils.h"
@@ -442,8 +443,8 @@ gtk_paper_size_new_from_ipp (const gchar *ipp_name,
x_dimension = _gtk_print_convert_from_mm (standard_names_offsets[i].width, GTK_UNIT_POINTS);
y_dimension = _gtk_print_convert_from_mm (standard_names_offsets[i].height, GTK_UNIT_POINTS);
if (abs (x_dimension - width) <= PAPER_SIZE_TOLERANCE &&
abs (y_dimension - height) <= PAPER_SIZE_TOLERANCE)
if (fabs (x_dimension - width) <= PAPER_SIZE_TOLERANCE &&
fabs (y_dimension - height) <= PAPER_SIZE_TOLERANCE)
{
display_name = g_strdup (g_dpgettext2 (GETTEXT_PACKAGE,
"paper size",
+1 -1
View File
@@ -1785,7 +1785,7 @@ _gtk_print_operation_set_status (GtkPrintOperation *op,
NC_("print operation status", "Finished with error")
};
if (status < 0 || status > GTK_PRINT_STATUS_FINISHED_ABORTED)
if (status > GTK_PRINT_STATUS_FINISHED_ABORTED)
status = GTK_PRINT_STATUS_FINISHED_ABORTED;
if (string == NULL)
+1 -1
View File
@@ -207,7 +207,7 @@ static GObject *gtk_print_unix_dialog_buildable_get_internal_child (GtkBuildabl
GtkBuilder *builder,
const gchar *childname);
static const gchar const common_paper_sizes[][16] = {
static const gchar common_paper_sizes[][16] = {
"na_letter",
"na_legal",
"iso_a4",
+66 -8
View File
@@ -208,6 +208,8 @@ gtk_radio_menu_item_set_group (GtkRadioMenuItem *radio_menu_item,
tmp_item->priv->group = priv->group;
}
_gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (radio_menu_item), FALSE);
}
else
{
@@ -282,7 +284,7 @@ gtk_radio_menu_item_new_with_mnemonic (GSList *group,
/**
* gtk_radio_menu_item_new_from_widget: (constructor)
* @group: An existing #GtkRadioMenuItem
* @group: (allow-none): An existing #GtkRadioMenuItem
*
* Creates a new #GtkRadioMenuItem adding it to the same group as @group.
*
@@ -295,7 +297,7 @@ gtk_radio_menu_item_new_from_widget (GtkRadioMenuItem *group)
{
GSList *list = NULL;
g_return_val_if_fail (GTK_IS_RADIO_MENU_ITEM (group), NULL);
g_return_val_if_fail (group == NULL || GTK_IS_RADIO_MENU_ITEM (group), NULL);
if (group)
list = gtk_radio_menu_item_get_group (group);
@@ -305,8 +307,8 @@ gtk_radio_menu_item_new_from_widget (GtkRadioMenuItem *group)
/**
* gtk_radio_menu_item_new_with_mnemonic_from_widget: (constructor)
* @group: An existing #GtkRadioMenuItem
* @label: the text of the button, with an underscore in front of the
* @group: (allow-none): An existing #GtkRadioMenuItem
* @label: (allow-none): the text of the button, with an underscore in front of the
* mnemonic character
*
* Creates a new GtkRadioMenuItem containing a label. The label will be
@@ -325,7 +327,7 @@ gtk_radio_menu_item_new_with_mnemonic_from_widget (GtkRadioMenuItem *group,
{
GSList *list = NULL;
g_return_val_if_fail (GTK_IS_RADIO_MENU_ITEM (group), NULL);
g_return_val_if_fail (group == NULL || GTK_IS_RADIO_MENU_ITEM (group), NULL);
if (group)
list = gtk_radio_menu_item_get_group (group);
@@ -335,8 +337,8 @@ gtk_radio_menu_item_new_with_mnemonic_from_widget (GtkRadioMenuItem *group,
/**
* gtk_radio_menu_item_new_with_label_from_widget: (constructor)
* @group: an existing #GtkRadioMenuItem
* @label: the text for the label
* @group: (allow-none): an existing #GtkRadioMenuItem
* @label: (allow-none): the text for the label
*
* Creates a new GtkRadioMenuItem whose child is a simple GtkLabel.
* The new #GtkRadioMenuItem is added to the same group as @group.
@@ -351,7 +353,7 @@ gtk_radio_menu_item_new_with_label_from_widget (GtkRadioMenuItem *group,
{
GSList *list = NULL;
g_return_val_if_fail (GTK_IS_RADIO_MENU_ITEM (group), NULL);
g_return_val_if_fail (group == NULL || GTK_IS_RADIO_MENU_ITEM (group), NULL);
if (group)
list = gtk_radio_menu_item_get_group (group);
@@ -556,3 +558,59 @@ gtk_radio_menu_item_activate (GtkMenuItem *menu_item)
gtk_widget_queue_draw (GTK_WIDGET (radio_menu_item));
}
/**
* gtk_radio_menu_item_join_group:
* @radio_menu_item: a #GtkRadioMenuItem
* @group_source: (allow-none): a #GtkRadioMenuItem whose group we are
* joining, or %NULL to remove the @radio_menu_item from its current
* group
*
* Joins a #GtkRadioMenuItem object to the group of another #GtkRadioMenuItem
* object.
*
* This function should be used by language bindings to avoid the memory
* manangement of the opaque #GSList of gtk_radio_menu_item_get_group()
* and gtk_radio_menu_item_set_group().
*
* A common way to set up a group of #GtkRadioMenuItem instances is:
*
* |[
* GtkRadioMenuItem *last_item = NULL;
*
* while ( ...more items to add... )
* {
* GtkRadioMenuItem *radio_item;
*
* radio_item = gtk_radio_menu_item_new (...);
*
* gtk_radio_menu_item_join_group (radio_item, last_item);
* last_item = radio_item;
* }
* ]|
*
* Since: 3.18
*/
void
gtk_radio_menu_item_join_group (GtkRadioMenuItem *radio_menu_item,
GtkRadioMenuItem *group_source)
{
g_return_if_fail (GTK_IS_RADIO_MENU_ITEM (radio_menu_item));
g_return_if_fail (group_source == NULL || GTK_IS_RADIO_MENU_ITEM (group_source));
if (group_source != NULL)
{
GSList *group = gtk_radio_menu_item_get_group (group_source);
if (group == NULL)
{
/* if the group source does not have a group, we force one */
gtk_radio_menu_item_set_group (group_source, NULL);
group = gtk_radio_menu_item_get_group (group_source);
}
gtk_radio_menu_item_set_group (radio_menu_item, group);
}
else
gtk_radio_menu_item_set_group (radio_menu_item, NULL);
}
+4
View File
@@ -95,6 +95,10 @@ GDK_AVAILABLE_IN_ALL
void gtk_radio_menu_item_set_group (GtkRadioMenuItem *radio_menu_item,
GSList *group);
GDK_AVAILABLE_IN_3_18
void gtk_radio_menu_item_join_group (GtkRadioMenuItem *radio_menu_item,
GtkRadioMenuItem *group_source);
G_END_DECLS
#endif /* __GTK_RADIO_MENU_ITEM_H__ */
+7 -8
View File
@@ -1650,14 +1650,13 @@ gtk_range_realize (GtkWidget *widget)
attributes.height = allocation.height;
attributes.wclass = GDK_INPUT_ONLY;
attributes.event_mask = gtk_widget_get_events (widget);
attributes.event_mask |= (GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK |
GDK_SCROLL_MASK |
GDK_SMOOTH_SCROLL_MASK |
GDK_ENTER_NOTIFY_MASK |
GDK_LEAVE_NOTIFY_MASK |
GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK);
attributes.event_mask |= GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK |
GDK_SCROLL_MASK |
GDK_SMOOTH_SCROLL_MASK |
GDK_ENTER_NOTIFY_MASK |
GDK_LEAVE_NOTIFY_MASK |
GDK_POINTER_MOTION_MASK;
attributes_mask = GDK_WA_X | GDK_WA_Y;
+1 -1
View File
@@ -1189,7 +1189,7 @@ gtk_render_icon_pixbuf (GtkStyleContext *context,
GtkIconSize size)
{
g_return_val_if_fail (GTK_IS_STYLE_CONTEXT (context), NULL);
g_return_val_if_fail (size > GTK_ICON_SIZE_INVALID || size == -1, NULL);
g_return_val_if_fail (size > GTK_ICON_SIZE_INVALID || size == (GtkIconSize)-1, NULL);
g_return_val_if_fail (source != NULL, NULL);
return gtk_do_render_icon_pixbuf (context, source, size);
+34 -30
View File
@@ -344,18 +344,15 @@ gtk_search_bar_get_property (GObject *object,
}
}
static void gtk_search_bar_set_entry (GtkSearchBar *bar,
GtkEntry *entry);
static void
gtk_search_bar_dispose (GObject *object)
{
GtkSearchBar *bar = GTK_SEARCH_BAR (object);
GtkSearchBarPrivate *priv = gtk_search_bar_get_instance_private (bar);
if (priv->entry)
{
g_signal_handlers_disconnect_by_func (priv->entry, entry_key_pressed_event_cb, bar);
g_object_remove_weak_pointer (G_OBJECT (priv->entry), (gpointer *) &priv->entry);
priv->entry = NULL;
}
gtk_search_bar_set_entry (bar, NULL);
G_OBJECT_CLASS (gtk_search_bar_parent_class)->dispose (object);
}
@@ -471,6 +468,35 @@ gtk_search_bar_new (void)
return g_object_new (GTK_TYPE_SEARCH_BAR, NULL);
}
static void
gtk_search_bar_set_entry (GtkSearchBar *bar,
GtkEntry *entry)
{
GtkSearchBarPrivate *priv = gtk_search_bar_get_instance_private (bar);
if (priv->entry != NULL)
{
if (GTK_IS_SEARCH_ENTRY (priv->entry))
g_signal_handlers_disconnect_by_func (priv->entry, stop_search_cb, bar);
else
g_signal_handlers_disconnect_by_func (priv->entry, entry_key_pressed_event_cb, bar);
g_object_remove_weak_pointer (G_OBJECT (priv->entry), (gpointer *) &priv->entry);
}
priv->entry = GTK_WIDGET (entry);
if (priv->entry != NULL)
{
g_object_add_weak_pointer (G_OBJECT (priv->entry), (gpointer *) &priv->entry);
if (GTK_IS_SEARCH_ENTRY (priv->entry))
g_signal_connect (priv->entry, "stop-search",
G_CALLBACK (stop_search_cb), bar);
else
g_signal_connect (priv->entry, "key-press-event",
G_CALLBACK (entry_key_pressed_event_cb), bar);
}
}
/**
* gtk_search_bar_connect_entry:
* @bar: a #GtkSearchBar
@@ -487,32 +513,10 @@ void
gtk_search_bar_connect_entry (GtkSearchBar *bar,
GtkEntry *entry)
{
GtkSearchBarPrivate *priv = gtk_search_bar_get_instance_private (bar);
g_return_if_fail (GTK_IS_SEARCH_BAR (bar));
g_return_if_fail (entry == NULL || GTK_IS_ENTRY (entry));
if (priv->entry != NULL)
{
if (GTK_IS_SEARCH_ENTRY (priv->entry))
g_signal_handlers_disconnect_by_func (priv->entry, stop_search_cb, bar);
else
g_signal_handlers_disconnect_by_func (priv->entry, entry_key_pressed_event_cb, bar);
g_object_remove_weak_pointer (G_OBJECT (priv->entry), (gpointer *) &priv->entry);
priv->entry = NULL;
}
if (entry != NULL)
{
priv->entry = GTK_WIDGET (entry);
g_object_add_weak_pointer (G_OBJECT (priv->entry), (gpointer *) &priv->entry);
if (GTK_IS_SEARCH_ENTRY (priv->entry))
g_signal_connect (priv->entry, "stop-search",
G_CALLBACK (stop_search_cb), bar);
else
g_signal_connect (priv->entry, "key-press-event",
G_CALLBACK (entry_key_pressed_event_cb), bar);
}
gtk_search_bar_set_entry (bar, entry);
}
/**
+1 -18
View File
@@ -23,26 +23,9 @@
G_BEGIN_DECLS
/*
* GtkQueueResizeFlags:
* @GTK_QUEUE_RESIZE_INVALIDATE_ONLY: invalidate all cached sizes
* as we would normally do when a widget is queued for resize,
* but dont actually add the toplevel resize container to the
* resize queue. Useful if we want to change the size of a widget
* see how that would affect the overall layout, then restore
* the old size.
*
* Flags that affect the operation of queueing a widget for resize.
*/
typedef enum
{
GTK_QUEUE_RESIZE_INVALIDATE_ONLY = 1 << 0
} GtkQueueResizeFlags;
GHashTable * _gtk_size_group_get_widget_peers (GtkWidget *for_widget,
GtkOrientation orientation);
void _gtk_size_group_queue_resize (GtkWidget *widget,
GtkQueueResizeFlags flags);
void _gtk_size_group_queue_resize (GtkWidget *widget);
G_END_DECLS
+14 -20
View File
@@ -203,8 +203,7 @@ _gtk_size_group_get_widget_peers (GtkWidget *for_widget,
}
static void
real_queue_resize (GtkWidget *widget,
GtkQueueResizeFlags flags)
real_queue_resize (GtkWidget *widget)
{
GtkWidget *container;
@@ -218,17 +217,13 @@ real_queue_resize (GtkWidget *widget,
if (container)
{
if (flags & GTK_QUEUE_RESIZE_INVALIDATE_ONLY)
_gtk_container_resize_invalidate (GTK_CONTAINER (container));
else
_gtk_container_queue_resize (GTK_CONTAINER (container));
_gtk_container_queue_resize (GTK_CONTAINER (container));
}
}
static void
queue_resize_on_widget (GtkWidget *widget,
gboolean check_siblings,
GtkQueueResizeFlags flags)
queue_resize_on_widget (GtkWidget *widget,
gboolean check_siblings)
{
GtkWidget *parent = widget;
@@ -241,7 +236,7 @@ queue_resize_on_widget (GtkWidget *widget,
if (widget == parent && !check_siblings)
{
real_queue_resize (widget, flags);
real_queue_resize (widget);
parent = gtk_widget_get_parent (parent);
continue;
}
@@ -250,7 +245,7 @@ queue_resize_on_widget (GtkWidget *widget,
if (!widget_groups)
{
if (widget == parent)
real_queue_resize (widget, flags);
real_queue_resize (widget);
parent = gtk_widget_get_parent (parent);
continue;
@@ -264,14 +259,14 @@ queue_resize_on_widget (GtkWidget *widget,
if (current == parent)
{
if (widget == parent)
real_queue_resize (parent, flags);
real_queue_resize (parent);
}
else if (current == widget)
{
g_warning ("A container and its child are part of this SizeGroup");
}
else
queue_resize_on_widget (current, FALSE, flags);
queue_resize_on_widget (current, FALSE);
}
g_hash_table_destroy (widgets);
@@ -284,14 +279,14 @@ queue_resize_on_widget (GtkWidget *widget,
if (current == parent)
{
if (widget == parent)
real_queue_resize (parent, flags);
real_queue_resize (parent);
}
else if (current == widget)
{
g_warning ("A container and its child are part of this SizeGroup");
}
else
queue_resize_on_widget (current, FALSE, flags);
queue_resize_on_widget (current, FALSE);
}
g_hash_table_destroy (widgets);
@@ -301,12 +296,12 @@ queue_resize_on_widget (GtkWidget *widget,
}
static void
queue_resize_on_group (GtkSizeGroup *size_group)
queue_resize_on_group (GtkSizeGroup *size_group)
{
GtkSizeGroupPrivate *priv = size_group->priv;
if (priv->widgets)
queue_resize_on_widget (priv->widgets->data, TRUE, 0);
queue_resize_on_widget (priv->widgets->data, TRUE);
}
static void
@@ -636,10 +631,9 @@ gtk_size_group_get_widgets (GtkSizeGroup *size_group)
* Queue a resize on a widget, and on all other widgets grouped with this widget.
**/
void
_gtk_size_group_queue_resize (GtkWidget *widget,
GtkQueueResizeFlags flags)
_gtk_size_group_queue_resize (GtkWidget *widget)
{
queue_resize_on_widget (widget, TRUE, flags);
queue_resize_on_widget (widget, TRUE);
}
typedef struct {
+1 -1
View File
@@ -1093,7 +1093,7 @@ gtk_spin_button_realize (GtkWidget *widget)
attributes.event_mask = gtk_widget_get_events (widget);
attributes.event_mask |= GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK
| GDK_BUTTON_RELEASE_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_ENTER_NOTIFY_MASK
| GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK;
| GDK_POINTER_MOTION_MASK;
attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL;
-1
View File
@@ -487,7 +487,6 @@ gtk_switch_realize (GtkWidget *widget)
attributes.event_mask |= (GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK |
GDK_BUTTON1_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK |
GDK_POINTER_MOTION_MASK |
GDK_ENTER_NOTIFY_MASK |
GDK_LEAVE_NOTIFY_MASK);
+2 -2
View File
@@ -555,8 +555,8 @@ gtk_text_tag_class_init (GtkTextTagClass *klass)
g_object_class_install_property (object_class,
PROP_STRIKETHROUGH_RGBA,
g_param_spec_boxed ("strikethrough-rgba",
P_("Strike-through RGBA"),
P_("Color of strike-through for this text"),
P_("Strikethrough RGBA"),
P_("Color of strikethrough for this text"),
GDK_TYPE_RGBA,
GTK_PARAM_READWRITE));
+10 -11
View File
@@ -5992,7 +5992,7 @@ gtk_text_view_move_cursor (GtkTextView *text_view,
gtk_text_view_move_viewport (text_view, scroll_step, count);
if ((old_xpos == gtk_adjustment_get_target_value (priv->hadjustment) &&
old_ypos == gtk_adjustment_get_target_value (priv->vadjustment)) &&
leave_direction != -1 &&
leave_direction != (GtkDirectionType)-1 &&
!gtk_widget_keynav_failed (GTK_WIDGET (text_view),
leave_direction))
{
@@ -6165,7 +6165,7 @@ gtk_text_view_move_cursor (GtkTextView *text_view,
if (step == GTK_MOVEMENT_DISPLAY_LINES)
gtk_text_view_set_virtual_cursor_pos (text_view, cursor_x_pos, -1);
}
else if (leave_direction != -1)
else if (leave_direction != (GtkDirectionType)-1)
{
if (!gtk_widget_keynav_failed (GTK_WIDGET (text_view),
leave_direction))
@@ -9421,15 +9421,14 @@ text_window_realize (GtkTextWindow *win,
attributes.y = 0;
attributes.width = win->allocation.width;
attributes.height = win->allocation.height;
attributes.event_mask = (GDK_EXPOSURE_MASK |
GDK_SCROLL_MASK |
GDK_SMOOTH_SCROLL_MASK |
GDK_KEY_PRESS_MASK |
GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK |
GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK |
gtk_widget_get_events (win->widget));
attributes.event_mask = gtk_widget_get_events (win->widget)
| GDK_EXPOSURE_MASK
| GDK_SCROLL_MASK
| GDK_SMOOTH_SCROLL_MASK
| GDK_KEY_PRESS_MASK
| GDK_BUTTON_PRESS_MASK
| GDK_BUTTON_RELEASE_MASK
| GDK_POINTER_MOTION_MASK;
win->bin_window = gdk_window_new (win->window,
&attributes,
+1 -1
View File
@@ -904,7 +904,7 @@ gtk_tooltip_set_last_window (GtkTooltip *tooltip,
tooltip->last_window = window;
if (window)
if (tooltip->last_window)
g_object_add_weak_pointer (G_OBJECT (tooltip->last_window),
(gpointer *) &tooltip->last_window);
-1
View File
@@ -1360,7 +1360,6 @@ _gtk_tree_view_column_realize_button (GtkTreeViewColumn *column)
(GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK |
GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK |
GDK_KEY_PRESS_MASK);
attributes_mask = GDK_WA_CURSOR | GDK_WA_X | GDK_WA_Y;
attr.cursor = gdk_cursor_new_for_display
+17 -68
View File
@@ -925,8 +925,7 @@ static gboolean setup_template_child (GtkWidgetTemplat
static void gtk_widget_set_usize_internal (GtkWidget *widget,
gint width,
gint height,
GtkQueueResizeFlags flags);
gint height);
static void gtk_widget_add_events_internal (GtkWidget *widget,
GdkDevice *device,
@@ -3813,10 +3812,10 @@ gtk_widget_set_property (GObject *object,
gtk_container_add (GTK_CONTAINER (g_value_get_object (value)), widget);
break;
case PROP_WIDTH_REQUEST:
gtk_widget_set_usize_internal (widget, g_value_get_int (value), -2, 0);
gtk_widget_set_usize_internal (widget, g_value_get_int (value), -2);
break;
case PROP_HEIGHT_REQUEST:
gtk_widget_set_usize_internal (widget, -2, g_value_get_int (value), 0);
gtk_widget_set_usize_internal (widget, -2, g_value_get_int (value));
break;
case PROP_VISIBLE:
gtk_widget_set_visible (widget, g_value_get_boolean (value));
@@ -5748,7 +5747,7 @@ gtk_widget_queue_resize (GtkWidget *widget)
if (gtk_widget_get_realized (widget))
gtk_widget_queue_draw (widget);
_gtk_size_group_queue_resize (widget, 0);
_gtk_size_group_queue_resize (widget);
}
/**
@@ -5765,7 +5764,7 @@ gtk_widget_queue_resize_no_redraw (GtkWidget *widget)
{
g_return_if_fail (GTK_IS_WIDGET (widget));
_gtk_size_group_queue_resize (widget, 0);
_gtk_size_group_queue_resize (widget);
}
/**
@@ -10957,8 +10956,7 @@ gtk_widget_error_bell (GtkWidget *widget)
static void
gtk_widget_set_usize_internal (GtkWidget *widget,
gint width,
gint height,
GtkQueueResizeFlags flags)
gint height)
{
GtkWidgetAuxInfo *aux_info;
gboolean changed = FALSE;
@@ -10969,25 +10967,20 @@ gtk_widget_set_usize_internal (GtkWidget *widget,
if (width > -2 && aux_info->width != width)
{
if ((flags & GTK_QUEUE_RESIZE_INVALIDATE_ONLY) == 0)
g_object_notify (G_OBJECT (widget), "width-request");
g_object_notify (G_OBJECT (widget), "width-request");
aux_info->width = width;
changed = TRUE;
}
if (height > -2 && aux_info->height != height)
{
if ((flags & GTK_QUEUE_RESIZE_INVALIDATE_ONLY) == 0)
g_object_notify (G_OBJECT (widget), "height-request");
g_object_notify (G_OBJECT (widget), "height-request");
aux_info->height = height;
changed = TRUE;
}
if (gtk_widget_get_visible (widget) && changed)
{
if ((flags & GTK_QUEUE_RESIZE_INVALIDATE_ONLY) == 0)
gtk_widget_queue_resize (widget);
else
_gtk_size_group_queue_resize (widget, GTK_QUEUE_RESIZE_INVALIDATE_ONLY);
gtk_widget_queue_resize (widget);
}
g_object_thaw_notify (G_OBJECT (widget));
@@ -11044,7 +11037,7 @@ gtk_widget_set_size_request (GtkWidget *widget,
if (height == 0)
height = 1;
gtk_widget_set_usize_internal (widget, width, height, 0);
gtk_widget_set_usize_internal (widget, width, height);
}
@@ -11080,52 +11073,6 @@ gtk_widget_get_size_request (GtkWidget *widget,
*height = aux_info->height;
}
/**
* _gtk_widget_override_size_request:
* @widget: a #GtkWidget
* @width: new forced minimum width
* @height: new forced minimum height
* @old_width: location to store previous forced minimum width
* @old_height: location to store previous forced minumum height
*
* Temporarily establishes a forced minimum size for a widget; this
* is used by GtkWindow when calculating the size to add to the
* windows geometry widget. Cached sizes for the widget and its
* parents are invalidated, so that subsequent calls to the size
* negotiation machinery produce the overriden result, but the
* widget is not queued for relayout or redraw. The old size must
* be restored with _gtk_widget_restore_size_request() or things
* will go screwy.
*/
void
_gtk_widget_override_size_request (GtkWidget *widget,
int width,
int height,
int *old_width,
int *old_height)
{
gtk_widget_get_size_request (widget, old_width, old_height);
gtk_widget_set_usize_internal (widget, width, height,
GTK_QUEUE_RESIZE_INVALIDATE_ONLY);
}
/**
* _gtk_widget_restore_size_request:
* @widget: a #GtkWidget
* @old_width: saved forced minimum size
* @old_height: saved forced minimum size
*
* Undoes the operation of_gtk_widget_override_size_request().
*/
void
_gtk_widget_restore_size_request (GtkWidget *widget,
int old_width,
int old_height)
{
gtk_widget_set_usize_internal (widget, old_width, old_height,
GTK_QUEUE_RESIZE_INVALIDATE_ONLY);
}
/**
* gtk_widget_set_events:
* @widget: a #GtkWidget
@@ -15260,14 +15207,12 @@ gtk_widget_real_set_has_tooltip (GtkWidget *widget,
gdk_window_set_events (priv->window,
gdk_window_get_events (priv->window) |
GDK_LEAVE_NOTIFY_MASK |
GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK);
GDK_POINTER_MOTION_MASK);
if (gtk_widget_get_has_window (widget))
gtk_widget_add_events (widget,
GDK_LEAVE_NOTIFY_MASK |
GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK);
GDK_POINTER_MOTION_MASK);
}
g_object_set_qdata (G_OBJECT (widget), quark_has_tooltip,
@@ -16402,14 +16347,18 @@ gtk_widget_get_path (GtkWidget *widget)
}
void
_gtk_widget_style_context_invalidated (GtkWidget *widget)
gtk_widget_clear_path (GtkWidget *widget)
{
if (widget->priv->path)
{
gtk_widget_path_free (widget->priv->path);
widget->priv->path = NULL;
}
}
void
_gtk_widget_style_context_invalidated (GtkWidget *widget)
{
if (gtk_widget_get_realized (widget))
g_signal_emit (widget, widget_signals[STYLE_UPDATED], 0);
else
+2 -2
View File
@@ -497,8 +497,8 @@ gtk_widget_path_iter_get_siblings (const GtkWidgetPath *path,
{
GtkPathElement *elem;
g_return_val_if_fail (path != NULL, G_TYPE_INVALID);
g_return_val_if_fail (path->elems->len != 0, G_TYPE_INVALID);
g_return_val_if_fail (path != NULL, NULL);
g_return_val_if_fail (path->elems->len != 0, NULL);
if (pos < 0 || pos >= path->elems->len)
pos = path->elems->len - 1;
+1 -8
View File
@@ -63,14 +63,6 @@ void _gtk_widget_add_attached_window (GtkWidget *widget,
void _gtk_widget_remove_attached_window (GtkWidget *widget,
GtkWindow *window);
void _gtk_widget_override_size_request (GtkWidget *widget,
int width,
int height,
int *old_width,
int *old_height);
void _gtk_widget_restore_size_request (GtkWidget *widget,
int old_width,
int old_height);
void _gtk_widget_get_preferred_size_for_size (GtkWidget *widget,
GtkOrientation orientation,
gint size,
@@ -148,6 +140,7 @@ gboolean _gtk_widget_captured_event (GtkWidget *widget,
GdkEvent *event);
GtkWidgetPath * _gtk_widget_create_path (GtkWidget *widget);
void gtk_widget_clear_path (GtkWidget *widget);
void _gtk_widget_invalidate_style_context (GtkWidget *widget,
GtkCssChange change);
void _gtk_widget_style_context_invalidated (GtkWidget *widget);
+51 -108
View File
@@ -227,8 +227,7 @@ struct _GtkWindowPrivate
guint gravity : 5; /* GdkGravity */
guint csd_requested : 1;
guint client_decorated : 1; /* Decorations drawn client-side */
guint custom_title : 1; /* app-provided titlebar if CSD can't
* be enabled */
guint use_client_shadow : 1; /* Decorations use client-side shadows */
guint maximized : 1;
guint fullscreen : 1;
guint tiled : 1;
@@ -336,7 +335,6 @@ struct _GtkWindowGeometryInfo
*/
GdkGeometry geometry; /* Geometry hints */
GdkWindowHints mask;
GtkWidget *widget; /* subwidget to which hints apply */
/* from last gtk_window_resize () - if > 0, indicates that
* we should resize to this size.
*/
@@ -3869,7 +3867,6 @@ gtk_window_get_geometry_info (GtkWindow *window,
info->last.configure_request.y = 0;
info->last.configure_request.width = -1;
info->last.configure_request.height = -1;
info->widget = NULL;
info->mask = 0;
priv->geometry_info = info;
}
@@ -3880,7 +3877,9 @@ gtk_window_get_geometry_info (GtkWindow *window,
/**
* gtk_window_set_geometry_hints:
* @window: a #GtkWindow
* @geometry_widget: (allow-none): widget the geometry hints will be applied to or %NULL
* @geometry_widget: (allow-none): widget the geometry hints used to be applied to
* or %NULL. Since 3.18 this argument is ignored and GTK behaves as if %NULL was
* set.
* @geometry: (allow-none): struct containing geometry information or %NULL
* @geom_mask: mask indicating which struct fields should be paid attention to
*
@@ -3903,17 +3902,6 @@ gtk_window_set_geometry_hints (GtkWindow *window,
info = gtk_window_get_geometry_info (window, TRUE);
if (info->widget)
g_signal_handlers_disconnect_by_func (info->widget,
gtk_widget_destroyed,
&info->widget);
info->widget = geometry_widget;
if (info->widget)
g_signal_connect (geometry_widget, "destroy",
G_CALLBACK (gtk_widget_destroyed),
&info->widget);
if (geometry)
info->geometry = *geometry;
@@ -3947,7 +3935,7 @@ unset_titlebar (GtkWindow *window)
}
static gboolean
gtk_window_supports_csd (GtkWindow *window)
gtk_window_supports_client_shadow (GtkWindow *window)
{
GtkWidget *widget = GTK_WIDGET (window);
@@ -3997,13 +3985,21 @@ gtk_window_enable_csd (GtkWindow *window)
GtkWidget *widget = GTK_WIDGET (window);
GdkVisual *visual;
/* We need a visual with alpha */
visual = gdk_screen_get_rgba_visual (gtk_widget_get_screen (widget));
g_assert (visual != NULL);
gtk_widget_set_visual (widget, visual);
/* We need a visual with alpha for client shadows */
if (priv->use_client_shadow)
{
visual = gdk_screen_get_rgba_visual (gtk_widget_get_screen (widget));
if (visual != NULL)
gtk_widget_set_visual (widget, visual);
gtk_style_context_add_class (gtk_widget_get_style_context (widget), GTK_STYLE_CLASS_CSD);
}
else
{
gtk_style_context_add_class (gtk_widget_get_style_context (widget), "solid-csd");
}
priv->client_decorated = TRUE;
gtk_style_context_add_class (gtk_widget_get_style_context (widget), GTK_STYLE_CLASS_CSD);
}
static void
@@ -4038,7 +4034,6 @@ gtk_window_set_titlebar (GtkWindow *window,
{
GtkWidget *widget = GTK_WIDGET (window);
GtkWindowPrivate *priv = window->priv;
GdkVisual *visual;
gboolean was_mapped;
g_return_if_fail (GTK_IS_WINDOW (window));
@@ -4059,18 +4054,15 @@ gtk_window_set_titlebar (GtkWindow *window,
if (titlebar == NULL)
{
priv->custom_title = FALSE;
priv->client_decorated = FALSE;
gtk_style_context_remove_class (gtk_widget_get_style_context (widget), GTK_STYLE_CLASS_CSD);
goto out;
}
if (gtk_window_supports_csd (window))
gtk_window_enable_csd (window);
else
priv->custom_title = TRUE;
priv->use_client_shadow = gtk_window_supports_client_shadow (window);
gtk_window_enable_csd (window);
priv->title_box = titlebar;
gtk_widget_set_parent (priv->title_box, widget);
if (GTK_IS_HEADER_BAR (titlebar))
@@ -4080,10 +4072,6 @@ gtk_window_set_titlebar (GtkWindow *window,
on_titlebar_title_notify (GTK_HEADER_BAR (titlebar), NULL, window);
}
visual = gdk_screen_get_rgba_visual (gtk_widget_get_screen (widget));
if (visual)
gtk_widget_set_visual (widget, visual);
gtk_style_context_add_class (gtk_widget_get_style_context (titlebar),
GTK_STYLE_CLASS_TITLEBAR);
@@ -4171,8 +4159,6 @@ gtk_window_set_decorated (GtkWindow *window,
{
if (priv->client_decorated)
gdk_window_set_decorations (gdk_window, 0);
else if (priv->custom_title)
gdk_window_set_decorations (gdk_window, GDK_DECOR_BORDER);
else
gdk_window_set_decorations (gdk_window, GDK_DECOR_ALL);
}
@@ -5651,10 +5637,6 @@ gtk_window_finalize (GObject *object)
if (priv->geometry_info)
{
if (priv->geometry_info->widget)
g_signal_handlers_disconnect_by_func (priv->geometry_info->widget,
gtk_widget_destroyed,
&priv->geometry_info->widget);
g_free (priv->geometry_info);
}
@@ -5809,7 +5791,8 @@ create_decoration (GtkWidget *widget)
GtkWindow *window = GTK_WINDOW (widget);
GtkWindowPrivate *priv = window->priv;
if (!gtk_window_supports_csd (window))
priv->use_client_shadow = gtk_window_supports_client_shadow (window);
if (!priv->use_client_shadow)
return;
gtk_window_enable_csd (window);
@@ -6626,7 +6609,7 @@ update_border_windows (GtkWindow *window)
border.right + handle, border.top + handle);
gdk_window_move_resize (priv->border_window[GDK_WINDOW_EDGE_SOUTH_WEST],
window_border.left - border.left, window_border.top + height - handle,
window_border.left + handle, border.bottom + handle);
border.left + handle, border.bottom + handle);
gdk_window_move_resize (priv->border_window[GDK_WINDOW_EDGE_SOUTH_EAST],
window_border.left + width - handle, window_border.top + height - handle,
border.right + handle, border.bottom + handle);
@@ -6892,7 +6875,7 @@ update_realized_window_properties (GtkWindow *window,
{
GtkWindowPrivate *priv = window->priv;
if (priv->client_decorated)
if (priv->client_decorated && priv->use_client_shadow)
update_shadow_width (window, window_border);
update_opaque_region (window, window_border, child_allocation);
@@ -7035,8 +7018,7 @@ gtk_window_realize (GtkWidget *widget)
GDK_FOCUS_CHANGE_MASK |
GDK_STRUCTURE_MASK);
if (priv->decorated &&
(priv->client_decorated || priv->custom_title))
if (priv->decorated && priv->client_decorated)
attributes.event_mask |= GDK_POINTER_MOTION_MASK;
attributes.type_hint = priv->type_hint;
@@ -7111,8 +7093,6 @@ gtk_window_realize (GtkWidget *widget)
if (!priv->decorated || priv->client_decorated)
gdk_window_set_decorations (gdk_window, 0);
else if (priv->custom_title)
gdk_window_set_decorations (gdk_window, GDK_DECOR_BORDER);
if (!priv->deletable)
gdk_window_set_functions (gdk_window, GDK_FUNC_ALL | GDK_FUNC_CLOSE);
@@ -9528,56 +9508,6 @@ gtk_window_compute_hints (GtkWindow *window,
*new_flags = 0;
}
if (geometry_info && geometry_info->widget)
{
/* If the geometry widget is set, then the hints really apply to that
* widget. This is pretty much meaningless unless the window layout
* is such that the rest of the window adds fixed size borders to
* the geometry widget. Our job is to figure the size of the borders;
* We do that by asking how big the toplevel would be if the
* geometry widget was *really big*.
*
* +----------+
* |AAAAAAAAA | At small sizes, the minimum sizes of widgets
* |GGGGG B| in the border can confuse things
* |GGGGG B|
* | B|
* +----------+
*
* +-----------+
* |AAAAAAAAA | When the geometry widget is large, things are
* |GGGGGGGGGGB| clearer.
* |GGGGGGGGGGB|
* |GGGGGGGGGG |
* +-----------+
*/
#define TEMPORARY_SIZE 10000 /* 10,000 pixels should be bigger than real widget sizes */
GtkRequisition req;
int current_width, current_height;
_gtk_widget_override_size_request (geometry_info->widget,
TEMPORARY_SIZE, TEMPORARY_SIZE,
&current_width, &current_height);
gtk_widget_get_preferred_size (widget,
&req, NULL);
_gtk_widget_restore_size_request (geometry_info->widget,
current_width, current_height);
extra_width = req.width - TEMPORARY_SIZE;
extra_height = req.height - TEMPORARY_SIZE;
if (extra_width < 0 || extra_height < 0)
{
g_warning("Toplevel size doesn't seem to directly depend on the "
"size of the geometry widget from gtk_window_set_geometry_hints(). "
"The geometry widget might not be in the window, or it might not "
"be packed into the window appropriately");
extra_width = MAX(extra_width, 0);
extra_height = MAX(extra_height, 0);
}
#undef TEMPORARY_SIZE
}
/* We don't want to set GDK_HINT_POS in here, we just set it
* in gtk_window_move_resize() when we want the position
* honored.
@@ -9689,18 +9619,31 @@ gtk_window_draw (GtkWidget *widget,
add_window_frame_style_class (context);
gtk_render_background (context, cr,
window_border.left, window_border.top,
allocation.width -
(window_border.left + window_border.right),
allocation.height -
(window_border.top + window_border.bottom));
gtk_render_frame (context, cr,
window_border.left, window_border.top,
allocation.width -
(window_border.left + window_border.right),
allocation.height -
(window_border.top + window_border.bottom));
if (priv->use_client_shadow)
{
gtk_render_background (context, cr,
window_border.left, window_border.top,
allocation.width -
(window_border.left + window_border.right),
allocation.height -
(window_border.top + window_border.bottom));
gtk_render_frame (context, cr,
window_border.left, window_border.top,
allocation.width -
(window_border.left + window_border.right),
allocation.height -
(window_border.top + window_border.bottom));
}
else
{
gtk_render_background (context, cr, 0, 0,
allocation.width,
allocation.height);
gtk_render_frame (context, cr, 0, 0,
allocation.width,
allocation.height);
}
gtk_style_context_restore (context);
}
@@ -10466,7 +10409,7 @@ gtk_window_set_screen (GtkWindow *window,
}
g_object_notify (G_OBJECT (window), "screen");
if (was_rgba)
if (was_rgba && priv->use_client_shadow)
{
GdkVisual *visual;
+7
View File
@@ -3227,6 +3227,13 @@ GtkVolumeButton.button { padding: 8px; }
0 0 0 1px transparentize($_wm_border,0.1);
}
}
&.solid-csd {
border-radius: 0;
margin: 4px;
background-color: $backdrop_bg_color;
border: solid 1px $backdrop_borders_color;
box-shadow: none;
}
}
// Window Close button
+6
View File
@@ -4245,6 +4245,12 @@ GtkVolumeButton.button, .header-bar GtkVolumeButton.button.titlebutton,
.window-frame.csd.message-dialog {
border-radius: 7px;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(28, 31, 31, 0.8); }
.window-frame.solid-csd {
border-radius: 0;
margin: 4px;
background-color: #393f3f;
border: solid 1px #1e2222;
box-shadow: none; }
.header-bar .titlebutton.button,
.titlebar .titlebutton.button {
+6
View File
@@ -4417,6 +4417,12 @@ GtkVolumeButton.button, .header-bar GtkVolumeButton.button.titlebutton,
.window-frame.csd.message-dialog {
border-radius: 7px;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.13); }
.window-frame.solid-csd {
border-radius: 0;
margin: 4px;
background-color: #ededed;
border: solid 1px #a8a8a8;
box-shadow: none; }
.header-bar .titlebutton.button,
.titlebar .titlebutton.button {
+8 -1
View File
@@ -583,7 +583,7 @@ $_dot_color: $selected_bg_color;
&:backdrop {
color: $backdrop_fg_color;
@extend %undecorated_button;
&:hover { color: $selected_fg_color; background-color: selected_bg_color; }
&:hover { color: $selected_fg_color; background-color: $selected_bg_color; }
}
&:insensitive { color: $insensitive_fg_color; }
}
@@ -2260,6 +2260,13 @@ GtkColorChooserWidget #add-color-button {
box-shadow: none;
}
}
&.solid-csd {
border-radius: 0;
margin: 4px;
background-color: $backdrop_bg_color;
border: solid 1px $backdrop_borders_color;
box-shadow: none;
}
}
// Window Close button
+8 -3
View File
@@ -175,8 +175,7 @@
box-shadow: none; }
.label:insensitive, .label:backdrop:insensitive {
color: #7f7f7f;
background-color: white; }
color: #7f7f7f; }
/*********************
* Spinner Animation *
@@ -782,7 +781,7 @@
color: #000; }
.menuitem.button.flat:backdrop:hover {
color: #fff;
background-color: selected_bg_color; }
background-color: #000; }
.menuitem.button.flat:insensitive {
color: #7f7f7f; }
@@ -2512,6 +2511,12 @@ GtkColorChooserWidget #add-color-button {
.window-frame.csd.tooltip {
border-radius: 5px;
box-shadow: none; }
.window-frame.solid-csd {
border-radius: 0;
margin: 4px;
background-color: #fff;
border: solid 1px #8b8b8b;
box-shadow: none; }
.button.titlebutton {
padding: 8px;
+9
View File
@@ -872,3 +872,12 @@ GtkCalendar.button:hover {
.window-frame:backdrop {
box-shadow: 0 2px 5px 1px alpha(black, 0.5);
}
.window-frame.solid-csd {
border-radius: 0;
margin: 2px;
background-color: @bg_color;
border-style: outset;
border-width: 2px;
box-shadow: none;
}
+1
View File
@@ -118,6 +118,7 @@ gtk/gtkcolorscale.c
gtk/gtkcolorswatch.c
gtk/gtkcombobox.c
gtk/gtkcontainer.c
gtk/gtkcssnode.c
gtk/gtkcssprovider.c
gtk/gtkcssshorthandproperty.c
gtk/gtkcssstyleproperty.c
+3
View File
@@ -60,6 +60,7 @@ gtk/inspector/classes-list.ui
gtk/inspector/classes-list.ui.h
gtk/inspector/css-editor.ui
gtk/inspector/css-editor.ui.h
gtk/inspector/css-node-tree.ui
gtk/inspector/data-list.ui
gtk/inspector/data-list.ui.h
gtk/inspector/general.ui
@@ -167,6 +168,8 @@ testsuite/reftests/border-image-url.ref.ui
testsuite/reftests/border-image-url-scaled.ref.ui
testsuite/reftests/border-image-url-scaled.ui
testsuite/reftests/border-image-url.ui
testsuite/reftests/box-order.ref.ui
testsuite/reftests/box-order.ui
testsuite/reftests/box-packing.ui
testsuite/reftests/box-pseudo-classes.ref.ui
testsuite/reftests/box-pseudo-classes.ui
+2208 -2208
View File
File diff suppressed because it is too large Load Diff
+2261 -2229
View File
File diff suppressed because it is too large Load Diff
+2206 -2206
View File
File diff suppressed because it is too large Load Diff
+2216 -2209
View File
File diff suppressed because it is too large Load Diff
+930 -1130
View File
File diff suppressed because it is too large Load Diff
+331 -294
View File
File diff suppressed because it is too large Load Diff
+3929 -2975
View File
File diff suppressed because it is too large Load Diff
+324 -292
View File
File diff suppressed because it is too large Load Diff
+2
View File
@@ -118,6 +118,7 @@ gtk/gtkcolorscale.c
gtk/gtkcolorswatch.c
gtk/gtkcombobox.c
gtk/gtkcontainer.c
gtk/gtkcssnode.c
gtk/gtkcssprovider.c
gtk/gtkcssshorthandproperty.c
gtk/gtkcssstyleproperty.c
@@ -289,6 +290,7 @@ gtk/inspector/classes-list.c
gtk/inspector/classes-list.ui
gtk/inspector/css-editor.c
gtk/inspector/css-editor.ui
gtk/inspector/css-node-tree.ui
gtk/inspector/data-list.ui
gtk/inspector/general.c
gtk/inspector/general.ui
+2
View File
@@ -94,6 +94,8 @@ testsuite/reftests/border-image-url.ref.ui
testsuite/reftests/border-image-url-scaled.ref.ui
testsuite/reftests/border-image-url-scaled.ui
testsuite/reftests/border-image-url.ui
testsuite/reftests/box-order.ref.ui
testsuite/reftests/box-order.ui
testsuite/reftests/box-packing.ui
testsuite/reftests/box-pseudo-classes.ref.ui
testsuite/reftests/box-pseudo-classes.ui
+156 -730
View File
File diff suppressed because it is too large Load Diff
+2064 -1920
View File
File diff suppressed because it is too large Load Diff
+1674 -1671
View File
File diff suppressed because it is too large Load Diff
+1641 -1656
View File
File diff suppressed because it is too large Load Diff
+1707 -1669
View File
File diff suppressed because it is too large Load Diff
+204 -194
View File
File diff suppressed because it is too large Load Diff
+1973 -1742
View File
File diff suppressed because it is too large Load Diff
+222 -282
View File
File diff suppressed because it is too large Load Diff
+95 -87
View File
@@ -13,8 +13,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gtk+\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-03-11 10:18+0000\n"
"PO-Revision-Date: 2015-03-12 02:52+0900\n"
"POT-Creation-Date: 2015-03-23 22:08+0000\n"
"PO-Revision-Date: 2015-03-24 09:52+0900\n"
"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
"Language-Team: Gnome Korea <gnome-kr@googlegroups.com>\n"
"Language: Korean\n"
@@ -1060,6 +1060,10 @@ msgctxt "Stock label"
msgid "Zoom _Out"
msgstr "축소(_O)"
#: gtk/a11y/gtkmenubuttonaccessible.c:102 gtk/inspector/window.ui:356
msgid "Menu"
msgstr "메뉴"
#: gtk/a11y/gtkmenuitemaccessible.c:445
msgctxt "Action description"
msgid "Clicks the menuitem"
@@ -1237,7 +1241,7 @@ msgstr ""
#: gtk/gtkmountoperation.c:543 gtk/gtkpagesetupunixdialog.c:196
#: gtk/gtkprintbackend.c:763 gtk/gtkprinteroptionwidget.c:545
#: gtk/gtkprintunixdialog.c:665 gtk/gtkprintunixdialog.c:738
#: gtk/gtkwindow.c:11917 gtk/inspector/css-editor.c:199
#: gtk/gtkwindow.c:11925 gtk/inspector/css-editor.c:199
#: gtk/ui/gtkappchooserdialog.ui:79 gtk/ui/gtkassistant.ui:169
#: gtk/ui/gtkcolorchooserdialog.ui:38 gtk/ui/gtkfontchooserdialog.ui:35
msgid "_Cancel"
@@ -1286,7 +1290,7 @@ msgid "_Apply"
msgstr "적용(_A)"
#: gtk/deprecated/gtkfontsel.c:1698 gtk/gtkmessagedialog.c:936
#: gtk/gtkmessagedialog.c:958 gtk/gtkprintbackend.c:764 gtk/gtkwindow.c:11918
#: gtk/gtkmessagedialog.c:958 gtk/gtkprintbackend.c:764 gtk/gtkwindow.c:11926
#: gtk/inspector/classes-list.c:127
msgid "_OK"
msgstr "확인(_O)"
@@ -2141,31 +2145,31 @@ msgstr "오른쪽(_R):"
msgid "Paper Margins"
msgstr "용지 여백"
#: gtk/gtkentry.c:9629 gtk/gtkentry.c:9782 gtk/gtklabel.c:6597
#: gtk/gtkentry.c:9615 gtk/gtkentry.c:9768 gtk/gtklabel.c:6596
#: gtk/gtktextview.c:9037 gtk/gtktextview.c:9225
msgid "Cu_t"
msgstr "잘라내기(_T)"
#: gtk/gtkentry.c:9633 gtk/gtkentry.c:9785 gtk/gtklabel.c:6598
#: gtk/gtkentry.c:9619 gtk/gtkentry.c:9771 gtk/gtklabel.c:6597
#: gtk/gtktextview.c:9041 gtk/gtktextview.c:9229
msgid "_Copy"
msgstr "복사(_C)"
#: gtk/gtkentry.c:9637 gtk/gtkentry.c:9788 gtk/gtklabel.c:6599
#: gtk/gtkentry.c:9623 gtk/gtkentry.c:9774 gtk/gtklabel.c:6598
#: gtk/gtktextview.c:9043 gtk/gtktextview.c:9231
msgid "_Paste"
msgstr "붙여넣기(_P)"
#: gtk/gtkentry.c:9640 gtk/gtklabel.c:6601 gtk/gtktextview.c:9046
#: gtk/gtkentry.c:9626 gtk/gtklabel.c:6600 gtk/gtktextview.c:9046
msgid "_Delete"
msgstr "삭제(_D)"
#: gtk/gtkentry.c:9651 gtk/gtklabel.c:6610 gtk/gtktextview.c:9060
#: gtk/gtkentry.c:9637 gtk/gtklabel.c:6609 gtk/gtktextview.c:9060
msgid "Select _All"
msgstr "모두 선택(_A)"
# Caps Lock 키보드 위에 쓰여 있는 글이므로 번역/음역하지 않는다
#: gtk/gtkentry.c:10849
#: gtk/gtkentry.c:10835
msgid "Caps Lock is on"
msgstr "Caps Lock이 켜져 있습니다"
@@ -2185,7 +2189,7 @@ msgstr "(없음)"
msgid "_Open"
msgstr "열기(_O)"
#: gtk/gtkfilechooserbutton.c:2137
#: gtk/gtkfilechooserbutton.c:2138
msgid "Other…"
msgstr "기타…"
@@ -2281,7 +2285,7 @@ msgstr "폴더를 파일보다 앞에 정렬(_F)"
#. this is the header for the location column in the print dialog
#: gtk/gtkfilechooserwidget.c:2018 gtk/inspector/style-prop-list.ui:118
#: gtk/ui/gtkfilechooserwidget.ui:259 gtk/ui/gtkprintunixdialog.ui:137
#: gtk/ui/gtkfilechooserwidget.ui:259 gtk/ui/gtkprintunixdialog.ui:135
msgid "Location"
msgstr "위치"
@@ -2399,7 +2403,7 @@ msgstr "OpenGL 컨텍스트 만들기 실패"
msgid "Application menu"
msgstr "프로그램 메뉴"
#: gtk/gtkheaderbar.c:479 gtk/gtkwindow.c:8591
#: gtk/gtkheaderbar.c:479 gtk/gtkwindow.c:8586
msgid "Close"
msgstr "닫기"
@@ -2450,12 +2454,12 @@ msgid "Error"
msgstr "오류"
#. Open Link
#: gtk/gtklabel.c:6578
#: gtk/gtklabel.c:6577
msgid "_Open Link"
msgstr "링크 열기(_O)"
#. Copy Link Address
#: gtk/gtklabel.c:6587
#: gtk/gtklabel.c:6586
msgid "Copy _Link Address"
msgstr "링크 주소 복사(_L)"
@@ -2598,10 +2602,6 @@ msgstr "GTK+ 옵션 표시"
msgid "default:LTR"
msgstr "default:LTR"
#: gtk/gtkmenubutton.c:640 gtk/inspector/window.ui:356
msgid "Menu"
msgstr "메뉴"
#: gtk/gtkmessagedialog.c:948
msgid "_No"
msgstr "아니요(_N)"
@@ -2696,12 +2696,12 @@ msgstr "Z 셸"
msgid "Cannot end process with PID %d: %s"
msgstr "PID %d 프로세스를 끝낼 수 없습니다: %s"
#: gtk/gtknotebook.c:5167 gtk/gtknotebook.c:7896
#: gtk/gtknotebook.c:5173 gtk/gtknotebook.c:7904
#, c-format
msgid "Page %u"
msgstr "%u페이지"
#: gtk/gtkpagesetup.c:652 gtk/gtkpapersize.c:985 gtk/gtkpapersize.c:1025
#: gtk/gtkpagesetup.c:652 gtk/gtkpapersize.c:986 gtk/gtkpapersize.c:1026
msgid "Not a valid page setup file"
msgstr "올바른 페이지 설정 파일이 아닙니다"
@@ -2733,7 +2733,7 @@ msgid "Manage Custom Sizes…"
msgstr "사용자 설정 크기 관리…"
#: gtk/gtkpagesetupunixdialog.c:900 gtk/ui/gtkpagesetupunixdialog.ui:31
#: gtk/ui/gtkprintunixdialog.ui:1031
#: gtk/ui/gtkprintunixdialog.ui:1029
msgid "Page Setup"
msgstr "페이지 설정"
@@ -2930,7 +2930,7 @@ msgstr "빼기(_E)"
msgid "_Detect Media"
msgstr "미디어 검색(_D)"
#: gtk/gtkplacessidebar.c:4167
#: gtk/gtkplacessidebar.c:4165
msgid "Computer"
msgstr "컴퓨터"
@@ -3287,7 +3287,7 @@ msgstr "검색"
#. * glyphs then use MEDIUM VERTICAL BAR (U+2759) as the text for
#. * the state
#.
#: gtk/gtkswitch.c:379 gtk/gtkswitch.c:431 gtk/gtkswitch.c:606
#: gtk/gtkswitch.c:379 gtk/gtkswitch.c:431 gtk/gtkswitch.c:605
msgctxt "switch"
msgid "ON"
msgstr "켬"
@@ -3295,7 +3295,7 @@ msgstr "켬"
#. Translators: if the "off" state label requires more than three
#. * glyphs then use WHITE CIRCLE (U+25CB) as the text for the state
#.
#: gtk/gtkswitch.c:387 gtk/gtkswitch.c:432 gtk/gtkswitch.c:621
#: gtk/gtkswitch.c:387 gtk/gtkswitch.c:432 gtk/gtkswitch.c:620
msgctxt "switch"
msgid "OFF"
msgstr "끔"
@@ -3482,12 +3482,12 @@ msgctxt "volume percentage"
msgid "%d%%"
msgstr "%d%%"
#: gtk/gtkwindow.c:11905
#: gtk/gtkwindow.c:11913
#, c-format
msgid "Do you want to use GTK+ Inspector?"
msgstr "GTK+ 인스펙터를 사용하시겠습니까?"
#: gtk/gtkwindow.c:11907
#: gtk/gtkwindow.c:11915
#, c-format
msgid ""
"GTK+ Inspector is an interactive debugger that lets you explore and modify "
@@ -3498,7 +3498,7 @@ msgstr ""
"그램의 내부 구조를 살펴 보거나 수정할 수 있습니다. GTK+ 인스펙터를 사용했을 "
"때 프로그램이 멈추거나 이상 동작으로 중지할 수도 있습니다."
#: gtk/gtkwindow.c:11912
#: gtk/gtkwindow.c:11920
msgid "Don't show this message again"
msgstr "이 메시지 다시 보지 않기"
@@ -3706,18 +3706,26 @@ msgid "Accessible role"
msgstr "접근성 역할"
#: gtk/inspector/misc-info.ui:507
msgid "Accessible name"
msgstr "접근성 이름"
#: gtk/inspector/misc-info.ui:541
msgid "Accessible description"
msgstr "접근성 설명"
#: gtk/inspector/misc-info.ui:575
msgid "Mapped"
msgstr "매핑됨"
#: gtk/inspector/misc-info.ui:543
#: gtk/inspector/misc-info.ui:611
msgid "Realized"
msgstr "실재화함"
#: gtk/inspector/misc-info.ui:579
#: gtk/inspector/misc-info.ui:647
msgid "Is Toplevel"
msgstr "최상위 여부"
#: gtk/inspector/misc-info.ui:615
#: gtk/inspector/misc-info.ui:683
msgid "Child Visible"
msgstr "하위 표시"
@@ -3920,7 +3928,7 @@ msgstr "자체"
msgid "Cumulative"
msgstr "누적"
#: gtk/inspector/statistics.ui:164
#: gtk/inspector/statistics.ui:165
msgid "Enable statistics with GOBJECT_DEBUG=instance-count"
msgstr "GOBJECT_DEBUG=instance-count 변수로 통계 기능 사용"
@@ -4136,7 +4144,7 @@ msgstr "리소스"
msgid "Visual"
msgstr "겉 모양"
#: gtk/inspector/window.ui:436 gtk/ui/gtkprintunixdialog.ui:499
#: gtk/inspector/window.ui:436 gtk/ui/gtkprintunixdialog.ui:497
msgid "General"
msgstr "일반"
@@ -5192,7 +5200,7 @@ msgstr "조건에 맞는 글꼴이 없습니다. 검색 조건을 바꿔서 다
msgid "_Format for:"
msgstr "다음 프린터에 대한 형식(_F):"
#: gtk/ui/gtkpagesetupunixdialog.ui:88 gtk/ui/gtkprintunixdialog.ui:903
#: gtk/ui/gtkpagesetupunixdialog.ui:88 gtk/ui/gtkprintunixdialog.ui:901
msgid "_Paper size:"
msgstr "용지 크기(_P):"
@@ -5200,19 +5208,19 @@ msgstr "용지 크기(_P):"
msgid "_Orientation:"
msgstr "방향(_O):"
#: gtk/ui/gtkpagesetupunixdialog.ui:179 gtk/ui/gtkprintunixdialog.ui:959
#: gtk/ui/gtkpagesetupunixdialog.ui:179 gtk/ui/gtkprintunixdialog.ui:957
msgid "Portrait"
msgstr "세로 방향"
#: gtk/ui/gtkpagesetupunixdialog.ui:229 gtk/ui/gtkprintunixdialog.ui:961
#: gtk/ui/gtkpagesetupunixdialog.ui:229 gtk/ui/gtkprintunixdialog.ui:959
msgid "Reverse portrait"
msgstr "뒤집힌 세로 방향"
#: gtk/ui/gtkpagesetupunixdialog.ui:279 gtk/ui/gtkprintunixdialog.ui:960
#: gtk/ui/gtkpagesetupunixdialog.ui:279 gtk/ui/gtkprintunixdialog.ui:958
msgid "Landscape"
msgstr "가로 방향"
#: gtk/ui/gtkpagesetupunixdialog.ui:328 gtk/ui/gtkprintunixdialog.ui:962
#: gtk/ui/gtkpagesetupunixdialog.ui:328 gtk/ui/gtkprintunixdialog.ui:960
msgid "Reverse landscape"
msgstr "뒤집힌 가로 방향"
@@ -5224,37 +5232,37 @@ msgstr "아래 경로"
msgid "Up Path"
msgstr "위 경로"
#: gtk/ui/gtkprintunixdialog.ui:126
#: gtk/ui/gtkprintunixdialog.ui:124
msgid "Printer"
msgstr "프린터"
#. this is the header for the printer status column in the print dialog
#: gtk/ui/gtkprintunixdialog.ui:148
#: gtk/ui/gtkprintunixdialog.ui:146
msgid "Status"
msgstr "상태"
#: gtk/ui/gtkprintunixdialog.ui:210
#: gtk/ui/gtkprintunixdialog.ui:208
msgid "Range"
msgstr "범위"
#: gtk/ui/gtkprintunixdialog.ui:233
#: gtk/ui/gtkprintunixdialog.ui:231
msgid "_All Pages"
msgstr "모든 페이지(_A)"
#: gtk/ui/gtkprintunixdialog.ui:251
#: gtk/ui/gtkprintunixdialog.ui:249
msgid "C_urrent Page"
msgstr "현재 페이지(_U)"
#: gtk/ui/gtkprintunixdialog.ui:271
#: gtk/ui/gtkprintunixdialog.ui:269
msgid "Se_lection"
msgstr "선택(_L)"
#: gtk/ui/gtkprintunixdialog.ui:290
#: gtk/ui/gtkprintunixdialog.ui:288
msgid "Pag_es:"
msgstr "페이지(_E):"
#: gtk/ui/gtkprintunixdialog.ui:294 gtk/ui/gtkprintunixdialog.ui:315
#: gtk/ui/gtkprintunixdialog.ui:322
#: gtk/ui/gtkprintunixdialog.ui:292 gtk/ui/gtkprintunixdialog.ui:313
#: gtk/ui/gtkprintunixdialog.ui:320
msgid ""
"Specify one or more page ranges,\n"
" e.g. 13, 7, 11"
@@ -5262,105 +5270,105 @@ msgstr ""
"페이지 범위를 지정하십시오.\n"
" 예) 13, 7, 11"
#: gtk/ui/gtkprintunixdialog.ui:321
#: gtk/ui/gtkprintunixdialog.ui:319
msgid "Pages"
msgstr "페이지"
#: gtk/ui/gtkprintunixdialog.ui:363
#: gtk/ui/gtkprintunixdialog.ui:361
msgid "Copies"
msgstr "인쇄 매수"
#: gtk/ui/gtkprintunixdialog.ui:390
#: gtk/ui/gtkprintunixdialog.ui:388
msgid "Copie_s:"
msgstr "인쇄 매수(_S):"
#: gtk/ui/gtkprintunixdialog.ui:420
#: gtk/ui/gtkprintunixdialog.ui:418
msgid "C_ollate"
msgstr "한 부씩 인쇄(_O)"
#: gtk/ui/gtkprintunixdialog.ui:438
#: gtk/ui/gtkprintunixdialog.ui:436
msgid "_Reverse"
msgstr "마지막 페이지부터(_R)"
#: gtk/ui/gtkprintunixdialog.ui:529
#: gtk/ui/gtkprintunixdialog.ui:527
msgid "Layout"
msgstr "배치"
#: gtk/ui/gtkprintunixdialog.ui:556
#: gtk/ui/gtkprintunixdialog.ui:554
msgid "T_wo-sided:"
msgstr "양면(_W):"
#: gtk/ui/gtkprintunixdialog.ui:589
#: gtk/ui/gtkprintunixdialog.ui:587
msgid "Pages per _side:"
msgstr "한 장당 페이지 수(_S):"
#: gtk/ui/gtkprintunixdialog.ui:624
#: gtk/ui/gtkprintunixdialog.ui:622
msgid "Page or_dering:"
msgstr "페이지 순서(_D):"
#: gtk/ui/gtkprintunixdialog.ui:658
#: gtk/ui/gtkprintunixdialog.ui:656
msgid "_Only print:"
msgstr "다음만 인쇄(_O):"
#: gtk/ui/gtkprintunixdialog.ui:678
#: gtk/ui/gtkprintunixdialog.ui:676
msgid "All sheets"
msgstr "모든 페이지"
#: gtk/ui/gtkprintunixdialog.ui:679
#: gtk/ui/gtkprintunixdialog.ui:677
msgid "Even sheets"
msgstr "짝수 페이지"
#: gtk/ui/gtkprintunixdialog.ui:680
#: gtk/ui/gtkprintunixdialog.ui:678
msgid "Odd sheets"
msgstr "홀수 페이지"
#: gtk/ui/gtkprintunixdialog.ui:696
#: gtk/ui/gtkprintunixdialog.ui:694
msgid "Sc_ale:"
msgstr "크기 조정(_A):"
#: gtk/ui/gtkprintunixdialog.ui:777
#: gtk/ui/gtkprintunixdialog.ui:775
msgid "Paper"
msgstr "용지"
#: gtk/ui/gtkprintunixdialog.ui:804
#: gtk/ui/gtkprintunixdialog.ui:802
msgid "Paper _type:"
msgstr "용지 종류(_T):"
#: gtk/ui/gtkprintunixdialog.ui:837
#: gtk/ui/gtkprintunixdialog.ui:835
msgid "Paper _source:"
msgstr "용지 공급(_S):"
#: gtk/ui/gtkprintunixdialog.ui:870
#: gtk/ui/gtkprintunixdialog.ui:868
msgid "Output t_ray:"
msgstr "출력 트레이(_R):"
#: gtk/ui/gtkprintunixdialog.ui:938
#: gtk/ui/gtkprintunixdialog.ui:936
msgid "Or_ientation:"
msgstr "방향(_I):"
#: gtk/ui/gtkprintunixdialog.ui:1056
#: gtk/ui/gtkprintunixdialog.ui:1054
msgid "Job Details"
msgstr "작업 상세 정보"
#: gtk/ui/gtkprintunixdialog.ui:1083
#: gtk/ui/gtkprintunixdialog.ui:1081
msgid "Pri_ority:"
msgstr "우선순위(_O):"
#: gtk/ui/gtkprintunixdialog.ui:1115
#: gtk/ui/gtkprintunixdialog.ui:1113
msgid "_Billing info:"
msgstr "요금 정보(_B):"
#: gtk/ui/gtkprintunixdialog.ui:1171
#: gtk/ui/gtkprintunixdialog.ui:1169
msgid "Print Document"
msgstr "문서 인쇄"
#. this is one of the choices for the print at option in the print dialog
#: gtk/ui/gtkprintunixdialog.ui:1194
#: gtk/ui/gtkprintunixdialog.ui:1192
msgid "_Now"
msgstr "지금(_N)"
#. this is one of the choices for the print at option in the print dialog. It also serves as the label for an entry that allows the user to enter a time.
#: gtk/ui/gtkprintunixdialog.ui:1213
#: gtk/ui/gtkprintunixdialog.ui:1211
msgid "A_t:"
msgstr "시각(_T):"
@@ -5368,9 +5376,9 @@ msgstr "시각(_T):"
# ( https://bugzilla.gnome.org/show_bug.cgi?id=568571 )
#
#. Ability to parse the am/pm format depends on actual locale. You can remove the am/pm values below for your locale if they are not supported.
#: gtk/ui/gtkprintunixdialog.ui:1218 gtk/ui/gtkprintunixdialog.ui:1220
#: gtk/ui/gtkprintunixdialog.ui:1242 gtk/ui/gtkprintunixdialog.ui:1244
#: gtk/ui/gtkprintunixdialog.ui:1251
#: gtk/ui/gtkprintunixdialog.ui:1216 gtk/ui/gtkprintunixdialog.ui:1218
#: gtk/ui/gtkprintunixdialog.ui:1240 gtk/ui/gtkprintunixdialog.ui:1242
#: gtk/ui/gtkprintunixdialog.ui:1249
msgid ""
"Specify the time of print,\n"
" e.g. 1530, 235 pm, 141520, 114630 am, 4 pm"
@@ -5378,58 +5386,58 @@ msgstr ""
"인쇄 시각을 지정합니다.\n"
" 예) 1530, 오후 235, 141520, 오전 114630, 오후 4"
#: gtk/ui/gtkprintunixdialog.ui:1250
#: gtk/ui/gtkprintunixdialog.ui:1248
msgid "Time of print"
msgstr "인쇄 시각"
#. this is one of the choices for the print at option in the print dialog. It means that the print job will not be printed until it explicitly gets 'released'.
#: gtk/ui/gtkprintunixdialog.ui:1266
#: gtk/ui/gtkprintunixdialog.ui:1264
msgid "On _hold"
msgstr "보류(_H)"
#: gtk/ui/gtkprintunixdialog.ui:1271 gtk/ui/gtkprintunixdialog.ui:1272
#: gtk/ui/gtkprintunixdialog.ui:1269 gtk/ui/gtkprintunixdialog.ui:1270
msgid "Hold the job until it is explicitly released"
msgstr "작업 보류, 직접 보류 상태를 풀 때까지"
#: gtk/ui/gtkprintunixdialog.ui:1316
#: gtk/ui/gtkprintunixdialog.ui:1314
msgid "Add Cover Page"
msgstr "표지 사용"
#. this is the label used for the option in the print dialog that controls the front cover page.
#: gtk/ui/gtkprintunixdialog.ui:1343
#: gtk/ui/gtkprintunixdialog.ui:1341
msgid "Be_fore:"
msgstr "앞에(_F):"
#. this is the label used for the option in the print dialog that controls the back cover page.
#: gtk/ui/gtkprintunixdialog.ui:1375
#: gtk/ui/gtkprintunixdialog.ui:1373
msgid "_After:"
msgstr "뒤에(_A):"
#: gtk/ui/gtkprintunixdialog.ui:1431
#: gtk/ui/gtkprintunixdialog.ui:1429
msgid "Job"
msgstr "작업"
#. This will appear as a tab label in the print dialog.
#: gtk/ui/gtkprintunixdialog.ui:1495
#: gtk/ui/gtkprintunixdialog.ui:1493
msgid "Image Quality"
msgstr "그림 화질"
#. This will appear as a tab label in the print dialog.
#: gtk/ui/gtkprintunixdialog.ui:1559
#: gtk/ui/gtkprintunixdialog.ui:1557
msgid "Color"
msgstr "색"
#. This will appear as a tab label in the print dialog.
#. It's a typographical term, as in "Binding and finishing"
#: gtk/ui/gtkprintunixdialog.ui:1623
#: gtk/ui/gtkprintunixdialog.ui:1621
msgid "Finishing"
msgstr "마무리"
#: gtk/ui/gtkprintunixdialog.ui:1669
#: gtk/ui/gtkprintunixdialog.ui:1667
msgid "Advanced"
msgstr "고급"
#: gtk/ui/gtkprintunixdialog.ui:1698
#: gtk/ui/gtkprintunixdialog.ui:1696
msgid "Some of the settings in the dialog conflict"
msgstr "대화 상자의 설정이 충돌합니다"
+3187 -2045
View File
File diff suppressed because it is too large Load Diff
+130 -122
View File
@@ -18,8 +18,8 @@ msgid ""
msgstr ""
"Project-Id-Version: gtk+\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-03-05 23:44+0100\n"
"PO-Revision-Date: 2015-03-05 23:47+0100\n"
"POT-Creation-Date: 2015-03-23 17:28+0100\n"
"PO-Revision-Date: 2015-03-23 17:29+0100\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <gnomepl@aviary.pl>\n"
"Language: pl\n"
@@ -94,7 +94,7 @@ msgstr "ZNACZNIKI"
msgid "GDK debugging flags to unset"
msgstr "Wyczyszczone znaczniki debugowania biblioteki GDK"
#: gdk/gdkwindow.c:2736
#: gdk/gdkwindow.c:2739
msgid "GL support disabled via GDK_DEBUG"
msgstr "Obsługa GL została wyłączona przez zmienną GDK_DEBUG"
@@ -1044,6 +1044,10 @@ msgctxt "Stock label"
msgid "Zoom _Out"
msgstr "Po_mniejsz"
#: gtk/a11y/gtkmenubuttonaccessible.c:102 gtk/inspector/window.ui:356
msgid "Menu"
msgstr "Menu"
#: gtk/a11y/gtkmenuitemaccessible.c:445
msgctxt "Action description"
msgid "Clicks the menuitem"
@@ -1222,7 +1226,7 @@ msgstr ""
#: gtk/gtkmountoperation.c:543 gtk/gtkpagesetupunixdialog.c:196
#: gtk/gtkprintbackend.c:763 gtk/gtkprinteroptionwidget.c:545
#: gtk/gtkprintunixdialog.c:665 gtk/gtkprintunixdialog.c:738
#: gtk/gtkwindow.c:11907 gtk/inspector/css-editor.c:199
#: gtk/gtkwindow.c:11925 gtk/inspector/css-editor.c:199
#: gtk/ui/gtkappchooserdialog.ui:79 gtk/ui/gtkassistant.ui:169
#: gtk/ui/gtkcolorchooserdialog.ui:38 gtk/ui/gtkfontchooserdialog.ui:35
msgid "_Cancel"
@@ -1271,7 +1275,7 @@ msgid "_Apply"
msgstr "_Zastosuj"
#: gtk/deprecated/gtkfontsel.c:1698 gtk/gtkmessagedialog.c:936
#: gtk/gtkmessagedialog.c:958 gtk/gtkprintbackend.c:764 gtk/gtkwindow.c:11908
#: gtk/gtkmessagedialog.c:958 gtk/gtkprintbackend.c:764 gtk/gtkwindow.c:11926
#: gtk/inspector/classes-list.c:127
msgid "_OK"
msgstr "_OK"
@@ -2128,30 +2132,30 @@ msgstr "_Prawy:"
msgid "Paper Margins"
msgstr "Marginesy papieru"
#: gtk/gtkentry.c:9626 gtk/gtkentry.c:9779 gtk/gtklabel.c:6597
#: gtk/gtkentry.c:9615 gtk/gtkentry.c:9768 gtk/gtklabel.c:6596
#: gtk/gtktextview.c:9037 gtk/gtktextview.c:9225
msgid "Cu_t"
msgstr "_Wytnij"
#: gtk/gtkentry.c:9630 gtk/gtkentry.c:9782 gtk/gtklabel.c:6598
#: gtk/gtkentry.c:9619 gtk/gtkentry.c:9771 gtk/gtklabel.c:6597
#: gtk/gtktextview.c:9041 gtk/gtktextview.c:9229
msgid "_Copy"
msgstr "S_kopiuj"
#: gtk/gtkentry.c:9634 gtk/gtkentry.c:9785 gtk/gtklabel.c:6599
#: gtk/gtkentry.c:9623 gtk/gtkentry.c:9774 gtk/gtklabel.c:6598
#: gtk/gtktextview.c:9043 gtk/gtktextview.c:9231
msgid "_Paste"
msgstr "Wk_lej"
#: gtk/gtkentry.c:9637 gtk/gtklabel.c:6601 gtk/gtktextview.c:9046
#: gtk/gtkentry.c:9626 gtk/gtklabel.c:6600 gtk/gtktextview.c:9046
msgid "_Delete"
msgstr "_Usuń"
#: gtk/gtkentry.c:9648 gtk/gtklabel.c:6610 gtk/gtktextview.c:9060
#: gtk/gtkentry.c:9637 gtk/gtklabel.c:6609 gtk/gtktextview.c:9060
msgid "Select _All"
msgstr "Z_aznacz wszystko"
#: gtk/gtkentry.c:10848
#: gtk/gtkentry.c:10835
msgid "Caps Lock is on"
msgstr "Klawisz Caps Lock jest włączony"
@@ -2171,7 +2175,7 @@ msgstr "(Brak)"
msgid "_Open"
msgstr "_Otwórz"
#: gtk/gtkfilechooserbutton.c:2137
#: gtk/gtkfilechooserbutton.c:2138
msgid "Other…"
msgstr "Inne…"
@@ -2374,7 +2378,7 @@ msgstr "Wybór czcionki"
#: gtk/gtkfontbutton.c:1182 gtk/inspector/general.c:226
#: gtk/inspector/general.c:227 gtk/inspector/gestures.c:128
#: gtk/inspector/prop-editor.c:1200 gtk/inspector/size-groups.c:252
#: modules/printbackends/cups/gtkprintbackendcups.c:5208
#: modules/printbackends/cups/gtkprintbackendcups.c:5224
msgid "None"
msgstr "Brak"
@@ -2386,7 +2390,7 @@ msgstr "Utworzenie kontekstu OpenGL się nie powiodło"
msgid "Application menu"
msgstr "Menu programu"
#: gtk/gtkheaderbar.c:479 gtk/gtkwindow.c:8581
#: gtk/gtkheaderbar.c:479 gtk/gtkwindow.c:8586
msgid "Close"
msgstr "Zamknij"
@@ -2437,12 +2441,12 @@ msgid "Error"
msgstr "Błąd"
#. Open Link
#: gtk/gtklabel.c:6578
#: gtk/gtklabel.c:6577
msgid "_Open Link"
msgstr "_Otwórz odnośnik"
#. Copy Link Address
#: gtk/gtklabel.c:6587
#: gtk/gtklabel.c:6586
msgid "Copy _Link Address"
msgstr "S_kopiuj adres odnośnika"
@@ -2585,10 +2589,6 @@ msgstr "Wyświetla opcje biblioteki GTK+"
msgid "default:LTR"
msgstr "default:LTR"
#: gtk/gtkmenubutton.c:640 gtk/inspector/window.ui:356
msgid "Menu"
msgstr "Menu"
#: gtk/gtkmessagedialog.c:948
msgid "_No"
msgstr "_Nie"
@@ -2683,12 +2683,12 @@ msgstr "Powłoka Z"
msgid "Cannot end process with PID %d: %s"
msgstr "Nie można zakończyć procesu o PID %d: %s"
#: gtk/gtknotebook.c:5165 gtk/gtknotebook.c:7893
#: gtk/gtknotebook.c:5173 gtk/gtknotebook.c:7904
#, c-format
msgid "Page %u"
msgstr "Strona %u"
#: gtk/gtkpagesetup.c:652 gtk/gtkpapersize.c:985 gtk/gtkpapersize.c:1025
#: gtk/gtkpagesetup.c:652 gtk/gtkpapersize.c:986 gtk/gtkpapersize.c:1026
msgid "Not a valid page setup file"
msgstr "Nieprawidłowy plik ustawień strony"
@@ -2916,7 +2916,7 @@ msgstr "Wy_suń"
msgid "_Detect Media"
msgstr "Wy_kryj nośnik"
#: gtk/gtkplacessidebar.c:4167
#: gtk/gtkplacessidebar.c:4165
msgid "Computer"
msgstr "Komputer"
@@ -3029,7 +3029,7 @@ msgstr "Brak papieru"
#. Translators: this is a printer status.
#: gtk/gtkprintoperation-win32.c:620
#: modules/printbackends/cups/gtkprintbackendcups.c:2493
#: modules/printbackends/cups/gtkprintbackendcups.c:2509
msgid "Paused"
msgstr "Wstrzymane"
@@ -3097,42 +3097,42 @@ msgstr "Pobieranie informacji o drukarce…"
#. * multiple pages on a sheet when printing
#.
#: gtk/gtkprintunixdialog.c:3101
#: modules/printbackends/cups/gtkprintbackendcups.c:5157
#: modules/printbackends/cups/gtkprintbackendcups.c:5173
msgid "Left to right, top to bottom"
msgstr "Od lewej do prawej, z góry do dołu"
#: gtk/gtkprintunixdialog.c:3101
#: modules/printbackends/cups/gtkprintbackendcups.c:5157
#: modules/printbackends/cups/gtkprintbackendcups.c:5173
msgid "Left to right, bottom to top"
msgstr "Od lewej do prawej, z dołu na górę"
#: gtk/gtkprintunixdialog.c:3102
#: modules/printbackends/cups/gtkprintbackendcups.c:5158
#: modules/printbackends/cups/gtkprintbackendcups.c:5174
msgid "Right to left, top to bottom"
msgstr "Od prawej do lewej, z góry na dół"
#: gtk/gtkprintunixdialog.c:3102
#: modules/printbackends/cups/gtkprintbackendcups.c:5158
#: modules/printbackends/cups/gtkprintbackendcups.c:5174
msgid "Right to left, bottom to top"
msgstr "Od prawej do lewej, z dołu na górę"
#: gtk/gtkprintunixdialog.c:3103
#: modules/printbackends/cups/gtkprintbackendcups.c:5159
#: modules/printbackends/cups/gtkprintbackendcups.c:5175
msgid "Top to bottom, left to right"
msgstr "Z góry do dołu, od lewej do prawej"
#: gtk/gtkprintunixdialog.c:3103
#: modules/printbackends/cups/gtkprintbackendcups.c:5159
#: modules/printbackends/cups/gtkprintbackendcups.c:5175
msgid "Top to bottom, right to left"
msgstr "Z góry do dołu, od prawej do lewej"
#: gtk/gtkprintunixdialog.c:3104
#: modules/printbackends/cups/gtkprintbackendcups.c:5160
#: modules/printbackends/cups/gtkprintbackendcups.c:5176
msgid "Bottom to top, left to right"
msgstr "Z dołu do góry, od lewej do prawej"
#: gtk/gtkprintunixdialog.c:3104
#: modules/printbackends/cups/gtkprintbackendcups.c:5160
#: modules/printbackends/cups/gtkprintbackendcups.c:5176
msgid "Bottom to top, right to left"
msgstr "Z dołu do góry, od prawej do lewej"
@@ -3140,7 +3140,7 @@ msgstr "Z dołu do góry, od prawej do lewej"
#. * dialog that controls in what order multiple pages are arranged
#.
#: gtk/gtkprintunixdialog.c:3108 gtk/gtkprintunixdialog.c:3121
#: modules/printbackends/cups/gtkprintbackendcups.c:5237
#: modules/printbackends/cups/gtkprintbackendcups.c:5253
msgid "Page Ordering"
msgstr "Kolejność stron"
@@ -3275,7 +3275,7 @@ msgstr "Wyszukaj"
#. * glyphs then use MEDIUM VERTICAL BAR (U+2759) as the text for
#. * the state
#.
#: gtk/gtkswitch.c:379 gtk/gtkswitch.c:431 gtk/gtkswitch.c:606
#: gtk/gtkswitch.c:379 gtk/gtkswitch.c:431 gtk/gtkswitch.c:605
msgctxt "switch"
msgid "ON"
msgstr "|"
@@ -3284,7 +3284,7 @@ msgstr "|"
#. Translators: if the "off" state label requires more than three
#. * glyphs then use WHITE CIRCLE (U+25CB) as the text for the state
#.
#: gtk/gtkswitch.c:387 gtk/gtkswitch.c:432 gtk/gtkswitch.c:621
#: gtk/gtkswitch.c:387 gtk/gtkswitch.c:432 gtk/gtkswitch.c:620
msgctxt "switch"
msgid "OFF"
msgstr "◯"
@@ -3470,12 +3470,12 @@ msgctxt "volume percentage"
msgid "%d%%"
msgstr "%d%%"
#: gtk/gtkwindow.c:11895
#: gtk/gtkwindow.c:11913
#, c-format
msgid "Do you want to use GTK+ Inspector?"
msgstr "Użyć Inspektora biblioteki GTK+?"
#: gtk/gtkwindow.c:11897
#: gtk/gtkwindow.c:11915
#, c-format
msgid ""
"GTK+ Inspector is an interactive debugger that lets you explore and modify "
@@ -3486,7 +3486,7 @@ msgstr ""
"i modyfikowanie wnętrza programu GTK+. Jego użycie może spowodować awarię "
"lub uszkodzenie programu."
#: gtk/gtkwindow.c:11902
#: gtk/gtkwindow.c:11920
msgid "Don't show this message again"
msgstr "Bez wyświetlania ponownie"
@@ -3691,18 +3691,26 @@ msgid "Accessible role"
msgstr "Rola dostępności"
#: gtk/inspector/misc-info.ui:507
msgid "Accessible name"
msgstr "Nazwa dostępności"
#: gtk/inspector/misc-info.ui:541
msgid "Accessible description"
msgstr "Opis dostępności"
#: gtk/inspector/misc-info.ui:575
msgid "Mapped"
msgstr "Mapowane"
#: gtk/inspector/misc-info.ui:543
#: gtk/inspector/misc-info.ui:611
msgid "Realized"
msgstr "Zrealizowane"
#: gtk/inspector/misc-info.ui:579
#: gtk/inspector/misc-info.ui:647
msgid "Is Toplevel"
msgstr "Jest najwyższego poziomu"
#: gtk/inspector/misc-info.ui:615
#: gtk/inspector/misc-info.ui:683
msgid "Child Visible"
msgstr "Element potomny jest widoczny"
@@ -3905,7 +3913,7 @@ msgstr "Własny"
msgid "Cumulative"
msgstr "Przyrastający"
#: gtk/inspector/statistics.ui:164
#: gtk/inspector/statistics.ui:165
msgid "Enable statistics with GOBJECT_DEBUG=instance-count"
msgstr "Włączenie statystyk za pomocą zmiennej GOBJECT_DEBUG=instance-count"
@@ -4061,7 +4069,7 @@ msgstr "Wyświetla wszystkie zasoby"
#. Translators: "Miscellaneous" is the label for a button, that opens
#. up an extra panel of settings in a print dialog.
#: gtk/inspector/window.ui:257
#: modules/printbackends/cups/gtkprintbackendcups.c:4272
#: modules/printbackends/cups/gtkprintbackendcups.c:4288
msgid "Miscellaneous"
msgstr "Różne"
@@ -5660,253 +5668,253 @@ msgstr "Bezczynna"
msgid "Pages per _sheet:"
msgstr "Stron _na kartkę:"
#: modules/printbackends/cups/gtkprintbackendcups.c:1074
#: modules/printbackends/cups/gtkprintbackendcups.c:1383
#: modules/printbackends/cups/gtkprintbackendcups.c:1090
#: modules/printbackends/cups/gtkprintbackendcups.c:1399
msgid "Username:"
msgstr "Nazwa użytkownika:"
#: modules/printbackends/cups/gtkprintbackendcups.c:1075
#: modules/printbackends/cups/gtkprintbackendcups.c:1392
#: modules/printbackends/cups/gtkprintbackendcups.c:1091
#: modules/printbackends/cups/gtkprintbackendcups.c:1408
msgid "Password:"
msgstr "Hasło:"
#: modules/printbackends/cups/gtkprintbackendcups.c:1114
#: modules/printbackends/cups/gtkprintbackendcups.c:1405
#: modules/printbackends/cups/gtkprintbackendcups.c:1130
#: modules/printbackends/cups/gtkprintbackendcups.c:1421
#, c-format
msgid "Authentication is required to print document “%s” on printer %s"
msgstr ""
"Wymagane jest uwierzytelnienie, aby wydrukować dokument \"%s\" na drukarce %s"
#: modules/printbackends/cups/gtkprintbackendcups.c:1116
#: modules/printbackends/cups/gtkprintbackendcups.c:1132
#, c-format
msgid "Authentication is required to print a document on %s"
msgstr "Wymagane jest uwierzytelnienie, aby wydrukować dokument na %s"
#: modules/printbackends/cups/gtkprintbackendcups.c:1120
#: modules/printbackends/cups/gtkprintbackendcups.c:1136
#, c-format
msgid "Authentication is required to get attributes of job “%s”"
msgstr "Wymagane jest uwierzytelnienie, aby pobrać atrybuty zadania \"%s\""
#: modules/printbackends/cups/gtkprintbackendcups.c:1122
#: modules/printbackends/cups/gtkprintbackendcups.c:1138
msgid "Authentication is required to get attributes of a job"
msgstr "Wymagane jest uwierzytelnienie, aby pobrać atrybuty zadania"
#: modules/printbackends/cups/gtkprintbackendcups.c:1126
#: modules/printbackends/cups/gtkprintbackendcups.c:1142
#, c-format
msgid "Authentication is required to get attributes of printer %s"
msgstr "Wymagane jest uwierzytelnienie, aby pobrać atrybuty drukarki %s"
#: modules/printbackends/cups/gtkprintbackendcups.c:1128
#: modules/printbackends/cups/gtkprintbackendcups.c:1144
msgid "Authentication is required to get attributes of a printer"
msgstr "Wymagane jest uwierzytelnienie, aby pobrać atrybuty drukarki"
#: modules/printbackends/cups/gtkprintbackendcups.c:1131
#: modules/printbackends/cups/gtkprintbackendcups.c:1147
#, c-format
msgid "Authentication is required to get default printer of %s"
msgstr "Wymagane jest uwierzytelnienie, aby pobrać domyślną drukarkę z %s"
#: modules/printbackends/cups/gtkprintbackendcups.c:1134
#: modules/printbackends/cups/gtkprintbackendcups.c:1150
#, c-format
msgid "Authentication is required to get printers from %s"
msgstr "Wymagane jest uwierzytelnienie, aby pobrać drukarki od %s"
#: modules/printbackends/cups/gtkprintbackendcups.c:1139
#: modules/printbackends/cups/gtkprintbackendcups.c:1155
#, c-format
msgid "Authentication is required to get a file from %s"
msgstr "Wymagane jest uwierzytelnienie, aby pobrać plik z %s"
#: modules/printbackends/cups/gtkprintbackendcups.c:1141
#: modules/printbackends/cups/gtkprintbackendcups.c:1157
#, c-format
msgid "Authentication is required on %s"
msgstr "Wymagane jest uwierzytelnienie na %s"
#: modules/printbackends/cups/gtkprintbackendcups.c:1377
#: modules/printbackends/cups/gtkprintbackendcups.c:1393
msgid "Domain:"
msgstr "Domena:"
#: modules/printbackends/cups/gtkprintbackendcups.c:1407
#: modules/printbackends/cups/gtkprintbackendcups.c:1423
#, c-format
msgid "Authentication is required to print document “%s”"
msgstr "Wymagane jest uwierzytelnienie, aby wydrukować dokument \"%s\""
#: modules/printbackends/cups/gtkprintbackendcups.c:1412
#: modules/printbackends/cups/gtkprintbackendcups.c:1428
#, c-format
msgid "Authentication is required to print this document on printer %s"
msgstr ""
"Wymagane jest uwierzytelnienie, aby wydrukować ten dokument na drukarce %s"
#: modules/printbackends/cups/gtkprintbackendcups.c:1414
#: modules/printbackends/cups/gtkprintbackendcups.c:1430
msgid "Authentication is required to print this document"
msgstr "Wymagane jest uwierzytelnienie, aby wydrukować dokument"
#: modules/printbackends/cups/gtkprintbackendcups.c:1851
#: modules/printbackends/cups/gtkprintbackendcups.c:1867
#, c-format
msgid "Printer “%s” is low on toner."
msgstr "W drukarce \"%s\" kończy się toner."
#: modules/printbackends/cups/gtkprintbackendcups.c:1852
#: modules/printbackends/cups/gtkprintbackendcups.c:1868
#, c-format
msgid "Printer “%s” has no toner left."
msgstr "W drukarce \"%s\" skończył się toner."
#. Translators: "Developer" like on photo development context
#: modules/printbackends/cups/gtkprintbackendcups.c:1854
#: modules/printbackends/cups/gtkprintbackendcups.c:1870
#, c-format
msgid "Printer “%s” is low on developer."
msgstr "Niski poziom wywoływacza w drukarce \"%s\"."
#. Translators: "Developer" like on photo development context
#: modules/printbackends/cups/gtkprintbackendcups.c:1856
#: modules/printbackends/cups/gtkprintbackendcups.c:1872
#, c-format
msgid "Printer “%s” is out of developer."
msgstr "Brak wywoływacza w drukarce \"%s\"."
#. Translators: "marker" is one color bin of the printer
#: modules/printbackends/cups/gtkprintbackendcups.c:1858
#: modules/printbackends/cups/gtkprintbackendcups.c:1874
#, c-format
msgid "Printer “%s” is low on at least one marker supply."
msgstr "W drukarce \"%s\" kończy się co najmniej jedna składowa kolorów."
#. Translators: "marker" is one color bin of the printer
#: modules/printbackends/cups/gtkprintbackendcups.c:1860
#: modules/printbackends/cups/gtkprintbackendcups.c:1876
#, c-format
msgid "Printer “%s” is out of at least one marker supply."
msgstr "W drukarce \"%s\" skończyła się co najmniej jedna składowa kolorów."
#: modules/printbackends/cups/gtkprintbackendcups.c:1861
#: modules/printbackends/cups/gtkprintbackendcups.c:1877
#, c-format
msgid "The cover is open on printer “%s”."
msgstr "Pokrywa drukarki \"%s\" jest otwarta."
#: modules/printbackends/cups/gtkprintbackendcups.c:1862
#: modules/printbackends/cups/gtkprintbackendcups.c:1878
#, c-format
msgid "The door is open on printer “%s”."
msgstr "Drzwiczki drukarki \"%s\" są otwarte."
#: modules/printbackends/cups/gtkprintbackendcups.c:1863
#: modules/printbackends/cups/gtkprintbackendcups.c:1879
#, c-format
msgid "Printer “%s” is low on paper."
msgstr "W podajniku drukarki \"%s\" kończy się papier."
#: modules/printbackends/cups/gtkprintbackendcups.c:1864
#: modules/printbackends/cups/gtkprintbackendcups.c:1880
#, c-format
msgid "Printer “%s” is out of paper."
msgstr "W podajniku drukarki \"%s\" skończył się papier."
#: modules/printbackends/cups/gtkprintbackendcups.c:1865
#: modules/printbackends/cups/gtkprintbackendcups.c:1881
#, c-format
msgid "Printer “%s” is currently offline."
msgstr "Drukarka \"%s\" jest obecnie w trybie offline."
#: modules/printbackends/cups/gtkprintbackendcups.c:1866
#: modules/printbackends/cups/gtkprintbackendcups.c:1882
#, c-format
msgid "There is a problem on printer “%s”."
msgstr "Wystąpił problem z drukarką \"%s\"."
#. Translators: this is a printer status.
#: modules/printbackends/cups/gtkprintbackendcups.c:2490
#: modules/printbackends/cups/gtkprintbackendcups.c:2506
msgid "Paused; Rejecting Jobs"
msgstr "Wstrzymana, Odrzuca zadania"
#. Translators: this is a printer status.
#: modules/printbackends/cups/gtkprintbackendcups.c:2496
#: modules/printbackends/cups/gtkprintbackendcups.c:2512
msgid "Rejecting Jobs"
msgstr "Odrzuca zadania"
#. Translators: this string connects multiple printer states together.
#: modules/printbackends/cups/gtkprintbackendcups.c:2538
#: modules/printbackends/cups/gtkprintbackendcups.c:2554
msgid "; "
msgstr ", "
#: modules/printbackends/cups/gtkprintbackendcups.c:4223
#: modules/printbackends/cups/gtkprintbackendcups.c:4290
#: modules/printbackends/cups/gtkprintbackendcups.c:4239
#: modules/printbackends/cups/gtkprintbackendcups.c:4306
msgid "Two Sided"
msgstr "Dwustronne"
#: modules/printbackends/cups/gtkprintbackendcups.c:4224
#: modules/printbackends/cups/gtkprintbackendcups.c:4240
msgid "Paper Type"
msgstr "Rodzaj papieru"
#: modules/printbackends/cups/gtkprintbackendcups.c:4225
#: modules/printbackends/cups/gtkprintbackendcups.c:4241
msgid "Paper Source"
msgstr "Źródło papieru"
#: modules/printbackends/cups/gtkprintbackendcups.c:4226
#: modules/printbackends/cups/gtkprintbackendcups.c:4242
msgid "Output Tray"
msgstr "Tacka wyjściowa"
#: modules/printbackends/cups/gtkprintbackendcups.c:4227
#: modules/printbackends/cups/gtkprintbackendcups.c:4243
msgid "Resolution"
msgstr "Rozdzielczość"
#: modules/printbackends/cups/gtkprintbackendcups.c:4228
#: modules/printbackends/cups/gtkprintbackendcups.c:4244
msgid "GhostScript pre-filtering"
msgstr "Wstępne filtrowanie GhostScript"
#: modules/printbackends/cups/gtkprintbackendcups.c:4237
#: modules/printbackends/cups/gtkprintbackendcups.c:4253
msgid "One Sided"
msgstr "Jednostronne"
#. Translators: this is an option of "Two Sided"
#: modules/printbackends/cups/gtkprintbackendcups.c:4239
#: modules/printbackends/cups/gtkprintbackendcups.c:4255
msgid "Long Edge (Standard)"
msgstr "Grzbiet wzdłuż dłuższej krawędzi (standard)"
#. Translators: this is an option of "Two Sided"
#: modules/printbackends/cups/gtkprintbackendcups.c:4241
#: modules/printbackends/cups/gtkprintbackendcups.c:4257
msgid "Short Edge (Flip)"
msgstr "Grzbiet wzdłuż krótszej krawędzi (obrót)"
#. Translators: this is an option of "Paper Source"
#: modules/printbackends/cups/gtkprintbackendcups.c:4243
#: modules/printbackends/cups/gtkprintbackendcups.c:4245
#: modules/printbackends/cups/gtkprintbackendcups.c:4253
#: modules/printbackends/cups/gtkprintbackendcups.c:4259
#: modules/printbackends/cups/gtkprintbackendcups.c:4261
#: modules/printbackends/cups/gtkprintbackendcups.c:4269
msgid "Auto Select"
msgstr "Wybór automatyczny"
#. Translators: this is an option of "Paper Source"
#. Translators: this is an option of "Resolution"
#: modules/printbackends/cups/gtkprintbackendcups.c:4247
#: modules/printbackends/cups/gtkprintbackendcups.c:4249
#: modules/printbackends/cups/gtkprintbackendcups.c:4251
#: modules/printbackends/cups/gtkprintbackendcups.c:4255
#: modules/printbackends/cups/gtkprintbackendcups.c:4762
#: modules/printbackends/cups/gtkprintbackendcups.c:4263
#: modules/printbackends/cups/gtkprintbackendcups.c:4265
#: modules/printbackends/cups/gtkprintbackendcups.c:4267
#: modules/printbackends/cups/gtkprintbackendcups.c:4271
#: modules/printbackends/cups/gtkprintbackendcups.c:4778
msgid "Printer Default"
msgstr "Domyślne drukarki"
#. Translators: this is an option of "GhostScript"
#: modules/printbackends/cups/gtkprintbackendcups.c:4257
#: modules/printbackends/cups/gtkprintbackendcups.c:4273
msgid "Embed GhostScript fonts only"
msgstr "Osadzanie tylko czcionek GhostScript"
#. Translators: this is an option of "GhostScript"
#: modules/printbackends/cups/gtkprintbackendcups.c:4259
#: modules/printbackends/cups/gtkprintbackendcups.c:4275
msgid "Convert to PS level 1"
msgstr "Konwertowanie do PS level 1"
#. Translators: this is an option of "GhostScript"
#: modules/printbackends/cups/gtkprintbackendcups.c:4261
#: modules/printbackends/cups/gtkprintbackendcups.c:4277
msgid "Convert to PS level 2"
msgstr "Konwertowanie do PS level 2"
#. Translators: this is an option of "GhostScript"
#: modules/printbackends/cups/gtkprintbackendcups.c:4263
#: modules/printbackends/cups/gtkprintbackendcups.c:4279
msgid "No pre-filtering"
msgstr "Bez wstępnego filtrowania"
#: modules/printbackends/cups/gtkprintbackendcups.c:4298
#: modules/printbackends/cups/gtkprintbackendcups.c:4314
msgctxt "sides"
msgid "One Sided"
msgstr "Jednostronne"
#. Translators: this is an option of "Two Sided"
#: modules/printbackends/cups/gtkprintbackendcups.c:4300
#: modules/printbackends/cups/gtkprintbackendcups.c:4316
msgctxt "sides"
msgid "Long Edge (Standard)"
msgstr "Grzbiet wzdłuż dłuższej krawędzi (standard)"
#. Translators: this is an option of "Two Sided"
#: modules/printbackends/cups/gtkprintbackendcups.c:4302
#: modules/printbackends/cups/gtkprintbackendcups.c:4318
msgctxt "sides"
msgid "Short Edge (Flip)"
msgstr "Grzbiet wzdłuż krótszej krawędzi (obrót)"
@@ -5914,78 +5922,78 @@ msgstr "Grzbiet wzdłuż krótszej krawędzi (obrót)"
#. Translators: These strings name the possible values of the
#. * job priority option in the print dialog
#.
#: modules/printbackends/cups/gtkprintbackendcups.c:5152
#: modules/printbackends/cups/gtkprintbackendcups.c:5168
msgid "Urgent"
msgstr "Ważne"
#: modules/printbackends/cups/gtkprintbackendcups.c:5152
#: modules/printbackends/cups/gtkprintbackendcups.c:5168
msgid "High"
msgstr "Wysoki"
#: modules/printbackends/cups/gtkprintbackendcups.c:5152
#: modules/printbackends/cups/gtkprintbackendcups.c:5168
msgid "Medium"
msgstr "Średni"
#: modules/printbackends/cups/gtkprintbackendcups.c:5152
#: modules/printbackends/cups/gtkprintbackendcups.c:5168
msgid "Low"
msgstr "Niski"
#. Translators, this string is used to label the job priority option
#. * in the print dialog
#.
#: modules/printbackends/cups/gtkprintbackendcups.c:5182
#: modules/printbackends/cups/gtkprintbackendcups.c:5198
msgid "Job Priority"
msgstr "Priorytet"
#. Translators, this string is used to label the billing info entry
#. * in the print dialog
#.
#: modules/printbackends/cups/gtkprintbackendcups.c:5193
#: modules/printbackends/cups/gtkprintbackendcups.c:5209
msgid "Billing Info"
msgstr "Informacje o opłatach"
#: modules/printbackends/cups/gtkprintbackendcups.c:5208
#: modules/printbackends/cups/gtkprintbackendcups.c:5224
msgid "Classified"
msgstr "Sklasyfikowane"
#: modules/printbackends/cups/gtkprintbackendcups.c:5208
#: modules/printbackends/cups/gtkprintbackendcups.c:5224
msgid "Confidential"
msgstr "Poufne"
#: modules/printbackends/cups/gtkprintbackendcups.c:5208
#: modules/printbackends/cups/gtkprintbackendcups.c:5224
msgid "Secret"
msgstr "Tajne"
#: modules/printbackends/cups/gtkprintbackendcups.c:5208
#: modules/printbackends/cups/gtkprintbackendcups.c:5224
msgid "Standard"
msgstr "Standardowe"
#: modules/printbackends/cups/gtkprintbackendcups.c:5208
#: modules/printbackends/cups/gtkprintbackendcups.c:5224
msgid "Top Secret"
msgstr "Ściśle tajne"
#: modules/printbackends/cups/gtkprintbackendcups.c:5208
#: modules/printbackends/cups/gtkprintbackendcups.c:5224
msgid "Unclassified"
msgstr "Niesklasyfikowane"
#. Translators, this string is used to label the pages-per-sheet option
#. * in the print dialog
#.
#: modules/printbackends/cups/gtkprintbackendcups.c:5219
#: modules/printbackends/cups/gtkprintbackendcups.c:5235
msgid "Pages per Sheet"
msgstr "Stron na kartkę"
#. Translators, this is the label used for the option in the print
#. * dialog that controls the front cover page.
#.
#: modules/printbackends/cups/gtkprintbackendcups.c:5279
#: modules/printbackends/cups/gtkprintbackendcups.c:5295
msgid "Before"
msgstr "Przed"
#. Translators, this is the label used for the option in the print
#. * dialog that controls the back cover page.
#.
#: modules/printbackends/cups/gtkprintbackendcups.c:5294
#: modules/printbackends/cups/gtkprintbackendcups.c:5310
msgid "After"
msgstr "Po"
@@ -5993,14 +6001,14 @@ msgstr "Po"
#. * a print job is printed. Possible values are 'now', a specified time,
#. * or 'on hold'
#.
#: modules/printbackends/cups/gtkprintbackendcups.c:5314
#: modules/printbackends/cups/gtkprintbackendcups.c:5330
msgid "Print at"
msgstr "Wydruk o"
#. 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:5325
#: modules/printbackends/cups/gtkprintbackendcups.c:5341
msgid "Print at time"
msgstr "Wydruk o czasie"
@@ -6009,17 +6017,17 @@ msgstr "Wydruk o czasie"
#. * the width and height in points. E.g: "Custom
#. * 230.4x142.9"
#.
#: modules/printbackends/cups/gtkprintbackendcups.c:5367
#: modules/printbackends/cups/gtkprintbackendcups.c:5383
#, c-format
msgid "Custom %s×%s"
msgstr "Własny %s×%s"
#: modules/printbackends/cups/gtkprintbackendcups.c:5468
#: modules/printbackends/cups/gtkprintbackendcups.c:5484
msgid "Printer Profile"
msgstr "Profil drukarki"
#. TRANSLATORS: this is when color profile information is unavailable
#: modules/printbackends/cups/gtkprintbackendcups.c:5475
#: modules/printbackends/cups/gtkprintbackendcups.c:5491
msgid "Unavailable"
msgstr "Niedostępne"
+2823 -3215
View File
File diff suppressed because it is too large Load Diff
+6
View File
@@ -34,6 +34,7 @@ noinst_PROGRAMS = $(TEST_PROGS) \
animated-revealing \
motion-compression \
scrolling-performance \
blur-performance \
simple \
flicker \
print-editor \
@@ -187,6 +188,7 @@ animated_revealing_DEPENDENCIES = $(TEST_DEPS)
flicker_DEPENDENCIES = $(TEST_DEPS)
motion_compression_DEPENDENCIES = $(TEST_DEPS)
scrolling_performance_DEPENDENCIES = $(TEST_DEPS)
blur_performance_DEPENDENCIES = $(TEST_DEPS)
simple_DEPENDENCIES = $(TEST_DEPS)
print_editor_DEPENDENCIES = $(TEST_DEPS)
video_timer_DEPENDENCIES = $(TEST_DEPS)
@@ -318,6 +320,10 @@ scrolling_performance_SOURCES = \
variable.c \
variable.h
blur_performance_SOURCES = \
blur-performance.c \
../gtk/gtkcairoblur.c
video_timer_SOURCES = \
video-timer.c \
variable.c \
+54
View File
@@ -0,0 +1,54 @@
/* -*- mode: C; c-basic-offset: 2; indent-tabs-mode: nil; -*- */
#include <gtk/gtkcairoblurprivate.h>
static void
init_surface (cairo_t *cr)
{
int w = cairo_image_surface_get_width (cairo_get_target (cr));
int h = cairo_image_surface_get_height (cairo_get_target (cr));
cairo_set_source_rgb (cr, 0, 0, 0);
cairo_fill (cr);
cairo_set_source_rgb (cr, 1, 1, 1);
cairo_arc (cr, w/2, h/2, w/2, 0, 2*G_PI);
cairo_fill (cr);
}
int
main (int argc, char **argv)
{
cairo_surface_t *surface;
cairo_t *cr;
GTimer *timer;
double msec;
int i, j;
int size;
timer = g_timer_new ();
size = 2000;
surface = cairo_image_surface_create (CAIRO_FORMAT_A8, size, size);
cr = cairo_create (surface);
/* We do everything three times, first two as warmup */
for (j = 0; j < 2; j++)
{
for (i = 1; i < 16; i++)
{
init_surface (cr);
g_timer_start (timer);
_gtk_cairo_blur_surface (surface, i, GTK_BLUR_X | GTK_BLUR_Y);
msec = g_timer_elapsed (timer, NULL) * 1000;
if (j == 1)
g_print ("Radius %2d: %.2f msec, %.2f kpixels/msec:\n", i, msec, size*size/(msec*1000));
}
}
g_timer_destroy (timer);
return 0;
}
+29 -3
View File
@@ -39,6 +39,7 @@ typedef enum {
static char *arg_output_dir = NULL;
static char *arg_base_dir = NULL;
static char *arg_direction = NULL;
static char *arg_compare_dir = NULL;
static const GOptionEntry test_args[] = {
{ "output", 'o', 0, G_OPTION_ARG_FILENAME, &arg_output_dir,
@@ -47,6 +48,8 @@ static const GOptionEntry test_args[] = {
"Directory to run tests from", "DIR" },
{ "direction", 0, 0, G_OPTION_ARG_STRING, &arg_direction,
"Set text direction", "ltr|rtl" },
{ "compare-with", 0, 0, G_OPTION_ARG_FILENAME, &arg_compare_dir,
"Directory to compare with", "DIR" },
{ NULL }
};
@@ -175,6 +178,28 @@ get_test_file (const char *test_file,
return g_string_free (file, FALSE);
}
static char *
get_reference_image (const char *ui_file)
{
char *base;
char *reference_image;
if (!arg_compare_dir)
return NULL;
get_components_of_test_file (ui_file, NULL, &base);
reference_image = g_strconcat (arg_compare_dir, G_DIR_SEPARATOR_S, base, ".out.png", NULL);
g_free (base);
if (!g_file_test (reference_image, G_FILE_TEST_EXISTS))
{
g_free (reference_image);
return NULL;
}
return reference_image;
}
static GtkStyleProvider *
add_extra_css (const char *testname,
const char *extension)
@@ -234,9 +259,10 @@ test_ui_file (GFile *file)
provider = add_extra_css (ui_file, ".css");
ui_image = reftest_snapshot_ui_file (ui_file);
reference_file = get_test_file (ui_file, ".ref.ui", TRUE);
if (reference_file)
if ((reference_file = get_reference_image (ui_file)) != NULL)
reference_image = cairo_image_surface_create_from_png (reference_file);
else if ((reference_file = get_test_file (ui_file, ".ref.ui", TRUE)) != NULL)
reference_image = reftest_snapshot_ui_file (reference_file);
else
{