2001-02-21 Alexander Larsson * gtk/gtkseparatormenuitem.[ch]: Added new menu separator item. The drawing and size handling is still done in GtkMenuItem, but the API is a bit more sane. * gtk/Makefile.am: Add gtkseparatormenuitem.[ch]. * gtk/gtk.h: Add gtkseparatormenuitem.h. * gtk/gtkentry.c: * gtk/gtkmenufactory.c: * gtk/gtktextview.c: Use the new API for menu separators. * demos/gtk-demo/menus.c (create_menu): Add some GtkSeparatorMenuItem demo code. 2001-02-20 Havoc Pennington * gtk/gtkaspectframe.c: Convert to new property API, patch from Lee Mallabone * gtk/gtkarrow.c: Convert to new property API, patch from Lee Mallabone Tue Feb 20 12:16:12 2001 Jonathan Blandford * gtk/gtkiconfactory.c (gtk_icon_set_new_from_pixbuf): New function to create an icon set from a pixbuf. 2001-02-20 Alexander Larsson * gtk/gtkcellrenderertext.[ch]: Add a "markup" property. * gtk/treestoretest.c: Use the markup property, remove some leftover stuff from GtkTreeModelMapping. 2001-02-20 Alexander Larsson * gtk/gtklabel.c (gtk_label_set_selectable): Queue a redraw if the selectable setting was changed. 2001-02-20 Alexander Larsson * gdk/linux-fb/gdkgc-fb.c (gdk_gc_copy): Actually copy the whole gc, not just the public parts. * gdk/linux-fb/gdkwindow-fb.c (gdk_window_new): GDK_WINDOW_TEMP are not toplevel. Fixes selectable labels. 2001-02-19 Havoc Pennington * gdk/gdkwindow.c: docs * gdk/gdkrgb.c: docs * gdk/gdkregion-generic.c: docs * gdk/gdkgc.c (gdk_gc_set_values): docs * gdk/gdkdraw.c: docs * gdk/gdkdrawable.h: deprecate drawable get/set data Mon Feb 19 20:37:35 2001 Jonathan Blandford * demos/gtk-demo/dialog.c: Add simple new demo. 2001-02-19 Havoc Pennington * gtk/gtktextbuffer.h (struct _GtkTextBufferClass): add insert_child_anchor signal, bug #50245 * gtk/gtktextbtree.c (_gtk_text_btree_insert_child_anchor): change from create_child_anchor, so the anchor is passed in * gtk/gtktextchild.c (gtk_text_child_anchor_new): new function (_gtk_widget_segment_new): have the child anchor object passed in, instead of creating it. * gtk/gtktextbuffer.c (gtk_text_buffer_modified): rename to gtk_text_buffer_get_modified 2001-02-19 Havoc Pennington * gtk/gtktreemodel.c (gtk_tree_model_get_valist): hmm, someone changed GLib without fixing GTK * gtk/gtkrange.h: Rename all the stupid implementation detail functions to have an underscore in front. Most of them should probably just go away, but for starters don't export them. Bug #50482 2001-02-19 Havoc Pennington * gdk/gdkcolor.h: test was backward, so deprecated functions were excluded by default * gtk/gtkstyle.c (gtk_default_draw_diamond): draw etched in/out, clean up the old code a bit * gtk/gtkradiobutton.c (gtk_radio_button_draw_indicator): draw inconsistent state * gtk/gtkradiomenuitem.c (gtk_radio_menu_item_draw_indicator): draw inconsistent state * gtk/testgtk.c (create_toggle_buttons): add test for inconsistent (create_menu): add inconsistent test * gtk/gtkcheckmenuitem.c (gtk_check_menu_item_set_inconsistent): new function (gtk_check_menu_item_get_inconsistent): new function (gtk_real_check_menu_item_draw_indicator): draw the inconsistent state (using etched in for now) * gtk/gtkcheckbutton.c (gtk_real_check_button_draw_indicator): draw inconsistent state * gtk/gtktogglebutton.c (gtk_toggle_button_set_inconsistent): new function, used when the user has selected a range of stuff in different states (gtk_toggle_button_get_inconsistent): accessor for that (gtk_toggle_button_paint): draw inconsistent state (etched in? don't know what else to do) 2001-02-19 Hans Breuer * gtk/gtk.def : updated exported symbols * gtk/makefile.msc.in : updated * gtk/gtkstyle.c (gtk_style_realize) : gets called without a colormap, when invoked from testgtk::entry. I'm not sure where the bug is, but g_return_if_fail (GDK_IS_COLORMAP (colormap)); avoids immediate crashing ... * gtk/gtkmain.c (check_setugid) : totally disabled on win32; any objections ? * gtk/gtktreemodel.c : called G_VALUE_LCOPY with an extra 0 parameter. At least msvc doesn't like macros with var args. I simply removed the extra 0, was it a feature or a typo ? * gtk/gtktreeviewcolumn.[hc] (gtk_tree_view_column_set_func) : removed the extra indirection from the GtkTreeViewColumnFunc parameter, because the value assignment to the internal struct wasn't working. I'm not absolutely sure. The problem could have been resolved by changing the "func" declartion in the struct, but was the pointer to the function pointer intended ? * gtk+/gtk/gtktreedatalist.c : include gboxed.h * gdk/gdk.def : updated exported symbols * gdk/win32/gdkdrawable-win32.c (gdk_win32_draw_image) : only use SetDIBitsToDevice if there is a palette at the drawable and the image is GDK_VISUAL_PSEUDO_COLOR * gdk/win32/gdkkeys-win32.c : msvc still has no ... * gdk/win32/gdkwindow-win32.c : #include "gdk.h" /* gdk_rectangle_intersect */ * gdk/*/makefile.msc : updated 2001-02-19 Havoc Pennington * demos/gtk-demo/Makefile.am (INCLUDES): GDK_DISABLE_COMPAT_H, GDK_DISABLE_DEPRECATED (we need to merge those two #defines) * gdk/x11/gdkmain-x11.c (gdk_key_repeat_disable): nuke (gdk_key_repeat_restore): nuke * gdk/gdk.c (gdk_exit_func): #if 0 this for now, don't install it (gdk_init_check): no atexit func * gdk/gdkrgb.h: mark some stuff deprecated * gdk/gdkcolor.h: mark some stuff deprecated * gdk/gdk.h: deprecated gdk_exit, gdk_input_* * gdk/gdkfont.h: bracket in GDK_DISABLE_DEPRECATED 2001-02-16 Havoc Pennington * gtk/gtkvscrollbar.c (gtk_vscrollbar_trough_keys): use the visual scroll steps. * gtk/gtkvscale.c (gtk_vscale_trough_keys): use the visual scroll steps, and add Ctrl-arrow shortcuts for paging visually as with HScale, since Page Up and Page Down move logically. * gtk/gtkenums.h (GtkScrollType): add GTK_SCROLL_STEP_UP, GTK_SCROLL_STEP_DOWN, etc. for visual scroll directions * gtk/gtkrange.c (gtk_range_key_press): handle the visual scroll steps (gtk_range_scroll): handle the visual steps * gtk/gtklist.c (gtk_list_scroll_horizontal): handle the up/down scroll steps * gtk/gtkhscale.c (gtk_hscale_trough_keys): use the visual scroll steps, not the logical ones. * gtk/gtkclist.c (move_focus_row): handle the up/down scroll steps (scroll_vertical): handle up/down steps 2001-02-19 Alexander Larsson * gdk/linux-fb/gdkimage-fb.c (gdk_image_new_bitmap): Copy data and free data with free(). * gdk-pixbuf/gdk-pixbuf.c: * gdk-pixbuf/io-jpeg.c: * gdk-pixbuf/io-png.c: Use g_try_malloc/g_free instead malloc/free. * gdk-pixbuf/test-gdk-pixbuf.c: Must... initialize... gobject... * gdk-pixbuf/pixops/timescale.c: * gtk/gtkcalendar.c: Use g_malloc instead of malloc. 2001-02-19 Alexander Larsson * gtk/testgtkrc: Comment out property assignments, these don't work yet. 2001-02-17 Havoc Pennington * gtk/gtkalignment.c (gtk_alignment_class_init): clean this up a bit. 2001-02-17 Havoc Pennington * gtk/gtklabel.c (gtk_label_ensure_layout): fix screwup with shadowed variables that had broken size request in some cases, leading to bogus tooltips (#50996) 2001-02-06 Jon K Hellan Implement fast browsing of tooltips, bug #50619 * gtk/gtktooltips.h (struct _GtkTooltips): Add use_sticky_delay and last_popdown * gtk/gtktooltips.c (gtk_tooltips_init): Initialize sticky_delay, use_sticky_delay and last_popdown. (gtk_tooltips_draw_tips, gtk_tooltips_set_active_widget): Record time of popdown. (gtk_tooltips_set_active_widget): Unset sticky behaviour if widget is NULL. (gtk_tooltips_recently_shown): New static function. Return true if < sticky_delay has elapsed since last popdown. (gtk_tooltips_event_handler): Display window after sticky_delay (presumably < normal delay) if < STICKY_REVERT_DELAY has elapsed since last popdown. 2001-02-17 Havoc Pennington * gtk/gtktypeutils.h (GtkSignalFunc): change it to take (void) instead of (). #6394 * gtk/gtkprogressbar.c (gtk_progress_bar_get_text): Add G_CONST_RETURN, make it return by reference, #50473 Sat Feb 17 06:47:27 2001 Tim Janik * gtk/gtkmenu.c (gtk_menu_motion_notify): default initialize the generated ENTER_NOTIFY event with 0, otherwise not explicitely setup fields contain garbage (e.g. subwindow, breaking gdk_drawable_ref() upon event copy). (gtk_menu_stop_navigating_submenu_cb): same here. * gtk/gtklist.c (gtk_list_vertical_timeout): * gtk/gtklist.c (gtk_list_horizontal_timeout): * gtk/gtkclist.c (vertical_timeout): * gtk/gtkclist.c (horizontal_timeout): change direct assignment default-zero-intialization for unions to memset(,0,), as unions are not fully default-zero-initialized by compilers (GdkEvent x = { 0, }; has to become GdkEvent x; memset (&x, 0, sizeof (x)); ) * gtk/gtktreeview.c (gtk_tree_view_set_rows_drag_source): scratch g_closure_sink() warning. * gtk/gtktreemodel.c (gtk_tree_model_get_valist): * gtk/gtktreestore.c (gtk_tree_store_set_valist): * gtk/gtkliststore.c (gtk_list_store_set_valist): fix G_VALUE_COLLECT() and G_VALUE_LCOPY() calls. >>>>>>> 1.1728 Fri Feb 16 17:49:59 2001 Jonathan Blandford * gtk/gtktreestore.[hc], gtk/gtkliststore.[ch]: removed gtk_*_store_get, and moved to GtkTreeModel. * gtk/gtktreemodel.h (gtk_tree_model_set{v,}): Added * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_finalize): added. * gtk/Makefile.am: remove gtktreemodelmapping.[ch] * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_func): let you set the func. * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_cell_data): freeze/thaw notify between setting all the properties for a cell. * gtk/gtk.h: remove gtktreemodelsimple.h, and gtktreemodelmapping.h 2001-02-15 Havoc Pennington * gdk/gdkpango.c (gdk_pango_layout_line_get_clip_region): convert the X coordinates so they're with respect to the line, rather than with respect to the layout. * gtk/gtkalignment.c: Convert to new property API, patch from Lee Mallabone * gtk/testgtk.c (create_range_controls): add vscale tests, and inverted test * gtk/gtkrange.c (gtk_range_set_inverted): new function to fix #50806 * gtk/gtkentry.c (gtk_entry_get_text): add G_CONST_RETURN * gtk/gtktextiter.h (gtk_text_iter_is_last): rename gtk_text_iter_is_end * gtk/gtktextbuffer.h (gtk_text_buffer_get_last_iter): rename gtk_text_buffer_get_end_iter * gtk/testgtk.c (create_labels): Add test for selectable * gtk/gtkentry.c (gtk_entry_draw_text): Use new GDK API to draw the selection stuff. This code is kind of broken since it doesn't use the theme engine. * gdk/gdkpango.c (gdk_pango_layout_line_get_clip_region): fix infinite loop and y offset problem (gdk_draw_layout_line_with_colors): fix foreground color handling * gtk/gtklabel.h, gtk/gtklabel.c: Implement a "selectable" flag that makes the label selectable. * gtk/gtklabel.c (gtk_label_style_set): recreate the label's layout when the style is set, since fonts etc. could have changed. Fri Feb 16 14:22:05 2001 Jonathan Blandford * gtk/Makefile.am: Removed gtktreemodelsimple.[ch] * gtk/gtktreemodelsimple.[ch]: removed. 2001-02-16 Alexander Larsson * gtk/gtktreemodelmapping.[ch]: New files. Implement GtkTreeModelMapping. * gtk/Makefile.am: Add gtktreemodelmapping.[ch]. * gtk/gtk.h: Add gtktreemodelmapping.h * gtk/treestoretest.c: Test the GtkTreeModelMapping Tue Feb 13 13:16:09 2001 Jonathan Blandford * demos/gtk-demo/panes.c (create_pane_options): If we're going to have a demo, we might as well pass in real values. Thanks to clahey for pointing this out. 2001-02-14 Havoc Pennington * gtk/gtkimagemenuitem.c (gtk_image_menu_item_remove): add "static" to a private function (gtk_image_menu_item_class_init): remove destroy handler, add "image" object property 2001-02-13 Alexander Larsson * gdk/linux-fb/gdkdrawable-fb2.c (gdk_fb_clip_region): Add a shortcut if the window and the current clip_region doesn't overlap. This is needed when there are a lot of windows in a window. The layout test in testgtk is a good test. * gdk/linux-fb/gdkwindow-fb.c: Whitespace fix. 2001-02-13 Sven Neumann * demos/testanimation.c: replaced deprecated gtk_drawing_area_size 2001-02-13 Alexander Larsson * gdk/linux-fb/gdkcursor-fb.c (gdk_fb_cursor_unhide): Don't reference last_cursor if it is null. Fixes crash when rotating the screen before having moved the mouse. * gdk/linux-fb/gdkcc-fb.c: Zapp! * gdk/linux-fb/Makefile.am: Don't compile gdkcc-fb.c * gdk/linux-fb/gdkwindow-fb.c: Fix typo. width->height. Fixes redraw when using 90 or 270 degrees rotation. 2001-02-12 Havoc Pennington * gdk/gdkpango.c (gdk_pango_get_gc): fix bug where it always set the foreground, even if we were only using a stipple. (gdk_draw_layout_line_with_colors): new function, allow override colors (gdk_draw_layout_with_colors): new function, allow override colors (gdk_pango_layout_line_get_clip_region): function to get the clip region for a logical text range (gdk_pango_layout_get_clip_region): get the clip region for a logical text range * gdk/x11/gdkcolor-x11.c: forward declare gdk_colormap_sync(), (gdk_colormap_new): fix call to gdk_colormap_sync() so it has the right number of arguments. * gtk/gtktextbtree.c (gtk_text_btree_node_check_consistency): enhance the function to check that node data corresponds to a view still belonging to the tree. * gtk/gtktreeview.c (gtk_tree_view_changed): we were leaking the GtkTreePath (gtk_tree_view_inserted): ditto (gtk_tree_view_child_toggled): ditto * gtk/gtktreemodel.c (gtk_tree_path_append_index): use realloc to simplify this code. * gtk/gtkcellrenderertext.c (get_layout): fix leak of a PangoAttrList * demos/gtk-demo/main.c (load_file): Fix leak of a GString * gtk/gtkentry.c (gtk_entry_realize): Fix leak of a GdkCursor * gtk/gtkmenubar.c (gtk_menu_bar_size_request): consider toggle size in the size request (gtk_menu_bar_size_allocate): consider toggle size here * gtk/gtkimagemenuitem.h, gtkimagemenuitem.c: Menu item that displays a widget in the toggle slot * gtk/testgtk.c: test GtkImageMenuItem * gtk/Makefile.am, gtk/gtk.h: Add GtkImageMenuItem * gtk/gtkmenuitem.h: Use "gint" not "guint16" for toggle size request and allocation * gtk/gtkmenu.c (gtk_menu_size_request): use gint not guint16 * gtk/gtkcheckmenuitem.c (gtk_check_menu_item_toggle_size_request): ditto Mon Feb 12 23:43:30 2001 Owen Taylor * gtk/Makefile.am (gdk_headers): Remove gdkcc.h reference. * configure.in gtk/gtkmain.c: Add checks for setuid/setgid, and refuse to initialize GTK+ if they fail. Mon Feb 12 15:02:07 2001 Owen Taylor * configure.in: Add check for gtk-doc version. Thu Feb 8 17:18:26 2001 Owen Taylor * gtk/gtklabel.c (gtk_label_size_request): Fix bug where the xpad/ypad was only being used on one side! 2001-02-11 Tor Lillqvist * gdk/win32/gdkcolor-win32.c (gdk_colormap_query_color): New function, copied from X11 version. * gdk/win32/gdkwindow-win32.c (gdk_window_set_cursor): Eliminate DestroyCursor failures. The reason for the problem (despite the inconsistent messages from GetLastError()) was that DestroyCursor() cannot be called while a cursor is set in a window. Set the new cursor first and then destroy the old one. Thanks to jpe@archaeopteryx.com. * gdk/win32/gdkcc-win32.c: Remove. * gdk/win32/Makefile.am: Remove from here, too. * gdk/gdk.def * gdk/makefile.mingw.in: Update. Godbye GdkColorContext. * gtk/gtk.def * gtk/makefile.mingw.in: Updates. 2001-02-08 Havoc Pennington * gtk/gtkbin.c (gtk_bin_add): better error message if you try to add a widget to a bin that already has a child. * gdk/gdkcc.h, gdk/gdkcc-x11.c: Remove GdkColorContext, #50512 * docs/Changes-2.0.txt: note that GdkColorContext is gone. * gdk/x11/Makefile.am (libgdk_x11_la_SOURCES): remove gdkcc-x11.c * gdk/gdk.h: remove gdkcc.h * gdk/Makefile.am (gdk_public_h_sources): remove gdkcc.h * gtk/gtkpixmap.c (build_insensitive_pixmap): rewrite using GdkPixbuf, since the previous implementation was GdkColorContext dependent. * gtk/testgtk.c (create_pixmap): add test for insensitive GtkPixmap Thu Feb 8 19:00:00 2001 Jonathan Blandford * gtk/gtktreeview.c (TREE_VIEW_VERTICAL_SEPARATOR): moved back to a sane value! 2001-02-08 Havoc Pennington * gtk/gtkstyle.c (get_darkened_gc): let's darken colors, not lighten them. 2001-02-08 Havoc Pennington * gtk/gtktextview.c (gtk_text_view_destroy_layout): remove validation idle * demos/gtk-demo/main.c (create_tree): adjust to changes in text cell renderer * demos/pixbuf-demo.c (timeout): remove deprecated gtk_widget_draw * demos/testpixbuf-save.c (main): remove deprecated gtk_drawing_area_size * gtk/gtktreeview.c (gtk_tree_view_size_allocate): allocate buttons even if the model isn't setup. gtk_tree_view_check_dirty() at the start of the allocation. (gtk_tree_view_check_dirty): handle column->button == NULL, handle unsetup or NULL model. * gtk/gtkstyle.c (gtk_default_draw_flat_box): drawing for the even/odd/sorted cells in the tree view. * gtk/gtktreeselection.c (gtk_tree_selection_real_unselect_all): bugfixes * gtk/gtktreeview.c: assorted bugfixy stuff. Draw the row backgrounds with draw_flat_box using different detail for even/odd rows. * gtk/gtkrbtree.c, gtkrbtree.h: Keep track of the parity of each row, so we can draw the alternating colors thing * gtk/gtktexttag.c (gtk_text_tag_set_property): if we change a property from a synonym property, notify for the synonym. Also, nuke the background_gdk_set and foreground_gdk_set synonyms (gtk_text_tag_get_property): Always return the font, even if all its fields aren't set * gtk/gtkcellrenderertext.h (struct _GtkCellRendererText): don't store the attr list; it leaves us with no way to change attributes in _render according to the render flags, and no way to implement get_property. Instead store all the specific text attributes. Separate whether an attribute is enabled from its value. Sync all properties with GtkTextTag, make them all consistent, etc. * gtk/gtkcellrenderer.h: Add a flag GTK_CELL_RENDERER_SORTED so renderers can highlight the sort row/column * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_get_property): use accessor functions to get values; this has the side effect of showing up which accessor functions were missing. Added those. * gtk/gtktreeviewcolumn.h: Replace set_justification with set_alignment, to be consistent with GtkLabel, GtkMisc * gtk/gtktreeviewcolumn.c: Added code to display sort indicator arrow. * gtk/Makefile.am (gtk_public_h_sources): add gtktreesortable.h * gtk/gtktreesortable.h: updates in here 2001-02-07 Sven Neumann * gtk/gtkentry.c (gtk_entry_draw_text): convert area_height to pango dimensions after painting the background. We used to draw gigantic flat boxes here. Mon Feb 5 22:05:57 2001 Owen Taylor * gdk/linux-fb/gdkimage-fb.c (_gdk_fb_get_image): Fix syntax error introduced with earlier commit) (pointed out by Ollie Lho) Mon Feb 5 12:25:06 2001 Owen Taylor * gtk/gtkbutton.c: Remove calls to gtk_grab_add/gtk_grab_remove, which are no longer necessary. Mon Feb 5 13:22:54 GMT 2001 Tony Gale * docs/faq/gtk-faq.sgml: s/MISK/MISC/ 2001-02-04 Tor Lillqvist * gdk/gdk.def * gdk/win32/gdkim-win32.c (gdk_ic_attr_new, gdk_ic_attr_destroy): Provide dummy implementations. Sun Feb 4 07:55:17 2001 Tim Janik * gtk/gtksignal.h: removed gtk_signal_init() compat define. * gtk/gtktypeutils.[hc]: gtk_tpye_init() take an additional argument GTypeDebugFlags debug_flags and pass it on to g_type_init (); deprecated this function. * gdk/gdk.c (gdk_init_check): call g_type_init () with 0 as argument. Sun Feb 4 07:45:45 2001 Tim Janik * gtk/gtkdebug.h: nuke GTK_DEBUG_OBJECTS and GTK_DEBUG_SIGNALS. 2001-02-03 Havoc Pennington * gtk/gtktextbtree.c (_gtk_text_btree_tag): Fix bug reported by Mikael Hermansson with patch from Mikael (if there was a toggle start one after the first character in the range, this function was broken). Bug #50380 Sat Feb 3 11:28:03 2001 Owen Taylor * configure.in: Remove confusing comment about X11. Fri Feb 2 19:21:23 2001 Owen Taylor * gdk/gdkwindow.c (gdk_propagate_shapes): Surround additional regions with HAVE_SHAPE_EXT. (#50511, Eric Ding) Fri Feb 2 18:31:54 2001 Owen Taylor * gdk/x11/gdkimage-x11.c: Remove definition of _XOPEN_SOURCE, since it breaks things on BSD. If you want to compile GTK+ with -ansi -pedantic, you should supply CPP_FLAGS=_XOPEN_SOURCE when configuring, since GTK+ simply can't be "pure ANSI" in the header files it uses. (#8170, Greg Hudson) 2001-02-02 Havoc Pennington * gtk/gtkwindow.c: docs * gtk/gtkwidget.c: docs (gtk_widget_set_colormap): add a reference to the colormap (gtk_widget_get_default_colormap): add a reference to the colormap * gtk/gtktextbtree.c (gtk_text_mark_set_visible): docs * gtk/gtktextiter.c: docs * gtk/gtkmain.c (gtk_propagate_event): docs * gtk/gtkpaned.c (gtk_paned_get_position): docs (gtk_paned_set_position): docs * gtk/gtktreesortable.h (struct _GtkTreeSortableIface): Initial sort interface, no implementation yet. * demos/testpixbuf.c (new_testrgb_window): replace gtk_drawing_area_size() with gtk_widget_set_usize() * demos/testpixbuf-drawable.c (main): ditto * gtk/testgtk.c: remove use of GtkStatusbarMsg * gtk/gtktextbuffer.c: docs * gtk/gtkstock.c: docs * gtk/gtkscrolledwindow.c (gtk_scrolled_window_set_shadow_type): docs * gtk/gtkoptionmenu.c (gtk_option_menu_get_history): docs * gtk/gtklabel.c (gtk_label_set_markup_with_accel): fix docs * gtk/gtkimage.c: add some docs in here (gtk_image_size_request): change name of gtk_widget_render_stock_icon (gtk_image_get_icon_set): don't dup returned string (gtk_image_get_icon_set): don't dup returned string * gtk/gtkwidget.c (gtk_widget_render_icon): rename from gtk_widget_render_stock_icon(), more consistent with gtkstyle.h and gtkiconfactory.h functions * gtk/gtkiconfactory.c: add some docs in here * gtk/gtkmain.c (gtk_get_default_language): document (gtk_get_current_event): document (gtk_get_current_event_state): document (gtk_get_event_widget): document * gtk/gtkentry.c (gtk_entry_set_invisible_char): document * gtk/gtkcontainer.c: Add some documentation (gtk_container_add): give a more explanatory warning on adding an already-parented widget, this is kind of a FAQ and also a common typo that's easier to debug with a nice warning * gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_get_active): remove, I was on crack adding this, it's useless (gtk_cell_renderer_toggle_set_active): remove (gtk_cell_renderer_toggle_get_radio): add * gtk/gtkcellrenderer.c (gtk_cell_renderer_get_size): don't allow the NULL cell renderer, that doesn't make any sense to me. * demos/gtk-demo/Makefile.am (INCLUDES): -DGTK_DISABLE_DEPRECATED, demo code should never use deprecated features. * demos/Makefile.am (INCLUDES): -DGTK_DISABLE_DEPRECATED, demo code should never use deprecated features. * gtk/gtkwidget.h: Mark gtk_widget_draw, gtk_widget_queue_clear, gtk_widget_queue_clear_area deprecated * gtk/gtklayout.h: mark gtk_layout_freeze/gtk_layout_thaw deprecated * gtk/gtklabel.h: mark gtk_label_get() deprecated * gtk/gtkimage.h: mark the legacy GtkImage functions that took a GdkImage deprecated, replaced by new consistently-named functions * gtk/gtkmain.h: Mark gtk_exit() deprecated * gtk/gtkdrawingarea.h: mark gtk_drawing_area_size deprecated * gtk/gtkstyle.h: mark gtk_draw_string, gtk_paint_string deprecated * gtk/gtkstatusbar.h: Move GtkStatusbarMsg to the .c file, so it won't appear in docs and confuse people. * gtk/gtkprogressbar.h: Mark all the old methods deprecated * gtk/gtkprogress.h: Mark all methods deprecated, mark the cast macros deprecated. (can't mark the type itself deprecated, since GtkProgressBar is not deprecated and we need the type decl to use GtkProgressBar) * gtk/gtkpixmap.h: Mark deprecated * gtk/gtkoldeditable.h: Mark deprecated * gtk/gtklist.h: Mark deprecated * gtk/gtklabel.h: delete "GtkLabelWord" typedef, not used for anything anymore. * gtk/gtkctree.h: Mark deprecated * gtk/gtkclist.h: Mark deprecated * gtk/gtkpreview.h: Mark deprecated * gtk/gtkpacker.h: Mark deprecated * gtk/gtktipsquery.h: Mark deprecated * gtk/gtkinputdialog.h: Add comment that it will move out of GTK * gtk/gtkvruler.h: Add comment that it will move out of GTK * gtk/gtkhruler.h: Add comment that it will move out of GTK * gtk/gtkruler.h: Add comment that it will move out of GTK * gtk/gtkgamma.h: Add comment that it will move out of GTK * gtk/gtkcurve.h: Add comment that it will move out of GTK Fri Feb 2 17:16:09 2001 Owen Taylor * gdk/x11/gdkcolor-x11.c (gdk_colormap_sync): Make gdk_colormap_sync private since it was never exported in a header file. * gdk/x11/gdkcolor-x11.c (gdk_colormap_new): Fill in colormap->colors[] for StaticGray, StaticColor colormaps. * gdk/gdkpixbuf-drawable.c: Fix problems where image->bpp was being used as if it was image->bits_per_pixel. * gdk/gdkimage.h, gdk/x11/gdkimage-x11.c: Save the bits-per-pixel for the image in the GdkImage structure since it isn't reconstructable, and we need it to handle packed types * gdk/win32/gdkimage-win32.c: Set image->bits_per_pixel. (I'm making the assumption that on Win32 image->bits_per_pixel == image->depth, always. * gdk/linux-fb/gdkimage-fb.c: Set image->bits_per_pixel. * gdk/gdkrgb.c (gdk_rgb_select_conv): Exit with an informative warning message if no converter can be found. Fri Feb 2 15:09:51 2001 Owen Taylor * gtk/fnmatch.c (FOLD): Fix problem with passing signed chars to isupper() / tolower(). (#567) * examples/packer/pack.c: Add GINT_TO_POINTER, GPOINTER_TO_INT to clear up 64-bit warnings. (#567) Fri Feb 2 12:26:50 2001 Owen Taylor * gtk/gtkrc.c (gtk_rc_add_initial_default_files): Get rid of a bunch of g_strdup_printf("%s%s") in favor of g_strconcat(). * gtk/gtkrc.c Makefile.am: Use $(libdir), not $(exe_prefix), since some people set $(libdir) separately. (#1290, David Kaelbling) Thu Feb 1 18:25:46 2001 Owen Taylor * gtk/gtkfilesel.c: If PATH_MAX and MAXPATHLEN are not defined, define MAXPATHLEN to 2048. (The Hurd doesn't have MAXPATHLEN, but the code here depends on a fixed value.) (#4524) Wed Jan 31 22:01:04 2001 Owen Taylor * gtk/gtkhandlebox.c (gtk_handle_box_button_changed): Handle the case where child == NULL and handle_position == RIGHT or BOTTOM. (#8041g) Wed Jan 31 21:20:39 2001 Owen Taylor * gtk/gtkctree.c (real_tree_move): If the node being moved isn't viewable there is no way that moving the node will cause the focus row to become not viewable, so omit check on the visibility of new_sibling, which is irrelevant. (Fixes #8002, David Helder) Wed Jan 31 20:38:17 2001 Owen Taylor * gtk/gtkentry.c (gtk_entry_commit_cb): Delete the current selection before inserting new text. Wed Jan 31 18:49:33 2001 Owen Taylor * gtk/gtkoptionmenu.c (gtk_option_menu_item_state_changed_cb): Make the sensitivity of the reparented child track that of the original parent menu item. (#34218, David Hodson) * gtk/gtkoptionmenu.c (gtk_option_menu_item_destroy_cb): Handle the case where the current item is destroyed properly. * gtk/gtkoptionmenu.c: Some additional code cleanups and fix some edge cases with child-less menuitems. Wed Jan 31 17:16:13 2001 Owen Taylor * gtk/gtkcombo.c (gtk_combo_window_key_press): Make Return key pop down window. (#12074, Jon K Hellan) Wed Jan 31 16:21:42 2001 Owen Taylor * gtk/gtklist.c (gtk_list_signal_item_toggle): Don't allow toggling of rows off in BROWSE or EXTENDED mode. (#12072, Jon K Hellan) The solution here isn't perfect - you get an extraneous emission of "toggle", which could conceivably confuse an app, but better than the current situation. LXR search seems to indicate that no apps in GNOME CVS connect to "toggle". Wed Jan 31 15:46:13 2001 Owen Taylor * gtk/Makefile.am (libgtkinclude_HEADERS): Move gtkcompat.h from gtk_public_h_sources to directly here to avoid warning when building srcdir != builddir. (#9656) Tue Jan 30 19:49:02 2001 Owen Taylor * gtk/gtkrange.c: Patch from Kipp Hickman to make the event handlers in gtkrange.c return the proper values (TRUE == handled) (#10316). This is just the tip of the iceberg, but gtkrange.c is the most common place where the propagation is problematical, and also a place where it is almost certainly safe to change this in the stable branch. (You don't want right click popups on a range control or anything...) Tue Jan 30 18:57:59 2001 Owen Taylor * gtk/gtktext.c (clear_focus_area): We need to clear the focus area on focus out, even if a background pixmap isn't set. (#13941) Tue Jan 30 18:24:10 2001 Owen Taylor * gtk/gtknotebook.c (gtk_notebook_set_shape): Fix from Sean Cunningham to deal with setting the shape properly when scrolling arrows are turned on, but not visible because there is sufficient space. (#13432) Tue Jan 30 16:39:25 2001 Owen Taylor * gtk/gtkitemfactory.c (gtk_item_factory_delete_item): For menu items with submenus, destroy the item along with the submenu. (#7841, Brian Masney(?)) Also, handle paths of the form '/abcd...' properly. * gtk/testgtk.c (menu_items): Add a dummy branch that we delete later. Tue Jan 30 15:51:25 2001 Owen Taylor * gtk/gtkwindow.c (gtk_window_real_set_focus): Fix a problem where the focus widget sometimes wasn't drawn with the default if there was no default widget. * gtk/gtkstyle.c (gtk_style_real_unrealize): free colors, unreference pixmaps. * gtk/gtkstyle.c (gtk_style_realize): Reference colormap for some extra safety. Mon Jan 29 19:00:01 2001 Owen Taylor * gtk/gtk{ctree.c,clist.c} (set_cell_contents): Handle setting the text of a cell to the old pointer value better, by copying the new text before freeing the old text. Some code cleanup. (#8079, Karl Nelson) Mon Jan 29 16:50:19 2001 Owen Taylor * gtk/gtklabel.[ch] gtk/gtkframe.[ch]: Make gtk_label_get_text() gtk_frame_get_label() non strdup'ing, and G_CONST_RETURN. Mon Jan 29 15:22:51 2001 Owen Taylor * gtk/gtkmenu.c (gtk_menu_remove): When removing an item from a menu, check to see if it matches menu->old_active_menu_item, and if so, unref and clear old_active_menu_item (Patch from Pavel Cisler) * gtk/gtkmenushell.c (gtk_menu_shell_remove): Unset menu_shell->active_menu_item, if it is the child being removed. (Patch based on that of Gene Ragan, #50337) 2001-01-31 Alexander Larsson * gdk/linux-fb/gdkselection-fb.c: * gdk/linux-fb/gdkcolor-fb.c: * gdk/linux-fb/gdkdrawable-fb2.c: * gdk/linux-fb/gdkfont-fb.c: * gdk/linux-fb/gdkim-fb.c: * gdk/linux-fb/gdkinput.c: * gdk/linux-fb/gdkkeyboard-fb.c: * gdk/linux-fb/gdkmain-fb.c: * gdk/linux-fb/gdkrender-fb.c: A bunch of whitespace cleanup. 2001-01-30 Havoc Pennington * gtk/gtktreeitem.h, gtk/gtktree.h, gtk/gtktext.h: bracket in #ifdef GTK_ENABLE_BROKEN. * gtk/gtktreeitem.c, gtk/gtktree.c, gtk/gtktext.c: #define GTK_ENABLE_BROKEN just before including the broken headers. * gtk/gtktypeutils.c: #define GTK_ENABLE_BROKEN, so we can get the deprecated types registered. * gtk/testgtk.c, gtk/testselection.c: #define GTK_ENABLE_BROKEN, we have to test the broken stuff. * docs/Changes-2.0.txt: explain GTK_ENABLE_BROKEN 2001-01-30 Havoc Pennington * gtk/gtkliststore.c (gtk_list_store_insert_before): fix bug in here where prev pointer was set to the wrong thing * gtk/gtktreemodel.c (gtk_tree_path_is_ancestor): new function (gtk_tree_path_is_descendant): new function * gtk/gtkliststore.c (gtk_list_store_iter_n_children): return cached length (gtk_list_store_get_iter): don't modify iter if we can't get the path. * gtk/gtkliststore.h (struct _GtkListStore): cache the length * gtk/gtktreednd.h: add virtual function row_drop_possible() to GtkTreeDragDest * gtk/gtktreestore.c (copy_node_data): fix varargs type error that was causing segfault * gtk/gtktreedatalist.c (_gtk_tree_data_list_node_copy): set next pointer to NULL * gtk/gtktreestore.c (gtk_tree_store_append): fix memleak * gtk/gtkliststore.c (gtk_list_store_iter_next): don't modify iter on returning FALSE (gtk_list_store_iter_children): ditto (gtk_list_store_iter_nth_child): ditto (gtk_list_store_iter_nth_child): ditto (gtk_list_store_iter_parent): ditto * gtk/gtktreestore.c (gtk_tree_store_get_path): g_return_if_fail on iter->user_data != NULL instead of silently accepting it. (gtk_tree_store_iter_next): ditto. Also, don't modify iter unless we are returning TRUE. (gtk_tree_store_iter_children): ditto (gtk_tree_store_iter_nth_child): ditto (gtk_tree_store_iter_parent): ditto (gtk_tree_store_insert): remove handling of parent->user_data == NULL, replace with parent == NULL * gtk/gtktreemodel.c (inserted_callback): put some fixes in here, and a comment explaining things * gtk/gtktreestore.c: add GtkTreeDragSource/GtkTreeDragDest interface support to GtkTreeStore. * gtk/gtktreemodel.c (gtk_tree_path_prev): didn't properly return FALSE if no prev, fix * gtk/gtktreeview.c (set_source_row): use a row reference (set_dest_row): use a row reference Sat Jan 27 15:52:02 2001 Jonathan Blandford * gtk/gtktreeselection.c (gtk_tree_selection_unselect_iter): Fix stupid typo pointed out by Kristian Rietveld . (gtk_tree_selection_select_iter): The same as above. 2001-01-26 Havoc Pennington * gtk/gtktreemodel.c, gtk/gtktreemodel.h: add GtkTreeRowReference which holds a handle to a specific row (particular set of values in the model, i.e. pointer-identity row). * gtk/gtktreeview.c, gtk/gtktreeprivate.h, gtk/gtktreeselection.c: use GtkTreeRowReference for anchor, cursor, and drag_dest_row. Still need to use it for the src/dest row saved on the drag context. 2001-01-26 Havoc Pennington * gtk/gtktextlayout.c (convert_color): adapt to handle PangoColor * gtk/gtktreeview.c (gtk_tree_view_widget_to_tree_coords): fix to not offset by TREE_VIEW_HEADER_HEIGHT (gtk_tree_view_tree_to_widget_coords): fix to not offset by TREE_VIEW_HEADER_HEIGHT * configure.in (included_loaders): for me, --with-included-loaders generates the error "the specified loader yes does not exist", i.e. the arg defaults to "yes", so change test for value "" to test for value "yes", and include all loaders in that case. * gtk/gtkrbtree.c (_gtk_rbtree_get_depth): new function * gtk/gtktreeview.c (gtk_tree_view_get_cell_rect): fix to properly handle TREE_VIEW_VERTICAL_SEPARATOR (gtk_tree_view_bin_expose): fix to consider the row offset as pointing halfway into vertical separator. (gtk_tree_view_draw_node_focus_rect): ditto * gtk/gtkdebug.h, gtk/gtkmain.c (gtk_init_check): Add --gtk-debug=updates, which causes gdk_window_set_debug_updates (TRUE) to be called. * gdk/gdkwindow.c (gdk_window_set_debug_updates): Allow enabling a debug mode where the invalid region is colored in on invalidate, so you can see the flicker and know whether your redraw code is doing a good job. * gtk/gtktreeview.c (gtk_tree_view_queue_draw_node): Work in tree window coordinates (clip rect is in tree window coords) * gtk/Makefile.am: add gtktreednd.[hc] * gtk/gtkliststore.c: implement gtktreednd interfaces. * gtk/gtktreednd.c, gtk/gtktreednd.h: New interface to support drag-and-drop data operations on a model (so we can set up tree drag-and-drop automatically) * gtk/testgtk.c: Add a window to change sensitivity in the GtkLabel test; add a way to change the entry frame in GtkEntry test * gtk/gtkentry.c (gtk_entry_set_has_frame): (gtk_entry_get_has_frame): new functions to remove the frame around an entry (gtk_entry_size_request): shrink requisition if no frame (gtk_entry_draw_focus): don't draw frame if no frame * gtk/gtkstyle.c (gtk_default_draw_check): draw custom look for checks inside a cell renderer (gtk_default_draw_option): ditto for options * gtk/gtktreeviewcolumn.c (update_button_contents): add/remove children from the alignment, not the button (gtk_tree_view_column_init): ref/sink the column, to emulate GObject refcounting. * gtk/gtkcellrenderer.c (gtk_cell_renderer_init): ref/sink * gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_render): Use theme functions to draw the toggles * gdk/gdkpango.c (gdk_pango_get_gc): use GdkRGB to alloc colors * gdk/gdkpango.h, gdk/gdkpango.c: Add GdkPangoAttrStipple and GdkPangoAttrEmbossed to use in rendering insensitive text * gdk/gdkpango.c (gdk_draw_layout_line): render new properties * gtk/gtkstyle.c (gtk_default_draw_layout): handle sensitivity using new GDK features 2001-01-24 Alexander Larsson * gtk/gtkimage.c: Splitted gtk_image_clear into gtk_image_clear() and gtk_image_reset(). Call gtk_image_clear() in ::destroy to avoid leaks. * gtk/gtklabel.c (set_markup): Don't leak text. * gtk/gtktextlayout.c: Always free display->shaped_objects. * gtk/testgtk.c (create_clist): Don't leak custom style. 2001-01-23 Alexander Larsson * gtk/gtkcolorsel.c (grab_color_at_mouse): Don't leak image. Simplify using gdk_colormap_query_color(). (gtk_color_selection_init): Don't leak dropper_pixmap and mask. * linux-fb/gdkcolor-fb.c: Implemented gdk_colormap_query_color. 2001-01-23 Alexander Larsson * linux-fb/gdkcursor-fb.c: Don't leak built-in cursors. * linux-fb/gdkdrawable-fb2.c (gdk_fb_draw_polygon): Don't leak tmp_points. * linux-fb/gdkfont-fb.c (gdk_font_from_description): Don't modify desc. Don't leak font if the PangoFont isn't found. * linux-fb/gdkgc-fb.c (gdk_fb_gc_finalize): Free dash_list. * linux-fb/gdkkeyboard-fb.c (gdk_fb_handle_key): Don't leak string. 2001-01-20 Havoc Pennington * gtk/gtktexttag.h (enum GtkWrapMode): rename member fields from GTK_WRAPMODE_WORD to GTK_WRAP_WORD, etc., seems nicer to me, matches Pango 2001-01-22 Havoc Pennington * demos/testanimation.c: fix to reflect gdk-pixbuf changes * demos/testpixbuf.c: fix to reflect gdk-pixbuf changes * gtk/gdk-pixbuf-loader.c, gtk/gdk-pixbuf-loader.h: Remove, move back to gdk-pixbuf * gtk/gtktextiter.c, gtk/gtktextiter.h: add sentence equivalents to all the word functions * gtk/gtktextview.c (gtk_text_view_start_cursor_blink): return before doing anything on NULL layout or if we don't have the focus * gtk/testtext.c (fill_example_buffer): "justification" * gtk/gtktexttag.h, gtk/gtktexttag.c: change the tag attribute to be called "justification" not "justify" * demos/gtk-demo/textview.c (create_tags): "justification" * gtk/gtktextlayout.c (set_para_values): Handle char-wise wrapping 2001-01-22 Alexander Larsson * gdk/gdkwindow.c (gdk_window_invalidate_region): Don't leak visible_region. Use visible_region instead of region. * gdk/linux-fb/gdkwindow-fb.c (gdk_window_new): Don't do extra gdk_drawable_ref(). This is not X. (gdk_fb_window_find_focus, gdk_fb_change_focus): make sure gdk_fb_focused_window is ref:ed. (gdk_fb_window_send_crossing_events): Watch out for destroyed windows. 2001-01-22 Alexander Larsson * gtk/gtkwindow-decorate.c (gtk_decorated_window_realize): Don't leak the PangoFontDescriptor. Sun Jan 21 09:58:00 2001 Jonathan Blandford * gtk/gtktreeview.c (gtk_tree_view_scroll_to_point): Make fail when not realized. (gtk_tree_view_scroll_to_cell): Make work when not realized. (gtk_tree_view_realize): add scroll_to support (gtk_tree_view_finalize): add a finalize method. Populate. (gtk_tree_view_insert_column): ref and sink the column. (gtk_tree_view_append_column): ref and sink the column. (gtk_tree_view_queue_draw_node): New function to handle redrawing individual nodes. Should make the code much more efficient, if actually used. 2001-01-19 Havoc Pennington * gtk/gtktextlayout.c (gtk_text_layout_get_line_display): byte_offset variable was being used to mean both "offset into layout" and "offset into buffer line" which was no longer true with addition of preedit string; fix 2001-01-19 Havoc Pennington * demos/gtk-demo/main.c (button_press_event_cb): sync to tree changes * gtk/gtkrbtree.c (_gtk_rbtree_node_find_offset): fix this function * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_widget): implement * gtk/gtktreeview.c (gtk_tree_view_move_to): rename scroll_to_cell, matches TextView scroll functions better (gtk_tree_view_tree_to_widget_coords): new function (gtk_tree_view_widget_to_tree_coords): new function (gtk_tree_view_get_visible_rect): new function (gtk_tree_view_get_path_at_pos): accept negative coordinates (gtk_tree_view_draw_node_focus_rect): new function moved from draw_focus, also, use width of bin_window as width of the focus rect (gtk_tree_view_expand_row): fix bug where it didn't recognize already-expanded rows (gtk_tree_view_get_cell_rect): new function (gtk_tree_view_get_path_at_pos): return the click position relative to the passed-in cell (gtk_tree_view_set_expander_column): new function * configure.in: remove gtk-config-2.0 chmod * gtk/gtktextview.c (gtk_text_view_drag_motion): small cleanups, and properly handle drags with targets we don't understand (gtk_text_view_drag_end): don't stop scrolling, the source isn't scrolling anyway (gtk_text_view_drag_drop): stop scrolling here though, and set the mark invisible * gtk/gtkdnd.c (gtk_drag_dest_find_target): export as a public function (gtk_drag_dest_get_target_list): new function (gtk_drag_dest_set_target_list): new function * gtk/gtktreeview.c: Add a bunch of drag-and-drop implementation * gtk/gtktreeprivate.h (struct _GtkTreeViewPrivate): add fields related to drag-and-drop 2001-01-19 Alexander Larsson * gdk/linux-fb/gdkprivate-fb.h: Define EMULATE_GDKFONT. Add extra pango_font stuff to GfkFontPrivate. * gdk/linux-fb/gdkdrawable-fb2.c: * gdk/linux-fb/gdkfont-fb.c: If EMULATE_GDKFONT defined, implement a slow lame GdkFont emulation using PangoFont. 2001-01-17 Havoc Pennington * gtk/gtkprogressbar.c, gtk/gtkprogressbar.h: Add "getters" for all the non-deprecated set_foo functions. Added missing object properties, and added g_object_notify() to setters. Wrote docs. 2001-01-18 Tor Lillqvist * gtk/gtkmain.c * gtk/gtkrc.c: (Win32) Use the new g_win32_get_package_installation_(sub)directory() functions. * config.h.win32.in: New file. * config.h.win32: Removed. * configure.in: Output config.h.win32. * Makefile.am: Add it to EXTRA_DIST. * gtk/gtk.def: Update. Wed Jan 17 16:22:54 2001 Owen Taylor * gtk/gtklabel.c (gtk_label_size_request): Set the attributes onto the PangoLayout even if they are newly created from label->pattern. Tue Jan 9 11:20:48 2001 Owen Taylor * gdk/x11/gdkdnd-x11.c: Remove unused variable. * gtk/gtkdnd.c: Encapsulate storing and retrieving info structures in functions. Fixes bug where gtk_dataset_* was accidentally still being used in one place, causing every dest side event to be treated independently. * gtk/gtkdnd.c: Remove last vestages of handling ::draw (fixes warning) * gtk/gtkentry.[ch]: Add drag and drop support. * gtk/gtkdnd.[ch] gtk/gtktextview.c gtk/gtkentry.c: Add new function gtk_check_drag_threshhold() for checking to check if (dx,dy) has exceeded the threshhold for starting a drag and use it everywhere. Mon Jan 8 11:58:05 2001 Owen Taylor * gtk+-2.0.pc.in gdk-pixbuf-2.0.pc.in (Cflags): Remove -I${includedir}, add -I{includedir}/gtk-2.0. * gtk/gtktreeview.[ch] gtktreemodelsort.[ch] gtknotebook.c gdk/gdk-pixbuf.h: Doc fixups. * gtk/gtkobject.h: Remove trailing , from enum 2001-01-17 Alexander Larsson * gdk/linux-fb/gdkdrawable-fb2.c (gdk_shadow_fb_draw_arc): Doh! Mixed up x and y. * gdk/linux-fb/gdkglobals-fb.c: Removed gdk_fb_pointer_grab_window_events, added _gdk_fb_pointer_grab_owner_events and _gdk_fb_keyboard_grab_owner_events. * gdk/linux-fb/gdkmain-fb.c (gdk_fb_pointer_grab): Set all button mask if GDK_BUTTON_MOTION_MASK set. Send crossing events before grabbing. Set _gdk_fb_pointer_grab_owner_events. (gdk_fb_pointer_ungrab): Unset _gdk_fb_pointer_grab_owner_events Send crossing events after ungrab finished. (gdk_keyboard_grab): Set ..._owner_events (type_masks): Move out of function. (gdk_fb_other_event_window, gdk_fb_pointer_event_window, gdk_fb_keyboard_event_window): New functions, return the window an event should be targeted at. Handles grabs and event propagation. Can return NULL. (gdk_event_make): Remove event_mask checking. Now always returns an event. * gdk/linux-fb/gdkkeyboard-fb.c: * gdk/linux-fb/gdkproperty-fb.c: * gdk/linux-fb/gdkselection-fb.c: Use new event_window/gdk_event_make() behaviour. * gdk/linux-fb/gdkmouse-fb.c: Use new event_window/gdk_event_make() behaviour. Only send motion events if in the same window. If grabbed, use cursor from window if sibling of grabbed window, and cursor from grabbed window otherwise. * gdk/linux-fb/gdkprivate-fb.h: Update gdk_fb_window_send_crossing_events, gdk_event_make and grab varaible declarations. Add gdk_fb_*_event_window(). * gdk/linux-fb/gdkwindow-fb.c: Use new event_window/gdk_event_make() behaviour. Keep correct track of focus window. (gdk_window_set_events): Set all specific button motion masks if GDK_BUTTON_MOTION_MASK set. * gtk/gtkdnd.c (gtk_drag_update): Free info->last_event if gdk_drag_motion returned FALSE. 2001-01-16 Tor Lillqvist * gdk/win32/gdkwindow-win32.c (gdk_window_show, gdk_window_hide): Eliminate redraws when input-only windows are shown or hidden. Thanks to jpe@archaeopteryx.com. Tue Jan 16 13:13:13 GMT 2001 Tony Gale * docs/faq/gtk-faq.sgml: FAQ update: - Update to bugzilla - Add GTK+ and security/SUID/SGID - Add DnD question 2001-01-16 Alexander Larsson * gdk/linux-fb/gdkdnd-fb.c: Some cleanups. 2001-01-15 Havoc Pennington * tests/testtreeview.c: add test stuff for CellRendererToggle * gtk/gtktreemodelsort.c (gtk_tree_model_sort_get_model): add this accessor * gtk/gtkcellrenderertoggle.c: distinguish different event types, only toggle on button press (would do release like GtkButton, but we'd need implicit grab code for treeview cells) 2001-01-16 Tor Lillqvist * gdk/win32/gdkvisual-win32.c: Include for getenv(). * gdk/win32/gdkevents-win32.c (gdk_event_translate): Don't use GDK_COLORMAP_PRIVATE_DATA on a potentially NULL GdkColormap. * gdk/win32/gdkfont-win32.c (gdk_font_load_internal): Adapt calls to g_{locale,filename}_{to,from}_utf8 to match current API. * gtk/makefile.msc.in (gtk_OBJECTS) * gtk/makefile.mingw.in (gtk_OBJECTS): Add gtkwindow-decorate. * gtk/gtk.def: Update. 2001-01-15 Tor Lillqvist * gdk/win32/gdkevents-win32.c (synthesize_crossing_events): New implementaion that more closely mimics the events that an X server would generate. Especially, properly generate GDK_NOTIFY_VIRTUAL and GDK_NOTIFY_NONLINEAR_VIRTUAL crossing events. This makes buttons with nested preview widgets, for instance, more responsive when you move the mouse quickly into them. (find_window_for_pointer_event): Make it actually compile. (gdk_event_translate): Set send_event to the value of InSendMessage (). This doesn't really mean the same as X11's send_event flag, but is close enough, says jpe@archaeopteryx.com 2001-01-15 Alexander Larsson * gdk/linux-fb/gdkdnd-fb.c: Implemented drag and drop. Seems to be mostly working. I sometimes get an assert from gtkdnd.c:2664 when it tries to free and then copy the same event (info->last_event). I am not sure about why this happens, but will continue looking. 2001-01-15 Alexander Larsson * gdk/linux-fb/gdkwindow-fb.c: Use gdk_window_invalidate_rect instead of gdk_window_invalidate_rect_clear to minimise flashing. When hiding windows you need to clear the root window though. 2001-01-15 Alexander Larsson * gdk/linux-fb/gdkdrawable-fb2.c: For optization, add an full_shapes argument to gdk_fb_clip_region. If this is false, only the cliprects of the shapes are used. * gdk/linux-fb/gdkprivate-fb.h: Export gdk_fb_window_peek_shape. Add full_shapes to gdk_fb_clip_region. * gdk/linux-fb/gdkwindow-fb.c (gdk_fb_window_move_resize): When moving a window, don't clear everything under the it, just the root window. Makes stuff faster and flash less. (gdk_window_get_pointer): Correctly handle offseted shapes, due to USE_CHILD_SHAPE. (gdk_fb_window_peek_shape): Return the correct offset of the shape. 2001-01-12 Havoc Pennington * gdk/x11/gdkgeometry-x11.c (gdk_window_scroll): offset the current invalid region, fixes redraw bug while scrolling the text widget * gtk/gtktextview.c, gtk/gtktextview.h: Rearrange the scrolling/validation/etc. code in a major way, so it seems to make sense to me. Probably isn't genuinely that much better, but... * gtk/gtktexttag.c (set_fg_color): fix name of property used for notifies * gtk/gtktextmark.c (gtk_text_mark_get_left_gravity): new function 2001-01-12 Alexander Larsson * gdk/linux-fb/gdkmain-fb.c (gdk_fb_set_rotation): Hide mouse pointer while rotation. Show it afterwards. 2001-01-12 Alexander Larsson * gdk/linux-fb/gdkdrawable-fb2.c (gdk_fb_clip_region): Take shaped windows in consideration when generating clip region. * gdk/linux-fb/gdkfb.h: Huge HACK. Added GDK_FB_USE_CHILD_SHAPE. * gdk/linux-fb/gdkprivate-fb.h: Add shape to GdkWindowFBDatat. exported gdk_fb_window_get_abs_shape(). removed gdk_fb_draw_lines declaration. * gdk/linux-fb/gdkwindow-fb.c (gdk_window_impl_fb_init): Init shape to NULL. (gdk_fb_window_send_crossing_events): Don't send focus changes when there is a grabbed window. (gdk_window_get_pointer): Handle shaped windows. (gdk_fb_region_create_from_bitmap): Convert bitmap to region. (gdk_fb_window_peek_shape): Returns the shape for a window, handles GDK_FB_USE_CHILD_SHAPE. (gdk_fb_window_get_abs_shape): Returns the shape of the window, offseted to absolute positions. Handles GDK_FB_USE_CHILD_SHAPE. (gdk_window_shape_combine_mask): Implement. * gtk/gtkwindow-decorate.c: HACK! Set GDK_FB_USE_CHILD_SHAPE on window->frame to make sure setting the shape of a window makes the window transparent. 2001-01-11 Havoc Pennington * gtk/gtktreemodelsimple.h: Oops, broke some macros 2001-01-10 Havoc Pennington * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_clear_attributes): add this function, bug 40251 * gtk/gtktreemodelsimple.h (GTK_TYPE_TREE_MODEL_SIMPLE): fix name of type macro 2001-01-11 Alexander Larsson * acconfig.h: Added ENABLE_SHADOW_FB * configure.in: Added --disable-shadowfb * gdk/linux-fb/gdkcursor-fb.c: Update shadowfb when updating cursor * gdk/linux-fb/gdkdrawable-fb2.c: Added wrappers for shadowfb that calls the normal drawable methods, but calls gdk_shadow_fb_update(bounding box) when GdkWindows are drawed to. Moved gdk_draw_glyphs implementation to _gdk_draw_glyphs which also returns the bounding box. * gdk/linux-fb/gdkfb.h: Added GdkFBAngle type and gdk_fb_set_rotation declaration. * gdk/linux-fb/gdkgeometry-fb.c: Update shadowfb when scrolling window. * gdk/linux-fb/gdkglobals-fb.c: Add _gdk_fb_screen_angle. * gdk/linux-fb/gdkkeyboard-fb.c: Test code for screen rotation. Shift-F2 in the xlate driver rotates the screen. * gdk/linux-fb/gdkmain-fb.c: Handle shadowfb. Add gdk_fb_set_rotation(). Remove CM and RP. * gdk/linux-fb/gdkmouse-fb.c: Use fb_width/height instead of modeinfo.xres/yres. * gdk/linux-fb/gdkprivate-fb.h: Added fb_men, fb_width, fb_height & fb_stride. When using shadow fb these can differ from the framebuffer stuff. Declarations for gdk_shadow_fb_update, gdk_shadow_fb_init, gdk_shadow_fb_stop_updates, gdk_fb_recompute_all, _gdk_fb_screen_angle. Removed CM, RP. * gdk/linux-fb/gdkrender-fb.c: Added code for shadowfb handling and screen rotation using shadowfb. * gdk/linux-fb/gdkwindow-fb.c: Use fb_mem, fb_stride, fb_width, fb_height. Added recompute_rowstride to reset the rowstride of all windows. Added gdk_fb_recompute_all() which recomputes rootwindow size, window abs positions and window rowstrides. Usefull when the rotation has changed. Thu Jan 11 13:16:50 GMT 2001 Tony Gale * docs/faq/gtk-faq.sgml: update to make web site updating easier 2001-01-10 Havoc Pennington * gtk/gtktreestore.c (gtk_tree_store_insert_before): handle case where sibling == iter (gtk_tree_store_insert_after): handle sibling == iter (gtk_tree_store_prepend): remove stamp checks (gtk_tree_store_insert_before): ditto (gtk_tree_store_append): ditto (gtk_tree_store_get_path): ditto (gtk_tree_store_get_value): ditto (gtk_tree_store_iter_has_child): ditto (gtk_tree_store_iter_n_children): ditto (gtk_tree_store_iter_nth_child): ditto (gtk_tree_store_insert_after): ditto (gtk_tree_store_is_ancestor): ditto (gtk_tree_store_iter_depth): ditto (gtk_tree_store_insert_before): assert that sibling's parent is the same as the passed-in parent (gtk_tree_store_insert_after): assert that sibling's parent is the same as the passed-in parent * gtk/gtktreemodel.c (gtk_tree_model_get_first): new convenience function to get the first iterator in a model * gtk/gtktreestore.c (gtk_tree_store_get_root_iter): remove, conventionally the "root" in this sense is just NULL afaict. * gtk/gtkliststore.c (gtk_list_store_insert_before): handle case where sibling == iter (gtk_list_store_insert_after): handle case where sibling == iter * tests/testtreeview.c (run_automated_tests): fairly lame basic automated tests for ListStore, TreeStore * gtk/gtkliststore.c (gtk_list_store_remove): update tail pointer (gtk_list_store_insert): update tail pointer, and fix it to work (gtk_list_store_insert_before): update tail pointer, and fix it to work (gtk_list_store_append): use tail to be faster (gtk_list_store_prepend): fix it, update tail pointer (gtk_list_store_insert_after): fix it, update tail pointer * gtk/gtkliststore.h (struct _GtkListStore): add tail pointer for the list 2001-01-09 Havoc Pennington * gtk/gtklabel.c (gtk_label_expose): don't draw if label->layout is NULL due to a pending resize * gtk/gtktreeview.c (gtk_tree_view_check_dirty): don't set the column width to values less than 1 * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_width): clamp width to be between min/max width, and still set the width even if autosize is turned on, so the tree view can use this function in order to autosize. (gtk_tree_view_column_init): set initial width to 1 not 0 * gtk/gtktreeview.c (gtk_tree_view_size_request_buttons): use setter function to modify column width, so we get notification (gtk_tree_view_insert_iter_height): ditto (gtk_tree_view_calc_size): ditto (gtk_tree_view_check_dirty): ditto * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_class_init): Add properties to change all the interesting attributes of the tree view column. (gtk_tree_view_column_set_header_clickable): rename set_clickable (gtk_tree_view_column_get_clickable): add (gtk_tree_view_column_set_cell_renderer): don't unset the current attributes; assume a cell renderer with equivalent object properties has been swapped in. Do g_object_notify(). (gtk_tree_view_column_set_visible): g_object_notify (gtk_tree_view_column_get_sizing): rename from get_col_type (gtk_tree_view_column_set_sizing): g_object_notify (gtk_tree_view_column_set_width): add g_object_notify (gtk_tree_view_column_set_min_width): ditto (gtk_tree_view_column_set_max_width): ditto (gtk_tree_view_column_set_title): ditto (gtk_tree_view_column_set_clickable): ditto (gtk_tree_view_column_set_widget): ditto (gtk_tree_view_column_set_justification): ditto 2001-01-09 Havoc Pennington * gtk/gtktreeview.c (gtk_tree_view_check_dirty): handle case where there are no rows in the model * gtk/gtkliststore.c (gtk_list_store_iter_children): if parent is NULL, then return the start of the list * gtk/gtktreeview.c (gtk_tree_view_setup_model): don't build tree if we can't get any rows from an empty model * gtk/gtktreeviewcolumn.h (struct _GtkTreeViewColumn): remove extraneous * after function pointer typedef usage * Makefile.am: don't specify full path to cp and rm * gtk/gtkcellrenderertextpixbuf.c (gtk_cell_renderer_text_pixbuf_get_size): check width/height != NULL before dereferencing, fixes a segfault that happened from time to time * gtk/gtkcellrendererpixbuf.c (gtk_cell_renderer_pixbuf_render): use gdk_pixbuf_render_to_drawable_alpha() to get alpha channel, and reindent the function (gtk_cell_renderer_pixbuf_get_size): indentation * gtk/gtkdialog.c (gtk_dialog_run): destroy main loop only after we quit it (gtk_dialog_add_buttons_valist): add g_return_if_fail (gtk_dialog_set_default_response): New function, to set default button (gtk_dialog_set_response_sensitive): New function, to set sensitivity of buttons * gtk/gtkcellrendererpixbuf.c (gtk_cell_renderer_pixbuf_get_property): allow getting a NULL pixbuf (gtk_cell_renderer_pixbuf_set_property): allow setting a NULL pixbuf * gtk/gtktreedatalist.c (_gtk_tree_data_list_node_to_value): handle any G_TYPE_OBJECT subclass, not just the base class, and also boxed types. (_gtk_tree_data_list_value_to_node): ditto * gtk/gtkrbtree.c: Run _gtk_rbtree_test at strategic points if --gtk-debug=tree * gtk/gtkmain.c: add GTK_DEBUG_TREE * gtk/gtkdebug.h: add GTK_DEBUG_TREE 2001-01-09 Tor Lillqvist * gdk/win32/gdkevents-win32.c: Implement better mouse capturing. Do use SetCapture(). Thanks to jpe@archaeopteryx.com. (find_window_for_pointer_event): New function. (gdk_event_translate): Use it when handling mouse events. 2001-01-09 Alexander Larsson * configure.in: Added --with-included-loaders option * gdk-pixbuf/Makefile.am: * gdk-pixbuf/gdk-pixbuf-io.c: Add support for including selected gdk-pixbuf loaders only. * gtk/gtkwindow.c (gtk_window_set_frame_dimensions, gtk_window_set_has_frame): Added inline documentation. * gdk/x11/gdkwindow-x11.c (gdk_window_get_decorations): * docs/reference/gdk/tmpl/windows.sgml: Added inline documentation. Mon Jan 8 14:42:06 2001 Jonathan Blandford * gtk/gtktreeview.c (gtk_tree_view_realize_buttons): Skip realizing buttons that have already been realized. Mon Jan 8 14:06:29 2001 Jonathan Blandford * tests/testtreeview.c (main): Show menu items before adding to option menu. * gtk/gtktreeview.c (gtk_tree_view_set_model): Keep the columns around if we kill them. * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_cell_data): Return if we pass in a NULL model. 2001-01-08 Havoc Pennington * tests/testtreeview.c: hack on this some * gtk/gtktreestore.c (gtk_tree_store_setv): rename gtk_tree_store_set_valist, v is for arrays, valist for varargs list (gtk_tree_store_getv): rename gtk_tree_store_get_valist * gtk/gtkliststore.h: Add varargs set() and get() convenience functions 2001-01-08 Alexander Larsson * gtk/gtkwindow-decorate.[hc]: * gtk/Makefile.am: New files. Contains an implementation of a minimal WM for linux-fb. * gtk/gtkwindow.h: Add the possibility for GtkWindows to specify a frame. This is used for the window decoration code, but could concievably be used for X programs too (xmms style windows). GtkWindow->frame is the toplevel window if the window is framed. The signal frame_event gets all events that are targeted to GtkWindow->frame. (_gtk_window_constrain_size): Exported for usage by gtkwindow-decorate.c. * gtk/gtkwindow.c: Implement gtk_window_set_has_frame and gtk_window_set_frame_dimensions. Call out to gtkwindow-decorate.c for WM support in linx-fb. 2001-01-08 Alexander Larsson * docs/README.linux-fb: Correct filename ~/.pangoft2_aliases * gdk/gdkwindow.h: Added new function gdk_window_get_decorations. * gdk/linux-fb/gdkfb.h: Removed _gdk_window_get_decorations declaration. Renamed _gdk_window_set_child_handler to gdk_fb_window_set_child_handler. * gdk/linux-fb/gdkwindow-fb.c: Renamed _gdk_window_set_child_handler to gdk_fb_window_set_child_handler. * gdk/x11/gdkwindow-x11.c: New function gdk_window_get_mwm_hints(). Implemented gdk_window_get_decorations. * docs/reference/gdk/tmpl/windows.sgml: * docs/reference/gdk/gdk-sections.txt: Added gdk_window_get_decorations docs. 2001-01-08 Alexander Larsson * gdk/linux-fb/gdkwindow-fb.c (_gdk_fb_window_find_focus, gdk_fb_window_find_focus, gdk_fb_send_focus_change, gdk_fb_window_send_crossing_events): Possibly send focus events when the mouse moves from one window to another. 2001-01-07 Tor Lillqvist * gdk/win32/gdkwindow-win32.c (gdk_window_set_title, gdk_window_new): Adapt calls to g_{locale,filename}_{to,from}_utf8 to match current API. * gdk/win32/gdkvisual-win32.c (gdk_visual_init): If a secret environment variable is set, don't call g_error when on a palettized (PseudoColor) display. Some people want to use GTK+ in 256-colour mode even though works only partially. * gdk/gdk.def * gtk/gtk.def * gtk/makefile.mingw.in: Update. 2001-01-05 Havoc Pennington * tests/testtreeview.c: hack on this a bit * gtk/gtktextlayout.c (gtk_text_layout_class_init): s/GTK_RUN_LAST/G_SIGNAL_RUN_LAST * gtk/gtktreemodelsimple.h (GTK_IS_TREE_MODEL_SIMPLE_CLASS): was spelled incorrectly (GTK_IS_TREE_MODEL_SIMPLE): ditto * gtk/gtktreeview.c (gtk_tree_view_set_headers_clickable): rename from gtk_tree_view_set_headers_active * gtk/gtktexttag.c: (gtk_text_tag_get_property): handle PROP_DIRECTION (gtk_text_tag_set_property): g_object_notify when we toggle the _set properties, bug 40235 * gtk/gtktextiter.c (gtk_text_iter_forward_to_delimiters): rename forward_to_line_end Fri Jan 5 16:16:29 2001 Owen Taylor * gtk/{gtkcalender.c,gtkfilesel.c,gtkimcontext.c}, modules/input/gtkimcontextxim.c: Adapt to new prototypes for unicode,locale,filename conversion functions. 2001-01-05 Havoc Pennington * gtk/gtktextiter.c (gtk_text_iter_ends_line): this function was broken if called on the first position in the buffer. * gtk/gtktextlayout.c (line_display_index_to_iter): fix forward_to_delimiters to be called only if we aren't already at the delimiters. 2001-01-05 Havoc Pennington * demos/gtk-demo/main.c (create_tree): Oops, that didn't link. Fix. 2001-01-05 Alexander Larsson * gdk/linux-fb/gdkdrawable-fb2.c (gdk_fb_drawable_finalize): free colormap in here. Sync from X port. (gdk_fb_set_colormap): allow the colormap to be NULL if you like. Sync from X port. (gdk_fb_clip_region): Comment out g_warning about empty clip region. This happens now and then, and i don't think it is a bug. (gdk_fb_draw_polygon): Correctly add extra point if startpoint != endpoint. (gdk_fb_draw_lines): Don't draw dashed lines if line_style is GDK_LINE_SOLID. * gdk/linux-fb/gdkfont-fb.c: Return bogus GdkFont that has some of the fields filled in at least. * gdk/linux-fb/miwideline.c: The widths argument to miLineArcI, and miLineArcD is no more, remove it from the function definition. 2001-01-04 Havoc Pennington * gtk/gtktreeselection.c (gtk_tree_selection_get_tree_view): add this * gtk/gtktreemodel.h (struct _GtkTreeIter): rename fields to user_data instead of tree_node * gtk/gtktreeprivate.h (TREE_VIEW_COLUMN_WIDTH): rename from TREE_VIEW_COLUMN_SIZE * gtk/gtktreeviewcolumn.h (struct _GtkTreeViewColumn): rename "size" field to "width" finishes bug 40061 * gtk/gtkcellrenderer.h: Use GtkCellRendererState instead of guint for bitfields, bug 40268 2001-01-04 Havoc Pennington Rename some stuff: s/gtk_tree_view_column_set_size/gtk_tree_view_column_set_width/g; s/GtkModelSimple/GtkTreeModelSimple/g; s/GTK_MODEL_SIMPLE/GTK_TREE_MODEL_SIMPLE/g; s/gtk_model_simple/gtk_tree_model_simple/g; s/gtkmodelsimple/gtktreemodelsimple/g; s/gtk_tree_view_column_set_header_active/gtk_tree_view_column_set_header_clickable/g; s/GtkTreeViewColumnType/GtkTreeViewColumnSizing/g; s/column_set_col_type/column_set_sizing/g; s/GtkTreeSelectionType/GtkTreeSelectionMode/g; s/gtk_tree_selection_set_type/gtk_tree_selection_set_mode/g; s/GtkCellRendererType/GtkCellRendererState/g; * gtk/gtkcellrenderertoggle.c: remove _ macro, include gtkintl.h (gtk_cell_renderer_toggle_class_init): change "state" property to "active", to match GtkToggleButton (gtk_cell_renderer_toggle_get_active): new function, bug 40269 (gtk_cell_renderer_toggle_set_active): new function (gtk_cell_renderer_toggle_set_property): route changes to toggle state through gtk_cell_renderer_set_active Thu Jan 4 15:46:18 2001 Jonathan Blandford * gtk/gtkmodelsimple.c: Changed a bunch of boxed types to pointers temporarily until they work again. Brought up to date with changes in the model. * gtk/gtkmodelsimple.h: Brought up to date with changes in the model. 2001-01-04 Havoc Pennington * gtk/gtktextlayout.c (line_display_index_to_iter): if index is equal to the line length, then position iterator before paragraph separators. Fixes crash reported by Mikael Hermansson when pressing left arrow from the start of a line. * gtk/gtktextiter.c (iter_set_from_byte_offset): Add g_error about byte indexes off the end (iter_set_from_char_offset): add g_error about char offsets off the end 2001-01-03 Havoc Pennington * gtk/gtktextbtree.c: Adapt to uscore-ification of gtktextiterprivate * gtk/gtktextdisplay.c (gtk_text_layout_draw): remove use of private functions; remove inclusion of private headers. * gtk/gtktextlayout.c (gtk_text_layout_get_iter_at_line): Add this function, so we don't need private functions in gtktextdisplay.c * gtk/gtktextiterprivate.h: underscore-ification * gtk/gtkwidget.c: Clean up a bunch of docs that said "INTERNAL" to instead say "only useful to implement widgets" * gtk/gtkenums.h (GtkMovementStep): Rename GTK_MOVEMENT_CHARS, GTK_MOVEMENT_POSITIONS to GTK_MOVEMENT_LOGICAL_POSITIONS, GTK_MOVEMENT_VISUAL_POSITIONS. Resolves bug 40249. * gdk/x11/gdkwindow-x11.c (gdk_window_impl_x11_set_colormap): This function was completely broken * gtk/testtext.c (line_numbers_expose): use gtk_paint_layout * gtk/gtkvscale.c (gtk_vscale_draw_value): use gtk_paint_layout * gtk/gtkvruler.c (gtk_vruler_draw_ticks): use gtk_paint_layout * gtk/gtklabel.c (gtk_label_expose): use gtk_paint_layout * gtk/gtkhscale.c (gtk_hscale_draw_value): use gtk_paint_layout * gtk/gtkhruler.c (gtk_hruler_draw_ticks): use gtk_paint_layout * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_render): use gtk_paint_layout * gtk/gtkaccellabel.c (gtk_accel_label_expose_event): use gtk_paint_layout * gtk/gtkstyle.h: Add draw/paint expander to draw tree expanders. Progress on bug 40103. Add draw_layout to draw a PangoLayout. (struct _GtkStyleClass): Remove draw_cross, draw_oval, draw_ramp, which were not implemented. * gtk/gtktextbuffer.h (struct _GtkTextBufferClass): Add insert_pixbuf signal. Rename delete_text to delete_range since it also deletes pixbufs and child anchors. This almost closes bug 40245 (still need to deal with child anchors) * gtk/gtktextbuffer.c (gtk_text_buffer_class_init): Add insert_pixbuf, change signal names as appropriate, change types of signals taking marks/tags to have the specific type, not just G_TYPE_OBJECT * gtk/gtkmain.c (gtk_get_current_event_state): Add this function; closes bug 40051 * gtk/gtkoptionmenu.c (gtk_option_menu_set_history): clean up unnecessary remove_contents() call (gtk_option_menu_class_init): add a "changed" signal, closes bug 40039 (gtk_option_menu_update_contents): emit "changed" if the active menu item changes * gtk/gdk-pixbuf-loader.c (gdk_pixbuf_loader_frame_done): fix bad cast to GtkObject, reported by Jonas Borgstrom (gdk_pixbuf_loader_finalize): don't close the loader on finalize; we can't do stuff with side effects in finalize. Instead, spew a warning if the loader isn't closed. * gdk/x11/gdkdrawable-x11.c (gdk_drawable_impl_x11_finalize): free colormap in here, non-X ports probably need to sync to this change * gdk/x11/gdkdrawable-x11.c (gdk_x11_set_colormap): remove assertion that colormap != NULL, you can set the colormap to NULL if you like. * Makefile.am: remove gtk-config-2.0 * configure.in: Use pkg-config to locate GLib. Remove separated-out GMODULE_LIBS, GMODULE_CFLAGS; these were not used, and the gmodule libs/cflags were in GLIB_LIBS GLIB_CFLAGS anyhow. Use pkg-config to locate Pango. Output correct Pango libs to gdk-2.0.pc.in. Fix test for FREETYPE_CONFIG (typo fix). * Makefile.am (pkgconfig_DATA): install only target-specific pc files (install-data-local): symlink gtk+-2.0.pc and gdk-2.0.pc to the X11 pc files * gtk+-2.0.pc.in (Requires): require the GDK for the current target unref from here 2001-01-03 Alexander Larsson * configure.in: Change GTK_NO_CHECK_CASTS to G_DISABLE_CAST_CHECKS. Tue Jan 2 16:23:05 2001 Owen Taylor * gtk/gtktextlayout.c (gtk_text_layout_move_iter_to_previous_line): Fix unitialized variable when moving back onto a single line. 2001-01-01 Havoc Pennington * gtk/Makefile.am (LDFLAGS): add @LIBTOOL_EXPORT_OPTIONS@ * gdk/Makefile.am (LDFLAGS): add @LIBTOOL_EXPORT_OPTIONS@ * configure.in (LIBTOOL_EXPORT_OPTIONS): define LIBTOOL_EXPORT_OPTIONS with options to control symbol export 2001-01-01 Havoc Pennington * gtk/gtktexttagprivate.h: uscore-prepend all the stuff in here. * gtk/gtk-boxed.defs (GtkTextAttributes): Add boxed type for GtkTextAttributes * gtk/gtktexttag.c: Fix up GtkTextAttributes copying to close bug #40246 (gtk_text_attributes_copy_values): rename from gtk_text_attributes_copy (gtk_text_attributes_copy): a more standard GTK copy function, which returns a new object 2001-01-01 Havoc Pennington * gtk/gtktreeview.c: Adapt to GtkTreeSelection changes * gtk/gtktreeselection.c (_gtk_tree_selection_set_tree_view): don't fill in tree_view->priv->selection, kind of an unexpected side effect * gtk/gtkcellrenderertext.c: Remove definition of _ and include gtkintl.h * gtk/gtkcellrenderer.c: Remove definition of _ and include gtkintl.h (gtk_cell_renderer_get_property): remove calls to g_value_init * gtk/gtkcellrendererpixbuf.c: Remove definition of _ and include gtkintl.h * gtk/gtkcellrenderertextpixbuf.c: Remove definition of _ macro and include gtkintl.h (gtk_cell_renderer_text_pixbuf_class_init): remove spaces from property names * gtk/gtktreeselection.c (_gtk_tree_selection_new): rename, return GtkTreeSelection (_gtk_tree_selection_new_from_with_view): rename, return GtkTreeSelection (_gtk_tree_selection_set_tree_view): rename with uscore (gtk_tree_selection_get_selected): fill in the "model" out param first, so it gets filled in even if we return at the top of the function (gtk_tree_selection_real_select_all): add a comment and an else{} to clarify this a bit (gtk_tree_selection_real_unselect_all): add the same else{} * gtk/gtktreeselection.h: Rename new, new_with_tree_view, and set_tree_view to have underscore prefixes, move them to the private header, fix return type of new_with_tree_view (struct _GtkTreeSelection): mark struct fields private * gtk/gtktreemodel.c (gtk_tree_model_get_flags): return GtkTreeModelFlags, not a guint (gtk_tree_path_prev): return gboolean not gint (gtk_tree_path_up): return gboolean not gint * gtk/gtktreemodel.h (struct _GtkTreeModelIface): make get_flags return GtkTreeModelFlags, not a guint * gtk/gtktreemodelsort.c (gtk_tree_model_sort_finalize): check that child model is non-null before unrefing it (g_value_int_compare_func): make this a qsort compare func, not a boolean predicate * gtk/gtktreemodelsort.h: rename gtk_tree_model_set_sort_column, (add -umn to the end), and mark it unimplemented (gtk_tree_model_sort_resort): remove, this wasn't implemented, and I don't see what it's for - doesn't the model always sort itself? (gtk_tree_model_sort_set_compare): this had the wrong signature * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_set_attributes): Fix the docs to say that it destructively replaces existing attributes (previously said that it added attributes). (gtk_tree_view_column_set_visible): canonicalize bool before equality testing. Also, check for realization before hiding/showing the tree_column->window; if this window could exist before realization, then it's busted and needs fixing, we can't create GDK resources pre-realization. Also, remove superfluous queue_resize(), since set_size() does that for us. (gtk_tree_view_column_set_col_type): check realization before using tree_column->window * gtk/gtktreedatalist.c: fix filename in copyright notice 2000-12-31 Havoc Pennington * gtk/gtktextview.c: Rearrange all the scroll-while-dragging-or-selecting code to be different, not necessarily better. ;-) (gtk_text_view_scroll_to_mark): Change this function to take within_margin as a fraction instead of a pixel value, and to take alignment arguments (indicating where to align the mark inside the visible area) * gtk/testtextbuffer.c (fill_buffer): fix bad cast of GtkTextTag to GtkObject * gtk/gtktextiter.c (gtk_text_iter_set_line_offset): change behavior so that offsets past the end of the line are not allowed, and an offset equal to the line length moves the iterator to the next line (gtk_text_iter_set_line_index): make parallel change (gtk_text_iter_get_bytes_in_line): add this function * gtk/gtktextbtree.c (_gtk_text_line_byte_locate): change handling of byte indexes off the end of the line; byte index at the end of the line now returns FALSE and doesn't fill in the requested values, byte index past the end of the line is an error. Also, don't allow -1 offset anymore, since its meaning is unclear. This change exposes some bug in visual cursor motion, where we end up with a huge invalid byte index; needs fixing. Symptom of bug is a crash when you hit up arrow. (_gtk_text_line_char_locate): match the change to byte_locate * gtk/gtktextiter.c (find_by_log_attrs): Handle iteration backward from start of line properly. fixes bug reported by Mikael Hermansson where backspace would delete all text before the cursor. 2000-12-30 Tor Lillqvist * gdk/win32/gdkwindow-win32.c (gdk_window_impl_win32_get_visible_region): New function, as in the X11 backend. (gdk_window_new, gdk_window_set_title): Use g_locale_from_utf8() instead of duplicating the same code here. * gdk/win32/gdkwin32.h (GDK_COLORMAP_PRIVATE_DATA): Use GDK_COLORMAP macro. * gdk/win32/gdkevents-win32.c (gdk_event_funcs): Use NULL as destroy function. (gdk_event_translate): Use GDK_COLORMAP_PRIVATE_DATA to correctly access that. * gtk/gtk.def: Update. * gtk/makefile.mingw.in: Use glib-genmarshal from $(GLIB)/gobject. 2000-12-30 Havoc Pennington * gdk/x11/gdkwindow-x11.c (gdk_window_new): Set the system colormap on input only windows, to avoid special cases all over the code for these windows. 2000-12-26 Tor Lillqvist * gdk/win32/gdkvisual-win32.c (gdk_visual_init): Call g_error if we are on a palettized display ("PseudoColor" in X11), as the code for that doesn't work anyway, and never has. 2000-12-22 Alexander Larsson * gdk/linux-fb/gdkkeyboard-fb.c (xlate_io): Don't use isprint() for chars > 255. 2000-12-21 Havoc Pennington * tests/testtreeview.c: more work 2000-12-21 Alexander Larsson * docs/README.linux-fb: Update the docs to the new pangoft2 way. 2000-12-21 Alexander Larsson * configure.in: For linux-fb get the pangoft2 cflags and libs. This needs a recent pango version. Remove modules/linux-fb/Makefile. * gdk/linux-fb/gdkdrawable-fb2.c: Render glyphs using freetype. * gdk/linux-fb/gdkfb.h: Add new fb-specific functions needed for managing windows. * gdk/linux-fb/gdkmain-fb.c: Remove gdk_font_init/fini() calls. * gdk/linux-fb/gdkpango-fb.c: Remove old implementation. Use pangoft2 instead. * gdk/linux-fb/gdkprivate-fb.h: Remove PangoFBFont and related stuff. * gdk/linux-fb/gdkwindow-fb.c: Implement drawable->get_visible_region. Implement support for _gdk_window_set_child_handler () and _gdk_window_get_decorations(). * modules/Makefile.am: Remove linux-fb subdir. * modules/linux-fb/*: Removed all. 2000-12-20 Jonathan Blandford * gtk/gtkcellrenderer*.c (::get_property): remove g_value_init calls, as they are no longer needed. * gtk/gtktreemodelsort.c: Fix up the comparison code. * gtk/gtktreemodel.h: Start work on ::reordered signal. Need to figure out how to emit a signal on an interface. 2000-12-20 Havoc Pennington * tests: new directory to contain tests, gtk/test* should move here sometime (with appropriate on-cvs-server hackery) * tests/testtreeview.c, tests/Makefile.am: a test * configure.in (AC_OUTPUT): add tests/Makefile * gtk/gtktexttag.c (gtk_text_tag_get_property): Add "invisible" and "invisible_set" which were missing * gtk/gtkrbtree.h: some cheesy indentation fix 2000-12-20 Alexander Larsson * gtk/gtkinvisible.c (gtk_invisible_realize): Attach the style to the window so that the style it is not leaked when unrealizing the window. 2000-12-18 Havoc Pennington * gtk/gtktextview.c (gtk_text_view_delete_from_cursor): do begin/end user action where appropriate (gtk_text_view_commit_handler): add begin/end user action * gtk/gtktextbuffer.c: add begin/end user action signals, and bracket interactive operations with begin/end user action pair. * gtk/gtktextbuffer.h (struct _GtkTextBufferClass): remove "interactive" arg from insert_text and delete_text signals. Add begin_user_action, end_user_action signals (gtk_text_buffer_begin_user_action): (gtk_text_buffer_end_user_action): New functions to delimit a user-visible action * gtk/gtkmarshal.list: update to reflect changes to gtktextbuffer signals. 2000-12-18 Havoc Pennington * gdk/gdkevents.c (gdk_event_get_state): wow, that implementation was pretty non-working. * gtk/testtext.c (fill_file_buffer): make this a bit more robust by passing the length to g_utf8_validate(). 2000-12-16 Havoc Pennington * gtk/gdk-pixbuf-loader.h, gtk/gdk-pixbuf-loader.c: Port to GObject, can go back in gdk-pixbuf after setting up a gdk-pixbuf-marshal.h header over there. * gtk/gtktreeview.c: s/SEPERATOR/SEPARATOR/g; (gtk_tree_view_class_init): specify GTK_TYPE_ADJUSTMENT for signal args (gtk_tree_view_init): don't unset GTK_NO_WINDOW, it shouldn't be set (gtk_tree_view_realize_buttons): don't gtk_widget_show() buttons here, do it when we create the buttons later (gtk_tree_view_realize_buttons): add some g_return_if_fail (gtk_tree_view_map): paranoia checks that column->button is shown and unmapped (gtk_tree_view_size_request): only request visible children. Move header size calculation in here, for cleanliness, and to maintain invariants for child widgets if we eventually let users set different children inside the buttons (gtk_tree_view_map_buttons): factor out code to map buttons, since it was being called several times (gtk_tree_view_size_allocate_buttons): move_resize the drag windows instead of just moving them; their height may change if we allow random widgets in there, or the theme changes. (gtk_tree_view_size_allocate): move button size allocation above emitting the scroll signals, to ensure a sane state when we hit user code (gtk_tree_view_button_release): remove queue_resize after tree_view_set_size(), set_size() will handle any resize queuing that's needed (gtk_tree_view_focus_in): just queue a draw, don't fool with draw_focus goo (gtk_tree_view_focus): use gtk_get_current_event() and gdk_event_get_state() (gtk_tree_view_deleted): don't queue_resize() after calling set_size() (gtk_tree_view_build_tree): fix a "if (foo); {}" bug - i.e. remove semicolon (gtk_tree_view_create_button): show the button here (gtk_tree_view_button_clicked): actually emit the clicked signal on the column (_gtk_tree_view_set_size): return right away if the size is unchanged, as a cheesy optimization (gtk_tree_view_setup_model): rename set_model_realized to setup_model to match the flag that indicates whether we've called it (gtk_tree_view_get_hadjustment): create adjustment if it doesn't exist, because set_scroll_adjustment does that and it shouldn't matter what order you call these in (gtk_tree_view_get_vadjustment): ditto (gtk_tree_view_set_headers_visible): canonicalize the bool, for paranoia (gtk_tree_view_set_headers_visible): call gtk_tree_view_map_buttons() instead of using cut-and-paste code (gtk_tree_view_append_column): clarify whether the return value is the count of columns before or after, and do the increment separately from the return statement so you can tell from the code. (gtk_tree_view_remove_column): ditto (gtk_tree_view_insert_column): ditto (gtk_tree_view_get_column): remove g_return_if_fail for columns outside the existing range, the docs say that outside-range columns are allowed, so we handle them as documented. (Presumably this allows a nice loop with column != NULL as test.) (gtk_tree_view_move_to): document what 0.0, 0.5, 1.0 alignments mean (left/right/center etc.). (gtk_tree_view_collapse_all): only queue a draw if we're mapped (gtk_tree_view_expand_row): add docs (gtk_tree_view_collapse_row): add docs * gtk/gtktreeviewcolumn.c (gtk_tree_view_column_clicked): new function to emit the clicked signal on a column * gdk/gdkevents.c (gdk_event_get_state): new function, to get the state of an event (gdk_event_get_time): don't treat GDK_SCROLL as a button event, remove default case from switch so gcc will whine if we don't explicitly handle all event types * gtk/gtktreeselection.h: added some FIXME * gtk/gtktreeprivate.h (struct _GtkTreeViewPrivate): rename "columns" to "n_columns" and "column" to "columns" for clarity 2000-12-16 Havoc Pennington * gtk/gtktextiter.c: General cleanup of the log attr iteration stuff. This should make e.g. the delete key work again in the text widget... (gtk_text_iter_forward_cursor_positions): handle negative count (gtk_text_iter_backward_cursor_positions): handle negative count (gtk_text_iter_forward_word_ends): handle negative count (gtk_text_iter_backward_word_starts): handle negative count * gtk/gtktextlayout.h, gtk/gtktextlayout.c, gtk/gtktexttag.h, gtk/gtktexttag.c, gtk/gtktexttagtable.h, gtk/gtktexttagtable.c, gtk/gtktextbuffer.h, gtk/gtktextbuffer.c: Convert everything to GObject. No doubt will cause breakage. * demos/gtk-demo/textview.c: remove hacks around non-GObject-ification of the text objects * demos/gtk-demo/main.c (main): use g_object_set() to manipulate the text tag 2000-12-14 Havoc Pennington * configure.in: only AC_DEFINE(HAVE_XFT) if we actually determined that we have Xrender Thu Dec 14 20:22:31 2000 Owen Taylor * gdk/{gdkdrawable.[ch],gdkpixmap.c,gdkwindow.c,x11/gdkwindow.c}: Add two virtualized functions gdk_drawable_get_clip_region - to get the clip region when drawing. * gdk/gdkwindow.c (gdk_window_invalidate_rect): Rewrite to simple use invalidate_region. * gdk/gdkwindow.c (gdk_window_invalidate_region): Clip to visible region. * acconfig.h configure.in: Check for Xft. For now, assume that if Xft is found, Pango was compiled with Xft support as well. * gdk/gdkcolor.h gdk/x11/gdkcolor-x11.c: Add gdk_colormap_query_color(). * gdk/x11/gdkdrawable-x11.c (gdk_x11_draw_glyphs): Draw with Xft if appropriate. * gdk/x11/gdkpango-x11.c (gdk_pango_context_get): Create a pangoxft context if we have XFT and the environment variable GD_USE_XFT is set. * gdk/x11/gdkx.h (struct _GdkGCX11): Cache the fg_pixel and also possibly an XftDraw structure. * gtk/gtkfontsel.c: Handle the case where the font from the style doesn't match any of the fonts a bit better. * gtk/testgtk.c: Add tabs between directional segments for hebrew/arabic test. (Not really necessary, just a little prettier.) 2000-12-14 Havoc Pennington * gtk/testtext.c (fill_file_buffer): fix unicode validation when reading a file 2000-12-14 Havoc Pennington * gtk/gtktextbtree.c (_gtk_text_btree_validate_line): remove unused call to get_last_line() * gtk/gtkobject.c (gtk_object_add_arg_type): add G_TYPE_POINTER here until boxed is working (and maybe after that - we should really not gratuitously break old code) * gtk/gtktexttag.c (gtk_text_tag_class_init): add commented-out specific types for font_desc and tabs args, move them to GTK_TYPE_POINTER for now, waiting on g_param_spec_boxed() to get fixed. Move GdkColor args to GTK_TYPE_POINTER also. * gtk/gtktextbuffer.c (gtk_text_buffer_class_init): temporarily use GTK_TYPE_POINTER for signal signatures as a hack-around * gtk/gtk-boxed.defs: Add boxed types for PangoFontDescription and PangoTabArray * gtk/gtktextlayout.c (line_display_iter_to_index): make static (line_display_index_to_iter): make static * gtk/gtktextbuffer.c (gtk_text_buffer_class_init): fix marshaller to marshal a string not a boxed * gtk/gtkmarshal.list: add marshaller for GtkTextBuffer:insert_text * gtk/testtext.c (fill_file_buffer): don't use g_utf8_next_char since the UTF-8 isn't validated yet * gtk/gtktextsegment.c (char_segment_check_func): don't require lines to end in '\n' * gtk/gtktextview.c (gtk_text_view_move_cursor): update to use forward_to_delimiters, and grapheme boundaries (gtk_text_view_delete_from_cursor): properly handle non-newline delimiters, and grapheme boundaries * gtk/gtktextiter.c (gtk_text_iter_forward_to_newline): rename to gtk_text_iter_forward_to_delimiters, and make it work properly if empty lines end with a character other than '\n' * gtk/gtktextiter.h, gtk/gtktextiter.c: Add movement by cursor position 2000-12-15 Tor Lillqvist * gdk/makefile.{mingw.in,msc} (gdk_OBJECTS): Add gdkkeys. * gtk/gtk.def * gdk/gdk.def: Update. * gdk/win32/gdkmain-win32.c * gdk/win32/gdkkeys-win32.c: New file. Move some functions from gdkmain-win32.c here. * gdk/win32/makefile.mingw.in (all): No need to make gdk-win32res.o here, the makefile one step up will call us to make it. * gdk/win32/makefile.{mingw.in,msc} (gdk_win32_OBJECTS): Add gdkkeys-win32. * gdk/win32/gdkcolor-win32.c: Silence gcc -Wall. * gdk/win32/gdkevents-win32.c (gdk_events_init): Remove leftover call to g_source_add(). * gdk/win32/gdkgc-win32.c (BitmapToRegion): Plug memory leak. Thanks to Andreas Kemnade. 2000-12-13 Havoc Pennington * gtk/gtktextbtree.h: Remove double _ in front of some functions * gtk/gtktext*.[hc]: update accordingly 2000-12-13 Havoc Pennington * gtk/gtktextbtree.h: Put _ in front of every function in this header file * gtk/gtktext*.[hc]: update to reflect renamed btree functions 2000-12-13 Alex Larsson * gdk/linux-fb/gdkmouse-fb.c (mouse_devs): Add support for ps2 intellimouse. * gdkkeyboard-fb.c: Move shift-F1 repaint handling to xlate handler only. * docs/README.linux-fb: Add imps2 to docs. Document the new refresh keys. Tue Dec 12 23:46:44 2000 Tim Janik * gtk/stock-icons/Makefile.am: doh, this was broken beyond believe. * gtk/gtkbox.c: change property types from (u)long to (u)int for ::position and ::padding. * gtk/gtkcontainer.c: make ::border_width an INT property. * gtk/gtkpacker.c: make ::position an INT property. * gtk/gtkscrolledwindow.c (gtk_scrolled_window_adjustment_changed): guard against NULL h/v scrollbars, since this is used at construction time. * gtk/gtkclist.[hc]: nuked gtk_clist_construct(), implemented internal gtk_clist_constructor(). * gtk/gtkctree.[hc]: nuked gtk_ctree_construct(), implemented gtk_ctree_constructor(). * gtk/gtkprogressbar.c (gtk_progress_bar_class_init): property ::pulse_step should use ARG_PULSE_STEP, not ARG_FRACTION. * docs/reference/Makefile.am: fun stuff, disabled docs generation again, gtk-scan.c needs to introspec paramspecs, not GtkAgs. * gtk/gtkwidget.[hc]: removed gtk_widget_setv(), gtk_widget_getv(), gtk_widget_newv() and gtk_widget_get(). (gtk_widget_new): use g_object_new_valist(). (gtk_widget_set): use g_object_set_valist(). * gtk/gtkobject.[hc]: removed gtk_object_arg_get_info(), gtk_object_getv(), gtk_object_query_args(), gtk_object_newv(), gtk_object_class_add_signals(), gtk_object_class_user_signal_new(), gtk_object_class_user_signal_newv(), gtk_object_arg_set(), gtk_object_arg_get(), gtk_object_args_collect(), gtk_object_default_construct(), gtk_object_constructed(), GTK_CONSTRUCTED and GTK_OBJECT_CONSTRUCTED(). removed nsignals, signals and n_args members from GtkObjectClass. (gtk_object_new): use g_object_new_valist(). (gtk_object_set): use g_object_set_valist(). (gtk_object_get): use g_object_get_valist(). * gtk/gtkcompat.h: define gtk_object_default_construct(). * gtk/gtktypeutils.c (gtk_type_new): create constructed objects via g_object_new(). * gtk/*.c: removed gtk_object_class_add_signals() from class_init() fucntions, cleaned up method assignments (make sure your structures are setup properly before calling out). removed all GTK_CONSTRUCTED hacks ;) Tue Dec 12 11:52:16 2000 Owen Taylor * gtk/gtkclist.c (gtk_clist_optimal_column_width): Fix off-by-one error in checks. (Dave Lambert) 2000-12-12 Alexander Larsson * gdk/linux-fb/gdkkeyboard-fb.c (xlate_close, raw_close): Don't free gdk_fb_keyboard twice. Tue Dec 12 08:24:42 2000 Tim Janik * gtk/testgtk.c: (create_tooltips): (create_statusbar): get rid of object_signal:: GtkObject argument uses, use GObject swapped_signal:: properties instead. * gtk/gtkcellrenderertoggle.c: * gtk/gtkcellrenderertextpixbuf.c: * gtk/gtkcellrenderertext.c: * gtk/gtkcellrendererpixbuf.c: * gtk/gtkcellrenderer.c: * gtk/gtktreeviewcolumn.c: s/[sg]et_param/[sg]et_property/, fixed missing warnings for invalid property ids, install properties with g_object_class_install_property() now. * gtk/gtksignal.c: (gtk_signal_emit): let g_signal_emit_valist() collect the values for us. Wed Oct 25 14:17:43 2000 Owen Taylor * gtk/gtkwidget.[ch] (gtk_widget_is_focus): Add a function to determine if a window is the focus widget within its toplevel. * gtk/gtkcontainer.[ch]: Fix the return type of ::focus to be boolean. * gtk/gtkcontainer.c (gtk_container_real_focus): Move handling of the case where the container CAN_FOCUS to here instead of having it in each individual move-the-focus place. * gtk/gtkcontainer.c: Rewrite handling of left-right and up-down focusing to be geometric in a much more obvious sense. Arrowing around is still non-intuitive because it isn't perfect and because entries, etc, grab the arrow keys, but it at least usually will do what you expect now. * gtk/gtknotebook.[ch]: Many cleanups. Moved docs inline in this file. * gtk/gtknotebook.c: Change tabs to be a single item in the focus chain. Make movement of focus on tabs with arrow keys wrap around. * gtk/gtknotebook.c (gtk_notebook_find_child): Add CHECK_FIND_CHILD macro to give informative error messages instead of silent returns. * gtk/gtknotebook.c (gtk_notebook_init): Set the RECEIVES_DEFAULT flag since we handle GdkReturn on the tabs. * gtk/gtknotebook.c (gtk_notebook_expose_tabs): Invalidate windows rather than sending expose events directly. * gtk/gtknotebook.[ch] docs/Changes-2.0.txt: Move structure definition for GtkNotebookPage into .c file, since it is private. * gtk/testgtk.c (create_notebook): Add option for testing borderless notebook. * gtk/testgtk.c (page_switch): Removed egregious poking around in GTK+ internals. * docs/widget-system.txt: Remove references to GTK_REDRAW_PENDING. * gtk/gtkclist.[ch]: Remove key press handler, handle focusing properly through gtk_clist_focus. Make the title headers a single item in the tab-focus chain, and make left-right wrap around. * gtk/gtkwindow.c (gtk_window_focus): Add a custom focus method so that wrapping around works properly. * gtk/gtktreeview.c: Remove calls to gtk_container_set_focus_child() - that is handled for the widget now. Mon Dec 11 11:41:12 2000 Owen Taylor * gtk/gtkinvisible.c (gtk_invisible_init): Flag invisible widgets as TOPLEVEL. * gtk/gtkwidget.c (gtk_widget_queue_resize): Don't assume TOPLEVEL widgets are containers. * gtk/gtkinvisible.h: Remove useless include. 2000-12-11 Havoc Pennington * gtk/gtktextlayout.c (gtk_text_layout_get_line_display): Handle chopping off \r\n and 0x2029 in addition to \n before passing to PangoLayout * gtk/gtkimcontextsimple.c (gtk_im_context_simple_get_preedit_string): return an empty string if no match is pending * gtk/gtkimcontext.c (gtk_im_context_get_preedit_string): add assertion that the returned preedit string was sane * gtk/gtktext*.[hc], gtk/testtext.c, gtk/testtextbuffer.c: s/gtk_text_iter_next_char/gtk_text_iter_forward_char/g; s/gtk_text_iter_prev_char/gtk_text_iter_backward_char/g; Mon Dec 11 10:02:26 2000 Owen Taylor * gtk/gtkimcontextsimple.c (gtk_im_context_simple_finalize): Fix up finalizer to chain to its parent. 2000-12-11 Alexander Larsson * docs/README.linux-fb (GDK_KEYBOARD_TYPE): Clearified the difference between the keyboard types. Wrote a note about the magic sysrq key to get out of raw mode. 2000-12-09 James Henstridge * gdk/linux-fb/gdkmouse-fb.c (GdkFBMouseDevice): add prot struct member to hold masks for detecting the start of a protocol packet. (mouse_devs): add packet start masks for ps2 and ms device types. Left the mask for fidmour blank, as I have no idea what it should be. (handle_mouse_io): skip bytes until we get to the start of a packet. My Logitech mouse seems to be passing an extra NULL pad byte, and GPM does a similar thing here. (gdk_fb_mouse_ms_open): changed error message to not say psaux, as this is the ms mouse driver. (gdk_fb_mouse_ms_packet): fix up button handling, which was completely broken except for button1. It was checking the wrong bit in the packet for the status of the right mouse button, and wrongly assuming right == button2 rather than 3. I fixed that and also added support for middle button (button2). 2000-12-08 Havoc Pennington * gtk/gtktextbtree.c (gtk_text_btree_insert): fix breakage here that cause a segfault on text insertion * gtk/gtktextchild.c (gtk_text_child_anchor_queue_resize): fix warning * gtk/gtktextiter.c (test_log_attrs): use _gtk_text_buffer_get_line_log_attrs to speed things up a bit * gtk/gtktextbuffer.c (_gtk_text_buffer_get_line_log_attrs): Get log attrs for a line, using a cache stored on the buffer * gtk/gtkcolorsel.h (GTK_COLOR_SELECTION_GET_CLASS): fix typo, reported by Jeff Franks 2000-12-08 Alexander Larsson * gdk/linux-fb/gdkmouse-fb.c (gdk_fb_mouse_ms_open): /dev/ttyS0 -> /dev/mouse 2000-12-08 Alexander Larsson * gdk/linux-fb/gdkfont-fb.c (gdk_fontset_load): Added dummy gdk_fontset_load. 2000-12-08 Alexander Larsson * docs/README.linux-fb: * docs/Makefile.am: Initial GtkFB docs. * gdk/linux-fb/Makefile.am: Define GDK_DATA_PREFIX. * gdk/linux-fb/gdkmain-fb.c: Fix typo. Change default display to /dev/fb0. * gdk/linux-fb/gdkpango-fb.c: Add $(prefix)/share/fonts/ to font path. 2000-12-08 Alexander Larsson * gdk/linux-fb/gdkkeyboard-fb.c: New file containing the abstracted keyboard driver. Most code taken from gdkinput-ps2.c * gdk/linux-fb/gdkinput-ps2.c: Removed file. * gdk/linux-fb/Makefile.am: Added gdkkeyboard-fb.c, removed gdkinput-ps2.c. * gdk/linux-fb/gdkcolor-fb.c: display->fb was renamed to display->fb_fd. * gdk/linux-fb/gdkcursor-fb.c: gdk_mouse_get_info -> gdk_fb_mouse_get_info * gdk/linux-fb/gdkinput.c: Moved gdk_input_init here from gdkinput-ps2.c * gdk/linux-fb/gdkmain-fb.c: display->fb was renamed to display->fb_fd. Now the tty and the console is opened here instead of in the keyboard driver. Also check GDK_VT to see what tty to open. Move gdk_beep () here from gdkinput-ps2.c gdk_mouse_get_info -> gdk_fb_mouse_get_info * gdk/linux-fb/gdkmouse-fb.c: Add header. gdk_mouse_get_info -> gdk_fb_mouse_get_info Return correct keyboard modifiers. GDK_MOUSETYPE -> GDK_MOUSE_TYPE for consistancy * gdk/linux-fb/gdkprivate-fb.h: Add tty and vt info to display. Add orignal modeinfo storage to display Update global functions * gdk/linux-fb/gdkwindow-fb.c: Added gdk_fb_window_find_focus(). gdk_mouse_get_info -> gdk_fb_mouse_get_info 2000-12-07 Havoc Pennington * gdk/x11/gdkkeys-x11.c (gdk_keymap_lookup_key): fix name of function, noticed by Alex 2000-12-06 Elliot Lee * configure.in: Detect freetype properly * modules/basic/Makefile.am, gdk/linux-fb/Makefile.am: Make use of above. 2000-12-06 Alexander Larsson * gdk/linux-fb/Makefile.am: Add gdkmouse-fb.c * gdk/linux-fb/gdkmouse-fb.c: New file. Abstracted the mouse drivers a bit. * gdk/linux-fb/gdkcursor-fb.c: The cursor hide/show functions was moved here from gdkinput-ps2.c. * gdk/linux-fb/gdkinput-ps2.c: Removed old mouse handling code. Moved cursor handling code to gdkcursor-fb.c, moved gdk_fb_window_send_crossing_events() to gdkwindow-fb.c. gdk_input_get_mouseinfo was renamed to gdk_mouse_get_info. * gdk/linux-fb/gdkmain-fb.c: Pass NULL pointers for x,y in gdk_mouse_get_info call. * gdk/linux-fb/gdkprivate-fb.h: Removed public gdk_fb_find_common_ancestor, added and renamed functions for the new mouse handling code. * gdk/linux-fb/gdkwindow-fb.c: Moved gdk_fb_window_send_crossing_events here. added global variable gdk_fb_window_containing_pointer. made gdk_fb_find_common_ancestor static. gdk_input_get_mouseinfo was renamed to gdk_mouse_get_info. 2000-12-06 Alexander Larsson * gdk/linux-fb/gdkevents-fb.c: Update to match latest gmain/gsource changes. * gdk/linux-fb/gdkinput-ps2.c: Bogus gdk_keymap_get_entries_for_keycode implementation so that it links. Will be implemented later. 2000-12-03 Havoc Pennington * gdk/Makefile.am: add gdkkeys.[hc] * gdk/gdkkeys.h, gdk/gdkkeys.c: Move all the keyval stuff to these files from gdk.h, gdk.c; add GdkKeymap type and operations on it. * acconfig.h, configure.in: add checks and command line options for XKB * gdk/x11/gdkkeys-x11.c: Implement the above functions * gdk/x11/gdkevents-x11.c (gdk_event_translate): Put the keycode and group in the key event * gdk/gdkevents.h (struct _GdkEventKey): Add a hardware_keycode field with the low-level hardware key code, and a group field with the keyboard group * gdk/x11/gdkprivate-x11.h: include config.h for HAVE_XKB, and declare a couple globals used for keymap handling * gtk/gtkimcontextsimple.c: Implement ISO 14755 input method, hold down Shift-Control and type a hex number to get a Unicode character corresponding to the hex number (gtk_im_context_simple_get_preedit_string): Fix cursor position (return bytes not chars) 2000-12-05 Elliot Lee * gdk/gdkcolor.h: Make GdkColor specify element sizes to avoid waste on 64-bit platforms. Tue Dec 5 15:49:31 2000 Owen Taylor * INSTALL: Fix link to PNG home, remove reference to fribidi. * gdk/x11/gdkevents-x11.c: Fix up for new GMain API. * gdk/win32/gdkevents-win32.c: Fix up for new GMain API. (Not tested.) * gtk/gtkcheckmenuitem.c: Permanently turn on always_show_toggle. * gtk/gtkclist.c (gtk_clist_get_pixtext): Allow mask to be NULL. (Vladimir Klebanov, #26545) * gtk/gtkspinbutton.c (gtk_spin_button_insert_text): Fix some signed/unsigned comparison problems. (#6510, David Kaelbling) * gtk/gtkwidget.[ch] (gtk_widget_is_ancestor): Change return type to boolean (Oskar Liljeblad, #18648) 2000-12-05 Alexander Larsson * gdk/linux-fb/gdkmain-fb.c (gdk_fb_display_new): Remove bogus colormap setting. 2000-12-05 Alexander Larsson * gdk/linux-fb/gdkcolor-fb.c: More complete colormap handling. Now GdkRGB work in 8 bpp modes. * gdk/linux-fb/gdkdrawable-fb2.c (gdk_fb_draw_image): Must set colormap. Tue Dec 5 13:17:53 GMT 2000 Tony Gale * docs/tutorial/gtk-tut.sgml: DND updates 2000-12-05 Alexander Larsson * gdk/linux-fb/gdkdrawable-fb2.c (gdk_fb_draw_drawable_3): Remove old debug g_warning(). (gdk_fb_draw_drawable): The src argument can be either a wrapper or an implementation, just pass the implementation to draw_drawable_2. * gdk/linux-fb/gdkprivate-fb.h: Added GDK_IS_DRAWABLE_IMPL_FBDATA() * gdk/linux-fb/gdkwindow-fb.c (_gdk_windowing_window_destroy): clear and invalidate area when window is destroyed. (send_map_events): Remove old commented out code. 2000-12-05 Alexander Larsson * gdk/linux-fb/gdkpango-fb.c: Use italic instead of oblique in font aliases. * gdk/linux-fb/gdkrender-fb.c (gdk_fb_fill_span_generic, _gdk_fb_gc_calc_state): Support GDK_XOR, add g_warning for other unsupported functions. 2000-12-04 Havoc Pennington * gtk/gtkpaned.c (gtk_paned_expose): fix this to be sane * gtk/gtkvpaned.c (gtk_vpaned_expose): Add an expose handler * gtk/gtkhpaned.c (gtk_hpaned_expose): Add an expose handler * gtk/gtknotebook.c (gtk_notebook_draw_tab): put in a temporary hack to avoid infinite loops (synthetic expose event) - Owen has more appropriate fixes in a branch he'll check in later. * gtk/gtktextiter.c (gtk_text_iter_ends_line): handle paragraph separator, CR, and CRLF as line ends * gtk/gtktextbtree.c (gtk_text_btree_insert): on insertion, break into lines using pango_find_paragraph_boundary(); other bits of the widget are still going to be broken if the boundary isn't '\n' though 2000-12-04 Alexander Larsson * gdk/linux-fb/gdkfont-fb.c (gdk_text_width): Divide size by 2, not multiply. * gdk/linux-fb/gdkpango-fb.c: Copied some 26.6 scaling macros from pango to clean up the rounding. (pango_fb_font_get_glyph_info): Correct sign on x value. * gdk/linux-fb/gdkprivate-fb.h: Removed unreferenced external functions. * modules/linux-fb/Makefile.am: Use ` instead of '. * modules/linux-fb/basic.c: Remove dead code. In particular the dummy lang engine which broke all pango layouts in GtkFB. Don't include tables-big.i anymore. * modules/linux-fb/tables-big.i: Upgrade to latest version from pango. Left for reference, basic_ranges moved to basic.c. 2000-12-04 Havoc Pennington Fix bugs Alex found: * gtk/gtktooltips.c (gtk_tooltips_force_window): nuke connection to "draw" * gtk/gtkdnd.c (gtk_drag_highlight): nuke connection to "draw" * gtk/gtkcolorsel.c (palette_new): nuke connection to "draw" * gtk/gtklistitem.c (gtk_list_item_expose): Put the old _draw() implementation in here, apparently the expose() implementation was dead code. 2000-12-04 Alexander Larsson * gdk/linux-fb/gdkpango-fb.c (pango_fb_font_get_metrics): Return positive descent. 2000-12-02 Havoc Pennington * gtk/gtkwidget.h (struct _GtkWidgetClass): Remove "draw" virtual method and signal * gtk/gtkwidget.c (gtk_widget_draw): Now just queues a draw then calls gdk_window_process_updates() to push the exposes through (gtk_widget_class_init): No more draw signal, no gtk_widget_real_draw() * gtk/gtkbin.c (gtk_bin_draw): remove * gtk/gtkbox.c (gtk_box_draw): remove * gtk/gtkbutton.c (gtk_button_draw): remove * gtk/gtkcalendar.c (gtk_calendar_draw): remove * gtk/gtkcheckbutton.c (gtk_check_button_draw): remove * gtk/gtkcheckmenuitem.c (gtk_check_menu_item_draw): remove * gtk/gtkclist.c (gtk_clist_draw): remove * gtk/gtkentry.c (gtk_entry_draw): remove * gtk/gtkeventbox.c (gtk_event_box_draw): remove * gtk/gtkfixed.c (gtk_fixed_draw): remove * gtk/gtkframe.c (gtk_frame_draw): remove * gtk/gtkhandlebox.c (gtk_handle_box_draw): remove * gtk/gtkhpaned.c (gtk_hpaned_draw): remove * gtk/gtklayout.c (gtk_layout_draw): remove * gtk/gtklist.c (gtk_list_draw): remove * gtk/gtklistitem.c (gtk_list_item_draw): remove * gtk/gtkmenu.c (gtk_menu_draw): remove * gtk/gtkmenubar.c (gtk_menu_bar_draw): remove * gtk/gtkmenuitem.c (gtk_menu_item_draw): remove * gtk/gtknotebook.c (gtk_notebook_draw): remove * gtk/gtkoptionmenu.c (gtk_option_menu_draw): remove * gtk/gtkpacker.c (gtk_packer_draw): remove * gtk/gtkrange.c (gtk_range_draw): remove * gtk/gtkscrolledwindow.c (gtk_scrolled_window_draw): remove * gtk/gtkspinbutton.c (gtk_spin_button_draw): remove * gtk/gtktable.c (gtk_table_draw): remove * gtk/gtktearoffmenuitem.c (gtk_tearoff_menu_item_draw): remove * gtk/gtktext.c (gtk_text_draw): remove * gtk/gtktextview.c (gtk_text_view_draw): remove * gtk/gtktogglebutton.c (gtk_toggle_button_draw): remove * gtk/gtktoolbar.c (gtk_toolbar_draw): remove * gtk/gtktree.c (gtk_tree_draw): remove * gtk/gtktreeitem.c (gtk_tree_item_draw): remove * gtk/gtktreeview.c (gtk_tree_view_draw): remove * gtk/gtkviewport.c (gtk_viewport_draw): remove * gtk/gtkvpaned.c (gtk_vpaned_draw): remove * gtk/gtkvscale.c (gtk_vscale_draw): remove * gtk/gtkwindow.c (gtk_window_draw): remove 2000-20-01 Anders Carlsson * gtk/gtktogglebutton.c (gtk_toggle_button_draw): Fix bug when a GtkToggleButton is both insensitive and active, it was being drawn by the GtkButton draw handler which doesn't check the state. Now it's calling gtk_toggle_button_paint instead. 2000-12-01 Havoc Pennington * gtk/gtktextdisplay.c (gtk_text_layout_draw): don't create dangling pointers to the appearance attributes from the line display * gdk/gdkdraw.c (gdk_drawable_get_image): allow negative width/height to mean "full width/height of drawable" * gtk/gtktextview.h, gtk/gtktextview.c: Implement double/triple click to select word/line * gtk/gtktextiter.c (test_log_attrs): include paragraph delimiters when getting log attrs. Get a slice, so that pixmaps and stuff are properly handled. * gtk/gtktextbuffer.c (paste): Fix pasting to work properly if you paste into the selection (replaces selection now, previously crashed or added to selection). Reveals longstanding btree bug - select multiple lines, middle-click on the selection, boom. This isn't related to my changes though. * gtk/gtkentry.c (gtk_entry_move_forward_word): Update to reflect PangoLogAttrs changes (gtk_entry_move_backward_word): ditto * gtk/gtktextlayout.h, gtk/gtktextlayout.c: Make the iter motion functions return bool whether the iter moved onto a dereferenceable position. * gtk/gtktextview.h, gtk/gtktextview.c: Add a bunch of public functions for motion in terms of display lines. * gtk/gtktextmark.c (gtk_text_mark_get_buffer): Add function to get the buffer a mark is inside 2000-12-01 Alexander Larsson * gdk/linux-fb/Makefile.am: * modules/linux-fb/Makefile.am: Freetype 2 final uses freetype-config * gdk/linux-fb/gdkpango-fb.c: Upgrade to use Freetype 2 final. More flexible support for font aliases, this also fixes a bug with GtkFontSelector, as the aliases must be visible in the font/family list, or GtkFontSelector reads uninitialized memory. 2000-11-30 Hidetoshi Tajima * modules/input/gtkimcontextxim.c (setup_im): Add NULL argument to XGetIMValues to properly terminate variable argument list, and do NULL return check for ic_values and xim_styles. * modules/input/gtkimcontextxim.c (gtk_im_context_xim_reset): Restore preedit state after XmbResetIC(). * modules/input/gtkimcontextxim.c (gtk_im_context_xim_get_ic): XvaCreateNestedList() should take XvaNestedList, but not XvaNestedList*. * modules/input/gtkimcontextxim.c (gtk_im_context_xim_reset, preedit_draw_callback, preedit_caret_callback): Match "preedit-changed" signal name to "preedit_changed" to be consistent to the spec. * gtk/gtkimcontextsimple.c (check_table): Match "preedit-changed" to "preedit_changed" to be consistent to the spec. Thu Nov 30 23:03:04 2000 Owen Taylor * gdk/x11/gdkgc-x11.c (gdk_gc_copy): Properly handle gc->clip_region == NULL> 2000-11-30 Tor Lillqvist Changes by Hans Breuer: * gdk/win32/gdkwindow-win32.c (gdk_window_set_geometry_hints): Dont't use negative width and height as max_hints. This fixes Owen's recent testgtk changes for win32. * gdk/win32/gdkgc-win32.c (gdk_win32_hdc_get, gdk_win32_hdc_release): These are exported and may be called with other drawable types than our GdkDrawableImplWin32 (?). * gdk/gdkwindow.c: Backing store appears to work on Windows now, so always #define USE_BACKING_STORE. * gtk/gtktextdisplay.c (render_layout_line): Use g_print instead of printf for debugging output. * gtk/gtktextlayout.c (allocate_child_widgets): Ditto. * gtk/gtktextview.c (gtk_text_view_child_allocated): Ditto. * gtk/gtkmain.h (GTKMAIN_C_VAR): Win32 fix for dllimport declaration. * gtk/gtktexttypes.h: Ditto. * gtk/gtklabel.c (gtk_label_set_markup_with_accel): Return a value (GDK_VoidSymbol) also if in case of arg check failure. * gtk/gtkimcontextsimple.c (gtk_im_context_simple_get_preedit_string): Don't assign cursor position to the pointer, but to the variable it points to. * gtk/makefile.msc.in (DEFINES): Define GTK_VERSION. * gtk/gtk.def: Updates. 2000-11-29 Elliot Lee * gtk/gtkmodelsimple.c: Inherits from GTK_TYPE_OBJECT, not GTK_TYPE_TREE_MODEL. 2000-11-29 Alexander Larsson * gdk/linux-fb/gdkfont-fb.c (gdk_font_from_description): Set the size of the font from the description. (gdk_text_width): Gross hack that calculates the width of text by text_length * size/2. This is necessary because GtkLabel does some ugly gtk_string_width call to calculate an good size. (linux-fb/gdkprivate-fb.h): Removed unused field FT_Face. Wed Nov 29 13:39:19 GMT 2000 Tony Gale * docs/tutorial/gtk-tut.sgml: DND updates 2000-11-29 Alexander Larsson * gdk/linux-fb/gdkwindow-fb.c (_gdk_windowing_window_clear_area): If you pass width or height == 0 to gdk_window_clear_area they should be calculated from the window size. 2000-11-29 Alexander Larsson * gdk/linux-fb/gdkinput-ps2.c (move_pointer): If there is a grab, but no grab-cursor, use the cursor from the grabbed window. (gdk_fb_window_send_crossing_events): Send normal enter/leave notifications if grab and owner_events == TRUE. 2000-11-29 Alexander Larsson * gdk/linux-fb/gdkinput-ps2.c (send_button_event): Do implicit button grabs, even if the window doesn't want the event. (gdk_fb_window_send_crossing_events): If there is a grab, only the grabbed window gets normal enter/leave notifications. On ungrab go from grabbed window to current. Don't send any notification to b when propagating from c -> b. If setting a grab on window, don't set prev_window. (handle_mouse_input): Send enter/leave events to the window the mouse is over, not the grabbed one. 2000-11-28 Elliot Lee * gdk/gdkregion-generic.c: Zap warning. * modules/input/Makefile.am: Only build im-xim if USE_X11 is enabled * gtk/gtkrc.c: s/strcpy/memcpy/ to save a few nanoseconds. 2000-11-28 Alexander Larsson * gdk/linux-fb/gdkwindow-fb.c (gdk_fb_window_move_resize): The cursor should be hidden if it is part of either the source or destination region. Not only if it is in both. (gdk_window_set_transient_for): Silence warnings. 2000-11-28 Alexander Larsson * gdk/linux-fb/mifillarc.c (miFillArcSliceSetup): The default mode in X is Pie Arcs, therefore that is what Gtk+ uses. 2000-11-28 Alexander Larsson * gdk/linux-fb/gdkinput-ps2.c: Implement correct EnterNotify/LeaveNotify: (gdk_fb_window_send_crossing_events): New function that sends all GdkCrossingEvents from the last mouse-window to the specified destination. (gdk_fb_window_visibility_crossing): Removed function. (handle_mouse_input): Use gdk_fb_window_send_crossing_events() (send_button_event, gdk_fb_cursor_reset): Use gdk_window_at_pointer instead of gdk_window_get_pointer() for better readability. * gdk/linux-fb/gdkmain-fb.c (gdk_fb_pointer_grab, gdk_fb_pointer_ungrab): Use gdk_fb_window_send_crossing_events. * gdk/linux-fb/gdkprivate-fb.h: removed gdk_fb_window_visibility_crossing, added gdk_fb_window_send_crossing_events and gdk_fb_find_common_ancestor. gdk/linux-fb/gdkwindow-fb.c (gdk_fb_find_common_ancestor): New function that finds the least common ancestor of two windows. (gdk_window_show, gdk_window_hide): Use gdk_fb_window_send_crossing_events. (gdk_fb_window_move_resize): Send configure events to toplevel windows. Use gdk_fb_window_send_crossing_events. 2000-11-27 Havoc Pennington * gtk/gtkprivate.h (enum): Remove a trailing comma 2000-11-27 Federico Mena Quintero * gtk/gtkspinbutton.c (gtk_spin_button_set_adjustment): Connect to the "changed" callback of the adjustment. We need to redraw the spin button's arrows when the adjustment's range changes. (adjustment_changed_cb): Draw the arrows. (gtk_spin_button_value_changed): Draw the arrows. 2000-11-23 Alexander Larsson * gdk/linux-fb/gdkselection-fb.c: Initial selection implementation. * gtk/gtkselection.c: if GDK_WINDOWING_FB defined, include linux-fb/gdkfb.h and look up requestor in gtk_selection_request. * gdk/linux-fb/gdkfb.h, gdk/linux-fb/gdkglobals-fb.c: Added gdk_selection_property atom. * gdk/linux-fb/gdkprivate-fb.h: Export _gdk_selection_window_destroyed. Removed mask_off_x/y from GdkCursorPrivateFB. Removed hbearing, added top, left to PangoFBGlyphInfo. * gdk/linux-fb/gdkwindow-fb.c (_gdk_windowing_window_destroy): Call _gdk_selection_window_destroyed (_gdk_windowing_window_init): Don't call gdk_cursor_new() before the root window has been created. (static_dx_hack, static_dy_hack, compare_draw_rects, gdk_fb_window_move_resize): Remove unnecessary sort of rectangles in region. They are already sorted. Instead just traverse them in reverse if draw_direction < 0. * gdk/linux-fb/gdkinput-ps2.c (send_button_event): Double-clicks must be sent after the normal button_press. (gdk_fb_cursor_unhide): Remove usage of mask_off_x/y. Clean up. * gdk/linux-fb/gdkgeometry-fb.c (gdk_window_scroll): Pass _gdk_fb_screen_gc instead of NULL. * gdk/linux-fb/gdkmain-fb.c (_gdk_windowing_init_check): Initialize gdk_selection_property. (gdk_event_make): Remove unused code. * gdk/linux-fb/gdkcursor-fb.c: Make the pixmap for the cursor the same size as the mask. Also remove the mask_off_x/y fields in GdkCursorPrivateFB and combine _gdk_cursor_new_from_pixmap() and gdk_cursor_new_from_pixmap() Now the whole cursor is visible. * gdk/linux-fb/gdkdrawable-fb2.c (gdk_fb_draw_drawable_3): Fix bug where xdest+height instead of ydest+height was used to calculate if the source and dest overlapped. This fixes the redraw bug when the main window in testgtk was scrolled when partially covered by a tall window. Copy rectangles in region in order depending on draw_direction. Also moved the draw_direction flipping of start_y and end_y into the gc functions, as this might not be what all of them want. (gdk_fb_draw_lines): Support dashed lines. (gdk_fb_draw_glyphs): Clean up glyph placement. Also fix positioning so that the text is positioned correctly (was 1 pixel high). gdk/linux-fb/gdkgc-fb.c: Initialize cap_style to GTK_CAP_BUTT. This fixes a problem where all lines were drawn a pixel to short. Also checked the default of the rest of the values, and they're the same as X now. * gdk/linux-fb/gdkpango-fb.c (pango_fb_font_get_glyph_info): Clean up pixel positioning of the glyphs. Just use bgy->top and bgy->left. Also used PANGO_PIXEL where appropriate and added 0.5 to all divisions to get correct rounding behaviour. * gdk/linux-fb/gdkrender-fb.c (gdk_fb_draw_drawable_generic, gdk_fb_draw_drawable_memmove, gdk_fb_draw_drawable_aa_24): Moved start_y/end_y flip into draw_drawable implementations. Flip also x rendering when draw_direction < 0. Remove unneccesary multiply with draw_direction. Wed Nov 22 14:11:19 GMT 2000 Tony Gale * docs/tutorial/gtk-tut.sgml: - get rid of gtk_toggle_button_toggled FUD - start DND section - needs work - based on: http://wolfpack.twu.net/docs/gtkdnd/ 2000-11-22 Alexander Larsson * gdk/linux-fb/gdkpango-fb.c (pango_fb_font_get_metrics): Correct calculation of font metrics. Now GtkEntrys have sane size. 2000-11-22 Alexander Larsson * gdk/gdktypes.h: Add new type GdkSpan * docs/reference/gdk/gdk-sections.txt, docs/reference/gdk/tmpl/regions.sgml, gdk/gdkregion-generic.c, gdk/gdkregion.h: Implement and document gdk_region_spans_intersect_foreach. * gdk/linux-fb/Makefile.am, gdk/linux-fb/gdkrender-fb.c: Add new file gdkrender-fb.c which contains all core rendering code. Add gdk_fb_fill_rectangle_generic (old rectangle code) and gdk_fb_fill_rectangle_simple_16, gdk_fb_fill_rectangle_simple_32 (optimized rectangle fillers). * gdk/linux-fb/gdkdrawable-fb2.c: Move all rendering code to gdkrender-fb.c. Change from using GdkRectangles and GdkSegments for spans to GdkSpan. Use the new span intersection functions in gdk_fb_fill_spans. gdk_fb_draw_rectangle() clips filled rectangles and calls gc->fill_rectangle with the result. gdk_fb_fill_spans() gets extra argument "sorted". * gdk/linux-fb/gdkevents-fb.c: Remove unused includes and defines. New function gdk_fb_get_time() to get correct time for events. * gdk/linux-fb/gdkinput-ps2.c: Use gdk method of generating multiple-clicks (gdk_event_button_generate) Make sure to set the time of all events. * gdk/linux-fb/gdkmain-fb.c: Use gdk_fb_get_time (). * gdk/linux-fb/gdkprivate-fb.h: New virtual GC calls: fill_span & fill_rectangle. Export gdk_fb_get_time(). gdk_fb_fill_spans() gets extra argument "sorted". * gdk/linux-fb/mi*.c: Use GdkSpan instead of GdkRectangle. Pass correct sorted to gdk_fb_fill_spans. (sorted value taken from XFree 4 source) 2000-11-22 * gtk/gtktreeview.c (gtk_tree_view_calc_size): It's amazing what reversing the order in an if statement will do. Doing so managed to make the treemodelsort half work. Other half will follow after I get the insert function fully fixed. 2000-11-21 Elliot Lee * gtk/gtkmenushell.h: GdkEventButton->button can occupy significantly more than 2 bits. Besides, I need to implement an evil hack. :) Tue Nov 21 14:17:51 GMT 2000 Tony Gale * docs/tutorial/gtk-tut.sgml: minor corrections 2000-11-20 Jonathan Blandford * gtk/gtktreemodelsort.h: Add convertion functions to let you convert to and from relative path's and iters. * gtk/treestoretest.c: move to having a sorted/unsorted view. Start testing sorting functions a bit better. Currently broken -- will fix in morning. 2000-11-20 Havoc Pennington * gtk/gtkwidget.c: Documented a bunch of functions in here (gtk_widget_realize): Warn if you try to realize a widget with no parent that isn't a toplevel (gtk_widget_intersect): return a gboolean 2000-11-20 Havoc Pennington * gtk/gtktextview.c, gtk/gtktextlayout.c, gtk/gtktextchild.c, gtk/testtext.c: Semi-finish widget embedding. Need guffaw scrolling to be implemented in GDK to finish. Also, right now we just size_allocate all children on every layout change, which is pretty lame. Test commented out of testtext.c, until it works better. 2000-11-20 Alexander Larsson * gdk/linux-fb/gdkdrawable-fb2.c: Removed unused arguments from gdk_fb_drawable_get_pixel(). * gdk/linux-fb/gdkinput-ps2.c (handle_input_ps2): Renamed fidur specific mouse packet data in MouseDevice to generic. Used it in ps2 mouse handling code to avoid blocking reads. Sat Nov 18 18:00:17 2000 Jonathan Blandford * demos/gtk-demo/main.c: Changed to have the list become non-italic when the demo window is destroyed through an external event (like a close button). Doing so found three bugs in the widget. * demos/gtk-demo/*.c (do_*): Changed to return the toplevel window. * gtk/gtkliststore.c (gtk_list_store_set_cell): emit "change" when we actually set the cell. * gtk/gtktreestore.c (gtk_tree_store_set_cell): ditto * gtk/gtktreeselection.c (gtk_tree_selection_real_select_node): free a leaked path. Thanks memprof. Sat Nov 18 11:58:17 2000 Owen Taylor * gdk/gdkrgb.c (gdk_rgb_allocate_images): Fix off-by-one error when destroying allocated segments on failure. (Elliot) Sat Nov 18 11:45:09 2000 Owen Taylor * gtk/gtkcalendar.c: Patch from ChiDeok Hwang to fix memleaks found by Evan Martin. Fri Nov 17 20:14:20 2000 Owen Taylor * Released 1.3.2 * NEWS: Updates for 1.3.2 2000-11-17 Tor Lillqvist * gdk/gdkevents.h: Add comment that GdkXEvent isn't only for XEvent, but in general for window system specific events. * gtk/gtk.def * gtk/makefile.mingw.in * gtk/makefile.msc.in: Update. * gtk/gtktexttypes.h: Mark variables for export/import from DLL. Thu Nov 16 16:11:39 2000 Owen Taylor * gtk/Makefile.am (EXTRA_DIST): Do not, in any circumstances, distribute gtk.immodules. * gtk/Makefile.am (install-data-local): Don't install the gtk.immodules file created for the uninstalled modules; instead run gtk-query-immodules after install Wed Nov 15 21:51:31 2000 Owen Taylor * modules/input/Makefile.am (im_xim_la_LDFLAGS): Point -rpath to the right install location. * modules/input/Makefile.am (im_inuktitut_la_LDFLAGS): Remove -export-dynamic. * gtk/gtkthemes.c (gtk_theme_engine_get): Set engine->name properly. 2000-11-15 Havoc Pennington * gtk/gtktextview.c (gtk_text_view_start_cursor_blink): Apply patch from Mikael Hermansson to temporarily stop blinking while the user is using the keyboard to type or navigate. Also, when blinking, stay on for longer than we stay off. Also, return from start_cursor_blink if !cursor_visible, to save checking that flag all over the place before we call start_cursor_blink. Thu Nov 16 01:25:51 2000 Robert Brady * gtk/gtkrc.*: Remove the locale-specific gtkrc's, as they only contain a "fontset" line, which is now ignored. * gtk/gtkentry.c (gtk_entry_button_release): Make double-click-to-select-word work. Wed Nov 15 20:16:54 2000 Owen Taylor * gtk/gtktextlayout.c (gtk_text_layout_move_iter_to_line_end): Don't move back one char when we are actually at the end of the paragraph. 2000-11-15 Robert Brady * modules/input/iminuktitut.c (inuktitut_compose_seqs): 'o' < 'p'. * gtk/gtkmain.c: s/CODSET/CODESET/, include for bind_textdomain_codeset. (gtk_init_check): Make the warning about translating default:LTR sterner. Wed Nov 15 18:39:40 2000 Owen Taylor * **/Makefile.am : remove unecessary rules for win32-specific config-substituted targets. If you want these rules, use --enable-maintainer-mode (called automatically by autogen.sh). Stops a lot of unneccessary make-time warnings. * gtk/gtktext{layout,display}.c: Factor in total width as well as screen when figuring alignment for word-wrap as well as no wrap; this is necessary to handle lines that cannot be wrapped at all. 2000-11-15 Havoc Pennington * gtk/testtext.c: Implement essential color cycling feature 2000-11-15 Havoc Pennington * gtk/gtktextview.c (changed_handler): Invalidate the side windows when we invalidate the main window. * gtk/testtext.c (create_view): Get rid of text_changed_callback, GtkTextView will now invalidate the side windows for us when text changes. Wed Nov 15 16:02:20 2000 Owen Taylor * gtk/gtktextview.c (changed_handler): Call scroll_calc_now() unconditionally, since we may need to update the horizontal scrollbars even if the height didn't change. * gtk/gtktextlayout.c (add_preedit_attrs): Always get the extra attrs, since some of them affect size. * gtk/gtktextdisplay.c (gtk_text_layout_draw): Factor in x_offset correctly. 2000-11-15 Havoc Pennington * gtk/gtktextlayout.c (set_para_values): If indent is negative, don't move the first line out into the margin, instead move the whole paragraph in order to make space for the first line within the margin 2000-11-15 Havoc Pennington * gtk/gtktextview.c (changed_handler): offset redraw rect by xoffset in addition to yoffset, so horizontal scrolling doesn't break redraws 2000-11-15 Havoc Pennington * gtk/gtktextdisplay.c (gtk_text_layout_draw): Remove extra pixel from the cursor (render_layout_line): fix reversed test that caused weird underlines to get drawn 2000-11-15 Alexander Larsson * gdk/linux-fb/gdkprivate-fb.h: Fix debug macros. 2000-11-15 Alexander Larsson * gdk/linux-fb/gdkprivate-fb.h: Added virtual functions set_pixel, get_color, fill_span and draw_drawable to the GC. Added global _gdk_fb_screen_gc to use instead of NULL when drawing to the screen. Added _gdk_fb_gc_calc_state() prototype. * gdk/linux-fb/gdkgc-fb.c: Call _gdk_fb_gc_calc_state() on any gc state change. * gdk/linux-fb/gdkglobals-fb.c: Add _gdk_fb_screen_gc * gdk/linux-fb/gdkdrawable-fb2.c: _gdk_fb_gc_calc_state() calculates best functions for the GC state and depth. Moved bpp specialized code to separate functions. Added optimized 24 bpp AA draw_drawable. * gdk/linux-fb/gdkevents-fb.c: Silence gcc warning. * gdk/linux-fb/gdkimage-fb.c: Use _gdk_fb_screen_gc * gdk/linux-fb/gdkwindow-fb.c: Init and use _gdk_fb_screen_gc * gdk/linux-fb/mitypes.h: Remove unused types. 2000-11-14 Havoc Pennington * gtk/gtktextlayout.c (add_cursor): use PANGO_PIXELS() to convert to pixels 2000-11-14 Havoc Pennington * gtk/testtextbuffer.c (fill_buffer): change "offset" to "rise" * gtk/gtktexttypes.h (GTK_TEXT_UNKNOWN_CHAR): Add macro for unknown char, no real reason we were using a variable. Remove gtk_text_unknown_char variable. Fix all the text widget files accordingly. * gtk/gtktexttypes.c: Change "unknown character" to 0xFFFC, since the Unicode spec seems to prefer that character for our purposes. Wed Nov 15 02:18:01 2000 Robert Brady * gtk/gtkrc.c (gtk_rc_get_im_module_file): The return value of g_getenv() isn't freeable, so g_strdup it. * modules/input/inuktitut.c: Inuktitut input method. * modules/input/Makefile.am: Build this. 2000-11-14 Elliot Lee * gtk/Makefile.am: Install gtk.immodules, needed for operation of gtk programs. Tue Nov 14 20:13:06 2000 Owen Taylor * gtk/gtktextlayout.c (gtk_text_layout_move_iter_to_line_end): Fix reversed > that was causing Home to go to end of previous line. * gtk/gtkimcontextsimple.c (gtk_im_context_simple_filter_keypress): Ignore modified-keypresses (leave for bindings.) * modules/input/Makefile.am: Remove useless -export-dynamic from module LDFLAGS. 2000-11-14 Havoc Pennington * gdk/gdkpango.c (gdk_draw_layout_line): Draw underlines one pixel higher. * gtk/gtktextdisplay.c (render_layout_line): Take rise into account. Also, render rise, underline, background, etc. for pixbufs as well as text. Also, draw underlines one pixel higher. * gtk/gtktextlayout.c (gtk_text_layout_get_line_display): Add a PangoAttribute for the rise, so it gets drawn properly. Also, add the GtkTextAppearance attribute for pixbuf/widget segments as well; we should go ahead and have rise, underline, background, stipple work for those * gtk/gtktexttag.c: Rename "offset" property to "rise" to match Pango 2000-11-15 Tor Lillqvist * gtk/makefile.{mingw,msc}.in (gtk_OBJECTS): Add new objects. * gtk/gtk.def: Update. * gtk/gtkrc.c: Can't check for G_OS_WIN32 until glib.h has been included. (gtk_rc_get_im_module_file): Use run-time installation directory on Win32. * gdk/win32/rc/gdk.rc: Remove. * gdk/win32/rc/gdk.rc.in: New file. * gdk/win32/rc/Makefile.am: New file * gdk/win32/Makefile.am: Corresponding changes. * gtk/gtk.rc: Remove. * gtk/gtk-win32.rc.in: New file. * gtk/Makefile.am: Corresponding changes. * configure.in: Corresponding changes. * gtk/gtkcompat.h.win32: Remove, useless. A distribution already has a built gtkcompat.h. Developers using CVS code on Win32 can hand-edit it from gtkcompat.h.in. * gtk/makefile.{mingw,msc}.in: Correspondingly don't try to make gtkcompat.h from gtkcompat.h.win32. 2000-11-14 Havoc Pennington * gtk/gtktextview.c (gtk_text_view_drag_motion): Fix drag-and-drop to default to GDK_ACTION_MOVE if the drag is within a single widget. Defaults to GDK_ACTION_COPY between widgets. Mon Nov 13 14:43:48 2000 Owen Taylor * demos/Makefile.am (test-inline-pixbufs.h): Fix srcdir != builddir * gtk/Makefile.am (INCLUDES): Add -I$(builddir)/gtk * gtk/stock-icons/Makefile.am (gtkstockpixbufs.h): Handles srcdir != builddir * modules/input/Makefile.am (INCLUDES): add $(top_srcdir)/gdk * configure.in (GTK_VERSION): Up to 1.3.2 * modules/input/Makefile.am (im_xim_la_SOURCES): Add gtkimcontextxim.h * gtk/gtkimcontext.c (gtk_im_context_get_preedit_string): Add missing doc comment. 2000-11-14 Alexander Larsson * modules/linux-fb/basic.c: Use the glib iconv wrappers. 2000-11-13 Havoc Pennington * demos/gtk-demo/textview.c: spiff up the demo a bit; reveals still more bugs. * gtk/gtktextview.c (gtk_text_view_value_changed): don't try to scroll the GdkWindows before realization. 2000-11-13 Havoc Pennington * gtk/gtktextdisplay.c (gtk_text_render_state_update): fix bug where GC didn't always get updated properly * demos/gtk-demo/textview.c (create_tags): Use subattributes of fonts instead of setting the entire font * gtk/testtext.c (fill_example_buffer): Use "size" instead of setting entire font * gtk/gtkdialog.c (gtk_dialog_add_button): Fix some warnings * gtk/gtktexttag.h, gtk/gtktexttag.c: Explode font_desc into a bunch of individually-settable font attributes. You can still use the "font" and "font_desc" args, they just set all the font attributes at once. 2000-11-13 Elliot Lee * gdk/gdk.h: Add a couple of missing G_GNUC_CONST's. Mon Nov 13 14:29:32 2000 Jonathan Blandford * gtk/gtktreemodel.c (gtk_tree_path_copy): confirm path != NULL * gtk/gtktreemodel.c (gtk_tree_path_free): ditto * gtk/gtktreemodelsort.c (gtk_tree_model_sort_insert_value): make work better. 2000-11-13 Havoc Pennington * gtk/gtkimmodule.c (gtk_im_module_init): Free the filename of the module file. * gtk/gtktexttag.c (gtk_text_attributes_copy): fix memory leak of dest->language * gtk/testtext.c: Test pixels above/below/inside paragraphs settings * gtk/gtktextview.c: Implement object args and setters/getters for all the aspects of the GtkTextAttributes that are not set from GtkWidget attributes. This is spacing, justification, margins, etc. (gtk_text_view_set_arg) (gtk_text_view_get_arg): implement get/set for editable, wrap mode args (gtk_text_view_class_init): Add args for justify, left_margin, right_margin, indent, and tabs * gtk/gtktextlayout.c (set_para_values): fix to display indent attribute properly * gtk/gtktexttag.c: Remove left_wrapped_line_margin attribute, replace with indent attribute * gtk/gtktextlayout.c (set_para_values): multiply indent by PANGO_SCALE * gtk/gtktextdisplay.c (render_para): Use PangoLayoutIter, rearranging code to do that (gtk_text_layout_draw): Pass in the y for the whole LineDisplay, i.e. don't subtract the top_margin first, just to keep all margin-futzing in one place. * gdk/gdkpango.c (gdk_draw_layout): Use PangoLayoutIter * gtk/gtktextlayout.c (gtk_text_layout_get_iter_location): Remove special case of last line, Pango now handles this itself. (gtk_text_layout_get_iter_at_pixel): Fix incorrect clamp of the Y coordinate (gtk_text_layout_move_iter_to_x): port to use PangoLayoutIter (find_display_line_above): wasn't moving the byte index as it iterated over lines, so always returned byte 0. Also, port to use PangoLayoutIter. (find_display_line_below): same problem as find_display_line_above. Also, port to use PangoLayoutIter. 2000-11-13 Alexander Larsson * gdk/linux-fb/*.[ch]: Massive reindent to gtk+ standard. My hands hurt. * gdk/linux-fb/gdkcolor-fb.c: Move GdkColorPrivateFB from inherited to windowing_data * gdk/linux-fb/gdkcursor-fb.c: _gdk_cursor_new_from_pixmap made static * gdk/linux-fb/gdkdnd-fb.c: GdkDragContextPrivate moved to windowing_data * gdk/linux-fb/gdkdrawable-fb2.c: Removed endian.h, use glib endianness macros instead Some cleanups in the usage of GDK_DRAWABLE_FBDATA and GDK_DRAWABLE_IMPL_FBDATA * gdk/linux-fb/gdkfont-fb.c: Add empty gdk_font_load(). Needed for linking of Gtk+. * gdk/linux-fb/gdkimage-fb.c: Removed endian.h, use glib endianness macros instead Moved GdkImagePrivateFB to windowing_data gdk_image_new_bitmap didn't always allocate enough memory. * gdk/linux-fb/gdkinput-ps2.c: Added semi-working support for MS serial mice. * gdk/linux-fb/gdkprivate-fb.h: s/GdkWindowPrivate/GdkWindowObject/ Removed GdkWindowPrivate typedef s/GDK_DRAWABLE_P/GDK_DRAWABLE_FBDATA/ Removed GDK_DRAWABLE_P Move GdkColorPrivateFB from inherited to windowing_data Moved GdkImagePrivateFB to windowing_data * gdk/linux-fb/gdkvisual-fb.c: Removed some unused debug code. * gdk/linux-fb/gdkwindow-fb.c: Use stock cursors instead of including X headers. s/GdkWindowPrivate/GdkWindowObject/ * gdk/linux-fb/mitypes.h: Removed unused types. * modules/linux-fb/basic.c: Use the pango fribidi wrappers. 2000-11-13 Sebastian Wilhelmi * gdk/linux-fb/gdkcolor-fb.c, gdk/nanox/gdkmain-nanox.c, gdk/win32/gdkcolor-win32.c, gdk/win32/gdkwin32id.c, gdk/x11/gdkcolor-x11.c, gdk/x11/gdkvisual-x11.c, gdk/x11/gdkxid.c, gtk/gtkgc.c, gtk/gtkrc.c, gtk/gtktext.c: GCompareFunc -> GEqualFunc where applicable. * gdk/linux-fb/gdkpango-fb.c: pango_font_description_compare -> pango_font_description_equal as changed in pango. * gdk/nanox/gdkmain-nanox.c: gdk_xid_compare -> gdk_xid_equal. * gdk/win32/gdkcolor-win32.c: gdk_colormap_cmp -> gdk_colormap_equal. * gdk/win32/gdkwin32id.c: gdk_handle_compare -> gdk_handle_equal. * gdk/x11/gdkcolor-x11.c: gdk_colormap_cmp -> gdk_colormap_equal. * gdk/x11/gdkvisual-x11.c: gdk_visual_compare -> gdk_visual_equal. * gdk/x11/gdkxid.c: gdk_xid_compare -> gdk_xid_equal. * gtk/gtkgc.c: gtk_gc_key_compare -> gtk_gc_key_equal and gtk_gc_drawable_compare -> gtk_gc_drawable_equal. * gtk/gtkrc.c: gtk_rc_style_compare -> gtk_rc_style_equal and gtk_rc_styles_compare -> gtk_rc_styles_equal. 2000-11-12 Havoc Pennington * demos/gtk-demo/Makefile.am (democodedir): change demo install dir to datadir/gtk+-2.0/demo * demos/gtk-demo/textview.c: Text widget demo; reveals all sorts of text widget and Pango font bugs. Urgh. * demos/gtk-demo/Makefile.am (demos): Add textview.c * demos/gtk-demo/main.c (create_tree): Add instructions at top of tree that you should double click to see the demo. Fix types of variables to reflect changed return values from GtkTreeStore and GtkTreeViewColumn constructors. * gtk/gtktextbuffer.c (gtk_text_buffer_new): ref/sink the newly-created buffer to prepare for GObject semantics * gtk/testtext.c: don't leak the buffer with GObject semantics * gtk/testtextbuffer.c: ditto 2000-11-12 Havoc Pennington Rename this testgtk to gtk-demo to avoid confusion, and install it so people can use it as a supplement to the documentation. * demos/gtk-demo: Moved from demos/testgtk * demos/testgtk: Removed * configure.in: make Makefile in gtk-demo * demos/gtk-demo/Makefile.am: Install sample source to datadir/gtk-demo (maybe there's a better place?), and rename the binary to gtk-demo * demos/gtk-demo/main.c (load_file): Load installed sample source if source isn't found in pwd. 2000-11-09 Havoc Pennington * gtk/gtkentry.c (gtk_entry_class_init): Add an "invisible_char" argument to set the char displayed when visibility == FALSE (gtk_entry_create_layout): If !entry->visible, replace all chars with the "invisible char" * gtk/testgtk.c: Test the invisible_char deal Mon Nov 13 02:16:33 2000 Robert Brady * gtk/gtkstyle.c (gtk_style_init): Fall back to "fixed" if we can't get a native font in the right encoding. Mon Nov 13 00:09:29 2000 Robert Brady * configure.in: Chinese .pos have been renamed to zh_CN and zh_TW respectively. Sun Nov 12 19:11:42 2000 Owen Taylor * gtk/gtktextlayout.c (gtk_text_layout_move_iter_to_next_line): Fix warning when moving between paragraphs. * gtk/gtkentry.[ch]: Change move => move_cursor, delete => delete_from_cursor, insert => insert_at_cursor Sun Nov 12 22:52:51 2000 Robert Brady * modules/input/imviqr.c: A vietnamese VIQR-based input method. * modules/input/imthai-broken.c: A Thai input method for use if Thai keys are really generating Latin1 keysyms. * modules/input/Makefile.am: Build these. Sun Nov 12 22:15:35 2000 Robert Brady * gtk/gtkfileselection.c, gdk/win32/gdkfont-win32.c: g_filename_{to,from}_utf8 now takes an extra parameter. * gtk/gtkcalendar.c (gtk_calendar_init): Convert output of strftime into UTF-8. (column_from_x, gtk_calendar_paint_day_names): Support RTL calendars. (gtk_calendar_paint_day_names): Draw day names in the right place. Sun Nov 12 14:10:09 2000 Owen Taylor * gdk/x11/gdkselection-x11.c (gdk_utf8_to_compound_text): Fix problem with using result of g_get_charset() backwards - pointed out by Mikael Hermansson . * gtk/gtkwindow.c (gtk_window_compute_hints): Support negative min_width/height and max_width/height to mean "requisition"; this allows setting a window to be user-resizable in only one direction easily. * gtk/testgtk.c (create_main_window): Remove hard-coded usize - set a default size in the vertical direction. Sun Nov 12 13:33:01 2000 Owen Taylor * gtk/gtkrange.c: Add some missing casts. Support 2 and 3 button clicks on the arrows to mean "move by pages" and "jump to end". (Like gtkspinbutton) 2000-11-12 Hans Breuer * gdk/win32/makefile.msc : reflect build module changes * gdk/win32/gdkcursor-win32.c : can't cast to impl type directly from GdkPixmap*, cast implementation member instead. * gdk/win32/gdkdrawable-win32.c (gdk_win32_draw_drawable) : The passed in drawable is of type GdkDrawableImplWin32, the GdkPixmap *src maybe either GdkDrawable or GdkDrawableImpl. Corrected all casts, add more Gdi functions return value checking. (gdk_win32_draw_image) : use IMAGE_PRIVATE_DATA to get on the GdkImagePrivateWin32 *. * gdk/win32/gdkevents-win32.c : Disable the SetCapture call to make menus useable again. Add #pragma message to keep reminded on this issue. (gdk_event_translate) : don't generate GDK_EXPOSE events for InputOnly windows. This allows to enable backing store on Win32! * gdk/win32/gdkimage-win32.c (_gdk_win32_get_image) : the passed in drawable is of impl type. Correct specific type checks appropriate. * gdk/win32/gdkpixmap-win32.c (gdk_pixmap_create_from_data) : check GDK_WINDOW_DESTROYED before allocating new resources. * gdk/win32/gdkselection-win32.c : Handle GDK_WINDOW_DESTROYED case * gdk/win32/gdkwindow-win32.c : more Gdi return value checking, (gdk_window_foreign_new) initialize parent handle. (gdk_window_destroy_notify) add GDK_IS_WINDOW check * gdk/win32/gdkgeometry-win32.c (_gdk_window_move_resize_child) : Let the GDI invalidate the window on MoveWindow call to fix scrolling problems (e.g. main buttons in testgtk). Sat Nov 11 23:07:30 2000 Owen Taylor * gtk/gtkentry.c (gtk_entry_key_press): Call gtk_widget_activate for GDK_Return. * gtk/gtkentry.c (gtk_entry_preedit_changed_cb): Fix handling of preedit cursor position. Sun Nov 5 04:24:53 2000 Owen Taylor * gtk/gtkcellrenderertextpixbuf.c: Make parent_class static. Tue Sep 19 10:54:22 2000 Owen Taylor * modules/input/{gtkimcontextxim.[ch],imxim.c}: Rip out support for multiple locales; that simple doesn't work reliably with current Xlib * gtk/gtkimcontext*.[ch] gtk/gtkimmulticontext.[ch] gtk/gtktextlayout.[ch] gtk/gtktextview.c gtk/gtkentry.c: Add support for positioning the cursor within the preedit string. Mon Sep 18 23:56:32 2000 Owen Taylor * modules/input/{imxim.c,gtkimcontextxim.[ch]}: Start at XIM input method module. * gtk/gtktextview.c: Check for bindings after passing events to im context filter. Mon Sep 18 11:50:51 2000 Owen Taylor * gtk/gtktextlayout.c (add_preedit_attrs): Handle empty attribute lists properly. Sun Sep 17 10:08:16 2000 Owen Taylor * gtk/queryimmodules.c (main): Return non-zero exit status if errors were encountered querying any modules. * modules/input/Makefile.am (moduledir): remove leftover bin program target. * docs/make-todo: Fix typo in error message. Sat Sep 16 14:04:30 2000 Owen Taylor * configure.in: Add modules/input/Makefile Sat Sep 16 14:01:52 2000 Owen Taylor * gtk/gtk.h: include gtkmodule.h gtkoldeditable.h, don't include gtkthemes.h. * gtk/testgtk.c gtk/testtext.c: Set environment variables to point * gtk/Makefile.am: Add new .c and .h files, build gtk-query-immodules and use it to create a gtk.immodules file for use of test programs. * gtk/gtkpreview.c: remove extra blank line. Sat Sep 16 13:21:04 2000 Owen Taylor * gtk/gtkimcontextsimple.c (gtk_im_context_simple_add_table): Add the ability to add extra tables beyond the default one, and also the ability to have compose sequences that are prefixes of other compose sequences. * gtk/gtkimcontextsimple.c: Export a preedit string which consists of possible candidates for keystrokes that have been entered but not yet committed. * gtk/gtkimcontext.[ch] gtk/immulticontext.[ch] gtk/gtkimcontextsimple.[ch]: add gtk_im_context_reset() * gtk/gtkmulticontext.[ch] (gtk_im_multicontext_append_menuitems): Add a function to add input-method switching menu items to a menu. * gtk/gtkimmulticontext.[ch]: Properly handly set_client_window when switching input methods. * gtk/gtkimcontextsimple.[ch]: Change the format of the compose table to allow compose tables of different lengths / sequence. Sat Sep 16 13:05:48 2000 Owen Taylor * gtk/gtkimmodule.[ch]: Support routines for loading GtkIMContext implementations dynamically at runtime. * modules/input/imcyrillic-translit.c: A sample input method (based on GtkIMContextSimple with an extra table), which demonstrates preedit strings and the module system for input modules * gtk/queryimmodules.c: Program to query the available input modules and write the results into a file. * gtk/gtkrc.[ch] (gtk_rc_get_im_module_file): Add extra config options "im_module_file" (cache file for input method modules), and "im_module_path" - path to look for modules when generating cache file. This doesn't scale. Sat Sep 16 13:09:06 2000 Owen Taylor * gtk/gtkthemes.[ch] gtk/gtkmodule.[ch]: Move most of the generic code from gtkthemes into a new abstraction GtkModule which has the logic for implementing a loadable module which implements a number of GObject types. Sat Sep 16 13:07:13 2000 Owen Taylor * gtk/gtkeditable.[ch]: Convert GtkEditable from a class into an interface * gtk/gtkoldeditable.[ch]: Move the old editable implementation into here, so legacy widgets can still rely on the implemenation. GtkOldEditable exports GtkEditable. Make selection handling code use new text conversion functions (and handle UTF-8 as a side-effect). Use GtkClipboard for CLIPBOARD. * gtk/gtktext.[ch] gtk/gtkcombo.c gtk/gtkspinbutton.c: Adopt to match above changes. * gtk/gtkentry.[ch]: Implement GtkEditable directly, avoid GtkOldEditable implementation. Restructure to reduce number of places that modify state directly. Move to GtkBindingSet. Display the preedit string. Queue recomputation of PangoLayout and scroll position to improve effiency of doing complex changes naively. Add a menu with cut/copy/paste and input method selection. Thu Sep 14 22:11:05 2000 Owen Taylor * gtk/gtktextlayout.[ch]: Add gtk_text_layout_set_preedit_string() to set preedit string and attributes; display preedit string by inserting string and attributes at cursor when creating the GtkTextLineDisplay. * gtk/gtktextlayout.c: Move all conversions between byte positions in PangoLayout and GtkTextIter into new functions line_display_iter_to_index/index_to_iter that properly handle the preedit string. * gtk/gtktextmark.[ch]: Restore gtk_text_mark_get_name, modify it to return const char * (eventually will end up as GCONST char *, most likely.) * gtk/gtktextview.[ch]: Handle the preedit string, call gtk_im_context_reset() as necessary, add a menu to switch input methods. * gtk/gtktextlayout.[ch]: Remove useless gtk_text_layout_get_log_attrs() function. 2000-11-11 Tor Lillqvist * gdk/gdk.def * gtk/gtk.def: Update. * gdk/win32/*.c: Add last argument to g_type_register_static() calls. * gdk/win32/gdkwindow-win32.c: Silence gcc -Wall. * gdk/win32/gdkevents-win32.c: Handle MSH_MOUSEWHEEL messages generated by older wheel mouse drivers. Get the correct y coordinate from WM_MOUSEWHEEL messages. * gdk/win32/gdkgc-win32.c (gdk_win32_cap_style_to_string, gdk_win32_fill_style_to_string, gdk_win32_function_to_string, gdk_win32_join_style_to_string, gdk_win32_line_style_to_string): Debugging functions. * gdk/win32/gdkprivate-win32.h: Declare them. * gdk/win32/gdkinput-win32.h: Add declaration for gdk_input_window_destroy(). * gtk/makefile.mingw.in: Pass -DGTK_VERSION. Add gtktreemodel.o. Fri Nov 10 19:06:41 2000 Jonathan Blandford * gtk/gtktreemodelsort.c (gtk_tree_model_sort_insert_value): New function to help handle keeping things in sync. Fri Nov 10 12:10:34 2000 Jonathan Blandford * gtk/gtkliststore.c (gtk_model_simple_class_init): use the new BOXED marshallers. * gtk/gtkliststore.c (gtk_list_store_get_column_type): Add this. (gtk_list_store_class_init): use the new BOXED marshallers. * gtk/gtktreestore.c (gtk_tree_store_new_with_types): change new_with_values to new_with_types. (gtk_tree_store_get_column_type): add this. (gtk_tree_store_class_init): use the new BOXED marshallers. * gtk/gtkmarshal.list: Added a number of BOXED marshallers to mirror some POINTER marshallers. Thu Nov 9 11:23:22 2000 Jonathan Blandford * gtk/gtktreemodel.h (struct _GtkTreeIter): added more fields to allow more interesting iterators. Also, made the lifecycle of iterators more explicit. * gtk/gtktreemodelsort.[ch]: New model for sorting. * gtk/gtk-boxed.defs (GtkTreeIter, GtkTreePath): Added two boxed types. 2000-11-09 Alexander Larsson * demos/testgtk/menus.c: Changes to make the new testgtk compile after gtk_menu_append was removed. * gdk/linux-fb/gdkdrawable-fb2.c (gdk_fb_get_depth, gdk_fb_get_visual, gdk_drawable_impl_fb_class_init): Implement these drawable functions. Now GtkImages work again. * gdk/linux-fb/gdkimage-fb.c (_gdk_fb_get_image): Change prototype. * gdk/linux-fb/gdkprivate-fb.h (_gdk_fb_get_image): Change prototype. * gdk/linux-fb/gdkmain-fb.c (fb_modes_parse_mode, gdk_fb_setup_mode_from_name, gdk_fb_set_mode, gdk_fb_display_new); Parse /etc/fb.modes, use the environment variables GDK_DISPLAY_MODE, GDK_DISPLAY_DEPTH, GDK_DISPLAY_WIDTH, GDK_DISPLAY_HEIGHT. 2000-11-08 Havoc Pennington * gtk/gtktexttag.c (gtk_text_tag_class_init): Add visible and visible_set args, don't know where these had gone, I thought they used to be there * gtk/testtext.c: Add a menu item to apply invisibility tag; now we can test the feature and see that it's totally broken. 2000-11-08 Havoc Pennington Make DND copy pixbufs and tags when source and target share a tag table. * gtk/gtktextview.c (gtk_text_view_drag_data_get): provide the in-process GTK_TEXT_BUFFER_CONTENTS target (gtk_text_view_drag_data_received): Paste from GTK_TEXT_BUFFER_CONTENTS if we receive it. 2000-11-08 Alexander Larsson * docs/Changes-2.0.txt: Add note about GtkMenuPositionFunc API changes. * gtk/gtkmenu.c: Add support for scrolling menus. Remove gtk_menu_append/prepend/insert, these have been moved to gtkcompat.h as #defines. * gtk/gtkcompat.h.in: Add compatibility #defines for gtk_menu_append/prepend/insert * gtk/gtkmenu.h: Add data needed for scrolling menus. GtkMenuPositionFunc gets an extra argument push_in. gtk_menu_append/prepend/insert removed. * gtk/gtkmenuitem.c (gtk_menu_item_position_menu): Change menu positioning behaviour to fit to scrolling menus. * gtk/gtkmenuitem.c (gtk_menu_item_forall): Don't recurse into menuitem->submeny. That is wrong, and broke torn off submenus of torn off menus, since they were unrealized when the first menu was unrealized. * gtk/gtkmenushell.[ch]: Virtualize gtk_menu_shell_insert() and gtk_menu_shell_select_item() since these need to be overridden in GtkMenu. * gtk/gtkoptionmenu.c (gtk_opttion_menu_position): Change menu positioning behaviour to fit to scrolling menus. (gtk_option_menu_key_press, gtk_option_menu_button_press): Select the current item so that it is prelighted when the menu pops up. This is a workaround to the fact that the menu doesn't get the initial enter event (due to grabs). * gtk/gtkfilesel.c, gtk/gtkinputdialog.c, gtk/testgtk.c: s/gtk_menu_append/gtk_menu_shell_append/ * gtk/gtknotebook.c: s/gtk_menu_insert/gtk_menu_shell_insert/ * gtk/testgtk.c (create_menu, create_menus): Create the first menu with 50 items so that menu scrolling can be tested. Patch from Jonathan Blandford * gtk/gtkmenuitem.[ch] (gtk_menu_item_toggle_size_request): new system to handle size requests. First, we ask what the size of the toggle is. Then, when allocating the size, we allocate the toggle_size first. This way we can have multiple menu-item classes w/o needing a seperate class for each. * gtk/gtkmenu.c (gtk_menu_size_request): Actually use the new system. * gtk/gtkmenu.c (gtk_menu_size_allocate): Use the new system. * gtk/gtkcheckmenuitem.c (gtk_check_menu_item_toggle_size_request): New function to handle the toggle size-request. 2000-11-07 Havoc Pennington * gtk/gtktextlayout.c (gtk_text_layout_get_iter_location): Half-ass somewhat fix this function, so that scrolling to the insertion point works. Pango hacking is in the future to really fix it. * gtk/gtktextview.c (gtk_text_view_drag_data_get): Don't calculate length of data, no longer used. * gtk/gtktextbuffer.c (gtk_text_buffer_finalize): move destroy method contents in here, get rid of destroy method (gtk_text_buffer_insert_range): Fix some g_return_if_fail checks that were backward. Remove debug spew. (cut_or_copy): Make the clipboard work with insert_range to preserve tags and pixbufs, not just the primary selection. 2000-11-07 Havoc Pennington * gtk/gtktextmark.c (gtk_text_mark_is_visible): rename to gtk_text_mark_get_visible * gtk/gtktextlayout.c (gtk_text_layout_move_iter_to_line_end): fix bug that was generating an invalid iterator * gtk/gtktextiter.c (gtk_text_iter_get_offset): move call to ensure_char_offsets() in front of code placing the iter in an invalid state. * gtk/gtktextbuffer.c (gtk_text_buffer_paste_primary): make override_location arg const (paste): Replace the selection if we paste into the current selection * gtk/gtkselection.h: Remove "GtkSelectioData" (struct _GtkSelectionData): move the definition here. * gtk/gtktextbuffer.c (gtk_text_buffer_update_primary_selection): Export the GTK_TEXT_BUFFER_CONTENTS target for in-process copies * gtk/gtktextiter.c (gtk_text_iter_get_tags): New function * gtk/gtktextbuffer.c (gtk_text_buffer_insert_range): implement (gtk_text_buffer_insert_range_interactive): implement (gtk_text_buffer_get_tags): Remove, replaced by gtk_text_iter_get_tags() * gtk/gtktextiter.c (gtk_text_iter_forward_search): Add a search limit parameter, to avoid infinite linear scan. (gtk_text_iter_backward_search): Add search limit (gtk_text_iter_forward_find_char): Add search limit (gtk_text_iter_backward_find_char): Add search limit 2000-11-07 Alexander Larsson * gdk/linux-fb/gdkcolor-fb.c, gdk/linux-fb/gdkdnd-fb.c, gdk/linux-fb/gdkgc-fb.c, gdk/linux-fb/gdkimage-fb.c, gdk/linux-fb/gdkpango-fb.c, gdk/linux-fb/gdkpixmap-fb.c, gdk/linux-fb/gdkwindow-fb.c: use g_object_new() instead of g_type_create_instance() which is a private function for fundamental type implementations. * gdk/linux-fb/gdkinput-ps2.c: Use MEDIUMRAW instead of RAW keycodes. Remove keyboard state-table instead just store the current modifier state. Add a (somewhat broken) keyboard input parser for XLATE mode too, if we couldn't use MEDIUMRAW. Rename exported function gdk_input_ps2_get_mouseinfo to gdk_input_get_mouseinfo. * gdk/linux-fb/gdkmain-fb.c, gdk/linux-fb/gdkprivate-fb.h, gdk/linux-fb/gdkwindow-fb.c: gdk_input_ps2_get_mouseinfo was renamed to gdk_input_get_mouseinfo. 2000-11-02 Havoc Pennington * gtk/gtkfilesel.h, gtk/gtkfilesel.c: Derive from GtkDialog, and use stock buttons. Should be 100% source compatible, appropriate filesel fields now point to dialog->vbox and dialog->action_area. On the bizarre side, dialog->action_area and filesel->action_area are not the same widget. (gtk_file_selection_init): Put some padding around the selection entry, so it isn't touching the GtkDialog separator. * gtk/gtkfontsel.h, gtk/gtkfontsel.c: Derive from GtkDialog, use stock buttons, etc. Should also be source compatible. Set the dialog default title in _init not _new(). * gtk/gtkcolorseldialog.c (gtk_color_selection_dialog_init): Use stock buttons; don't put a button box inside the existing dialog button box. Don't bother with push/pop colormap anymore. * gtk/gtkdialog.h (GtkResponseType): Add a bunch of more specific GTK_RESPONSE_* values. This is clearer than ACCEPT/REJECT for message dialog, and necessary for the font selection and color selection with help and apply buttons. * gtk/gtkdialog.c (gtk_dialog_add_button): Return a pointer to the created button widget. Set GTK_CAN_DEFAULT on the button. (gtk_dialog_init): Default to GTK_BUTTONBOX_END, put less spacing between buttons, put less padding around the action area. (gtk_dialog_run): Exit on unmap rather than on destroy. This will also exit the loop if the widget is hidden. (gtk_dialog_delete_event_handler): Use GTK_RESPONSE_DELETE_EVENT instead of GTK_RESPONSE_NONE; since we're already adding a bunch of GTK_RESPONSE_* stuff, this seems cleaner, and lets you special-case delete event. * gtk/gtktexttagtable.c, gtk/gtktextview.c: Fix doc comment formatting Sun Nov 5 05:32:39 2000 Tim Janik * gtk/testgtk.c (uposition_stop_configure): provide a toggle button to temporarily disable position recording in the "saved position" test. Sat Nov 4 05:37:17 2000 Tim Janik * gtk/gtkthemes.c: added compat code that temporarily implements GtkThemeEnginePlugin as a GObject exporting GTypePlugin. this is going to be revamped by owen's upcoming GtkModule patches, but untill then people want gtk to build, right? ;) 2000-11-04 Havoc Pennington * gtk/gtkenums.h: remove trailing comma from GtkDeleteType member list * docs/Changes-2.0.txt: Add note about gtk_container_get_toplevels() * gtk/gtktextview.h: formatting * gtk/gtktextview.c: don't start descriptions with "Returns", confuses gtk-doc Sat Nov 4 10:12:27 2000 Owen Taylor * autogen.sh: When doing sanity checking on ACLOCAL_FLAGS, look for glib-2.0.m4 not glib.m4. (Ali Abdin) 2000-11-03 Havoc Pennington * gtk/gtktexttagtable.c: Docs (gtk_text_tag_table_size): return a signed int * gtk/gtktexttag.c: s/tkxt/text/g; write documentation (gtk_text_tag_event): make the event_object a GObject * gtk/gtktextview.c: Write API docs for all functions. * gtk/gtktextview.h: add GTK_TEXT_WINDOW_PRIVATE as return value for gtk_text_view_get_window_type() called on one of the private windows. * gtk/gtktextview.c: Instead of accessing text_view->buffer directly, call get_buffer() which demand-creates a default buffer. So gtk_text_view_new() can be used to create a view with a default buffer in it, if you just want an empty text box users can put data in. Useful for GUI builders also. 2000-11-03 Pablo Saratxaga * gtk/gtkrc.zh_TW.*: moved gtkrc.zh_TW.Big5 to gtkrc.zh_TW.big5; the charset encodign portion MUST be in lowercase. * gtk/gtkrc.az: added file for Azeri language 2000-11-03 Havoc Pennington Get widgets working on the btree/buffer side. Display of them still doesn't work. * gtk/gtktextview.c: start implementing child widget stuff * gtk/gtktextiter.c (gtk_text_iter_get_child_anchor): new function * gtk/gtktextlayout.c: handle embedded widgets * gtk/gtktextdisplay.c: handle embedded widgets * gtk/gtktextchild.c: Implement all the child anchor goo * gtk/gtktextbuffer.c (gtk_text_buffer_create_child_anchor): New function * gtk/gtktextbtree.c: Add child anchor table to the btree struct (insert_pixbuf_or_widget_segment): abstract out common portions of creating a child anchor or a pixbuf segment. (gtk_text_btree_create_child_anchor): new function (gtk_text_btree_unregister_child_anchor): new function * gtk/gtkmarshal.list: added VOID:OBJECT,INT,INT for the allocate_child signal on GtkTextLayout * gtk/gtktextiter.c (gtk_text_iter_get_pixbuf): fix bogus return values (gtk_text_iter_get_child_anchor): new function * gtk/gtktextbuffer.c (gtk_text_buffer_real_changed): Add a default handler for the changed signal, which calls gtk_text_buffer_set_modified(), instead of just always emitting changed then calling set_modified() manually. I guess this is maybe more flexible. It seems logical. Fri Nov 3 08:58:38 2000 Tim Janik * gtk/gtkobject.c: _g_signal_handlers_destroy() is prefixed with '_' now. * gtk/gtksignal.c: use g_signal_connect_closure_by_id() now. Thu Nov 2 14:10:51 2000 Owen Taylor * gdk/x11/gdkdnd-x11.c: Fix a bunch of functions that should have been marked static. 2000-11-02 Havoc Pennington * gtk/testgtk.c (create_labels): had a test backward * gdk/x11/gdkgc-x11.c (gdk_gc_copy): Copy the client-side GC fields, so the dest GC ends up with the correct clip origin, etc. Fixes a bug where colored labels didn't redraw properly. 2000-11-02 Alexander Larsson * gdk/linux-fb/gdkcolor-fb.c, gdk/linux-fb/gdkdnd-fb.c, gdk/linux-fb/gdkgc-fb.c, gdk/linux-fb/gdkpango-fb.c, gdk/linux-fb/gdkpixmap-fb.c, gdk/linux-fb/gdkwindow-fb.c: Add last argument to t_type_register_static call. * gdk/linux-fb/gdkdrawable-fb2.c: Add last argument to t_type_register_static call. export the get_image drawable virtual function. * gdk/linux-fb/gdkimage-fb.c: Add last argument to t_type_register_static call. rename gtk_image_get to _gdk_fb_get_image and export it for use by gdkdrawable-fb2. * gdk/linux-fb/gdkprivate-fb.h: export _gdk_fb_get_image. * gdk/linux-fb/gdkselection-fb.c: Add new api call stubs. * gtk/Makefile.am: Missing ( in linux-fb part. * modules/linux-fb/Makefile.am: Must link with gdk_pixbuf or get unresolved symbol. 2000-11-01 Havoc Pennington * gtk/gtktextbuffer.c (gtk_text_buffer_class_init): Use GTK_TYPE_TEXT_ITER and BOXED marshallers * gtk/gtktexttagtable.c (gtk_text_tag_table_class_init): ditto * gtk/gtktexttag.c (gtk_text_tag_class_init): ditto * gtk/gtk-boxed.defs: add GtkTextIter * gtk/gtkmarshal.list: Add marshallers for text widget that properly use OBJECT and BOXED 2000-11-01 Havoc Pennington * gtk/testgtk.c (create_labels): Test set_markup_with_accel() * gtk/gtklabel.c (set_markup): Convert the unichar to a GDK keyval before returning it. 2000-11-01 Havoc Pennington * gdk/gdkpixbuf-render.c (gdk_pixbuf_render_to_drawable_alpha): Clip the rectangle to be rendered to the drawable, since get_from_drawable() requires a region within the drawable 2000-11-01 Havoc Pennington * gtk/gtkimage.c (gtk_image_expose): Um, don't randomly subtract 4 from coordinates. Wed Oct 25 20:10:57 2000 Owen Taylor * gdk/gdkevents.c (gdk_event_copy): Only ref the window if it isn't NULL. 2000-11-01 Havoc Pennington * gtk/gtklabel.c (gtk_label_set_attributes): Set a PangoAttrList on a label (gtk_label_finalize): unref the attr list if any. * gtk/testgtk.c (create_get_image): close test on second click (make_message_dialog): close dialog if it exists * gdk/gdkpango.c (gdk_draw_layout): Handle rise attribute * gdk-2.0.pc.in (Requires): Make it require gdk-pixbuf-2.0 not gdk-pixbuf * gtk/gtklabel.c (gtk_label_set_markup): new function to set label from Pango markup format (gtk_label_set_markup_with_accel): ditto but with accelerator parsing * gtk/gtkimage.c (gtk_image_expose): reformatting. * gdk/gdkpixbuf-drawable.c (gdk_pixbuf_get_from_drawable): Hack to reflect current state of GDK - use gdk_drawable_get_colormap, etc. Check GDK_IS_WINDOW() not !GDK_IS_PIXMAP() to decide whether to call gdk_window_get_origin(). * gdk/gdkpixbuf-render.c (gdk_pixbuf_render_to_drawable_alpha): implement GDK_PIXBUF_ALPHA_FULL Wed Nov 1 03:43:42 2000 Tim Janik * gtk/gtksignal.c (gtk_signal_compat_matched): make use of g_signal_handlers_block_matched, g_signal_handlers_unblock_matched and g_signal_handlers_disconnect_matched to block/unblock and disconnect multiple handlers respectively, instead of only treating the first handler found (bug reported by owen). Mon Oct 30 19:23:50 2000 Jonathan Blandford * gtk/gtktreeview.c (gtk_tree_view_expand_row): New function. * gtk/gtktreeview.c (gtk_tree_view_collapse_row): New function. * gtk/gtktreeview.c, gtk/gtktreemodel.c, gtk/gtktreeselection.c gtk/gtktreestore.h, gtk/gtktreeview.h, gtk/gtktreeviewcolumn.c, gtk/gtktreeviewcolumn.h: Fixed inline docs. * docs/reference/gtk/tree_widget.sgml: Proto intro to the tree widget. Needs writing someday. * docs/reference/gtk/tmpl/gtktree*sgml: Added the tree widget to the docs. 2000-10-30 Havoc Pennington * gtk/gtktextview.h, gtk/gtktextview.c: Rename delete_at_cursor delete_from_cursor, and move to move_cursor. 2000-10-30 Havoc Pennington * gtktextbtree.c, gtktextbtree.h, gtktextbuffer.c, gtktextbuffer.h, gtktextchild.c, gtktextchild.h, gtktextchildprivate.h, gtktextdisplay.c, gtktextdisplay.h, gtktextiter.c, gtktextiter.h, gtktextiterprivate.h, gtktextlayout.c, gtktextlayout.h, gtktextmark.c, gtktextmark.h, gtktextmarkprivate.h, gtktextsegment.c, gtktextsegment.h, gtktexttag.c, gtktexttag.h, gtktexttagprivate.h, gtktexttagtable.c, gtktexttagtable.h, gtktexttypes.c, gtktexttypes.h, gtktextview.c, gtktextview.h: Massive reindentation and reformatting. Arg alignment and comments still need fixing in various places. 2000-10-30 Havoc Pennington * gtk/gtktextview.h, gtk/gtktextview.c: Change run action signals to be named insert_at_cursor and delete_at_cursor so C++ can handle them. 2000-10-28 Tor Lillqvist * gtk/gtkrc.c (gtk_rc_append_default_module_path): Make sure not to get a double directory separator in case the home directory ends with one. This would cause trouble especially on Windows, where the path will be confused with the syntax for an an UNC (network share) path \\server\share\path. (gtk_rc_add_initial_default_files): Ditto. Sat Oct 28 02:33:09 2000 Robert Brady * gtk/gtkmarshal.list: add new marshallers for GtkTextView. * gtk/gtktextview.c: Use correct marshallers. Fri Oct 27 17:56:26 2000 Jonathan Blandford * gtk/gtkliststore.c: Not sure how this ever worked. Fixed it to use new iter stuff, and added all the appropriate signals et al. * gtk/gtktreedatalist.h: s/gtk/_gtk to further reinforce that this code is internal to gtk only. 2000-10-28 Tor Lillqvist * gtk/gtk.def * gtk/makefile.{mingw,msc}.in: Adjust to Tim's changes. Use glib-genmarshal etc. Fri Oct 27 20:15:00 2000 Tim Janik * gtk/Makefile.am: added dependancies for testtextbuffer which broke parallel builds. Fri Oct 27 18:51:44 2000 Tim Janik * gtk/gtksignal.[hc]: adapt to GSignal signature changes. 2000-10-27 Robert Brady * configure.in (ALL_LINGUAS): Add en@IPA (English, phonetic), en_GB (British), ia (Interlingua). 2000-10-26 Havoc Pennington * gtk/gtktextiter.c (my_strrstr): fix constness warning Fixed output of: nm -g -l .libs/libgtk-x11-1.3.so | grep ' T ' | grep -v gtk_ | grep -v GTK_ * gtk/gtktextsegment.c (char_segment_new): rename (_char_segment_new_from_two_strings): rename (_toggle_segment_new): rename * gtk/gtkclipboard.c (ensure_clipboard_widget): make this static (make_clipboard_widget): make it static (text_get_func): static (text_clear_func): static * gtk/gtkcolorsel.c (adjustment_changed): make this function static (hex_changed): make it static (hsv_changed): make it static (opacity_entry_changed): make it static * gtk/gtktextbtree.c (change_node_toggle_count): rename with _gtk (toggle_segment_check_func): rename with _gtk * gtk/gtktextchild.c (_pixbuf_segment_new): rename with _gtk (_widget_segment_new): rename (_widget_segment_add): rename (_widget_segment_remove): rename (_widget_segment_ref): rename (_widget_segment_unref): rename * gtk/gtktextmark.c (_mark_segment_new): Rename _gtk_mark_segment_new 2000-10-26 Havoc Pennington * gtk/gtkmarshal.list: add new marshallers used by the text widget * gtk/gtktextbuffer.c (gtk_text_buffer_class_init): fix marshaller types * gtk/gtktexttagtable.c (gtk_text_tag_table_class_init): fix marshaller types * gtk/gtktextlayout.h, gtk/gtktextlayout.c, gtk/gtktextdisplay.h, gtk/gtktextdisplay.c: We need to preserve Tk copyrights and license on these files. * gtk/gtktextiter.c (gtk_text_iter_backward_search): Make this work. * gtk/gtktextbtree.c (gtk_text_btree_new): init stamps to runtime random number different for each tree, instead of a constant I made up. Thu Oct 26 07:36:16 2000 Tim Janik * gtk/Makefile.am: buncha cleanups, kludged build sources dependencies with a Makefile: oldest-source-stamp dependancy for the moment. automake is really fighting us here, with intentionally not allowing user-defined rules or dependancies prior to it's -include $(DEP_FILES) statement. sucks rocks! * gtk/Makefile.am: added gtktextlayout.h and gtktextdisplay.h to public headers. tehy have a comment stating that they are "semi-public" aren't included by gtk.h and if enums popup there, they can be /*< skip >*/-ed. * gtk/gtktextlayout.h: * gtk/gtktextdisplay.h: indentation fixes, comment fixes, added LGPL... Wed Oct 25 20:40:25 2000 Jonathan Blandford * gtk/gtktreemodel.h: Got rid of GtkTreeNode, and changed it to GtkTreeIter. Added iterators everywhere. * gtk/gtktreeviewcolumn.c: Changed to use the iterators. * gtk/gtktreeviewselection.c: Changed to use the iterators. * gtk/gtktreestore.c: Changed to use the iterators. * gtk/gtkliststore.c: Commented out the code. Will convert to iterators tomorrow. * gtk/gtkmodelsimple.c: Commented out the code. Will convert to iterators tomorrow. * gtk/treestoretest.c: Changed to use iterators. * demos/testgtk/main.c: Moved to use the new iterator system. Thu Oct 26 02:10:32 2000 Tim Janik * gtk/Makefile.am: invoke maketypes.awk with LC_ALL=C to avoid localization misbehaviour. * gtk/gtk-boxed.defs: nuked "boxed" type GtkCTreeNode, since it's a useless type without copy/free. * gtk/gtkctree.c (gtk_ctree_class_init): use GTK_TYPE_POINTER instead of GTK_TYPE_CTREE_NODE. Thu Oct 26 00:51:52 2000 Tim Janik * gtk/gtksignal.c: (gtk_signal_emitv): use g_value_set_static_{string|boxed} where applicable. * gtk/gtk-boxed.defs (GtkSelectionData): specify gtk_selection_data_copy and gtk_selection_data_free do GtkSelectionData work as params in signals. Wed Oct 25 20:47:41 2000 Tim Janik * gtk/gdk-pixbuf-loader.c (gdk_pixbuf_loader_class_init): urg, removed implementation of gtk_marshal_VOID__INT_INT_INT_INT. if people do that, couldn't they at least give it a non-standard name? * gtk/gtktextlayout.c: arg! yet another implementation of gtk_marshal_VOID__INT_INT_INT_INT(), is this a conspiracy? * gtk/gtktextbuffer.c: gotcha! captured a vagabonding gtk_marshal_VOID__INT_POINTER_INT() implementation, braught it back home. now i know this _is_ a conspiracy. * gtk/gtkwidget.c (gtk_widget_class_init): marshaller fixups for ::state-changed. * gtk/gtkaccelgroup.c (gtk_accel_group_create_remove): (gtk_accel_group_create_add): marshaller signature fixups. * gtk/gtklistitem.c (gtk_list_item_class_init): signal creation fixups, pass in GTK_TYPE_SCROLL_TYPE instead of GTK_TYPE_ENUM. * gtk/gtkobject.[hc]: removed GTK_CONNECTED flag, it's not valid anymore. Tue Oct 24 23:59:21 2000 Tim Janik * docs/reference/Makefile.am: disabled SUBDIRS for the moment, since due to the signal system changes, it wouldn't build currently. to be fixed soon. * docs/Changes-2.0.txt: GtkSignal/GSignal updates. * gtk/gtkwidget.c: ::direction_changed takes an enum as argument, so it needs gtk_marshal_VOID__ENUM() instead of gtk_marshal_NONE__UINT(). * gdk/gdk*.c: adapted type registration functions. * gtk/gtkbindings.c: * gtk/gtkaccelgroup.c: operate on GSignalQuery, GtkSignalQuery is gone. * gtk/gtkenums.h: define GtkSignalRunType in terms of GSignalType. * gtk/gtkobject.c: (gtk_object_destroy): (gtk_object_shutdown): fixed recursion guards. basically we have to catch the case where any of GObject.shutdown() or gtk_object_destroy() is called during ::destroy, and avoid recursion there. * gtk/gtktypeutils.c: * gtk/maketypes.awk: awk-script hackup to provide gtk_type_init() with boxed_copy/boxed_free. this needs a more general solution based on a publically installed code-generator utility. * gtk/gtktypeutils.[hc]: compat aliased GTK_TYPE_BOXED to G_TYPE_BOXED, glib's gobject has support for that now. define GtkSignalMarshaller in terms of GSignalCMarshaller. Mon Oct 23 09:36:42 2000 Tim Janik * gtk/gtksignal.[hc]: * gtk/gtkmarshal.[hc]: * gtk/Makefile.am: generate marshallers with glib-genmarshal and don't compile gtkmarshal.c on its own anymore, just include it in gtksignal.c. removed #include s all over the place, gtksignal.h takes care of that. * *.c: marshaller name fixups. * gtk/gtkmarshal.list: added a comment briefing the format. Sun Oct 22 23:14:39 2000 Tim Janik * gtk/gtksignal.[hc]: nuked old implementation. we mostly have compatibility macros here now. more specifically, most of the API is preserved (yes, _most_, nonwithstanding the following exceptions listed, the API is stil lHUGE ;) things that got removed completely: GtkSignalQuery, gtk_signal_query(), gtk_signal_n_emissions(), gtk_signal_n_emissions_by_name(), gtk_signal_handlers_destroy(), gtk_signal_set_funcs(), gtk_signal_handler_pending_by_id(), gtk_signal_add_emission_hook(), gtk_signal_add_emission_hook_full(), gtk_signal_remove_emission_hook(). non-functional functions variants: gtk_signal_add_emission_hook(), gtk_signal_remove_emission_hook(). the GtkCallbackMarshal argument to gtk_signal_connect_full() is not supported anymore. (gtk_signal_compat_matched): new internal function to aid implementation of the compatibility macros, it provides functionality to block/unblock/disconnect handlers based on func/data. * gtk/gtkenums.h: define GtkSignalRunType in terms of GSignalType, * *.c: adaptions to new type registration API signatures. Fri Oct 20 15:26:33 2000 Tim Janik * gtk/gtktypeutils.[hc]: removed G_TYPE_GTK_POINTER cludge. 2000-10-25 Robert Brady * gdk/x11/gdkproperty-x11.c (gdk_property_get, gdk_property_change, gdk_property_delete): If window == NULL, assume the root window. (restoring the behaviour that was in 1.2). * gtk/testtext.c (save_buffer): Allow creation of new files when saving. (fill_file_buffer): Don't die if a UTF-8 sequence is split across calls to read(). 2000-10-25 Tor Lillqvist * gdk/gdkwindow.c: Include x11/gdkx.h only when building for X11. * gdk/win32/gdkdrawable-win32.c * gdk/win32/gdkimage-win32.c * gdk/win32/gdkprivate-win32.h: Corresponding changes as in the X11 backend. * gdk/win32/gdkcc-win32.c * gdk/win32/gdkcolor-win32.c * gdk/win32/gdkfont-win32.c * gdk/win32/gdkinput-win32.c * gdk/win32/gdkmain-win32.c * gdk/win32/gdkproperty-win32.c: Silence gcc -Wall. 2000-10-24 Havoc Pennington * gtk/gtktextview.c (gtk_text_view_scroll_to_mark_adjusted): make it a static function * gtk/gtktextbtree.c (gtk_text_btree_tag): Gee, maybe we should redraw text when a tag is applied to it. * gtk/gtktexttag.c (gtk_text_tag_affects_size) (gtk_text_tag_affects_nonsize_appearance): private functions to see if a tag requires various kinds of redraw/layout to be queued up. * gtk/gtktexttag.h (struct _GtkTextTag): Remove relief crackrock * gtk/testtext.c (fill_example_buffer): Put the cursor at the start of the buffer, so search works by default * gtk/gtktextiter.c (lines_match): init match_start always * gtk/gtktextbuffer.c (gtk_text_buffer_get_iter_at_line_index): New function, get iter at a line + a byte index * gtk/gtktextiter.c (gtk_text_iter_set_line_index): New function, to set byte position within a line (gtk_text_iter_check): remove leftover G_BREAKPOINT thing 2000-10-23 Havoc Pennington * gtk/testtext.c: Re-enable the "find" dialog * gtk/testgtk.c: Add test for gdk_drawable_get_image * gdk/gdkwindow.c (gdk_window_begin_paint_region): Fix bug where the arguments to gdk_draw_drawable were in the wrong order (gdk_window_paint_init_bg): This function was ignoring the init_region, instead of clipping to it, so the entire backing pixmap was cleared on every begin_paint() (gdk_window_begin_paint_region): Hmm, the same list-walking bug was in here again, the loop kept using the same GtkWindowPaint over and over. (gdk_window_begin_paint_region): Fix a bug where we had two x_offset instead of x_offset and y_offset * gdk/gdkdraw.c (gdk_drawable_get_image): get composite drawable before we get the image. (gdk_draw_drawable): get the composite before we draw the drawable. (gdk_drawable_real_get_composite_drawable): default get_composite_drawable implementation that returns the drawable itself * gdk/gdkdrawable.h (struct _GdkDrawableClass ): Add get_composite_drawable virtual function * gdk/gdkwindow.c (gdk_window_begin_paint_region): Fix a cheesy list-walking bug * gdk/x11/gdkdrawable-x11.c (gdk_x11_draw_drawable): Add a hack to make this work if the source drawable is a GdkDrawableImplX11 instead of a public drawable type. This is really broken; the problem is that GdkDrawable needs a virtual method get_xid(), but of course that doesn't work in practice. Enter RTTI. Also, improve mismatched depth message. * gdk/gdkpixmap.c (gdk_pixmap_get_image): Implement get_image for GdkPixmap * gdk/x11/gdkdrawable-x11.c (gdk_drawable_impl_x11_class_init): install _gdk_x11_get_image as our implementation of get_image * gdk/x11/gdkimage-x11.c (gdk_image_get): Rename to _gdk_x11_get_image and export for use in gdkdrawable-x11.c * gdk/gdkimage.c (gdk_image_get): Make this just a wrapper around gdk_drawable_get_image * gdk/gdkdraw.c (gdk_drawable_get_image): call virtual get_image * gdk/gdkdrawable.h (struct _GdkDrawableClass ): Virtualize get_image * gtk/gtktreestore.c (gtk_tree_store_get_node): remove weird trailing semicolon after for loop Mon Oct 23 12:07:57 2000 Owen Taylor * gtk/gtkwidget.c (gtk_widget_set_style_internal): Fix problem where font_desc for widget's context lagged widget's font_desc by one step. 2000-10-22 Tor Lillqvist * gdk/win32/gdkgc-win32.c * gdk/win32/gdkimage-win32.c: Remove gcc -Wall warnings. * gtk/makefile.mingw.in * gtk/gtk.def: Updates. * gtk/testgtk.c: sleep() is called _sleep in MS's C library. * gtk/gtkimcontextsimple.c: Include for bsearch(). * gtk/makefile.msc: Remove * gtk/makefile.msc.in: New file, like makefile.mingw.in. * gtk/Makefile.am: Add it. * configure.in: Generate it. * gtk/gtktextbuffer.c (gtk_text_buffer_create_child_anchor) * gtk/gtktextbtree.c (gtk_text_line_char_to_byte): Return something even if not implemented, to satisfy picky MSVC. Patches by Hans Breuer: * gdk/win32/gdkdrawable-win32.c (gdk_win32_draw_glyphs): Call SetBkMode() and SetTextAlign() before calling pango_win32_render(). * gdk/win32/gdkgc-win32.c (gdk_win32_gc_values_to_win32values): Set hcliprgn to NULL after destroying it. (gdk_gc_set_clip_rectangle): Delete hcliprgn and set to NULL. * gdk/win32/gdkgeometry-win32.c (_gdk_windowing_window_queue_antiexpose): More effective implementation. * gdk/win32/gdkpixmap-win32.c (gdk_pixmap_new): Use drawable's depth as default, not the visual's. * gdk/win32/gdkwindow-win32.c (gdk_window_set_title): Guard against empty title. * gdk/win32/gdkprivate-win32.h: Define a helper macro, IMAGE_PRIVATE_DATA. * gdk/win32/gdkimage-win32.c: Use it. 2000-10-22 Robert Brady * configure.in: Check for bind_textdomain_codeset * gtk/gtkmain.c (gtk_init_check): If bind_textdomain_codeset present, make use of it. Add a translatable string "default:LTR" which, if translated to "default:RTL", will cause the default direction to be Right-to-Left. * gtk/gtkrange.h, gtk/gtkrange.c: Take into account the widget direction if marked as flippable. * gtk/gtkhscale.c: Mark widget as flippable. 2000-10-04 Havoc Pennington * gtk/testgtk.c (create_buttons): create some stock buttons with the default accel group (create_image): test some new GtkImage features (make_message_dialog): test GtkMessageDialog (create_modal_window): fix someone's bizzarro indentation * gtk/gtkwindow.h, gtk/gtkwindow.c: Implement GTK_WIN_POS_CENTER_ON_PARENT. Add "destroy with parent" setting, which means the window goes away with its transient parent. (gtk_window_get_default_accel_group): get the default accel group for the window. (gtk_window_set_destroy_with_parent): set/unset destroy with parent flag (gtk_window_read_rcfiles): invalidate icon set caches after reloading rcfiles * gtk/gtkenums.h (GtkWindowPosition): add GTK_WIN_POS_CENTER_ON_PARENT, which centers a dialog on its parent window when the dialog is mapped for the first time. * gtk/gtkmessagedialog.h, gtk/gtkmessagedialog.c: Add a simple message dialog class * gtk/gtkdialog.c (gtk_dialog_init): Connect delete event handler to emit response signal, and maybe later it would honor a hide_on_delete flag - though that isn't there yet. Set border width on the vbox to 2, so we get some padding. Use a button box for the action area. (gtk_dialog_key_press): synthesize a delete event if Esc is pressed and the GtkWidget key press handler didn't handle the escape key. (gtk_dialog_new_with_buttons): new function creates a dialog with some default buttons in it. (gtk_dialog_add_action_widget): add an activatable widget as a button in the dialog - you can also add a non-activatable widget by accessing the action area directly. (gtk_dialog_add_button): add a simple button - stock ID or label - to the action area (gtk_dialog_response): emit response signal (gtk_dialog_run): block waiting for the dialog, return the response. Override normal delete_event behavior, so that delete_event does nothing inside gtk_dialog_run(). * gtk/gtkdialog.h, gtk/gtkdialog.c: Add "response" signal emitted when an action widget is clicked or the dialog gets delete_event * gtk/gtk.h: add gtkmessagedialog.h * gtk/Makefile.am: add gtkmessagedialog.[hc] 2000-10-18 Havoc Pennington * gtk/gtktextiter.c (gtk_text_iter_forward_to_newline): Fix a bug where any number of empty lines would get skipped * gtk/gtktextiter.h: Remove padding from GtkTextIter; live on the edge. * gtk/gtktextiter.c (gtk_text_iter_make_surreal): enhance the warning about invalid iterators (explain more thoroughly) (gtk_text_iter_in_region): rename gtk_text_iter_in_range * gtk/gtktextview.c (FOCUS_EDGE_WIDTH): Make focus rectangle less big * demos/*.c: Add error handling * gtk/gtktextbuffer.c: don't modify const iterators * gtk/gdk-pixbuf-loader.c: Add full error handling here * gtk/gtkimage.c (gtk_image_set_from_file): ignore errors on file load * gtk/gtkiconfactory.c: Update to reflect addition of error handling to gdk-pixbuf loaders Wed Oct 18 11:14:05 2000 Owen Taylor * configure.in demos/Makefile.am demos/testgtk/*: Start of work to move to new modularized testgtk. 2000-10-17 Jonathan Blandford * gtk/gtktreeview.c: Draw the arrows correctly. * gtk/gtktreemodel.c: Added user docs. * gtk/gtk.h: remove gtktreedatalist.h. * gtk/gtktreestore.c (gtk_tree_store_get_type): Get the correct parent when generating my type. * gtk/gtkmarshal.list: Added four more marshallers: INT:NONE, POINTER:NONE, POINTER:POINTER, and POINTER:POINTER,INT. 2000-10-16 Jonathan Blandford * gtk/gtktreemodel.h (struct _GtkTreeModelIface): Move GtkTreeModel from object to interface. 2000-10-16 Havoc Pennington * gtk/gtktreeviewcolumn.c: #include gtklabel.h, fixing compilation 2000-10-16 Jonathan Blandford * gtk/gtktreeselection.c: Add API documentation to all public functions. * gtk/gtktreeviewcolumn.c: Added API documentation to all public functions. 2000-10-15 Jonathan Blandford * gtk/gtktreeview.c (gtk_tree_view_insert_column): New function proposed by Guy Harris . Also, added API docs to all public functions. * gtk/gtktreeview.c, gtk/gtktreeview.h, gtk/gtktreestore.h, gtk/gtktreestore.c, gtk/gtkliststore.h, gtk/gtkliststore.c, gtk/gtkmodelsimple.c, gtk/gtkmodelsimple.h, gtk/gtktreedatalist.c, gtk/gtktreemodel.h, gtk/gtktreeselection.c, gtk/gtktreeselection.h: Fix GtkTreeNode *node ->GtkTreeNode node issue. 2000-10-14 Robert Brady * configure.in: Added "fa" (Persian) to ALL_LINGUAS. 2000-10-12 Jonathan Blandford * gtk/gtktreedatalist.[ch] (gtk_tree_data_list_value_to_node): Added values other then G_TYPE_STRING. * gtk/gtktreeselection.c: Minor commenting updates. * gtk/gtktreeview.c: Format updates. 2000-10-09 Tor Lillqvist * README.win32: Update. * gdk/win32/gdkgeometry-win32.c (gdk_window_clip_changed): Add two lines that had been deleted by mistake (?). * gdk/win32/gdkcursor-win32.c (gdk_cursor_new_from_pixmap): Handle also the case fg==white and bg==black (but still not randomly coloured cursors). Thanks to Wolfgang Sourdeau. * gdk/win32/*.c: Silence gcc -Wall. * gtk/gtk.def: Add missing entry points. Fixes by Hans Breuer: * gdk/makefile.msc * gdk/win32/makefile.msc: Update. * gdk/testgdk.c: If compiling with debugging (with _DEBUG defined, some MSVC thing, presumably), cause breakpoint on failures. Add GDK_NOR case. Call g_log_set_always_fatal. * gdk/win32/gdkwin32id.c (gdk_win32_handle_table_insert): Handle should be pased by reference. * gdk/win32/gdkprivate-win32.h: Correct declaration accordingly. * gdk/win32/*.c: Correct calls to gdk_win32_handle_table_insert. * gdk/win32/gdkevents-win32.c * gdk/win32/gdkwindow-win32.c: Handle WM_CREATE. * gdk/win32/gdkgc-win32.c: Fix mixups of drawable and implementation object. * gdk/win32/gdkimage-win32.c (gdk_image_get): Handle drawables, not just windows. * gdk/win32/gdkpixmap-win32.c (gdk_pixmap_impl_win32_finalize): Use the wrapper object. 2000-10-06 Havoc Pennington * Makefile.am (SRC_SUBDIRS): contrib subdir * gdk/gdkpixbuf.h: Move GdkPixbufAlphaMode to gdk-pixbuf library, so it can be used in Xlib version * demos/testpixbuf.c (update_timeout): error checking from 1.0 tree * gtk/gdk-pixbuf-loader.c (gdk_pixbuf_loader_get_pixbuf): Sync change from 1.0 tree that returns first frame of animation if the loaded file is an animation. * contrib: add new directory to hold stuff that comes with GTK+ but isn't really part of GTK+ (for now, gdk-pixbuf-xlib) * configure.in: add contrib/* 2000-10-05 Havoc Pennington * demos/testpixbuf-save.c: add pixbuf save test * demos/Makefile.am: add testpixbuf-save.c 2000-10-05 Jonathan Blandford * gtk/gtktree.h (GTK_TREE_SELECTION): Replaced with GTK_TREE_SELECTION_OLD to prevent conflict with gtktreeselection.c * gtk/testgtk.c: s/GTK_TREE_SELECTION/GTK_TREE_SELECTION_OLD/ * gtk/gtktreeselection.[ch]: Replaced "node_selected"/"node_unselected" signal with "selection_changed" signal. 2000-10-04 Jonathan Blandford * gtk/gtk{tree,cell}?*.[ch]: Checked in initial draft of the new tree widget. 2000-10-04 Jonathan Blandford * gdk/gdkwindow.c (gdk_window_draw_arc): Fix obvious bug in circle drawing. Wed Oct 4 15:52:15 2000 Owen Taylor * gdk/x11/gdkselection-x11.c (_gdk_selection_window_destroyed): Move list pointer forwards before removing item from list. (Crash reported by Salmaso Raffaele) * gdk/gdkwindow.h: Remove spurious trailing , * gdk/Makefile.am (LDFLAGS): You can't do interlibrary dependencies on uninstalled libraries, sorry folks. 2000-10-04 Havoc Pennington * gtk/gtkstock.h, gtk/gtkstock.c, gtk/gtkiconfactory.h, gtk/gtkiconfactory.c: Fix copyrights * demos/testpixbuf.c: add inline pixbuf test Mon Sep 25 15:05:17 2000 Owen Taylor * gdk/gdkwindow.h gdk/x11/gdkwindow-x11.c (gdk_window_iconify): Add gdk_window_iconify. * gdk/gdkwindow.h gdk/x11/gdkwindow-x11.c (gdk_window_set_geometry_hints): Add win_gravity to geometry structure. * gdk/x11/gdkevents-x11.c (gdk_wm_protocols_filter): Implement _NET_WM_PING. * gdk/x11/gdkmain-x11.c (_gdk_windowing_init_check): Set _NET_WM_PID on the client leader. * gdk/x11/gdkwindow-x11.c (gdk_window_set_icon_name): Handle UTF-8 better. * gdk/x11/gdkwindow-x11.c (gdk_window_set_title): Handle UTF-8 better, set _NET_WM_NAME as well. Only set icon name if it hasn't previously been explicitely set. 2000-10-03 Havoc Pennington * gtk/testtextbuffer.c: clean up trailing whitespace, add extensive tests for tag toggle iteration. * gtk/gtktextiter.c (MAX_LINEAR_SCAN): decrease linear scan distance * gtk/gtktextbtree.c (gtk_text_line_next_could_contain_tag): optimize case where the tag root is on level 1 (gtk_text_line_previous_could_contain_tag): attempt to implement (gtk_text_line_next_could_contain_tag): Abstract out node_compare functionality * gtk/gtktextiter.c (gtk_text_iter_backward_to_tag_toggle): Implement this, though not very efficiently. * gtk/gtktextiterprivate.h: reformat * gtk/gtktextiter.c (gtk_text_iter_get_char): return 0 on the end iterator * gtk/gtktextbuffer.c (gtk_text_buffer_delete_interactive): Fix this to properly revalidate the iterators. * gtk/gtktextview.c (gtk_text_view_delete): fix control-K to work properly at the end of the line (and therefore on empty lines) * gtk/gtktextbtree.c (gtk_text_btree_get_selection_bounds): Gee, maybe we should return a value... 2000-10-03 Tor Lillqvist * config.h.win32: Guard definition of alloca(). glib.h now handles that. * gdk/gdk.def * gtk/gtk.def: Add new entry points. Changes just to make GTK+ build without errors on Win32. No hope of it working in its current state, though...: * gdk/win32/gdkselection-win32.c: Remove gcc -Wall warnings. Add some functions from the X11 backend, just to make GTK+ build. * gdk/makefile.mingw.in * gtk/makefile.mingw.in: Use correct gdk_pixbuf version number. Add new object files. * gtk/gtkclipboard.c: Include gdkwin32.h on Win32. Use GetMessageTime to get timestamp (where on X11 uses gdk_x11_get_server_time()). 2000-10-02 Havoc Pennington * gtk/gtktextview.c: text_window_* weren't static and should have been. Start work on child widgets; not yet complete, syncing to office computer. * gtk/gtktextchild.h: change this to contain a public interface, starting work on child interfaces. * gtk/gtktextchildprivate.h: move private interfaces here * gtk/Makefile.am: update to reflect gtktextchildprivate.h * gtk/gtktextview.h, gtk/gtktextview.c, gtk/gtktextbuffer.h, gtk/gtktextbuffer.c, gtk/gtktextiter.h, gtk/gtk/textiter.c, gtk/gtktextmark.c: copyright notices * gtk/gtktextmarkprivate.h: reformat, and put _ in front of internal functions * gtk/gtktextchild.c (_pixbuf_segment_new): put _ in front of internal function * gtk/gtktextlayout.c (gtk_text_layout_get_line_display): Reformatting 2000-09-30 Havoc Pennington * gtk/gtktextbtree.c (gtk_text_btree_get_selection_bounds): Handle NULL start/end pointers * gtk/gtktextbuffer.c: Write some docs (gtk_text_buffer_get_selection_bounds): Allow start/end to be NULL, so you can just check whether there's a selection. * gtk/gtktextbtree.c (gtk_text_btree_remove_mark): No need to cleanup_line or segments_changed ourselves, it gets done in unlink_segment * gtk/gtktextmark.h: s/gtk_text_mark_deleted/gtk_text_mark_get_deleted/ * gtk/gtktextsegment.h: Clean up some indentation and naming mess * gtk/gtktextmark.c: delete some more old Tk cruft * gtk/gtktextbuffer.c (gtk_text_buffer_delete_mark): add ref to mark before removing it, so we can emit MARK_DELETED with a valid pointer. (gtk_text_buffer_mark_set): hold ref across signal emission * gtk/gtktextbtree.c (gtk_text_btree_remove_mark): improve whining about attempts to delete special marks * gtk/gtktextbuffer.c (_gtk_text_buffer_spew): Prepend with underscore, since it's internal. * gtk/gtktextbuffer.h: Remove find_string prototype, this is now implemented in terms of iterators in gtktextiter.h * gtk/gtktextbuffer.c (gtk_text_buffer_set_text): New function, destructively sets contents of buffer. Also a convenient way to clear the buffer by setting text to "" * gtk/gtktextiter.c (gtk_text_iter_make_surreal): reformat multiline string literal * gtk/testtext.c (text_changed_callback): Redraw line numbers if text changes. * gtk/gtktextiter.c (forward_char): Return FALSE if new location is not dereferenceable (gtk_text_iter_forward_lines): fix return value 2000-09-29 Havoc Pennington * gtk/gtktexttag.c (gtk_text_tag_set_priority): fix indentation * gtk/gtktextview.c: Implement drag thresholding; change functions that set border window size to have nicer name (gtk_text_view_mark_set_handler): Fix this to have the right signature. * gtk/testtextbuffer.c (fill_buffer): Update with pixbuf changes * gtk/testtext.c: Update with API changes, put line numbers on both sides. * gtk/gtktextiter.c (gtk_text_iter_get_pixbuf): Replace get_pixmap with this * gtk/gtktextchild.h, gtk/gtktextchild.c: replace all pixmap with pixbuf; delete a big block of #if 0 Tk code * gtk/gtktextbuffer.c (gtk_text_buffer_insert_pixbuf): Replace insert_pixmap with insert_pixbuf 2000-09-29 Martin Baulig * gdk-pixbuf.pc.in: Renamed to gdb-pixbuf-2.0.pc.in to avoid confusion with the GdkPixbuf of the GNOME 1.x platform. 2000-09-29 Havoc Pennington * gtk/gtktextview.c: Implement the side windows. * gtk/testtext.c: Implement simple line numbering in the left side window; seems to make scrolling sloooow. Oops. Also, cursor blink is for some reason causing redraws of the line numbers. Should investigate... 2000-09-28 Havoc Pennington * gtk/gtktextview.c: Set up infrastructure to deal with lots of scrolling child windows, and draw focus rectangle properly. (gtk_text_view_buffer_to_window_coords): Coordinate transformation to deal with all these freaking windows and offsets (gtk_text_view_window_to_buffer_coords): transform the other way * gtk/testtext.c (create_buffer): Update to match Pango API change * gtk/gtktexttagtable.c (gtk_text_tag_table_foreach): Go over the anonymous tags (foreach_unref): don't emit remove signal from finalize, just set tag's parent to NULL 2000-09-26 Havoc Pennington * gtk/gtkiconfactory.c (gtk_icon_set_clear): remove Fix some warnings 2000-09-26 Havoc Pennington * gtk/Makefile.am (gtk_private_h_sources): Move more text widget headers into the private header list * Makefile.am (pkgconfig_DATA): install pkg-config files * configure.in: add pkg-config files * gdk-2.0.pc.in, gdk-pixbuf.pc.in, gtk+-2.0.pc.in: pkg-config files * gtk/gtkwindow.c (gtk_window_read_rcfiles): Invalidate outstanding icon caches on theme change. * gtk/gtkiconfactory.h, gtk/gtkiconfactory.c: New icon system. Three important types: (GtkIconSource): Specification for creating a pixbuf appropriate for a direction/state/size triplet from a source pixbuf or filename (GtkIconSet): List of GtkIconSource objects that are used to create the "same" icon (e.g. an OK button icon), and cache for rendered icons (GtkIconFactory): Hash from stock ID to GtkIconSet; used to look up the icon set for a given stock ID. GTK maintains a stack of GtkIconFactory to search, and applications or libraries can add additional icon factories on top of the stack * gtk/gtkrc.h, gtk/gtkrc.c: When loading an RcStyle, parse the set of GtkIconSource specified for a given stock ID into a GtkIconSet, and put the GtkIconSet into a GtkIconFactory for the RcStyle, under the specified stock ID. * gtk/gtkstyle.h, gtk/gtkstyle.c: Add a virtual function render_icon used to derive a GdkPixbuf from a GtkIconSource. This allows people to theme how prelight, insensitive, etc. are done. (gtk_style_lookup_icon_set): Look up a stock ID in the list of icon factories for a style, and return the resulting icon set if any. (gtk_style_render_icon): Render an icon using the render_icon method in the GtkStyleClass. * gtk/gtkwidget.h, gtk/gtkwidget.c (gtk_widget_render_icon): Use the style for a given widget to look up a stock ID, get the icon set, and render an icon using the render_icon method of the style * gtk/gtkstock.h, gtk/gtkstock.c: Header with the GtkStockItem type (contains information about a stock item), the built-in stock item IDs, and functions to add/lookup stock items. * gtk/stock-icons/*: Stock icons that come with GTK * gtk/gtkbutton.h, gtk/gtkbutton.c (gtk_button_new_stock): Returns a button based on a GtkStockItem (gtk_button_new_accel): Takes a uline string and accel group, and installs the accelerator. * gtk/gtkimage.h, gtk/gtkimage.c: Make this into a generic image-display widget. 2000-09-25 Havoc Pennington * gtk/gtktexttypes.c: Remove Latin1 conversion stuff * gtk/gtktextbtree.c (gtk_text_btree_node_remove_data): Fix a bug when removing node data, we didn't properly re-splice the linked list after removing the data. * gtk/gtktextview.c (gtk_text_view_key_press_event): Pass through GDK_Tab as literal tab, Ctrl-Tab to tab to focus widget * gtk/gtktextbuffer.c (selection_received): fix g_convert usage * gtk/gtktextlayout.c (set_para_values): Set tab array for the layout from the GtkTextTag. * gtk/gtktexttypes.h: delete tab and search cruft, remove g_convert() in favor of GLib version * gtk/gtktexttypes.c: remove tab implementation from here, move to Pango * gtk/gtktexttag.h, gtk/gtktexttag.c: Implement tab stuff using new PangoTabArray from Pango * gtk/gtktexttag.c (gtk_text_attributes_fill_from_tags): Remove unused border_width stuff Thu Sep 14 12:21:12 2000 Owen Taylor * gtk/gtktexttypes.[ch]: Remove g_convert (moved to glib) and now useless utf_to_latin1() latin1_to_utf() * gtk/gtktextview.[ch]: Change ::move_insert and ::delete_text action signals to ::move and ::delete; create the signals with the right enumeration type, not GTK_TYPE_ENUM so that bindings work. Add C-d, M-d, C-v bindings, change Home, End to move to beginning/end of line, Add C-Home C-End to move to beginning/end of buffer. Change ::cut_text to ::cut_clipboard, etc; combine ::scroll_text into ::move; use new GtkSelectionData functions to simplify DND text handling. * gtk/gtkenums.h gtk/gtktextview.h: Move movement, deletion enumerations here, rename enumeration values to be consistently plural. * gtk/gtktextbuffer.c: Use new clipboard interfaces for cut/copy/paste and primary selection. * gtk/gtktextbuffer.[ch]: Remove excess time and 'interactive' arguments from cut/copy/paste; rename cut to cut_clipboard, etc; remove gtk_text_buffer_get_clipboard_contents(). * gtk/gtktextlayout.[ch]: Add gtk_text_layout_move_iter_to_line_end() to move the iter to line ends. * gtk/gtkselection.[ch] (gtk_selection_data_set/get_text): Functions to set or get a UTF-8 string on the selection data. * gtk/gtkclipboard.[ch]: New, simplified selection handling interfaces. * gtk/gtkinvisible.c (gtk_invisible_new): Realize newly created widgets - one of these is useless if we don't. * gtk/gtkselection.[ch] (gtk_selection_clear_targets): Export a public function clear all targets registered for the widget. * gtk/gtkselection.c (gtk_selection_owner_set) docs/Changes-2.0.txt: Never call gtk_widget_realize() - that was just asking for bizarre side-effects. * gtk/gtkselection.c (gtk_selection_owner_set): Call gdk_selection_owner_set even if the widget is the same so that we reliably update the timestamp on the server. * gdk/x11/gdkevents-x11.c gdk/x11/gdkx.h: Add a gdk_x11_get_server_time() function. * gdk/x11/gdkevents-x11.c gdk/x11/gdkprivate-x11.h gdk/x11/gdkselection-x11.c gdk/x11/gdkwindow-x11.h: Add some tricky filtering on serial numbers for selection clear events to fix up long-standard race condition FIXME's in gtkselection.c. * gdk/gdkproperty.h gdk/x11/gdkselection-x11.h: Add routines to convert from utf8 to compound text or STRING and from a text property to UTF-8. * gtk/gtkmain.[ch] (gtk_get_current_event_time): Add a convenience function gdk_get_current_event_time(). * gtk/gtkselection.c (gtk_selection_data_copy/free): Copy and free selection_data->data properly Sat Sep 9 10:23:53 2000 Owen Taylor * gtk/gtkthemes.c: Remove some unecessary includes. 2000-09-08 Jonathan Blandford * gtk/gtktextdisplay.c * gtk/gtktextlayout.c * gtk/gtktexttag.c * gtk/gtktexttag.h * gtk/testtext.c: Change the overstrike property to strikethrough, to closer match pango. Fri Sep 8 14:28:00 2000 Owen Taylor * gtk/gtktextview.c: Fix up visibility so that focus, cursor_visible and blink interact properly. Reenable cursor blink which had been roughly disabled. Make blink and focus properly per-view. * gtk/gtktextlayout.[ch] (gtk_text_layout_set_cursor_visible): Add a flag for whether to display insertion cursor and a function to set the flag. * gtk/gtktextlayout.c (gtk_text_layout_get_line_yrange): Change get_line_y() to get_line_yrange(), to be a bit more generally useful. Thu Sep 07 20:54:33 2000 George Lebl * gtk/gtkmenu.c: in gtk_menu_set_submenu_navigation_region do stop_navigating_submenu, to clear last timeout properly. Also in gtk_menu_motion_notify move ignore_enter above the conditional to make it always happen as suggested by Owen 2000-09-07 Tor Lillqvist * gdk/win32/makefile.mingw.in: Use -Wall. Add gdkpango-win32.o * gdk/win32/gdkwin32.h: Add more definitions missing from the free w32api headers. * gdk/win32/gdkprivate-win32.h: Add a couple of missing declarations. * gdk/win32/gdkdrawable-win32.c: Remove gcc -Wall warnings. (gdk_win32_get_colormap): A line had been deleted by mistake. * gdk/win32/gdkevents-win32.c: Remove lint (gcc -Wall) here, too. (gdk_event_translate): Handle more virtual keycodes to be able to generate GDK events for Control-comma, Control-period, etc. * gtk/gtk.def: Add some missing entry points. Thu Sep 7 11:47:02 2000 Owen Taylor * gtk/gtktextbuffer.c gtk/gtkimcontext.c gtk/gtkwidget.c: Doc comment fixing. (Mostly non-matching parameter names.) * gtk/gtkcalendar.c gtk/gtklist.c gtk/gtknotebook.c: Modify comments a little to avoid looking like a doc comment. * gtk/gtkspinbutton.h (GTK_INPUT_ERROR): Change INPUT_ERROR to GTK_INPUT_ERROR. (Should the mechanism for erros in spin button conversions be changed to GError?) * gtk/gtkcolorsel.c (GTK_CUSTOM_PALETTE_WIDTH/HEIGHT): Move private #defines into .c file. * gtk/gtktexttag.c (gtk_text_tag_class_init): Alphabetize order of argument addition, remove duplicates. * gtk/gtkaspectframe.h (struct _GtkAspectFrameClass): parent class is FrameClass, not BinClass. * gtk/gtk.h: Add gtkinvisible, which was missing. (It's occasionalyl useful for client apps, if seldom.) * gdk/gdktypes.h: Remove obsolete GDK_CORE_POINTER #define. Wed Sep 6 09:53:15 2000 Owen Taylor * gdk/x11/gdkwindow-x11.c (gdk_window_new): Use X-space coordinates when creating window, instead of GDK-space coordinates. (Avoid BadValue on too large windows.) 2000-09-05 Sebastian Wilhelmi * configure.in (use_mmx_asm): Remove conftest* after use along the lines of AC_TRY_COMPILE. * gtk/gtkrc.c (gtk_rc_parse_file): Use g_path_get_dirname instead of g_dirname, which is deprecated. (gtk_rc_parse_any): Removed calls to g_scanner_{freeze,thaw}_symbol_table, which are deprecated. * gtk/gtkbindings.c (binding_entry_new, binding_entry_destroy): Removed calls to g_hash_table_{freeze,thaw}, as they are deprecated now. * gtk/testtext.c (buffer_pretty_name): Use g_path_get_basename instead of g_basename. 2000-09-04 Elliot Lee * gdk/gdkpixbuf.h: Put text after #endif inside a comment to avoid ANSI warning. Sun Sep 03 00:47:08 2000 George Lebl * gtk/gtkwidget.h: Add some documenting comments about GTK_CAN_DEFAULT, GTK_HAS_DEFAULT and GTK_RECEIVES_DEFAULT just as owen said on irc. * gtk/gtkwindow.c (gtk_window_set_default): Don't blindly set HAS_DEFAULT. Only set it if there isn't another window holding it (a focus window which RECEIVES_DEFAULT) and only unset it if the widget is not the focused window with RECEIVES_DEFAULT. This fixes weird double default bugs in dialogs which has things call gtk_window_set_default at times. Fri Sep 1 22:39:07 2000 Owen Taylor * gtk/gtkmenu.[ch] TODO.xml: Apply patch from Nils Barth and David Santiago to improve submenu navigation. The patch does this by creating a triangular region from the point where the pointer leaves the menu to the submenu. While the pointer is in that region and a timeout has not expired, events that would cause the active submenu to change are ignored. Fri Sep 1 15:34:46 2000 Owen Taylor * gdk/x11/gdkwindow-x11.c (gdk_window_move): Fix bug where moving a toplevel window immediately after sizing it would result in it being sized back to the old size since impl->width, impl->height aren't updated until we hear back from the server. There is still a (longstanding) bug here that gdk_window_get_size() will give the wrong size until we do hear back. 2000-08-31 Havoc Pennington * gtk/gtktextiter.h, gtk/gtktextiter.c, gtk/gtktextlayout.h, gtk/gtktextlayout.c, gtk/gtktexttag.h, gtk/gtktexttag.c, gtk/gtktexttagprivate.h, gtk/gtktextview.c: Rename GtkTextStyleValues to GtkTextAttributes 2000-08-31 Havoc Pennington * gtk/gtktextbtree.c (GtkTextBTree): cache end line, for rapid testing whether an iterator is the end iterator (gtk_text_btree_new): init end line cache (gtk_text_line_is_last): use fast cached line to see if we're the last line. (get_last_line): use cached line here too, should speed up some random unrelated code. 2000-08-30 Havoc Pennington * gtk/gtkmarshal.list: Add marshallers for changed GtkTextBuffer signals. * gtk/gtktextbuffer.h: Add "interactive" arg to insert_text and delete_text signals. This allows the signals to be used for implementing undo. * gtk/gtktextbuffer.c: Change signal handler signatures; provide "interactive" argument when emitting insert_text or delete_text signal. 2000-08-30 Havoc Pennington * gtk/gtktextbuffer.c: Docs Fri Aug 25 12:16:15 2000 Owen Taylor * gdk/x11/gdkimage-x11.c: remove GDK_IMAGE_SHARED_PIXMAP from switch statements, since Tor removed the enumeration value. * gdk/x11/gdkimage-x11.c (gdk_image_get): s/GDK_IS_WINDOW/GDK_IS_DRAWABLE/. 2000-08-29 Elliot Lee * */*.h: Use G_GNUC_CONST. 2000-08-27 Havoc Pennington * gtk/gtktextiter.c, gtk/gtktextiter.h: wrote lots of API docs, minor indentation fixes, inserted some FIXME about stuff I realized was broken while documenting it. (gtk_text_iter_get_pixmap): allow out params to be NULL, following GTK convention Tue Aug 22 12:33:24 2000 Owen Taylor * gtk/testgtk.c (create_styles): Fix double free of font desc. Mon Aug 21 22:39:18 2000 Owen Taylor * gtk/gtkwidget.[ch]: Add gtk_widget_modify_{fg,bg,text,base,font}. * gtk/testgtk.c (create_styles): Add a test for modifying the style through gtk_widget_modify_*. * gtk/gtkwidget.c (gtk_widget_get_modifier_style): Add a function to get the current modifier style. * gtk/gtkwidget.c (gtk_widget_modify_style): Make a copy of the passed in GtkRcStyle instead of ref'ing it. * gtk/gtkrc.[ch]: Add gtk_rc_style_copy(). 2000-08-20 Tor Lillqvist * gdk/gdkimage.h * gdk/win32/gdkimage-win32.c: No need any longer on Win32 for the shared memory image+pixmap GdkImage type, or gdk_image_bitmap_new(). They were used in the gdk_imlib port, but I am dropping that. * gtk/gtkmain.h: On Win32, use a #define to map gtk_init() to actually call gtk_init_abi_check(), passing also sizeof(GtkWindow). Ditto for gtk_init_check(). * gtk/gtk.def * gtk/gtkmain.c: (gtk_init_abi_check, gtk_init_check_abi_check): New functions, used to check that the GTK+-using code has been compiled using the correct compiler and switches. In particular, with gcc one has to use the -fnative-struct switch as GTK+ is compiled with that. Fri Aug 18 17:27:46 2000 Owen Taylor * gtk/gtkclist.c (gtk_clist_merge): Don't leave dangling ->prev fields when merging lists. (Found simultaneously by Pawel Salek and Jakub Jelinek) 2000-08-12 Tor Lillqvist * gdk/gdk.def * gtk/gtk.def: Add missing entries. * gdk/win32/gdkfont-win32.c (gdk_font_load_internal): Use OUT_TT_ONLY_PRECIS, try to get a TrueType font. * gdk/win32/gdkinput-win32.c (gdk_device_get_state): New function. Dummy implementation at this point. * gtk/makefile.mingw.in: Fix typo. Add testtext and testtextbuffer rules. Undefine GTK_COMPILATION when compiling the test programs. * gtk/gtkdebug.h: Mark gtk_debug_flags for export/import. 2000-08-11 Tor Lillqvist * gtk/gtkfilesel.c: Add more calls to g_filename_{to,from}_utf8() to convert back and forth from UTF-8 and the "system" (or "current locale") charset when necessary. Indentation/spacing cleanup. 2000-08-10 Havoc Pennington * Makefile.am (snapshot): Change the format of the snapshot version to match glib * gdk/win32/Makefile.am (EXTRA_DIST): remove gdkinputprivate.h from EXTRA_DIST since it doesn't seem to exist 2000-08-10 Tor Lillqvist * gtk/gtkfilesel.c (open_new_dir): Use the "system codepage" version of the directory name (not the UTF-8 one) when building the path name to stat(). 2000-08-03 Elliot Lee * gdk/gdkpango.c (gdk_draw_layout_line): Don't shape runs with a PANGO_ATTR_SHAPE set. Thu Aug 3 09:17:06 2000 Owen Taylor * gdk/gdkrectangle.c (gdk_rectangle_intersect): Applied patch from Peter Osterlund to simplify the code while keeping the functionality the same. Wed Aug 2 14:57:38 2000 Owen Taylor * gdk/gdkwindow.c (gdk_window_process_updates_internal): Move is_viewable() test further inside the function, since removing the window from the redraw list without clearing ->update_area was also very broken. 2000-08-02 Tor Lillqvist * configure.in: Check for . 2000-08-01 Martin Baulig * gtk/gtkmain.c (gtk_init_check): Use g_message() and not g_warning() to display the message that this is a development version of GTK+. Mon Jul 31 18:37:36 2000 Owen Taylor * gtk/gtkentry.c (entry_adjust_scroll): Fix problem where computation was depending on widget->allocation instead of the width of text_area, which was incorrect for subclasses like GtkSpinButton. * gdk/gdkpango.c (gdk_draw_layout): Fix a couple of typos with width == 1 tests that should be width == -1. Mon Jul 31 16:45:48 2000 Owen Taylor * gdk/gdkwindow.c (gdk_window_process_updates_internal): Replace broken, (broken, Elliot, every single window blank on X) custom code with call to gdk_window_is_viewable() which a) prevents code duplicate and b) works. 2000-07-31 Elliot Lee * gtk/gtkcolorsel.c: We really do need to include gdkfb.h in order to get the GDK_PARENT_ROOT() macro to work. * gtk/gtkmarshal.list: Add NONE:STRING,POINTER * gdk/gdkwindow.c: Don't send expose events, or invalidate pieces of, windows that aren't shown. * gdk/linux-fb: Redraw-when-menu-hidden solved, plus a bunch of pointer grab stuff. Mon Jul 31 13:53:16 BST 2000 Tony Gale * docs/gtkfaq.sgml docs/gtk-faq.sgml: s/gtk_main_iteration/g_main_iteration/ Did this already in change: Mon Nov 15 17:17:51 GMT 1999 Tony Gale don't know how it got reverted. 2000-07-31 Stanislav Brabec * gdk/gdk.c: #ifdef G_ENABLE_DEBUG around gdk_arg_debug_cb and gdk_arg_no_debug_cb to fix compilation problem with --disable-debug. * gdk/Makefile.am: Link gdk against actually compiled gdk_pixbuf-1.3, not gdk_pixbuf. 2000-07-30 Pablo Saratxaga * configure.in,po/{sp,sr}.po: Added Serbian files 2000-07-30 Tor Lillqvist * gdk/Makefile.am: Add makefile.mingw.in to EXTRA_DIST. * gdk/win32/gdkevents-win32.c (gdk_events_init, gdk_events_queue): Remove the g_pipe_readable_msg stuff. Not needed with new GLib GIOChannel implementation. * gdk/win32/gdkinput.c * gdk/win32/gdkpango-win32.c: Update license name here, too. * gdk/win32/gdkwin32id.c (gdk_win32_handle_table_lookup): Fix definition to match prototype. * gtk/makefile.mingw.in: Add libiconv CFLAGS and LIBS. 2000-07-27 Elliot Lee * gtk/gdk-pixbuf-loader.[ch]: Add gdk_pixbuf_loader_new_with_type function, to allow handling image formats that cannot be detected by looking at content alone. Thu Jul 27 13:13:21 BST 2000 Tony Gale * docs/tutorial/*.gif *.jpg *.eps Update these to the same look-n-feel. Why does including images in DocBook suck so badly? Thu Jul 27 05:06:29 2000 Tim Janik * gtk/gtktable.c: applied patch from Phil Thompson that enables space settings for the last row/columns as well. Wed Jul 26 12:59:31 2000 Tim Janik * *.[hc]: applied patch from Andreas Persenius that updates the license headers to the GNU Lesser General Public License, as well as updating the copyright year to 2000. 2000-07-26 Robert Brady * configure.in: Cause GETTEXT_PACKAGE to be consistent in config.h and po/Makefile, was installing and looking for them under gtk20 and gtk2 respectively. 2000-07-25 Havoc Pennington * gtk/testtext.c: Comment out some stuff that depends on the rest of my patches. 2000-07-25 Havoc Pennington * gtk/gtkmarshal.list: Add NONE:POINTER,POINTER,INT for the text buffer 2000-07-25 Havoc Pennington * gtk/testtext.c, gtk/testtextbuffer.c: update to reflect text widget changes. * gtk/gtktextview.h: To be consistent with usage of "line" throughout the API to mean "newline-terminated thingy", change MOVEMENT_LINE to be MOVEMENT_WRAPPED_LINE, and MOVEMENT_PARAGRAPH to MOVEMENT_LINE. (GtkTextView): Add flags for default editability, and whether to show the cursor. Add functions to get/set that. Add (gtk_text_view_get_iter_location): new function * gtk/gtktexttypes.h: Move GtkTextLine typedef from here to gtktextlayout.h (g_convert): Add g_convert temporarily, will go in glib in a bit * gtk/gtktexttagtable.h: include gtktexttag.h, and define GtkTextTagTableForeach instead of brokenly using GHFunc. Change gtk_text_tag_table_foreach() so it doesn't use GHFunc. * gtk/gtktexttagprivate.h: Remove GtkTextStyleValues from here, moved to public header. * gtk/gtktexttag.h: Rename the "elide" attribute of tags to "invisible", since "elide" was a bad name. (gtk_text_tag_get_priority): Added (GtkTextStyleValues): put this in public header, along with functions to use it. * gtk/gtktextmarkprivate.h: Include more headers, since we no longer include gtktextbtree.h. * gtk/gtktextmark.h: Add gtk_text_mark_ref, gtk_text_mark_unref, gtk_text_mark_deleted * gtk/gtktextlayout.h: Don't include the "really private" headers, only buffer/iter. Forward declare GtkTextLIne and GtkTextLineData to make this possible. Now we only need to install gtktextlayout.h, not gtktextbtree.h and gtktext*private.h. (However the Makefile.am isn't changed yet because of the logistics of merging gtk-hp-patches piecemeal) * gtk/gtktextiterprivate.h: include btree header, so it compiles; rename gtk_text_iter_get_line to gtk_text_iter_get_text_line since gtk_text_iter_get_line is now used in the public API for a different purpose. * gtk/gtktextiter.h: Clean up function names to be more consistent. Always call char offset "offset" and byte index "index". A "line" is always a line number. (gtk_text_iter_is_last): new function, more efficient than the existing way to check (gtk_text_iter_is_first): new function, also more efficient (gtk_text_iter_up_lines, gtk_text_iter_down_lines): Remove these (gtk_text_iter_next_char, gtk_text_iter_prev_char): Renamed from gtk_text_iter_forward_char, etc. (gtk_text_iter_forward_to_tag_toggle): Renamed from forward_find_tag_toggle, since this isn't a linear search (GtkTextCharPredicate): rename from GtkTextViewCharPredicate (gtk_text_iter_forward_search, gtk_text_iter_backward_search): New functions, search for a buffer substring. * gtk/gtktextbuffer.h: Add fields to store whether a paste is interactive and default editable (since we need to store that info until we receive the selection data). Remove all the _at_char and at_line etc. versions of functions; only have iterator versions. Add _interactive() versions of functions, that consider the editability of text. (FIXME add interactive flag to the insert/delete signals per Darin's suggestion) (gtk_text_buffer_get_tag_table): new function, demand-creates the tag table if necessary Remove declaration of gtk_text_buffer_get_iter_from_string (_gtk_text_buffer_get_btree): private/internal function, added. * gtk/gtktextbtree.h: Remove forward decl of GtkTextLineData. (gtk_text_line_is_last): new function 2000-07-25 Havoc Pennington * gtk/gtkprogressbar.h: Implement new sane, 5-function API for using GtkProgressBar. See Changes-2.0.txt for details. * gtk/gtkprogressbar.c: Add object arguments "fraction" and "pulse_step" which are the equivalent of gtk_progress_bar_set_pulse_step and gtk_progress_bar_set_fraction. Implement new API. * gtk/gtkprogress.h (struct _GtkProgress): Add a field (use_text_format) to mark whether text set on the progress bar is a format string. Deprecate entire GtkProgress interface. * gtk/gtkprogress.c (gtk_progress_init): init use_text_format to TRUE (gtk_progress_build_string): make this a no-op if use_text_format is FALSE * docs/Changes-2.0.txt: Describe progress bar changes. 2000-07-25 Tor Lillqvist * Makefile.am: Include the build directory. * configure.in: Generate build/Makefile, build/win32/Makefile, gdk/, gdk/win32/, and gtk/makefile.mingw. * config.h.win32: Add USE_GMODULE and USE_MMX for gdk-pixbuf. Add GETTEXT_PACKAGE. * gdk/gdk.def * gtk/gtk.def: Updates. * gdk/gdkfont.h * gdk/gdkpixmap.h: Remove temporary Win32-only functions, we don't need them any longer. * gdk/gdkinput.h: Mark gdk_core_pointer for export/import. * gdk/makefile.mingw.in: Define GDK_COMPILATION. Link with PANGOWIN32_LIBS and gdk_pixbuf. * gdk/win32: Compiles, but no doubt doesn't work at all. * gdk/win32/makefile.mingw.in: Define GDK_COMPILATION. * gdk/win32/gdkinput.c: New file, temporarily. * gdk/win32/gdkinput-win32.h: New file * gdk/win32/gdkinputprivate.h: Remove. * gdk/win32/gdkpango-win32.c: New file. * gtk/makefile.mingw.in: New file * gtk/makefile.cygwin: Removed * gtk/Makefile.am: Update accordingly. * gtk/gtkrc.[ch] (gtk_win32_get_installation_directory): Renamed and made externally visible. * gtk/gtkmain.c: Use it. * gtk/gtktextdisplay.c: No need to include pangox.h, pango.h is enough. * gtk/gtktypeutils.c: Mark glib_debug_objects for import. 2000-07-24 Elliot Lee * gdk/gdkprivate.h: Remove gdk_*_lookup() defines, since they are defined by the individual backends already. * gdk/gdkregion-generic.h, gdk/gdktypes.h: Put gdkregionbox & gdksegment back together again. Yes, there really is a good reason for this, if you are using the gdkregion internals, and if you're not, why do you care? * gdk/gdkwindow.c: Fix inverted condition * gdk/linux-fb: Compiles (for me - it will not work elsewhere most likely). * gtk/gtkcolorsel.c, gtk/gtkwindow.c: Add include for linux-fb * gtk/gtkrange.c: Redraw trough when moving. * gtk/gtktypeutils.c: Fix warning by adding const cast. * modules/linux-fb/basic.c: Fix unknown glyph retrieval. 2000-07-23 Tor Lillqvist * configure.in: Check for mkstemp and sigsetjmp. Output gdk-pixbuf/makefile.mingw and gdk-pixbuf/pixops/makefile.mingw. More work on GDK for Win32. Still in an intermediate state. * gdk/makefile.cygwin * gdk/win32/makefile.cygwin: Removed. * gdk/makefile.mingw.in * gdk/win32/makefile.mingw.in: New files. * gdk/Makefile.am * gdk/win32/Makefile.am: Generate and distribute them. * gdk/win32/gdkwindow-win32.h * gdk/win32/gdkdrawable-win32.h * gdk/win32/gdkpixmap-win32.h: New files. * gdk/win32/gdkcolor-win32.c * gdk/win32/gdkcursor-win32.c * gdk/win32/gdkdrawable-win32.c * gdk/win32/gdkgc-win32.c * gdk/win32/gdkimage-win32.c * gdk/win32/gdkprivate-win32.h * gdk/win32/gdkwin32.h: Update data structures. Cosmetics: Rename fields and variables called xcursor, xid, etc (these names were leftovers from the X11 backend) to hcursor, hwnd, hbitmap etc. Sat Jul 22 17:41:26 2000 Owen Taylor * gtk/gtkentry.[ch]: Fix some problems with vertical alignment. * gtk/gtkentry.c (gtk_entry_find_position): Fix char/byte confusion. Sat Jul 22 11:16:05 2000 Owen Taylor * gtk/gtktextview.c (changed_handler): Fix bug where redraw wasn't being done properly when height of dirty region changed. * demos/Makefile.am: Remove various references to -lgmodule Fri Jul 21 15:28:13 2000 Owen Taylor * gtk/gtktextlayout.[ch], gtk/gtktextdisplay.c: Use new PangoAttrShape to reserve space for pixmaps, add GSList *pixmaps to GtkTextLineDisplay, draw the pixmaps in the display functions. * gtk/testgtk.c (create_layout): Set some more exotic scrolled window options * gtk/gtkscrolledwindow.[ch] (gtk_scrolled_window_set_shadow_type): Add function to set the shadow type of a window, to allow putting a shadow around widgets such as GtkLayout or GnomeCanvas which don't draw their own frame. Fri Jul 21 16:34:42 BST 2000 Tony Gale * docs/tutorial/package-db-tutorial.sh: New file for packaging DocBook format tutorial Fri Jul 21 14:23:51 BST 2000 Tony Gale * docs/tutorial/gtk-tut.sgml: Minor updates * docs/tutorial/*.jpg *.eps: Screenshots for tutorial 2000-07-19 Tor Lillqvist * gtk/gtksignal.c: Fix C++ comment. * gtk/gtkimmulticontext.c * gtk/gtktextbtree.c: Remove gccisms: Don't use __FUNCTION__, don't return value from void functions. * gtk/gtk.def: Add gtk_rc_style_unref. 2000-07-19 Sebastian Wilhelmi * gdk-pixbuf/gdk-pixbuf.h, gtk/gtkhsv.h, gtk/gtktextbtree.h, gtk/gtktextbuffer.h, gtk/gtktextchild.h, gtk/gtktextdisplay.h, gtk/gtktextiter.h, gtk/gtktextiterprivate.h, gtk/gtktextlayout.h, gtk/gtktextmarkprivate.h, gtk/gtktextsegment.h, gtk/gtktexttag.h, gtk/gtktexttagtable.h, gtk/gtktexttypes.h, gtk/gtktextview.h, gtk/gtktypeutils.h: Include files outside of the extern "C" block. Makes some C++ compiler happy. Reported by Denis Vakatov . Wed Jul 19 14:07:57 BST 2000 Tony Gale * docs/tutorial/gtk-tut.sgml: Yet more clean ups. Completes first pass. Hurrah! Tue Jul 18 17:17:55 BST 2000 Tony Gale * docs/tutorial/gtk-tut.sgml: More clean ups. Mon Jul 17 18:52:38 2000 Owen Taylor * gtk/gtkentry.c (gtk_entry_draw_text): Restore code to paint the background of the text area which was accidentally removed at some point. * gtk/gtkrc.[ch] gtk/gtkstyle.[ch] gtk/gtkthemes.[ch]: - Move most of the functionality from the theme vtable into GtkRcStyleClass and GtkStyleClass. The moved vtable functions were changed a bit in the move to work better in their new home. - Get rid of the engine and engine_data fields from GtkRcStyle and GtkStyle; instead the theme engine derives theme-specific subclasses of GtkRcStyle and GtkStyle - Add extra dlsym() found entry point to themes, theme_create_rc_style(). * gtk/gtkstyle.c: Copy xthickness, ythickness fields in gtk_style_real_copy. * gtk/themes.[ch]: add a function gtk_theme_engine_register_type() to register a type associated with an engine. (The engine won't be unloaded as there is an instance of the type.) Mon Jul 17 18:19:06 BST 2000 Tony Gale * docs/tutorial/gtk-tut.sgml: Clean ups. Mon Jul 17 13:59:29 BST 2000 Tony Gale * docs/tutorial/gtk-tut.sgml: Initial DocBook version. Lots of cleaning up to do. 2000-07-15 Tor Lillqvist * gdk/testgdk.c: New file, quick hack to test backends for pixel-by-pixel correctness of the most simple graphic operations. Fri Jul 14 20:30:25 2000 Owen Taylor * Really release 1.3.1 * gtk-config-2.0.in gtk-2.0.m4: Fix up to correspond to new include structure. Fri Jul 14 18:40:39 2000 Owen Taylor * Released 1.3.1 Fri Jul 14 16:21:26 2000 Owen Taylor * gtk/gtktextlayout.c: use FALSE for size_only most of the time when calling gtk_text_layout_get_line_display() to avoid causing double reshapes when a redraw follows immediately after. Tue Jul 11 11:13:40 2000 Owen Taylor * gtk/gtkrange.c (gtk_range_default_[hv]slider_update): Invalidate appropriate region and gdk_window_process_updates() so trough updating doesn't lag behind the window being scrolled. * gdk/gdkgc.c: Make parent_class pointer static. Sun Jul 9 21:31:23 2000 Owen Taylor * gdk/gdk-pixbuf.c gtk/gdk-pixbuf-loader.c gtk/gtktextview.c: include . * gdk/gdkpixbuf-render.c (gdk_pixbuf_render_to_drawable): Fix cut-and-paste error in computing memory offset for 4 channels. Fri Jul 14 14:05:02 2000 Owen Taylor * gtk/gtkrc.c (gtk_rc_parse_pixmap_path_string): Remove gtk_rc_append_default_pixmap_path(), since it wasn't adding an interesting path and we don't have a meaningful default for this value. Fri Jul 14 12:22:49 2000 Owen Taylor * configure.in Makefile.am gtk-config.m4 gtk.m4: Move gtk-config to gtk-config-2.0 move gtk_.m4 to gtk-2.0.m4 * Makefile.am gtk/Makefile.am gdk-pixbuf/Makefile.am gdk/Makefile.am demos/Makefile.am: Change library names to libgtk-1.3.la, etc, so that we can distinguish gtk-1.2 and gtk-2.0 on the linkline. * Makefile.am gtk/Makefile.am gdk-pixbuf/Makefile.am gdk/Makefile.am gdk/x11/Makfile.am Move include files into /usr/include/gtk-2.0, /usr/lib/gtk-2.0/include/ * autogen.sh acconfig.h configure.in gtk/gtkmain.c gtk/gtkintl.h: Change package for gettext from gtk+ to gtk20. Put hack in autogen.sh to modify po/Makefile.in.in after gettextize to make this possible. * gtk+.spec: Some updates, not tested. * gdk-pixbuf/Makefile.am: Move loaders into $(libdir)/gtk-2.0/$(GTK_VERSION)/loaders. * gtk/Makefile.am gtk/gtkrc.c: Move RC file locations $(sysconfdir)/gtk-2.0 ~/.gtkrc-2.0; theme subdir to THEMENAME/gtk-2.0/. Move engine directory to $(libdir)/gtk-2.0/$(GTK_VERSION)/engines. 2000-07-12 Tor Lillqvist Win32 changes, still doesn't build though. * gdk/makefile.cygwin * gdk/win32/makefile.cygwin * gtk/makefile.cygwin: Updates. * gdk/win32/gdkgc-win32.c (_gdk_win32_gc_new): Use the same default values for fg and bg pixel as X11 does (0 and 1), not black and white. Use PS_ENDCAP_FLAT and PS_JOIN_MITER by default. Use 0 for pen width by default (treated as 1 anyway later, but for apps that might check the value in the GdkGC). (gdk_win32_hdc_get, gdk_win32_hdc_release): New functions, public interface to gdk_gc_predraw and _postdraw. * gdk/win32/gdkwin32.h * gdk/gdk.def: Add gdk_win32_hdc_{get,release}. * gdk/win32/gdkcolor-win32.c (gdk_colormap_alloc1): Remove extraneous semicolon. * gdk/win32/gdkdrawable-win32.c: Check also for pen_width == 0. * gdk/win32/gdkimage-win32.c (gdk_image_new): Use the visual's depth, not the Win32 bitspixel value. * gdk/win32/gdkcc-win32.c: * gdk/win32/gdkcolor-win32.c * gdk/win32/gdkprivate-win32.h * gdk/win32/gdkwin32.h: Changes to make compilable, with new GDK object structure. Tue Jul 11 20:59:35 2000 Tim Janik * docs/tutorial/gtk_tut_12.es.sgml (name): * docs/tutorial/gtk_tut_it.sgml (name): * docs/tutorial/gtk_tut_fr.sgml (name): * docs/tutorial/gtk_tut.sgml (name): scratched notion of completely outdated email adress: s/timj@psynet.net/timj@gtk.org/. Tue Jul 11 13:10:57 BST 2000 Tony Gale * docs/faq/gtk-faq.sgml: Cleanup indenting and various small changes. Tue Jul 11 08:04:58 2000 Tim Janik * gtk/gtktree.c (gtk_real_tree_select_child): eek, i've never seen a bug here, never been here and never fixed anything ;( (don't segfault if tree->root_tree is NULL, which happens prior to widget realization, but puke instead). Tue Jul 11 06:38:42 2000 Tim Janik * gtk/gtkrc.h: add xthickness and ythickness to GtkRcStyle and add the necessary tokens. * gtk/gtkrc.c (gtk_rc_style_init): properly initiality the rc style. (gtk_rc_style_to_style): copy thicknesses. (gtk_rc_init_style): apply thicknesses. (gtk_rc_parse_style): parse xthickness and ythickness. * gdk/x11/gdkdnd-x11.c: silence compiler in switch() statements. * gdk/x11/gdkwindow-x11.c (gdk_window_foreign_new): (gdk_window_new): (_gdk_windowing_window_init): * gdk/x11/gdkpixmap-x11.c (gdk_pixmap_foreign_new): (gdk_pixmap_create_from_data): (gdk_bitmap_create_from_data): (gdk_pixmap_new): * gdk/x11/gdkimage-x11.c (gdk_image_get): (gdk_image_new): * gdk/x11/gdkgc-x11.c (_gdk_x11_gc_new): * gdk/x11/gdkdnd-x11.c (gdk_drag_context_new): * gdk/x11/gdkcolor-x11.c (gdkx_colormap_get): (gdk_colormap_get_system): (gdk_colormap_new): * gdk/gdkwindow.c (gdk_window_init): * gtk/gtkstyle.c (gtk_style_new): * gtk/gdk-pixbuf-loader.c (gdk_pixbuf_loader_frame_done): * gdk/gdkpixmap.c (gdk_pixmap_init): * gtk/gtkrc.c (gtk_rc_style_new): use g_object_new() instead of g_type_create_instance() which is a private function for fundamental type implementations. Thu Jul 6 16:12:14 2000 Owen Taylor * configure.in: Add check for db2html Thu Jul 6 14:53:05 2000 Owen Taylor * gtk/gtktypeutils.c (gtk_type_init): Add a temporary hack to set glib_debug_objects based on gtk_debug_flags. Thu Jul 6 14:12:13 2000 Owen Taylor * INSTALL.in: Update the Prerequisites section. * Makefile.am demos/Makefile.am docs/Makefile.am docs/tutorial/Makefile.am gdk/x11/Makefile.am gdk/linux-fb/Makefile.am: Dist fixes Thu Jul 6 12:26:03 2000 Owen Taylor * NEWS: 10,000 foot view of 1.3.1 changes. Thu Jul 6 11:54:03 2000 Owen Taylor * gdk/gdk.h gdk/gdktypes.h gdk/linux-fb/gdkmain-fb.c gdk/nanox/gdkmain-nanox.c gdk/win32/gdkevents-win32.c gdk/win32/gdkinput-win32.c gdk/win32/gdkwin32.h gdk/x11/gdkmain-x11.c: Patch from George Lebl to add a GdkGrabStatus enumeration to use as a return value of gdk_*_grab(). Previously, we just returned the X11 values directly. Thu Jul 6 11:27:44 2000 Owen Taylor * gdk/x11/Makefile.am: Patch from George Lebl to install all the headers in the right place. Tue Jul 4 13:13:01 BST 2000 Tony Gale * docs/faq/gtk-faq.sgml: Add remaining sections. Completes initial conversion to DocBook. 2000-07-04 Tor Lillqvist * README.win32: Improve a bit. * gdk/win32/gdkevents-win32.c (gdk_event_translate): Handle also WM_SYSCHAR, and other changes to get handling of Alt+nnn or Alt+0nnn on the numpad (used to enter characters by numeric code from current DOS or ANSI codepage) working correctly, as in other Windows apps. * gdk/win32/gdkcursor-win32.c (gdk_cursor_new_from_pixmap): Use same argument validity tests as in X11 version. (_gdk_cursor_destroy): Use DestroyCursor, not DestroyIcon. * gdk/win32/gdkwin32.h: Add also WM_MOUSEWHEEL and CopyCursor definitions in case missing from headers. * gdk/win32/gdkwindow-win32.c (gdk_win32_window_destroy): Also destroy the window-specific cursor. (RegisterGdkClass): Use the global gdk_ProgInstance instead of calling GetModuleHandle(NULL). (gdk_window_set_cursor): Reworked to always copy the passed cursor with CopyCursor before setting it as the window-specific cursor. It is OK for the caller to destroy the GdkCursor (and thus also its Windows cursor) after calling this function. Destroy any previous window-specific cursor. Mon Jul 3 17:54:49 2000 Owen Taylor * gdk/x11/gdkfont-x11.c (gdk_font_charset_for_locale): font charset is iso8859-1, not iso-8859-1. Mon Jul 3 17:08:14 2000 Owen Taylor * gdk/x11/gdkfont-x11.c (gdk_font_charset_for_locale): Use g_get_charset() instead of g_get_codeset(). * gtk/gtkframe.[ch] gtkframe.h gtk/gtktextmark.h: Comment out some strdup'ing functions to keep timj happy until we finish fighting this out. Mon Jul 3 14:24:16 2000 Owen Taylor * gtk/gtkwidget.c (gtk_widget_draw): Ignore calls with <= width or height. * gtk/gtktable.c (gtk_table_attach): Fix missed merge from 1.2 for parent/child states. * gdk/gdkgc.c (gdk_gc_set_rgb_fg/bg_color): Fix a couple of typos. * gdk/gdkevents.[ch]: Remove press/xtilt/ytilt fields of event structures, replace with a generic axes field. Replace deviceid/sourec with GdkDevice *device. * gdk/gdkevents.[ch] (gdk_event_get_axis): Add function to extract particular axis use value from event. (Also can be used for normal X/Y.) * gdk/gdkinput.h gdk/x11/gdkinput*: Major revision; allow for arbitrary number of axes, namespace everything as gdk_device_*. Replace guint32 deviceid with GdkDevice * everywhere. * gdk/x11/{gdkmain-x11.c,gdkevent-x11.c,gdkinput*}: Get rid of the gdk_input_vtable setup if favor of simply defining the functions in gdkinput-none/gxi/xfree.c in a similar fashion to the way that the port structure is done. * gtk/gtkdnd.c: Fix fields of synthesized button press event for new event structures. * gtk/gtkinputdialog.c gtk/testinput.c: Revise to match new device interfaces. Sun Jul 2 18:19:50 2000 Owen Taylor * gtk/gtkwidget.[ch] (gtk_widget_create_pango_layout): Add a 'text' argument to set the initial text. * gtk/gtkaccellabel.c gtk/gtkcalendar.c gtk/gtkclist.c gtk/gtkentry.c gtk/gtkhruler.c gtk/gtkhscale.c gtk/gtklabel.c gtk/gtkprogressbar.c gtk/gtkscale.c gtk/gtkvruler.c gtk/gtkvscale.c: Adapt to new argument of create_pango_layout(). * gtk/gtkclist.c (_gtk_clist_create_cell_layout): Use new pango_layout_set_font_description to simplify. Sun Jul 2 17:43:41 2000 Owen Taylor * gtk/gtkclist.c (_gtk_clist_create_cell_layout): Use new pango_layout_set_font_description to simplify. Sun Jul 2 17:06:40 2000 Owen Taylor * gtk/gtkcalendar.c gtk/gtkclist.c gtk/gtkctree.c gtk/gtkhscale.c gtk/gtkprogressbar.c gtk/gtkscale.c gtk/gtkvscale.c gtk/gtkaccellabel.c: Use pango_layout_get_pixel_extents() to remove a large number of '/ PANGO_SCALE'. * gtk/gtk[hv]ruler.c gtk/gtklabel.c: replace some / PANGO_SCALE with PANGO_PIXELS() macro. Sun Jul 2 15:24:41 2000 Owen Taylor * gtk/gtkwidget.[ch] (gtk_widget_get_pango_context): Add new function that returns a PangoContext owned by the widget and updated to match future changes in the widget. Also, make gtk_widget_create_pango_layout() use this context. If we ever add a ::changed signal to PangoContext, this will make things much more convenient. * gtk/gtkentry.c gtk/gtklabel.c: Call pango_layout_context_changed() in the appropriate places instead of destroying the layouts and creating new ones. * gtk/gtkfontsel.[ch] gtk/gtkclist.c: Use gtk_widget_get_pango_context() in a few strategic places. Sun Jul 2 14:37:58 2000 Owen Taylor * gtk/gtkoptionmenu.c (gtk_option_menu_size_request): Call gtk_widget_size_request() on reparented child, if one. Otherwise, queue_resize() on the child never results in it getting size-requested at all. * gtk/testgtk.c (build_option_menu): Remove silly radio-menu-items in option menus, so that (with luck) people won't copy it into their apps in the future. * gtk/gtkoptionmenu.c: Connect ::size_request on the menu to gtk_option_menu_calc_size. This isn't perfect, but should fix a lot of problems with changing the size of the menu's menu items after adding it to the option menu. * gtk/gtktexttag.c: Include gtkmain.h for gtk_get_default_language(). * gtk/gtkwidget.[ch]: Add a ::direction_changed that triggers when the text direction for a widget changes. * gtk/gtk{entry.c,label.[ch],textview.[ch]} gtk/testgtk.c: Use ::direction_changed to get rid of various hacks. Sun Jul 2 13:19:12 2000 Owen Taylor * docs/Changes-2.0.txt: Move Changes-1.4.txt to the appropriate name. Sun Jul 2 13:06:26 2000 Owen Taylor * gdk/x11/gdkpixmap-x11.[ch] Changes-1.4.txt: Add a is_foreign flag to the structure. Do not call XFreePixmap on pixmaps created by gdk_pixmap_foreign_new(). Sun Jul 2 12:45:50 2000 Owen Taylor * gdk/gdkrgb.[ch]: Add gdk_rgb_find_color() to get a pixel value using GdkRGB functionality given GdkColormap and GdkColor. (name not final, waiting for inspiration.) * gdk/gdkgc.[ch] (gdk_gc_set_rgb_fg/bg_color): New functions to set the foreground/background of a GC using the GC's colormap and GdkRGB. (name not final, waiting for inspiration.) * gdk/gdkcompat.h gdk/gdkrgb.c (gdk_rgb_get_colormap): Rename from gdk_rgb_get_cmap(), put #define in gdkcompat.h. * gtk/gtkwidget.[ch] gtkcompat.h: Make visuals for gtk_widget_get_visual(), gtk_widget_get_default_visual, etc, purely a function of the corresponding colormap. Make gtk_widget_set_visual(), etc, noop macros in gtkcompat.h. * gdk/gdkpixmap.c gdk/x11/gdkpixmap-c11.c: Rewrite gdk_pixbuf_*create_from_xpm_* in terms of gdk_pixbuf_new_from_xpm_data(), move into platform independent code. * gdk/gdkpixbuf-render.c (gdk_pixbuf_render_to_drawable): Take advantage of the new draw_rgb_32_image_dithalign. * gdk/gdkrgb.c (gdk_draw_rgb_32_image_dithalign): Added. * gtk/gtkgc.c (gtk_gc_new): Set the appropriate colormap on each created GC. * gdk/gdkgc.[ch]: Add gdk_gc_get/set_colormap. * gdk/gdkgc.[ch]: Add a colormap field to the GdkGC structure which we initialize from the drawable when the GC is created, if the drawable has a colormap. * gdk/x11/gdkgc-x11.c: include string.h for memset. * gdk/x11/gdkinput-x11.c: include string.h for strlen, etc. * gtk/gtklayout.[ch]: Remove unsed configure serial member. Sat Jul 1 16:28:32 2000 Owen Taylor * gdk/x11/gdkevents-x11.c (gdk_event_translate): When actually returning expose events, make sure to set the count field properly. * gdk/x11/gdkgc-x11.c (gdk_x11_gc_values_to_xvalues): Fix accidentally reintroced bug which always cleared the graphics_exposures value. Wed Jun 28 18:03:09 BST 2000 Tony Gale * docs/faq/gtk-faq.sgml: Change DocBook layout slightly 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. 2000-05-29 Tor Lillqvist * gdk/win32/gdkevents-win32.c (gdk_WindowProc): The local "event" variable should be of type GdkEventPrivate. 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 #3678, 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.