* gdk/gdkcursor.h: Directly include the contents
of gdkcursors.h in the GdkCursorType enum.
* gdk/gdkcursors.h: Deleted.
* gdk/gdkkeysyms.h: Remove XFree86-specific keysyms, add
header boilerplate.
* gdk/Makefile.am: Remove the X-derived-headers rule.
* gdk/tmpl/cursors.sgml: Document GdkCursor and standard cursors.
Sun Nov 25 21:19:02 2001 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkgeometry-x11.c: Add long, but horribly sketchy
comment about what is going on in this file.
* gdk/x11/gdkgeometry-x11.c (gdk_window_compute_position): Fix
x/y problem.
Sun Nov 25 23:18:39 2001 Kristian Rietveld <kristian@planet.nl>
* gtk/gtktexttag.c (gtk_text_tag_set_property): free font_desc
when finished (#65266)
Sun Nov 25 23:16:29 2001 Kristian Rietveld <kristian@planet.nl>
* gdk/x11/gdkwindow-x11.c (gdk_window_set_icon_list): free
data after we set the property. (#65264)
Sun Nov 25 23:14:06 2001 Kristian Rietveld <kristian@planet.nl>
* gtk/gtkbutton.c: add destroy method so label_text gets freed
if it has been allocated (#65268)
Fri Nov 23 19:22:50 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtknotebook.c: Handle events in windows other
than widget->event_window properly. (#65079, reported
by Damon Chaplin)
* gdk/gdkevents.c (gdk_event_get_coords): Fix x/y bug.
2001-11-23 Hans Breuer <hans@breuer.org>
* gdk/win32/gdkfont-win32.c (gdk_font_from_description) :
reflect Pango API change
* gtk/gtk.def : updated externals
* gtk/gtkfixed.c (gtk_fixed_get_has_window) : use
g_return_val_if_fail() to avoid 'function must return a value'
* gtk/gtkrc.c : added spaces to fix small coding style issues
* gtk/gtkwidget.c : ... and linebreaks. Also a static for
'static correctness'
* gtk/makefile.msc.in : temporary(?) disable gtk<plug|socket>
because they only can be build on win32 after applying my patch
Mon Nov 19 13:56:45 2001 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkwindow-x11.c (gdk_window_focus): Use
RevertToParent, not RevertToNone. (#64613,
Matthias Clasen)
Mon Nov 19 11:30:03 2001 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkproperty-x11.c (get_atom_name): Fix a
memory leak when retrieving atom names. (Michael Meeks,
#64508)
2001-11-18 Hans Breuer <hans@breuer.org>
* gtk/gdkaccelmap.c : make it compile with msvc: !HAVE_UNISTD_H;
no label without op, even if it's a no-op.
* gtk/gtk.def :
* gtk/makefile.msc.in : reflect marshaler split, some clean-up
* config.h.win32.in : remove definition of HAVE_DIRENT_H
* gtk/gtkfilesel.c : due to GDir (new in glib) DIR isn't
required anymore, replace it.
* gtk/queryimmodules.c : DIR -> GDir replacement, also
getcwd() -> g_get_current_dir()
* gdk/win32/gdkgeometry-win32.c : adapt to refactored gdkgeometry-x11.c
Even 'noisy laugh' scolling appears to work, though I still can't
claim to have fully understood what it is supposed to do ...
Sat Nov 17 21:07:46 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkenums.h: Include glib-object.h instead of
gobject/gsignal.h
* gdk/{gdkinternals.h,gdkwindow.c,gdkwindow.[ch],
x11,{fb,win32,x11/gdkwindow-*.c}: Add a dummy GdkScreen
argument to the window_at_pointer() field of
GdkPointerHooks. (Patch from Erwann Chenede)
* gdk/gdkdrawable.h (struct _GdkDrawableClass ): Up
to 6 pointers.
Thu Nov 15 14:19:34 2001 Owen Taylor <otaylor@redhat.com>
* gdk/gdkwindow.c (gdk_window_invalidate_maybe_recurse): Cal
gdk_window_invalidate_maybe_recurse() for recursion.
(Soeren Sandmann)
2001-11-10 Hans Breuer <hans@breuer.org>
* gdk/win32/gdkevents-win32.c (gdk_event_translate) : make sure
we know what we are talking about when asked for MINMAXINFO.
Also some cleaning for !HAVE_DIMM_H etc.
2001-10-28 Hans Breuer <hans@breuer.org>
* gtk/gtkfontsel.c : use g_strcasecmp(), some poor platforms
don't have strcasecmp()
* gtk/gtktextview.c : to fix crashing on e.g. TextView::find need
to remove the idle funcs in gtk_text_view_destroy (). To reduce
code duplication wrap it in its own function and use it in
gtk_text_view_unrealize () and gtk_text_view_destroy_layout ()
* gdk/win32/gdkdrawable-win32.c : implement the finalize
method like the X11 version does, allow to set_colormap NULL
* gdk/win32/gdkwindow-win32.c : adapt GdkWindowImplWin32::
set_colormap, also some adaption to X11 version :
(gdk_window_hide) call _gdk_window_clear_update_area
(gdk_window_reparent) call _gdk_window_init_position
* gdk/win32/gdkwindow-win32.c (gdk_window_set_geometry_hints) :
call gdk_window_resize() after all hints are set, because the
window resizing process (WM_GETMINMAXINFO) takes all of them into
account
* gdk/win32/gdkfont-win32.c : make gdk_font_equal return a gboolean
* gdk/win32/gdkvisual-win32.c : register GdkVisual with
sizeof (GdkVisualPrivate)
* gdk/gdk.def gtk/gtk.def : upated externals
* gdk/makefile.msc gdk/win32/makefile.msc gdk-pixbuf/makefile.msc
gdk-pixbuf/pixops/makefile.msc gtk/makefile.msc.in tests/makefile.msc :
from now on use make.msc from $(TOP)/glib/build/win32
* gtk/stock-icons/makefile.msc : add stock_missing_image
2001-11-08 Tor Lillqvist <tml@iki.fi>
* README.win32: Add headers. Add section about ActiveIMM.
* configure.in: Add --with-ie55 flag to specify the location of
the "IE55 libs and headers" package downloadable from Microsoft,
which contains, among other things, the Active IMM header dimm.h
and UUID library uuid.lib. Use test -f instead of AC_CHECK_FILE.
Require GLib 1.3.10.
* config.h.win32.in: New version, produced by merging two
configure-generated ones (for gcc and MSVC). Hopefully #defines
the same flags that the previous, hand-written one, did.
* gdk/Makefile.am
* gdk/win32/Makefile.am: Handle the uuid library from the IE55 lib.
* gdk/win32/gdkevents-win32.c: Conditionalize ActiveIMM
stuff. Remove unused GdkIOClosure.
* gdk/win32/surrogate-dimm.h: Remove, use real dimm.h instead (if
available).
* gdk/win32/libie55uuid.la: New file, handwritten libtool wrapper
for uuid.lib. (Does it really have to be this hard to use an
existing library with libtool? Probably I am missing something.)
Mon Nov 5 12:46:44 2001 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkdrawable-x11.[ch] gdk/x11/gdkgc-x11.c
gdk/x11/gdkpixmap-x11.c gdk/x11/gdkprivate-x11.h
gdk/x11/gdkwindow-x11.c: Redo Xft support to go
directly to Picture objects instead of using XftDraw.
This fixes the problem where we weren't able to
properly destroy XftDraw objects before destroying
the accompanying windows, and probably improves
efficiency a bit too. (#50214)
Mon Nov 5 10:01:49 2001 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkgeometry-x11.c (gdk_window_compute_position):
Clamp max window width/height to 32767, not 32768 since
we have to be able to deal with a dx/y of -32768 without
getting a width of 65536 when guffaw scrolling.
* gdk/x11/gdkgeometry-x11.c: Implement gdk_window_scroll()
for the guffaw scrolling case, fixing some problems with
copy-area case as well. Fix BadValue bug with moving windows
by large amounts.
* gdk/x11/gdkgeometry-x11.c (gdk_window_clip_changed): Update
clip in window structue before calling gdk_window_invalidate_region
since that trims new invalidations to the window's visible
region.
* gdk/x11/gdkwindow-x11.c (gdk_window_set_static_gravities):
Really set the static window gravity on the children, not
repeatedly on the window.
* gtk/testgtk.c: Add a torture test for big windows and
gdk_window_scroll().
Sun Nov 4 19:16:23 2001 Owen Taylor <otaylor@redhat.com>
* gdk/gdkcolor.c (gdk_color_parse): Implement gdk_color_parse()
in terms of pango_color_parse().
* gdk/{linux-fb,win32,x11}/gdkcolor-*.c: Remove port-specific
gdk_color_parse() implementations.
Sun Nov 4 16:02:08 2001 Owen Taylor <otaylor@redhat.com>
* gdk/gdkwindow.[ch]: Add a function gdk_window_invalidate_maybe_recurse()
for use in "shallow invalidation" of a widget. (Windows belonging
to the widget, but not to the widget's children)
* gtk/gtkprivate.h gtk/gtkwidget.c gtk/gtksizegroup.c: Add private
flags GTK_ALLOC_NEEDED, GTK_REQUEST_NEEDED. These flags are set
up on ancestors up to the resize container on queue_resize. Size
requests only actually take place if GTK_REQUEST_NEEDED, size
allocations only take place if GTK_ALLOC_NEEDED or the size
changed.
* gtk/gtkcontainer.c gtk/gtkwidget.c: Remove
container->resize_widgets and the RESIZE_NEEDED flag since the
above flags are sufficient to figure out what needs to be
resized/reallocated. Remove code manipulating
container->resize_widget.
* gtk/gtkwidget.[ch]: Add gtk_widget_set_redraw_on_alloc(); this
allows widgets to turn off being automatically invalidated is when
they are resized.
* gtk/gtkwidget.[ch] (gtk_widget_size_allocate): Invalidation when
a widget is resized or moved is "shallow" as described above -
only the windows that need to be invalidated are invalidated.
* gtk/gtkbox.c gtk/gtktable.c gtk/gtkalignment.c docs/Changes-2.0.txt:
Make these widget's init functions call
gtk_widget_set_redraw_on_allocate(widget,FALSE).
* gtk/gtkwindow.c (gtk_window_configure_event): Call
_gtk_container_queue_resize(), since we don't want
redrawing. (Probably could be done for other
calls to gtk_widget_queue_resize() in gtkwindow.c,
but this is the most important one.)
* gtk/gtkwindow.c (gtk_window_move_resize): Don't call
gtk_widget_queue_draw() - size_allocate() handles
that as appropriate.
* gtk/gtkframe.c (gtk_frame_size_allocate): Invalidate instead
of queue_clear() to avoid invalidating children.
2001-10-31 jacob berkman <jacob@ximian.com>
* gdk/gdkselection.h (GDK_TARGET_STRING):
(GDK_SELECTION_TYPE_STRING): these should be 31, not 3. Hooray
for Xatoms (and not using the XA_* macros)!
2001-10-29 jacob berkman <jacob@ximian.com>
* gdk/Makefile.am (LDFLAGS):
* gtk/Makefile.am (LDFLAGS): automake doesn't support conditionalized
LDFLAGS, so put win32 flags in here
2001-10-29 Tor Lillqvist <tml@iki.fi>
* README.win32: Updates.
* gtk-zip.sh.in: New file, used to build distribution package for
Windows.
* gdk/gdkglobals.c: Mark gdk_threads_mutex for DLL export when
applicable with GDKVAR.
* gtk/gtk.def: Update.
* gtk/gtkfilesel.c: Include <winsock.h> (if available) for
gethostname().
* gtk/gtkmain.c
* gtk/gtkrc.c: (Win32) Save actual DLL name for later use in DLL
entry function. Avoid hardcoded paths GTK_LIBDIR, GTK_SYSCONFDIR,
GTK_DATA_PREFIX and GTK_LOCALEDIR, instead add functions that call
g_win32_get_package_installation_subdirectory() with the actual
DLL name saved above. Redefine above directory name macros to call
these functions. Remove some ifdefs.
* gtk/maketypes.awk: Output GTKTYPEBUILTINS_VAR (that marks
variable for export on Win32) also to the _vars file.
Changes for autoconfiscated build on Win32, and addition of Win32
backend to the related files:
* configure.in: Like in GLib, set LT_CURRENT_MINUS_AGE for use
when forming DLL name in some files. Set MS_LIB_AVAILABLE is
lib.exe is available. Call AC_LIBTOOL_WIN32_DLL. Set
PLATFORM_WIN32, OS_WIN32 and USE_WIN32 automake conditionals. Add
win32 target, using pangowin32. Don't use the
-export-symbols-regex option on Win32, we use .def files to list
exported symbols. Check <winsock.h> (for gethostname() in
gtkfilesel.c). Enclose nested AC_CHECK_* macros in brackets to
prevent premature m4 expansion.
* acconfig.h: Add HAVE_WINTAB.
* gdk/Makefile.am: Add libgdk-win32-1.3.la target and associated
macros and rules. Use -no-undefined on Win32. Use gdk.def file. If
MS_LIB_AVAILABLE, build MS import library. Install the import
libraries. If HAVE_WINTAB, link with the Wintab library.
* gtk/Makefile.am: Add libgtk-win32-1.3.la target and associated
macros and rules. Use -no-undefined on Win32. Use gtk-win32.def
file. Install import libraries.
2001-10-29 Tor Lillqvist <tml@iki.fi>
* gdk/win32/libwntab32x.la: New file, hand-written wrapper for the
Wintab library.
* gdk/win32/gdkwin32.h
* gdk/win32/gdkprivate-win32.h: Reorganise to match corresponding
X11 headers better, and to enable gdkwin32.h to be installed and
included from applications, but not the *-win32.h headers.
* gdk/win32/*.c: Corresponding small changes, simplifications of
#includes.
* gdk/win32/gdkregion-win32.c: Remove.
* gdk/win32/gdkevents-win32.c (print_event): Add GDK_SETTING.
* gdk/win32/gdkfont-win32.c
* gdk/win32/gdkgeometry-win32.c: Remove unused variables.
* gdk/win32/gdkproperty-win32.c (gdk_atom_intern): Don't insert
GDK_NONE values into hash table.
Changes for autoconfiscated build on Win32, and addition of Win32
backend to the related files:
* gdk/win32/Makefile.am: Actually enable building the win32
objects here, not just list all files in EXTRA_DIST. Link in the
compiled resource file from rc/gdk-win32res.lo. If HAVE_WINTAB,
copy the Wintab library into the .libs directory.
* gdk/win32/gdkwindow-win32.c (RegisterGdkClass): Don't assume the
name of the GDK DLL when fetching the icon. Use the HMODULE saved
in gdk_dll_hinstance by DllMain.
* gdk/win32/rc/Makefile.am: Build gdk-win32res.lo using the
build/win32/lt-compile-resource script.
* gdk/win32/rc/gdk.rc.in
* gtk/gtk-win32.rc.in: Use the DLL name that libtool would use.
2001-10-28 Hans Breuer <hans@breuer.org>
* gdk/gdk.c gdk/gdkevents.c
gdk/win32/gdkcolor-win32.c gdk/win32/gdkdnd-win32.c
gdk/win32/gdkdrawable-win32.c gdk/win32/gdkevents-win32.c
gdk/win32/gdkfont-win32.c gdk/win32/gdkgc-win32.c
gdk/win32/gdkim-win32.c gdk/win32/gdkmain-win32.c
gdk/win32/gdkprivate-win32.h gdk/win32/gdkproperty-win32.c
gdk/win32/gdkselection-win32.c gdk/win32/gdkwin32.h
gdk/win32/gdkwindow-win32.c gdk/win32/gdkwindow-win32.h :
static correct-ness, underscore prefixing of library internal
functions
(applied the undisputed and the win32 part. Of the latter
I'm probably the one who will change it back again, if Owen
decides that the Gdk*Impl types should not be private to Gdk)
* gdk/gdk.def : added the remaining exported functions
* gdk/x11/gdkinput.c: Typo fix.
* gdk/tmpl/input_devices.sgml: Updates.
* gtk/tmpl/gtkrc.sgml: Document the special values <none> and
<parent> for bg_pixmap.
2001-10-27 Anders Carlsson <andersca@gnu.org>
* gdk/x11/gdkmain-x11.c: Replace int and guint with
long and gulong in some places to make the code 64-bit
clean.
(_gdk_windowing_init_check): Replace gint with gulong.
This patch was made by George Lebl and fixes bug #62113.
2001-10-26 Hans Breuer <hans@breuer.org>
* gdk-pixbuf/gdk_pixbuf.def :
* gdk/gdk.def :
* gtk/gtk.def : updated externals
* gdk/win32/gdkpixmap-win32.c : removed duplicate of
gdk_window_lookup implementation. It already was in
gdk/win32/gdkwindow-win32.c
* gdk/win32/gdkproperty-win32.c : made it compile again
after GdkAtom API change
* gtk/gtk/makefile.msc.in : updated
2001-10-24 Alex Larsson <alexl@redhat.com>
* gdk/linux-fb/gdkfont-fb.c:
Update to new Pango APIs
* gdk/linux-fb/gdkproperty-fb.c:
Update to new GdkAtom APIs
* gdk/linux-fb/gdkwindow-fb.c:
Remove warnings
Tue Oct 23 17:31:42 2001 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkwindow-x11.c gdk/win32/gdkwindow-win32.c: Always
set window->parent (except or the root window itself); if
the window's parent is not a GdkWindow, or is a window of
type GDK_WINDOW_FOREIGN, set window->parent to the root parent.
* gdk/gdkwindow.c (gdk_window_get_toplevels): Don't include
windows of type GDK_WINDOW_FOREIGN.
Tue Oct 23 11:53:00 2001 Owen Taylor <otaylor@redhat.com>
* gtk/Makefile.am (INCLUDES): Remove G_DISABLE_CONST_RETURNS.
* gtk/gtkfontsel.[ch]: Make gtk_font_selection_get_font()
G_CONST_RETURN. (Murray Cumming)
* gtk/gtkfontsel.c (gtk_font_selection_dialog_get_preview_text):
Make G_CONST_RETURN.
* gtk/gtkfilesel.c (open_user_dir): Fix bug with freeing
results of g_get_home_dir().
* gtk/gtkfilesel.c: Make filesel->fileop_file a duplicated
copy. Storing the return from gtk_entry_get_text() is evil.
* gtk/gtkcombo.c gtk/gtkcellrenderertext.c gtk/gtkbindings.c
gtk/gtkfilesel.c gtk/gtkfontsel.c gtk/gtkimmodule.c
gtk/gtkobject.c gtk/gtkoldeditable.c gtk/gtktreedatalist.c
gtk/gtksignal.c: Add const.
* gdk/x11/gdkkeys-x11.c (get_direction): Add missing const.
* gtk/gtktreeview.c: Namespace object data keys to be safe, even
if we are setting them on private widgets.
* gtk/gtktreeview.c (gtk_tree_view_real_start_interactive_search):
Duplicate entry->text before setting it as object data.
Mon Oct 22 14:08:26 2001 Jonathan Blandford <jrb@redhat.com>
* demos/gtk-demo/appwindow.c: Remove handle_box from App demo.
* gtk/gtktreeview.c (size_allocate): Move to a different drawing
system. Instead of having a window the size of the tree, we have
a window the size of widget->allocation, and simply draw with the
offset.
(coords_are_over_arrow): ditto. Move to window coordinates.
(do_prelight): ditto
(do_unprelight): ditto
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_rows_reordered):
Minor fix from Kristian Rietveld to fix unsorted case.
Mon Oct 22 10:12:08 2001 Owen Taylor <otaylor@redhat.com>
* gdk/gdk.c docs/Changes-2.0.txt (gdk_threads_init): Don't call
g_thread_init(), we don't want to link to -lgthread if we don't
have to.
Mon Oct 22 08:51:02 2001 Owen Taylor <otaylor@redhat.com>
* gdk/gdk.[ch] (gdk_threads_init) docs/Changes-2.0.txt:
Add a function, gdk_threads_init() that must be explicitely
called to enable the GDK thread mutex.
Sun Oct 21 23:27:00 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c (gtk_widget_translate_coordinates): Fix
problem with g_return_if_fail return value.
* gdk/x11/gdkproperty-x11.c docs/Changes-2.0.txt: Move over the
virtual atom code from the gdk-multihead branch, removing the per-display
part. Virtualizing atoms needs to be done now to prevent compat
breakage in direct Xlib accessing code in the future. (#62208)
* gdk/x11/gdkx.h: gdk/gdk/x11/gdkproperty-x11.c: Export
gdk_x11_xatom_to_atom, gdk_x11_atom_to_xatom().
* gdk/gdktypes.h docs/Changes-2.0.txt: Make GdkAtom
an opaque pointer type so the compiler catches attempts
to mingle it with X atoms.
* gdk/x11/{gdkdnd-x11.c,gdkevents-x11.c,gdkglobals-x11.c,
gdkkeys-x11.c, gdkmain-x11.c, gdkprivate-x11.c,
gdkproperty-x11.c, gdkselection-x11.c, gdkwindow-x11.c}
gtk/{gtkclist.c,gtkctree.c,gtkdnd.c,gtkplug.c,gtksocket.c}
tests/testdnd.c,tests/testselection.c:
Fix up for above atom changes.
* gdk/gdkselection.h (GDK_SELECTION_CLIPBOARD): Add, since we
now have the ability to add custom predefines.
* gtk/{gtkentry.c,gtklabel.c,gtkoldeditable.c,gtktextview.c}:
Use GDK_SELECTION_CLIPBOARD instead of GDK_NONE in calls
to gtk_clipboard_get().
* gdk/win32/gdkproperty-win32.c: Add CLIPBOARD, fix up
for GdkAtom => pointer change.
* gdk/linux-fb/gdkproperty-fb.c: Fix handling of predefined
atoms, fix for GdkAtom => pointer change.
Fri Oct 19 12:24:32 2001 Owen Taylor <otaylor@redhat.com>
* gdk/linux-fb/gdkfont-fb.c: Fix up for change to
Pango font API. #61933. (Untested, even for compilation.)
Tue Oct 16 17:04:44 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkwidget.c: Rename ACTIVATE_MNEMONIC enum to
MNEMONIC_ACTIVATE; signal was changed a long time
ago.
* gdk/x11/gdkim-x11.c (_gdk_x11_initialize_locale):
Fix wrong return statement. (Reported by HideToshi
Tajima and others.)
* gtk/gtklabel.h (struct _GtkLabelClass): Remove
left over select_all vfunc.
Wed Oct 10 12:48:38 2001 Owen Taylor <otaylor@redhat.com>
* gtk/gtkmain.c (gtk_init_check): Call setlocale (LC_ALL, "").
(#60606)
* gtk/gtkmain.c (gtk_disable_setlocale): Add function
to disable calling setlocale (LC_ALL, "").
* gtk/gtkmain.c (gtk_set_locale): Indicate in the
docs that this function is not typically useful.
* gdk/x11/{gdkim-x11.c,gdkmain-x11.c,gdkprivate-x11.h}:
Automatically initialize GDK for the current locale
on gdk_init(). Don't reset locale to C when
XSupportsLocale() fails.
* gdk/linux-fb/gdkim-fb.c (gdk_set_locale): Remove
useless checks for UTF-8 locale breakage that mattered
only for X.
* examples/calendar/calendar.c
tests/{testgtk.c,testtext.c,testcalendar.c}: Remove calls to
gtk_set_locale().
* gtk/gtkiconfactory.c gtk/gtkitemfactory.c:
gdk_pixbuf_new_from_stream => gdk_pixbuf_new_from_inline.
2001-10-02 Havoc Pennington <hp@redhat.com>
Throughout: assorted docs
* gdk/gdkwindow.h: deprecate gdk_window_set_hints(), it's broken,
gdk_window_set_geometry_hints() should be used instead.
* gdk/gdkimage.h: deprecate gdk_image_ref, gdk_image_unref, and
document them
* gdk/x11/gdkx.h: remove gdk_get_client_window() since it doesn't
seem to exist in any .c files
* gdk/x11/gdkcolor-x11.c (gdk_colormap_query_color): docs,
g_return_if_fail (pixel < colormap->size).