]> Pileus Git - ~andy/gtk/log
~andy/gtk
14 years agoUpdated German translation
Mario Blättermann [Wed, 23 Sep 2009 19:39:40 +0000 (21:39 +0200)]
Updated German translation

14 years agoUpdated French translation
Claude Paroz [Wed, 23 Sep 2009 19:01:38 +0000 (21:01 +0200)]
Updated French translation

14 years agoDon't hang print dialog when remote CUPS printer is not available
Marek Kasik [Wed, 23 Sep 2009 12:35:26 +0000 (14:35 +0200)]
Don't hang print dialog when remote CUPS printer is not available

This patch tests availability of remote host before getting ppd file
for selected printer (#586207). It also adds a state message for
failure of getting details.

14 years agoBump version
Matthias Clasen [Wed, 23 Sep 2009 04:08:43 +0000 (00:08 -0400)]
Bump version

14 years ago2.18.0
Matthias Clasen [Wed, 23 Sep 2009 04:02:47 +0000 (00:02 -0400)]
2.18.0

14 years agoUpdates
Matthias Clasen [Wed, 23 Sep 2009 02:19:06 +0000 (22:19 -0400)]
Updates

14 years agoBump version to 2.18.0
Matthias Clasen [Wed, 23 Sep 2009 01:00:54 +0000 (21:00 -0400)]
Bump version to 2.18.0

14 years agoUpdated Afrikaans translation
andreas [Tue, 22 Sep 2009 23:11:22 +0000 (20:11 -0300)]
Updated Afrikaans translation

14 years agoUpdated Catalan translation
David Planella [Tue, 22 Sep 2009 18:08:40 +0000 (20:08 +0200)]
Updated Catalan translation

14 years agohindi update
Rajesh Ranjan [Tue, 22 Sep 2009 10:00:33 +0000 (15:30 +0530)]
hindi update

14 years agoFix more GtkEntry Since tags.
Mart Raudsepp [Thu, 17 Sep 2009 06:07:03 +0000 (09:07 +0300)]
Fix more GtkEntry Since tags.

progress-border and invisible-char style properties had wrong amount
of colons for gtk-doc (signal markup instead of properties), so the
Since tags didn't seem to get picked up.
GtkEntry:invisible-char also had a wrong Since: 2.22, fixed to 2.18.

14 years agoAdd missing Since: 2.16 for gtk_entry_[set/get]_icon_drag_source
Mart Raudsepp [Thu, 17 Sep 2009 05:49:01 +0000 (08:49 +0300)]
Add missing Since: 2.16 for gtk_entry_[set/get]_icon_drag_source

14 years agoFix a typo
Mart Raudsepp [Thu, 17 Sep 2009 04:51:43 +0000 (07:51 +0300)]
Fix a typo

previe => preview

14 years agoGtkImage docs: Fix typo - widgte => widget
Mart Raudsepp [Wed, 16 Sep 2009 13:17:05 +0000 (16:17 +0300)]
GtkImage docs: Fix typo - widgte => widget

14 years agoPack the struct better, should save four bytes per GtkIconView
Mart Raudsepp [Wed, 16 Sep 2009 05:53:22 +0000 (08:53 +0300)]
Pack the struct better, should save four bytes per GtkIconView

14 years agoUpdated Italian translation
Luca Ferretti [Mon, 21 Sep 2009 20:43:03 +0000 (22:43 +0200)]
Updated Italian translation

14 years agoBug 550939 - GtkFileChooser listbox does not refresh selection
Kristian Rietveld [Sun, 20 Sep 2009 13:27:14 +0000 (15:27 +0200)]
Bug 550939 - GtkFileChooser listbox does not refresh selection

Make the quartz backend support the new queued translations.  We do this
by keeping our own copy of the region that has been set to need display.
Using this region we can intersect by the given area, translate this and also
set needs display for the resulting area.

14 years agoAlways report XInput events to the grab window if any.
Carlos Garnacho [Mon, 21 Sep 2009 17:24:45 +0000 (19:24 +0200)]
Always report XInput events to the grab window if any.

The grab window should be the first option to send events to, else we may
get unpaired events, making display->ignore_core_events go crazy.

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

14 years agoBlock extended events to windows that didn't select them.
Carlos Garnacho [Mon, 21 Sep 2009 00:24:32 +0000 (02:24 +0200)]
Block extended events to windows that didn't select them.

Now XSelectExtensionEvent() is called on the native window, so there
may be virtual windows inside that shouldn't receive extended events.

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

14 years agoFix x/y coordinates for extended events.
Carlos Garnacho [Mon, 21 Sep 2009 00:08:41 +0000 (02:08 +0200)]
Fix x/y coordinates for extended events.

Extended events were being reported to virtual windows without taking into
account the position of the virtual window inside the native one.

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

14 years agorevert some changes in directfb backend that broke API
Cody Russell [Mon, 21 Sep 2009 16:32:37 +0000 (11:32 -0500)]
revert some changes in directfb backend that broke API

14 years agoSensitivity event box should only be toggled if cell view is non-NULL
Kristian Rietveld [Mon, 21 Sep 2009 10:57:39 +0000 (12:57 +0200)]
Sensitivity event box should only be toggled if cell view is non-NULL

14 years agoRestore initializing settings sizes, which was accidentally removed
Christian Dywan [Mon, 21 Sep 2009 10:38:34 +0000 (12:38 +0200)]
Restore initializing settings sizes, which was accidentally removed

14 years agoUpdated Norwegian bokmål translation.
Kjartan Maraas [Mon, 21 Sep 2009 09:58:21 +0000 (11:58 +0200)]
Updated Norwegian bokmål translation.

14 years agoWhitespace fixes
Matthias Clasen [Mon, 21 Sep 2009 02:53:58 +0000 (22:53 -0400)]
Whitespace fixes

14 years agoDon't dereference a NULL error
Matthias Clasen [Mon, 21 Sep 2009 02:39:13 +0000 (22:39 -0400)]
Don't dereference a NULL error

This was pointed out in bug 595790.

14 years agomaithili update, translated by Sangeeta Kumari
Rajesh Ranjan [Sun, 20 Sep 2009 07:13:35 +0000 (12:43 +0530)]
maithili update, translated by Sangeeta Kumari

14 years agomaithili update, translated by Sangeeta Kumari
Rajesh Ranjan [Sun, 20 Sep 2009 07:11:52 +0000 (12:41 +0530)]
maithili update, translated by Sangeeta Kumari

14 years agoUpdated Traditinal Chinese translation (Hong Kong and Taiwan)
Chao-Hsiung Liao [Sat, 19 Sep 2009 13:02:22 +0000 (21:02 +0800)]
Updated Traditinal Chinese translation (Hong Kong and Taiwan)

14 years agoMove '-x objective-c++' from CXXFLAGS to CPPFLAGS
Cody Russell [Sat, 19 Sep 2009 03:37:22 +0000 (22:37 -0500)]
Move '-x objective-c++' from CXXFLAGS to CPPFLAGS

14 years agoDon't focus unmapped radio buttons
Owen Taylor [Fri, 18 Sep 2009 20:37:43 +0000 (16:37 -0400)]
Don't focus unmapped radio buttons

With Bug 302240, a check was added to avoid keynav to unrealized
radio buttons in the group, but that's not the right check - the
check should be on MAPPED instead, since a widget can be realized
even if it, or a parent, is hidden. Bug 595599

14 years agoUpdated Romanian translation
Dumitru Mișu Moldovan [Fri, 18 Sep 2009 19:57:47 +0000 (22:57 +0300)]
Updated Romanian translation

14 years agoUpdated German translation
Christian Kirbach [Fri, 18 Sep 2009 19:38:06 +0000 (21:38 +0200)]
Updated German translation

14 years agoUpdated Romanian translation
Dumitru Mișu Moldovan [Fri, 18 Sep 2009 19:34:21 +0000 (22:34 +0300)]
Updated Romanian translation

14 years agoUpdated Italian translation
Luca Ferretti [Fri, 18 Sep 2009 10:40:24 +0000 (12:40 +0200)]
Updated Italian translation

14 years agoUpadated Oriya Translation
Manoj Kumar Giri [Thu, 17 Sep 2009 16:44:59 +0000 (22:14 +0530)]
Upadated Oriya Translation

14 years agoUpadated Oriya Translation
Manoj Kumar Giri [Thu, 17 Sep 2009 13:33:44 +0000 (19:03 +0530)]
Upadated Oriya Translation

14 years agoFix gdk_device_get_history() for the core pointer
Michael Natterer [Thu, 17 Sep 2009 09:38:14 +0000 (11:38 +0200)]
Fix gdk_device_get_history() for the core pointer

When filtering out the events for "window" from the events we got for
our "impl_window", don't forget to adjust the returned number of
events because it might be smaller than what XGetMotionEvents has
returned, and free coords we allocated too much. Also if we filtered
away *all* events, return FALSE and get rid of the allocated history
entirely. Together fixes all sorts of mishehavior when painting in
GIMP, from coords going wild to plain crashes and infinite loops.

14 years agoAdded Ukrainian translation
Maxim V. Dziumanenko [Wed, 16 Sep 2009 13:29:10 +0000 (16:29 +0300)]
Added Ukrainian translation

14 years agoAdded Ukrainian translation
Maxim V. Dziumanenko [Wed, 16 Sep 2009 13:28:29 +0000 (16:28 +0300)]
Added Ukrainian translation

14 years agoAdded Ukrainian translation
Maxim V. Dziumanenko [Wed, 16 Sep 2009 13:01:56 +0000 (16:01 +0300)]
Added Ukrainian translation

14 years agoUpdated Slovenian translation
Matej Urbančič [Wed, 16 Sep 2009 12:11:55 +0000 (14:11 +0200)]
Updated Slovenian translation

14 years agoUpdated Slovenian translation
Matej Urbančič [Wed, 16 Sep 2009 12:11:12 +0000 (14:11 +0200)]
Updated Slovenian translation

14 years agoCorrected a typo in Brazilian Portuguese translation
Djavan Fagundes [Wed, 16 Sep 2009 11:17:03 +0000 (08:17 -0300)]
Corrected a typo in Brazilian Portuguese translation

14 years agoUpadted Oriya Translation
Manoj Kumar Giri [Wed, 16 Sep 2009 10:47:33 +0000 (16:17 +0530)]
Upadted Oriya Translation

14 years agoUpdated Bengali India Translations
Runa Bhattacharjee [Wed, 16 Sep 2009 10:36:02 +0000 (16:06 +0530)]
Updated Bengali India Translations

14 years agoLet GTK+ handle SIGPIPE signal itself when printing with lpr
Marek Kasik [Wed, 16 Sep 2009 07:59:56 +0000 (09:59 +0200)]
Let GTK+ handle SIGPIPE signal itself when printing with lpr

When a SIGPIPE signal is raised during printing with lpr,
application should not be killed by the signal but a standard
error-workflow should be performed (bug #503776).

14 years agoAssign the size of the screen to the root window
Kristian Rietveld [Tue, 15 Sep 2009 09:04:50 +0000 (11:04 +0200)]
Assign the size of the screen to the root window

On startup, the root window got assigned the size of the main screen.
But, the GdkScreen has the width of all screens/monitors connected to the
machine.  Change this so that in _gdk_windowing_window_init, we assign
the width/height of all monitors to the root window width, height.
Should fix bug 594738.

14 years agoDo not test the event mask of implicit grabs
Kristian Rietveld [Tue, 15 Sep 2009 07:54:34 +0000 (09:54 +0200)]
Do not test the event mask of implicit grabs

The quartz backend simulates the semantics of XGrabPointer, as a part of
this it checks the event mask of the grab.  However, implicit grabs on X
do not go through XGrabPointer and thus the quartz backend should not check
the event mask for these.  This fixes various "the UI got stuck" cases.

14 years agoUpdating Assamese translations.
Amitakhya Phukan [Wed, 16 Sep 2009 06:11:07 +0000 (11:41 +0530)]
Updating Assamese translations.

14 years agoUpdating Assamese translations
Amitakhya Phukan [Wed, 16 Sep 2009 06:05:12 +0000 (11:35 +0530)]
Updating Assamese translations

14 years agoUpdated Gujarati Translations
Sweta Kothari [Wed, 16 Sep 2009 05:20:22 +0000 (10:50 +0530)]
Updated Gujarati Translations

14 years agoUpdated Marathi Translations
Sandeep Shedmake [Wed, 16 Sep 2009 05:05:02 +0000 (10:35 +0530)]
Updated Marathi Translations

14 years agoUpdated Marathi Translations
Sandeep Shedmake [Wed, 16 Sep 2009 05:04:56 +0000 (10:34 +0530)]
Updated Marathi Translations

14 years agoUpadted Oriya Translation
Manoj Kumar Giri [Tue, 15 Sep 2009 14:01:07 +0000 (19:31 +0530)]
Upadted Oriya Translation

14 years agoRespect grab event mask for crossing events
Alexander Larsson [Tue, 15 Sep 2009 12:39:04 +0000 (14:39 +0200)]
Respect grab event mask for crossing events

In the case of a non-owner_events grab, use grab->event_mask rather
than the window even mask to decide whether to deliver the event
or not.

14 years agoUpdated Bengali India Translations
Runa Bhattacharjee [Tue, 15 Sep 2009 11:45:01 +0000 (17:15 +0530)]
Updated Bengali India Translations

14 years agoUpadted Oriya Translation
Manoj Kumar Giri [Tue, 15 Sep 2009 09:20:19 +0000 (14:50 +0530)]
Upadted Oriya Translation

14 years agoUpadted Oriya Translation
Manoj Kumar Giri [Tue, 15 Sep 2009 07:45:50 +0000 (13:15 +0530)]
Upadted Oriya Translation

14 years agoupdated Bengali India translation
Runa Bhattacharjee [Mon, 14 Sep 2009 17:56:44 +0000 (23:26 +0530)]
updated Bengali India translation

14 years agofix whitespace error
Michael Meeks [Mon, 14 Sep 2009 14:34:43 +0000 (15:34 +0100)]
fix whitespace error

14 years agofix race between fetching owner of composit selection, and
Michael Meeks [Mon, 14 Sep 2009 13:27:42 +0000 (14:27 +0100)]
fix race between fetching owner of composit selection, and
registering as a listener for changes; bug#594913

14 years agoAutomatically flush window when doing non-double-buffered expose
Alexander Larsson [Mon, 14 Sep 2009 14:07:43 +0000 (16:07 +0200)]
Automatically flush window when doing non-double-buffered expose

Applications using non-double-buffered drawing using cairo (e.g. Abiword)
can draw directly to the window using cairo and thus manage to avoid
the automatic flushing of outstanding moves. This can cause redraw
inconsistencies like bug 593507.

We fix this by always flushing when exposing non-double-buffered widgets.

14 years agoMake gdk_window_flush public
Alexander Larsson [Mon, 14 Sep 2009 14:07:25 +0000 (16:07 +0200)]
Make gdk_window_flush public

We need to call this from Gtk+, and its concievable that some other
app doing weird stuff could have a use for it.

14 years agoBetter handling of window hierarchy changes from inside expose handler
Alexander Larsson [Mon, 14 Sep 2009 11:44:09 +0000 (13:44 +0200)]
Better handling of window hierarchy changes from inside expose handler

If we move, resize or otherwise change a window from inside a (double
buffered)  expose handler we can run into issues with double buffered
paints that have already been ended but have not yet been commited
to the window from the implicit paint pixmap.

For instance, any copies of source regions due to a window scroll need
to take these into account, and any operation that causes some drawing at
a destination covered by the implicit paint region would be overdrawn
when the implicit paint is ended.

So, before we do any window-hierarchy changing operation while an implicit
paint is in effect we flush all moves and already commited paints.

14 years agoHandle expose events moving or resizing windows
Alexander Larsson [Mon, 14 Sep 2009 11:38:47 +0000 (13:38 +0200)]
Handle expose events moving or resizing windows

When a window is moved or resized from a double-buffered expose handler
we can't really just copy the window region around, as the window
will be overdrawn with the double buffered region when the expose returns.

Instead we remove all regions with outstanding implicit paints from the
region to be copied and just mark this area as invalid to be redrawn
later.

This fixes bug 594880.

14 years agoFactor out impl_window_add_update_area() to a function
Alexander Larsson [Mon, 14 Sep 2009 11:28:38 +0000 (13:28 +0200)]
Factor out impl_window_add_update_area() to a function

14 years agoDon't reenter gdk_window_process_updates_internal
Alexander Larsson [Mon, 14 Sep 2009 11:24:55 +0000 (13:24 +0200)]
Don't reenter gdk_window_process_updates_internal

Its not correct for recurse gdk_window_process_updates_internal, as
the outer instance will overdraw the inner. So, protect against
gdk_window_process_updates() being called while in an expose
handler.

This shouldn't be a repaint problem, as eventually the idle handler
will cause the updates to be processed.

14 years agoBail out of window move/resize early if no change
Alexander Larsson [Mon, 14 Sep 2009 11:09:07 +0000 (13:09 +0200)]
Bail out of window move/resize early if no change

This is not all that uncommon in size_allocate, so we want
to optimize this case.

14 years agoMention thread-safety issues
Matthias Clasen [Mon, 14 Sep 2009 03:32:46 +0000 (23:32 -0400)]
Mention thread-safety issues

14 years agoFix gdk_display_beep
Matthias Clasen [Mon, 14 Sep 2009 03:16:44 +0000 (23:16 -0400)]
Fix gdk_display_beep

Since XBell() seems broken, just call XkbBell().

14 years agoUpdate Norwegian bokmål translation.
Kjartan Maraas [Sun, 13 Sep 2009 22:22:42 +0000 (00:22 +0200)]
Update Norwegian bokmål translation.

14 years agoUpdated Danish translation
Kenneth Nielsen [Sun, 13 Sep 2009 00:51:18 +0000 (02:51 +0200)]
Updated Danish translation

14 years agoUpdated British English translations
Bruce Cowan [Sat, 12 Sep 2009 18:27:38 +0000 (19:27 +0100)]
Updated British English translations

14 years agoUpdated Simplified Chinese translation.
Aron Xu [Sat, 12 Sep 2009 15:59:39 +0000 (23:59 +0800)]
Updated Simplified Chinese translation.

14 years agoUpdated Simplified translation.
Aron Xu [Sat, 12 Sep 2009 15:43:04 +0000 (23:43 +0800)]
Updated Simplified translation.

14 years agoFix warning about pointer/int confusion
Vincent Untz [Sat, 12 Sep 2009 11:23:09 +0000 (13:23 +0200)]
Fix warning about pointer/int confusion

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

14 years agoUpdated Danish translation
Ask H. Larsen [Sat, 12 Sep 2009 01:20:20 +0000 (03:20 +0200)]
Updated Danish translation

14 years agoParse libtoolize --version more carefully
Tor Lillqvist [Fri, 11 Sep 2009 22:23:01 +0000 (01:23 +0300)]
Parse libtoolize --version more carefully

Some recent versions of libtoolize output a version blurb like:
  libtoolize (GNU libtool 1.3110 2009-07-01) 2.2.7a
Don't get confused by the numbers inside the parens.

14 years agoUpdated Dutch translation
Reinout van Schouwen [Fri, 11 Sep 2009 20:36:58 +0000 (22:36 +0200)]
Updated Dutch translation

14 years agoAdd a note about tooltip limitations
Matthias Clasen [Fri, 11 Sep 2009 16:47:32 +0000 (12:47 -0400)]
Add a note about tooltip limitations

Apparently Windows only shows the first 64 characters of tooltips
on statusicons. Bug 594600.

14 years agoUpdated Greek translation.
Kostas Papadimas [Fri, 11 Sep 2009 16:27:03 +0000 (19:27 +0300)]
Updated Greek translation.

14 years agoDon't support the old handling of zero height/width in gdk_window_clear_area
Alexander Larsson [Fri, 11 Sep 2009 13:21:43 +0000 (15:21 +0200)]
Don't support the old handling of zero height/width in gdk_window_clear_area

We used to handle zero height/width specially in the non-double buffered
case due to the weird behaviour of XClearArea in this case. However
this is undocumented, incompatible with what happens on double-buffered
drawing, and just not a good API. So, we drop this behaviour, having
fixed gtkclist.c which used this.

14 years agoDon't use magic zero height/width argument to gdk_window_clear_area
Alexander Larsson [Fri, 11 Sep 2009 13:08:14 +0000 (15:08 +0200)]
Don't use magic zero height/width argument to gdk_window_clear_area

This is an undocumented feature that we stopped supporting, and
anyway it likely only ever worked on X anyway.

14 years agoUpdated Malayalam Translations
Ani [Fri, 11 Sep 2009 06:38:06 +0000 (12:08 +0530)]
Updated Malayalam Translations

14 years agoUpdated Malayalam Translations
Ani [Fri, 11 Sep 2009 06:37:41 +0000 (12:07 +0530)]
Updated Malayalam Translations

14 years agoUpdated German translation
Mario Blättermann [Thu, 10 Sep 2009 19:06:15 +0000 (21:06 +0200)]
Updated German translation

14 years agoMention gdk_window_restack
Matthias Clasen [Thu, 10 Sep 2009 17:52:29 +0000 (13:52 -0400)]
Mention gdk_window_restack

It is probably worth mentioning this function by name, since we've
added it explicitly to easy porting...

14 years agoAdd more hints
Matthias Clasen [Thu, 10 Sep 2009 17:51:02 +0000 (13:51 -0400)]
Add more hints

Mention problems related to cairo and clipping.

14 years agoCleanups
Matthias Clasen [Thu, 10 Sep 2009 02:40:44 +0000 (22:40 -0400)]
Cleanups

This commit removes dead code, mostly pointed out by clang.

14 years agoDon't send grab broken for implicit grabs on button release
Alexander Larsson [Thu, 10 Sep 2009 17:27:45 +0000 (19:27 +0200)]
Don't send grab broken for implicit grabs on button release

This is how it used to work, you only get grab broken if someone
else gets a grab, or if the grabbed window gets destroyed or unmapped.

14 years agoEnsure recursing gdk_window_process_all_updates works
Alexander Larsson [Thu, 10 Sep 2009 11:53:29 +0000 (13:53 +0200)]
Ensure recursing gdk_window_process_all_updates works

There are two issues here. First of all an ignored update didn't
use to unset update_idle which could cause all further idle repaints
to be ignored. (Bug #591583)

Secondly, if we ignore the process_all_updates we may end up not updating
the windows in update_windows unless something else triggers an update.
So, we handle this by checking for recursions and scheduling a new update
at the end of the outermost process_all_updates.

14 years agoUpdated Lithuanian translation.
Gintautas Miliauskas [Thu, 10 Sep 2009 10:46:13 +0000 (13:46 +0300)]
Updated Lithuanian translation.

14 years agoKeysyms docs update
Bastien Nocera [Thu, 10 Sep 2009 09:18:29 +0000 (10:18 +0100)]
Keysyms docs update

Mention XK_ prefixes as well.

14 years agoAvoid duplicate keysyms, ignore mispelled one
Bastien Nocera [Thu, 10 Sep 2009 09:15:10 +0000 (10:15 +0100)]
Avoid duplicate keysyms, ignore mispelled one

GDK_Select and GDK_Clear were duplicated, GDK_Calculater is
only useful for compulsive misspellers.

14 years agoUpdated Gujarati Translations
Sweta Kothari [Thu, 10 Sep 2009 08:50:08 +0000 (14:20 +0530)]
Updated Gujarati Translations

14 years agoUpdated Gujarati Translations
Sweta Kothari [Thu, 10 Sep 2009 07:27:02 +0000 (12:57 +0530)]
Updated Gujarati Translations

14 years agoUnbreak GtkComboBox::button-sensitivity
Kristian Rietveld [Wed, 9 Sep 2009 07:43:30 +0000 (09:43 +0200)]
Unbreak GtkComboBox::button-sensitivity

Fixed the button-sensivity patch done to GtkComboBox to account for
changes in appearance (changes to the appears-as-list style property).
Also, in list-mode, the event box that has been created below the cell
view also needs to have its sensitivity updated.

14 years agoBug 594668 - Add new Xorg keysyms
Bastien Nocera [Wed, 9 Sep 2009 17:01:43 +0000 (18:01 +0100)]
Bug 594668 - Add new Xorg keysyms

Add support for XF86keysym.h to gdkkeysyms-update.pl and
update the generated gdkkeysyms.h file for the latest sources.

14 years agoAccept "true" as a true value in printer settings
Matthias Clasen [Wed, 9 Sep 2009 15:52:07 +0000 (11:52 -0400)]
Accept "true" as a true value in printer settings

Some of the settings come directly from cups config files, which
have no case sensitivity requirement, so we should not be more
picky.  Bug 594652.