Wed Jun 28 17:49:05 BST 2000 Tony Gale * docs/faq/gtk-faq.sgml: Finish Section 6. Add Section 7. Wed Jun 28 13:31:55 BST 2000 Tony Gale * docs/faq/gtk-faq.sgml: Start of Section 6. Mon Jun 26 19:37:04 2000 Owen Taylor * configure.in: Put 1.3.1 in warning message, not 1.3.0. (Fixes problem with drawing childless frames. Pointed out by and a first patch from Anders) * gtk/gtkframe.c (gtk_frame_compute_child_allocation): Always compute a child_allocation, even if we don't have a child. * gtk/gtkaspectframe.c (gtk_aspect_frame_compute_child_allocation): Always chain to the parent's impl, even if we don't have a child. Mon Jun 26 18:53:31 2000 Owen Taylor * gdk/gdkrgb.c: If possible, create only a single shm segment and use multiple parts of it instead of creating a bunch of separate segments, since the maximum number of segments per system is not large. (This might be worth backporting to GTK+-1.2.x if we make a new release ) * gdk/gdkrgb.c: Localize a bunch of variables into the GdkRgbInfo structure in preparation for per-colormap GdkRGB. * gdk/x11/gdkimage-x11.c (gdk_image_new): Don't set gdk_use_xshm to False when we get EINVAL from shmget so that the caller of gdk_image_new can retry with a smaller segment size. Mon Jun 26 13:01:16 BST 2000 Tony Gale * docs/faq/gtk-faq.sgml: Add Sections 4 & 5. Fri Jun 23 17:54:23 2000 Tim Janik * configure.in: make the current version number 1.3.1 (binary age 0, interface age 0). * gtkfeatures.h, gtkfeatures.h.in: dejavue, get rid of these *again*, gtkcompat.h is all we want. * gtk/gtktypeutils.[hc]: define most of the primitive types in terms of GLib primitive types. fixed g_type_register_fundamental() argument ordering. * gtk-config.in (lib_gtk): add -lgdk_pixbuf so third party code compiles. * gdk-pixbuf-loader.[hc]: get rid of unistd.h include. object code cleanup, comment trigraph fixes, etc... 2000-06-23 Havoc Pennington * gtk/gtktextview.c (gtk_text_view_set_buffer): Use anonymous mark instead of making up a bogus name for first_para_mark * gtk/gtkstatusbar.h, gtk/gtkstatusbar.c: Allow 0 as a context ID Thu Jun 22 17:43:51 BST 2000 Tony Gale * docs/faq/gtk-faq.sgml: Change filename. Add Section 3. 2000-06-21 Havoc Pennington * gdk/gdkwindow.c (_gdk_window_destroy_hierarchy): Fix bug where we didn't check window->bg_pixmap != GDK_NO_BG. * gtk/gdk-pixbuf-loader.c: Change to reflect GObject-ification of gdk-pixbuf Thu Jun 22 14:02:19 BST 2000 Tony Gale * docs/faq/gtk-faq.sgm: Move file to here. TODO: Update Makfile.am Thu Jun 22 13:41:09 BST 2000 Tony Gale * docs/gtk-faq.sgm: Add Section 2 Thu Jun 22 08:43:45 BST 2000 Tony Gale * docs/gtk-faq.sgm: New file. Start of DocBook version of the FAQ. Wed Jun 21 23:04:17 2000 Owen Taylor * configure.in (GDK_PIXBUF_MAJOR): Define version numbers for GDK_PIXBUF_*, as they get substituted into a header file. Need to consider versioning for gdk-pixbuf more carefully later. 2000-06-21 Raja R Harinath Work with srcdir != builddir. * demos/testanimation.c: Don't include "gdk-pixbuf.h". Use , not "gtk-pixbuf/gdk-pixbuf-loader.h". * demos/testpixbuf.c: Likewise. * demos/testpixbuf-scale.c: Don't include "gdk-pixbuf.h". * demos/testpixbuf-drawable.c: Don't include "gdk-pixbuf.h". Use . * demos/pixbuf-demo.c: Use not "gtk.h". Don't include "gdk-pixbuf.h". * demos/Makefile.am (INCLUDES): Remove unneeded directories. Wed Jun 21 19:45:02 2000 Owen Taylor * TODO.xml: Change 1.4 version numbers to 2.0. Wed Jun 21 19:29:08 2000 Owen Taylor * gdk/gdkpixbuf-render.c gdk/gdkpixbuf-drawable.c: Indentation fixups to GTK+ standard. Wed Jun 21 16:38:13 2000 Owen Taylor * gdk-pixbuf/* docs/reference/gdk-pixbuf/*: Welcome aboard, gdk-pixbuf. * gtk/gdk-pixbuf-loader.c (gdk_pixbuf_loader_class_init): fixups for GObject. * gdk/Makefile.am gdk/gdkpixbuf-render.[ch] gdk/gdkpixbuf.[ch]: Bits of gdk-pixbuf with GDK dependencies moved into GDK. * gtk/Makefile.am gtk/gdk-pixbuf-loader.[ch]: Temporarily move gdk-pixbuf-loader here until GObject has signals. * demos/: New directory of demos. Move demos from gdk-pixbuf here. * demos/pixbuf-init.c: Small bit of code to check for loaders in ../gdk-pixbuf/.libs/gdk-pixbuf, and if found, set GDK_PIXBUF_MODULEDIR appropriately. * gdk/gdkcompat.h: Remove GDK_DRAWABLE_PIXMAP compat define which no longer makes sense. 2000-06-21 Havoc Pennington * gtk/gtkwidget.c (gtk_widget_create_pango_context): Use gtk_get_default_language * gtk/gtkmain.h, gtk/gtkmain.c (gtk_get_default_language): new function to get the default language * gtk/gtktexttagprivate.h, gtk/gtktexttag.c, gtktextview.c: s/gtk_text_view_style_values/gtk_text_style_values/ * gtk/gtktexttag.c, gtk/gtktexttag.h, gtk/gtktexttagprivate.h: Add a "language" field to tags. (gtk_text_tag_set_arg): Fix bug in setting "bg_full_height_set" tag. 2000-06-21 Havoc Pennington * gtk/gtktextiter.h: Use gunichar instead of gint when appropriate in the interfaces * gtk/gtktexttypes.c: Remove UTF functions, use glib stuff instead when possible. * gtk/gtktexttypes.h: Delete some unused constants * gtktextbtree.c, gtktextiter.c, gtktextsegment.c, gtktextview.c, testtextbuffer.c: use glib instead of custom unicode routines Wed Jun 21 12:50:58 2000 Owen Taylor * docs/es/: Removed mistakenly added generated sgml * docs/{gdk.texi,gtk.texi,gdk.sgml} macros.texi texinfo.tex: Remove outdated info files. * docs/gtk_tut* docs/package_tutorial.sh docs/tutorial: Moved tutorial files into subdir * docs/gtkfaq.sgml docs/faq/gtkfaq.sgml: Move FAQ into subdir. * docs/man/gtk_button.pod: Remove. (contents will be integrated into gtk-reference button page.) * configure.in docs/Makefile.am docs/tutorial/Makefile.am docs/faq/Makefile.am: Adjust for new organization 2000-06-21 Christopher Blizzard * gdk/x11/Makefile.am (install-data-local): use $(mkinstalldirs) not $(MKINSTALLDIRS) Wed Jun 21 12:24:28 2000 Owen Taylor * gtk/testgtk.c (create_text): Finish the job Elliot started of removing font setting test for text widget. (Since text widget and GdkFont are not deprecated, and cause portability problems.) Wed Jun 21 11:41:43 2000 Owen Taylor * gtk/gtkentry.c gtk/gtkimcontextsimple.c gtk/gtklabel.c gtk/gtktexttypes.c gtk/testtext.c modules/linux-fb/basic.c: Remove use of libunicode in favor of new GLib functions. * gtk/gtkcolorsel.c: Remove conditional includes for FB, win32, nano-x, framebuffer. The X11 include is just a hack until we get the necessary functions in gdkcolor.h, so there is no reason to add other includes of platforms. * gtk/gtkwindow.c (gtk_window_compute_default_size): Revert window bigger than the screen change. * gtk/testgtk.c: Revert some random changes from Elliot that had no particular point and were causing testgtkrc not to function correctly. * gdk/gdkregion-generic.h: Revert change from Elliot. Just because GdkSegment and GdkRegionBox have the same fields, it doesn't mean that 'typedef GdkSegment GdkRegionBox' results in clearer code. * gdk/x11/gdkinput-x11.c (gdk_input_common_select_events, gdk_input_translate_coordinates): Fix missed GdkObjectification 2000-06-18 Elliot Lee * gdk/Makefile.am, gdk/*/Makefile.am: Fix conditionality to work the "right" way. * gtk/gtk{plug,socket}.h: Missed commits from previous. 2000-06-20 Havoc Pennington * modules/linux-fb/Makefile.am: Make this compile without framebuffer enabled * gdk/linux-fb/Makefile.am: Add conditional to not build framebuffer unless specified in configure * gdk/gdkdraw.c (gdk_draw_drawable): Fix bug where I was getting the size of the target instead of source if -1 was passed for width/height * gdk/x11/gdkgeometry-x11.c (gdk_window_compute_position): Fix width/height confusion. 2000-06-19 Havoc Pennington * gdk/x11/gdkx.h (GDK_WINDOW_XWINDOW): change this to be GDK_DRAWABLE_XID. In the future, we probably want to make it faster with G_DISABLE_CHECKS turned on. 2000-06-14 Havoc Pennington * gdk/Makefile.am: add gdkpixmap.c * gdk/gdk.c: s/gdk_window_init/_gdk_windowing_window_init/ s/gdk_image_init/_gdk_windowing_image_init * gdk/gdkcolor.c: make ref/unref compat wrappers for GObject ref/unref * gdk/gdkcolor.h: make GdkColormap a GObject subclass * gdk/gdkcompat.h: remove GdkWindowType compat, since GdkWindowType is now non-deprecated; change gdk_window_get_type() compat to be gdk_window_get_window_type(). * gdk/gdkdnd.h: make GdkDragContext a GObject. * gdk/gdkdraw.c, gdk/gdkdraw.h: Convert GdkDrawable to a pure virtual GObject. Make all functions call into the vtable. Move gdk_image_put() guts in here. Remove GdkDrawableType and gdk_drawable_get_type(), these are now GdkWindow-specific. draw_image, get_depth, get_size, set_colormap, get_colormap, get_visual added to the vtable. * gdk/gdkgc.h, gdk/gdkgc.c: Convert GdkGC to a pure virtual GObject. Virtualize everything. (gdk_gc_new_with_values): remove check for destroyed window, because now GdkWindow::create_gc will check this. (gdk_gc_set_values): New function to set GC values, this was already implemented but wasn't in the header * gdk/gdkimage.h, gdk/gdkimage.c: Convert GdkImage to a GObject. * gdk/gdkinternals.h: Remove _gdk_window_alloc(), remove _gdk_window_draw_image(), remove _gdk_windowing_window_class, remove _gdk_window_class; add _gdk_window_impl_get_type() and _gdk_pixmap_impl_get_type(). Rename gdk_window_init to _gdk_windowing_window_init, rename gdk_image_init to _gdk_windowing_image_init. * gdk/gdkpango.c: Reflect GObject-ification of PangoContext. (gdk_draw_layout): Remove check for destroyed window, because all the drawable methods already check it. * gdk/gdkpixmap.h, gdk/gdkpixmap.c: Convert GdkPixmap to GObject. Add gdkpixmap.c which contains implementation of GdkDrawable virtual table (by chaining to a platform-specific implementation object). * gdk/gdkprivate.h: Remove GDK_IS_WINDOW, GDK_IS_PIXMAP, GDK_DRAWABLE_DESTROYED. Add GDK_WINDOW_DESTROYED. Replace GDK_DRAWABLE_TYPE with GDK_WINDOW_TYPE. Remove GdkDrawablePrivate, GdkWindowPrivate, GdkImageClass, GdkImagePrivate, GdkGCPrivate, GdkColormapPrivate. * gdk/gdktypes.h: #include * gdk/gdkwindow.h, gdk/gdkwindow.c: Convert GdkWindow to GObject. Move most functionality to platform-specific implementation object. GdkWindow itself now handles the backing store, then chains to the platform-specific implementation. (gdk_window_get_window_type): return GdkWindowType of the window. (gdk_window_peek_children): New routine, returns the children of a GdkWindow (gdk_window_get_children): Was in X11-specific code and did XQueryTree. Changed to simply return a copy of window->children; so it can go in cross-platform code. * gdk/x11/Makefile.am: fix broken MKINSTALLDIRS path * gdk/x11/gdkcolor-x11.c: implement X-specific parts of GdkColormap; just changed to use the new private data instead of casting to GdkColormapPrivate. * gdk/x11/gdkcursor-x11.c: added a couple typechecks to gdk_cursor_new(). * gdk/x11/gdkdnd-x11.c: Change the way we access private fields (private data member in the GObject). (xdnd_manager_source_filter): Function had broken error handling, fix it (use gdk_error_trap_push). * gdk/x11/gdkdrawable-x11.c: This file now implements a base class for GdkWindowImplX11/GdkPixmapImplX11. This base class is purely for the convenience of the X port, and not part of the interface to cross-platform GDK. * gdk/x11/gdkevents-x11.c: Reflect various renamings. * gdk/x11/gdkgc-x11.c: Implement a subclass of GdkGC that's specific to X, and returned by the create_gc virtual method of GdkDrawableImplX11. (gdk_x11_gc_set_dashes): Change this to take an array of gint8 rather than gchar, this was also changed in the GdkGC vtable. (gdk_x11_gc_values_to_xvalues): If GdkGCValues is NULL, or the mask is 0, return immediately, instead of checking every flag. This is faster, and keeps us from segfaulting if values is NULL and the mask contains some nonzero flags. * gdk/x11/gdkgeometry-x11.c: deal with all the rearranging of GdkWindow. * gdk/x11/gdkglobals-x11.c: change type of grab window, since GdkWindowPrivate is gone. * gdk/x11/gdkim-x11.c: rename things that got renamed. * gdk/x11/gdkimage-x11.c: implement in terms of GObject, and remove the image_put stuff that got transferred to GdkDrawable. * gdk/x11/gdkinput.c: renamings * gdk/x11/gdkmain-x11.c: #include * gdk/x11/gdkpixmap-x11.c: GObject conversion * gdk/x11/gdkprivate-x11.h: indentation fixes * gdk/x11/gdkproperty-x11.c: renamings * gdk/x11/gdkselection-x11.c: renamings * gdk/x11/gdkwindow-x11.c: Restructuring and renaming; this now implements the platform-specific "impl" object. Moved gdk_window_get_children to gdk/gdkwindow.c * gdk/x11/gdkx.h: Remove all the private structs and private datas that no longer exist. Add declaration of GdkGCX11 object here. Fix all the macros to still work. * gtk/gtk-boxed.defs: Remove GtkStyle, GdkColormap, GdkWindow, GdkDragContext from the boxed types since they are now GObjects. * gtk/gtkstyle.h, gtk/gtkstyle.c: Converted GtkStyle to a GObject, moved xthickness/ythickness into the instance. GtkStyleClass functions are now in the standard vtable for GtkStyle, so you have to create a GObject subclass to write a theme engine. (gtk_style_copy): fixed a leaked PangoFontDescription (gtk_style_init): renamed gtk_style_realize, so gtk_style_init can be the standard GObject function. * Throughout GTK: s/style->klass->[xy]thickness/style->[xy]thickness s/pango_layout_unref/g_object_unref/ * gtk/gtkrc.h, gtk/gtkrc.c: Converted GtkRcStyle to a GObject. * gtk/gtksocket.c: Use gdk_window_get_user_data() instead of accessing GDK internals. * gtk/gtkwidget.c: Use gdk_window_peek_children() instead of accessing GDK internals. 2000-06-18 Elliot Lee * gtk/gtkwindow.c: Don't allow creation of a window bigger than the screen. * gtk/gtkrange.c: Fix the mega-jumpy-with-lagged-events scrollbar problem by calculating event position relative to the trough rather than the slider. * gtk/gtkdnd.c, gtk/gtkcolorsel.c: Include FB headers if appropriate. * gdk/gdkgc.h: Add GDK_NOR. * configure.in, Makefile.am: Add modules top level dir * configure.in: Only use pangox library if building x11 target. * gdk/gdkdnd.h: Add GDK_DRAG_PROTO_LOCAL enum for future intra-app use. Fri Jun 16 22:24:22 2000 Christopher Blizzard * gtk/gtkcolorsel.c: Change private class member to be named private_data throughout the file. * gtk/gtkcolorsel.h (struct _GtkColorSelection): Change private to private_data to avoid clashing with keyword. Fri Jun 16 22:24:22 2000 Christopher Blizzard * gdk/gdkdnd.h: Add comment to remove warning. Sun Jun 18 15:35:35 2000 Pablo Saratxaga * gtk/gtkrc.cp1251,gtk/Makefile.am: the cp1251 is also used by Byelorussian language; changed the Makefile and file names to reflect that. Mon Jun 12 16:58:40 2000 Owen Taylor * gtk/gtkwindow.c (gtk_window_unmap): Call gdk_window_withdraw rather than gdk_window_hide; this makes things work correctly if the window is programmatically hidden while iconified. Sun Jun 11 12:46:19 2000 Owen Taylor * gtk/gtkdnd.c (gtk_drag_set_default_icon): Fix cut and paste typo where wrong pixmap was being unref'ed. (Pointed out by a friend of KUSANO Takayuki.) Sun Jun 11 10:22:36 2000 Owen Taylor * gtk/gtkselection.c (gtk_selection_bytes_per_item): Add helper function to compute format / bytes relationship. Use in a couple places to fix up errors which assume 8 * format. * gtk/gtkselection.c (gtk_selection_request): Use 32 rather than 8 * sizeof (GdkAtom), to work correctly on Alpha. Thu Jun 8 21:54:51 2000 Christopher Blizzard * gtk/Makefile.am (DEPS): deps include libgtk-x11.la, not libgtk.la (LDADDS): include libgtk-x11.la and libgdk-x11.la, not the non-x11 versions * gtk/gtklabel.c (gtk_label_get_text): Make sure that the error checking macros return NULL since the function has a return value. Wed Jun 7 15:44:42 2000 Owen Taylor * gtk/Makefile.am (LDFLAGS): Add missing backslash that was keeping GTK+ from building at all. * gdk/Makefile.am (gdk_c_sources): Fix up some indentation issues. Mon Jun 5 19:32:53 CEST 2000 Paolo Molaro * configure.in, gtk-config.in, gdk/Makefile.am, gdk/*/Makefile.am, gtk/Makefile.am: make it possible to configure gtk for different targets on the same platform. The library name is now libgtk-$target-$version.so. gtk-config accepts a --target x11|nanox|linux-fb flag. Only the x11 target compiles right now. * gdk/gdkregion-generic.h, gdk/gdkregion-generic.c, gdk/gdkpoly-generic.h, gdk/gdkpolyreg-generic.c: move generic region code in the main GDK dir. * gdk/nanox/gdk*generic*: delete generic region code. * gdk/linux-fb/gdk*generic*: delete generic region code. * README.nanox: update information. Tue Jun 6 10:53:59 2000 Owen Taylor * gtk/gtktoolbar.c (gtk_toolbar_prepend_widget): Fix to prepend not append. (Pointed out by Brett Hall.) Tue Jun 6 01:59:57 2000 Owen Taylor * gtk/gtkentry.c (gtk_entry_finalize): Unref the entry's layout. Mon Jun 5 16:00:09 2000 Owen Taylor * gdk/gdk.c (gdk_init_check): Add call to g_type_init() - we'll need this later, and this makes sure that the atexit for glib gets called after that for GDK, so atexits are properly ordered for object leak checking. * gdk/gdk.c (gdk_exit_func): Call gdk_windowing_exit(). * gdk/x11/gdkmain-x11.c (gdk_windowing_exit): Call pango_x_shutdown_display() * gtk/simple.c (main): Close window on destroy. Mon Jun 5 11:50:02 2000 Owen Taylor * gdk/x11/gdkgc-x11.c (gdk_x11_gc_values_to_xvalues): We need to treat initial creation different from setting with regards to the graphics-exposures parameter, so add a parameter indicating whether this is initial or not. Mon Jun 5 13:29:31 2000 Owen Taylor * gdk/x11/gdkevents-x11.c: Hack gdk_event_get_graphics_expose() to sort of work by adding an extra return_exposes arg to gdk_event_translate() - it might be better to simply deprecate the function altogether and force people to rewrite without it. gdk_window_scroll() handles most of it, and where gdk_window_scroll() doesn't work, simply redrawing more does. * gtk/gtkwidget.c (gtk_widget_set_default_direction): Fix up assertion. * gtk-config.in: Include PANGO_CFLAGS/LIBS. * gdk/x11/gdkevents-x11.c (gdk_event_translate): Remove a bunch of pretty much useless /* Print debugging info */ comments which had drifted away from the code they were commenting. 2000-06-02 Havoc Pennington * gtk/testtextbuffer.c: Test program to make sure GtkTextBuffer is in working order. * gtk/testtext.c: Change to reflect anonymous mark API * gtk/gtktextview.c: Convert from mark names to GtkTextMark*. * gtk/gtktexttag.h (struct _GtkTextTag): remove the affects_size field, which was unused. * gtk/gtktextmarkprivate.h (GTK_IS_TEXT_MARK): add this macro, saves some typing. * gtk/gtktextbuffer.c: Switch from mark names to GtkTextMark* * gtk/gtktextbtree.c (gtk_text_btree_new): set the not_deleteable flag on the insertion point and selection bound Throughout, use GtkTextMark instead of GtkTextLineSegment, and make mark-manipulation functions take a GtkTextMark* instead of a mark name. * gtk/gtktextmarkprivate.h: Add a "not_deleteable" flag to GtkTextMarkBody; will be used to detect attempts to delete the permanent marks (insert and selection bound) * gtk/Makefile.am (noinst_PROGRAMS): add testtextbuffer Fri Jun 2 12:56:01 2000 Owen Taylor * gtk/gtkwidget.c (gtk_widget_init): Initialize DOUBLE_BUFFERED flag to on. * gtk/gtkwidget.c (gtk_widget_draw) gtk/gtkmain.c (gtk_main_do_event): Honor DOUBLE_BUFFRED_FLAG * gtk/gtkwidget.c (gtk_widget_set_double_buffered): Add a function to set the DOUBLE_BUFFERED flag. * gtk/gtkwidget.h: Add GTK_DOUBLE_BUFFERED flag to indicate whether or not exposes done on the widget should be double-buffered. * gtk/gtkenums.h (GtkTextDirection): Reverse order of enumerations to be what would be expected. (Fixes problem with a g_return_if_fail() validating a TextDirection enumeration) Thu Jun 1 23:05:13 2000 Owen Taylor * gtk/gtkwidget.c: Remove all references to offscreen flag which was no longer used. * gtk/gtkprivate.h (enum): Remove unused flags and compress. * gtk/gtkframe.c (gtk_frame_set_label_widget): Check for non-null label_widget->parent. * gtk/gtkentry.c: Get rid of code to deal with PangoAttribute which no longer was used. * gdk/gdkpango.c (gdk_pango_context_get_info): make static. * gdk/gdkpango.c (gdk_draw_layout[_line]): Add checks for null arguments. * gdk/x11/gdkgeometry-x11.c (gdk_window_scroll): add check for destroyed windows. Thu Jun 1 13:48:45 2000 Owen Taylor * gtk/gtkimmulticontext.c: Add a finalize method and unref the slave context there. * gtk/gtkinvisible.[ch]: Make reference counting behavior identical to GtkWindow. Thu Jun 1 01:54:11 2000 Owen Taylor * Makefile.am gdk/gdkpango.c: Copy the layout render function from pangox to here, so we can write them independent of rendering system, using GDK primitives. * gdk/gdkdrawable.h gdk/gdkdraw.c gdk/gdkwindow.c gdk/x11/gdkdrawable-x11.c: Remove draw_layout() from the vtable, since we have a rendering-system independent implementation in terms of draw_glyphs(). * gdk/gdkpango.c gdkdrawable.h (gdk_draw_layout_line): New function to render a single line. * gdk/x11/gdkpango.c: Move the guts of this file mostly into ../gdkpango.c, which simplifies things, since we don't have to deal with raw X gc's. Fri May 19 04:28:16 2000 Owen Taylor * gtk/gtktextlayout.[ch]: Add get_log_attrs() function to get the logical attributes for a given GtkTextLine. Tue May 30 16:05:39 2000 Owen Taylor * gdk/x11/gdkfont-x11.c (gdk_font_charset_for_locale): Track g_locale_get_codeset() to g_get_codeset() change. Tue May 30 15:03:19 2000 Owen Taylor * gtk/testcalendar.c (calendar_font_selection_ok): Use font descriptions. * gtk/gtkentry.c (gtk_entry_draw_text): Center text within the entry. * gtk/gtkfontsel.c (gtk_font_selection_dialog_init): Start of redoing (vastly simplifying) for Pango. Still needs quite a bit of work. (Size selection is currently poor. List of predefined sizes is not a good idea, since all of these sizes won't necessarily be distinct.) Tue May 30 13:50:19 2000 Owen Taylor * gdk/x11/gdkfont-x11.c (gdk_font_charset_for_locale): Handle CODESET results for LANG=C. Mon May 29 15:49:10 2000 Owen Taylor * gtk/gtkrc.[ch]: Add a 'font_name' declaration to RC which takes a stringized pango font description; ignore the older 'font' and 'fontset' declarations. * gtk/gtkstyle.c gtk/gtkrc.c: Fill in the style->font field with a GdkFont derived via gdk_font_from_description(), for compatibility. (Should we just remove it entirely? Probably too much compatibility breakage, but people should be migrating to the new Pango stuff as quickly as possible.) Mon May 29 15:47:41 2000 Owen Taylor * gtk/gtkentry.c gtk/gtkclist.c: s/pango_font_unref/g_object_unref/. Mon May 29 15:44:46 2000 Owen Taylor * gtk/gtkcalender.c: Roughly pango-ized. Really needs redoing; there are some bugs in size allocation right now, the semi-existant distinction between header / day fonts was removed, but, with Pango, could actually be made functional in a nice way. * gtk/testcalender: Move calender from examples into this directory as a test program. (We really need to restrcture testgtk into a whole directory full of tests for every widget or functionality group, separated into multiple .c files.) Mon May 29 15:19:56 2000 Owen Taylor * gtk/testgtk.c (file_exists): Fix stupid typo that was keeping RC file from being loaded. * gtk/testgtkrc gtk/testgtkrc2: Test new pango-ized RC file font code. Mon May 29 14:31:27 2000 Owen Taylor * gdk/gdkfont.h gdk/x11/gdkfont-x11.c (gdk_font_from_description): Add function to load a GdkFont from a PangoFontDescription. Fri May 26 17:16:40 2000 Owen Taylor * gtk/frame.[ch] gtkaspectframe.c: Make frame widgets able to have any widget for the label, use a GtkLabel widget to display the text. (Based partially on a patch from Anders Carlson.) (Quite a bit of code reorganization - strip 90% of the guts out of gtkaspectframe and add a single virtual func to GtkFrameClass - compute_child_allocation.) Fri May 26 12:00:02 2000 Owen Taylor * gtk/gtkctree.c gtk/gtkclist.[ch]: Pangoized. (Removed clist->row_center_offset field because caching it wasn't saving time or code, added private function _gtk_clist_create_cell_layout()). Wed May 24 15:59:37 2000 Owen Taylor * gtk/gtkaccellabel.c: Pangoized. * gtk/[hv]ruler.c: Pangoized Mon May 22 19:23:59 2000 Owen Taylor * gtk/gtkfilesel.c (gtk_file_selection_init): Use gtk_clist_set_column_auto_resize() to remove need need for manual column width computations. Mon May 22 18:50:26 2000 Owen Taylor * gtk/gtktooltips.[ch]: Replace custom drawing with a GtkLabel, ensuring Pango correctness, and considerably simplifying the code. * gtk/gtklabel.c gtk[hv]scale.c: 1000 => PANGO_SCALE. * gtk/gtklabel.c (gtk_label_size_request): Fixed incorrect getting of numbers of lines. * gtk/gtklabel.c (gtk_label_size_request): Set the requisition to the actual requested width of the lable, not to the wrap width we set. * gtk/gtktextchild.h: Remove extraneous include of gtk/gtk.h. * gtk/gtktextbtree.c gtk/gtktextbuffer.c gtk/gtktextlayout.c gtk/gtktextview.c gtk/gtktextview.[ch]: Fix up includes. * gtk/gtktextview.c: Fix structure inheritance. * gtk/gtkprogressbar.c: Pangoize. Mon May 22 15:47:30 2000 Owen Taylor * gtk/gtktextview.c (gtk_text_view_get_first_para_iter): Encapsulate in a function. * gtk/gtktextlayout.c (find_display_line_above): Fixed bug with computing line tops. * gtk/gtktextview.c (changed_handler): Fix < , <= confusion. Thu May 18 18:53:31 2000 Owen Taylor * gtk/gtktextdisplay.c (gtk_text_layout_draw): Fix up the x_offset and y_offset coordinates to do what we need now. (The offset between buffer and layout coordinates has been reintroduced, but is a bit different than before.) * gtk/gtktextview.[ch]: No longer inherit from GtkLayout; instead handle the adjustments ourselves, and scroll as necessary using the new gdk_window_scroll(). The advantage of this is that when we are incrementally revalidating, we are essentially rearranging things around the visible portion of the screen. With the old setup, the visible portion of the screen was moved around in the layout, so scrolling and redrawing to track that caused jumping of the display. Since we now control the scrolling ourselves, we can suppress this and only redraw when things actually change. Thu May 18 18:47:25 2000 Owen Taylor * gtk/gtktextbtree.c (redisplay_mark): We need to invalidate the region not just redisplay it after-all, since we store the cursors in the LineDisplay. (Ugly interactions here between GtkLayout and GtkTextBTree here.) * gtk/gtktextbtree.c (redisplay_region): Fixed reversed comparison. Thu May 18 18:43:21 2000 Owen Taylor * gdk/gdkwindow.h gdk/x11/gdkgeometry-x11.c (gdk_window_scroll): Added function to scroll contents of a window while keeping the window constant. Works by XCopyArea or guffaw-scrolling depending on the details of how the window is set up. (guffaw-scrolling still needs to be filled in.) Wed May 17 22:36:53 2000 Owen Taylor * gtk/gtktextiter.c gtk/gtkmain.c: Add a debug key for the text widget, move the debugging that was tied to a global variable to that. * gtk/gtkmarshal.list: Add NONE:INT,INT,INT * gtk/gtktextbtree.[ch] gtk/gtktextlayout.c: Keep a separate validated flag, in line data instead of setting height/width to -1. This allows us to perform operations with partially invalid buffer (using the old size for invalid lines) and thus to do incremental vaidation. Keep height/width aggregates up to date when deleting text and rebalancing the tree. * gtk/gtktextbtree.[ch]: Add functions validate a line (gtk_text_btree_validate_line), and to validate up to a number of pixels (gtk_text_btree_validate). * gtk/gtktextlayout.[ch]: Add an ::invalidated signal that indicates that something is changed and a revalidation pass is needed. Change ::need_repaint to ::changed, and make it take old and new yranges instead of a rectangle. * gtk/gtktextbtree.[ch] gtk/gtktextlayout.[ch]: Move the line_data_destroy() function from gtk_text_btree_add_view() to a virtual function in GtkTextLayout * gtk/gtktextbtree.[ch]: Remove gtk_text_btree_get_damage_range(), since we are handling partial repaints in a different fashion now. * gtk/gtktextbtree.[ch]: Only repaint the changed portion of the selection instead of queueing a repaint on the entire widget. * gtk/gtktextbuffer.[ch] gtk/gtktextbtree.[ch]: Move get_selection_bounds() down to btree, make the function in buffer a wrapper around the btree function. * gtk/gtktextlayout.[ch]: Add functions to check if the layout is valid and to recompute either a range of pixels aroudn a line or a certain total number of pixels. * gtk/gtktextlayout.[ch]: Cache a single line display; now that we only redraw the needed portions, the hit rate for this cache is quite high. * gtk/gtktextview.[ch]: Keep track of the first paragraph on the screen so that when re-laying-out the buffer, we can keep the same place. This requires connecting to ::value_changed on the adjustments * gtk/gtktextview.[ch]: Add idle functions to revalidate the buffer after we receive an ::invalidated signal. Wed May 17 22:10:47 2000 Owen Taylor * gtk/gtklayout.c (gtk_layout_size_allocate): Set upper to max of allocation and layout size, not just to the layout size. * gtk/gtk[hv]scrollbar.c (gtk_[hv]scrollbar_calc_slider_size): Invalidate window so it gets redrawn properly. * gdk/gdkwindow.c (gdk_window_invalidate_rect): Allow rect == NULL to mean the entire window. * gdk/gdkevents.h: Move definition for GDK_PRIORITY_REDRAW into public header. Mon May 15 14:51:31 2000 Owen Taylor * gtk/gtktextmark.c (gtk_text_mark_get_name): Add function to get the name of a mark. * gtk/gtktextlayout.c (gtk_text_layout_get_line_at_y): Add a function to find the paragraph from a y position. Thu May 11 12:57:20 2000 Owen Taylor * gtk/gtktextbtree.c (gtk_text_btree_node_invalidate_upward): Valid nodes have width/height >= 0, not > 0. Tue May 9 21:29:06 2000 Owen Taylor * gtk/gtktextlayout.[ch] gtk/gtktextdisplay.c (gtk_text_layout_get_line_display): Add a size_only flag, so when we only need the size, we don't create useless appearance attributes. * gtk/gtktextview.c (gtk_text_view_ensure_layout): Remove duplicate setting of font description. * gtk/gtkscale.c: Use PANGO_SCALE instead of 1000 Wed Apr 26 01:53:23 2000 Owen Taylor * gtk/Makefile.am (EXTRA_DIST): Add OLD_STAMP into EXTRA_DIST. It does not work well when the file that everything depends on is not in the tarball. Wed Apr 26 00:56:14 2000 Owen Taylor * gtk/testgtk.c: Some hacks and fixes so that it basically works when not sitting in the GTK+ build tree. 2000-05-03 Havoc Pennington * gtk/gtktextbtree.c (gtk_text_line_next_could_contain_tag): Properly determine the ordering of the tag root and the current line within the tree. Previous algorithm only worked if the tag root's immediate parent was the common root of both the current line and the tag root. Wed Apr 26 00:43:00 2000 Owen Taylor * gtk/gtktextlayout.c (set_para_values): Fix some bugs in alignment. * gtk/gtktextview.c (gtk_text_view_ensure_layout): Track the widget text directional dynamically. * gtk/gtktextview.[ch]: Added functions to get and set default wrap mode. Tue Apr 25 23:47:38 2000 Owen Taylor * gtk/gtktextlayout.c (gtk_text_layout_get_iter_location): Fix bug in cursor location computation. Tue Apr 25 23:22:59 2000 Owen Taylor * gtk/gtklayout.c (gtk_layout_set_size): Clamp hadjustment/ vadjusment values properly when layout gets smaller. * gtk/gtktextview.c (need_repaint_handler): Areas being passed in are far completely inaccurate, and sometimes too small, so, for now, just queue a redraw on the whole visible region. 2000-04-25 Havoc Pennington * gtk/gtktextbtree.c (summary_destroy): new function to destroy tag summary nodes (gtk_text_line_next_could_contain_tag): this function was totally broken if the line passed in wasn't below the tag root. Fix it. (gtk_text_btree_first_could_contain_tag): In the tag == NULL "wildcard" case, we have to do a linear scan. Blah. (gtk_text_btree_last_could_contain_tag): In tag == NULL case, we have to do the linear scan (tag_removed_cb): When a tag is removed from the tag table, remove the GtkTextTagInfo node from the btree. (gtk_text_btree_spew): Implement the spew function, for our debugging pleasure. Tue Apr 25 19:40:18 2000 Owen Taylor * gtk/gtktextlayout.c (gtk_text_layout_set_buffer): Fix a problem with referring to the wrong buffer. * gtk/gtkentry.c: Fix focus-in/focus-out confusion. * gtk/gtkrc.c gtk/gtkstyle.c: Moving setting default font description to gtk_style_new() - otherwise things don't work without a .gtkrc file. * gtk/gtktextbuffer.c (gtk_text_buffer_new): Sink the tags table if we create it ourself, too. * gdk/gdktypes.h (enum): Move GDK_RELEASE_MASK, since it was conflicting with XKB modifiers. * gtk/gtktextview.[ch]: Add simple support for GtkIMContext. Mon Apr 24 19:34:18 2000 Owen Taylor * gtk/gtkentry.c (gtk_entry_move_cursor_visually): Fix problem with deletion from last commit. Mon Apr 24 19:29:40 2000 Owen Taylor * gtk/gtkwidget.c (gtk_widget_create_pango_context): Set the language in the context from the current locale. * gtk/gtkentry.c (gtk_entry_size_request): Use language from the context, not hardcoded value. * gtk/gtkentry.c (gtk_entry_move_cursor): Make character movement visual, not logical. Sun Apr 23 23:39:18 2000 Owen Taylor * gtk/gtkentry.c gtk/gtktextdisplay.c: Don't handle selections as attributes - that doesn't handle partial-glyph selection properly. Instead use new pango_layout_line_get_x_ranges() functionality to draw the selection. * gtk/gtkentry.c: Simplify code since pango_layout_line_index_to_x() now properly handles out-of-range coordinates. * gtk/gtktextbuffer.c: Emit "mark_set" when the cursor is moved. * gtk/gtktextiter.h gtk/gtktextiterprivate.h: Make gtk_text_iter_get_line_byte() public. * gtk/gtktextlayout.[ch]: Properly set the direction in the PangoContext for paragraphs opposite to the base direction of the widget. * gtk/gtktextlayout.[ch] gtk/gtktextdisplay.c: Fixes for alignment. * gtk/gtktextlayout.c: Don't split segments on marks, since that causes Arabic words to reshape as you cursor through. * gtk/gtktextlayout.[ch] gtk/gtktextview.[ch]: Implement virtual cursor position when moving vertically with the arrow keys and scrolling with page-up/page-down. (Arrow keys save only the X, scrolling saves both X and Y.) This means you can line-up / line-down or page-up / page-down without losing your place, and also that moving vertically with the cursor keys keeps the same X position, not the same character count: * gtk/gtktextlayout.[ch] gtk/gtktextview.[ch]: Make vertical arrow keys move by display lines, not paragraphs. Tue Apr 18 14:16:50 2000 Owen Taylor * gtk/gtklayout.c: Make sure that the bin window is at least as big as the allocation. (Should we also make sure that the bin window is big enough to completely cover widget->window?) * gtk/gtktextview.c (gtk_text_view_get_visible_rect): Add function to get the onscreen rectangle. * gdk/x11/gdkwindow-x11.c (gdk_window_get_pointer): Correctly account for offsets in window coordinates. Sun Apr 16 16:13:27 2000 Owen Taylor * gtk/gtkentry.c (gtk_entry_get_cursor_locations): Fix index/offset confusion. * gtk/gtktextview.c (gtk_text_view_ensure_layout): Set the default direction from the widget direction. * gtk/gtktexttag.c gtk/gtktexttagprivate.h (gtk_text_tag_set_arg): Add a "direction" attribute. * gtk/gtktextview.c: global s/tkxt/text_view/. * gtk/testtext.c: Added long block of text in Arabic, to test out the direction attributes. (Some problems with the shaping system for arabic become obvious - like the fact the cursor splits words into unjoined pieces.) Fri Apr 14 12:54:34 2000 Owen Taylor * gtk/gtktextdisplay.c (render_layout): Add overstrike handling. * gtk/gtktextlayout.c: Fix up alignment. * gtk/testtext.c: Add some tests for centering, wrapping. Fri Apr 14 09:26:22 2000 Owen Taylor * gdk/gdkdrawable.h gdk/gdkdraw.c gdk/gdkwindow.c gdk/x11/gdkdrawable-x11.c: Add a draw_glyphs() operation to the drawable vtable and gdk_draw_glyphs(). If we wrote GTK+-specific layout-render function this could just replace the draw_layout() operation in the vtable. * gtk/gtkentry.c: Move guts of gtk_entry_get_cursor_locations to pango_layout_get_cursor_pos() and use that function. * gtk/gtktextchild.[ch]: add gtk_ onto pixmap_segment_new(), since it is a non-static symbol. * gtk/gtktextbtree.[ch]: Replace gtk_text_btree_find_line_data_by_y() with gtk_text_btree_find_line_by_y() * gtk/gtktextdisplay.c: Rewrote for Pango - uses a custom layout renderer that handles GtkTextAppearance attributes. * gtk/gtktexttag.[ch] gtk/gtktexttagprivate.h: - Move the values in the style that don't affect geometry into a GtkTextAppearance structure. - Change underline to take a PangoUnderline and "font" a string representation of a font description - Add a "font_desc" attribute which takes a FontDescription structure. * gtk/gtktextlayout.[ch]: - Get rid of the display-line list per each line. Instead, we generate, on demand, a GtkTextLineDisplay structure which] contains a PangoLayout * and other necesary information (offsets, cursor locations) for displaying a paragraph. - Get rid of the code to wrap lines, create display chunks, etc. Instead, we just go through a paragraph and convert it into the necessary inputs to a PangoLayout. - Implement a new attribute type, GtkTextAttrAppearance. This holds a GtkTextAppearance, and is used to pass colors, stipple, etc, through from the layout to the display without having to use lots and lots of individual attributes. - Reimplement gtk_layout_get_iter_at_pixel() gtk_layout_get_iter_pos() in terms of PangoLayout functions. * gtk/gtktextview.c: - Handle passing the necessary PangoContext to the layout - Some fixups in painting to deal with the automatic backing store and offsetting of GTK+-1.4 - Add a style_set handler so that the default style reacts properly to theme changes. * gtk/gtktext?*.[ch]: Random code-style fixes. * gtk/testtext.c: Substitute in languages that Pango handles now for Thai Mon Apr 10 10:33:45 2000 Owen Taylor * gtk/gtktext?*.[ch]: Check in Havoc's port of the Tk text widget, in original form preparatory to Pango-ization and gdkimcontext-ization. Thu Apr 6 19:25:39 2000 Owen Taylor * gtk/gtkimcontext.c: Move default implementations to real_* vfuncs, so that we can derive from gtkimcontext in language bindings properly. Thu Apr 6 16:02:52 2000 Owen Taylor * gtk/gtkimcontextsimple.[ch]: Use gdk_keyval_to_unicode to gdk_unicode_to_keyval. Add a compose table including (almost) all the compose combinations from X. This is 6k of static, shared data as opposed to 50k or so of dynamic data in the XIM implementation. * gdk/gdk.h gdk/gdkkeyuni.c gdk/win32/gdkevents-win32.c (gdk_keyval_to_unicode, gdk_unicode_to_keyval): Moved functions to convert keyvalues from and to unicode here from the win32 port and made them public. Wed Apr 5 16:37:29 2000 Owen Taylor * gtk/gtkeditable.c (gtk_editable_insert_text): Allow new_text_length == -1. Wed Apr 5 16:27:45 2000 Owen Taylor * gtk/gtkimcontext.[ch]: Base class for new input context system * gtk/gtkimmulticontext.[ch]: Proxy input context that allows the real input context implementation to be loaded from modules and switched on the fly. * gtk/gtkcontextsimple.[ch]: Simple implementation of an input context that just does direct keysymbol => unicode translation. * gtk/gtkentry.[ch]: Start switching editing over to using GtkInputContext. (No handling of preedit yet.) Wed Apr 5 15:48:41 2000 Owen Taylor * gtk/gtktypeutils.h (GTK_CHECK_GET_CLASS): Fix problem with one too many substitutions. (klass should not be subsituted.) Wed Apr 5 00:18:14 2000 Owen Taylor * configure.in: Add checks for Pango * configure.in docs/Makefile.am: Add test for sgml2html and allow 'make dist' without building html, but print out warnings in that case. (For making snapshots) * gdk/Makefile.am gdk/x11/Makefile.am gtk/Makefile.am: Add Pango libraries and C flags * gdk/gdkdraw.c gdk/gdkdrawable.h gdkwindow.c gdk/x11/gdkdrawable-x11.c: Add function (gdk_draw_layout) to draw a pango layout. * gdk/gdkpango.h gdk/x11/gdkpango-x11.c: New file with functions for getting Pango contexts for GDK. * gtk/gtkeditable.c: Get rid of dead code gtk_editable_parent_set() * gtk/gtkentry.[ch]: Complete rewrite to use Pango, add bidirectional editing. * gtk/gtkentry.c: Hack in simple Hebrew input with direct keysym => unicode translations. More languages can be added here, but real input-method support is needed. * docs/Changes-1.4.txt: Added note about entry behavior. * gtk/gtkenums.h gtk/gtkwidget.[ch] testgtk.c gtkprivate.h: Add functions to set the reading direction for a widget and the global direction. Add test which allows toggling the global direction. Two private flags are used to store the direction. (GTK_DIRECTION_SET + GTK_DIRECTION_LTR) * gtk/gtkcheckbutton.c gtk/gtkframe.c gtk/gtkhbbox.c gtk/gtkhbox.c gtk/gtkradiobutton.c gtk/gtkspinbutton.c gtk/gtktable.c * gtk/gtk[hv]scale.c gtk/gtkscale.[ch]: Draw numbers using Pango * gtk/gtklabel.[ch]: Moved to Pango and considerably rewritten. Line breaking, underlining now handled by Pango. * gtk/gtkstyle.[ch] gtk/gtkrc.[ch]: Add a PangoFontDescription to RCStyle and Style. (Having both this and the old font name and GdkFont is temporary.) * gtk/gtkwidget.[ch] (gtk_widget_create_pango_{context,layout}): Added convenience functions for creating contexts and layouts for widgets. * gtk/testgtk.c: Enhance label tests with multilingual labels. 2000-05-29 Jonathan Blandford * gtk/gtkclist.c (gtk_clist_column_titles_active): let you set the titles to be active, even if they aren't visible. (gtk_clist_column_titles_passive): Ditto. 2000-05-21 Nils Barth * gtkmenu.c: * gtkmenu.h: * gtktypeutils.h: Spelling/grammar fixes in comments. Tue May 23 12:25:07 CEST 2000 lupus * gdk/nanox/*.h: add missing header files. Fri May 19 11:52:59 2000 Tim Janik * gtk/gtkdrawingarea.c (gtk_drawing_area_send_configure): set send_event to TRUE. (gtk_drawing_area_size): queue a resize. Sun Mar 26 03:21:28 2000 Tim Janik * gtk/gtksignal.c (gtk_signal_handlers_destroy): when unref-ing the handlers, also invalidate them. bug nailed down by Karl Nelson . Fri May 19 06:49:23 2000 Tim Janik * gtk/gtkfontsel.c (gtk_font_selection_get_font_name): handle "(nil)" foundries, patch from Grigorios Magklis. * gtk/gtkfontsel.c (gtk_font_selection_load_font): don't crash on non-available fonts, based on a patch by Grigorios Magklis . 2000-05-18 Elliot Lee * gdk/x11/gdkregion-generic.c: If a region does not have any rectangles, or if the specified rectangle is not in the region, then return GDK_OVERLAP_RECTANGLE_OUT instead of GDK_OVERLAP_RECTANGLE_IN. 2000-05-17 Jonathan Blandford * gtk/gtklayout.c (gtk_layout_map): Remove references to OFFSCREEN, as it is no longer necessary. Wed May 17 10:52:12 2000 Owen Taylor * gtk/gtkcolorsel.c: Patch from David Santiago to change things so that the indicator of the active palette entry is done independently, not via the focus, since it should always be visible. 2000-05-17 Tor Lillqvist * gdk/win32/gdkevents-win32.c (gdk_event_translate): Plug same refcount leaks as in the X11 backend. * gdk/win32/gdkgc-win32.c (gdk_win32_gc_set_values): Logging cosmetics. * gdk/win32/gdkwindow-win32.c: Similar changes as in X11 backend. Add _gdk_windowing_window_destroy(). * gtk/gtkcolorsel.c: Include correct backend-specific header. Don't use XColor unless on X11. (No GDK_VISUAL_STATIC_COLOR either, but these probably do exist on nanox?) * gtk/gtkhsv.c: Use G_PI (fresh from ) instead of M_PI which isn't necessarily defined by . * gtk/gtkobject.c (gtk_object_init): Don't go up the class ancestry past GtkObject. * gtk/gtktypeutils.h: Mark GTK_TYPE_IDENTIFIER for export/import from DLL on Win32. * gtk/gtk.def: Update corresponding to recent changes. * gtk/makefile.{cygwin,msc}: Updates. Fri May 12 18:46:51 2000 Owen Taylor * docs/Changes-1.4.txt: A bit of editing. * gdk/gdkwindow.c (_gdk_window_clear_update_area) * gdk/x11/gdkwindow-x11.c (gdk_window_hide): Add a function to clear the update area for the window, and clear it when hiding a window. * gdk/gdkwindow.c (gdk_window_begin_paint_region): Ignore if window destroyed. * gdk/gdkwindow.c (gdk_window_end_paint): Likewise. * gdk/gdkwindow.c gdk/x11/gdkwindow-x11.c gdk/gdkinternals.h: Move gdk_window_destroy() to the generic code, since there was a lot of window-system-independent logic it in. Add a function: _gdk_window_destroy() to the internal API to destroy a window without unreferencing it. Add a function: _gdk_windowing_window_destroy() That does the windowing-system-dependent part of destroying the window. Fri May 12 11:07:41 2000 Owen Taylor * gtk/testgtk.c: Fix various memory leaks of pixmaps. Fri May 12 11:06:10 2000 Owen Taylor * gtk/gtkwidget.c docs/Changes-1.4.txt (gtk_widget_shape_combine_mask): Make gtk_widget_shape_combine_mask() keep a reference count on the pixmap since it keeps it around. Fri May 12 10:53:29 2000 Owen Taylor * gdk/gdkwindow.c (gdk_window_process_updates_internal): Fix refcount leak. * gdk/x11/gdkevents-x11.c (gdk_event_translate): Fix refcount leak with event filters. Thu May 11 14:29:44 2000 Owen Taylor * gtk/gtkdnd.c (gtk_drag_dest_set_internal): Remove the signal handlers with the right data arguments. (Fixes some warnings when a widget was repeatedly set as a drag destination.) * gdk/x11/gdkdnd-x11.c (gdk_window_register_dnd): Set data on the window so we can avoid avoid setting the DND properties on the toplevel window repeatedly. 2000-05-13 Tor Lillqvist * gdk/win32/gdkwin32.h: Define more message types missing from mingw headers. * gdk/win32/gdkevents-win32.c (gdk_event_translate): On WM_DESTROY call gdk_window_destroy_notify(). It was never called. This probably meant that the GdkWindow was never freed. Thanks Owen for noticing (!). * gdk/win32/gdkwindow-win32.c (gdk_window_internal_destroy): Mark window as destroyed before calling DestroyWindow(). DestroyWindow() causes a call to the window procedure (gdk_WindowProc), which calls gdk_event_translate(), which calls gdk_window_destroy_notify(), which gets confused unless the window is set as destroyed. * gdk/win32/gdkcolor-win32.c (gdk_win32_color_to_string): Rename this function to indicate it's win32 only. Put inside #ifdef G_ENABLE_DEBUG. * gdk/win32/gdkevents-win32.c (gdk_win32_message_name): New debugging function. (gdk_event_translate:) Add a default branch that uses the above function to print debug messages with all Windows messages symbolically. * gdk/win32/gdkprivate-win32.h: Declare it, and gdk_win32_color_to_string, but only if G_ENABLE_DEBUG. Fri May 12 20:07:32 2000 Tim Janik * gtk/gtkcolorseldialog.c: don't include gtk/gtkintl.h in a public header file. Fri May 12 17:13:32 2000 Tim Janik * docs/Changes-1.4.txt: documented necessary changes for 1.4 transition. * gtk/gtktext.c: made the adjustments no-construct args, simply provide default adjustments. (gtk_text_destroy): release adjustments. * gtk/gtkprogressbar.c (gtk_progress_bar_class_init): made the adjustment argument non-construct. * gtk/gtkprogress.c (gtk_progress_destroy): release adjustment here, instead of in finalize. (gtk_progress_get_text_from_value): (gtk_progress_get_current_text): (gtk_progress_set_value): (gtk_progress_get_percentage_from_value): (gtk_progress_get_current_percentage): (gtk_progress_set_percentage): (gtk_progress_configure): ensure an adjustment is present. Thu May 11 01:24:08 2000 Tim Janik * gtk/gtkcolorsel.[hc]: * gtk/gtkcolorseldialog.[hc]: * gtk/gtkhsv.[hc]: major code cleanups, destroy handlers need to chain their parent implementation, use bit fields for boolean values, don't create unused widgets, usage of glib types, braces go on their own lines, function argument alignment, #include directives etc. etc. etc.. * gtk/Makefile.am (gtk_public_h_sources): install gtkhsv.h. Wed May 10 23:29:52 2000 Tim Janik * gtk/gtktoolbar.c (gtk_toolbar_destroy): don't unref a NULL tooltips. * gtk/gtkfilesel.c (gtk_file_selection_destroy): don't free a cmpl_state of NULL. * gtk/gtkcombo.c (gtk_combo_item_destroy): don't keep references to freed data. (gtk_combo_destroy): don't keep a pointer to a destroyed window. * gtk/gtkmenu.c (gtk_menu_init): reset the menu's toplevel pointer to NULL when the toplevel is getting destroyed. (gtk_menu_set_tearoff_state): same here for the tearoff_window. (gtk_menu_destroy): (gtk_menu_init): store the information of whether we have to readd the initial child ref_count during destruction in a new GtkMenu field needs_destruction_ref_count. * gtk/gtkviewport.c: SHAME! ok this one is tricky, so i note it here, those reading: learn from my mistake! ;) in order for set_?adjustment to support a default adjustemnt if invoked with an adjustment pointer of NULL, the code read (pseudo): if (v->adjustment) unref (v->adjustment); if (!adjustment) adjustment = adjustment_new (); if (v->adjustment != adjustment) v->adjustment = ref (adjustment); now imagine the first unref to actually free the old adjustment and adjustment_new() creating a new adjustment from the very same memory portion. here, the latter comparision will unintendedly fail, and all hell breaks loose. (gtk_viewport_set_hadjustment): (gtk_viewport_set_vadjustment): reset viewport->?adjustment to NULL after unreferencing it. * gtk/gtkcontainer.[hc]: removed toplevel registration functions: gtk_container_register_toplevel(), gtk_container_unregister_toplevel() and gtk_container_get_toplevels() which had wrong semantics anyways: it didn't reference and copy the list. * gtk/gtkwindow.c: we take over the container toplevel registration bussiness now. windows are registered across multiple destructions, untill they are finalized. the initial implicit reference count users are holding on windows is removed with the first destruction though. (gtk_window_init): ref & sink and set has_user_ref_count, got rid of gtk_container_register_toplevel() call. add window to toplevel_list. (gtk_window_destroy): unref the window if has_user_ref_count is still set, got rid of call to gtk_container_unregister_toplevel(). (gtk_window_finalize): remove window from toplevel list. (gtk_window_list_toplevels): new function to return a newly created list with referenced toplevels. (gtk_window_read_rcfiles): use gtk_window_list_toplevels(). * gtk/gtkhscale.c (gtk_hscale_class_init): made the GtkRange adjustment a non-construct arg. * gtk/gtkvscale.c (gtk_vscale_class_init): likewise. * gtk/gtkhscrollbar.c (gtk_vscrollbar_class_init): likewise. * gtk/gtkvscrollbar.c (gtk_vscrollbar_class_init): likewise. * gtk/gtkrange.c: added some realized checks. (gtk_range_destroy): get rid of the h/v adjustments in the destroy handler instead of finalize. remove timer. (gtk_range_get_adjustment): demand create adjustment. * gtk/gtkviewport.c: made h/v adjustment non-construct args. we simply create them on demand now and get rid of them in the destroy handler. (gtk_viewport_destroy): get rid of the h/v adjustments in the destroy handler instead of finalize. (gtk_viewport_get_hadjustment): (gtk_viewport_get_vadjustment): (gtk_viewport_size_allocate): demand create h/v adjustment if required. * gtk/gtkwidget.c (gtk_widget_finalize): duplicate part of the gtk_widget_real_destroy () functionality. (gtk_widget_real_destroy): reinitialize with a new style, instead of setting widget->style to NULL. Fri May 5 13:02:09 2000 Tim Janik * gtk/gtkcalendar.c: * gtk/gtkbutton.c: ported _get_type() implementation over to GType, either to preserve memchunks allocation facilities, or because Gtk+ 1.0 GtkTypeInfo was still being used. * gtk/gtkobject.[hc]: derive from GObject. ported various functions over. prepare for ::destroy to be emitted multiple times. removed reference tracer magic. chain into GObjectClass.shutdown() to emit ::destroy signal. * gtk/gtksignal.c: removed assumptions about GTK_TYPE_OBJECT being fundamental. * gtk/gtkmain.c: removed gtk_object_post_arg_parsing_init() cludge. * gtk/gtksocket.c: * gtk/gtkplug.c: * gtk/gtklayout.c: * gtk/gtklabel.c: * gtk/gtkargcollector.c: * gtk/gtkarg.c: various fixups to work with GTK_TYPE_OBJECT not being a fundamental anymore, and to work with the new type system (nuked fundamental type varargs clutter). * gtk/*.c: install finalize handlers in the GObjectClass part of the class structure. changed direct GTK_OBJECT()->klass accesses to GTK_*_GET_CLASS(). changed direct object_class->type accesses to GTK_CLASS_TYPE(). * gtktypeutils.[hc]: use the reserved fundamental ids provided by GType. made most of the GTK_*() type macros and Gtk* typedefs simple wrappers around macros and types provided by GType. most notably, a significant portion of the old API vanished: GTK_TYPE_MAKE(), GTK_TYPE_SEQNO(), GTK_TYPE_FLAT_FIRST, GTK_TYPE_FLAT_LAST, GTK_TYPE_STRUCTURED_FIRST, GTK_TYPE_STRUCTURED_LAST, GTK_TYPE_ARGS, GTK_TYPE_CALLBACK, GTK_TYPE_C_CALLBACK, GTK_TYPE_FOREIGN, GtkTypeQuery, gtk_type_query(), gtk_type_set_varargs_type(), gtk_type_get_varargs_type(), gtk_type_check_object_cast(), gtk_type_check_class_cast(), gtk_type_describe_tree(), gtk_type_describe_heritage(), gtk_type_free(), gtk_type_children_types(), gtk_type_set_chunk_alloc(), gtk_type_register_enum(), gtk_type_register_flags(), gtk_type_parent_class(). replacements, where available are described in ../docs/Changes-1.4.txt. implemented compatibility functions for the remaining API. * configure.in: depend on glib 1.3.1, use gobject module. Thu May 11 12:39:50 2000 Owen Taylor * TODO.xml: Various updates to current status. Wed May 10 20:25:04 2000 Owen Taylor * gtk.m4: Print out version when test succeeds. Wed May 10 16:38:17 2000 Owen Taylor * gtk/Makefile.am docs/Changes-1.4.txt gtk/gtkcolorsel.[ch] gtk/gtkhsv.[ch]: Color selection dialog rewrite. (Original triangle color selector from Simon Budig , Cleaned up and rewritten for GTK+ by from Jonathan, Havoc, and Federico. Merge into GTK+ done by David Santiago ) * gtk/gtkcolorseldialog.[ch]: Split color selection dialog out into a separate widget. * gtk/testgtk.c: Add some checkbuttons for toggling palette and opacity controls. Wed May 10 16:08:09 2000 Owen Taylor * configure.in (GTK_LIBS_EXTRA): Remove references to gobject that snuck in prematurely. 2000-05-07 Tor Lillqvist * gdk/win32/gdkevents-win32.c (gdk_event_translate): Fix typo. I had deleted a ! operator by mistake, which caused GDK_SELECTION_CLEAR events never to be generated, which caused only the first copy to the clipboard from an gtkeditable to actually cause a copy to the Windows clipboard. 2000-05-06 Tor Lillqvist * gdk/win32/gdkdnd-win32.c: Enable shortcut resolution for gcc compilation, too. Current mingw gcc distributions include the necessary headers. Also the necessary IIDs are now in mingw headers/libraries, and own definitions unnecessary. More hacking on OLE2 DND, still doesn't work though, and thus ifdeffed out. * gdk/win32/gdkwindow-win32.c: Remove gdk_window_clear() from here, too. Sat, 6 May 2000 13:31:34 +0200 Paolo Molaro * gdk/nanox/*: nano-X port work in progress. * gdk/simple.c: simple test for Gdk. * README.nanox: notes about the port: read this first! * gtk/gtk{dnd,plug,selection,window}.c: minimal changes to make gtk compile with nano-X. Fri May 5 11:18:47 2000 Owen Taylor * gdk/gdkwindow.c gdk/x11/gdkwindow-x11.c (gdk_window_clear): Move gdk_window_clear() into common code, implement in terms of gdk_window_clear_area(). (Fixes bug where gdk_window_clear() was not redirected to the backing rectangle. Wed Apr 26 01:53:23 2000 Owen Taylor * gtk/Makefile.am (EXTRA_DIST): Add OLD_STAMP into EXTRA_DIST. It does not work well when the file that everything depends on is not in the tarball. Tue Apr 25 22:20:41 2000 Owen Taylor * gdk/gdkwindow.c (gdk_window_process_updates_internal): Fix error with recursion where process_updates() is called from an expose handler. (GtkTextView is highly broken in doing this, but it should work, so it is a nice test case.) Sun Apr 23 23:39:18 2000 Owen Taylor * gdk/gdkwindow.c (gdk_window_process_updates_internal): Gracefully handle the case where updates are queued during processing of updates. Tue Apr 18 14:16:50 2000 Owen Taylor * gdk/x11/gdkwindow-x11.c (gdk_window_foreign_new): We already assume window is on gdk_display - use that instead of segfaulting. Thu May 4 02:04:46 2000 Tim Janik * configure.in (STRIP_DUMMY): some Make 3.79 $(strip ) versions are broken and require an empty arg, give it to them. Fri Apr 28 19:34:32 2000 Tim Janik * gtk/gtklabel.h: indentation fixes. 2000-05-02 Tor Lillqvist * gdk/win32/gdkdrawable-win32.c (gdk_win32_draw_arc): Don't try to draw too narrow or too low arcs, they seem to fail, at least with some display drivers. * gdk/gdk.c (gdk_init_check): Use G_DIR_SEPARATOR. Large changes to the Win32 backend, partially made necessary by the changes to the backend-independent internal structures. Attempts to implement similar backing store stuff as on X11. The current (CVS) version of the Win32 backend is *not* as stable as it was before the no-flicker branch was merged. A zipfile with that version is available from http://www.gimp.org/win32/. That should be use by "production" code until this CVS version is usable. (But note, the Win32 backend has never been claimed to be "production quality".) * README.win32: Add the above comment about versions. * gdk/gdkwindow.c: Don't use backing store for now on Win32. * gdk/gdk.def: Update. * gdk/gdkfont.h: Declare temporary Win32-only functions. Will presumably be replaced by some more better mechanism as 1.4 gets closer to release shape. * gdk/makefile.{cygwin,msc}: Update. * gdk/win32/*.c: Correct inclusions of the backend-specific and internal headers. Change code according to changes in these. Use gdk_drawable_*, not gdk_window_* where necessary. * gdk/win32/gdkdnd-win32.c: Use MISC selector for GDK_NOTE, not our old DND. * gdk/win32/gdkdrawable-win32.c (gdk_win32_draw_text): Don't try to interpret single characters as UTF-8. Thanks to Hans Breuer. Use correct function name in warning messages. * gdk/win32/gdkevents-win32.c: Use correct parameter lists for the GSourceFuncs gdk_event_prepare and gdk_event_check. (gdk_event_get_graphics_expose): Do implement, use PeekMessage. Thanks to Hans Breuer. (event_mask_string): Debugging function to print an GdkEventMask. (gdk_pointer_grab): Use it. * gdk/win32/gdkfont-win32.c: The Unicode subrange that the (old) book I used claimed was Hangul actually is CJK Unified Ideographs Extension A. Also, Hangul Syllables were missing. Improve logging. * gdk/win32/gdkgc-win32.c: Largish changes. * gdk/win32/gdkim-win32.c (gdk_set_locale): Use g_win32_getlocale() from GLib, and not setlocale() to get current locale name. * gdk/win32/gdkprivate-win32.h * gdk/win32/gdkwin32.h: Move stuff from gdkprivate-win32.h to gdkwin32.h, similarily as in the X11 backend. * gdk/win32/gdkwindow-win32.c (gdk_propagate_shapes): Bugfix, assignment was used instead of equals in if test. Thanks to Hans Breuer. * gdk/win32/gdkgeometry-win32.c: New file, just a quick hack of the X11 version. * gdk/win32/makefile.{cygwin,msc} * gtk/makefile.{cygwin,msc}: Updates. Better kludge to get the path to the Win32 headers that works also with the mingw compiler. * gtk/gtkstyle.c: Include . 2000-04-26 Havoc Pennington * gtk/gtklabel.c (gtk_label_get_text): Add this function, replacing the broken gtk_label_get () 2000-04-15 Havoc Pennington * gdk/gdkdnd.h: clean up enum format, remove extra comma, this keeps scanner scripts from getting confused. * gdk/gdkdraw.c (gdk_drawable_get_data): This should return the data, rather than void 2000-04-15 Tor Lillqvist * gtk/gtkclist.c (gtk_clist_motion) * gtk/gtklist.c (gtk_list_motion_notify): If we get a motion event with is_hint FALSE, get x and y from the event. They used to be used uninitialised. The Win32 backend never sends motion events marked as hints. This for instance fixes the annoying file and font selector behaviour in the Win32 version. 2000-04-14 Tor Lillqvist * gtk/gtksignal.c: (Win32:) Export the gtk_private_signals and gtk_private_n_signals variables, they are used by some software, sigh. * gtk/gtkrc.c (get_gtk_sysconf_directory): (Win32:) Fetch the installation directory from the Registry, where the installer should have put it. Fri Apr 7 17:19:27 2000 Owen Taylor * gdk/x11/Makefile.am: Fix problem with installation directory for gdkx.h * gtk/gtkmenuitem.c gtk/gtkmenushell.c: Patch from David Santiago so that when selecting menus with the mouse, the first item will not be selected, but when selecting with an accelerator, or navigating left-right on a menubar with the menus popped up, the first item will be selected. 2000-04-05 Dan Damian * configure.in: Added "ro" to ALL_LINGUAS. Wed Apr 5 00:08:36 2000 Owen Taylor * gdk/x11/gdkgc-x11.c (_gdk_x11_gc_new): Fix screwy indentation. * Makefile.am (EXTRA_DIST): Fix typo. * gdk[/x11]/Makefile.am (INCLUDES): Add $(top_builddir)/gdk to catch gdkconfig.h * gtk/gtkitemfactory.c: Added FIXME. 2000-03-30 Jonathan Blandford * gtk/gtkpaned.c (gtk_paned_get_position): oops. s/return_if_fail/return_val_if_fail/g and add a return value. Mon Mar 27 20:56:14 2000 Owen Taylor * gtk/gtkwidget.c (gtk_widget_queue_clear_area): Fix up merge slipup. * gdk/gdkinput.h: Fix missing line from merge. Mon Mar 27 20:39:49 2000 Owen Taylor * gdk/gdkcolor.c cursor.c gdkdraw.c gdkfont.c: Include gdkinternals.h instead of gdkprivate.h. Sun Mar 12 15:19:24 2000 Owen Taylor * gtk/gtkinputdialog.h (struct _GtkInputDialogClass): Fix parent class to correctly be GtkDialogClass. Thu Feb 24 23:58:21 2000 Owen Taylor * gdk/x11/gdkgeometry-x11.c: Don't worry about clipping of toplevel windows and their immediate children by their parents, since the size of toplevel windows is out of our immediate control and we don't get any real benefit from trying to track this size for clipping. * gdk/gdkprivate.h (struct _GdkWindowPrivate) gdk/x11/gdkwindow-x11.c : Add a flag for input_only windows. * gdk/gdkwindow.c gdk/x11/gdkgeometry-x11.c: Use the above flag to fix some hacks and make sure that we don't try to set the background of input only windows. Thu Feb 24 18:11:46 2000 Owen Taylor * gdk/gdkinternals.h gdk/gdkprivate.h gdk/Makefile.am: Add a header file for the _really_ internal stuff, and leave gdkprivate.h for the fake private stuff that we've traditionally exposed. * gdk/**.c: Use gdkinternals.h where appropriate. * gdk/x11/gdkx.h gdk/x11/gdkprivate-x11.h gdk/x11/*.c: Make gdkx.h not include gdkprivate-x11.h, move all stuff of conceivable public interest into gdkx.h; keep all really private stuff in uninstalled header gdkprivate-x11.h. * gdk/gdkdraw.c gdk/gdkwindow.c gdk/gdkinternals: Redirect all calls to image->image_put on windows through a new function _gdk_window_draw_image() to allow us to do backing store for images. (Sort of ugly) * gdk/gdkgc.c gdk/gdkprivate.h: Cache the ts and clip origins for graphics contexts locally so that we can offset them properly when drawing onto backing pixmaps. * gdk/gdkinput.h: Reindented * gdk/gdkprivate.h gdk/x11/gdkwindow-x11.c: Store the background pixmap or color for the window, so we can properly initialize our double-buffer pixmaps, and also so that we temporarily set a background of None while scrolling. * gdk/gdkregion.h: Revise region boolean operators to have an interface that is actually convenient - switch from creating new regions on every op, to "methods" that modify existing regions (A = A OP B). 3 argument forms which allow dest == src, would also be possible, but the current interfaces seem to map nicely onto what needs to be done. (There is quite a lot of region code in GDK now.) * gdk/gdkregion.h: Add constructor from rectangle and a copy operator. * gdk/x11/{gdkregion-generic.[ch],gdkpolyreg-generic.c, gdkpoly-generic.h: Copy region code from Xlib, switch it over to 32 bit coordinates, modify it to be mostly GTK+ style and to have interfaces that match gdkregion.h. * gdk/gdkwindow.c gdk/gdkprivate.h: Add facility for double-buffered drawing. gdk_window_begin_paint_{rect,region}() create a backing pixmap and redirect all drawing to that backing pixmap until a matching gdk_window_end_paint(). * gdk/gdkwindow.[ch] gdk/gdkinternals.h gdk/x11/gdkdrawable-x11.c: Create a special drawable class for GtkWindow's that redirects the drawing to the backing pixmap as necessary and then calls the real operations in _gdk_windowing_window_class. * gdk/gdkprivate.h gdk/gdkwindow.[ch] gdk/x11/gdkevents-x11.c: Store invalid region for each window. Generate expose events for invalid region in an idle. This replaces both the expose compression and the redrawing queuing in GTK+. It is both more efficient and simpler than either one individually and far more so then the combination. * gdk/x11/gdkgeometry.c gdk/x11/gdkwindow.c gdk/x11/gdkprivate-x11.h: Emulate 32 bit coordinates for windows with 16 bit coordinates by offsetting drawing, guffaw scrolling techniques and mapping/unmapping child windows as necessary. * gdk/gdkwindow.[ch] gdk/x11/gdkgeometry.c: Add anti-exposes, where, when invalid regions are processed, the region is stored, and if expose events come in that are detectably duplicate the processed exposes (by comparison of event serial numbers), the stored region is subtracted out of those exposes. * gdk/x11/gdkgeometry.c: Temporarily unset backing pixmaps of regions newly exposed when scrolling or resizing windows. This, combined with forcing processesing of queued invalidated regions, gives nice flicker-free scrolling. * gtk/gtklayout.c gtk/gtkviewport.c: Force processing of invalidated regions after every scroll. * gtk/gtklayout.c: Vastly simplify using the new 32 bit coordinate emulation in GDK. Its, for all practical purposes just a GtkViewport/GtkFixed hybrid now. * gdk/gdkdrawable-x11.c: Convert from GDK (32 bit) to X11 (16-bit) structures as necessary instead of just casting. * gdk/x11/gdkgc-x11.c gdk/x11/gdkx.h: Replace XSetRegion with code in terms of the structures from gdkregion-generic.c, using appropriate offsets from GDK to X11 coordinates. Cache clip mask and origin and ts origin locally and only flush to the server when drawing, to avoid constantly setting and resetting these values when offsetting GC's for scrolling and backing pixmaps. * gdk/x11/gdkinput-x11.c: Fix leak of axes structures. * gtk/gtkcontainer.c: Call process_all_updates at end of resizing to reduce flicker. (Avoids having redraw lag arbitrarily behind resize under some circumstances) * gtk/gtkentry.c: Remove old backing store code, and simply take advantage of the new backing store capabilities of GDK. * gtk/gtkmain.c: Simple implementation of widget backing store - simply push a paint while handling each expose. (Should really be configurable widget for widget.) * gtk/gtkwidget.c: Remove all the old complicated redraw code, and simply invalidate the GDK windows from gdk_window_queue_clear(), etc. (Sigh, so much carefully debugged complexity ... gone to the winds.) Remove all the code for suppressing expose events while resizes are pending; this isn't needed since the invalid areas won't be processed until after the resizes are processed, since they are in a lower priority idle. Thu Feb 24 15:37:41 2000 Owen Taylor * gdk/gdkrectangle.c (gdk_rectangle_intersect): Set width and height of dest rectangle for non-intersecting rectangles. Sun Feb 20 16:47:31 2000 Owen Taylor * gtk/gtkwidget.h: Make GtkAllocation just a typedef for GdkRectangle. Sun Feb 20 11:27:00 2000 Owen Taylor * gdk/gdk{events,image,private,types,window}.h gdk/x11/gdkinputprivate.h: Change all coordinates from int16 to int. Also, Change width and height from unsigned to signed to avoid all the stupid C signedness bugs. Sat Feb 19 12:01:53 2000 Owen Taylor * gdk/x11/gdkdrawable-x11.c (gdk_x11_draw_drawable): Use gdk_drawable_get_depth instead of gdk_drawable_get_visual. Add some more detailed checking. * gdk/gdkdraw.c gdk/gdkdrawable.h (gdk_drawable_get_depth): New function to retrieve the depth of a drawable. * gdk/gdkprivate.h (struct _GdkDrawablePrivate): Add a depth field, reorder fields to save memory. Mon Dec 13 14:06:03 1999 Owen Taylor * gtk/gtkentry.c (gtk_entry_draw_cursor_on_drawable): Draw a small portion of the background image instead of scaling the background down to a line. * gtk/gtk[hv]scrollbar.c (gtk_hscrollbar_size_allocate): Removed mysterious which temporarily set slider to wrong size. * gtk/gtkaspectframe.c gtkbin.c: Remove unecessary calls to queue_clear(). Wed Nov 17 18:36:05 1999 Owen Taylor 2000-03-23 Jonathan Blandford * gtk/gtkpaned.c (gtk_paned_get_position): add getter. 2000-03-17 Tor Lillqvist * gdk/win32/gdkevents-win32.c: Remove the #ifndef USE_DISPATCHMESSAGE sections, we do want to use DispatchMessage. * gdk/win32/gdkfont-win32.c * gdk/win32/gdkproperty-win32.c * gdk/win32/gdkselection-win32.c * gdk/win32/gdkwindow-win32.c: Add const to some arguments that are now declared such. Wed Mar 15 02:59:38 PST 2000 Manish Singh * gtk/gtkvpaned.c: removed stray gutter_size reference, a 1.2 relic Mon Mar 13 18:37:55 2000 Owen Taylor * gdk/gdkdnd.c: Fix a bunch of cases where XGetWindowProperty() is called without trapping X errors. Fri Feb 25 10:48:53 2000 Owen Taylor * gtk/gtkrc.*: Fix problem where stray '"' characters found their way into the fontset lists. Tue Feb 22 08:52:52 2000 Tim Janik * gtk/gtkthemes.h: add extern "C" scope. Mon Feb 21 20:16:42 2000 Lars Hamann * gtk/gtkclist.c: applied patch from Guy Harris to make appends to the list constant. (gtk-guy-990901-0.patch) Mon Feb 14 22:50:10 2000 Tim Janik * gtk/gtktypeutils.c (gtk_type_init): use g_str_hash() and g_str_equal() for the typename hash table. Mon Feb 14 15:01:23 2000 Owen Taylor * gtk/gtkpaned.c (gtk_paned_compute_position): Add some sanity checks to make sure we never divide by zero. (Problem pointed out by Michal Jaegermann ) Mon Feb 14 12:29:38 2000 Owen Taylor * gtk/gtkfontsel.c: Apply patch from SHIRASAKI Yasuhiro to make font selector work a little better with 2-byte fonts. (Load a fontset instead of a font for two byte fonts.) Also, some cleanups in atom handling. Sun Feb 13 08:02:21 2000 Tim Janik * gtk/gtksocket.c (gtk_socket_class_init): parent class is GtkContainer, not GtkWidget. Fri Feb 11 02:19:32 2000 Tim Janik * gtk/gtkhpaned.c (gtk_hpaned_size_allocate): * gtk/gtkvpaned.c (gtk_vpaned_size_allocate): * gtk/gtkpaned.c (gtk_paned_compute_position): had to squeeze some more guint wrap-around bugs before going to bed. Thu Feb 10 16:16:35 2000 Tim Janik * gtk/gtkspinbutton.c (gtk_spin_button_size_allocate): guard against guint wrap arounds in allocation.width. * gtk/gtktable.c (gtk_table_size_allocate_pass1): repeat shrinking process untill we fit the allocation given. Tue Feb 8 09:38:29 2000 Tim Janik * gtk/gtkwidget.c: (gtk_widget_unrealize): guard widget access with ref/unref around signal emission. (gtk_widget_hide): same here, but also check its destroyed state before queueing a resize. Tue Feb 8 03:05:55 2000 Tim Janik * gtk/gtkstyle.c (gtk_style_new): use gtk_default_prelight_bg instead of gtk_default_insensitive_bg as insensitive base color. * gtk/gtktext.c (gtk_text_style_set): set the background color according to the widget's state. (gtk_text_realize): same here. (gtk_text_state_changed): same here. (draw_bg_rect): compare background color against base[] from GTK_WIDGET_STATE (text) not GTK_STATE_NORMAL. Mon Feb 7 04:01:55 2000 Tim Janik * gtk/gtkmain.c (gtk_main_do_event): ignore delete events when grabs are active, unless a delete event is send to the toplevel of the currently grab holding widget. Sun Feb 6 10:13:15 2000 Owen Taylor * gtk/gtkctree.c (gtk_ctree_drag_data_received): Remove debugging g_print's. Fri Feb 4 15:54:54 2000 Owen Taylor * gtk/gtkscrolledwindow.c (gtk_scrolled_window_size_request): Don't ever make the scrolled-window requisition ever depend on the visibility state of the scrollbars for the AUTOMATIC policy. This breaks the GTK+ requisition model, and causes loops. Fri Feb 4 15:09:12 2000 Owen Taylor * gtk/gtkstyle.c (gtk_style_new): Set the charset explicitely for the default font to avoid problems with XFree86-4.0 where the default charset is iso10646-1, not iso8859-1. Thu Feb 3 14:58:48 PST 2000 Manish Singh * acinclude.m4 * config.guess * config.sub * ltconfig * ltmain.sh: upgrade to libtool 1.3.4 (bugfix only release) * gtk/Makefile.am: minor cosmetic consistency tweak Thu Feb 3 14:46:01 2000 Owen Taylor * gtk/gtkmenushell.c (gtk_menu_shell_button_release): Set the activate_time to 0, so that we handle a quick press/release press/release properly and don't suppress the second release. (Red Hat bug #7545) Wed Feb 2 22:25:17 2000 Tim Janik * gtk/gtkctree.c (row_delete): (gtk_ctree_node_set_row_data_full): fixed very evil reentrancy bugs with destruction notifier, *always* update internal structures *before* calling user code. Sun Jan 30 20:10:52 2000 Lars Hamann A few more fixes for bug #5487, #2051, #2677. * gtk/gtkclist.c : (gtk_clist_button_press): Reset clist->anchor to -1 if event->type is not GDK_BUTTON_PRESS. (resync_selection): resync only if selection_mode is GTK_SELECTION_EXTENDED * gtk/gtkctree.c (resync_selection): same here Sun Jan 30 12:29:20 2000 Owen Taylor * gdk/gdk.h gtk/gtkmenu.h: Removed duplicate prototypes for gdk_drag_get_selection() and gtk_menu_detach(). [ From Jeroen Ruigrok/Asmodai ] Sat Jan 29 10:11:56 2000 Owen Taylor * gtk/gtknotebook.c (gtk_notebook_size_request): page->tab_label can be NULL. 2000-01-25 Havoc Pennington * gdk/gdkwindow.c (gdk_window_set_back_pixmap): parent_relative arg is boolean * gdk/gdkselection.c (gdk_selection_owner_set): return boolean * gdk/gdkrectangle.c (gdk_rectangle_intersect): return boolean * gdk/gdkproperty.c (gdk_property_get): return boolean * gdk/gdkinput.c (gdk_input_set_mode): return boolean * gdk/gdkim.c (gdk_im_ready): return boolean * gdk/gdkgc.c (gdk_gc_set_exposures): gboolean arg * gdk/gdkfont.c (gdk_font_equal): return gboolean (mild glib clash, should fix glib) * gdk/gdkevents.c (gdk_set_show_events): take gboolean arg (gdk_get_show_events): return gboolean, and canonicalize to TRUE/FALSE * gdk/gdkcolor.c (gdk_colormap_new): gboolean flag whether the colormap is private (gdk_colors_alloc): gboolean whether to be contiguous (gdk_color_equal): return gboolean since we are a predicate and not a qsort() (this looks semi-wrong due to glib breakage, IMO glib should be fixed) * gdk/gdk.c (gdk_set_use_xshm): take gboolean arg (gdk_get_use_xshm): return gboolean (gdk_pointer_is_grabbed): return gboolean * gdk/gdk.h: Change prototypes to match all the above changes, and re-run egtk-format-protos as required. Fri Jan 28 12:28:17 2000 Owen Taylor * gtk/gtkctree.c (resync_selection): * gtk/gtkclist.c (resync_selection): Return immediately if clist->drag_pos < 0. This is a workaround for the corrupt state that the clist gets into when a GDK_2BUTTON_PRESS occurs. See note in gtk_clist_button_press(). Bug #5487, #2051, #2677; fix suggested by David Helder and T. Alexander Popiel. * gtk/gtknotebook.c (gtk_notebook_size_request): Fix uninitialized variable from recent commit. Thu Jan 27 15:22:09 2000 Owen Taylor * gtk/gtkdnd.c (gtk_drag_begin): Fix stupid typo in last commit. Thu Jan 27 18:00:55 2000 Tim Janik * gtk/Makefile.am: prefix all autogenerated source that get build in $(srcdir) with $(srcdir)/, so make doesn't assume they got generted in builddir. since we subsequently cd into srcdir for autogeneration, the paths have to be stripped from the target file names, thusly we use $(@F) as target names now. put a comment about configure.in's --disable-rebuilds option, which can be used for non-writable source directories, for development setups though, srcdir has to be *writable*. hu Jan 27 00:15:03 2000 Owen Taylor * gtk/gtkdnd.c (gtk_drag_begin gtk_drag_get_event_actions): Finish the job of allowing event to be NULL. (Fixes bug #4283, reported by Chris Blizzard) * gtk/gtkentry.c (entry_adjust_scroll): When calculating things so that the cursor appears on screen, properly take into account INNER_BORDER. (Fixes bug #4754, reported by Antonio Campos) Wed Jan 26 23:12:28 2000 Owen Taylor * gtk/gtknotebook.c (gtk_notebook_map): Don't show the tab_label unless it itself is visible. gtk/gtknotebook.c (gtk_notebook_size_request): Do a better job of making sure that the visibility of the tab label corresponds to whether it should be mapped or not. Wed Jan 26 21:17:03 2000 Owen Taylor * gtk/gtkoptionmenu.c (gtk_option_menu_position): Use the requisition, not the allocation, since the allocation has not necessarily been computed yet. (Pointed out by Eugene Osintsev) Wed Jan 26 19:44:25 2000 Owen Taylor * gtk/gtkstyle.c (gtk_style_new): Dont' set style/base[GTK_STATE_INSENSITIVE] both to gtk_default_insensitive_bg! (Bug #2187, reported by Jonathan Blandford) * gtk/gtkaccelgroup.c (gtk_accelerator_valid): Add Alt_L, Alt_R to list of invalid accelerators. (Bug #3736, reported by Vlad Harchev) Wed Jan 26 19:01:56 2000 Owen Taylor * gtk/gtkfilesel.c (open_ref_dir): Fix several bugs which occured after an attempt to open invalid home directory left cmpl_state->reference_dir == NULL. - completion on files in home directory didn't work - completion on an empty string caused segfault (Bug #3768, reported by Steve Ratcliffe) * gtk/gtkscale.c (gtk_scale_get_value_width): Fix cut and paste error that was causing scales to be incorrectly positioned. (Bug #2956, patch from Steve Ratcliffe ) 2000-01-27 Shirasaki Yasuhiro * acinclude.m4 (AM_GTK_WITH_NLS): Add -lintl to libs when checking for dcgettext, if we've found we needed it for dgettext. + Wed Jan 26 18:06:07 2000 Owen Taylor * gtk/gtkwidget.c (gtk_widget_queue_clear_area): Ignore queue_clear on NO_WINDOW widgets during a reparent, since at that point the window and widget heirarchies are out of sync. This stops crashing in some cases (the scrolled window reparent test, for instance), and _probably_ won't cause drawing errors. * gtk/testgtk.c: Make the reparenting-a-scrolled-window test do what it was supposed to do and be robust against window closings, etc. (Bug #2443) Wed Jan 26 16:56:54 2000 Owen Taylor * gtk/gtkentry.c: Fix return values on mouse events. (Bug #2686, Sky ) * gtk/genmarshal.pl: Fix up handling of FOREIGN. (pointed out by George Lebl) * gdk/gdkcolor.c (gdk_color_copy): Made const-safe. (From Ettore Perazzoli ) Mon Jan 24 10:44:48 2000 Owen Taylor * gtk/gtkcalendar.c (gtk_calendar_main_button): Handle clicks between rows or outside calender area correctly. (Patch from Damon Chaplin) * gtk/gtkclist.c (gtk_clist_set_row_data_full): * gtk/gtkctree.c (gtk_ctree_node_set_row_data_full): Call destroy function when overwriting existing data. (Pointed out by Damon Chaplin) Tue Jan 25 09:55:41 2000 Owen Taylor * gdk/gdk.c: Remove useless #include of , which was causing problems on various systems with Xmu. This hasn't been needed for a very long time. (Fixes #1185 3167) Sun Jan 23 22:27:36 2000 Owen Taylor * gdk/gdki18n.h: Include when defining gdk_isw* in terms of is* as a fallback. (Bug #4106 - Dan Winship ) Sun Jan 23 22:12:36 2000 Owen Taylor * gtk/gtkviewport.c (gtk_viewport_size_allocate): Don't realize the widget when it is size allocated! (old, old bug) * gtk/gtkviewport.c (gtk_viewport_adjustment_value_changed): Removed unused call to gdk_window_get_size() that showed up when the above was fixed. Sat Jan 22 15:44:30 2000 Owen Taylor * gtk/gtkwidget.c (gtk_widget_reparent): Correctly fix up widget->window when the widget is a NO_WINDOW container widget. Sat Jan 22 12:40:48 2000 Owen Taylor * gdk/gdkpixmap.c (gdk_pixmap_seek_string): Rewrite to account for the fact that feof() does _not_ return TRUE on errors, and thus avoid infinite loops when trying to use gdk_pixmap_create_from_xpm() on unreadable values. Fri Jan 21 18:32:43 2000 Owen Taylor * gtk/gtkaspectframe.h (struct _GtkAspectFrame): s/gint/gboolean/. Fri Jan 21 16:24:08 2000 Owen Taylor * gdk/gdkgc.c (gdk_gc_set_dashes): Change from gdk_gc_set_dashes to take gint8 instead of gchar to make it clearer that it is _not_ a NULL terminated string. * gdk/gdk.h gdk/gdkfont.c gdk/gdkgc.c gdk/gdkselection.c gdk/gdkwindow.c gtk/gtkprogress.[ch] gtk/gtkthemes.[ch] gtk/gtktreeitem.[ch] gtk/gtkwidget.[ch]: Constify string arguments. Thu Dec 30 04:51:05 1999 Tim Janik * gtk/gtkvscale.c (gtk_vscale_pos_background): * gtk/gtkhscale.c (gtk_hscale_pos_background): when calculating the background size relative to our allocation, guard against small allocations, we may have not yet been size allocated. Thu Dec 2 10:59:14 1999 Owen Taylor * gdk/gdkdnd.c (xdnd_check_dest): Allow version >= 3, not just version == 3. We implement all 3 + most of 4 - (we don't support matching text/plain;charset=iso-8859-1 to a dest that expects text/plain). We'll still advertise 3 to be safe, but any client implementing version >= 3 must interoperate with 3. Tue Mar 14 11:53:31 2000 Owen Taylor * gtk/gtktooltips.[ch] (struct _GtkTooltips): Remove foreground, background and gc members, add a warning in gtk_tooltips_set_color() indicating that this function is deprecated. Thu Mar 9 22:10:56 GMT 2000 Tony Gale * docs/gtkfaq.sgml: FAQ Update: - Minor cleanups (Emmanuel, me) - New questions: I need to add a new signal to a GTK+ widget. Any idea? (timj) How can I retrieve the text from a GtkMenuItem? (timj) How do I validate/limit/filter the input to a GtkEntry? (me) Memory does not seem to be released when I free the list nodes I've allocated (timj) 2000-03-07 Tor Lillqvist * gdk/win32/gdkmain-win32.c: Internal GDK error reporting changes: (gdk_win32_gdi_failed) New function for reporting errors from GDI, for which it is no use to call GetLastError onWin9x. (gdk_other_api_failed) New function, for general error reporting without calling GetLastError. (gdk_win32_api_failed) OTOH, this function always calls GetLastError. (gdk_win32_last_error_string) Remove this function, GLib has the equivalent now. * gdk/win32/gdkprivate-win32.h: Declare the above, and macros to call them with function name, file name and line number in the arguments. * gdk/win32/*.c: Use the new macros for reporting errors from GDI functions. * gtk/gtk.def: Add some missing entry points. * gtk/gtkcompat.h.in: Define gtk_paned_gutter_size and gtk_paned_set_gutter_size, which don't exist any longer, as void. Fixes by Hans Breuer: * gdk/makefile.msc: Update for debugging. * gdk/win32/gdkgc-win32.c (gdk_win32_gc_set_dashes): Fake implementation, just use the PS_DASH, PS_DOT, PS_DASHDOT or PS_DASHDOTDOT or PS_DASH styles depending on the number of entries in the dash_list. * gdk/win32/gdkwin32.h (GDK_FONT_XFONT): New macro, similar as in the x11 backend. * gdk/win32/gdkprivate-win32.h (IS_WIN_NT): New macro. * gtk/testgtk.c: Include config.h, guard inclusion of unistd.h. 2000-03-04 Tor Lillqvist * gdk/win32/gdkprivate-win32.h (struct _GdkWindowWin32Data): Store just pixel value of background colour. * gdk/win32/gdkgc-win32.c (gdk_colormap_color): New function containing code snippet previously duplicated in a couple of places. * gdk/win32/gdkdrawable-win32.c (gdk_win32_draw_points): Use gdk_colormap_color. * gdk/win32/gdkevents-win32.c (gdk_event_translate): Generate GDK_SCROLL events for WM_MOUSEWHEEL messages. Don't generate events for autorepeated Shift, Control and Alt keys. Use gdk_colormap_color. * gdk/win32/gdkwindow-win32.c (gdk_window_set_cursor): If the pointer is inside the window the cursor of which we are setting, call SetCursor immediately. * gdk/win32/makefile.cygwin * gtk/makefile.cygwin: If we don't have the build number stamp file, use zero. * gtk/gtkcompat.h.in: Define gtk_paned_gutter_size and gtk_paned_set_gutter_size as empty. * gtk/gtk.def: Remove gtk_paned_set_gutter_size. Tue Feb 29 13:10:00 GMT 2000 Tony Gale * gdk/gdkwindow.h gdk/x11/gxid.c gtk/gtkclist.c gtk/gtkclist.h gtk/gtkctree.c gtk/gtkmenu.h gtk/gtkwidget.c gtk/testgtk.c docs/styles.txt docs/refcounting.txt docs/gtkfaq.sgml docs/gtk_tut.sgml docs/gtk.texi TODO: Spelling/grammar fixes from Martin Buchholz Sat Feb 26 11:46:25 GMT 2000 Tony Gale * gtk/gtkcalendar.c: Implement num_marked_dates, and don't emit mutiple day_selected signals on month_prev. 2000-02-25 Jonathan Blandford * docs/make-todo (lineno): let title and logo be configurable so that GNOME can use this script too. * TODO.xml: added logourl and a title Fri Feb 25 11:12:00 2000 Owen Taylor * TODO.xml: Added some UI items, and an explanatory comment at the top of the file. Thu Feb 24 09:07:28 2000 Tim Janik * TODO.xml: some updates, added abunch of new entries. a note for those fiddeling with this file, when done with it, invoke: $ ./docs/make-todo TODO.xml >/dev/null and correct output errors before comitting changes. Wed Feb 23 22:59:50 2000 Owen Taylor * TODO.xml: Added XML-structured TODO file. * docs/make-todo: python script to turn TODO.xml into pretty XML output. 2000-02-23 Jonathan Blandford * gtk/gtkstyle.c (gtk_default_draw_handle): add a 'paned' mode to the function to let it draw the seven dots, instead of the old, much maligned, method. (draw_dot): New function to draw a dot. * gtk/gtkhpaned.c (gtk_hpaned_size_allocate): changed allocation to draw the handle inside the border width as opposed to outside. Use paint function instead of gdk_draw_point. * gtk/gtkvpaned.c (gtk_vpaned_size_allocate): changed allocation to draw the handle inside the border width as opposed to outside. Use paint function instead of gdk_draw_point. * gtk/gtkfilesel.c (gtk_file_selection_update_history_menu): Change indenting to be more GTK like. Wed Feb 23 10:54:14 GMT 2000 Tony Gale * docs/gtk_tut.sgml: New section on GtkCalendar * examples/calendar: Update example code Tue Feb 22 13:54:12 GMT 2000 Tony Gale * docs/gtkfaq.sgml: FAQ Update 2000-02-19 Anders Carlsson * gtk/gtkrange.c (gtk_range_scroll_event): Return TRUE to prevent the scroll event to be propagated upwards. Fri Feb 18 14:37:29 2000 Owen Taylor * gdk/x11/gdkwindow-x11.c (gdk_event_mask_table): Remove OwnerGrabButtonMask from button entries for GDK_BUTTON_PRESS / GDK_BUTTON_RELEASE. * gtk/gtklayout.c (gtk_layout_realize): Always add GDK_SCROLL to the event mask (which will result in button/press release being added to the event mask on Unix) so scrolling works for layouts in scroll windows. * gdk/gdkevents.h (enum): Fix up GDK_ALL_EVENTS_MASK. Patch from Anders Carlsson to add a scroll event. * gtk/testgtk.c (scroll_test_scroll): Added an example of mouse wheel scrolling to the "Test Scrolling" part of testgtk. * gtk/gtkwidget.h (struct _GtkWidgetClass): Added scroll_event signal. * gtk/gtkwidget.c: Added "scroll_event" GTK+ signal and matched it against GDK_SCROLL. * gtk/gtkrange.c (gtk_range_scroll_event): Updated to use the new way of mouse wheel scrolling. * gtk/gtkscrolledwindow.c (gtk_scrolled_window_scroll_event): Likewise. * gtk/gtkspinbutton.c (gtk_spin_button_scroll): Likewise. * gtk/gtkmain.c: Removed previous mouse wheel hack. * gdk/x11/gdkwindow-x11.c (gdk_event_mask_table): Added entry in gdk_event_mask_table. * gdk/x11/gdkevents-x11.c (gdk_event_translate): Added GdkEventScroll handler. * gdk/gdkevents.h: Added GdkEventScroll structure. Thu Feb 17 17:10:12 2000 Owen Taylor * gtk/gt{h,k,}vpaned.[ch]: Add patch from Jonathan Blandford and Anders Carlsson to change the Paned widgets so that they can be dragged from anywhere along the length. Also change the way that this is drawn to make this apparent. * gtk/gtkoptionmenu.c (gtk_option_menu_get_history): Apply patch from George Lebl to check that option_menu->menu is present before getting history. 2000-02-14 Tor Lillqvist * gdk/gdkdraw.c (gdk_draw_segments): Move the test for no segments before the assertion for non-NULL segment list. * gdk/win32/gdkgc-win32.c: (gdk_win32_gc_values_to_win32values): Seems that pattern brushes *must* be 8x8 pixels! At least on my machine, but it might be display driver dependent. Sigh, so make sure the stipple is that size. Does Windows suck or what? * gdk/win32/gdkdrawable-win32.c: Improve error handling in a few places. 2000-02-13 Havoc Pennington * gdk/x11/gdkcursor-x11.c (gdk_cursor_new_from_pixmap): init refcount to 1 (gdk_cursor_new): init refcount to 1 * gdk/win32/gdkcursor-win32.c (gdk_cursor_new): init refcount to 1 2000-02-13 Tor Lillqvist * gdk/win32/gdkgc-win32.c (gdk_gc_predraw): Add an extra parameter so that we don't have to do unnecessary settings to the HDC. * gdk/win32/gdkdrawable-win32.c * gdk/win32/gdkimage-win32.c: Corresponding changes to the calls of gdk_gc_predraw. * gdk/win32/gdkdrawable-win32.c: Special-casing for GdkGCs where the fill style is GDK_OPAQUE_STIPPLED. In those cases we construct GDI paths, call WidenPath to get the outline of the stroken path, and then fill the outline (with the brush that was built from the stipple). * gdk/win32/gdkgc-win32.c: Factor out common code from _gdk_win32_gc_new and gdk_win32_gc_set_values into gdk_win32_gc_values_to_win32values. Use correct colour for SetBkColor() (Until now the code actually used a random colour in the call to SetBkColor()... but that didn't show up as not many GDI APIs use the background colour. Pattern (opaque stippled) brushes do.) * gdk/win32/gdkmain-win32.c (gdk_win32_last_error_string, gdk_win32_api_failed): New functions for error logging. * gdk/win32/gdkprivate-win32.h: Declare them, and define a macro WIN32_API_FAILED to call them, passing function or file name and line number. * gdk/win32/*.c: Use the WIN32_API_FAILED macro. * gdk/win32/gdkprivate-win32.h: Store just the pixel values from GdkColor for foreground and background in GdkGCWin32Data. * gdk/makefile.cygwin: Link in the resource object separately. * gdk/win32/rc/gdk.rc * gtk/gtk.rc (New file) * gdk/win32/makefile.cygwin * gtk/makefile.cygwin: Update build number in DLLs automatically, as in GLib. Sun Feb 13 08:54:45 2000 Tim Janik * gdk/gdkcursor.h (struct _GdkCursor): s/refcount/ref_count/. * gdk/x11/gdkcursor-x11.c (gdk_cursor_new_from_pixmap): * gdk/x11/gdkcursor-x11.c (_gdk_cursor_destroy): * gdk/gdkcursor.c (gdk_cursor_ref): insert assertments for the parameters given and cursor->ref_count. coding style fixups. * gtk/gtksocket.c (gtk_socket_class_init): parent class is GtkContainer, not GtkWidget. * gtk/*.h: applied patch from Mathieu Lacage to fix up widget macros and add _GET_CLASS() variant. * gtk/*.c: some GtkType fixups. 2000-02-09 Tor Lillqvist * gdk/win32/gdkproperty-win32.c * gdk/x11/gdkproperty-x11.c: The assertions for GDK_IS_WINDOW were reversed. 2000-02-04 Tor Lillqvist * gdk/win32/gdkfont-win32.c (logfont_to_xlfd): Use g_filename_to_utf8 to convert the font names Windows gives us from whatever is the default codepage to UTF-8. (gdk_font_load_internal) Use g_filename_from_utf8 for conversion in the other direction. * gdk/win32/gdkgc-win32.c (gdk_win32_gc_set_values): Fix cut&paste error in debugging output. 2000-02-02 Tor Lillqvist * gdk/win32/gdkwindow-win32.c (gdk_window_clear): Pass zero width and height parameters to gdk_window_clear_area(). Not minus one. Wed Feb 2 11:58:05 2000 Owen Taylor * gtk/gtkdnd.c (gtk_drag_selection_received): Add some sanity checks if the widget passed to gtk_drag_get_data() was not the dest widget. 2000-02-01 Tor Lillqvist * gtk/gtkfilesel.c: Use the g_filename_to_utf8 and g_filename_from_utf8 functions (which were added a moment ago to GLib). Some cleanups: Use gbooleans. Use GStrings instead of fixed size buffers. gtk_file_selection_get_filename returns the filename in the C runtime encoding. It calls g_filename_from_utf8, but copies the returned string to a static buffer, which is returned. I think this is better than returning the result from g_filename_from_utf8 directly, which would mean all apps that use it would have to free the return value. Or should this function care about this issue at all? Maybe a new function with clearly defined semantics. * gtk/gtkfilesel.h: Add comment about gtk_file_selection_get_filename returning the filename in the C runtime's encoding. * README.win32 * gdk/gdk.def * gdk/makefile.{cygwin,msc} * gtk/gtk.def: Updates. * gdk/gdkcursor-win32.c: Initialise refcount. 2000-01-31 Yuan-Chung Cheng * configure.in: Added "zh_CN.GB2312" to ALL_LINGUAS. 2000-01-30 Havoc Pennington * gtk/testgtk.c (set_cursor): use gdk_cursor_unref instead of destroy * gdk/gdkimage.c (gdk_image_ref): image wasn't being returned * gdk/gdkprivate.h: declare _gdk_cursor_destroy which is then implemented in platform-specific code * gdk/Makefile.am (gdk_c_sources): add gdkcursor.c * gdk/x11/gdkcursor-x11.c (gdk_cursor_destroy): rename with an underscore in front * gdk/win32/gdkcursor-win32.c (gdk_cursor_destroy): put an underscore in front * gdk/gdkcursor.c: new file, implements gdk_cursor_ref/gdk_cursor_unref * gdk/gdkcursor.h: Refcount GdkCursor * gdk/gdkcompat.h (gdk_cursor_destroy): compat 2000-01-29 Tor Lillqvist * gdk/gdkwindow.h * gdk/gdkpixmap.h: Remove prototypes for renamed functions. Tue Jan 25 11:43:21 2000 Owen Taylor * gtk/gtkinvisible.h (struct _GtkInvisible[Class]): Fix structures to properly inherit from GtkWidget not GtkBin. Sun Jan 23 20:28:24 2000 Owen Taylor * gtk+.spec.in: Added lib/gtk+/include/* to %files (bug #5178 - Peter Wainright) * gtk/Makefile.am (gtk_public_h_sources): Add gtkcompat.h so that it will be installed. (bug #4889 - "david d `zoo' zuhn" ) Fri Jan 21 16:29:28 2000 Owen Taylor * gtk/gtkstyle.[ch] docs/Changes-1.4.txt: Make the @detail argument for the GtkStyleClass vtable const. * gtk/gtkitemfactory.[ch] docs/Changes-1.4.txt: Make GtkPrintFunc take a const string argument like GtkTranslateFunc. This will require changes in use code. 2000-01-19 Tor Lillqvist * gdk/win32/gdkwindow-win32.c (gdk_window_clear_area): The correct semantics (to mimic the X11 backend, which just calls XClearArea) is to check for zero width (and height), and in that case use the window's width minus x (height minus y). This fixes for instance some redraw problems with gtkclist, which were easily noticeable in the gtk file selection widget. (gdk_window_new): Don't set WS_EX_TOPMOST for dialog windows. 2000-01-13 Tor Lillqvist * configure.in * gdk/Makefile.am * gdk/x11/Makefile.am * gdk/win32/Makefile.am: Small fixes, thanks to Peter Wainwright (bug #5177). * gdk/win32/gdkcc-win32.c: Reintroduce, to be thrown out later. 2000-01-09 Tor Lillqvist * gdk/win32/gdkevents-win32.c (gdk_event_translate): Ignore WM_MOVE for iconified or invisible windows. This fixes various problems when minimising windows. Thanks to Bernd Herd. 2000-01-05 Tor Lillqvist * gdk/gdkdraw.c (gdk_draw_lines): Fix copy&paste error: Call the backend's draw_lines method, not draw_points. 2000-01-02 Tor Lillqvist * gdk/win32/gdkevents-win32.c: Clean up some more leftovers from before Owen's reorganisation: Don't have queued_events and queued_tail statics in this file, but use gdk_queued_events and gdk_queued_tail. This makes exposure event compression work again. (gdk_WindowProc): Comment out a posting of gdk_ping_msg, doesn't seem to be needed? 1999-12-30 Tor Lillqvist * gdk/gdk.c: If we don't HAVE_XCONVERTCASE we must #include gdkkeysyms.h to get the GDK_* keysym constants that are needed by gdk_keyval_convert_case(). Otherwise, gdk_keyval_convert_case() doesn't do anything. * gdk/gdk.def: Add gdk_xid_table_insert. * gdk/win32/gdkprivate-win32.h * gdk/win32/gdkevents-win32.c * gdk/win32/gdkinput-win32.c * gdk/win32/gdkwindow-win32.c: Remove the superfluous extension_events field in the GdkWindowWin32Data struct. Use only the extension_events field in GdkWindowPrivate. Previously one was set, and the other one tested, which broke tablet functionality. Thanks to Keishi Suenaga for pointing this out. 1999-12-18 Tor Lillqvist * gdk/win32/gdkfont-win32.c (gdk_text_size, gdk_text_extents): When handling a single character (text length == 1), don't handle it as if it was UTF-8. 1999-12-11 Tor Lillqvist * Makefile.am: Distribute README.win32. * gdk/Makefile.am * gdk/win32/Makefile.am: Distribute Win32 files. * gdk/makefile.msc: New file. * gdk/gdk.c (gdk_arg_context_parse): Fix gccism (no statement after label). * gdk/gdkprivate.h: Must mark also gdk_error_warnings and gdk_error_code as GDKVAR, as they are referred outside GDK. * gdk/win32/makefile.msc: Update. * gdk/win32/gdkfont-win32.c (check_unicode_subranges): More tweaks. Check only if at least one of those Unicode subrange bits we care for is set. If no code page bits are set, guess (wildly) based on the charset. * gdk/win32/gdkinput-win32.c: Remove debugging leftover. * gdk/win32/gdkwindow-win32.c (gdk_window_new): Assure title is non-NULL. * gtk/gtkdnd.c * gtk/gtklayout.c * gtk/gtkplug.c * gtk/gtkselection.c * gtk/gtksocket.c * gtk/gtkwindow.c: Include x11/gdkx.h *or* win32/gdkwin32.c as appropriate. There must be a cleaner way to handle this? * gtk/gtkrc.c: Must include windows.h on Win32. * gtk/testgtk.c: No need to include gdkx.h. * gtk/makefile.cygwin: Correct invokation of genmarshal.pl. 1999-12-07 Tor Lillqvist * gdk/win32/gdkfont-win32.c: Fix string measurement code. For now, the rbearing is set to the same as the width, but this should be fixed. 1999-12-06 Tor Lillqvist * gdk/win32/gdkfont-win32.c (check_unicode_subranges): New function. If Windows doesn't tell us what Unicode subranges a font covers, guesstimate based on the codepages it covers. This will hopefully help those Windows versions or fonts that don't give us any useful Unicode subrange information with GetTextCharsetInfo. Call this function in gdk_font_load_internal. * gdk/win32/{gdkdnd,gdkimage,gdkpixmap,gdkprivate}-win32.c: Misc minor changes. Fri Dec 3 14:09:50 1999 Owen Taylor * gtk/gtkoptionmenu.[ch] (gtk_option_menu_get_history): New function, long needed. Wed Dec 1 22:35:43 1999 Owen Taylor * gdk/gdkproperty.h x11/gdkproperty.c: Change only_if_exists argument of gdk_atom_intern to bool. 1999-11-25 Tor Lillqvist * gdk/gdkgc.c (gdk_gc_set_ts_origin, gdk_gc_set_clip_origin): Fix two copy&paste errors. * gdk/makefile.cygwin: Also rebuild DLL when the static archive in win32 has changed. * gdk/win32/gdkprivate-win32.h: Don't need CPINFO in the GdkWin32SingleFont struct. * gdk/win32/gdkfont-win32.c: Some more debugging: Print Unicode subranges of loaded fonts. Clear font signature first, in case GetTextCharsetInfo fails. Pretend SYMBOL_CHARSET fonts have ASCII+Basic Latin (i.e. 0x40--0xFF) as they are single-byte. * gdk/win32/gdkgc-win32.c: Improved logging. (gdk_gc_postdraw): Unoffset clip region. 1999-11-23 Tor Lillqvist * gdk/win32/gdkevents-win32.c (gdk_event_translate): set event->any.window before calling filter functions. Fri Nov 19 10:34:41 1999 Owen Taylor * gtk/gtkgamma.h: Adapt cast macros to standard. [ Merges from 1.2 ] Tue Nov 16 10:15:54 1999 Owen Taylor * gtk/gtkitemfactory.c (gtk_item_factory_parse_path): If translation does not include a '/', use entire translation instead of crashing. Sun Oct 31 22:21:11 1999 Tim Janik * docs/gtk_tut.sgml: s/gtk_accel_group_attach/gtk_window_add_accel_group/. Sat Oct 30 09:09:09 1999 Owen Taylor * gtk/gtkselection.c (gtk_target_list_remove): Use g_list_remove_link, not g_list_remove. [ From Geert Bevin ] Sun Oct 24 07:41:40 1999 Tim Janik * gtk/gtkclist.c (real_undo_selection): commented out g_print() statement upon unselection (how the heck did that slip in?). Sat Oct 23 03:03:08 1999 Tim Janik * gtk/gtktext.c (gtk_text_freeze): (gtk_text_thaw): undraw/draw cursor here to avoid unnecessary scrolling in frozen state (and aparently crashes). patch provided by Anders Melchiorsen . Sat Oct 23 02:53:20 1999 Tim Janik * fix insensitive default/focus widget activation, reported by Matt Goodall . * gtk/gtkwindow.c (gtk_window_key_press_event): (gtk_window_activate_default): (gtk_window_activate_focus): return handled=FALSE for actiavtion of insensitive default widgets. return handled=TRUE for activation of insensitive focus widgets. don't activate in either case. Tue Oct 19 09:55:08 1999 Owen Taylor * gtk-config.in (lib_gtk): Switch order of @x_cflags@ and $glib_cflags to match library order and in the theory that an old version of GLib is more likely to be in the include directory for X then vice-versa. (Bug #2776) Tue Oct 19 09:46:49 1999 Owen Taylor * gtk/gtkrc.c (gtk_rc_init): Always use LC_CTYPE to determine the locale for fontsets, not LC_MESSAGES; the user may want English messages with a handling for non-English languages. (LC_CTYPE=ru_RU LC_MESSAGES=fr_FR will still be broken) (Bug #2891) Tue Oct 19 20:36:42 1999 Changwoo Ryu * gtk/gtkrc.ko: Fixed the wrong number of "*"'s. Tue Oct 19 12:15:13 1999 Changwoo Ryu * gtk/gtkrc.ko: Changed the Korean default fontset. Fri Oct 8 02:32:47 1999 Owen Taylor * gtk/gtklayout.c (gtk_layout_adjustment_changed): Fix bug where when scrolling to the left or top double exposes were done, causing major slowdowns. Thu Oct 7 18:31:55 1999 Owen Taylor * gtk/gtkrc.c (gtk_rc_init): Always normalize codeset names to lowercase and alphanumeric, before looking them up. * gtk/Makefile.am: Install codeset variant gtkrc files with normalized names. Thu Oct 7 22:52:42 1999 Tim Janik * gtk/gtkitemfactory.c (gtk_item_factory_popup_with_data): even popup menus when the menu is already visible, but its parent is still hidden, (happens after tornoff window got hidden). Thu Oct 7 11:09:55 1999 Owen Taylor * gtk/Makefile.am (install-data-local): Fix a typo where gtkrc.vi_VN.tcvn5712 wasn't getting deleted, causing error messages on install. Thu Oct 7 11:03:06 1999 Owen Taylor * gtk/gtk[hv]paned.c (gtk_{h,v}paned_draw): Redraw the handle as well, since we now sometimes ignore exposes on the handle while resizing. Wed Oct 6 18:02:31 1999 Owen Taylor * gtk/gtkrc.c (gtk_rc_append_default_pixmap_path): Fix stupid extra g_free introduced in one of the last one or two commits. Wed Oct 6 16:38:36 1999 Owen Taylor * gtk/Makefile.am gtk/gtkrc*: Make naming of gtkrc files consistent, put each style that a gtkrc.* file creates in a unique namespace, remove old files before installing. Wed Oct 6 14:31:16 1999 Owen Taylor * gtk/gtkrc.c (gtk_rc_init): Avoid leaking memory when gtk_rc_init is called multiple times. (Yes, people who do that have bugs in their code.) Tue Oct 5 11:36:57 PDT 1999 Manish Singh * gtk/Makefile.am: listing gtkrc in gtkconf_DATA seems to barf. Remove it since it's generated by the Makefile anyway Tue Oct 5 02:43:41 1999 Owen Taylor * gdk/gdkinputcommon.h (gdk_input_device_new): Free device->info.axes for core pointer. Thu Sep 30 13:55:25 1999 Owen Taylor * gtk/testgtk.c (destroy_idle_test): Rename idle to idle_id, to deal with obsolete, broken C libraries. Mon Sep 27 02:50:15 1999 Owen Taylor * gtk/gtkvscale.c (gtk_vscale_draw): Don't add in allocation->x/y twice! * gtk/gtkhscale.c: Make usage of gtk_hscale_pos_trough() consistent with gtk_vscale_pos_trough(). Sun Sep 26 19:44:34 1999 Owen Taylor * gtk/gtkcontainer.c (gtk_container_queue_resize): We may be queueing a resize on a toplevel container between the time we show it and when we map it. So, we need to test GTK_WIDGET_VISIBLE() for toplevels, and only use GTK_WIDGET_DRAWABLE() for child windows. Thu Sep 23 16:41:03 1999 Owen Taylor * gtk/Makefile.am (LDADDS): Add GDK_WLIBS to LDADDS (fixes bug #2144) Fri Sep 24 00:51:45 1999 Tim Janik * gtk/gtkcontainer.c (gtk_container_queue_resize): check for container DRAWABLE (instead of VISIBLE), so we don't queue resizes on non-toplevel containers. Sun Sep 19 18:13:31 1999 Owen Taylor * gtk/gtkselection.[ch]: Make the data argument const guchar *. Sat Sep 18 21:27:40 1999 Owen Taylor * gtk/gtkwindow.c: Try to behave sensibly if the focus widget is the window itself. (Should we allow this at all?) Fri Sep 17 09:57:15 1999 Tim Janik * gtk/gtkwidget.c (gtk_widget_set_sensitive): * gtk/gtknotebook.c (gtk_notebook_set_scrollable): * gtk/gtknotebook.c (gtk_notebook_set_show_border): * gtk/gtkclist.c (gtk_notebook_set_show_border): make gboolean args in prototypes and implementations consistent (Tomas Ogren). * gtk/gtklayout.c (gtk_layout_remove): unset GTK_IS_OFFSCREEN flag before the widget is unparented (reported by damon). * gtk/gtkdnd.c: make the cursor and icon data _unsigned_ char, since we provide unsigned data anyways. Thu Sep 16 21:32:01 1999 Owen Taylor * gtk/gtktooltips.c (gtk_tooltips_set_tip): Delay the call to gtk_tooltips_layout_text() until later. * gtk/gtktooltips.c (gtk_tooltips_draw_tips): Call gtk_widget_ensure_style() before using the style. Wed Sep 15 02:52:19 1999 Owen Taylor * gtk/gtkwidget.c (gtk_widget_event): Added workaround for old widgets that don't propagate draws to all children. (Namely gnome-dock for gnome-libs <= 1.0.16) Tue Sep 14 19:22:19 1999 Tim Janik * gtk/gtkwidget.c (gtk_widget_queue_resize): don't queue the parent for a redraw but just the widget that requested the resize. Tue Sep 14 18:29:47 1999 Tim Janik * gtk/gtkcontainer.c: added new widget level method gtk_container_set_reallocate_redraws() and a GtkContainer flag reallocate_redraws : 1 to reflect the setting, exported this through the argument system as a boolean ::reallocate_redraws. * gtk/gtkwidget.c (gtk_widget_size_allocate): when queueing redraws on the widget because the allocation changes, do so as well for widget->parent if the parent has reallocate_redraws set to TRUE. with that containers requesting reallocation redraws get automatically redrawn if their children changed allocation (this unfortunately affects also other children that didn't change allocation, but we cannot work around that before 1.3). Tue Sep 14 18:23:01 1999 Tim Janik * gtk/gtkwidget.c (gtk_widget_idle_draw): only emit ::draw if width _and_ height are >0 (not _or_). * gtk/gtktable.c (gtk_table_remove): use gtk_widget_queue_resize() instead of gtk_container_queue_resize(), which is a core gtk internal function (must have been on crack when i queued that). * gtk/gtkprivate.h: added new private flag GTK_FULLDRAW_PENDING, so we can check more reliably if we want to discard expose events. * gtk/gtkwidget.c: added setting/unsetting of the GTK_FULLDRAW_PENDING flag. * gtk/gtkwidget.c (gtk_widget_event): don't discard synthesized exposes, we simply trust these events. for deciding whether to discard exposes, check GTK_FULLDRAW_PENDING instead of RESIZE_PENDING. Mon Sep 13 15:01:21 1999 Owen Taylor * gtk/gtkwidget.c (gtk_widget_queue_clear_area): Ignore queues of areas that are completely off screen. * gtk/gtkwidget.c (gtk_widget_idle_draw): Fix broken logic for handleboxes. * gtk/gtkwidget.c (gtk_widget_queue_draw_data): Add santity check on width/height. Mon Sep 13 02:22:47 1999 Tim Janik * gtk/Makefile.am: backed out Raja's recent VPATH build "improvements", we are fine with using $@ the way we do (if we actually encounter brokeness with $@ in VPATH builds because of additional path prefixes, we need to use $(@F) actually). Mon Sep 13 01:34:53 1999 Tim Janik * gtk/gtksignal.c: renamed two variables, hopefully didn't introduce short lived bugs, that would allow language bindings to do surgeries to our guts. Fri Sep 10 15:22:50 1999 Owen Taylor * gtk/gtkwindow.c (gtk_window_size_allocate): Fix typo where comparison was being done against an uninitialized value causing intermittant results depending on compiler flags. Also make it clearer that we aren't ever initializing the child as 0x0 (though this will be caught in gtk_widget_size_allocate()) Fri Sep 10 10:06:56 1999 Owen Taylor * gtk/gtkwindow.c (gtk_window_set_transient_for): Move gtk_window_unset_transient_for() call after we do checks involving the old transient parent. [ From Lance Capser ] 1999-09-07 Raja R Harinath * gtk/Makefile.am (gtk.defs): Go back to using `touch' to create an empty file. Mon Sep 6 00:11:56 1999 Lars Hamann * gtk/gtkctree.c (gtk_ctree_is_ancestor): return FALSE if node has no children. (Reported by: Chris Rogers ) 1999-09-03 Raja R Harinath * gtk/Makefile.am (gen_sources): Improve VPATH builds. `$@' is valid only in the build dir, not after we've done `cd $srcdir'. Also use `test -f' instead of less portable `test -e'. Fri Sep 3 15:59:56 1999 Owen Taylor * gtk/gtktext.c (correct_cache_insert): Rewrite for simplicity, and hopefully correctness. (Fixes bug #1322, which was a segfault when on some insertions with the properties around the insertion set up just wrong.) * gtk/gtktext.c (gtk_text_adjustment): When we receive a "changed" signal, clamp the new value to the adjustment bounds to avoid segfaulting if someone tries to change the adjustment to a bogus value. (Bug #1795) Thu Sep 2 16:33:59 1999 Owen Taylor * gtk/gtkmain.c: Ignore unexpected destroy notifies for children, for toplevel windows handle them like delete_event. * gtk/gtkplug.c: Add an unrealize handler so that we unref plug->socket_window when we are done with it. Fri Sep 3 14:52:54 1999 Owen Taylor * gtk/gtktext.c (clear_area): Fix stupid signedness problem that was causing background to sometimes be misaligned. Fri Sep 3 12:26:33 1999 Owen Taylor [ Fixes pointed out by Ettore Perazzoli ] * gtk/gtkmenu.c (gtk_menu_position): Make sure we never position menus with negative x, y, since gtk_widget_set_uposition() can't handle that. * gtk/gtkmenuitem.c (gtk_menu_item_position_menu): Modify the positioning code a bit so that we always put the top-left corner onscreen. (This is for UI reasons, gtk_menu_position() now takes care of gtk_widet_set_uposition() brokeness.) Fri Sep 3 03:06:30 1999 Tim Janik * gtk/Makefile.am: fixed up things for -jx, x > 1. Sun Sep 5 08:48:51 1999 Owen Taylor * gtk/gtkwidget.c (gtk_widget_modify_style): Ref the RC style that is passed in. The lack of the ref before was a bug. If people worked around this bug, this will introduce a slight memory leak in their code. The code should typically look like: rc_style = gtk_rc_style_new (); [...] gtk_widget_modify_style (widget, rc_style); gtk_rc_style_unref (rc_style); * gtk/gtkwidget.c (gtk_widget_modify_style): Reset the style if it was already set. * gtk/gtkwidget.c (gtk_widget_set_name): Only set the style if it was set before. Thu Sep 2 19:02:37 1999 Owen Taylor * gtk/testgtk.c (main): Add a check to see if we are being run from the correct directory and to quit nicely if we are not. * gtk/gtkrc.c (gtk_rc_slist_remove_all): Make function static. Thu Sep 2 23:00:03 1999 Tim Janik * gtk/gtkenums.h (GtkWindowPosition): added GTK_WIN_POS_CENTER_ALWAYS. * gtk/gtkwindow.c: queue resizes unconditionally (gtk_widget_queue_resize will figure what to do if the window is not realized). (gtk_window_move_resize): only recenter the window for GTK_WIN_POS_CENTER_ALWAYS. (gtk_window_compute_reposition): handle GTK_WIN_POS_CENTER_ALWAYS in the same way as GTK_WIN_POS_CENTER. Thu Sep 2 22:39:27 1999 Tim Janik * gtk/gtkwindow.c (gtk_window_reposition): check for the last position with (!(info->last_flags & GDK_HINT_POS)) instead of (!info->last_flags & GDK_HINT_POS). * gtk/gtkwindow.c (gtk_window_move_resize): constrain new_width and new_height unconditionally, because we use these values even if !default_size_changed && !hints_changed. comented the (default_size_changed || hints_changed) case with respect to resize rejects from the window manager. * gtk/gtkwindow.c (gtk_window_move_resize): save info->last values in the zvt condition hack, since this includes the window hints, set the hints after the handling_resize case. * gtk/gtkwindow.c (gtk_window_show): constrain the default size that a window is initially shown with to the geometry. Thu Sep 2 07:38:56 1999 Tim Janik * gtk/gtkwindow.c (gtk_window_move_resize): s/size_changed/default_size_changed/g so i know what's really going on (frying brain on smaller flame now). Thu Sep 2 05:47:47 1999 Tim Janik * gtk/gtkwindow.c (gtk_window_move_resize): queue a new resize if we have size_changed upon handling_resize. this is a gross workaround for the broken zvt widget and should be removed in 1.3 again (search for FIXME). Owen provided an accurate comment for this: /* We could be here for two reasons * 1) We coincidentally got a resize while handling * another resize. * 2) Our computation of size_changed was completely * screwed up, probably because one of our children * is broken. It's probably a zvt widget. * * For 1), we could just go ahead and ask for the * new size right now, but doing that for 2) * might well be fighting the user (and can even * trigger a loop). Since we really don't want to * do that, we requeue a resize in hopes that * by the time it gets handled, the child has seen * the light and is willing to go along with the * new size. (this happens for the zvt widget, since * the size_allocate() above will have stored the * requisition corresponding to the new size in the * zvt widget) * * This doesn't buy us anything for 1), but it shouldn't * hurt us too badly, since it is what would have * happened if we had gotten the configure event before * the new size had been set. */ Wed Sep 1 20:46:11 1999 Owen Taylor * gtk/gtkrc.c: deal properly with the fact that RC style lists may include rc styles more than once. * gtk/gtkrc.c (gtk_rc_append_pixmap_path): Removed unused static function. * gtk/gtkrc.c (gtk_rc_find_pixmap_in_path): Keep a stack of directories of RC files currently being parsed and implicitely add them to pixmap path. This fixes a bug where the directory would get appended then overwritten by pixmap_path declarations. (bug #1462, from Peter Wainright ) * gtk/gtkthemes.c (gtk_theme_engine_unref): Call theme's exit function. (Patch from Peter Wainwright, bug #1454) * gtk/gtkradiomenuitem.c (gtk_radio_menu_item_destroy): Add a destroy() handler to take care of removing group for menu item. (Fixes bug #1197) * gtk/gtkwidget.c (gtk_widget_size_request): Fixed thinko in warning message. Wed Sep 1 21:27:42 1999 Tim Janik * gtk/gtkwindow.c (gtk_window_move_resize): don't require a server roundtrip to figure window's width and height, since we know that anyways from widget->allocation. Wed Sep 1 12:37:44 1999 Owen Taylor * gtk/gtkwindow.c (gtk_window_move_resize): Compute the hints after we request the new size. Wed Sep 1 10:38:37 1999 Owen Taylor * gtk/gtkwindow.c (gtk_window_compute_hints): Removed GTK_WIDGET_REALIZED() assertion - we can compute the hints before we are realized. * gtk/gtkwindow.c (gtk_window_move_resize): Reorder hint changing so that we have a value of hints_changed when we decide whether to constrain the window size. * gtk/gtkwindow.c (gtk_window_move_resize): Spelling fix. * gtk/gtkwindow.c (gtk_window_constrain_size): cleanups, change back to G_MAXINT. Wed Sep 1 06:54:59 1999 Tim Janik * gtk/gtkwindow.c (gtk_window_get_geometry_info): zero initialize new GtkWindowGeometryInfo, so fields like GdkGeometry geometry contain uncluttered values. (gtk_window_compute_hints): simply assert that window is realized and that geometry_info is valid, since we rely on this anyways. (gtk_window_constrain_size): major cleanups to the code. if (flags & GDK_HINT_BASE_SIZE) use geometry's base width and height for the base size, instead of the minimums. use 32767 as max width and height (like in gtkwindow.c) instead of G_MAXINT. Wed Sep 1 04:41:25 1999 Tim Janik * cleaned up the GtkContainer.need_resize flag handling mess, we only need to force resize requests when we were prematurely realized, or our widget tree was modified when we were temporarily hidden. handling these cases directly upon showing the window (i.e. while the GdkWindow is still unmapped) avoids the need to wait for a configure event response and therefore makes the GUI more snappier and avoids blank windows during the roundtrip. * gtk/gtkwidget.c: (gtk_widget_hide): (gtk_widget_show): don't queue resizes on toplevels, they know how to deal with matters. * gtk/gtkcontainer.c (gtk_container_queue_resize): set the ->need_resize flag directly for not visible resize containers and spare us unecessary signal emissions. * gtk/gtkwindow.c: (gtk_window_realize): if we need to enforce premature size allocation, queue a container resize so we are correctly resized later on. (gtk_window_init): (gtk_window_size_request): don't freak around with the ->need_resize flag, gtk_container_queue_resize() will care about that. (gtk_window_show): handle initial resizing issues here, we can handle matters better in this place, especially since we know that our GdkWindow is still unmapped. (gtk_window_move_resize): don't care about ->need_resize at all. handle size changes properly that occoured while we waited for a configure event. Tue Aug 31 15:58:46 1999 Owen Taylor * gtk/gtkwidget.c (gtk_widget_set_uposition): * gtk/gtkwindow.[hc] (gtk_window_reposition): Move the hint setting code from gtk_widget_set_uposition to here; set the hints so that we respect any previously set geometry hints. * gtk/gtkwindow.c (gtk_window_compute_reposition): Don't change the window hints here or move the window here, let that happen in gtk_window_move_resize(). Tue Aug 31 06:58:52 1999 Tim Janik * gtk/gtkwidget.c (gtk_widget_event): when discarding exposes due to already queued resizes (and therefore redraws) on a widget, check its anchestry as well. * gtk/gtkcontainer.c: (gtk_container_queue_resize): clear resize widgets for resize containers before aborting prematurely. this is especially important for toplevels which may need imemdiate processing or their resize handler to be queued. (gtk_container_dequeue_resize_handler): added new internal function for gtkwindow.c. * gtk/gtkwindow.c (gtk_window_move_resize): if we are resizing due to a configure event, take possible changes in window position into account as well. if we request a new window size, queue up a resize handler that will last until the configure event response arrives. combined the ->need_resize case (initial show) with the general size (hints) changed case and added even more comments. if !auto_shrink, only revert to the old allocation if the new size is smaller than the current allocation. Tue Aug 31 11:55:20 1999 Owen Taylor * gtk/gtkwindow.c (gtk_window_set_arg, gtk_window_set_policy, gtk_window_set_geometry_hints gtk_window_set_default_size): When hints are set, queue a resize so that the hints will be eventually reset on the toplevel. * gtk/gtkwindow.c (gtk_window_show): Use gtk_window_compute_default_size(). Clear the need_resize flag on the initail map so that we don't unnecessarily trigger the resize code. * gtk/gtkwindow.c (gtk_window_move_resize): Split apart into separate functions. Compare the hints we are setting with what we set last time so that we can accurately tell when we need to reset the hints. * gtk/gtkwindow.c (gtk_window_compute_default_size): New function to figure out the size from requisition and default_size. * gtk/gtkwindow.c (gtk_window_constrain_size): Function from fvwm to constrain a size to the geometry hints. * gtk/gtkwindow.c (gtk_window_compare_hints): New function to compare two sets of geometry hints. * gtk/gtkwindow.c (gtk_window_compute_hints): Renamed from gtk_window_set_hints(), just compute the hints, don't set them. * gtk/gtkwindow.c (gtk_window_compute_reposition): Move code from gtk_window_move_resize() to separate function, rationalize a bit. Tue Aug 31 13:05:03 1999 Owen Taylor * gtkrc.h: Move the ref_count member out of the GtkRcStyle structure into a new private structure. * gtkrc.c: Split GtkRcStyle into public/private. In the private part, add a list of pointers to the RcStyle lists this RcStyle participates in. * gtkrc.c: When a RcStyle is free, remove all lists referencing it from the realized_style_ht hash, and free those lists. * gtk/gtkrc.c (gtk_rc_clear_styles): Don't call gtk_rc_init(), since that adds the default styles to the list of parsed RC files again. * gtk/gtkrc.c: Use gtk_rc_style_find() consistently. Thu Aug 26 14:14:42 1999 Tim Janik * gtk/gtkwidget.c (gtk_widget_size_allocate): reactivated the sanity checks that ensure that a widget's allocation is at least 1 in width and height. (GNOME note: this doesn't affect old panel code anymore, because GtkSocket will request width and height of at least 1 since Fri Jul 23). * gtk/gtkwindow.c (gtk_window_realize): if the widget hasn't been allocated yet (happens if the user realizes the window prematurely), size request and allocate it. (gtk_window_size_allocate): guard against guint underflows. Wed Aug 25 19:01:36 1999 Lars Hamann * gtk/Makefile.am (gtk_built_sources): reordered stamp-gtk.defs in gtk_built_sources, so gtk.defs gets built prior to all other sources. Mon Aug 23 19:11:17 1999 Tim Janik * gtk/Makefile.am: invoke indent on gtkmarshal.*. rewrote source generation rules, use COPYING as oldest source tag for a piggyback rule to generate all sources from (don't touch it ;). major cleanups, strip spaces on build rules for GNU Make. * gtk/genmarshal.pl: don't operate on hardcoded filenames but take source and target files from commandline arguments. don't invoke indent. Sat Aug 21 14:07:36 1999 Lars Hamann * gtk/gtknotebook.c (gtk_notebook_real_switch_page): queue_resize notebook after switch to avoid drawing problems. (Bug#856 Reported by: Theodore Roth ) (gtk_notebook_pages_allocate): don't map not visible tab_labels, show them instead. (Bug#1805 Reported by: Dave Cole ) Sat Aug 21 14:07:36 1999 Lars Hamann * gtk/gtknotebook.c (gtk_notebook_real_switch_page): queue_resize notebook after switch to avoid drawing problems. (Bug#856 Reported by: Theodore Roth ) (gtk_notebook_pages_allocate): don't map not visible tab_labels, show them instead. (Bug#1805 Reported by: Dave Cole ) Wed Aug 18 09:20:10 1999 Tim Janik * gtk/gtkwindow.c: we use window->need_resize from configure_event now, to indicate that the gtkwindow should keep its allocation (e.g. because the user resized the window through window manager handles). resize_count is now reliably used to figure whether we got the allocation we requested from the window manager. configure events get queued as resizes now, the real stuff (size computation and allocation) now only goes on in gtk_window_move_resize(). GtkWindow's requisition now contains its *real* requisition (like all other widgets), *not* taking usize into account. geometry_info->last_{width|height} is now updated from set_hints() only so it always contains the last hints we set for the window manager. made some event handlers return TRUE instead of FALSE. the overall code should be much more straight forward now, and the significant code portions are accompanied by comments now. (gtk_window_set_hints): removed requisition argument and made it fetch the requisition through gtk_widget_get_child_requisition. we also don't move the gdkwindow here anymore, gtk_window_move_resize() does that now. (gtk_window_show): ensure that the widget is realized before calling gtk_container_check_resize() (and thus gtk_window_move_resize()), also ensure that we got properly size requested and allocated before realization. (gtk_window_configure_event): ignore plain window moves, or reallocate the widget tree through the resize queue otherwise. (gtk_window_move_resize): mostly rewrote this function to figure window manager hints more reliably, coalesce window moves and resizes to reduce configure events and do actuall size allocations. Tue Aug 17 07:43:04 1999 Tim Janik * gtk/gtkwidget.c (gtk_widget_event): discard expose events for widgets that have a resize pending, because a redraw is already queued for them. * gtk/gtkcontainer.c: removed ugly connect_to ::size_allocate signal hack to clear resize_widgets. * gtk/gtkwidget.c (gtk_widget_size_allocate): call clear_resize_widgets for resize containers prior to size allocation. (this is also a bit ugly, but avoids side effects for stopped emissions and is thus more reliable). (gtk_widget_unparent): removed disconnect call for clear_resize_widgets. * gtk/gtktooltips.c (gtk_tooltips_paint_window): renamed this function from gtk_tooltips_expose, as we connect to ::expose_event *and* ::draw now. 1999-08-18 Federico Mena Quintero * gtk/gtkselection.c (gtk_target_list_ref): Added missing sanity checks. (gtk_target_list_unref): Likewise. * gtk/gtkthemes.c (gtk_theme_engine_unref): Likewise. Tue Aug 17 15:47:07 1999 Owen Taylor * gtk/gtkcolorsel.c (gtk_color_selection_draw_value_bar): guard against division by zero. (Fixes bug #1339) Tue Aug 17 10:56:49 1999 Owen Taylor * gtk/gtkentry.c (gtk_move_{forward,backward}_word): Prevent the trivial leak of information of allowing word motion when the entry is not visible. Tue Aug 17 10:28:52 1999 Owen Taylor * gtk/gtkfilesel.c (gtk_file_selection_fileop_error): Propagate modality to error dialog as well as confirmation dialogs. (Bug #1803, reported by Rosanna Wing Sze Yuen) Wed Aug 11 01:04:57 1999 Owen Taylor * gtk/gtktreeitem.c (gtk_tree_item_draw_lines): Honor tree->view_lines. (gtk-guy-990611-3.patch: Guy Harris ) * gtk/Makefile.am (install-data-local): Solaris apparently has various troubles with ln -f; use rm first instead. (gtk-guy-990611-2.patch: Guy Harris ) 1999-07-30 Raja R Harinath * gtk/Makefile.am (stamp-m): Don't `mv' from builddir to srcdir, use `cp' followed by `rm' (the `rm' was already there). July 30, 1999 Elliot Lee * configure.in: Fix autoconf warnings about cross compilation by trying to provide sane defaults for AC_TRY_RUN. * gtk/Makefile.am: If we refer to gtkmarshal.[ch] in $(srcdir), put them into $(srcdir) when generated. Also add a dependency of gtksignal.h on gtkmarshal.h for -j builds. * gtk/gtk(dnd,style,gamma).c: Minor warning fixes. Wed Jul 28 09:29:19 1999 Owen Taylor * gtk/gtkmain.c (gtk_main_iteration_do): Added missing GDK_THREADS_{LEAVE,ENTER} pair. (From Paul Fisher ) Fri Jul 23 01:00:15 1999 Tim Janik * gtk/gtksocket.c (gtk_socket_size_request): asure that the requested width and height are always >0 (owen). Fri Jul 23 00:00:47 1999 Tim Janik * gtk/gtkwidget.c (gtk_widget_size_allocate): backed out my recent change that assured that a widget's allocated with and height are always >1, since this breaks *buggy* panel code. unfortunately this back-breaks the gimp's color selector. * gtk/gtkdrawingarea.c (gtk_drawing_area_size_allocate): asure that our allocation is always >0 in width and height, before sending the configure event; this is a *gross* hack to get the gimp back to work. * marked both cases with TODO-1.3 Wed Jul 21 15:47:39 1999 Owen Taylor * gtk/gtktext.c: Don't display wrap indicators when text is not editable and word wrap is on. Wed Jul 21 08:21:40 1999 Tim Janik * gtk/gtkitemfactory.c (gtk_item_factory_create_item): special case option menus here as they are not derived from menu shell, assure that the option menu has a menu we can add items to. Tue Jul 20 23:29:48 1999 Tim Janik * gtk/gtknotebook.c (gtk_notebook_page_allocate): convert allocation-> width/height to (gint) before calculations and check against < 0 to avoid guint wraparounds. Sun Jul 18 00:35:49 1999 Tim Janik * gtk/gtkwidget.c (gtk_widget_size_allocate): ensure that the allocated width and height is never zero. sanity check both dimensions against 32767 and issue a warning if the allocation is greater than that. Wed Jul 7 15:03:30 1999 Owen Taylor * gtk/gtkmain.c (gtk_events_pending): Unlock around call to g_main_pending() as well. Wed Jul 7 14:59:01 1999 Owen Taylor * gtk/gtkmain.c (gtk_main_iteration): Unlock around call to g_main_iteration() - since that will regrab GTK+ lock to process events. Thu Jul 1 15:01:55 1999 Owen Taylor * gtk/gtkwindow.c - Regularize with the rest of GTK+ by making widget->requisition not reflect the set_usize() - Always recompute geometry hints, then check if they changed before sending them to the X server. The previous checks for changes would fail in a number of circumstances. Thu Jul 1 11:55:59 1999 Owen Taylor * gtk/gtkstyle.c: Include for strcmp(). Wed Jun 30 19:26:36 1999 Owen Taylor * gtk/gtkdnd.c: - Code cleanups - Instantaneously update on modifier key presses - Allow cancellation of the drag with Escape. Tue Jun 29 17:04:09 1999 Owen Taylor * gtk/testgtk.c (create_handle_box): Set the policy to auto_shrink - otherwise the appearance is rather strange when flipping between horizontal and vertical. Mon Jun 28 09:29:52 1999 Tim Janik * gtk/gtkwindow.c: add ::default_width and ::default_height arguments. (gtk_window_set_default_size): don't change a value if it's < 0. queue a resize. Sun Jun 27 11:00:33 1999 Tim Janik * gtk/gtktext.c (gtk_text_insert): don't segfault on NULL inserts. Mon Jun 28 12:08:25 1999 Owen Taylor * gtk/gtkfilesel.c (cmpl_completion_fullname): Don't add an extra "/" when concating "/" + filename. (From Matt Grossman ) Mon Jun 28 10:57:12 1999 Owen Taylor * gtk/gtkctree.c (draw_cell_pixmap): Reset clip mask for fg_gc if we set it for drawing pixmap. Tue Jun 15 12:45:12 1999 Owen Taylor Fixes from Peter Wainwright * gtk/gtkrc.c (gtk_rc_parse_engine): If rc_style->engine is already set, call old engine's destroy function and unref the old engine. Thu Jun 10 17:59:38 1999 Tim Janik * gtk/gtkdrawingarea.c (gtk_drawing_area_size): queue a resize. Wed Jun 9 15:13:16 1999 Tim Janik * gtk/gtkaccelgroup.h: mark certain functions as internal. Wed Jun 9 13:48:28 1999 Tim Janik * gtk/gtkpreview.c (gtk_preview_set_expand): queue a resize if the expand behaviour changed. * gtk/gtklabel.c (gtk_label_set_pattern): (gtk_label_set_justify): (gtk_label_set_line_wrap): don't bother invoking queue_clear, the reallocation does that for us, always free_words so the upcoming resize will relayout the label's contents. Wed Jun 9 12:50:48 1999 Tim Janik * applied argument implementation patches from Elena Devdariani . * gtk/gtktoolbar.c: ::orientation, ::toolbar_style, ::space_size, ::space_style, ::relief * gtk/gtkruler.c: ::lower, ::upper, ::position, ::max_size * gtk/gtkpreview.c: ::expand * gtk/gtkpaned.c: ::handle_size, ::gutter_size * gtk/gtknotebook.c: ::homogeneous * gtk/gtklabel.c: ::wrap * gtk/gtklist.c: ::selection_mode * gtk/gtkhandlebox.c: ::handle_position, ::snap_edge * gtk/gtkcurve.c: ::curve_type, ::min_x, ::max_x, ::min_y, ::max_y * gtk/gtkcolorsel.c: ::update_policy, ::use_opacity * gtk/gtkclist.c: ::sort_type * gtk/gtkcheckmenuitem.c: ::active, ::show_toggle * gtk/gtkaspectframe.c: ::xalign, ::yalign, ::ratio, ::obey_child Tue Jun 1 23:38:38 1999 Owen Taylor * gtk/gtkstyle.c: Removed ill-thought-out part of last comment. Tue Jun 1 23:30:09 1999 Owen Taylor * gtk/gtkstyle.c (gtk_style_attach): Get the reference counting right when we have to attach a new style for a different visual. (Chi-Deok Hwang ) * gtk/gtkstyle.c: Documented the refcounting peculularities of gtk_style_attach. 1999-06-01 Tim Janik * gtk/gtkwindow.c (gtk_window_new): added return if fail for invalid window types. * examples/packer/pack.c (main): use GTK_WINDOW_TOPLEVEL instead of GTK_TOPLEVEL for creating the window. 1999-06-01 Tim Janik * gtk/gtkmain.c (gtk_init_check): don't segfault when --gtk-module is the last argument (reported by Per Winkvist). Tue May 25 13:13:12 1999 Owen Taylor Fixes for invisible XOR lines (Frank Loemker ) * gtk/gtkclist.c (gtk_clist_realize): Always use a non-zero pixel for GDK_XOR. * gtk/gtkvpaned.c gtk/gtkhpaned.c: Use GDK_INVERT instead of GDK_XOR. Wed May 12 21:56:40 1999 Lars Hamann * gtk/gtkclist.c (adjust_adjustments): signal emit value_changed signals if h/voffsets differ from adjustment values. Reportet by Jerome Bolliet Mon May 10 04:20:41 1999 Tim Janik * gtk/gtkmenushell.c (gtk_menu_shell_activate_item): propagate ::selection-done emissions up to the topmost menu shell. Fri May 7 10:15:14 1999 Owen Taylor * gtk/gtknotebook.c (gtk_notebook_set_scrollable): Unset the user data on the window before destroying it. * gtk/gtknotebook.c (gtk_notebook_unrealize): Add an unrealize handler to take care of destroying notebook->panel properly. (Bug #1198 - Morten Welinder ) * gtk/gtktext.c (expand_scratch_buffer): Fix reversal of g_new and g_realloc to stop memory leak. (Actually, we could just use g_realloc(), but I'm not 100% sure that is portable). (Bug #1196 - Morten Welinder ) Wed Apr 21 00:42:08 1999 Owen Taylor * gtk/gtkplug.h: Removed stray GtkPlugButton declaration. * gdk/gdkfont.c (gdk_text_measure): Fix the return value for fontsets. * gtk/gtkbutton.c (gtkbutton_expose): Fix warning with bin/button confusion. Thu May 6 04:53:26 1999 Tim Janik * gtk/testgtk.c: in the ItemFactory test, link radio items together, and show how preselection of radio items is done. Sun May 2 13:31:14 1999 Tim Janik * gtk/gtktreeitem.c (gtk_tree_item_set_subtree): * gtk/gtktree.c (gtk_tree_add) (gtk_tree_insert): * gtk/gtktoolbar.c (gtk_toolbar_insert_element): * gtk/gtkpaned.c (gtk_paned_pack2) (gtk_paned_pack1): * gtk/gtkscrolledwindow.c (gtk_scrolled_window_add): * gtk/gtktable.c (gtk_table_attach): * gtk/gtklist.c (gtk_list_insert_items): * gtk/gtkmenushell.c (gtk_menu_shell_insert): * gtk/gtknotebook.c (gtk_notebook_insert_page_menu): * gtk/gtkpacker.c (gtk_packer_add_defaults) (gtk_packer_add): * gtk/gtkbin.c (gtk_bin_add): * gtk/gtkbox.c (gtk_box_pack_start) (gtk_box_pack_end): * gtk/gtkfixed.c (gtk_fixed_put): * gtk/gtklayout.c (gtk_layout_put): general fixups to container_add logic. always realize child if child->parent is realized, only map the child and queue a resize if child and child->parent are both visible. Fri Apr 30 09:02:28 1999 Tim Janik * gtk/gtkwidget.c (gtk_widget_real_unrealize): use gtk_container_forall instead of gtk_container_foreach to walk and unrealize children, so composite children get also unrealized. (gtk_widget_real_show): don't call gtk_widget_map() if we don't need to. (gtk_widget_map): assert that the widget is visible (basic constrain). (gtk_widget_real_map): assert that the widget is realized (basic constrain). Fri Apr 29 00:53:20 1999 Tim Janik * gtk/gtkbindings.c (gtk_pattern_spec_init): plugged a memory leak. Tue May 4 09:32:08 1999 Owen Taylor * gtk/Makefile.am gtk/gtkrc.iso-8859-2: Add a gtkrc file for iso-8859-2 locales. * configure.in (ALL_LINGUAS): ALL_LINGUAS update. Tue Apr 27 16:38:32 1999 Owen Taylor * gtk/Makefile.am: Fix typo of static_sources for static_SOURCES. (Pointed out by andy@rz.uni-karlsruhe.de and others). Remove some suspicious and useless lines. Tue May 4 08:44:08 1999 Owen Taylor * gtk/gtkclist.c (gtk_clist_draw, draw_rows): Use width,height = 0, 0 to mean - here to edge of window, instead of -1, -1, since the former is all we support. Tue May 4 08:34:43 1999 Owen Taylor * gtk/gtkmain.c (gtk_main): Correctly free list nodes when removing from quit_functions list. Tue Apr 27 14:17:16 1999 Tim Janik * gtk/gtkpacker.c (gtk_packer_size_request): remove unused variable. Tue Apr 27 18:23:35 1999 Owen Taylor * gtk/gtkentry.c (gtk_entry_draw_cursor_on_drawable): When redrawing characters on non-visible entry, use appropriate '*' character. (Bug #1130 - Jean-Marc Jacquet ) Tue Apr 27 01:31:40 1999 Lars Hamann * gtk/gtkclist.c (drag_dest_cell): compute destination cell from drag coordinates. (gtk_clist_drag_data_received) (gtk_clist_drag_motion): use drag_dest_cell. * gtk/gtktree (drag_dest_cell) (gtk_ctree_drag_data_received) (gtk_ctree_drag_motion): likewise. (Bug #1129) Wed Apr 21 21:26:11 1999 Tim Janik * gtk/gtkitemfactory.c (gtk_item_factory_init): properly initialize translate_* fields. (gtk_item_factory_finalize): invoke translate_notify independant from translate_data. (gtk_item_factory_set_translate_func): likewise. (gtk_item_factory_destroy): only remove ifactory pointer from those widgets that belong to us (stupid me). Mon Apr 19 12:05:31 1999 Owen Taylor * gtk/gtkrc.c (gtk_rc_style_init): Fixed leak of rc_style list when lookup succeeeds. Thu Apr 15 01:11:24 1999 Lars Hamann * gtk/gtkctree.c (resync_selection): * gtk/gtkclist.c (resync_selection): fixed undo_selection bug. * gtk/gtkclist.c (gtk_clist_button_release): fixed resync_selection bug. Fri Apr 9 19:22:19 1999 Owen Taylor * gtk/gtkcolorsel.c gtk/gtkdnd.c gtk/gtkmenuitem.c: Add some missing GDK_THREADS_ENTER()/LEAVE around timeouts. (Patches from Sebastian Wilhelmi ) Thu Apr 8 20:10:33 1999 Tim Janik * gtk/gtkentry.c (gtk_entry_key_press): use gtk_widget_activate() rather than emit_by_name. * gtk/gtkeditable.c (gtk_editable_insert_text): keep a reference on the widget across multiple signal emissions. (gtk_editable_delete_text): same here. (gtk_editable_class_init): set widget_class->activate_signal after editable_signals[ACTIVATE] has been created. Wed Apr 7 22:59:47 1999 Owen Taylor * gtk/gtkpaned.c (gtk_paned_set_position): Don't clamp position here prematurely -- we might not have the right ->min_position and ->max_position yet. Tue Apr 6 16:38:51 1999 Owen Taylor * gtk/gtkselection.c gdk/gdkselection.c: (gtk_selection_request): Add error traps so if the other end of the connection dies, we survive. * gtk/gtkselection.c (gtk_selection_notify): Clean up properly when selection property retrieval fails. * gtk/gtkselection.c (gtk_selection_request): Correctly reject SelectionRequest notifies where the handler returns no data. Tue Apr 6 12:24:21 1999 Owen Taylor * gtk/gtkdnd.c (gtk_drag_dest_leave): Only unhighlight when we've previously highlighted. * gtk/gtkdnd.c (gtk_drag_dest_handle_event): Don't emit two "drag_leave" signals for Motif drops. * gtk/gtkdnd.c (gtk_drag_source_handle_event): Send back the correct status messages when dropping from Motif onto a proxy window that is rejecting the drop. Sat Mar 27 23:32:13 1999 Tim Janik * gtk/gtkarg.[hc]: added functions from GLE, gtk_arg_reset() to free the value and reset type to GTK_TYPE_INVALID, and gtk_arg_values_equal() to compare two argument values. added gtk_arg_to_valueloc() to set a variable from an arg through its location (pointer). * gtk/gtkobject.[hc]: implemented gtk_object_get() in terms of gtk_object_arg_get() and gtk_arg_to_valueloc(), floats are collected as gfloat*, uchars are collected as guchar*, ints are collected as gint*, etc... Mon Mar 29 17:45:47 1999 Owen Taylor * gtk/gtkaccelgroup.c gtk/gtkgtkbindings.c: Include instead of . * gtk/gtkstyle.c: Fix double include of gtkthemes.h (actually, a lot more duplicate includes occur if you trace through the sequence of #include's) gtk-jbb-990320-0: John Bley, jbb6@acpub.duke.edu Mon Mar 29 17:02:58 1999 Owen Taylor Patches from Akira Higuchi gtk-a-higuti-990322-[0-3] * configure.in: Fix confusion between GTK_LOCALE_[C]FLAGS that was causing -DX_LOCALE not to work. * gtk/gtkrc.c (gtk_rc_init): X_LOCALE will never have LC_MESSAGES defined Thu Mar 25 12:38:31 1999 Tim Janik * gtk/gtkrc.c (gtk_rc_append_default_module_path): get $HOME from g_get_home_dir() (gtk-pmc-990123-0.patch.gz). * gtk/gtkwindow.c (gtk_window_key_press_event): feature keypad up/down/ left/right as well (gtk-michael-980726-0.patch.gz). * gtk/gtklabel.[hc]: bunch of miscellaneous cleanups, such as s/0/NULL/ for pointer values, use gchar instead of char. fixed uline allocation leaks, changed the allocation pattern so we use G_ALLOC_AND_FREE mem chunks instead of G_ALLOC_ONLY. (gtk_label_size_request): always alter requisition as passed and leave widget->requisition alone. (gtk_label_set_text): allow NULL strings. (gtk_label_new): likewise. Wed Mar 24 09:24:03 1999 Tim Janik * gtk/gtkdrawingarea.[hc]: type/macro fixups. Mon Mar 22 05:51:34 1999 Tim Janik * gtk/gtkbin.c (gtk_bin_draw): only redraw children that are visible *and* mapped (i.e. drawable). (gtk_bin_expose): only send exposes to drawable children. * gtk/gtkbox.c (gtk_box_draw): only redraw children that are drawable. (gtk_box_expose): only send exposes to drawable children. * gtk/gtkhscale.c (gtk_hscale_draw): * gtk/gtkvscale.c (gtk_vscale_draw): hm, this is an ugly one. we first compute the size of our trough area here (window relative) and then check intersection with the draw_area which is parent relative because we're a NO_WINDOW widget, so we need to offset the trough area by allocation.x and allocation.y before the check. (this must not be done for the background area though, since that's already computed parent relative). Mon Mar 22 00:41:39 1999 Lars Hamann * gtk/gtkclist.c (gtk_clist_unrealize): unmap clist if neccessary, unrealize title buttons. Fri Mar 19 00:00:22 1999 Lars Hamann * gtk/gtkclist.c (gtk_clist_column_title_passive) (gtk_clist_column_title_active): only connect/disconnect to GtkWidgetClass::event to block mouse events. * gtk/gtkclist.c (vertical_timeout) (horizontal_timeout): zero initialize event, removed superfluous gdk_window_get_pointer call * gtk/gtklist.c (gtk_list_vertical_timeout) (gtk_list_horizontal_timeout): removed superfluous gdk_window_get_pointer call Wed Mar 17 09:00:00 1999 Tim Janik * plugging problems reported by "Bruce Mitchener, Jr." due to a purify session. * gtk/gtkstyle.c: (gtk_style_ref): (gtk_style_unref): assert ref_count to be > 0. * gtk/gtkclist.c (gtk_clist_set_cell_style): { 0 } initilaize the requisition. (gtk_clist_set_shift): likewise. * gtk/gtklayout.c: introduce gtk_layout_finalize() to unref the adjustments. * gtk/gtklist.c (gtk_list_horizontal_timeout): zero initialize the event before sending it and set send_event to TRUE (which needs to be done for *all* synthesized events). (gtk_list_vertical_timeout): likewise. * gtk/gtktipsquery.c (gtk_tips_query_destroy): plug small memory leaks. * gtk/gtkdrawingarea.c (gtk_drawing_area_send_configure): set send_event to TRUE when synthesizing events. [ *** end of merges from 1.2 *** ] 1999-11-21 Tor Lillqvist * gdk/gdkconfig.h: Remove, as this is a file generated by configure (or copied from gdkconfig.h.win32 on Win32, sigh). * gdk/gdkprivate.h: Mark gdk_parent_root for export from DLL. * gdk/gdk.c (gdk_keyval_convert_case): Fix typo. * gdk/gdkgc.c (gdk_gc_alloc): Remove duplicated line. * gdk/gdkconfig.h.win32: New file. * gdk/win32/makefile.cygwin: Build just a static archive here. * gdk/makefile.cygwin: New file. Get the win32-specific stuff for the DLL from the static archive built above. * gdk/gdk.def: Moved here from the win32 subdirectory. * gdk/win32/*: Adapt for the changed private struct organisation. * gtk/makefile.{cygwin,msc}: Get gdk library from ../gdk now. Sun Nov 21 16:44:35 1999 Stefan Jeske * gtk/gtkspinbutton.c (gtk_spin_button_button_press): Added support for wheel mice (buttons 4 and 5). 1999-11-18 Tor Lillqvist * gdk/win32/gdkgc-win32.c (gdk_gc_predraw): Also for truecolor drawables use just the pixel field in the foreground and background GdkColor of the GdkGC. gdk_gc_set_{fore,back}ground() are called in the GIMP with GdkColors containing uninitialized (red,green,blue) fields, and just the pixel field filled in, and furthermore in the visual-dependent format as returned by gdk_rgb_xpixel_from_rgb(). It thus turns out that we really don't need to have the full GdkColor for fg and bg in GdkGCWin32Data after all. Will change it later to have just the pixel values. Mon Nov 15 17:17:51 GMT 1999 Tony Gale * docs/gtkfaq.sgml: s/gtk_main_iteration/g_main_iteration/ Sat Nov 13 22:30:29 GMT 1999 Tony Gale * docs/gtkfaq.sgml: threads example from Erik Mouw. New question on GtkLabel background colors. * docs/gtk_tut.sgml: - Correct the example code callback function definitions. - Update the gtkdial example code, from Frans van Schaik. - Update setselection.c to current API. * examples/Makefile examples/*/*.c: Update to code listed in tutorial. 1999-11-10 Tor Lillqvist * gdk/win32/gdkfont-win32.c: Fix a couple of bugs. The Unicode subrange table (from the "Developing International Software for WIndows 95 and Windows NT" book) was missing the Hangul syllable block... Get the loaded font's charset correctly. (Note that this, and the other *-win32.c files, still really are the old ones, the win32 subdirectory is not ready for compilation yet after the reorg.) Wed Nov 10 17:26:49 GMT 1999 Tony Gale * gtk/gtkclist.c: Fix off-by-one bug in parameter check. Wed Nov 10 12:12:03 1999 Owen Taylor * gdk/x11/gdkinput-{x11,xfree}.c: Call XFreeDeviceState() on results of XQueryDeviceState(). Mon Nov 8 16:40:43 1999 Owen Taylor * gtk/gtkwidget.c: Substitute gdkx.h => gdkprivate.h since we need to accesss only ->children. We need an accessor for the children. * gtk/gtkhandlebox.c gtk/testgtk.c: Substitute G DK_ROOT_PARENT() => NULL, in call to gtk_window_get_pointer() to get rid of gdkx.h include. * gtk/gtkctree.c: Get rid of #include and random references to 'None'. * gtk/gtkclist.c gtk/gtkeditable.c gtk/gtkpreview.c Get rid of unused #include * gtk/gtkrc.c gtk/gtkmain.c: Get rid of #include gdkx.h is _X_ specific stuff. GDK_WINDOWING comes from gdkconfig.h. 1999-11-08 Tor Lillqvist * gdk/win32/gdkdraw.c * gdk/win32/gdkfont.c * gdk/win32/gdkgc.c: Various minor cleanups and bugfixes following yesterday's changes. (Unrelated to Owen's reorg.) Mon Nov 8 16:18:25 1999 Owen Taylor * gdk/x11/gdkinput-gxi.c: Add missing include, fix GdkWindowPrivate => GdkDrawablePrivate. * gdk/x11/gdkinputprivate.h: include . * gdk/x11/Makefile.am (xinput_sources): Add missing backslash to fix building with --with-xinput=none Mon Nov 8 14:47:04 1999 Owen Taylor Move all X specific code into the x11/ directory. Aside from shuffling things around, did the following: * gdk/gdkprivate.h gdk/gdk.h gdk/x11/gdkmain-x11.h: Add gdk_arg_context_* - a simple argument parsing system in the style of popt. * gdk/gdkdrawable.[ch] gdk/gdkprivate.h gdk/gdkwindow.[ch] gdk/x11/gdkprivate-x11.h: Remove X specific stuff from GdkDrawable and GdkWindowPrivate - add ->klass and ->klass_data fields. The klass_data field points to an auxilliary structure that is windowing system dependent. * gdk/gdkfont.c: Make most of the measurement functions simply wrappers around gdk_text_extents(). * gdk/gdkfont.c gdk/gdkprivate.h gdk/x11/gdkfont-x11.c: Add a _gdk_font_strlen() function that hides the weird behavior in gtk+-1.[02] where a string is interpreted differently for 8-bit and 16-bit fonts. * gdk/gdkevents.c: Add a new function gdk_event_button_generate() to store common code for synthesizing double/triple press events. * gdk/gdkgc.[ch]: Virtualize in the same way as gdkdrawable.h. Make all the function that modify an existing GC simply wrappers around gdk_gc_set_values(). * gdk/gdkcc.[ch]: Moved into x11/ directory in preparation for throwing out later. * gdk/gdkfont.c gdk/gdkimage.c gdk/gdkcolor.c: Change GdkFontPrivate, GdkImagePrivate and GdkColormapPrivate to have a windowing system dependent part (GdkFontPrivateX etc.) that "derives" from the system-independent part. * configure.in gdk/x11/Makefile.in gdk/x11/gdkinput*.c: Got rid of the included-source-files for XInput in favor of automake conditionals. (Which didn't exist when XInput support was originally added.) * gdk/gdkrgb.c: Remove the visual id from the debugging statements since that is X11 specific; print out type/depth info instead. Wed Nov 3 18:14:49 1999 Owen Taylor * gdk/x11/gdkfont-x11.c (gdk_font_load): Ref fonts when loading duplicates of hashed fonts. * gdk/gdk.c (gdk_keysym_convert_case): rename gdk_XConvertCase to gdk_keysym_convert_case, allow results to be NULL in the GTK+ style. * gdk/gdkcompat.h: Started compatibility header for renames. 1999-11-07 Tor Lillqvist * gdk/win32/gdkprivate.h: New font private structures, related to fontsets. * gdk/win32/gdkfont.c: New functions gdk_font_list_new() and gdk_font_list_free(). On X11, will just be wrappers to XListFonts() and XFreeFontNames(). On Win32, the code previously in gtkfontsel.c is now here. New function gdk_font_xlfd_create(). On X11 will get the FONT property of the font (for GDK_FONT_FONTs), or call XBaseFontNameListOfFontSet (for GDK_FONT_FONTSETs), on Win32 builds a XLFD style name from the font information in the LOGFONT struct(s). New function gdk_font_xlfd_free(), which correspondingly frees the string returned by gdk_font_xlfd_create(). Implement fontsets on Win32. Add a function that iterates over a wide char string and calls a callback function for each substring of wide chars from the same Unicode subrange (and thus probably available in the same real font). Improve the XLFD emulation a bit. * gdk/win32/gdkim.c (gdk_nmbstowchar_ts): Small bugfix. * gdk/win32/gdkevents.c: Workaround for suspected bug on Win2k Beta3, WM_IME_CHAR messages don't seem to contain the composed multi-byte char as with the Active IMM on Win9x. Oh well, handle WM_IME_COMPOSITION with GCS_RESULTSTR instead, use ImmGetCompositionStringW() to get the composed Unicode chars. * gdk/win32/gdkgc.c * gdk/win32/gdkdraw.c: Changes needed because of the font private struct changes. * gdk/win32/gdk.def: Add the new functions. 1999-11-04 Tor Lillqvist * config.h.win32: Don't define HAVE_DIMM_H if MSC, as you have to get the Platform SDK to get . * gdk/win32/gdkevents.c: More event handling fixes and simplification. Never generate motion events with is_hint true. We used to do that on bogus grounds earlier. Windows sends WM_MOUSEMOVE messages on button events even if the mouse hasn't moved, ignore these. * gdk/win32/gdkfont.c: Load all fonts as (pretended) fontsets. * gdk/win32/gdkglobals.c * gdk/win32/gdkprivate.h: Define a typedef for the pointer to the TrackMouseEvent function, and use it. * gdk/win32/gdkwindow.c: Terminate widechar string with a zero char before calling WideCharToMultiByte in order to get a string for the window title. * gdk/win32/gdkdnd.c: Some more random hacking, ifdeffed out. * gdk/win32/gdk.def: Remove obsolete functions. * gdk/win32/makefile.{cygwin,msc}: Remove gdkcompat.{o,obj}. Add /nodefaultlib and /defaultlib switches. * gtk/gtkrc.c: s/gwin_getlocale/g_win32_getlocale/. 1999-10-31 Tor Lillqvist * gdk/gdkkeysyms.h: Add new keysyms from X11R6.4 (including EuroSign). * gdk/gdktypes.h: Add note about wchar_t not necessarily being the same type as GdkWChar, especially on Win32. * gdk/win32/*.c: Change gdk_root_parent to be a pointer. * gdk/win32/*.c: Assume all strings are UTF-8. Convert to Unicode before passing to Windows GDI for drawing etc. Convert to the system default codepage before passing to Windows as window titles. * gdk/win32/gdkprivate.h: Add more fields to GdkWindowPrivate to support changing input locale on the fly. * gdk/win32/gdkevent.c: Support input language (keyboard locale) on-the-fly changes. Convert incoming characters from the current codepage to Unicode (and then to a UTF-8 multi-byte string) based on the current input language. Use keysym<->Unicode mapping tables and functions borrowed from xterm sources. Support IMEs (Input Method Editors) for CJK languages. On non-CJK editions of Win9x, use the ActiveX-based Active IMM (Input Method Manager) if available. IMEs and the Active IMM are available under the disguise of Chinese, Korean and Japanese support for IE and Outlook Express from "Windows Update" for Win98. On Win2k, the CJK support is present in all editions (as long as you install it). Call DispatchMessage from gdk_events_queue() (and thus gdk_WindowProc()), instead of duplicating the code in gdk_WindowProc(). Reworked the grab handling and propagation code, factored out duplicated code snippets into separate functions. Other cleanups, too. * gdk/win32/surrogate-dimm.h: Provide just the bits we need from the header describing the Active IMM. * gdk/win32/gdkfont.c: Pretend to support fontsets, but so far just do the same as for "single" fonts. * gdk/win32/gdk.c: Call CoInitialize() (COM initialisation) from gdk_init_check, and CoUninitialize() from gdk_exit_func. Handle the new keysyms from gdkkeysyms.h. * gtk/gtkfontsel.c (Win32): Load the font for the preview as a fontset, so that gtkentry uses wide characters. * gtk/gtkrc.c (Win32): Get the locale with gwin_getlocale(). Call GTk+'s system directory "gtk+", not "gtk". Sat Oct 30 13:17:18 BST 1999 Tony Gale * docs/gtkfaq.sgml: FAQ update 1999-10-21 Tor Lillqvist * gdk/win32/gdkprivate.h: Add more font private data. * gdk/win32/gdkfont.c * gdk/win32/gdkdraw.c: Revamped handling of multi-byte charset fonts and strings. Now works much better. You still have to have a correct font selected, though. No fontset emulation yet. 1999-10-19 Tor Lillqvist * gtk/maketypes.awk: Use G_OS_WIN32. * gtk/gtk.def: Add some missing entry points. Also some non-public ones, but PyGTK porter claims to need them. * gtk/makefile.{cygwin,msc}: Drop some unneeded headers from the built-in type generation. 1999-10-14 Tor Lillqvist * gdk/win32/gdkdraw.c (gdk_draw_text_wc): Don't use TextOutW for GDK_FONT_FONT fonts (which is all we have for now, we don't emulate fontsets). The X11 version uses plain XDrawString in that case, too. The string passed to gdk_draw_text_wc seems to be in fact (at least, when used by gtkentry and gtktext) either in a single-byte charset, or a DBCS. Not Unicode. This fixes the problem in gtkfontsel, where even if you had selected a font with a non-Latin1 charset (windows-greek, for instance), the preview still used Latin-1 glyphs. * gdk/win32/gdkfont.c (gdk_text_width_wc): Similar change. Don't use GetTextExtentPoint32W, use GetTextExtentPoint32A. (gdk_font_load): Recognize the demibold etc weights, even if we don't have the corresponding constants in the headers. (gdk_font_hash_insert): Use same hash mechanism as in the X11 version. Should save font resources a bit, when we don't have multiple HFONTs for the same font. * gdk/win32/gdkprivate.h: Add the names field as in the X11 version. 1999-10-11 ERDI Gergo * gdk/gdk.c (gdk_beep): Modified the XBell call to use the default X values 1999-10-09 ERDI Gergo * gtk/gtktoolbar.h, gtk/gtktoolbar.c: Added horizontal icon/text layout support (as mentioned on http://www.jcinteractive.com/gnome-ui/software/widgets/) Wed Oct 6 12:46:17 PDT 1999 Manish Singh * gtk/fnmatch.c * gtk/gtkfilesel.c: s/G_HAVE_CYGWIN/G_WITH_CYGWIN/ 1999-10-05 Jesus Bravo Alvarez * configure.in (ALL_LINGUAS): Added Galician (gl) 1999-10-05 Tor Lillqvist * gdk/win32/*.[ch]: Corresponding changes as in X11 backend. * gdk/win32/gdkcompat.c: New file, actually provide an implementation for the deprecated functions. (Just temporarily.) * gtk/gtkfilesel.c: Fix an #ifdef syntax botch. * gtk/makefile.{cygwin,msc}: Update gdk_headers. * gdk/win32/gdk.def gtk/gtk.def: Updates. 1999-10-05 Kjartan Maraas * configure.in: Added "uk" to ALL_LINGUAS. Mon Oct 4 11:57:11 PDT 1999 Manish Singh * configure.in: correct checking for BeOS check * gdk/gdktypes.h * gtk/fnmatch.c * gtk/gtkfilesel.c * gtk/gtkitemfactory.c * gtk/gtkmain.[ch] * gtk/gtkrc.c: use G_OS_WIN32 and G_HAVE_CYGWIN #defines Mon Oct 4 16:16:53 1999 Pablo Saratxaga * gtk/gtkrc.{bg,iso88591[345]}: add gtkrc files for some new charset encodings: iso-8859-13 (for Lithuanian), iso-8859-14 (used by celtic languages), iso-8859-15 (used in Estonia) and microsoft-cp1251 (used by Bulgarian). Sun Oct 3 18:13:44 1999 Owen Taylor * gtk/gtkwidget.c (gtk_reset_shapes_recurse): Fix a reference to window_private->destroyed. * gtk/gtkplug.c (gtk_plug_realize): Fix up a direct (ugly) setting of an internal GdkWindow member to use a _slightly_ cleaner macro. * gdk/gdkprivate.h: Split GdkWindowPrivate into GdkDrawablePrivate and GdkWindowPrivate. Add extra macros for accessing GDK_DRAWABLE_ components. * *.[ch]: Massive adjustments for the above, use the new macros in a lot of places. Sun Oct 3 15:16:24 1999 Owen Taylor * gdk/gdktypes.h: Make GdkDrawable the base type, not GdkWindow. Sun Oct 3 15:08:44 1999 Owen Taylor * gdk/gdkdraw.c (gdk_drawable_get_data): Added new function. Sun Oct 3 14:26:15 1999 Owen Taylor * gdk/gxid* gdk/x11/gxid*: Move files into x11 subdirectory. Sun Oct 3 14:16:23 1999 Owen Taylor * gdk/gdkdrawable.h: Include gdk/gdkdrawable.h with gdk/ prefix. (Pointed out by chak@is.tsukuba.ac.jp) * configure.in gdk/Makefile.am x11/: create x-specific subdirectory. * docs/gtk-config.1: Now autogenerated. * docs/Changes-1.4.txt: started 1999-10-03 Tor Lillqvist * gdk/gdkimage.h gdk/gdkpixmap.h: Change GDK_WINDOWING_WIN32 usage to #ifdef also here. * gdk/win32/*.h gdk/win32/*.c: Make corresponding changes as those Owen did to the X11 backend. * gdk/win32/gdkdraw.c (gdk_draw_pixmap): Fix it again, don't use ScrollWindowEx when blitting inside a window, it can't be correct in the general case. * gdk/win32/gdkevents.c: Don't handle WM_SIZING, handling WM_GETMINMAXINFO is easier. * gdk/win32/gdkimage.c (gdk_image_new): Create new image with depth equal to the bitspixel value, not the visual's depth. * gdk/win32/gdkvisual.c (gdk_visual_init): Set the visual's depth to 24 even if the bitspixel value is 32. * gdk/gdkrgb.c (gdk_rgb_select_conv): After the above change, no need to check for depth==32 when bpp==32, depth will always be 24. Fri Oct 1 18:03:36 1999 Owen Taylor * docs/Changes-1.4.txt: Started * gtk/Makefile.am (gdk_headers): Include all the new headers. * gdk/*.h gdk/*.c: Split gdk.h into lots of itty-bitty little pieces. * gdk/gdkprivate.h gdk/gdkcc.c: Moved GdkColorContext private into C file. * gdkinput.h gdkinputprivate.h - renamed the internal gdkinput header to gdkinputprivate.h. * gdk/gdk.h gdk/gdk.c: Removed gdk_time* functions which have been unused since before 1.2. 1999-09-30 Tor Lillqvist * gtk/gtkfontsel.c (gtk_font_selection_get_xlfd_field): On Win32, expand possible hex escapes in the font family (put there by logfont_to_xlfd if the font name isn't a legal XLFD font family, mainly if it contains slashes). (gtk_font_selection_create_xlfd): On Win32, add hex escapes here, too. Wed Sep 29 19:55:35 1999 Owen Taylor * */*.[ch]: Changed from #if GDK_WINDOWING == GDK_WINDOWING_X11 to #ifdef GDK_WINDOWING_X11. [ Merges from gtk-1-2 ] Wed Sep 8 07:13:29 1999 Tim Janik * configure.in: fixed "GNU Make" check to pass with new make version 3.77.95. Fri Sep 3 16:04:41 1999 Tim Janik * gtk-config.in (--version): don't echo @GTK_VERSION@, but @GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@.@GTK_MICRO_VERSION@, so the AM_PATH_GTK() macros don't get confused by the -pre1. Thu Sep 2 19:02:37 1999 Owen Taylor * configure.in (REBUILD): Change check for perl5 to check explicitely for v >= 5.002. (5.001 does not work with our scripts.) Wed Aug 25 15:45:46 1999 Tim Janik * configure.in: evaluate $PERL for the perl version check. added --disable-rebuilds to give the user an option to completely disable any source autogeneration rules. Mon Aug 23 23:16:14 1999 Tim Janik * configure.in: evaluate $ac_make when checking for GNU Make. Mon Aug 23 19:11:17 1999 Tim Janik * docs/Makefile.am: added generation.txt. * Makefile.am: require automake 1.4, build README from README.in and INSTALL from INSTALL.in in dist-hook. * README.in: * INSTALL.in: new files to autogenerate README and INSTALL from. * configure.in: figure whether we have GNU Make * docs/generation.txt: minor additions/corrections. Wed Aug 11 13:38:26 BST 1999 Tony Gale * docs/gtkfaq.sgml: FAQ Update July 30, 1999 Elliot Lee * configure.in: Fix autoconf warnings about cross compilation by trying to provide sane defaults for AC_TRY_RUN. Fri Jul 16 22:20:21 PDT 1999 Manish Singh * ltconfig * ltmain.sh: upgrade to libtool 1.3.3 Thu Jul 8 11:30:18 1999 Owen Taylor * INSTALL: Indicate that the --with-glib= configure time flag is unsupported. Mon Jul 5 20:36:03 1999 Owen Taylor * docs/generation.txt: Added a file that gives documenation about the autogeneration process for various autogenerated files. Tue Jun 29 15:59:25 1999 Owen Taylor * configure.in (LIBS): Look for libgmodule in the right location. Thu Jun 17 13:57:31 1999 Owen Taylor * docs/gtk_tut.sgml: Removed references to code examples in my directory on gtk.org as they should all be in the tutorial now. * docs/gtk_tut.sgml: Added sources for dial-test and scribble-xinput programs that were previously missing. Fri Jun 4 00:08:59 1999 Owen Taylor * TODO: Added entry about menu keyboard navigation, removed some finished items. Mon May 31 00:11:24 1999 Owen Taylor * acinclude.m4: Standardize on func_dgettext not func_gettext, so that the checks for dgettext actually are paid attention to. Wed May 5 10:47:54 1999 Owen Taylor * configure.in (LIBS): Add $INTLLIBS into $LIBS directly, rather than repeating the checks for gettext. * INSTALL: Added information about gettext and NLS support. * acinclude.m4 (LIBM): Check for dgettext, not just gettext. This should hopefully fix things wrt systems with old versions of GNU gettext installed. Tue Jun 29 15:59:25 1999 Owen Taylor * configure.in (LIBS): Look for libgmodule in the right location. Thu Apr 1 16:58:10 PST 1999 Manish Singh * autogen.sh: add --enable-maintainer-mode * configure.in: set ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS" Wed Mar 24 23:03:49 CST 1999 Shawn T. Amundson * docs/gtk-config.1.in: docs/Makefile.am: configure.in: gtk-config is now generated. * docs/gtk-config.1: Removed, now generated. Thu Sep 23 17:59:59 1999 Tim Janik * gdk/gdkevents.c (gdk_event_translate): grr, even if Gdk doesn't handle CreateNotify itself, still put out a debuging message for --gdk-debug=events. made the ReparentNotify debugging message more verbose. wrap xcoords translation for ConfigureEvents into an error trap, a destroy event may already be pending, and in that case, the actuall coordinate values are not at all critical. Sat Sep 18 22:24:15 1999 Owen Taylor * gdk/gdkcc.c: Stop leaking the color_hash all over the place. Simplify and improve the logic. Fri Sep 17 09:57:15 1999 Tim Janik * gdk/gdk.h, gdk/gdkcolor.c: make return types (gint or gboolean) for prototypes and function implementations consistent (reported by Tomas Ogren). Tue Sep 14 18:23:01 1999 Tim Janik * gdk/gdkevents.c (gdk_event_translate): tell if expose events have send_event set in debugging output. (gdk_compress_exposures): default initialize the event so we don't operate on bogus values (namely send_event). Thu Sep 2 16:33:59 1999 Owen Taylor * gdk/gdkwindow.c: When we receive an unexpected destroy notify on one of our windows, don't just warn about it, also mark our windows as destroyed. Sun Sep 5 08:10:53 1999 Owen Taylor * gdk/gdkfont.c (gdk_font_hash_insert): Add name => font and name => fontset hashes. The name => fontset hash is a _big_ win since we weren't previously caching fontsets at all and loading fontsets is expensive. The name => font hash is less of a win, but it does save us from doing repeated XQueryFont calls on the same font. * gdk/gdkprivate.h (struct _GdkFontPrivate): Add a names list so we can remove font/fontset from hash. Thu Sep 2 19:02:37 1999 Owen Taylor * gdk/gdkproperty.c (gdk_atom_intern): Remove useless and slightly confusing test. [ XInternAtom (,,TRUE) will never return None ]. Sat Sep 4 08:39:26 1999 Owen Taylor * gdk/gdkwindow.c (gdk_window_set_geometry_hints) gdk/gdkwindow.c (gdk_window_set_hints): Don't omit setting the properties if flags == 0 - there may be an existing set of properties there already. (Very old bug. Would it be better to delete the property instead?) * gdk/gdkselection.c (gdk_selection_property_get): Fix spelling error in comment. Wed Sep 1 14:05:30 1999 Owen Taylor * gdk/gdkimage.c (gdk_image_new): Use gdk_error_trap_push() to avoid stomping over gdk_error_warnings. * gdk/gdkimage.c (gdk_image_new): compute image->bpp as (bits_per_pixel + 7) / 8. This gives the same result as before for multiples of 8, but actually a "reasonable" value for 1bit or 4bit displays. Mon Aug 23 19:11:17 1999 Tim Janik * gdk/Makefile.am: minor cleanups, strip spaces on build rules for GNU Make. Tue Aug 17 07:43:04 1999 Tim Janik * gdk/gdkevents.c (gdk_event_translate): give a debugging note when discarding configure events. 1999-08-18 Federico Mena Quintero * gdk/gdkpixmap.c (gdk_pixmap_unref): g_return_if_fail() the refcount is greater than zero. * gdk/gdkwindow.c (gdk_window_unref): Likewise. * gdk/gdkfont.c (gdk_font_unref): Likewise. * gdk/gdkgc.c (gdk_gc_unref): Likewise. * gdk/gdkdnd.c (gdk_drag_context_unref): Likewise. Wed Aug 11 01:04:57 1999 Owen Taylor * gdk/gdkproperty.c (gdk_property_get): Fix assumption that format 32 => sizeof(item) == 4. It really is sizeof(long). Tue Jun 29 23:02:42 1999 Owen Taylor * gdk/gdk.c (gdk_x_error / gdk_x_io_error): Don't core dump at all on X IO errors, only core dump if --enable-debug for X errors. Thu Jun 24 17:06:23 1999 Tim Janik * gdk/gdkevents.c (gdk_event_translate): removed old ""Got event for unknown window:" message. disabled ConfigureNotify discarding code, because it led to events being processed out of order. Thu Jun 24 12:22:02 1999 Tim Janik * gdk/gdkglobals.c: preinitialize gdk_error_code to 0. * gdk/gdkevents.c (gdk_event_send_client_message_to_all_recurse): since we export this function, supress error warnings and don't reset the error code in the first half of this function. * gdk/gdk.c (gdk_x_error): set gdk_error_code to the actuall X error code (instead of just -1) so gdk_error_trap_pop() reveals something actually informative about the error that happened. * gdk/*.c: don't rely on gdk_error_code being -1 if an error occoured, but just gdk_error_code != 0. Thu Jun 24 11:50:07 1999 Tim Janik * gdk/gdkevents.c (gdk_event_apply_filters): advance the filter list pointer *before* invoking the filter function, so we at least don't crash if a filter is removed that is currently executed. window filters *really* need to be made truely reentrant at some point. Mon Jun 14 11:10:15 1999 Tim Janik * gdk/gdkevents.c (gdk_event_translate): print the atom name in the PropertyNotify debug messages. Wed May 5 22:51:06 1999 Owen Taylor Patch from Sung-Hyun Nam * gdk/gdkim.c: Fix cut-and-paste errors for x/y and PreeditAttributes/StatusAttributes. Wed May 5 22:24:21 1999 Owen Taylor * gdk/gdkwindow.c (gdk_window_set_geometry_hints): Change G_MAXINT to 2^16 to alleviate overflow problems in various window managers. Wed Apr 21 00:42:08 1999 Owen Taylor * gdk/gdkfont.c (gdk_text_measure): Fix the return value for fontsets. Wed May 5 12:42:01 1999 Owen Taylor * gdk/gdkwindow.c (gdk_window_set_geometry_hints): Initialize size_hints.x and size_hints.y because kwm brokenly pays attention to them. (Bug #1181 - Lars Heete ) Wed May 5 11:38:56 1999 Owen Taylor * gdk/gdkrgb.c (gdk_rgb_choose_visual): Free the return value of gdk_list_visuals(). (Bug #1193 - Morten Welinder ) Tue May 4 11:12:56 PDT 1999 Manish Singh * gdk/gdkim.c (gdk_im_real_open): cast the return value of XSetIMValues to (void *) when comparing to NULL, to workaround the problem of some compilers barfing since older X headers don't have the prototype for it. Mon Apr 19 10:11:12 1999 Owen Taylor * gdk/gdkcolor.c (gdk_colormap_new): Fix memory leak for pseudocolor where colormap->colors was double allocated. * gdk/gdkcolor.c (gdk_colormap_alloc1): Store the color value in the hash table with the pixel filled in so when we do later hash table lookups, the color value is correct. Sun May 2 15:29:45 PDT 1999 Manish Singh * gdk/gdkdraw.c (gdk_draw_lines): check private->destroyed before making the call Tue Apr 27 11:17:35 1999 Owen Taylor * gdk/gdkdnd.c (xdnd_set_{targets,actions}): Fix leak pointed out by Morten Welinder . Wed Apr 21 14:20:22 1999 George Lebl * gdk/gdkwindow.c: (gdk_window_remove_filter) correctly remove the default filter from the list Wed Apr 21 14:20:22 1999 George Lebl * gdk/gdkwindow.c: (gdk_window_remove_filter) correctly remove the default filter from the list Fri Apr 16 20:41:43 PDT 1999 Manish Singh * gdk/gdk.c: #include "gdkkeysyms.h" for gdk_XConvertCase #defines * gtk/gtkfontsel.c (gtk_font_selection_create_xlfd): use g_strdup_printf instead of calcing the length separately Tue Apr 13 02:49:33 1999 Owen Taylor * gdk/gdkwindow.c: removed some silly #ifdef HAVE_CONFIG that we don't do in many other places. (Fixing duplicate #include of config.h) * gdk/gdkevents.c: include gdkinput.h _after_ config.h. Otherwise, #ifndef XINPUT_NONE check in the latter doesn't work. (Bug #546) Sun Apr 11 14:38:03 1999 Tim Janik * gdk/gdkpixmap.c (_gdk_pixmap_create_from_xpm): check for color "None" case insensitive. Tue Apr 6 16:38:51 1999 Owen Taylor * gdk/gdkselection.c: Add error traps so if the other end of the connection dies, we survive. Tue Apr 6 12:24:21 1999 Owen Taylor * gdk/gdkdnd.c (gdk_drag_motion): Separate out the dest_xid field into two fields - one for the window to send in messages, one to indicate the last looked up window for caching purposes. This is needed, so that Leave messages get the correct window. Mon Apr 5 13:21:30 1999 Owen Taylor * gdk/gdkevents.c (gdk_event_check, gdk_event_prepare): Fix warning created by people mucking around with the gsource API. * gdk/gdkevents.c (gdk_io_invoke, gdk_input_add_full): Change mapping between GIOCondition and GdkInputCondition to match the way the Linux kernel does it. This should fix problems where closed pipes were no longer signalling GDK_INPUT_READ on systems with a native poll(). Mon Apr 5 17:11:57 1999 Owen Taylor * gdk/gdkpixmap.c (_gdk_pixmap_create_from_xpm): Check explicitly for the string "None" - it is in the XPM spec and some servers treat unknown colors in odd ways (like asking the user!) Thu Apr 1 16:58:10 PST 1999 Manish Singh * gdk/gdkevents.c: made "->" into a "." of previous change so it compiles Thu Apr 1 18:41:25 1999 Owen Taylor * gdk/gdkevents.c (gdk_compress_exposures): Set the window field of the event structure before calling user filters. 1999-03-31 Federico Mena Quintero * gdk/gdk.c (gdk_init_check): Use False as the last argument to XInternAtom() here. This is a particularly Old And Nasty(tm) bug. Mon Mar 29 17:31:52 1999 Owen Taylor * gdk/gdkim.c (gdk_mbstowcs): Free the value of the intermediate text property - prevents major memory leak when gdk_use_mb. gtk-d3august-990311-0: Bj|rn Augustsson Mon Mar 29 17:02:58 1999 Owen Taylor Patches from Akira Higuchi gtk-a-higuti-990322-[0-3] * gdk/gdkfont.c (gdk_text_extents_wc): Make work when sizeof(wchar_t) != sizeof (GdkWChar) * configure.in: Fix confusion between GTK_LOCALE_[C]FLAGS that was causing -DX_LOCALE not to work. * gtk/gtkrc.c (gtk_rc_init): X_LOCALE will never have LC_MESSAGES defined * gdk/gdk.c (gdk_init_check): Remove --xim-preedit and --xim-status from argv properly. * gdk/gdkim.c (gdk_ic_real_new): Add a gdk_flush() so that the client window is present on the X server before we pass it to the input method. Tue Mar 9 10:46:49 1999 Owen Taylor * gdk/gdkdnd.c (motif_find_drag_window): Fix bug where if --display is specified on the command line, than the drag window will not be created on that display. Tue Mar 9 10:38:24 1999 Owen Taylor * gdk/gdkproperty.c (gdk_atom_intern): Fixed bug where lookups with only_if_exists == TRUE were inserting bogus values into the atom cache. Wed Mar 17 09:00:00 1999 Tim Janik * gdk/gdkselection.c (gdk_selection_property_get): first XFree(t), then reset it to NULL. * gdk/gdkcolor.c: (gdk_colors_free): (gdk_colormap_free_colors): use colormap->colors[in_pixels[i]] as the key for g_hash_table_remove() in both functions, this prevents us from accessing possibly uninitialized portions of a GdkColor structure where we are only interested in its pixel value. Tue Mar 9 01:01:28 1999 Tim Janik * gdk/gdkfont.c (gdk_font_load): first lookup the xfont ID in our font hash table, if we have a GdkFontPrivate entry for this font already, simply increment its reference count, provided by Olaf Dietsche . 1999-09-21 Tor Lillqvist * gdk/win32/gdk.c (gdk_exit_func): Delete the gdk_DC when exiting, just to be sure. * gdk/win32/gdkvisual.c (gdk_visual_init): Remove a couple of unused variables, leftovers from the X11 version. * gdk/win32/rc/*.cur: Better cursors provided by Bernd Herd. * gtk/gtkfontsel.c (gtk_font_selection_get_xlfd_field): Only downcase fields on X11. Mon Sep 20 13:17:39 1999 Pablo Saratxaga * configure.in,po/pt_BR.po: added Portuguese Brazilian file from Alex Sandro Queiroz e Silva 1999-09-17 Tor Lillqvist * gdk/win32/gdk.def: Add gdk_threads_mutex. * gtk/makefile.msc: Correct path to libintl. Thanks to Tomi Ollila and Bernd Herd: Fix some inconsistencies in use of gint vs. int, and gint vs. gboolean in headers and definitions. Use GtkType for the *_get_type functions. Note that these changes preserve binary compatibility. * gdk/gdk.c * gdk/win32/gdk.c * gdk/gdk.h: Fix inconsistencies: gint vs int. * gtk/gtkmain.c * gtk/gtkclist.c * gtk/gtkmenufactory.c * gtk/gtknotebook.c * gtk/gtkwidget.c: Fix inconsistencies, also gint vs. gboolean. * gtk/gtkcolorsel.[ch] * gtk/gtkcombo.[ch] * gtk/gtkdrawingarea.[ch] * gtk/gtkgamma.[ch] * gtk/gtkhandlebox.[ch] * gtk/gtkhpaned.[ch] * gtk/gtkhruler.[ch] * gtk/gtkplug.[ch] * gtk/gtkpreview.[ch] * gtk/gtkruler.[ch] * gtk/gtksocket.[ch] * gtk/gtkstatusbar.[ch] * gtk/gtktoolbar.[ch] * gtk/gtkvbbox.[ch] * gtk/gtkvpaned.[ch] * gtk/gtkvruler.[ch]: Always use type GtkType for the *_get_type functions. * gtk/gtkgamma.h: Fix bug, missing () in call of gtk_gamma_curve_get_type() in GTK_GAMMA_CURVE_CLASS. 1999-09-14 Tor Lillqvist * gdk/gdkcolor.c (gdk_colormap_new) * gdk/win32/gdkcolor.c (gdk_colormap_new): Fix memory leak: colormap->colors was allocated twice. * gdk/win32/gdk.c: Remove some unused stuff. * gdk/win32/gdkcolor.c (gdk_colormap_sync): Initialize all of the colormap. * gtk/gtkfontsel.c (gtk_font_selection_dialog_get_type) * gtk/gtklabel.h (gtk_label_get_type) * gtk/gtktipsquery.c (gtk_tips_query_get_type) * gtk/gtktypeutils.h (gtk_type_name): : Use GtkType in a couple of places, not guint. Fri Sep 10 21:31:00 CEST 1999 Pablo Saratxaga * configure.in,po/et.po: added Estonian language file Wed Sep 1 14:36:12 CEST 1999 Pablo Saratxaga * configure.in,po/da.po: added Danish file Sun Aug 29 13:38:59 BST 1999 Tony Gale * docs/gtkfaq.sgml: Minor FAQ Update Sat Aug 28 14:34:37 BST 1999 Tony Gale * docs/gtkfaq.sgml: FAQ update 1999-08-27 Tor Lillqvist Win32: Philippe Colantoni suggests a way to get window contents continually refreshed while resizing. I didn't like the effects myself, so it's not on by default. * gdk/win32/gdkprivate.h: New flag variable gdk_event_func_from_window_proc, FALSE by default. * gdk/win32/gdk.c (gdk_init_check): Set above flag if the environment variable GDK_EVENT_FUNC_FROM_WINDOW_PROC is set, or we are passed --gdk-event-func-from-window-proc. * gdk/win32/gdkevents.c (gdk_WindowProc): If above flag is set, and we have am event_func, call it instead of enqueing the event. 1999-08-23 Tor Lillqvist * gdk/win32/gdkevents.c (gdk_event_translate): Fix from Simon Kelley: Set expose_count in GdkEventExposes correctly. * gdk/win32/gdkwindow.c: Remove dead code (#ifdef MULTIPLE_WINDOW_CLASSES). * gdk/win32/gdkdraw.c (gdk_draw_line): Workaround from Hans Breuer for bug in NT, apparently NT *does* draw the end pixel, too, in LineTo with a one-pixel pen, so we don't have to do it ourselves. 1999-08-21 Tor Lillqvist Improvements by Hans Breuer: * gdk/win32/gdkwindow.c (RegisterGdkClass): New function * gdk/win32/gdkwindow.c (gdk_window_new): Use it. Don't set the CS_?REDRAW flags as they cause lots of (late) redraws when "show window contents while dragging" is turned on. Allocate at least one unique class for every GdkWindowType. If support for single window-specific icons is ever needed (eg. Dialog specific), every such window should get its own class. 1999-08-19 Tor Lillqvist * gdk/win32/gdkgc.c (gdk_gc_new_with_values): Fix a cut&paste error that caused crashes. 1999-08-17 Tor Lillqvist * gdk/win32/gdkdraw.c (gdk_draw_pixmap): When blitting inside one window, use ScrollWindowEx, and call UpdateWindow. This prevents bugs when for instance part of the window was outside the display. Thanks to Philippe Colantoni for finding and fixing this. 1999-08-16 Tor Lillqvist * gdk/win32/gdkdraw.c (gdk_draw_arc): Fix start and end radial endpoint calculations which were totally wrong. (A little RTFMing helps a lot ;-) * gtk/makefile.{cygwin,msc}: Use libintl extracted from glibc from a separate directory, not from gettext, because of licensing issues (we want to use the LGPL version). * README.win32: Mention the intl from glibc vs from gettext issue. 1999-08-13 Tor Lillqvist * gdk/win32/gdkevents.c (gdk_event_translate): Fix a couple of bugs in the key event handling: Now AltGr chars work again. Also, now Alt-digits are passed up as well as Control-digits. Pass keypad plus and minus as normal plus and minus. Wed Aug 11 13:38:26 BST 1999 Tony Gale * docs/gtkfaq.sgml: FAQ Update 1999-07-25 Tor Lillqvist * README.win32 * config.h.win32: Add HAVE_WINTAB. Undefine it if bulding without the Wintab SDK. * gdk/win32/gdkinput.c: Hack some more. Still doesn't quite work OK, but getting closer. Guard against bogus tilt data from Wacom ArtPad II with the 3.40 driver. Add ifdefs for HAVE_WINTAB to enable easier building without Wintab. * gdk/win32/gdkinput.h * gdk/win32/gdkevents.c * gdk/win32/gdkwindow.c: Minor changes related related to above. * gdk/win32/gdkvisual.c: Simplify a lot, remove leftovers from X11 code. As we have just one visual on Win32, no sense to have it in a table, and no need for the hash table. * gdk/win32/rc/cursor*.cur: Edit some of the cursors a bit to look better on white background. 1999-07-21 Tor Lillqvist * README.win32: Update gcc build instructions. Mention gettext is GPL. * gdk/win32/gdkcursor.c (gdk_cursor_new_from_pixmap): Get correct supported cursor size with GetSystemMetrics. * gdk/win32/gdkfont.c * gtk/gtkfontsel.c: Guard against some font weight and charset symbols being undefined (in mingw32 headers). * gdk/win32/makefile.cygwin * gtk/makefile.cygwin * gtk/gtkthemes.c: No longer need to have differently named gcc-built DLLs when using gcc-2.95 and -fnative-struct. hu Jul 15 13:33:15 BST 1999 Tony Gale * docs/gtkfaq.sgml: Long awaited FAQ update. 1999-07-15 Tor Lillqvist * gdk/win32/gdkcursor.c (gdk_cursor_new_from_pixmap): Implement it. Obscure bit manipulation needed. * gdk/win32/gdkevents.c: Logging. * gtk/gtkthemes.c (gtk_theme_engine_get): (Win32) Use new DLL naming style (file name include compiler name) for theme engines. 1999-07-13 Tor Lillqvist * gdk/win32/gdkdraw.c (gdk_draw_pixmap): Less logging verbiage. * gdk/win32/gdkevents.c: Fix long-standing bug in key events. The key.string wasn't zero-terminated, still we strdup'ed it in gdk_event_copy(). Synthesize crossing events for button events before possible propagation. * gdk/win32/gdkwindow.c: Log gdk_window_set_title. * gdk/win32/makefile.cygwin * gtk/makefile.cygwin: Use new DLL naming style for the GCC-compiled ones. * gdk/win32/makefile.msc * gtk/makefile.msc: Cosmetics mostly. * gtk/gtk.def: Add missing entry points. * gtk/gtksocket.c: Add dummy gtk_socket_get_type() for Win32. 1999-07-09 Tor Lillqvist * gdk/win32/gdkdraw.c (gdk_draw_arc): Don't draw anything if width or height is zero. Don't print a warning if Pie or Arc fails, they always fail (?) for very narrow ellipses. * gdk/win32/gdkdraw.c (gdk_draw_pixmap): Call InvalidateRgn for the part or the destination window corresponding to source area outside of the source drawable's boundary. * gdk/win32/gdkdraw.c (gdk_draw_lines, gdk_draw_polygon): Don't do anything if less than two points. * gdk/win32/gdkselection.c (gdk_selection_owner_get): Always return NULL. Gtk cut-and-paste inside a single program works better this way. (It always gets the clipboard contents from Windows, not from its own copy, which is cleared anyway. I can't say I fully understand what happens... Emulating the X selection and property stuff is a bit of a mess.) * gdk/win32/gdkevents.c * gdk/win32/gdkproperty.c: A bit more verbose logging. * gdk/win32/gdkregion.c: Fix some memory leaks (temporary regions that never got deleted). Revamp gdk_region_shrink. * gdk/win32/gdkregion.c: Fix memory leak, delete temporary regions after use. * gtk/gtk.def: Add some missing entry points. * gtk/gtkrc.c: Strip trailing directory separator from pixmap path component. 1999-07-04 Tor Lillqvist * gdk/win32/gdkevents.c (gdk_event_translate): Handle Control-digits specially. 1999-07-03 Tor Lillqvist * gtk/makefile.{cygwin,msc}: New pthreads version. Use gettext. 1999-06-28 Tor Lillqvist * gdk/win32/gdkimage.c (gdk_image_get): bpl was set wrong for bitmaps, should be multiple of 4. (Thanks to Hans Breuer for finding this.) 1999-06-01 Jose H Mercado * gtk+.spec.in: Corrected some typos in files section. 1999-06-15 Tor Lillqvist * README.win32: Mention using GNU gettext. * config.h.win32: Enable NLS stuff. * gtk/makefile.msc: Use GNU gettext. * gdk/win32/gdkdnd.c: Minor header reorg. * gdk/win32/{gdkevents,gdkwindow}.c: No semantic changes, mainly cosmetics. * gtk/gtkrc.c (Win32): Make get_gtk_sysconf_directory() public. * gtk/gtkmain.c (Win32): Use it in bindtextdomain() call. Wed Jun 2 11:44:25 PDT 1999 Manish Singh * acinclude.m4 * config.guess * config.status * ltconfig * ltmain.sh: upgrade to libtool 1.3.2 (BeOS changes merged) 1999-05-30 Tor Lillqvist * gdk/win32/gdkwindow.c: AdjustWindowRectEx2 renamed to SafeAdjustWindowRectEx. Don't override all calls to AdjustWindowRectEx by it, but use it only in two places: When creating a new top-level window and when moving a top-level window. Use screen coordinate rectangle, not client rectangle, in gdk_window_move. Thus SafeAdjustWindowRectEx will do its job only when we try to place a window so that the decoration (mainly, title bar) isn't visible. These changes fix the bug that showed up for instance as the GIMP's saved top-level windows moving right and down (by an amount equal to the window decoration) for each session. This bug showed up also in testgtk's "Saved Position". gdk_window_resize also redone a bit. 1999-05-25 Tor Lillqvist * gtk/testgtkrc: Add (commented out) Windows-style theme include line. * gdk/win32/gdk.def,gtk/gtk.def: Add some missing entry points. 1999-05-18 Tor Lillqvist * gdk/win32/makefile.{cygwin,msc}: Copy our gdkprivate.h and gdkx.h to a gdk subdirectory, so that applications can include these with without trouble. * gdk/win32/gdkimage.c (gdk_image_new_with_depth): Code simplified. (gdk_image_destroy): Plug resource leak, some GdkImages didn't have their bitmap destroyed. * gdk/win32/gdk.def: Add gdk_root_parent. Wed May 12 03:00:56 CDT 1999 Shawn T. Amundson * configure.in gtk-config.in ltconfig ltmain.sh gtk/Makefile.am: changes to compile nicely (with xlib) on BeOS Sat May 1 15:04:42 PDT 1999 Manish Singh * acinclude.m4 * config.guess * config.sub * ltconfig * ltmain.sh: upgrade to libtool 1.3 Fri Apr 30 13:38:16 1999 Lars Hamann * gtk/gtkclist.c: * gtk/gtkctree.c: merges from gtk-1-2 1999-04-25 Tor Lillqvist Support added for building using a GNU toolchain on Win32, gcc -mno-cygwin (egcs-1.1.2) on cygwin-b20.1. * gdk/win32/makefile.cygwin gtk/makefile.cygwin: New files. * config.h.win32: Changes for gcc. * gdk/gdkrectangle.c: Include gdk.h as . * gdk/gdkcolor.c: config.h.win32 already defines strcasecmp. * gdk/win32/gdkconfig.h: Only the MS compiler has wctype.h. * gdk/win32/gdkdnd.c: Protect (unused) OLE2 stuff better. Protect shl stuff unavaiilable with mingw32 headers. * gdk/win32/gdkevents.c: Fix typo. * gdk/win32/gdkglobals.c: Use GDKVAR here also for gcc. * gdk/win32/gdkim.c: Use OEM code page for multibyte chars. (?) * gdk/win32/gdkinput.c: Use __try __except only with the MS compiler. * gdk/win32/gdkprivate.h: Make up for some stuff missing from the mingw32 headers. * gdk/win32/makefile.msc: Use latest Wintab kit and glib. * gtk/gtkfilesel.c: Include early, to get stat->_stat definition on Win32. Test for NATIVE_WIN32, not _MSC_VER. * gtk/gtkfontsel.c: Protect CHARSET redefinition on Win32. Test for NATIVE_WIN32, not _MSC_VER. * gtk/gtkmain.c: No use warning about developer version on Win32, there aren't any non-developer versions anyhow. * gtk/gtkrc.c: Test for NATIVE_WIN32, not _MSC_VER. * gtk/makefile.msc: Use pthread from another directory. Minor other changes. Wed Apr 21 14:20:22 1999 George Lebl * gdk/gdkwindow.c: (gdk_window_remove_filter) correctly remove the default filter from the list Mon Mar 8 12:52:53 1999 Owen Taylor * gtk/gtkwidget.c (gtk_widget_grab_default): Add a warning when gtk_widget_grab_default() is called for a widget that is not within a GtkWindow. Sat Apr 10 13:52:54 BST 1999 Tony Gale * docs/gtk_tut.sgml, examples/clist.c: use a scrolled window in the clist example. Minor tutorial fixes. Fri Apr 2 09:19:20 BST 1999 Tony Gale * docs/gtk_tut.sgml: Style check from David King 1999-03-30 Pavel Machek * gtk/gtkfontsel.c (gtk_font_selection_get_fonts): Make code compile with unknown value of GDK_WINDOWING 1999-03-28 Raja R Harinath * gdk/Makefile.am (gdkconfig.h): Make sure `gdkconfig.h' exists after the rule is fired. (install-exec-local): Install gdkconfig.h only if the contents are different from the currently installed gdkconfig.h. 1999-03-26 Raja R Harinath * gdk/Makefile.am (configexecincludedir): Rename from configincludedir so that gdkconfig.h will be installed as part of `make install-exec'. Fri Mar 19 16:50:33 PST 1999 Manish Singh * acinclude.m4 * config.guess * config.sub * ltconfig * ltmain.sh: upgrade to libtool 1.2f * autogen.sh: libtool is not required to autogen gtk+ * acconfig.h: remove WITH_SYMBOL_UNDERSCORE (not explictly needed) 1999-03-18 Tor Lillqvist * gdk/gdktypes.h: Merge in Win32 version: Define macro GDKVAR for declaring gdk variables exported/imported from the DLL. New image type enum, GDK_IMAGE_SHARED_PIXMAP, for gdk_imlib. New drag and drop protocol enums, GDK_DRAG_PROTO_WIN32_DROPFILES and GDK_DRAG_PROTO_OLE2. * gdk/gdk.h: Merge in Win32 version: Two new functions, gdk_pixmap_create_on_shared_image and gdk_image_bitmap_new. So far declared only for the Win32 version, but could be in the X11 version as well. (Needed for a Xlib-less gdk_imlib.) gdk_color_hash should have only one parameter. Declare gdk_threads_mutex with GDKVAR. * gdk/gdkcolor.c (gdk_color_hash): A hash function should have just one parameter. * gdk/gdkimage.c (gdk_image_get): Initialize bpp correctly. Bytes per pixel, not bits. * gdk/gdkrgb.c: Mingle includes somewhat. (gdk_rgb_select_conv): Fetch bpp (which means bits-per-pixel here) from another place on Win32. Accept also depth==32 (which we might get on Win32) with bpp==32. * gtk/{gtkclist,gtkctree,gtkdnd,gtkditable,gtkfontsel, gtkhandlebox,gtklayout,gtkmain,gtkplug,gtkpreview,gtkrc, gtkselection,gtksocket,gtkstyle,gtkwidget,gtkwindow}.c: Include gdx.h from "gdkx.h", not "gdk/gdkx.h", as gdkx.h will be in the backend-dependent directory, not in the common gdk directory. * gtk/testgtk.c: Ditto. Also, don't use ../gdk path to gdk headers. Wed Mar 17 05:06:49 1999 Tim Janik * gtk/gtkmain.c (gtk_init_check): tell people that they don't really want to use the Gtk+ devel version (which is true, and yes - even i am currently working with the 1.2.x branch). so everyone reading this, you probably want to issue cvs checkout -r glib-1-2 glib and cvs checkout -r gtk-1-2 gtk+ as your next two comands. Wed Mar 17 02:49:32 1999 Tim Janik * configure.in: build gtkcompat.h from gtkcompat.h.in instead of gtkfeatures.h from gtkfeatures.h.in, require GLib 1.3.0. * gtk/gtkcompat.h.in: combined gtkcompat.h and gtkfeatures.in in this file. strongly deprecated the GTK_HAVE_* macros, we provide GTK_CHECK_VERSION() for people that need to check for certain Gtk+ versions. * gtk/gtkcompat.h: removed this from CVS. * gtk/gtkfeatures.h.in: removed this from CVS, gtkfeatures.h was a bad idea right from the start, it just didn't seem like that back then. Wed Mar 17 01:46:28 1999 Tim Janik * merges from gtk-1-2: Tue Mar 16 17:43:33 1999 Tim Janik * gtk/gtkitemfactory.c (gtk_item_factory_parse_rc_string): ensure the item factory class has been created. (gtk_item_factory_parse_rc): likewise. * gtk/gtkmenu.c: keep proper references for old_active_menu_item. (gtk_menu_reparent): unset the usize of the new parent, so the menu can sanely be size requested and we don't get nasty screen artefacts upon next reparentation. (gtk_menu_motion_notify): set send_event to TRUE if we synthesize an enter notify. only synthesize enter notifies if the pointer really is inside the event window. (gtk_menu_popdown): use gtk_menu_shell_deselect(). (gtk_menu_popup): move the background setting stuff into gtk_menu_tearoff_bg_copy() so it can be called from other places as well. * gtk/gtkmenushell.c (gtk_menu_shell_button_press): use gtk_menu_shell_select_item() to select the new item. (gtk_menu_shell_deselect): export this function, so gtkmenu.c can do the right thing for deselection as well. Sat Mar 15 20:10:33 1999 Tim Janik * gtk/gtkwidget.[hc]: (gtk_widget_accelerators_locked): return whether a widget's accelerators are locked. * gtk/gtkmenu.c (gtk_menu_key_press): don't remove or install new or existing accelerators if the widget's accelerators are locked. Sat Mar 14 19:44:05 1999 Tim Janik * gtk/gtkitemfactory.[hc]: allow managing of foreign menu items. * gtk/gtkmenu.c: truely forward key press and key release events to the menu widget from the toplevel or tearoff window. we can't simply connect to that, we need to stop further processing of the events as well. Sat Mar 13 13:14:17 1999 Tim Janik * gtk/gtkmenu.c: (gtk_menu_key_press): pass event->keyval, event->state to gtk_accelerator_valid, instead of event->keyval twice. refuse to install single letter accelerators for menus that use single letter shortcuts. * gtk/gtkitemfactory.c (gtk_item_factory_create_item): use gtk_menu_ensure_uline_accel_group(). * gtk/gtkmenu.[hc]: added gtk_menu_ensure_uline_accel_group() which will always return an uline accel group, made gtk_menu_get_uline_accel_group() return NULL if the group isn't yet created. Mon Mar 15 01:03:27 1999 Lars Hamann * gtk/gtkclist.h (struct _GtkCListColumn): added button_passive flag. * gtk/gtkclist.c (gtk_clist_column_title_passive): Leave button sensitive, trap button_press, button_release, motion_notify, enter_notify and leave_notify events instead. (gtk_clist_column_title_active): disconnect event handler. (gtk_clist_drag_data_get): fixed memory leak. Reported by Guillaume Laurent Wed Mar 10 23:49:55 1999 Lars Hamann * gtk/gtklayout.c (gtk_layout_adjustment_changed): fixed a few width/height mixups. * gtk/gtkctree.c (tree_delete): emit an tree_unselect_row signal if needed. Wed Mar 10 00:11:32 1999 Tim Janik * gtk/testgtk.c (create_item_factory): unref the item factory after window's destruction. * gtk/gtkmenushell.c (gtk_menu_shell_activate_item): keep a reference count on the menu shell around the menu item's activation, since the signal emission may cause menu shell destruction. * gtk/gtkitemfactory.c: the previous code leaked one accel group per menu. we use gtk_menu_get_uline_accel_group() now to fix that, and with that also create the underline accelerator group of the menus only if required (i.e. an underline accelerator has been specified). (gtk_item_factory_construct): (gtk_item_factory_create_item): removed code that would create an extra accel group for the menu (and leak references). (gtk_item_factory_create_item): adapted the underline accelerator installation code to properly feature gtk_menu_get_uline_accel_group(). * gtk/gtkmenu.[hc]: added gtk_menu_get_accel_group() to retrive menu->accel_group, this may return NULL if the accelerator group hasn't been set yet. added gtk_menu_get_uline_accel_group() to retrive the underline accelerator group of the menu, this will be created on demand and proper care is taken about its reference count. * gtk/gtkitemfactory.h: * gtk/gtkitemfactory.c: dumped the approach of keeping a widgets by action list on the factory since the factory<->widget destroy negotiation didn't work and would be hard to get going at all. instead we keep a list of GtkItemFactoryItem items on the factory (GtkItemFactoryItems are persistant throughout a program's life time). also, i removed the static const gchar *key_* variables, and made them inline strings (they weren't actually used anyways). (gtk_item_factory_add_item): update ifactory->items. (gtk_item_factory_destroy): destroy ifactory->items (and remove the item factory pointer from the remaining ifactory widgets). (gtk_item_factory_get_widget_by_action): walk the GtkItemFactoryItem list to find the widget. (gtk_item_factory_get_item): new function that works around gtk_item_factory_get_widget() limitations, this function will only return menu items, even for entries. Tue Mar 9 01:01:28 1999 Tim Janik * gdk/gdkfont.c (gdk_font_load): first lookup the xfont ID in our font hash table, if we have a GdkFontPrivate entry for this font already, simply increment its reference count, provided by Olaf Dietsche . * gtk/gtkstyle.c (gtk_style_copy): plug a GdkFont reference leak, fix provided by Olaf Dietsche . Sun Mar 7 06:13:29 1999 Tim Janik * gtk/gtkcontainer.c: (gtk_container_add_with_args): (gtk_container_addv): (gtk_container_add): before adding a child to a conatiner, make sure it is (default) constructed, this is neccessary because under certain circumstances the child will get relized and mapped immediatedly, in which case it has to be constructed already. Mon Mar 1 17:58:21 1999 Tim Janik * gtk/gtksignal.c (gtk_signal_connect_by_type): count object_signal values > 1 as TRUE also. 1999-03-16 Tor Lillqvist * README.win32: New file. * configure.in: Check for lstat. * config.h.win32: Add non-definition of HAVE_LSTAT, just for completeness. * gtk/gtkrc.c: If don't HAVE_LSTAT, use stat. * gtk/gtk.def: Removed CRs. * gtk/makefile.msc: Correct include path to Win32 GDK version (in ..\gdk\win32). * gdk/win32/makefile.msc: Correct upwards relative paths. Mon Mar 15 03:38:34 1999 George Lebl * gtk/gtkdnd.c: (gtk_drag_highlight) swap the gtk_drag_highlight_expose and gtk_drag_highlight_paint since it was connecting a void function to expose_event and the int returning function to the draw signal 1999-03-14 Jeff Garzik * configure.in: Use correct path to libgmodule.la when ref'ing uninstalled copy of glib. (Already in stable branch, Bug #417) 1999-03-15 Tor Lillqvist Win32 merge and general portability stuff: * acconfig.h,configure.in: Check for . * gdk/win32: New directory (actually, been there for a while). * gtk/fnmatch.c: Include for G_DIR_SEPARATOR, WIN32 and NATIVE_WIN32, and use these. Always case fold on Win32. No backslashed escapes on native Win32. * gtk/{gtk.def,makefile.msc}: New files. * gtk/Makefile.am: Add above new files. * gtk/{gtkaccelgroup,gtkbindings}.c: Include instead of . * gtk/{gtkcalendar,gtkitemfactory,gtkpreview,gtkrc}.c: Include config.h. Protect inclusion of , , and appropriately. * gtk/gtkdnd.c: Merge in Win32 version (which doesn't do much). Use ABS() (from ) instead of abs(). * gtk/gtkfilesel.c: Moved Win32-specific includes after inclusion of gtk (and thus glib) headers, so that WIN32 will be defined. With MS C, include for mkdir prototype. * gtk/gtkitemfactory.c (gtk_item_factory_callback_marshal): Add some casts, needed by MS C. * gtk/{gtklayout,gtkplug}.c: Merge in Win32 version (which isn't implemented). * gtk/gtkmain.c: Include gdk/gdkx.h for GDK_WINDOWING. Include only on X11 platform, otherwise . Use G_SEARCHPATH_SEPARATOR_S and g_module_build_path. * gtk/gtkmain.h: Mark variables for export/import on Win32. * gtk/gtkrange.c (gtk_range_motion_notify): Set mods also in case the event is not a hint, or its window is not the slider. Needed on Win32, at least. * gtk/gtkrc.c: Include config.h and gdk/gdkx.h. Use unless on X11. Skip \r chars, too. Use G_DIR_SEPARATOR and G_SEARCHPATH_SEPARATOR(_S). Use g_path_is_absolute. On Win32, use a subdirectory of the Windows directory as gtk system configuration directory. * gtk/gtkselection.c: No chunks on Win32. * gtk/gtksocket.c: Not implemented on Win32. * gtk/gtkthemes.c (gtk_theme_engine_get): Use g_module_build_path. * gtk/makeenums.h: Include gdkprivate.h after gdk.h. * gtk/maketypes.awk: Declare variables with a macro that expands to necessary export/import magic in the case of Win32. * gtk/testrgb.c: Use dynamically allocated buffer. Use GTimers. 1999-03-13 Raja R Harinath * configure.in (gdk_wc): Move widechar tests from `glib' to here, since those were meant only for gdki18n.h. * gdk/gdki18n.h: Include gdkconfig.h and use GDK_* instead of G_* for widechar tests. * gtk/Makefile.am (INCLUDES): Add -I../gdk for gdkconfig.h. 1999-03-13 Tor Lillqvist * configure.in acconfig.h: Check for dirent.h and pwd.h. Generate gdk/gdkconfig.h using similar mechanism as GLib's glibconfig.h. * gtk-config.in: Add @libdir/gtk+/include (where gdkconfig.h is installed) to CFLAGS. * gdk/Makefile.am: Add rules for gdkconfig.h. * gdk/gdktypes.h: Include gdkconfig.h. Define macros for windowing APIs. * gdk/gdkfontsel.c: Don't include Xlib.h, it gets included via gdkx.h anyway when compiling for X11. (gtk_font_selection_create_xlfd): Use g_strdup_printf. (In general): Merge in Win32 version. * gtk/gtkfilesel.c: Use g_get_current_dir(). Merge in Win32 version: Use G_DIR_SEPARATOR, g_path_is_absolute, no tilde expansion (if we don't have HAVE_PWD_H), allow for drive letters. UNC paths (\\server\share\...) are not handled yet. Also, included code from Craig Setera's port to Win32 (the one that uses X11, and the cygwin dll), even if it probably will be abandoned. * gtk/gtkfilesel.c: Don't append a * to the pattern to complete if the user entered one herself. This way one can complete *.h and don't get matches on any .help files, for instance. Tue Mar 9 01:01:28 1999 Tim Janik * gdk/gdkfont.c (gdk_font_load): first lookup the xfont ID in our font hash table, if we have a GdkFontPrivate entry for this font already, simply increment its reference count, provided by Olaf Dietsche . * gtk/gtkstyle.c (gtk_style_copy): plug a GdkFont reference leak, fix provided by Olaf Dietsche . 1999-03-09 Federico Mena Quintero * gtk/gtkstyle.c (gtk_default_draw_handle): Significantly reduced the number of calls to gdk_draw_point() (and thus to X) by clipping the points by hand. * gtk/gtkhandlebox.c (draw_textured_frame): Actually make use of the clip parameter. (gtk_handle_box_paint): Only paint the handle if the expose area intersects it. Sun Mar 7 18:46:37 1999 ape@lrdpf.spacetec.no (Asbjorn Pettersen) * gtk/gtkmain.c (add_dll_suffix): Add this function (OS/2 ver.) Sun Mar 7 11:43:34 1999 ape@spacetec.no (Asbjorn Pettersen) * gtk/gtkthemes.c (gtk_theme_engine_get): Add OS/2 changes. Added function gen_8_3_dll_name(gchar *name, gchar *fullname). Fri Mar 5 09:12:24 1999 ape@lrdpf.spacetec.no (Asbjorn Pettersen) * gtk/gtkitemfactory.c (gtk_item_factory_parse_rc): Open file in textmode (O_TEXT) for OS/2 version. Sun Feb 28 16:46:02 1999 Stefan Jeske * gtk/gtkspinbutton.[c,h] gtk/testgtk.c: Added two new signals to GtkSpinButton, "input" and "output", to make the output more flexible. The user has to provide a mapping between adjustment->value and the output string (and vice versa, if the spin button is editable). See testgtk for examples. Sat Feb 27 01:18:47 1999 Tim Janik * ChangeLog: moved old ChangeLog to ChangeLog.pre-1-2, and started new one. * configure.in: set gtk+ version to 1.3.0.