1. 03 Jul, 2001 1 commit
    • Owen Taylor's avatar
      For XEMBED embedding add a _XEMBED_INFO property to the client with · f409cd9b
      Owen Taylor authored
      Mon Jul  2 16:53:25 2001  Owen Taylor  <otaylor@redhat.com>
      
      	* gtk/xembed.h gtk/gtkplug.c gtk/gtksocket.c: For
      	XEMBED embedding add a _XEMBED_INFO property to the
      	client with version number and a "mapped" flags.
      	Use the mapped flag instead of the racy MapRequestEvent
      
              * gtk/gtksocket.c: Clean up the gtk_socket_steal()
      	code to reliably set things (when the child is a passive
      	embedder participating in the XEMBED protocol) intead
      	of just being a hack for embedding non-participating
      	programs. Fix various bugs and race conditions.
      
      	* gtk/gtksocket.[ch] gtk/gtkplug.[ch]: Make local embedding
      	work by simply making the GtkSocket the gtk parent
      	of the GtkPlug. Set a flag in this case and make
      	the GtkPlug work like a normal container by overriding
      	methods such as check_resize and "chaining past" GtkWindow
      	to GtkBin.
      
       	* gtk/gtkentry.c (gtk_entry_real_activate)
      	  gtk/gtkmain.c (gtk_propagate_event):
       	Eliminate use of gtk_widget_get_ancestor (widget, GTK_TYPE_WINDOW).
      
      	* gtk/gtkwidget.c (gtk_widget_get_toplevel,
      	gtk_widget_get_ancestor):
      	Explain	why gtk_widget_get_ancestor (widget, GTK_TYPE_WINDOW)
      	might not give the expected result and recommend
      	an alternative.
      
      	* tests/testsocket.c tests/testsocket_child.c
      	tests/testsocket_common.c tests/Makefile.am: Extended
      	to test different type of adding plugs to sockets
      	(local,active,passive),	and to test mapping/unmapping
      	the plug.
      
       	* gdk/gdkwindow.c (_gdk_window_destroy_hierarchy): Don't
       	mark the window as destroyed until after we
       	called _gdk_windowing_window_destroy().
      	(_gdk_windowing_window_destroy() may use GDK functions
      	on the window.)
      
       	* gdk/x11/gdkinput.c: Remove the check for finalization -
       	devices can be finalized under some circumnstances.
      
       	* gdk/x11/gdkinput-x11.c (gdk_input_device_new): Fix
       	small problem with GDK_TYPE_DEVICE.
      f409cd9b
  2. 28 Jun, 2001 1 commit
    • Tim Janik's avatar
      !GTK_OBJECT_DESTROYED() -> GTK_WIDGET_REALIZE() for resize queueing. · 00f85bf8
      Tim Janik authored
      Thu Jun 28 23:53:31 2001  Tim Janik  <timj@gtk.org>
      
              * gtk/gtkwidget.c (gtk_widget_hide): !GTK_OBJECT_DESTROYED() ->
              GTK_WIDGET_REALIZE() for resize queueing.
      
              * gtk/gtkmain.c (gtk_main_do_event): !GTK_OBJECT_DESTROYED() ->
              GTK_WIDGET_REALIZE() for post event delivery destruction upon
              GDK_DESTROY.
      
              * gtk/gtkwidget.c: added GtkWidget::event-after notification signal, to
              sompensate for former (pre-2.0) connect_after() facility.
              (gtk_widget_send_expose):
              (gtk_widget_event): assert the widget is realized, since event delivery
              to non-realized widgets is essentially a bug. event handlers should
              be able to unconditionally rely on widget->window (unless they
              emit events on their own which can trigger widget destruction).
              (gtk_widget_event_internal): removed old outdated GTK_OBJECT_DESTROYED()
              logic. event delivery happens as follows:
              a) emission of GtkWidget::event (RUN_LAST handler). returns was_handled.
              b) if !was_handled in (a) and the widget is still realized, emit event-
                 specific signal (RUN_LAST handler). returns was_handled.
              c) emission of GtkWidget::event-after for notification if the widget is
                 still realized (regardless of was_handled from previous stages, no
                 class handler). no return value.
              d) was_handled gets passed on to caller, to determine further
                 propagation. if the widget got unrealized meanwhile, was_handled
                 is returned as TRUE.
      
              * gdk/gdkevents.[hc]: added gdk_event_get_root_coords() and
              gdk_event_get_coords().
      00f85bf8
  3. 25 Jun, 2001 1 commit
    • Owen Taylor's avatar
      Add a special size for drag-and-drop GTK_ICON_SIZE_DND (Default to 32x32) · 1988e137
      Owen Taylor authored
      Sun Jun 24 21:34:32 2001  Owen Taylor  <otaylor@redhat.com>
      
      	* gtk/gtkenums.h gtk/gtkiconfactory.c: Add a special size for
      	drag-and-drop GTK_ICON_SIZE_DND (Default to 32x32)
      
      	* gtk/gtkdnd.c (gtk_drag_dest_set_target_list): Fix problem
      	with un'reffing wrong list reported by Jeff Franks.
      
      	* gtk/gtkdnd.[ch] (_gtk_drag_{source,}dest_handle_event): _prefix.
      
      	* gtk/gtkdnd.c (gtk_drag_set_icon_default): Use GTK_STOCK_DND
      	for the default icon. Remove inline XPM.
      
      	* gtk/gtkstock.h gtk/gtkiconfactory.c:
      	Add GTK_STOCK_DND GTK_STOCK_DND_MULTIPLE (Currently, stock_new
      	is used for GTK_STOCK_DND, but it is a bit too small.)
      
      	* gtk/stock-icons/stock_dnd_multiple.png
      	gtk/stock-icons/Makefile.am: New stock icon moved from gnome-libs.
      
      	* gtk/gtkdnd.c (gtk_drag_source_event_cb): Only return
      	TRUE when starting a drag. In other cases, we are
      	just observing. (#52995)
      
      	* gtk/gtkdnd.[ch] (gtk_drag_set_icon_{stock,pixbuf}): Add
      	function to set the icon for a drag from a GdkPixbuf
      	or stock ID.
      
      	* gtk/gtkdnd.[ch] (gtk_drag_source_set_icon_{stock,pixbuf}):
      	Likewise, for drag sources.
      
      	* gtk/gtkdnd.h: Deprecate gtk_drag_set_default_icon.
      	(Now should be done using the stock system.)
      1988e137
  4. 22 Jun, 2001 1 commit
    • Hans Breuer's avatar
      updated externals · f0ee2996
      Hans Breuer authored
      2001-06-22  Hans Breuer  <hans@breuer.org>
      
      	* gdk/gdk.def : updated externals
      
      	* gdk/win32/gdkdrawable-win32.c : corrected some casts
      	in GDK_NOTEs
      
      	* gdk/win32/gdkevents-win32.c : use _gdk_windowing_window_get_offsets
      	to translate coordinates to the internal > 16 bit system
      	Try to handle WM_WINDOWPOSCHANGED to get better performance for
      	when moving/resizing
      
      	* gdk/win32/gdkkeys-win32.c : implement gdk_keymap_get_default ()
      	and gdk_keymap_get_direction (). The latter is untested for
      	the RTL case
      
      	* gtk/gtk.def : updated externals
      
      	* gtk/gtkmain.c : gtk_get_default_language () should reurn the result
      	from pango_language_from_string (), not an already freed pointer
      
      	* gtk/stock-icons/stock_menu_sort_ascending.png : PNGs need to be
      	binary (-kb) to be useable on windoze
      f0ee2996
  5. 21 Jun, 2001 1 commit
    • Owen Taylor's avatar
      Handle the case without XKB properly. · d809ceee
      Owen Taylor authored
      Thu Jun 21 13:42:01 2001  Owen Taylor  <otaylor@redhat.com>
      
      	* gdk/x11/gdkkeys-x11.c (gdk_keymap_get_direction): Handle
      	the case without XKB properly.
      
      	* gtk/gtkrc.c (gtk_rc_set_default_files): Remove
      	unused gtk_rc_auto_parse variable.
      
      	* gtk/gtkrc.[ch] gtk/gtkstyle.c docs/Changes-2.0.txt:
      	Remove gtk_rc_set_image_loader(), gtk_rc_load_image(), no
      	longer needed with GdkPixbuf.
      
      	* gtk/gtkrc.c (_gtk_rc_init): Make private.
      d809ceee
  6. 14 Jun, 2001 2 commits
    • Owen Taylor's avatar
      Add a GtkWindowGroup struct that allows grouping together multiple windows · cf2fab90
      Owen Taylor authored
      Fri Jun  8 17:56:52 2001  Owen Taylor  <otaylor@redhat.com>
      
      	* gtk/gtkwindow.[ch] gtk/gtkmain.c: Add a GtkWindowGroup struct
      	that allows grouping together multiple windows so that grabs
      	within that set of windows only affect those windows.
      
      	* gtk/gtkmain.c gtk/gtkwidget.[ch]: Add a "grab_notify"
      	signal for notification when a widget becomes shadowed
      	by a grab or is no longer shadowed by a grab.
      
      	* gtk/gtkwidget.c (gtk_widget_propagate_state)
      	  gtk/gtkmain.c: (gtk_widget_grab_add): Don't allow
      	insenstive widgets to maintain a grab.
      cf2fab90
    • Owen Taylor's avatar
      Add missing gdk_rectangle_get_type() prototype. · 22491fd6
      Owen Taylor authored
      Mon Jun 11 18:15:16 2001  Owen Taylor  <otaylor@redhat.com>
      
      	* gdk/gdk.h: Add missing gdk_rectangle_get_type() prototype.
      
      	* gtk/gtk[hv]scale.c: Include math.h, stdlib.h
      
      	* gdk/gdkpango.h gtk/gtkclist.c gtk/gtkentry.c gtk/gtkmain.[ch]
      	  gtk/gtkspinbutton.c gtk/gtkstyle.c gtk/gtktextbuffer.c
      	  gtk/gtktextdisplay.c gtk/gtktextiter.[ch]
      	  gtk/gtktextlayout.c gtk/gtktexttag.[ch] gtk/gtkwidget.c: Adapt
      	  to recent changes in Pango.
      
      	* tests/testgtk.c: Set language tags with gtk_label_set_markup()
      	  to test whether the basic engine honors them.
      22491fd6
  7. 12 May, 2001 1 commit
  8. 09 May, 2001 1 commit
  9. 29 Apr, 2001 1 commit
    • Tim Janik's avatar
      moved GtkAnchorType and GtkSideType from gtkpacker.h to gtkenum.h. · c63e37b4
      Tim Janik authored
      Sun Apr 29 03:02:02 2001  Tim Janik  <timj@gtk.org>
      
              * gtk/gtkpacker.h:
              * gtk/gtkenums.h: moved GtkAnchorType and GtkSideType from gtkpacker.h
               to gtkenum.h.
      
              * gtk/gtkmain.c (gtk_main_do_event): silence compiler (GDK_SETTING not
              handled in switch).
      
              * gtk/Makefile.am:
              (gtk.defs): generate enum portions with  glib-mkenums.
              (gtktypebuiltins_evals.c): generate this with glib-mkenums.
              got rid of makeenums.pl and makeenums.awk in distributed tarballs.
      
              * gtk/gtkaccelgroup.c (gtk_accel_group_add): refined havocs warning
              addition.
      
              * docs/Changes-2.0.txt: keep a note on signal handlers now
              not getting emitted during the emission they were connected within.
      c63e37b4
  10. 26 Apr, 2001 1 commit
    • Owen Taylor's avatar
      Remove deprecation of gtk_window_set_default_size() until patch adding · 604828e8
      Owen Taylor authored
      Thu Apr 26 10:40:41 2001  Owen Taylor  <otaylor@redhat.com>
      
      	* gtk/gtkwindow.h: Remove deprecation of gtk_window_set_default_size()
      	until patch adding gtk_window_set_size() is recommitted.
      
      	* **Makefile.am configure.in gdk/x11/gdkim-11.c
      	  gtk/gtkmain.c gtk/gtkimmulticontext.c gtk/gtkmain.c
      	  gtk/gtkrc.c: Remove all traces of -DX_LOCALE support.
      	  (#10784)
      604828e8
  11. 03 Apr, 2001 1 commit
    • Tim Janik's avatar
      use more elaborate variable names. · bb985d72
      Tim Janik authored
      Tue Apr  3 05:09:07 2001  Tim Janik  <timj@gtk.org>
      
              * gtk/gtkmain.c (_gtk_boolean_handled_accumulator): use more elaborate
              variable names.
      
              * gtk/makeenums.pl: touch this so enum files get remade.
      bb985d72
  12. 02 Apr, 2001 2 commits
    • Owen Taylor's avatar
      Add GdkEventSetting event for notification of changes to system settings, · b52b326d
      Owen Taylor authored
      Mon Apr  2 18:18:07 2001  Owen Taylor  <otaylor@redhat.com>
      
              * gdk/gdkevents.h: Add GdkEventSetting event for notification
      	of changes to system settings, gdk_setting_get() to retrieve
      	a single system setting.
      
      	* gdk/x11/gdkevents-x11.c: Bridge gdk_setting_get() and GdkEventSetting
      	to the draft XSETTINGS mechanism.
      
      	* gdk/x11/xsettings-{common,client}.[ch]: Sample-implementation of
      	XSETTINGS.
      
      	* gtk/gtkmain.c gtk/gtksettings.[ch]: Propagate notification
      	of GDK settings changes to the GtkSettings object.
      
      	* gdk/gdkevents.[ch] gdk/gtk/gtksettings.c: Hook up the
      	double-click-timeout property to GDK.
      
      	* gdk/gdkcolor.[ch] gdk/gdkvisual.h gdk/gdkevent.[ch] gdk/gdkfont.[ch]:
      	Define GDK boxed types here.
      
      	* gdk/Makefile.am gdk/makeenums.pl: Generate source files
      	gdk/gdkenumtypes.[ch] for enum definitions.
      
      	* gtk/gtkcompat.h: Add defines for GTK_TYPE_GDK_*
      	* gtk/gtk-boxed.defs: Comment out GDK types
      	* gtk/gtktypeutils.h: Remove GDK types
      	* gtk/Makefile.am: No longer scan GDK headers for enumerataions
      b52b326d
    • Owen Taylor's avatar
      Applied patch from Ron Steinke to add signal accumulators so that signals · 0aef43bc
      Owen Taylor authored
      Mon Apr  2 16:41:08 2001  Owen Taylor  <otaylor@redhat.com>
      
      	* Applied patch from Ron Steinke to add signal accumulators
      	so that signals with the convention 'TRUE return means
      	handled' stop emission on a TRUE return.
      
      	* gtk/gtkmain.[ch]: Add private accumulator
      	_gtk_boolean_handled_accumulator, used throughout GTK+.
      
      	* gtk/gtkspinbutton.c: Add accumulator for ::output.
      
      	* gtk/gtktipsquery.c: Add accumulator for ::widget_selected
      
      	* gtk/gtkwidget.c: Add accumulators for event signals,
      	::drag_motion, ::drag_drop. Use _gtk_boolean_handled_accumator
      	for ::mnemonic-activate.
      
      	* gtk/gtkwindow.c: Add accumulator for ::frame_event
      
      Mon Apr  2 16:24:21 2001  Owen Taylor  <otaylor@redhat.com>
      
      	* gtk/gtkwidget.c: Add missing include.
      0aef43bc
  13. 16 Mar, 2001 1 commit
  14. 09 Mar, 2001 1 commit
    • Alexander Larsson's avatar
      Document expose event->region change and that gtk_widget_event doesn't · e7d4a7f9
      Alexander Larsson authored
      2001-03-09  Alexander Larsson  <alexl@redhat.com>
      
      	* docs/Changes-2.0.txt:
      	Document expose event->region change and that gtk_widget_event
      	doesn't allow passing expose events.
      
      	* gdk/gdkevents.h:
      	Add region to expose event.
      
      	* gdk/gdkevents.c:
      	Handle event->region in gdk_event_copy() and gdk_event_free().
      
      	* gdk/gdkwindow.c (gdk_window_process_updates_internal):
      	Generate expose_event->region when creating expose events.
      
      	* gdk/x11/gdkevents-x11.c:
      	Generate expose events with regions when translating X events.
      
      	* gtk/gtkcontainer.[ch]:
      	Default expose handler that propagates expose events to NO_WINDOW
      	children. New function gtk_container_propagate_expose()
      
      	* gtk/gtkwidget.[ch]:
      	Moved gtk_widget_event implementation to gtk_widget_event_internal.
      	gtk_widget_event calls gtk_widget_event_internal but doesn't allow
      	expose events. New function gtk_widget_send_expose() to send expose
      	events. New function gtk_widget_region_intersect() to calculate
      	window/region intersections.
      
      	* gtk/gtkmain.c (gtk_main_do_event):
      	Use gdk_window_begin_paint_region() instead of gdk_window_begin_paint_rect().
      	Use gtk_widget_send_expose() to send expose events.
      
      	* gtk/gtkbin.c:
      	* gtk/gtkbox.c:
      	* gtk/gtkfixed.c:
      	* gtk/gtkimagemenuitem.c:
      	* gtk/gtklist.c:
      	* gtk/gtkpacker.c:
      	* gtk/gtktable.c:
      	* gtk/gtktree.c:
      	Remove expose handler, using the default container implementation
      	instead.
      
      	* gtk/gtkbutton.c:
      	* gtk/gtkcheckbutton.c:
      	* gtk/gtkeventbox.c:
      	* gtk/gtkfixed.c:
      	* gtk/gtkhandlebox.c:
      	* gtk/gtklayout.c:
      	* gtk/gtklistitem.c:
      	* gtk/gtkmenu.c:
      	* gtk/gtkmenubar.c:
      	* gtk/gtkmenuitem.c:
      	* gtk/gtknotebook.c:
      	* gtk/gtkoptionmenu.c:
      	* gtk/gtkpaned.c:
      	* gtk/gtkscrolledwindow.c:
      	* gtk/gtktogglebutton.c:
      	* gtk/gtktoolbar.c:
      	* gtk/gtktreeitem.c:
      	* gtk/gtkviewport.c:
      	Chain expose handler to parent class handler. Use
      	gtk_container_propagate_expose() to propagate exposes.
      
      	* gtk/gtkclist.c (check_exposures):
      	* gtk/gtktext.c (process_exposes):
      	Use gtk_widget_send_expose instead of gtk_widget_event.
      e7d4a7f9
  15. 03 Mar, 2001 1 commit
    • Owen Taylor's avatar
      Detectable auto-repeat - make a repeating key generate · 445e90fa
      Owen Taylor authored
      Sat Mar  3 16:26:33 2001  Owen Taylor  <otaylor@redhat.com>
      
      	* gdk/x11/gdkmain-x11.c gdk/x11/gdkkeys-x11.c
      	  gdk/x11/gdkevents-x11.c gdk/x11/gdkprivate-x11.c:
      
      	Detectable auto-repeat - make a repeating key generate
      	press/press/press/release instead of press/release pairs.
      
      	If we have Xkb and XkbSetDectableAutoRepeat supports
      	that, we do it that way. Otherwise, when we get
      	a release event, we check ahead with XPending to see
      	if the next key is a KeyPress with the same keycode
      	and timestamp. (Not 100% reliable, but pretty close.)
      
      Tue Feb 27 02:16:14 2001  Owen Taylor  <otaylor@redhat.com>
      
        	* gtk/gtkmain.c (gtk_propagate_event): Only do special
              special key-press grab handling for widgets within
              GtkWindows. Otherwise, fall through to normal case.
      
              This prevents key events being sent twice to GtkInvisible
              widgets, which can cause all sorts of mischief.
      445e90fa
  16. 27 Feb, 2001 1 commit
    • Havoc Pennington's avatar
      test the window state stuff · 75d79abf
      Havoc Pennington authored
      2001-02-26  Havoc Pennington  <hp@redhat.com>
      
      	* gtk/testgtk.c: test the window state stuff
      
      	* gtk/gtkwindow.c (gtk_window_present): new function, makes a
      	window come to the user's attention as if it were just created
      	(gtk_window_iconify): new function
      	(gtk_window_deiconify): new function
      	(gtk_window_stick): new function
      	(gtk_window_unstick): new function
      	(gtk_window_maximize): new function
      	(gtk_window_unmaximize): new function
      
      	* gtk/gtkwidget.h, gtk/gtkwidget.c: add window_state_event signal
      
      	* gtk/gtkmain.c (gtk_main_do_event): handle GDK_WINDOW_STATE
      
      	* gdk/x11/gdkevents-x11.c: create window state events when
      	appropriate
      	(gdk_wmspec_supported): new function
      
      	* gdk/x11/gdkwindow-x11.c (gdk_window_iconify): handle
      	iconification before showing the window
      	(gdk_window_deiconify): new function
      	(gdk_window_stick): new function
      	(gdk_window_unstick): new function
      	(gdk_window_maximize): new function
      	(gdk_window_unmaximize): new function
      
      	* gdk/gdkwindow.c: store the window state in the window;
      	change to using the GDK_WINDOW_STATE_WITHDRAWN flag instead of
      	window->mapped.
      	(gdk_window_get_state): return the current window state
      
      	* gdk/gdkevents.c (gdk_event_get_time): handle GDK_WINDOW_STATE
      	(gdk_event_get_state): handle GDK_WINDOW_STATE
      	(gdk_synthesize_window_state): function to create the window state
      	events
      
      	* gdk/gdkevents.h (struct _GdkEventWindowState): new type of
      	event, for changes to "window state" such as maximized, sticky,
      	etc.
      
      	* gdk/x11/gdkwindow-x11.c (gdk_window_focus): new function,
      	focuses a window
      
      	* gdk/x11/gdkmain-x11.c (_gdk_wmspec_supported): new function,
      	finds out if we support a given WM spec hint
      75d79abf
  17. 19 Feb, 2001 1 commit
  18. 13 Feb, 2001 1 commit
    • Owen Taylor's avatar
      Remove gdkcc.h reference. · 41b2d039
      Owen Taylor authored
      Mon Feb 12 23:43:30 2001  Owen Taylor  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* configure.in: Add check for gtk-doc version.
      
      Thu Feb  8 17:18:26 2001  Owen Taylor  <otaylor@redhat.com>
      
      	* gtk/gtklabel.c (gtk_label_size_request): Fix bug
      	where the xpad/ypad was only being used on one side!
      41b2d039
  19. 04 Feb, 2001 2 commits
  20. 03 Feb, 2001 1 commit
  21. 26 Jan, 2001 1 commit
    • Havoc Pennington's avatar
      adapt to handle PangoColor · ef4356b5
      Havoc Pennington authored
      2001-01-26  Havoc Pennington  <hp@redhat.com>
      
      	* 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
      ef4356b5
  22. 17 Jan, 2001 1 commit
    • Tor Lillqvist's avatar
      gtk/gtkmain.c Use the new · 576ef7f2
      Tor Lillqvist authored
      2001-01-18  Tor Lillqvist  <tml@iki.fi>
      
      	* 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.
      
      2001-01-16  Tor Lillqvist  <tml@iki.fi>
      
      	* 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.
      
      2001-01-18  Tor Lillqvist  <tml@iki.fi>
      
      	* gdk-pixbuf-io.c (get_libdir): (Win32) Use the new
      	g_win32_get_package_installation_subdirectory() function.
      	(gtk_win32_get_installation_directory): Remove this then.
      576ef7f2
  23. 09 Jan, 2001 1 commit
    • Havoc Pennington's avatar
      handle case where there are no rows in the model · 637c61da
      Havoc Pennington authored
      2001-01-09  Havoc Pennington  <hp@redhat.com>
      
      	* 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
      637c61da
  24. 04 Jan, 2001 1 commit
    • Havoc Pennington's avatar
      Adapt to uscore-ification of gtktextiterprivate · c7826b5f
      Havoc Pennington authored
      2001-01-03  Havoc Pennington  <hp@redhat.com>
      
      	* 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
      c7826b5f
  25. 16 Nov, 2000 1 commit
    • Robert Brady's avatar
      'o' < 'p'. · fe682268
      Robert Brady authored
      2000-11-15  Robert Brady  <robert@suse.co.uk>
      
      	* modules/input/iminuktitut.c (inuktitut_compose_seqs):
      	'o' < 'p'.
      
      	* gtk/gtkmain.c: s/CODSET/CODESET/, include <libintl.h> for
      	bind_textdomain_codeset.
      
      	(gtk_init_check): Make the warning about translating default:LTR
      	sterner.
      fe682268
  26. 25 Oct, 2000 1 commit
    • Tim Janik's avatar
      urg, removed implementation of gtk_marshal_VOID__INT_INT_INT_INT. if · d69496c0
      Tim Janik authored
      Wed Oct 25 20:47:41 2000  Tim Janik  <timj@gtk.org>
      
              * 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  <timj@gtk.org>
      
              * 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  <timj@gtk.org>
      
              * 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 <gtkmarshal.h>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  <timj@gtk.org>
      
              * 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  <timj@gtk.org>
      
              * gtk/gtktypeutils.[hc]: removed G_TYPE_GTK_POINTER cludge.
      d69496c0
  27. 22 Oct, 2000 1 commit
    • Robert Brady's avatar
      Check for bind_textdomain_codeset · 2f9aee8d
      Robert Brady authored
      2000-10-22  Robert Brady  <robert@suse.co.uk>
      
      	* 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.
      2f9aee8d
  28. 14 Sep, 2000 1 commit
    • Owen Taylor's avatar
      Remove g_convert (moved to glib) and now useless utf_to_latin1() · 39339f14
      Owen Taylor authored
      Thu Sep 14 12:21:12 2000  Owen Taylor  <otaylor@redhat.com>
      
              * 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
      39339f14
  29. 19 Aug, 2000 1 commit
    • Tor Lillqvist's avatar
      gdk/gdkimage.h No need any longer on Win32 for the shared memory · 617e17da
      Tor Lillqvist authored
      2000-08-20  Tor Lillqvist  <tml@iki.fi>
      
      	* 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.
      617e17da
  30. 01 Aug, 2000 1 commit
  31. 26 Jul, 2000 1 commit
  32. 25 Jul, 2000 1 commit
    • Tor Lillqvist's avatar
      Generate gtk/makefile.mingw. · 20e675e1
      Tor Lillqvist authored
      2000-07-25  Tor Lillqvist  <tml@iki.fi>
      
      	* configure.in: Generate gtk/makefile.mingw.
      
      	* config.h.win32: 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/win32/*.c: More work.
      
      	* gdk/win32/gdkpango-win32.c: New file.
      
      	* gtk/makefile.mingw.in: New file
      
      	* gtk/makefile.cygwin: Removed
      
      	* gtk/Makefile.am: Update accordingly.
      
      	* gtk/gtkmain.c: Use gtk_win32_get_installation_directory().
      
      	* gtk/gtktextdisplay.c: No need to include pangox.h, pango.h
      	is enough.
      
      	* gtk/gtktypeutils.c: Mark glib_debug_objects for import.
      20e675e1
  33. 14 Jul, 2000 1 commit
    • Owen Taylor's avatar
      Move gtk-config to gtk-config-2.0 move gtk_.m4 to gtk-2.0.m4 · bb268900
      Owen Taylor authored
      Fri Jul 14 12:22:49 2000  Owen Taylor  <otaylor@redhat.com>
      
      	* 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.
      bb268900
  34. 21 Jun, 2000 1 commit
    • Havoc Pennington's avatar
      Use gtk_get_default_language · 443e8c39
      Havoc Pennington authored
      2000-06-21  Havoc Pennington  <hp@redhat.com>
      
      * 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.
      443e8c39
  35. 02 Jun, 2000 2 commits
    • Owen Taylor's avatar
      Initialize DOUBLE_BUFFERED flag to on. · bb77f4e6
      Owen Taylor authored
      Fri Jun  2 12:56:01 2000  Owen Taylor  <otaylor@redhat.com>
      
      	* 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)
      bb77f4e6
    • Havoc Pennington's avatar
      Remove all references to offscreen flag which was no longer used. · 9ae724bf
      Havoc Pennington authored
      Thu Jun  1 23:05:13 2000  Owen Taylor  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* gtk/gtkentry.c gtk/gtkclist.c: s/pango_font_unref/g_object_unref/.
      
      Mon May 29 15:44:46 2000  Owen Taylor  <otaylor@redhat.com>
      
              * 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* gdk/gdkfont.h gdk/x11/gdkfont-x11.c (gdk_font_from_description):
      	Add function to load a GdkFont from a PangoFontDescription.
      
      Fri May 26 17:16:40 2000  Owen Taylor  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* gtk/gtkaccellabel.c: Pangoized.
      
      	* gtk/[hv]ruler.c: Pangoized
      
      Mon May 22 19:23:59 2000  Owen Taylor  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
              * 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <hp@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* gtk/gtktextlayout.c (gtk_text_layout_get_iter_location): Fix bug
      	in cursor location computation.
      
      Tue Apr 25 23:22:59 2000  Owen Taylor  <otaylor@redhat.com>
      
      	* 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  <hp@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* gtk/gtkentry.c (gtk_entry_move_cursor_visually): Fix problem
      	with deletion from last commit.
      
      Mon Apr 24 19:29:40 2000  Owen Taylor  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* gtk/gtkeditable.c (gtk_editable_insert_text): Allow new_text_length == -1.
      
      Wed Apr  5 16:27:45 2000  Owen Taylor  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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  <otaylor@redhat.com>
      
      	* 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.
      9ae724bf
  36. 12 May, 2000 1 commit
    • Tim Janik's avatar
      documented necessary changes for 1.4 transition. · 9595c551
      Tim Janik authored
      Fri May 12 17:13:32 2000  Tim Janik  <timj@gtk.org>
      
      	* 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  <timj@gtk.org>
      
      	* 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  <timj@gtk.org>
      
      	* 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  <timj@gtk.org>
      
      	* 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.
      9595c551